मैं एक गैर-भौतिकी पृष्ठभूमि से आता हूं और मुझे क्वांटम कम्प्यूटिंग को आगे बढ़ाने में बहुत दिलचस्पी है - विशेष रूप से उन्हें कैसे प्रोग्राम करना है। आरंभ करने के बारे में कोई मार्गदर्शन बहुत मददगार होगा।
मैं एक गैर-भौतिकी पृष्ठभूमि से आता हूं और मुझे क्वांटम कम्प्यूटिंग को आगे बढ़ाने में बहुत दिलचस्पी है - विशेष रूप से उन्हें कैसे प्रोग्राम करना है। आरंभ करने के बारे में कोई मार्गदर्शन बहुत मददगार होगा।
जवाबों:
आप क्वांटम कंप्यूटरों के लिए एक परिचय के साथ शुरू कर सकते हैं जैसे कि वोक्सएक्सड डेज़ विएना 2018 से एक - यह एक प्रोग्रामिंग पृष्ठभूमि वाले लोगों के लिए है, लेकिन क्वांटम यांत्रिकी में कोई पूर्व ज्ञान नहीं है। उसके बाद आप आईबीएम क्वांटम अनुभव या Microsoft क्वांटम डेवलपमेंट किट के लिए गाइड की जांच कर सकते हैं ।
इसके अलावा, YouTube पर वीडियो का भार है, उदाहरण के लिए, इससे आपको विषय को अधिक गहराई से समझने में मदद मिल सकती है।
मुझे लगता है कि क्वांटम प्रोग्रामर को क्वांटम भौतिकी और रैखिक बीजगणित के बारे में जानने की आवश्यकता नहीं होगी। ये निश्चित रूप से ऐसी चीजें हैं जो एक क्वांटम प्रोग्रामर के ज्ञान को व्यापक बनाने में मदद करेंगी, लेकिन उन्हें किसी और चीज के रूप में नहीं माना जाना चाहिए।
फिर भी, एक नवोदित क्वांटम प्रोग्रामर की मदद करने के लिए अधिकांश संसाधन रैखिक बीजगणित की धारणा के साथ शुरू होते हैं। जो लोग ज्यादातर Qiosit पर ध्यान केंद्रित नहीं करते हैं, IBM के क्वांटम डिवाइस के लिए SDK (और उनमें से कुछ मेरे द्वारा लिखे गए थे)।
आप जिस सरल कार्यक्रम के साथ आ सकते हैं, वह "हैलो वर्ल्ड" है। आप क्वांटम कंप्यूटर के लिए कैसे करते हैं? मेरा प्रस्ताव इमोटिकॉन्स का एक सुपरपोजिशन है ।
एक बार जब आप क्वांटम प्रोग्रामिंग में "हैलो वर्ल्ड" से आगे निकल गए, तो आप कुछ और जटिल करना चाहते हैं। अक्सर लोग साधारण खेल बनाते हैं। तो चलो एक क्वांटम कंप्यूटर के साथ करते हैं। मैंने बैटलशिप की ।
आपको QISKit ट्यूटोरियल में क्वांटम प्रोग्रामिंग के ये और कई उदाहरण मिलेंगे । मुझे लगता है कि नए क्वांटम प्रोग्रामर्स के लिए शायद सबसे अच्छी जगह यह है कि क्या किया जा सकता है, और यह कैसे करना है।
pyQuil पायथन में एक ओपन सोर्स क्वांटम प्रोग्रामिंग लाइब्रेरी है। प्रलेखन में क्वांटम कंप्यूटिंग के लिए एक हाथ शामिल है, जहां आप प्रोग्रामिंग सीखते हैं। यह किसी भी भौतिकी पृष्ठभूमि को नहीं मानता है।
यहाँ मुख्य विषयों के कुछ लिंक दिए गए हैं:
क्यूसी के पीछे के सिद्धांत को समझने के लिए क्वांटम यांत्रिकी को पूरी तरह से समझना आवश्यक नहीं है। मैं गणित बीएससी / प्रोग्रामर हूं और मैंने विषय के बारे में पढ़ा और पुराने एडएक्स क्यूसी कोर्स भी किया (दुर्भाग्य से यह उपलब्ध नहीं है, लेकिन अन्य हैं)। मुझे लगता है कि मैं कह सकता हूं कि मैं क्यूसी की समझ को समझता हूं, लेकिन मुझे क्वांटम मैकेनिक्स के बारे में कुछ नहीं पता है।
मुख्य भाग यह है कि क्वांटम कम्प्यूटिंग ज्यादातर रैखिक बीजगणित का उपयोग करता है, जो गणित पर आधारित होता है जो आमतौर पर इंजीनियरिंग / कंप्यूटर विज्ञान स्नातक अध्ययन में पढ़ाया जाता है। इसके विपरीत वास्तविक क्वांटम यांत्रिकी है जो अनंत-आयामी रिक्त स्थान (या कार्यात्मक विश्लेषण, यदि आप चाहें) का उपयोग करता है।
यदि आप इन स्नातक गणित विषयों के साथ सहज महसूस करते हैं, तो आप Susskind के क्वांटम यांत्रिकी की जांच कर सकते हैं : सैद्धांतिक न्यूनतम - यह वास्तव में 'वास्तविक' क्वांटम यांत्रिकी के बारे में नहीं है, यह ज्यादातर सामान है जो QC के लिए उपयोगी है। BTW पूरी सैद्धांतिक न्यूनतम पुस्तक श्रृंखला उन लोगों के उद्देश्य से है जो कुछ गणित (जैसे कंप्यूटर वैज्ञानिक, या इंजीनियरिंग की बड़ी कंपनियों) को जानते हैं, और भौतिकी के बारे में अधिक जानना चाहते हैं। ऑनलाइन भी बहुत सारे पाठ्यक्रम हैं, उदाहरण के लिए, edX पर नए पाठ्यक्रम हैं, लेकिन मैंने उनमें से कोई भी नहीं किया, इसलिए मैं एक की सिफारिश नहीं कर सकता।
यदि आप सीखना चाहते हैं कि क्वांटम प्रोग्रामिंग फ्रेमवर्क जैसे Q # , pyQuil और QISKit में क्वांटम सर्किट लिखना कैसे सीखें , तो मैं हाल ही में लॉस एलामोस नेशनल लेबोरेटरी से शुरुआती के लिए क्वांटम एल्गोरिथम इंप्लीमेंटेशन शीर्षक के साथ इस पेपर की सिफारिश करता हूं । यह समझने के लिए एक महान संसाधन है कि विभिन्न क्वांटम एल्गोरिदम को कैसे संकलित किया जाए और साथ ही साथ उनके oracles और विशिष्ट सबरूटीन्स को IBM Q अनुभव के साथ क्वांटम सर्किट के रूप में लागू किया जाए। मैं आपको उक्त प्रोग्रामिंग फ्रेमवर्क में से किसी में भी उन्हें लागू करने की सलाह दूंगा और जैसे ही आप जाते हैं, वैसे नट-नट विवरणों को सीखें।
क्वांटम कंप्यूटरों को प्रोग्राम किया जाता है (प्रोग्रामिंग भाषाओं का प्रतिनिधित्व करते हुए) तथाकथित क्वांटम सर्किट। ये क्वांटम गेट्स का एक क्रम हैं और साथ ही वह जानकारी जिस पर वे क्वांटम बिट्स (क्वैबिट्स) कार्य करते हैं।
केवल एक चीज जिसे आपको क्वांटम गेट्स के बारे में जानना है, वह यह है कि वे घुमावों का प्रतिनिधित्व करते हैं (एक उच्च आयामी अंतरिक्ष में, तथाकथित हिल्स स्पेस)। इसलिए वे प्रतिवर्ती हैं: क्वांटम कंप्यूटरों को प्रतिवर्ती तर्क के साथ क्रमादेशित किया जाता है।
क्वांटम गेट्स क्या घूमते हैं? यह हाइपर्सफ्रीज है, जिसकी सतह पर रहने वाले राज्य रहते हैं। कम्प्यूटेशनल आधार के प्रत्येक राज्य ( , , ,सामान्य डायराक संकेतन में 2-क्विट सिस्टम के लिए) गुणांक के रूप में या तथाकथित संभावना आयाम के रूप में एक जटिल संख्या प्राप्त करता है। आधार वैक्टर ऑर्थोगोनल हैं और राज्य के हिल्बर्ट स्थान को फैलाते हैं, संभावना आयाम को इसमें निर्देशांक के रूप में देखा जा सकता है। यह वह तस्वीर है जिसमें क्वांटम गेट्स प्रभाव घूर्णन करते हैं। आप पाएंगे कि भौतिक विज्ञानी अक्सर एक अलग तस्वीर का उपयोग करते हैं, सिंगल क्विट सिस्टम के लिए बलोच क्षेत्र, जिसमें क्वांटम गेट भी रोटेशन का कारण बनता है (लेकिन कभी-कभी एक बड़े कोण से या एक द्वारा जो कि पूरी तरह से उस चित्र में छोड़ दिया जाता है)।
सभी पारंपरिक तर्क को क्वांटम कंप्यूटर द्वारा सबसे पहले इसे प्रतिवर्ती तर्क (जिसमें ancilla बिट्स की आवश्यकता हो सकती है) में व्यक्त करके लागू किया जा सकता है। शास्त्रीय नहीं गेट एक्स क्वांटम गेट से मेल खाता है, लेकिन शास्त्रीय मामले के विपरीत, जहां केवल 1-बिट प्रतिवर्ती गेट ही पहचान और नॉट गेट हैं, एक क्वांटम कंप्यूटर में घुमाव के अनुसार चार समान गेट (X, Y, Z होते हैं) बलोच क्षेत्र, पहचान)। इसके अलावा, आपके पास ऐसे घुमाव हो सकते हैं जो केवल कुछ ही अंशों से घूमते हैं, जहां तक ये द्वार घूमते हैं; कुछ विशेष रूप से दिलचस्प लोगों के विशेष नाम और संक्षिप्त नाम हैं जैसे कि हैमर्ड गेट या एच गेट जो सभी राज्यों के समान सुपरपोजिशन बनाता है।
दुर्भाग्य से, प्रारंभिक क्वांटम सॉफ्टवेयर इंजीनियरों को क्वांटम कंप्यूटर हार्डवेयर के बारे में थोड़ा जानना होगा जो वे उपयोग कर रहे होंगे: क्वांटम गेट के प्रभावी रोटेशन के मनमाने ढंग से और लगातार चयन योग्य कोण के कारण, क्वांटम कंप्यूटरों के अनुरूप तत्व का एक प्रकार है आवश्यक रूप से त्रुटियां पैदा होती हैं (और भौतिक क्वांटम कंप्यूटर में उससे भी अधिक त्रुटि स्रोत हैं)। इससे निपटने का एक तरीका है, क्वांटम त्रुटि सुधार जो त्रुटियों को दूर करता है और बाध्य त्रुटियों के साथ मनमाने ढंग से जटिल संगणना हासिल करने के लिए उनमें से सबसे अधिक संभावित विवेक को सही करता है। लेकिन अनुकूलन का अर्थ यह होगा कि क्वांटम त्रुटि सुधार के एक विकल्प के साथ एक क्वांटम कंप्यूटर कुछ क्वांटम गेट या अन्य की तुलना में एल्गोरिदम पर अधिक उपयुक्त होगा,