क्वांटम कम्प्यूटेशन लैंग्वेज: Difference between revisions

From Vigyanwiki
(Created page with "{{refimprove|date=March 2018}} क्वांटम कम्प्यूटेशन लैंग्वेज (QCL) पहली लागू क्वांटम प्...")
 
No edit summary
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{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 में क्लासिकल डाटा टाइप के समान हैं। कोई एक ही प्रोग्राम में क्लासिकल कोड और क्वांटम कोड को जोड़ सकता है।


क्वांटम कम्प्यूटेशन लैंग्वेज (QCL) पहली लागू [[क्वांटम प्रोग्रामिंग]] [[प्रोग्रामिंग भाषा]]ओं में से एक है।<ref>{{cite web|url=http://tph.tuwien.ac.at/~oemer/qcl.html |title=क्यूसीएल - क्वांटम कंप्यूटर के लिए एक प्रोग्रामिंग भाषा|website=tuwien.ac.at |access-date=2017-07-20}}</ref> QCL की सबसे महत्वपूर्ण विशेषता उपयोगकर्ता-परिभाषित ऑपरेटरों और कार्यों के लिए समर्थन है। इसका [[ वाक्य - विन्यास ]] 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>
QCL लाइब्रेरी क्वांटम एल्गोरिदम में उपयोग किए जाने वाले मानक क्वांटम ऑपरेटर प्रदान करती है जैसे:<ref>[http://tph.tuwien.ac.at/~oemer/qcl.html QCL web page]</ref>
* कंट्रोल्ड-नॉट कई टारगेट क्वैबिट्स के साथ ,
* नियंत्रित-कई लक्ष्य qubits के साथ नहीं,
* कई क्वैबिट पर [[हैडामर्ड ऑपरेशन]],
* कई क्वैबिट पर [[हैडामर्ड ऑपरेशन]],
* चरण और नियंत्रित चरण।
* फेज एंड कंट्रोल्ड फेज।
* द्विआधारी स्थिरांक (सभी मापांक एन) के साथ जोड़, गुणा और घातांक के लिए क्वांटम एल्गोरिदम
* द्विआधारी स्थिरांक (सभी मापांक n) के साथ जोड़, गुणा और घातांक के लिए क्वांटम एल्गोरिथ्म
* [[क्वांटम फूरियर रूपांतरण]]
* [[क्वांटम फूरियर रूपांतरण]]


Line 14: Line 13:
*डेटा के प्रकार
*डेटा के प्रकार
**क्वांटम - क्यूरेग, क्वॉइड, क्यूकॉन्स्ट, क्यूस्क्रैच, क्वकॉन्ड
**क्वांटम - क्यूरेग, क्वॉइड, क्यूकॉन्स्ट, क्यूस्क्रैच, क्वकॉन्ड
**शास्त्रीय - पूर्णांक, वास्तविक, जटिल, बूलियन, स्ट्रिंग, वेक्टर, मैट्रिक्स, टेंसर
**क्लासिकल - आइएनटी, रियल, कॉम्प्लेक्स, बूलियन, स्ट्रिंग, वेक्टर, मैट्रिक्स, टेंसर
*फ़ंक्शन प्रकार
*फंक्शन प्रकार
**क्यूफ़ंक्ट - छद्म-क्लासिक ऑपरेटर। केवल आधार अवस्थाओं के क्रमपरिवर्तन को बदल सकता है।
**क्यूफ़ंक्ट - सूडो-क्लासिक ऑपरेटर। केवल आधार अवस्थाओं के क्रमपरिवर्तन को बदल सकता है।
**ऑपरेटर - सामान्य एकात्मक ऑपरेटर। आयाम बदल सकते हैं.
**ऑपरेटर - जनरल यूनिटरी ऑपरेटर। ये आयाम बदल सकते हैं।
**प्रक्रिया - इस फ़ंक्शन के अंदर माप, प्रिंट और डंप को कॉल कर सकते हैं। यह फ़ंक्शन गैर-उलटा नहीं है.
**प्रोसीजर - इस फंक्शन के अंदर माप, प्रिंट और डंप को कॉल कर सकते हैं। यह फंक्शन गैर-इन्वेर्टिबल नहीं है।
*अंतर्निहित कार्य
*बिल्ट-इन फंक्शन्स
**क्वांटम
**क्वांटम
***क्यूफंक्ट - फैनआउट, स्वैप, पर्म2, पर्म4, पर्म8, नॉट, सीनॉट
***क्यूफंक्ट - फैनआउट, स्वैप, पर्म2, पर्म4, पर्म8, नॉट, सीनॉट
***ऑपरेटर - मैट्रिक्स2x2, मैट्रिक्स4x4, मैट्रिक्स8x8, रोट, मिक्स, एच, सीफेज, स्क्वर्टनॉट, एक्स, वाई, जेड, एस, टी
***ऑपरेटर - मैट्रिक्स2x2, मैट्रिक्स4x4, मैट्रिक्स8x8, रोट, मिक्स, एच, सीफेज, स्क्वर्टनॉट, एक्स, वाई, जेड, एस, टी
***प्रक्रिया - मापें, डंप करें, रीसेट करें
***प्रोसीजर - मेजर, डंप, रीसेट
**शास्त्रीय
**क्लासिकल
***अंकगणित - पाप, कॉस, टैन, लॉग, वर्ग, ...
***अंकगणित - साइन, कॉस, टैन, लॉग, एसक्यूआरटी, ...
***कॉम्प्लेक्स - रे, आईएम, कॉन्ज
***कॉम्प्लेक्स - रे, आईएम, कॉन्ज


== उदाहरण ==
== उदाहरण ==


QCL में मूल अंतर्निहित क्वांटम डेटा प्रकार क्यूरेग (क्वांटम रजिस्टर) है। इसकी व्याख्या क्वैबिट्स (क्वांटम बिट्स) की एक श्रृंखला के रूप में की जा सकती है।
क्यूसीएल में मूल बिल्ट-इन क्वांटम डाटा टाइप क्यूरेग (क्वांटम रजिस्टर) है। इसकी व्याख्या क्वैबिट्स (क्वांटम बिट्स) के एक ऐरे के रूप में की जा सकती है।
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
qureg x1[2]; // 2-qubit quantum register x1
qureg x1[2]; // 2-qubit quantum register x1
Line 37: Line 36:
H(x2[1]); // Hadamard operation on the first qubit of the register x2
H(x2[1]); // Hadamard operation on the first qubit of the register x2
</syntaxhighlight>
</syntaxhighlight>
चूंकि क्यूसीएल दुभाषिया क्यूलिब सिमुलेशन लाइब्रेरी का उपयोग करता है, इसलिए क्वांटम प्रोग्राम के निष्पादन के दौरान क्वांटम मशीन की आंतरिक स्थिति का निरीक्षण करना संभव है।
चूंकि क्यूसीएल इंटरप्रेटर क्यूलिब सिमुलेशन लाइब्रेरी का उपयोग करता है, इसलिए क्वांटम प्रोग्राम के एक्सेक्यूशन के उपरान्त क्वांटम मशीन की आंतरिक स्थिति का निरीक्षण करना संभव है।
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
qcl> dump
qcl> dump
Line 44: Line 43:
+ 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) {
Line 56: Line 55:
}
}
</syntaxhighlight>
</syntaxhighlight>
ग्रोवर के एल्गोरिदम में प्रयुक्त माध्य ऑपरेटर के बारे में व्युत्क्रम परिभाषित करता है (इसे कभी-कभी ग्रोवर का प्रसार ऑपरेटर भी कहा जाता है)। यह किसी को उच्च स्तर के अमूर्त पर एल्गोरिदम को परिभाषित करने और प्रोग्रामर के लिए उपलब्ध कार्यों की लाइब्रेरी का विस्तार करने की अनुमति देता है।
ग्रोवर के एल्गोरिदम में प्रयुक्त मीन ऑपरेटर के बारे में व्युत्क्रम परिभाषित करता है (इसे कभी-कभी ग्रोवर का डिफ्फुजन ऑपरेटर भी कहा जाता है)। यह किसी को उच्च स्तर के अब्स्ट्रक्शन पर एल्गोरिदम को परिभाषित करने और प्रोग्रामर के लिए उपलब्ध कार्यों की लाइब्रेरी का विस्तार करने की अनुमति देता है।


== संदर्भ ==
== संदर्भ ==
{{reflist}}
{{reflist}}
[[Category: प्रोग्रामिंग भाषा]] [[Category: क्वांटम प्रोग्रामिंग]]


[[Category: Machine Translated Page]]
[[Category:Created On 06/07/2023]]
[[Category:Created On 06/07/2023]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:क्वांटम प्रोग्रामिंग]]
[[Category:प्रोग्रामिंग भाषा]]

Latest revision as of 10:25, 27 July 2023

क्वांटम कम्प्यूटेशन लैंग्वेज (क्यूसीएल) पहली लागू क्वांटम प्रोग्रामिंग लैंग्वेज में से एक है। [1] क्यूसीएल की सबसे महत्वपूर्ण विशेषता यूजर-डिफाइंड ऑपरेटर्स और फंक्शन के लिए सपोर्ट है। इसका सिंटेक्स C प्रोग्रामिंग लैंग्वेज के सिंटेक्स जैसा दिखता है और इसके क्लासिकल डाटा टाइप C में क्लासिकल डाटा टाइप के समान हैं। कोई एक ही प्रोग्राम में क्लासिकल कोड और क्वांटम कोड को जोड़ सकता है।

यह लैंग्वेज क्वांटम कंप्यूटर के लिए प्रोग्रामिंग कॉन्सेप्ट्स का पता लगाने के लिए बनाई गई थी। [2][3][4]

क्यूसीएल लाइब्रेरी क्वांटम एल्गोरिथ्म में उपयोग किए जाने वाले मानक क्वांटम संचालक प्रदान करती है जैसे: [5]

  • कंट्रोल्ड-नॉट कई टारगेट क्वैबिट्स के साथ ,
  • कई क्वैबिट पर हैडामर्ड ऑपरेशन,
  • फेज एंड कंट्रोल्ड फेज।
  • द्विआधारी स्थिरांक (सभी मापांक n) के साथ जोड़, गुणा और घातांक के लिए क्वांटम एल्गोरिथ्म
  • क्वांटम फूरियर रूपांतरण

सिंटेक्स

  • डेटा के प्रकार
    • क्वांटम - क्यूरेग, क्वॉइड, क्यूकॉन्स्ट, क्यूस्क्रैच, क्वकॉन्ड
    • क्लासिकल - आइएनटी, रियल, कॉम्प्लेक्स, बूलियन, स्ट्रिंग, वेक्टर, मैट्रिक्स, टेंसर
  • फंक्शन प्रकार
    • क्यूफ़ंक्ट - सूडो-क्लासिक ऑपरेटर। केवल आधार अवस्थाओं के क्रमपरिवर्तन को बदल सकता है।
    • ऑपरेटर - जनरल यूनिटरी ऑपरेटर। ये आयाम बदल सकते हैं।
    • प्रोसीजर - इस फंक्शन के अंदर माप, प्रिंट और डंप को कॉल कर सकते हैं। यह फंक्शन गैर-इन्वेर्टिबल नहीं है।
  • बिल्ट-इन फंक्शन्स
    • क्वांटम
      • क्यूफंक्ट - फैनआउट, स्वैप, पर्म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
}

ग्रोवर के एल्गोरिदम में प्रयुक्त मीन ऑपरेटर के बारे में व्युत्क्रम परिभाषित करता है (इसे कभी-कभी ग्रोवर का डिफ्फुजन ऑपरेटर भी कहा जाता है)। यह किसी को उच्च स्तर के अब्स्ट्रक्शन पर एल्गोरिदम को परिभाषित करने और प्रोग्रामर के लिए उपलब्ध कार्यों की लाइब्रेरी का विस्तार करने की अनुमति देता है।

संदर्भ

  1. "क्यूसीएल - क्वांटम कंप्यूटर के लिए एक प्रोग्रामिंग भाषा". tuwien.ac.at. Retrieved 2017-07-20.
  2. Ömer, Bernhard (2000-01-20). QCL में क्वांटम प्रोग्रामिंग (PDF) (Thesis). Institute for Theoretical Physics, Vienna University of Technology. Retrieved 2021-05-24.
  3. Ö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.
  4. Ömer, Bernhard (2 September 2009). "संरचित क्वांटम प्रोग्रामिंग" (PDF). Institute for Theoretical Physics, Vienna University of Technology.
  5. QCL web page