क्वांटम कम्प्यूटेशन लैंग्वेज: Difference between revisions
(Created page with "{{refimprove|date=March 2018}} क्वांटम कम्प्यूटेशन लैंग्वेज (QCL) पहली लागू क्वांटम प्...") |
(text) |
||
Line 1: | Line 1: | ||
{{refimprove|date=March 2018}} | {{refimprove|date=March 2018}} | ||
क्वांटम कम्प्यूटेशन लैंग्वेज ( | क्वांटम कम्प्यूटेशन लैंग्वेज (क्यूसीएल) पहली लागू [[क्वांटम प्रोग्रामिंग]] [[प्रोग्रामिंग भाषा]]ओं में से एक है। <ref>{{cite web|url=http://tph.tuwien.ac.at/~oemer/qcl.html |title=क्यूसीएल - क्वांटम कंप्यूटर के लिए एक प्रोग्रामिंग भाषा|website=tuwien.ac.at |access-date=2017-07-20}}</ref> क्यूसीएल की सबसे महत्वपूर्ण विशेषता उपयोगकर्ता-परिभाषित संचालक और कार्यों के लिए समर्थन है। इसका [[ वाक्य - विन्यास |वाक्य - विन्यास]] C प्रोग्रामिंग भाषा के रचनाक्रम जैसा दिखता है और इसके पारम्परिक [[डेटा प्रकार]] C में आदिम डेटा प्रकारों के समान हैं। कोई एक ही प्रोग्राम में पारम्परिक कोड और क्वांटम कोड को जोड़ सकता है। | ||
यह भाषा क्वांटम कंप्यूटर के लिए प्रोग्रामिंग अवधारणाओं का पता लगाने के लिए बनाई गई थी।<ref>{{cite thesis|last=Ömer |first=Bernhard |date=2000-01-20 |title=QCL में क्वांटम प्रोग्रामिंग|publisher=Institute for Theoretical Physics, Vienna University of Technology|url=http://tph.tuwien.ac.at/~oemer/doc/quprog.pdf |access-date=2021-05-24}}</ref><ref>{{cite journal|last=Ömer|first=Bernhard|title=क्वांटम प्रोग्रामिंग में शास्त्रीय अवधारणाएँ|journal=International Journal of Theoretical Physics|date=29 Apr 2003|volume=44|issue=7|pages=943–955|doi=10.1007/s10773-005-7071-x|arxiv=quant-ph/0211100|s2cid=119373370}}</ref><ref>{{cite web|title=संरचित क्वांटम प्रोग्रामिंग|last=Ömer|first=Bernhard|url=http://tph.tuwien.ac.at/~oemer/doc/structquprog.pdf|date=2 September 2009|publisher=Institute for Theoretical Physics, Vienna University of Technology}}</ref> | यह भाषा क्वांटम कंप्यूटर के लिए प्रोग्रामिंग अवधारणाओं का पता लगाने के लिए बनाई गई थी।<ref>{{cite thesis|last=Ömer |first=Bernhard |date=2000-01-20 |title=QCL में क्वांटम प्रोग्रामिंग|publisher=Institute for Theoretical Physics, Vienna University of Technology|url=http://tph.tuwien.ac.at/~oemer/doc/quprog.pdf |access-date=2021-05-24}}</ref><ref>{{cite journal|last=Ömer|first=Bernhard|title=क्वांटम प्रोग्रामिंग में शास्त्रीय अवधारणाएँ|journal=International Journal of Theoretical Physics|date=29 Apr 2003|volume=44|issue=7|pages=943–955|doi=10.1007/s10773-005-7071-x|arxiv=quant-ph/0211100|s2cid=119373370}}</ref><ref>{{cite web|title=संरचित क्वांटम प्रोग्रामिंग|last=Ömer|first=Bernhard|url=http://tph.tuwien.ac.at/~oemer/doc/structquprog.pdf|date=2 September 2009|publisher=Institute for Theoretical Physics, Vienna University of Technology}}</ref> | ||
* नियंत्रित-कई लक्ष्य | क्यूसीएल लाइब्रेरी परिमाण कलन विधि में उपयोग किए जाने वाले मानक परिमाण संचालक प्रदान करती है जैसे: <ref>[http://tph.tuwien.ac.at/~oemer/qcl.html QCL web page]</ref> | ||
* नियंत्रित-कई लक्ष्य क्वैबिट्स के साथ नहीं, | |||
* कई क्वैबिट पर [[हैडामर्ड ऑपरेशन]], | * कई क्वैबिट पर [[हैडामर्ड ऑपरेशन]], | ||
* चरण और नियंत्रित चरण। | * चरण और नियंत्रित चरण। | ||
* द्विआधारी स्थिरांक (सभी मापांक एन) के साथ जोड़, गुणा और घातांक के लिए | * द्विआधारी स्थिरांक (सभी मापांक एन) के साथ जोड़, गुणा और घातांक के लिए परिमाण कलन विधि | ||
* [[क्वांटम फूरियर रूपांतरण]] | * [[क्वांटम फूरियर रूपांतरण]] | ||
== | == रचनाक्रम == | ||
*डेटा के प्रकार | *डेटा के प्रकार | ||
** | **परिमाण - क्यूरेग, क्वॉइड, क्यूकॉन्स्ट, क्यूस्क्रैच, क्वकॉन्ड | ||
** | **पारम्परिक - आइएनटी, रियल, कॉम्प्लेक्स, बूलियन, स्ट्रिंग, वेक्टर, मैट्रिक्स, टेंसर | ||
* | *फलन प्रकार | ||
**क्यूफ़ंक्ट - | **क्यूफ़ंक्ट - सूडो-क्लासिक ऑपरेटर। केवल आधार अवस्थाओं के क्रमपरिवर्तन को बदल सकता है। | ||
**ऑपरेटर - सामान्य एकात्मक ऑपरेटर। आयाम बदल सकते | **ऑपरेटर - सामान्य एकात्मक ऑपरेटर। आयाम बदल सकते हैं। | ||
** | **प्रोसीजर - इस फलन के अंदर माप, प्रिंट और डंप को कॉल कर सकते हैं। यह फलन गैर-उलटा नहीं है। | ||
*अंतर्निहित कार्य | *अंतर्निहित कार्य | ||
**क्वांटम | **क्वांटम | ||
***क्यूफंक्ट - फैनआउट, स्वैप, पर्म2, पर्म4, पर्म8, नॉट, सीनॉट | ***क्यूफंक्ट - फैनआउट, स्वैप, पर्म2, पर्म4, पर्म8, नॉट, सीनॉट | ||
***ऑपरेटर - मैट्रिक्स2x2, मैट्रिक्स4x4, मैट्रिक्स8x8, रोट, मिक्स, एच, सीफेज, स्क्वर्टनॉट, एक्स, वाई, जेड, एस, टी | ***ऑपरेटर - मैट्रिक्स2x2, मैट्रिक्स4x4, मैट्रिक्स8x8, रोट, मिक्स, एच, सीफेज, स्क्वर्टनॉट, एक्स, वाई, जेड, एस, टी | ||
*** | ***प्रोसीजर - मेजर, डंप, रीसेट | ||
** | **पारम्परिक | ||
***अंकगणित - | ***अंकगणित - साइन, कॉस, टैन, लॉग, एसक्यूआरटी, ... | ||
***कॉम्प्लेक्स - रे, आईएम, कॉन्ज | ***कॉम्प्लेक्स - रे, आईएम, कॉन्ज | ||
== उदाहरण == | == उदाहरण == | ||
क्यूसीएल में मूल अंतर्निहित क्वांटम डेटा प्रकार क्यूरेग (क्वांटम रजिस्टर) है। इसकी व्याख्या क्वैबिट्स (क्वांटम बिट्स) की एक श्रृंखला के रूप में की जा सकती है। | |||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
qureg x1[2]; // 2-qubit quantum register x1 | qureg x1[2]; // 2-qubit quantum register x1 | ||
Line 44: | Line 45: | ||
+ 0.35355 |8> + 0.35355 |9> + 0.35355 |10> + 0.35355 |11> | + 0.35355 |8> + 0.35355 |9> + 0.35355 |10> + 0.35355 |11> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
ध्यान दें कि डंप ऑपरेशन माप से अलग है, क्योंकि यह क्वांटम मशीन की स्थिति को प्रभावित नहीं करता है और इसे केवल सिम्युलेटर का उपयोग करके ही | ध्यान दें कि डंप ऑपरेशन माप से अलग है, क्योंकि यह क्वांटम मशीन की स्थिति को प्रभावित नहीं करता है और इसे केवल सिम्युलेटर का उपयोग करके ही अनुभव किया जा सकता है। | ||
आधुनिक प्रोग्रामिंग भाषाओं की तरह, नए संचालन को परिभाषित करना संभव है जिसका उपयोग क्वांटम डेटा में | आधुनिक प्रोग्रामिंग भाषाओं की तरह, नए संचालन को परिभाषित करना संभव है जिसका उपयोग क्वांटम डेटा में क्रमभंग करने के लिए किया जा सकता है। उदाहरण के लिए: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
operator diffuse (qureg q) { | operator diffuse (qureg q) { |
Revision as of 21:22, 16 July 2023
This article needs additional citations for verification. (March 2018) (Learn how and when to remove this template message) |
क्वांटम कम्प्यूटेशन लैंग्वेज (क्यूसीएल) पहली लागू क्वांटम प्रोग्रामिंग प्रोग्रामिंग भाषाओं में से एक है। [1] क्यूसीएल की सबसे महत्वपूर्ण विशेषता उपयोगकर्ता-परिभाषित संचालक और कार्यों के लिए समर्थन है। इसका वाक्य - विन्यास C प्रोग्रामिंग भाषा के रचनाक्रम जैसा दिखता है और इसके पारम्परिक डेटा प्रकार C में आदिम डेटा प्रकारों के समान हैं। कोई एक ही प्रोग्राम में पारम्परिक कोड और क्वांटम कोड को जोड़ सकता है।
यह भाषा क्वांटम कंप्यूटर के लिए प्रोग्रामिंग अवधारणाओं का पता लगाने के लिए बनाई गई थी।[2][3][4]
क्यूसीएल लाइब्रेरी परिमाण कलन विधि में उपयोग किए जाने वाले मानक परिमाण संचालक प्रदान करती है जैसे: [5]
- नियंत्रित-कई लक्ष्य क्वैबिट्स के साथ नहीं,
- कई क्वैबिट पर हैडामर्ड ऑपरेशन,
- चरण और नियंत्रित चरण।
- द्विआधारी स्थिरांक (सभी मापांक एन) के साथ जोड़, गुणा और घातांक के लिए परिमाण कलन विधि
- क्वांटम फूरियर रूपांतरण
रचनाक्रम
- डेटा के प्रकार
- परिमाण - क्यूरेग, क्वॉइड, क्यूकॉन्स्ट, क्यूस्क्रैच, क्वकॉन्ड
- पारम्परिक - आइएनटी, रियल, कॉम्प्लेक्स, बूलियन, स्ट्रिंग, वेक्टर, मैट्रिक्स, टेंसर
- फलन प्रकार
- क्यूफ़ंक्ट - सूडो-क्लासिक ऑपरेटर। केवल आधार अवस्थाओं के क्रमपरिवर्तन को बदल सकता है।
- ऑपरेटर - सामान्य एकात्मक ऑपरेटर। आयाम बदल सकते हैं।
- प्रोसीजर - इस फलन के अंदर माप, प्रिंट और डंप को कॉल कर सकते हैं। यह फलन गैर-उलटा नहीं है।
- अंतर्निहित कार्य
- क्वांटम
- क्यूफंक्ट - फैनआउट, स्वैप, पर्म2, पर्म4, पर्म8, नॉट, सीनॉट
- ऑपरेटर - मैट्रिक्स2x2, मैट्रिक्स4x4, मैट्रिक्स8x8, रोट, मिक्स, एच, सीफेज, स्क्वर्टनॉट, एक्स, वाई, जेड, एस, टी
- प्रोसीजर - मेजर, डंप, रीसेट
- पारम्परिक
- अंकगणित - साइन, कॉस, टैन, लॉग, एसक्यूआरटी, ...
- कॉम्प्लेक्स - रे, आईएम, कॉन्ज
- क्वांटम
उदाहरण
क्यूसीएल में मूल अंतर्निहित क्वांटम डेटा प्रकार क्यूरेग (क्वांटम रजिस्टर) है। इसकी व्याख्या क्वैबिट्स (क्वांटम बिट्स) की एक श्रृंखला के रूप में की जा सकती है।
qureg x1[2]; // 2-qubit quantum register x1
qureg x2[2]; // 2-qubit quantum register x2
H(x1); // Hadamard operation on x1
H(x2[1]); // Hadamard operation on the first qubit of the register x2
चूंकि क्यूसीएल दुभाषिया क्यूलिब सिमुलेशन लाइब्रेरी का उपयोग करता है, इसलिए क्वांटम प्रोग्राम के निष्पादन के दौरान क्वांटम मशीन की आंतरिक स्थिति का निरीक्षण करना संभव है।
qcl> dump
: STATE: 4 / 32 qubits allocated, 28 / 32 qubits free
0.35355 |0> + 0.35355 |1> + 0.35355 |2> + 0.35355 |3>
+ 0.35355 |8> + 0.35355 |9> + 0.35355 |10> + 0.35355 |11>
ध्यान दें कि डंप ऑपरेशन माप से अलग है, क्योंकि यह क्वांटम मशीन की स्थिति को प्रभावित नहीं करता है और इसे केवल सिम्युलेटर का उपयोग करके ही अनुभव किया जा सकता है।
आधुनिक प्रोग्रामिंग भाषाओं की तरह, नए संचालन को परिभाषित करना संभव है जिसका उपयोग क्वांटम डेटा में क्रमभंग करने के लिए किया जा सकता है। उदाहरण के लिए:
operator diffuse (qureg q) {
H(q); // Hadamard Transform
Not(q); // Invert q
CPhase(pi, q); // Rotate if q=1111..
!Not(q); // undo inversion
!H(q); // undo Hadamard Transform
}
ग्रोवर के एल्गोरिदम में प्रयुक्त माध्य ऑपरेटर के बारे में व्युत्क्रम परिभाषित करता है (इसे कभी-कभी ग्रोवर का प्रसार ऑपरेटर भी कहा जाता है)। यह किसी को उच्च स्तर के अमूर्त पर एल्गोरिदम को परिभाषित करने और प्रोग्रामर के लिए उपलब्ध कार्यों की लाइब्रेरी का विस्तार करने की अनुमति देता है।
संदर्भ
- ↑ "क्यूसीएल - क्वांटम कंप्यूटर के लिए एक प्रोग्रामिंग भाषा". tuwien.ac.at. Retrieved 2017-07-20.
- ↑ Ömer, Bernhard (2000-01-20). QCL में क्वांटम प्रोग्रामिंग (PDF) (Thesis). Institute for Theoretical Physics, Vienna University of Technology. Retrieved 2021-05-24.
- ↑ Ömer, Bernhard (29 Apr 2003). "क्वांटम प्रोग्रामिंग में शास्त्रीय अवधारणाएँ". International Journal of Theoretical Physics. 44 (7): 943–955. arXiv:quant-ph/0211100. doi:10.1007/s10773-005-7071-x. S2CID 119373370.
- ↑ Ömer, Bernhard (2 September 2009). "संरचित क्वांटम प्रोग्रामिंग" (PDF). Institute for Theoretical Physics, Vienna University of Technology.
- ↑ QCL web page