क्या क्वांटम कंप्यूटर के लिए एमुलेटर हैं?


64

क्या मेरे सामान्य कंप्यूटर में क्वांटम कंप्यूटर का अनुकरण करने का कोई तरीका है, जिससे मैं क्वांटम प्रोग्रामिंग भाषाओं (जैसे क्यू # ) का परीक्षण और प्रयास कर पाऊंगा ? मेरा मतलब है कि मैं वास्तव में अपनी परिकल्पना का परीक्षण कर सकता हूं और सबसे सटीक परिणाम प्राप्त कर सकता हूं।

अपडेट: मैं वास्तव में क्वांटम कंप्यूटर का अनुकरण नहीं कर रहा हूं, लेकिन मुझे यकीन नहीं है कि अगर यह संभव है कि एक सामान्य गैर-क्वांटम आधारित पीसी पर कुशलतापूर्वक अनुकरण किया जाए।


जवाबों:


39

हां, यह संभव है (लेकिन धीमा)। मौजूदा कुछ जोड़े हैं (यह केवल एक आंशिक सूची है) एमुलेटर:

  • QDD: एक क्वांटम कंप्यूटर इम्यूलेशन लाइब्रेरी

    QDD एक C ++ लाइब्रेरी है, जो C ++ प्रोग्रामिंग वातावरण के संदर्भ में क्वांटम कंप्यूटिंग कंस्ट्रक्शन का अपेक्षाकृत सहज सेट प्रदान करता है। QDD इस मायने में विशिष्ट है कि क्वांटम कंप्यूटिंग का इसका अनुकरण क्वांटम राज्य के द्विआधारी निर्णय आरेख (BDD) प्रतिनिधित्व पर आधारित है।

  • jQuantum

    jQuantum एक प्रोग्राम है जो क्वांटम कंप्यूटर का अनुकरण करता है। आप इसके साथ क्वांटम सर्किट डिजाइन कर सकते हैं और उन्हें चला सकते हैं। क्वांटम रजिस्टर की वर्तमान स्थिति को चित्रित किया गया है।

  • QCE

    क्यूसीई एक सॉफ्टवेयर उपकरण है जो क्वांटम कंप्यूटर के विभिन्न हार्डवेयर डिजाइनों का अनुकरण करता है। QCE एक भौतिक क्वांटम प्रोसेसर के संचालन को नियंत्रित करने वाली भौतिक प्रक्रियाओं का अनुकरण करती है, कड़ाई से क्वांटम यांत्रिकी के नियमों के अनुसार। QCE यथार्थवादी प्रायोगिक स्थितियों के तहत क्वांटम एल्गोरिदम को डिबग और निष्पादित करने के लिए एक वातावरण भी प्रदान करता है।

(इसके अलावा, Q # केवल MS के QDK के साथ काम करता है , धन्यवाद @ पावेल)

इन सभी के लिए नकारात्मक पक्ष सरल है: वे अभी भी बाइनरी (गैर-क्वांटम) सर्किट पर चलते हैं। मेरे ज्ञान का सबसे अच्छा करने के लिए, इन चीजों को चलाने के लिए उपयोग करने के लिए आसानी से सुलभ क्वांटम कंप्यूटर नहीं है । और चूंकि यह एकल बाइट को व्यक्त करने के लिए कई बाइनरी बिट्स लेता है, क्वांटम प्रोग्राम को अनुकरण करने के लिए आवश्यक कम्प्यूटेशनल शक्ति की मात्रा बहुत जल्दी हो जाती है।

मैं इस विषय पर एक पेपर उद्धृत करूँगा ( जे। एलकॉक, 2010 ):

हमारे मूल्यांकन से पता चलता है कि हमारे कार्यान्वयन बहुत सटीक हैं, लेकिन साथ ही हम इसे प्राप्त करने के लिए एक महत्वपूर्ण मात्रा में अतिरिक्त मेमोरी का उपयोग करते हैं। सटीकता के लिए हमारे उद्देश्यों को कम करने से हमें प्रतिनिधित्व आकार में कमी करने की अनुमति मिलेगी, और इसलिए स्मृति की समान मात्रा के साथ अधिक मात्रा का अनुकरण करें।

पृष्ठ 89, खंड 5.1

जैसे-जैसे हमारे कार्यान्वयन अधिक सटीक होते जाते हैं, वे भी धीमी होती जाती हैं।

टीएल; डीआर: यह संभव है, और कुछ एमुलेटर मौजूद हैं, लेकिन बड़ी मात्रा में क्वैबिट के लिए कोई भी बहुत कुशल नहीं है।


ध्यान दें कि इनमें से कोई भी एमुलेटर (वर्तमान में) Q # द्वारा उपयोग नहीं किया जा सकता है, जो केवल Microsoft के QDK के साथ काम करता है।
पावेल

3
आपने जो कहा है, इसके अलावा: आईबीएम क्वांटम अनुभव पर कोड चलाने के लिए प्रोग्रामेटिक तरीके हैं जो वास्तविक क्वांटम कंप्यूटर प्रदान करते हैं - क्यू # कोड नहीं, बल्कि क्यूएएसएम। QISKit यहां जाने का रास्ता है। github.com/QISKit
blalasaadri

आपने जो कहा वह समझ में आता है क्योंकि सिमुलेशन एक कंप्यूटर पर चलाया जाता है। लेकिन क्या एक ही गति प्राप्त करना संभव है यदि कई कंप्यूटरों का उपयोग किया गया था?
iOS कैलेंडर Patchthecode.com

26

हां, एक सामान्य पर एक क्वांटम कंप्यूटर का अनुकरण करना संभव है - लेकिन आपको सबसे अधिक दक्षता का त्याग करना होगा।

2nn


साधन

आपको क्यू # में रुचि हो सकती है क्योंकि अन्य उत्तर दिए गए हैं। कुछ और एमुलेटर:

  • क्वांटम कम्प्यूटिंग खेल का मैदान

    क्वांटम कम्प्यूटिंग प्लेग्राउंड एक ब्राउज़र-आधारित वेबजीएल क्रोम प्रयोग है। यह एक साधारण आईडीई इंटरफेस के साथ GPU-त्वरित क्वांटम कंप्यूटर, और डीबगिंग और 3 डी क्वांटम राज्य विज़ुअलाइज़ेशन सुविधाओं के साथ अपनी स्वयं की स्क्रिप्टिंग भाषा प्रदान करता है। क्वांटम कम्प्यूटिंग प्लेग्राउंड कुशलतापूर्वक क्वांटम रजिस्टरों को 22 क्विबिट तक अनुकरण कर सकता है, ग्रोवर और शोर के एल्गोरिदम को चला सकता है, और इसमें कई प्रकार के क्वांटम गेट्स हैं जो स्क्रिप्टिंग भाषा में ही बनाए गए हैं।

  • QX सिम्युलेटर

    क्यूएक्स सिमुलेटर एक सार्वभौमिक क्वांटम कंप्यूटर सिम्युलेटर है जिसका विकास क्वाटेक में नादेर खम्मासी द्वारा किया गया है। क्यूएक्स क्वांटम एल्गोरिथ्म डिजाइनरों को क्वांटम कंप्यूटर पर अपने क्वांटम सर्किट के निष्पादन का अनुकरण करने की अनुमति देता है। सिम्युलेटर एक निम्न-स्तरीय क्वांटम असेंबली भाषा अर्थात् क्वांटम कोड को परिभाषित करता है जो उपयोगकर्ताओं को एक सरल पाठ्य स्रोत कोड फ़ाइल में अपने सर्किट का वर्णन करने की अनुमति देता है। स्रोत कोड फ़ाइल को तब सिम्युलेटर के इनपुट के रूप में उपयोग किया जाता है जो इसकी सामग्री को निष्पादित करता है।

  • क्वांटम ++

    क्वांटम ++ एक आधुनिक C ++ 11 सामान्य उद्देश्य क्वांटम कंप्यूटिंग लाइब्रेरी है, जो केवल टेम्पलेट हेडर फ़ाइलों से बना है। क्वांटम ++ मानक C ++ 11 में लिखा गया है और इसमें बहुत कम बाहरी निर्भरता है, केवल Eigen 3 रैखिक बीजगणित हेडर-ओनली टेम्प्लेट लाइब्रेरी का उपयोग करते हुए और यदि उपलब्ध हो तो OpenMP मल्टी-प्रोसेसिंग लाइब्रेरी।

  • क्वांटम कंप्यूटर भाषा

    शास्त्रीय कंप्यूटर विज्ञान के साथ कई सामान्य अवधारणाओं के बावजूद, क्वांटम कंप्यूटिंग को अभी भी सैद्धांतिक भौतिकी के व्यापक क्षेत्र के भीतर एक विशेष अनुशासन के रूप में माना जाता है। [...] QCL (क्वांटम कम्प्यूटेशन लैंग्वेज) इस अंतर को भरने की कोशिश करती है: QCL एक उच्च स्तरीय, क्वांटम कंप्यूटर के लिए आर्किटेक्चर स्वतंत्र प्रोग्रामिंग भाषा है, जिसमें सी या पास्कल जैसी शास्त्रीय प्रक्रियात्मक भाषाओं से व्युत्पन्न वाक्य रचना है। यह एक निरंतर औपचारिकता में क्वांटम एल्गोरिदम (शास्त्रीय घटकों सहित) के पूर्ण कार्यान्वयन और सिमुलेशन के लिए अनुमति देता है।

  • क्वांटिकी पर अधिक प्रासंगिक एमुलेटर पाए जा सकते हैं


21

हां, एक शास्त्रीय कंप्यूटर पर क्वांटम कम्प्यूटेशन का अनुकरण करना संभव है। लेकिन सिमुलेशन की लागत क्वॉन्ट काउंट और / या सर्किट डेप्थ और / या विशेष ऑपरेशन काउंट के साथ तेजी से बढ़ती है।

विचारों को जल्दी से आज़माने के लिए, मेरा सिम्युलेटर क्वर्क महान है। यह एक ओपन-सोर्स ड्रैग-एंड-ड्रॉप क्वांटम सर्किट सिम्युलेटर है जो आपके वेब ब्राउज़र में चलता है। आप एक लाइव संस्करण को algassert.com/quirk पर एक्सेस कर सकते हैं ।

यहाँ क्वर्क के उदाहरण ग्रोवर सर्किट का एक स्क्रीनशॉट है, जो "छिपे हुए" राज्य को ट्रैक करने के लिए मध्यवर्ती राज्य डिस्प्ले के साथ इंस्ट्रूमेंट किया गया है:

क्वर्की का स्क्रीनशॉट


16

यदि आप विशेष रूप से Q # को देख रहे हैं, तो एक एमुलेटर के साथ उपयोग करना सुपर आसान है - वास्तव में, क्यू # होना संभव नहीं है, लेकिन एमुलेटर नहीं है, वे एक साथ बंडल किए गए हैं।

आरंभ करने के लिए, पहले आपको Microsoft की वेबसाइट से .NET कोर डाउनलोड करना होगा ।

जब आप Microsoft की क्वांटम डेवलपमेंट किट को dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"Microsoft की वेबसाइट के माध्यम से डाउनलोड करते हैं, तो यह भाषा और Microsoft के अपने एमुलेटर दोनों को एक साथ डाउनलोड करता है।

एक नया क्यू # प्रोजेक्ट बनाना ( dotnet new console -lang Q#) एमुलेटर का उपयोग करने के लिए स्वचालित रूप से इसे कॉन्फ़िगर करेगा, इसलिए जब आप कुछ क्यू # में टाइप करते हैं और प्रोजेक्ट को "बस काम करता है" चलाते हैं।


3

हाँ। यदि आप इसे स्वयं बनाते हैं, तो बुल्सस्पीसन M9600 श्रृंखला के समान चश्मे के साथ एक 3 पार्टी कंप्यूटर ढूंढें, या € 100K + के साथ आएं और एटोस से एक सिस्टम खरीदें।

BullSequana M9600 श्रृंखला और Atos QLM के बीच समानता को नोटिस करें । अतीस QLM बनाम M9600

विभिन्न सॉफ्टवेयर के साथ एक ही बॉक्स (और शायद आंतरिक घटक) (लेकिन आप अपने खुद के, क्यू # का उपयोग करना चाहते थे)। एटोस का दावा है: "दुनिया में सबसे अधिक प्रदर्शन करने वाला क्वांटम सिम्युलेटर"। मुझे उस पर यकीन नहीं है, लेकिन 30 qubit संस्करण के लिए चश्मा उपलब्ध हैं, बस दो इंटेल CPU और 1TB मेमोरी।

एटोस QLM .PDF ब्रोशर

क्या मेरे सामान्य कंप्यूटर में क्वांटम कंप्यूटर का अनुकरण करने का कोई तरीका है , जिससे मैं क्वांटम प्रोग्रामिंग भाषाओं (जैसे क्यू #) का परीक्षण और प्रयास कर पाऊंगा ?

यदि आप केवल 256GB मेमोरी और 1-24TB स्वैप ड्राइव का उपयोग करते हैं तो यह धीमा होगा लेकिन यह काम करेगा

मेरा मतलब है कि मैं वास्तव में अपनी परिकल्पना का परीक्षण कर सकता हूं और सबसे सटीक परिणाम प्राप्त कर सकता हूं ।

विवरणिका से उद्धरण:

"एटोस क्वांटम लर्निंग मशीन क्वांटम प्रोग्राम के सटीक निष्पादन की गणना दोहरे अंकों की सटीकता के साथ करती है। यह भौतिकी के नियमों का अनुकरण करती है , जो क्वांटम कंप्यूटिंग के बहुत ही दिल में हैं। यह क्वांटम के लिए मौजूदा क्वांटम प्रोसेसर से बहुत अलग है। शोर, क्वांटम विकृति, और विनिर्माण पक्षपात, साथ ही प्रदर्शन बाधाओं। एटोस क्वांटम लर्निंग मशीन पर सिमुलेशन डेवलपर्स को अपने अनुप्रयोगों और एल्गोरिदम पर ध्यान केंद्रित करने में सक्षम बनाता है, बिना क्वांटम मशीनों के उपलब्ध होने का इंतजार किए बिना "।

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


3

मुझे लगता है कि इस विषय के बारे में एक अच्छा "अवलोकन" यहां पाया जा सकता है: क्वांटिकी

उनके पास कई भाषाओं में क्वांटम कंप्यूटर सिमुलेटरों की एक सूची है, कुछ सिमुलेटरों का उल्लेख यहां पहले किया गया है। हालांकि, वे एक सूची रखते हैं जिसे वे परियोजना की स्थिति के बारे में सूचित (या सूचित करने का प्रयास) करने के लिए अद्यतन करते हैं। कुछ "पुस्तकालय" हैं जैसे:

हास्केल

qchas (qchas: क्वांटम एल्गोरिदम को लागू करने के लिए एक पुस्तकालय) - क्वांटम एल्गोरिदम को लागू करने के लिए उपयोगी एक पुस्तकालय। इसमें क्वांटम गेट्स, क्यूबिट्स की परिभाषाएँ हैं।

अजगर

क्यूबिटर : क्यूबिटर परियोजना का उद्देश्य अंततः शास्त्रीय कंप्यूटरों पर क्वांटम सर्किटों की डिजाइनिंग और अनुकरण के लिए, पायथन में लिखे गए उपकरणों का एक पूरा सूट प्रदान करना है।

जावास्क्रिप्ट

jsqis : jsqis, इसके मूल में, जावास्क्रिप्ट में लिखा गया एक क्वांटम कंप्यूटर सिम्युलेटर है। यह क्वांटम रजिस्टरों की गणना और क्वांटम गेट्स के माध्यम से उनके हेरफेर की अनुमति देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.