क्वांटम कंप्यूटिंग और AIमध्यमपाठ 3046 मिनट का पाठ

सुपरपोजिशन और मेज़रमेंट

सुपरपोजिशन का मतलब है एक ऐसा स्टेट जिसमें कई नतीजों के लिए एम्प्लिट्यूड होते हैं। मेज़रमेंट उनके साइज़ का स्क्वायर करके एम्प्लिट्यूड को प्रोबेबिलिटी में बदल देता है। इसे numpy में सिमुलेट करें।

पाठ वीडियो में

60 सेकंड में

सुपरपोजिशन और मेज़रमेंट

सुपरपोजिशन का मतलब है एक ऐसा स्टेट जिसमें कई नतीजों के लिए एम्प्लिट्यूड होते हैं। मेज़रमेंट उनके साइज़ का स्क्वायर करके एम्प्लिट्यूड को प्रोबेबिलिटी में बदल देता है। इसे numpy में…

1/4
आसान शब्दों में
तालाब में मिलने वाली दो लहरों के बारे में सोचें। जहाँ दो ऊँचे हिस्से मिलते हैं, वहाँ लहर और ऊँची हो जाती है। जहाँ एक ऊँचा हिस्सा और एक नीचा हिस्सा मिलते हैं, वे एक-दूसरे को कैंसल कर देते हैं और पानी सपाट हो जाता है। एम्प्लिट्यूड भी कुछ हद तक इन्हीं लहरों की तरह काम करते हैं: वे जुड़ सकते हैं या कैंसल हो सकते हैं। केवल जब आप मेज़र करते हैं तभी आपको एक सीधा जवाब मिलता है, और ऊँची जगहों वाले जवाब मिलने की संभावना सबसे ज़्यादा होती है।
a|0⟩ + b|1⟩ जैसा कोई स्टेट, जहाँ a और b दोनों शून्य नहीं हैं, सुपरपोजिशन कहलाता है। यह "चुपके से 0" या "चुपके से 1" नहीं है। यह अपने आप में एक निश्चित स्टेट है, और इसे पूरी तरह से एम्प्लिट्यूड द्वारा समझाया जाता है।

एम्प्लिट्यूड से प्रोबेबिलिटी तक

यह नियम, जिसे बॉर्न रूल (Born rule) कहा जाता है, बहुत सीधा है: किसी नतीजे की प्रोबेबिलिटी उसके एम्प्लिट्यूड के मैग्नीट्यूड का स्क्वायर होती है। किसी वास्तविक संख्या (real number) के लिए, यह बस उस संख्या का स्क्वायर है। a + bi जैसी कॉम्प्लेक्स संख्या के लिए, मैग्नीट्यूड का स्क्वायर a² + b² होता है।
स्टेटP(0)P(1)
1|0⟩ + 0|1⟩10
0.6|0⟩ + 0.8|1⟩0.360.64
(1/√2)|0⟩ + (1/√2)|1⟩0.50.5
(1/√2)|0⟩ − (1/√2)|1⟩0.50.5
(1/√2)|0⟩ + (i/√2)|1⟩0.50.5 (|i|² = 1)
आखिरी तीन पंक्तियाँ एक जैसी संभावनाएँ देती हैं, फिर भी वे अलग-अलग स्टेट हैं। यह अंतर एम्प्लिट्यूड के चिह्न (साइन) या फ़ेज़ (phase) में होता है। फ़ेज़ किसी एक मेज़रमेंट की संभावनाओं को नहीं बदलता, लेकिन जब गेट्स क्यूबिट पर काम करते हैं तो यह बदलता है कि एम्प्लिट्यूड आपस में कैसे इंटरफ़ियर (interfere) करते हैं।

मेज़रमेंट रैंडम होता है, लेकिन औसतन इसका अंदाज़ा लगाया जा सकता है

स्टेट 0.6|0⟩ + 0.8|1⟩ में किसी एक क्यूबिट को मेज़र करें और आपको 0 या 1 मिलेगा; आप अंदाज़ा नहीं लगा सकते कि कौन-सा मिलेगा। उसी स्टेट को 1000 बार तैयार करें और हर बार मेज़र करें, तो आपको लगभग 640 बार 1 मिलेगा। भौतिक विज्ञानी हर एक रन को शॉट (shot) कहते हैं। असली क्वांटम प्रोग्राम कई शॉट्स के लिए चलाए जाते हैं, और नतीजा परिणामों की गिनती (काउंट) होता है।
  1. 1

    तैयार करें

    क्यूबिट्स को एक जाने-पहचाने शुरुआती स्टेट में सेट करें, आमतौर पर सभी को |0⟩ पर।
  2. 2

    गेट्स लागू करें

    एम्प्लिट्यूड को नियंत्रित तरीके से बदलें।
  3. 3

    मेज़र करें

    हर क्यूबिट 0 या 1 देता है। सुपरपोजिशन खत्म हो जाता है।
  4. 4

    दोहराएँ

    कई शॉट्स चलाएँ और प्रोबेबिलिटी का अंदाज़ा लगाने के लिए नतीजों को गिनें।

इंटरफ़ेरेंस: यह सिर्फ़ एक सिक्का क्यों नहीं है

हाडामार्ड गेट (Hadamard gate), जिसे H लिखा जाता है, |0⟩ को एक बराबर के सुपरपोजिशन में बदल देता है। अगर कोई क्यूबिट सिर्फ़ एक निष्पक्ष सिक्का होता, तो दो बार H लगाने पर भी 50/50 सिक्का ही मिलता। लेकिन ऐसा नहीं होता। दो बार H लगाने पर वापस बिल्कुल |0⟩ मिलता है, क्योंकि 1 के लिए एम्प्लिट्यूड कैंसल हो जाते हैं। इसे आज़माएँ:
Python: Hadamard twice, and interferencepython
import numpy as np

H = np.array([[1, 1],
              [1, -1]]) / np.sqrt(2)
zero = np.array([1.0, 0.0])

after_one = H @ zero
after_two = H @ after_one

print("after H once :", np.round(after_one, 3), "probabilities", np.round(np.abs(after_one) ** 2, 3))
print("after H twice:", np.round(after_two, 3), "probabilities", np.round(np.abs(after_two) ** 2, 3))
एक H के बाद, संभावना 50/50 होती है। दो के बाद, 0 मिलने की संभावना वापस 1 हो जाती है। 1 की तरफ ले जाने वाले दो रास्तों के एम्प्लिट्यूड +½ और −½ होते हैं, और वे एक-दूसरे को कैंसल कर देते हैं। इसी इंटरफ़ेरेंस (interference) का इस्तेमाल क्वांटम एल्गोरिदम करते हैं: चीज़ों को ऐसे सेट करें कि गलत जवाब कैंसल हो जाएँ और सही जवाब जुड़ जाएँ।
सावधान रहें
कोई क्वांटम कंप्यूटर "एक साथ हर जवाब को आज़माकर उन सभी को पढ़ता नहीं है"। आप हर शॉट में सिर्फ़ एक ही नतीजा पढ़ सकते हैं। स्पीड-अप, जहाँ भी मुमकिन होता है, चतुराई से डिज़ाइन किए गए इंटरफ़ेरेंस से आता है, और सिर्फ़ कुछ समस्याओं में ही ऐसा किया जा सकता है।
इसे आज़माएँ। कोड में, शून्य के बजाय np.array([0.0, 1.0]) से शुरू करें। एक H क्या देता है? दो H क्या देते हैं?

और देखें और पढ़ें

लैब

एक numpy फ़ंक्शन जो एम्प्लिट्यूड को मेज़रमेंट प्रोबेबिलिटी में बदलता है, एक सिमुलेट किया गया 1000-शॉट प्रयोग, और आपके द्वारा डिज़ाइन किया गया एक स्टेट।

~25 min

समस्या

इसे ब्राउज़र में, या Python 3 और numpy के साथ चलाएँ।

  1. measurement_probs(state) को पूरा करें: इसे एम्प्लिट्यूड का एक numpy ऐरे (वास्तविक या कॉम्प्लेक्स, किसी भी लंबाई का) मिलता है और यह प्रोबेबिलिटी का ऐरे लौटाता है। मैग्नीट्यूड के स्क्वायर का इस्तेमाल करें।
  2. शुरुआती कोड चलाएँ। यह एक तय रैंडम सीड के साथ स्टेट को 1000 बार मेज़र करता है और काउंट्स प्रिंट करता है। क्या ये काउंट्स आपकी प्रोबेबिलिटी से मोटे तौर पर मेल खाते हैं?
  3. my_state को एक मान्य स्टेट में बदलें जो 0.9 की प्रोबेबिलिटी के साथ 1 देता हो।
  4. दो वाक्य लिखें: काउंट्स बिल्कुल 1000 × प्रोबेबिलिटी के बराबर क्यों नहीं हैं?

प्रैक्टिस लैब

कोड में बदलाव करें और इसे रन करें। Python आपके ब्राउज़र में चलता है — हमारे सर्वर पर कुछ नहीं भेजा जाता।

आउटपुट

कोई आउटपुट नहीं। वैल्यूज़ देखने के लिए print(...) जोड़ें।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1आपका my_state [√0.1, √0.9] या [√0.1, −√0.9] हो सकता है। क्या ये दोनों एक ही स्टेट हैं?दिखाएं

सीधे मेज़र करने पर वे एक जैसी संभावनाएँ देते हैं, इसलिए यह प्रयोग उनमें अंतर नहीं बता सकता। लेकिन वे अलग-अलग स्टेट हैं: रिलेटिव चिह्न यह बदल देता है कि वे कैसे इंटरफ़ियर करते हैं। उदाहरण के लिए, एक हाडामार्ड गेट के बाद वे अलग-अलग मेज़रमेंट संभावनाएँ देते हैं। केवल एक ग्लोबल फ़ेज़, यानी पूरे स्टेट को एक ही संख्या से गुणा करना, मापने लायक कोई अंतर नहीं लाता।

Q2अगर आप 1000 के बजाय 100 शॉट्स चलाते हैं, तो क्या बदलेगा और क्यों?दिखाएं

अनुपात के रूप में काउंट्स वास्तविक प्रोबेबिलिटी से और दूर भटक जाएँगे। अनुमानित प्रोबेबिलिटी की सामान्य एरर लगभग 1/√shots के हिसाब से घटती है, इसलिए 100 शॉट्स में 1000 शॉट्स की तुलना में लगभग तीन गुना बड़ी एरर मिलती है। वास्तविक प्रोबेबिलिटी नहीं बदलती; बस हमारा अंदाज़ा थोड़ा और अनिश्चित हो जाता है।

जारी रखने के लिए कृपया साइन इन करें।

अक्सर पूछे जाने वाले सवाल

क्या मेज़रमेंट के लिए किसी इंसान का देखना ज़रूरी है?

नहीं। "मेज़रमेंट" का मतलब है कि क्यूबिट किसी मापने वाले उपकरण के साथ इस तरह इंटरैक्ट करता है कि 0 या 1 रिकॉर्ड हो जाए। किसी इंसान या दिमाग की ज़रूरत नहीं होती। डिटेक्टर यह अपने आप कर लेता है।

एम्प्लिट्यूड का स्क्वायर क्यों करें? इसे सीधे इस्तेमाल क्यों न करें?

क्योंकि एम्प्लिट्यूड नेगेटिव या कॉम्प्लेक्स हो सकते हैं, और प्रोबेबिलिटी नहीं हो सकती। साइज़ का स्क्वायर करने पर हमेशा 0 से 1 के बीच की संख्या मिलती है। इस नियम का बहुत सारे प्रयोगों में परीक्षण किया गया है, और यही इंटरफ़ेरेंस को मुमकिन बनाता है: एम्प्लिट्यूड पहले जुड़ते हैं, और उसके बाद ही आप स्क्वायर करते हैं।

अगर दो स्टेट सिर्फ़ एक फ़ेज़ के कारण अलग हों तो इसका क्या मतलब है?

अगर पूरे स्टेट को एक ही फ़ेज़ से गुणा किया जाए (उदाहरण के लिए −1 से), तो मापने लायक कुछ भी नहीं बदलता। इसे "ग्लोबल फ़ेज़" कहा जाता है। लेकिन सिर्फ़ एक हिस्से पर मौजूद फ़ेज़, जैसे (1/√2)|0⟩ − (1/√2)|1⟩ में माइनस का चिह्न, एक "रिलेटिव फ़ेज़" होता है, और यह बदल देता है कि गेट्स बाद में क्या असर करेंगे।

मुझे कितने शॉट्स की ज़रूरत होगी?

ज़्यादा शॉट्स से बेहतर अंदाज़ा मिलता है। अनुमानित प्रोबेबिलिटी की एरर लगभग 1/√shots की दर से घटती है, इसलिए चार गुना ज़्यादा शॉट्स एरर को आधा कर देते हैं। छोटे प्रयोगों के लिए कुछ हज़ार शॉट्स आम बात है।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें