"أعتقد أنني أستطيع القول بأمان أنه لا أحد يفهم ميكانيكا الكم" ، ريتشارد فاينمان
لقد جذب موضوع الحوسبة الكمومية دائمًا الكتاب والصحفيين التقنيين. أعطتها إمكاناتها الحسابية والتعقيد لها نوع من الهالة باطني. في كثير من الأحيان تصف المقالات والرسوم البيانية الموضوعية بالتفصيل جميع أنواع الاحتمالات لهذه الصناعة ، في حين بالكاد تتطرق إلى قضايا تطبيقه العملي: قد يؤدي هذا إلى تضليل قارئ غير دقيق للغاية.
في المقالات العلمية الشائعة ، تم حذف أوصاف الأنظمة الكمومية وعبارات مثل:
يمكن أن تكون البتة العادية مساوية لـ "1" أو "0" ، ولكن يمكن أن تساوي البادئة في نفس الوقت "1" و "0".إذا كنت محظوظًا جدًا (لست متأكدًا منها) ، فسيخبرونك بما يلي:
الكوبيت هو في تراكب بين "1" و "0".لا يبدو أي من هذه التفسيرات مقبولًا ، لأننا نحاول صياغة ظاهرة ميكانيكية ميكانيكية باستخدام أدوات لغوية تم إنشاؤها في عالم تقليدي للغاية. لشرح مبادئ الحوسبة الكمومية بوضوح ، من الضروري استخدام لغة أخرى - الرياضيات.
في هذا الدليل ، سأتحدث عن الأدوات الرياضية اللازمة لنمذجة وفهم أنظمة الحوسبة الكمومية ، وكيفية توضيح وتطبيق منطق الحوسبة الكمومية. علاوة على ذلك ، سأقدم مثالًا على خوارزمية كمية وأقول ما هي ميزتها على جهاز كمبيوتر تقليدي.
سأبذل قصارى جهدي للحديث عن كل هذا بلغة مفهومة ، لكن ما زلت آمل أن يكون لدى قراء هذه المقالة أفكار أساسية حول الجبر الخطي والمنطق الرقمي (يتم وصف الجبر الخطي
هنا ، والمنطق الرقمي
هنا ).
للبدء ، دعنا نتجاوز مبادئ المنطق الرقمي. يعتمد على استخدام الدوائر الكهربائية لإجراء العمليات الحسابية. لجعل وصفنا أكثر تجريدًا ، نقوم بتبسيط حالة السلك إلى "1" أو "0" ، والتي تتوافق مع حالات "التشغيل" أو "إيقاف التشغيل". بعد أن بنيت الترانزستورات في تسلسل معين ، سنقوم بإنشاء ما يسمى العناصر المنطقية التي تأخذ واحدة أو أكثر من قيم إشارات الإدخال وتحويلها إلى إشارة الإخراج على أساس قواعد معينة من المنطق المنطقي.
عناصر المنطق المشترك وجداول الدولة
على أساس سلاسل هذه العناصر الأساسية ، يمكنك إنشاء عناصر أكثر تعقيدًا ، وعلى أساس سلاسل العناصر الأكثر تعقيدًا ، يمكننا في نهاية المطاف الاعتماد على الحصول على نظير للمعالج المركزي بدرجة عالية من التجريد.
كما ذكرت سابقًا ، نحن بحاجة إلى طريقة لرسم خريطة المنطق الرقمي. أولاً ، دعنا نقدم المنطق الرياضي التقليدي. باستخدام الجبر الخطي ، يمكن تمثيل البتات الكلاسيكية ذات القيم "1" و "0" كمتجهين عمودين:
حيث الأرقام على اليسار هي
تدوين ناقل
Dirac . بتمثيل وحدات البت لدينا بهذه الطريقة ، يمكننا نمذجة العمليات المنطقية على وحدات البت باستخدام تحويلات المتجهات. يرجى ملاحظة: على الرغم من أنه عند استخدام جزئين في العناصر المنطقية ، يمكنك تنفيذ العديد من العمليات ("AND" (AND) ، "لا" (NOT) ، "استبعاد أو" (XOR) ، وما إلى ذلك) ، عند استخدام واحدة من الممكن إجراء أربع عمليات فقط: تحويل الهوية والنفي وحساب الثابت "0" وحساب الثابت "1". أثناء التحويل المتماثل ، تظل البتة دون تغيير ، وعند الإلغاء ، يتم عكس قيمة البتة (من "0" إلى "1" أو من "1" إلى "0") ، وحساب الثابت "1" أو "0" يعين البتة إلى "1" أو "0" بغض النظر عن قيمتها السابقة.
بناءً على تمثيلنا الجديد للقليل ، من السهل جدًا إجراء العمليات على البتة المقابلة باستخدام تحويل المتجه:
قبل الانتقال ، لنلقِ نظرة على مفهوم
الحوسبة القابلة للانعكاس ، والذي يعني فقط أنه لضمان عكس عملية أو عنصر منطقي ، من الضروري تحديد قائمة بقيم إشارة الدخل بناءً على إشارات الخرج وأسماء العمليات المستخدمة. وبالتالي ، يمكننا أن نستنتج أن تحويل الهوية ونفيها يمكن عكسهما ، لكن عملية حساب الثوابت "1" و "0" ليست كذلك. نظرًا
لوحدة ميكانيكا الكم ، تستخدم أجهزة الكمبيوتر الكمومية عمليات قابلة للعكس بشكل حصري ، وهذا هو سبب تركيزنا عليها. بعد ذلك ، سوف نقوم بتحويل العناصر التي لا رجعة فيها إلى عناصر قابلة للانعكاس لضمان إمكانية استخدامها بواسطة كمبيوتر الكم.
باستخدام
منتج الموتر من وحدات البت الفردية ، يمكن تمثيل العديد من وحدات البت:
الآن بعد أن أصبح لدينا جميع المفاهيم الرياضية اللازمة تقريبًا ، سننتقل إلى أول عنصر منطق كمي. هذا هو مشغل
CNOT ، أو "NOT" (NOT) الخاضع للسيطرة ، وهو أمر ذو أهمية كبيرة في الحوسبة العكوسة والكمية. يتم تطبيق عنصر CNOT على جزئين وإرجاع بتتين. يتم تعيين البت الأول كـ "تحكم" ، والثاني - "تحكم". إذا تم ضبط بت التحكم على "1" ، فإن بت التحكم يغير قيمتها ؛ إذا تم ضبط بت التحكم على "0" ، فلن يتغير بت التحكم.
يمكن تمثيل عامل التشغيل هذا كمتجه للتحول التالي:
لإظهار كل ما تعاملنا معه بالفعل ، سأوضح لك كيفية استخدام عنصر CNOT فيما يتعلق بالعديد من البتات:
نلخص ما قيل بالفعل: في المثال الأول ، نحلل | 10⟩ إلى أجزاء من منتج الموتر الخاص بنا ونستخدم مصفوفة CNOT للحصول على حالة مطابقة جديدة للمنتج ؛ ثم نعاملها على | 11⟩ وفقًا لجدول قيم CNOT المعطاة مسبقًا.
لذلك ، تذكرنا جميع القواعد الرياضية التي من شأنها أن تساعدنا في التعامل مع الحسابات التقليدية والبتات العادية ، وأخيرا يمكننا الانتقال إلى الحوسبة الكمومية الحديثة.
إذا قرأت ما يصل إلى هذا المكان ، فستكون لدي أخبار سارة لك: يمكن بسهولة التعبير عن البتات في الرياضيات. بشكل عام ، إذا كان من الممكن ضبط البتة الكلاسيكية (cbit) على | 1⟩ أو | 0⟩ ، فإن البادئة هي ببساطة في تراكب ويمكن أن تساوي | 0 | و | 1⟩ قبل القياس. بعد القياس ، ينهار عند | 0⟩ أو | 1⟩. بمعنى آخر ، يمكن تمثيل الكوبيت في تركيبة خطية من | 0⟩ و | 1⟩ وفقًا للصيغة أدناه:
حيث
a₀ و
a₁ يمثلان ، على التوالي ، الاتساع | 0⟩ و | 1⟩. يمكن اعتبارها "احتمالات كمية" ، والتي تمثل احتمالية انهيار qubit في أي من الحالات بعد قياسه ، لأنه في ميكانيكا الكم ينهار كائن في حالة تراكب في إحدى الحالات بعد التثبيت. وسّع هذا التعبير واحصل على ما يلي:
لتبسيط الشرح ، سأستخدم هذه الفكرة بالذات في هذه المقالة.
بالنسبة إلى هذا الكبت ، تكون فرصة الانهيار
a₀ بعد القياس هي | ₀ | ² ، وفرصة الانهيار في ₁ تساوي | ₁ | ². على سبيل المثال ، من أجل البادئة التالية:
فرصة الانهيار في "1" هي | 1 / √2 | ² أو ½ ، أي ، 50/50.
نظرًا لأن جميع الاحتمالات في المجموع في النظام الكلاسيكي يجب أن تعطي الوحدة (لتوزيع الاحتمال الكامل) ، يمكننا أن نستنتج أن مربعات القيم المطلقة للاتساعتين | 0⟩ و | 1 total يجب أن تجمع واحدة. بناءً على هذه المعلومات ، يمكننا تكوين المعادلة التالية:
إذا كنت معتادًا على علم المثلثات ، فستلاحظ أن هذه المعادلة تتوافق مع نظرية فيثاغورس (a² + b² = c²) ، وهذا يعني أنه يمكننا تمثيل بيانياً للحالات المحتملة للكمبيت في شكل نقاط على وحدة الوحدة ، وهي:
يتم تطبيق العوامل المنطقية والعناصر على البتات وكذلك في حالة البتات الكلاسيكية - بناءً على تحويل المصفوفة. يمكن استخدام جميع مشغلات المصفوفة القابلة للانعكاس التي تذكرنا حتى الآن ، ولا سيما CNOT ، للعمل مع وحدات البت. تتيح عوامل تشغيل المصفوفة هذه إمكانية استخدام كل من سعات البتات دون قياسها وانهيارها. اسمحوا لي أن أقدم لكم مثالًا على استخدام عامل التنفي لـ qubit:
قبل المتابعة ، أذكر أن الاتساع
a و ₁ هما في الواقع رقمان معقدان ، لذلك يمكن عرض حالة الكويبيت بشكل أكثر دقة على كرة وحدة ثلاثية الأبعاد ، تُعرف أيضًا باسم
كرة بلوخ :
ومع ذلك ، لتبسيط التفسير ، نحن هنا نقتصر على الأرقام الحقيقية.
يبدو أن الوقت قد حان لمناقشة بعض العناصر المنطقية التي لها معنى حصريًا في سياق الحوسبة الكمومية.
أحد العناصر الأكثر أهمية هو "عنصر Hadamard": يستغرق بعض الشيء في حالة "0" أو "1" ويضعه في التراكب المقابل مع فرصة بنسبة 50 ٪ في طيه إلى "1" أو "0" بعد القياس.
لاحظ أن هناك رقم سالب في الجانب الأيمن السفلي من مشغل Hadamard. هذا يرجع إلى حقيقة أن نتيجة استخدام المشغل تعتمد على قيمة إشارة الدخل: - | 1⟩ أو | 0⟩ ، وبالتالي فإن الحساب يمكن عكسه.
هناك نقطة مهمة أخرى تتعلق بعنصر Hadamard وهي قابلية انعكاسها ، أي أنه يمكن أن يستغرق الأمر غيغا بايت في التراكب المقابل وتحويله إلى | 0⟩ أو | 1⟩.
هذا مهم للغاية لأنه يسمح لنا بالتحويل من حالة كمية دون تحديد حالة الكويبت - وبالتالي ، دون انهيارها. لذلك ، يمكننا هيكلة الحوسبة الكمومية على أساس مبدأ حتمي بدلاً من مبدأ احتمالي.
عوامل التشغيل الكمومية التي تحتوي على أرقام حقيقية حصرية هي عكس ذلك ، لذلك يمكننا تقديم نتيجة تطبيق المشغل على الكوابت كتحويل داخل دائرة الوحدة في شكل آلة الحالة:
وبالتالي ، يتم تحويل qubit ، التي تظهر حالتها في الرسم البياني أعلاه ، بعد تطبيق عملية Hadamard إلى الحالة المشار إليها بواسطة السهم المقابل. وبالمثل ، يمكننا أن نبني آلة حالة أخرى توضح تحول الكوابت باستخدام عامل النفي ، كما هو موضح أعلاه (المعروف أيضًا باسم مشغل نفي باولي ، أو انعكاس البتة) ، كما هو موضح أدناه:
لتنفيذ عمليات أكثر تعقيدًا باستخدام qubit لدينا ، يمكنك استخدام سلسلة من العديد من المشغلين أو تطبيق عناصر عدة مرات. مثال للتحول التسلسلي بناءً على
تمثيل سلسلة الكم كما يلي:
وهذا هو ، إذا بدأنا بت | 0⟩ ، فقم بتطبيق انعكاس البت ، ثم تشغيل Hadamard ، ثم انعكاس بت آخر ، ومرة أخرى عملية Hadamard ، وبعدها انعكاس البت الأخير ، نحصل على المتجه على الجانب الأيمن من السلسلة. من خلال تركيب آلات الحالة المختلفة فوق بعضها البعض ، يمكننا أن نبدأ بـ | 0⟩ وتعقب الأسهم الملونة المقابلة لكل تحويل من أجل فهم كيف يعمل كل هذا.
نظرًا لأننا قطعنا هذا الحد ، فقد حان الوقت للنظر في واحدة من أنواع خوارزميات الكم ، وهي خوارزمية
Deutsch-Joji ، وإظهار ميزتها على جهاز كمبيوتر كلاسيكي. تجدر الإشارة إلى أن خوارزمية Deutsch-Yogi محددة تمامًا ، أي أنها تُرجع الإجابة الصحيحة في 100٪ من الحالات (على عكس العديد من الخوارزميات الكمية استنادًا إلى التحديد الاحتمالي للبتات).
دعنا نتخيل أن لديك صندوقًا أسود يحتوي على وظيفة / عامل على جزء واحد (تذكر - عند استخدام جزء واحد ، هناك أربع عمليات فقط ممكنة: تحويل ، ونفي ، وحساب الثابت "0" وحساب الثابت "1"). ما وظيفة يتم تنفيذها في مربع؟ لا تعرف أي منها ، ومع ذلك ، يمكنك فرز العديد من المتغيرات لقيم الإدخال التي تريدها وتقييم نتائج المخرجات.
ما عدد إشارات المدخلات والمخرجات التي سيتعين دفعها من خلال الصندوق الأسود لمعرفة الوظيفة المستخدمة؟ فكر في الأمر لثانية واحدة.
في حالة الكمبيوتر الكلاسيكي ، ستحتاج إلى إجراء استفساريين لتحديد الوظيفة المستخدمة. على سبيل المثال ، إذا أدخلت "1" حصلنا على "0" في الإخراج ، يصبح من الواضح أن إما وظيفة حساب الثابت "0" أو دالة النفي تستخدم ، وبعد ذلك سيكون عليك تغيير قيمة إشارة الدخل إلى "0" ونرى ما سيحدث عند الخروج.
في حالة الكمبيوتر الكمومي ، ستحتاج أيضًا إلى استعلامين ، حيث لا تزال تحتاج إلى قيمتين مختلفتين للإخراج لتحديد الوظيفة الدقيقة التي تنطبق على قيمة الإدخال. ومع ذلك ، إذا أعدنا صياغة السؤال قليلاً ، فقد تبيّن أن أجهزة الكمبيوتر الكمومية لا تزال تتمتع بميزة جدية: إذا أردت معرفة ما إذا كانت الوظيفة المستخدمة ثابتة أو متغيرة ، فسيكون التفوق على جانب أجهزة الكمبيوتر الكمومية.
الوظيفة المستخدمة في المربع هي متغير ، إذا كانت القيم المختلفة لإشارة الدخل تعطي نتائج مختلفة في المخرجات (على سبيل المثال ، التحويل المتطابق وانعكاس الشيء) ، وإذا لم تتغير قيمة الخرج بصرف النظر عن قيمة الإدخال ، فستكون الوظيفة ثابتة (على سبيل المثال ، حساب الثابت "1" أو حساب الثابت "0").
باستخدام خوارزمية الكم ، يمكنك تحديد ما إذا كانت الوظيفة في الصندوق الأسود ثابتة أو متغيرة بناءً على طلب واحد فقط. ولكن قبل أن نفحص بالتفصيل كيفية القيام بذلك ، نحتاج إلى إيجاد طريقة تتيح لنا هيكلة كل من هذه الوظائف على جهاز كمبيوتر الكم. نظرًا لأنه يجب أن تكون أي مشغلات كمومية قابلة للانعكاس ، فنحن نواجه مشكلة على الفور: وظائف حساب الثوابت "1" و "0" ليست كذلك.
غالبًا ما يتم استخدام الحل التالي في الحوسبة الكمومية: يتم إضافة معدل إخراج إضافي ، والذي يُرجع أي قيمة لإشارة الدخل المستلمة بواسطة الوظيفة.
وبالتالي ، يمكننا تحديد قيم الإدخال فقط على أساس القيمة التي تم الحصول عليها في الإخراج ، وتصبح الوظيفة قابلة للعكس. يخلق هيكل الدارات الكمومية الحاجة إلى بت إدخال إضافي. من أجل تطوير المشغلين المطابقين ، نفترض أنه تم ضبط البادئة الإضافية للإدخال على | 0⟩.
عند تطبيق نفس تمثيل السلسلة الكمومية التي استخدمناها سابقًا ، سنرى كيف يمكن تنفيذ كل عنصر من العناصر الأربعة (تحويل الهوية ، والنفي ، وحساب الثابت "0" وحساب الثابت "1") باستخدام عوامل تشغيل الكم.
على سبيل المثال ، بهذه الطريقة يمكنك تنفيذ وظيفة حساب الثابت "0":
حساب الثابت "0":هنا نحن لسنا بحاجة المشغلين على الإطلاق. ترجع أول وحدة إدخال للإدخال (التي أخذناها تساوي | 0⟩) بنفس القيمة ، وتعود قيمة الإدخال الثانية نفسها - كالمعتاد.
مع وظيفة حساب الثابت "1" ، يكون الموقف مختلفًا قليلاً:
حساب الثابت "1":نظرًا لأننا قبلنا أن يتم ضبط البادئة الأولى للإدخال على 0⟩⟩ ، كنتيجة لتطبيق عامل الانقلاب في البتات ، فإنه يعطي دائمًا واحدة في الخرج. وكالعادة ، يعطي qubit الثاني قيمة خاصة به في الإخراج.
عندما يتم عرض مشغل تحويل الهوية ، تبدأ المهمة في أن تصبح أكثر تعقيدًا. إليك كيفية القيام بذلك:
تحويل الهوية:يشير الرمز المستخدم هنا إلى عنصر CNOT: يشير الخط العلوي إلى بت التحكم ، ويشير الخط السفلي إلى بت التحكم. اسمحوا لي أن أذكرك أنه عند استخدام مشغل CNOT ، تتغير قيمة بت التحكم إذا كانت بت التحكم هي | 1⟩ ، ولكن تظل دون تغيير إذا كانت بت التحكم هي | 0⟩. نظرًا لأننا افترضنا أن قيمة الخط العلوي تساوي دائمًا | 0⟩ ، يتم تعيين قيمتها دائمًا إلى الخط السفلي.
وبالمثل ، نتصرف مع عامل النفي:
نفي:نحن ببساطة عكس قليلا في نهاية خط الانتاج.
الآن وبعد أن اكتشفنا العرض التقديمي الأولي ، دعونا نلقي نظرة على المزايا المحددة للكمبيوتر الكمومي على جهاز كمبيوتر تقليدي عندما يتعلق الأمر بتحديد ثبات أو تباين وظيفة مخفية في مربع أسود باستخدام استعلام واحد فقط.
لحل هذه المشكلة باستخدام الحوسبة الكمومية في طلب واحد ، من الضروري ترجمة بتات الإدخال إلى تراكب قبل نقلها إلى الوظيفة ، كما هو موضح أدناه:
يتم تطبيق عنصر Hadamard على نتيجة استخدام الدالة لاشتقاق وحدات البت من التراكب وجعل الخوارزمية حتمية. نبدأ النظام في الحالة | 00⟩ ولأسباب سأتحدث عنها الآن ، نحصل على النتيجة | 11⟩ إذا كانت الوظيفة المستخدمة ثابتة. إذا كانت الوظيفة داخل الصندوق الأسود متغيرة ، فبعد قياس النظام ، تُرجع النتيجة | 01⟩.
للتعامل مع بقية المقال ، دعنا ننتقل إلى الرسم التوضيحي الذي عرضته سابقًا:
باستخدام معامل انقلاب البت ، ثم تطبيق عنصر Hadamard على كل من قيمتي الإدخال المساوية لـ | 0⟩ ، سنضمن ترجمتهم إلى نفس التراكب | 0 | و | 1⟩ ، وهما:
باستخدام مثال نقل هذه القيمة لوظيفة ما إلى صندوق أسود ، من السهل إثبات أن كلتا الدالتين لهما قيمة ثابتة تعطي | 11⟩ للإخراج.
حساب الثابت "0":, , «1» |11⟩, :
«1»:: |1⟩, -1² = 1.
, |01⟩ ( ), .
:CNOT , , CNOT :
|01⟩, :
:, , , .
?
. . , , , , , .
— , , , - (, !). — ,
, |0⟩ |1⟩ .
,
« » (An Introduction to Quantum Algorithms) : , .