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

From Vigyanwiki
Revision as of 15:04, 6 July 2023 by alpha>Indicwiki (Created page with "{{refimprove|date=March 2018}} क्वांटम कम्प्यूटेशन लैंग्वेज (QCL) पहली लागू क्वांटम प्...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

यह भाषा क्वांटम कंप्यूटर के लिए प्रोग्रामिंग अवधारणाओं का पता लगाने के लिए बनाई गई थी।[2][3][4] QCL लाइब्रेरी क्वांटम एल्गोरिदम में उपयोग किए जाने वाले मानक क्वांटम ऑपरेटर प्रदान करती है जैसे:[5]

सिंटेक्स

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

उदाहरण

QCL में मूल अंतर्निहित क्वांटम डेटा प्रकार क्यूरेग (क्वांटम रजिस्टर) है। इसकी व्याख्या क्वैबिट्स (क्वांटम बिट्स) की एक श्रृंखला के रूप में की जा सकती है।

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