انتقل إلى المحتوى الرئيسي

تشغيل الدوائر الكمومية

شاهد الفيديو عن الدوائر الكمومية والبدائيات (primitives) مع أوليفيا لينز، أو افتح الفيديو في نافذة منفصلة على يوتيوب.

نظرة عامة على الدرس

سيكون هذا الدرس نظرة عامة رفيعة المستوى على أساسيات تشغيل حساب كمومي على نطاق واسع، من الأجهزة الكمومية المستخدمة إلى المبادئ التي ينبغي مراعاتها عند تصميم دائرة كمومية. من المأمول أن تعرف بنهاية هذا الدرس:

  1. ما هي حواسيب IBM® الكمومية فعليًا. ستحتاج إلى معرفة أساسيات ميزات الأجهزة لتصميم دوائرك الكمومية بصورة مثلى لتشغيلها عليها.

  2. ما هو Qiskit، وما هي البدائيات (primitives)، وكيف يمكننا استخدامها لإنشاء الدوائر الكمومية وتنفيذها.

  3. سير العمل النموذجي الذي نتبعه لتشغيل التجارب على نطاق واسع. يشمل ذلك اختيار أفضل البدائيات لحالة استخدامك، وتعيين مشكلة على دائرة كمومية، وتطبيق التخفيف من الأخطاء وإخمادها، مما يُمكّننا من استخراج أقصى طاقة من هذه الأجهزة.

الأجهزة — معالجات IBM الكمومية

لفهم كيفية اتخاذ خيارات مثلى في تصميم الدوائر الكمومية الكبيرة، نحتاج إلى معرفة شيء عن الأجهزة الفعلية التي ستُشغّل هذه الدوائر. لذا دعنا نناقش بإيجاز الكيوبتات الفيزيائية ومعالجات IBM الكمومية.

تُبنى معالجات IBM الكمومية باستخدام كيوبتات ترانسمون فائقة التوصيل، وهي دوائر كهربائية مكوّنة من وصلة جوزيفسون ومكثّف متصلَين بالتوازي. وصلة جوزيفسون هي محاثة غير خطية مصنوعة من طبقتَين متداخلتَين من معدن فائق التوصيل مع حاجز عازل بينهما. عند درجات حرارة منخفضة جدًا، تتزاوج الإلكترونات في الموصلات الفائقة لتشكّل ما يُعرف بأزواج كوبر. يمكن لأزواج كوبر النفاذ عفويًا عبر الحاجز العازل من أحد جانبَي الوصلة إلى الآخر. يُفضي سلوك النفاذ هذا إلى الخصائص غير الخطية التي تُنشئ كيوبتنا.

تُصنع خطوط نقل الموجات الدقيقة على الشريحة لإيصال إشارات الموجات الدقيقة إلى الكيوبتات. حين نُطبّق نبضات موجات دقيقة معايَرة بدقة — بتردد ومقدار وشكل ومدة محددة — على الخطوط، نستطيع جعل الكيوبتات تقوم بأشياء بعينها. هذا يُشكّل أساس بواباتنا الكمومية. نصنع الشريحة بحيث تتصل الكيوبتات المجاورة في بنية شبكية محددة تُسمى شبكة السداسي الثقيل (heavy-hex lattice). هذا الاتصال — المعروف بـالطوبولوجيا — لمعالجاتنا هو عامل مهم ينبغي مراعاته عند تصميم الدائرة، كما سنناقش لاحقًا في الدرس.

تنتقل تعليمات نبضة الموجة الدقيقة من حاسوبك عبر السحابة إلى إلكترونيات التحكم في درجة حرارة الغرفة، التي تفسّر تلك التعليمات وتُولّد النبضات فيزيائيًا. بعد أن تُنشئ صناديق التحكم النبضات، تسير عبر كبلات داخل مبرّد تمدد وصولًا إلى الشريحة الكمومية. تدخل الإشارة إلى الرنانات، عبر وصلة سلكية، ثم تتدفق أسفل خط النقل إلى كيوبتاتنا.

تمتلك IBM عشرات من الحواسيب الكمومية حول العالم، وقد رقّينا مؤخرًا أسطولنا ليضم حصريًا معالجات أكبر من 100 كيوبت. بعضها موجود في مركز بيانات IBM الكمومي في شمال ولاية نيويورك ومتاح عبر السحابة لاستخدام الجميع — وبعضها أنظمة مخصصة محلية تدعم الشركاء في شبكة IBM Quantum®. يمكنك تسجيل الدخول إلى quantum.cloud.ibm.com لمعرفة المعالجات التي يمكنك الوصول إليها.

يسرد كل معالج ثلاثة مقاييس للأداء ناقشناها في الدرس السابق، لكن كتذكير، هي: عدد الكيوبتات وEPLG وCLOPS.

  • عدد الكيوبتات. هذا واضح بذاته: هو إجمالي عدد الكيوبتات المتاحة للاستخدام على معالج كمومي واحد. لمشكلة كبيرة على نطاق واسع، ستحتاج إلى التأكد من استخدام معالج بعدد كيوبتات كافٍ للتعامل مع المشكلة. لكن عدد الكيوبتات وحده ليس الشيء الوحيد المهم.

  • EPLG، أو "الأخطاء لكل بوابة طبقية." هذا مقياس لجودة الكيوبتات والبوابات الكمومية. يقيس متوسط الخطأ الذي تُدخله كل بوابة في دائرة تُشابك كيوبتات مجاورة في سلسلة من 100 كيوبت. تريده أن يكون صغيرًا قدر الإمكان.

  • CLOPS، أو "عمليات طبقة الدائرة في الثانية." يُحدّد هذا سرعة المعالج. يقيس كم من طبقات دائرة قياسية معينة تُسمى دائرة الحجم الكمومي يمكن لوحدة المعالجة الكمومية (QPU) تنفيذها لكل وحدة زمنية. كلما ارتفع الرقم، زادت سرعة الحساب.

تتباين أهمية كل من هذه المقاييس وفق التطبيق المحدد، وفي دروس مستقبلية سننظر إلى أمثلة حقيقية لنرى كيف يمكن لكل من هذه العوامل أن يؤثر على نتيجة الحساب.

البرمجيات: Qiskit وQiskit Runtime

لتحويل مشكلتك الكمومية إلى تعليمات لحاسوب كمومي، ستستخدم Qiskit، مجموعة أدوات تطوير البرمجيات مفتوحة المصدر المصممة للعمل على الحواسيب الكمومية والتي طورتها IBM. يوجد أيضًا نظام Qiskit البيئي — مجموعة من البرمجيات التعليمية والوظائف التي تبني على وظائف Qiskit الأساسية أو تمدّها — وQiskit Runtime — خدمة حوسبة كمومية ونموذج برمجة يتيح للمستخدمين تصميم أعباء عملهم الكمومية وتحسينها وتنفيذها بكفاءة باستخدام بدائيات Qiskit Runtime.

البدائي (primitive) هو وحدة بناء صغيرة يمكنك استخدامها لتصميم دائرة أو مهمة أكبر. أهم بدائيَّين لنا هما المُعيِّن (sampler) والمُقدِّر (estimator)، وسنناقشهما بمزيد من التعمق قريبًا.

مع الإصدار الأخير من Qiskit v1.0، أصبح Qiskit أكثر كفاءة واستقرارًا من أي وقت مضى. لذا بالنسبة لمن بدأ للتو، لقد أتيت في الوقت المثالي! ومن كانوا مألوفين بالفعل مع Qiskit، سيحتاجون إلى تنزيل أحدث إصدار وإعادة تثبيته. للاطلاع على دليل التثبيت الكامل، زُر دليل تثبيت Qiskit.

الدوائر الكمومية

الآن نحن مستعدون لمناقشة أساس البرامج الكمومية: الدوائر الكمومية. سيكون هذا القسم مجرد مراجعة سريعة — إذا لم تكن مألوفًا بالدوائر الكمومية، نوصيك بالتعمق فيها أكثر بزيارة درس الدوائر الكمومية في دورة "أساسيات المعلومات الكمومية" قبل المتابعة.

الدائرة الكمومية هي شبكة من البوابات الكمومية والقياسات المترابطة بأسلاك تمثّل الكيوبتات، كما هو موضح أدناه. يمكن قراءة الدوائر الكمومية مثل تدوين موسيقي، من اليسار إلى اليمين، بدءًا من الزمن 0 على اليسار. تُسرد الكيوبتات الافتراضية — تلك التي لم تُخصَّص بعد لكيوبت فيزيائي على معالج — بترتيب تصاعدي من الأعلى إلى الأسفل.

تُمثَّل البوابات برموز مختلفة على أسلاك الكيوبتات المعنية. البوابات أحادية الكيوبت — كبوابة هاداماد الموضحة أدناه (الصندوق المحتوي على H) — تؤثر فقط على الكيوبت الذي وُضعت على سلكه. بوابات الكيوبتات المتعددة — كبوابة CNOT الموضحة أيضًا أدناه (علامة زائد في دائرة متصلة بخط بـ q0) — تؤثر على كيوبتين أو أكثر. في بوابة CNOT الموضحة، تتغير حالة q1 وفق حالة q0. بعد تنفيذ جميع البوابات، يمكننا قياس الكيوبتات، مشار إليها بالبوابات السوداء برمز القياس. تُكتب نتائج القياسات على السجلات الكلاسيكية، ناقل "meas" المزدوج الخطين أدناه.

مثال دائرة كمومية بسيطة

خاصية مهمة للدائرة هي عمقها. عمق الدائرة الكمومية هو الحد الأدنى من "طبقات" البوابات الكمومية المنفَّذة بالتوازي اللازمة لإكمال الدائرة. يمكن تنفيذ البوابات الكمومية بالتوازي (في الوقت ذاته) متى لم يكن لها أي كيوبتات مشتركة. لكن إذا عملت بوابتان أو أكثر على نفس الكيوبت فلا يمكن تنفيذهما بالتوازي — بل يجب تنفيذهما في طبقتَين منفصلتَين، إحداهما بعد الأخرى.

ثمة طريقة أخرى أقل وضوحًا لتحديد عمق الدائرة، عبر لعبة من نوع ما. القواعد بسيطة: ابدأ من أي سلك كيوبت على اليسار، وانتقل يمينًا وعدّ عدد البوابات التي تصادفها في مسارك. يجوز لك القفز إلى سلك مجاور فقط حين يكون متصلًا بسلكك الحالي ببوابة متعددة الكيوبتات. الهدف هو تعظيم عدد البوابات التي تصادفها في مسارك. هذا العدد الأقصى يساوي عمق الدائرة أيضًا.

مثال دائرة من تسع طبقات

نظرًا لأن تنفيذ البوابات الكمومية يستغرق وقتًا، فإن عمق الدائرة يتوافق تقريبًا مع الوقت اللازم للحاسوب الكمومي لتنفيذها. بعض الأجهزة أنسب للدوائر ذات العمق الكبير من غيرها بسبب أزمنة تماسك الكيوبتات على المعالج. لذا نحتاج إلى معرفة عمق الدائرة لتحديد إذا كان يمكن تشغيلها على جهاز بعينه.

تصميم دائرة كمومية: أنماط Qiskit

إذن، كيف نبدأ بتصميم دائرة كمومية وتشغيلها؟ أسهل طريقة لفهم سير عمل الحوسبة الكمومية النموذجي هي من خلال أنماط Qiskit. أنماط Qiskit هي إطار مفاهيمي يتيح للمستخدمين تشغيل أعباء العمل الكمومية بتنفيذ خطوات معينة بأدوات نمطية. يتيح ذلك تنفيذ مهام الحوسبة الكمومية بنية حوسبية قوية متغايرة (CPU/GPU/QPU). يمكن تنفيذ الخطوات كخدمة وتضمين إدارة الموارد، مما يُتيح تركيب قدرات جديدة بسلاسة مع تطوّرها.

إليك الخطوات الرئيسية، التي من المرجح أن يتعرف عليها مستخدمو Qiskit ذوو الخبرة.

  1. التعيين (Map). تُحدِّد هذه الخطوة كيف نأخذ مشكلة عامة ونُعيّنها على حاسوب كمومي في شكل دائرة كمومية.

  2. التحسين (Optimize). في هذه الخطوة نستخدم المترجم (transpiler) في Qiskit لتوجيه الدائرة وتخطيطها على أجهزة كيوبتات فيزيائية فعلية. يشمل ذلك ترجمة البوابات الكمومية الفردية إلى تسلسلات من العمليات المنفَّذة على الأجهزة فضلًا عن تحسين تخطيط البوابات.

  3. التنفيذ (Execute). توفر بدائيات Qiskit Runtime الواجهة لأجهزة IBM الكمومية التي تتيح تشغيل الدوائر المترجمة. تشمل هذه الخطوة أيضًا استخدام تقنيات إخماد الأخطاء والتخفيف منها، التي يمكن تجريدها إلى حد كبير من المستخدم.

  4. المعالجة اللاحقة (Post-process). في هذه الخطوة تُعالَج البيانات الواردة من المعالج الكمومي ذاته، مما يوفر للمستخدم نتائج مفيدة للمشكلة الأصلية. بشكل أساسي، يشمل هذا أي تحليل إضافي للبيانات المكتسبة.

التعيين

تطرح خطوة التعيين سؤالًا جوهريًا: "كيف أترجم مشكلتي إلى دائرة كمومية يمكن تشغيلها بصورة معقولة على الأجهزة الكمومية؟" لا شك أن التعيين مشكلة صعبة ومجال بحث نشط. لا توجد طريقة حمقاء تضمن النجاح، لكن هناك إرشادات موصى بها وأمثلة على مشكلات نعرف كيفية تعيينها بالفعل.

الإرشاد الأول هو ترك الحواسيب الكلاسيكية تُنجز العمل الذي تتقنه بشكل أفضل. المهام السهلة على الحواسيب الكلاسيكية على الأرجح لن تستفيد من حاسوب كمومي. الحواسيب الكمومية مخصصة للمشكلات الصعبة كلاسيكيًا. بالطبع، إذا كانت هذه هي المرة الأولى لك في استخدام Qiskit أو حاسوب كمومي، لا تقلق بشأن إيجاد مشكلة معقدة حسابيًا. قسّمها إلى مشكلات أصغر يمكنك تعلم معالجتها قبل الانتقال مباشرةً إلى مشروع على نطاق واسع.

بعد ذلك، ترجم النتائج التي تريد قياسها أو فهمها في مشكلتك إلى قيمة توقع أو دالة تكلفة. دالة التكلفة هي دالة محددة للمشكلة تُعرِّف هدفها كشيء ينبغي تصغيره أو تعظيمه. يمكن استخدامها لمعرفة مدى أداء حالة تجريبية أو حل مقترح بالنسبة لذلك الهدف. يمكن تطبيق هذا المفهوم في تطبيقات متنوعة في الكيمياء وتعلم الآلة والمالية والتحسين وغيرها — لا يهم بالضرورة من أي مجال تقترب المشكلة.

تذكّر أيضًا أن الأجهزة التي ستستخدمها لها طوبولوجيا محددة كما ناقشنا في قسم الأجهزة. بعض الكيوبتات متصلة وبعضها لا — ستحتاج إلى تعيين مشكلتك على دائرة تحترم طوبولوجيا سداسي IBM الثقيل لمعالجاتها الكمومية.

في الوقت الراهن، الأهم هو تذكّر أن هذه المرحلة تحتاج إلى ممارسة. تحتاج إلى فهم جيد ليس فقط لمشكلتك، بل أيضًا لقدرات الأجهزة — وسنمر بأمثلة وحالات استخدام محددة في دروس مستقبلية لنرى كيف نوازن جميع هذه الاعتبارات.

التحسين

بعد ذلك، نحتاج إلى اختيار معالج كمومي يمتلك كيوبتات بعدد كافٍ وجودة عالية كافية حتى نتمكن من تشغيل دائرتنا الكمومية. اتخذ هذه القرارات مسترشدًا بالمقاييس الثلاثة التي ناقشناها في قسم الأجهزة: عدد الكيوبتات وEPLG وCLOPS.

ثم نُحسِّن دائرتنا للأجهزة المختارة. أولًا، نحتاج إلى تخطيط الدائرة وتوجيهها بكفاءة. التخطيط يشير إلى تعيين الكيوبتات الافتراضية في الدائرة على الكيوبتات الفيزيائية في المعالج. التوجيه يشير إلى تعديل الدائرة لجعل الاتصالية بين الكيوبتات الافتراضية في الدائرة تتوافق مع اتصالية الكيوبتات الفيزيائية في المعالج. ثمة أمران ينبغي مراعاتهما خلال مرحلة التخطيط والتوجيه.

  1. ليست جميع الكيوبتات متصلة. بعضها بعيد جدًا عن بعضه الآخر على الشريحة، ونحتاج إلى تقليل أو إلغاء التفاعلات عبر المسافات البعيدة قدر الإمكان. يمكنك تطبيق تسلسل من بوابات SWAP بين الكيوبتات المجاورة لنقل معلومات الكيوبتات، لكن بوابات SWAP مكلفة وعرضة للأخطاء، لذا قد تكون هناك طرق أفضل. حاول تجنب الإكثار من بوابات SWAP المكلفة.

  2. التخطيط والتوجيه عمليتان تكراريتان. يمكنك القيام بهما يدويًا، لكن هناك أيضًا أداة في Qiskit تُسمى mapomatic يمكنها تقديم توصيات لتخطيط الكيوبتات الفيزيائية بناءً على معدلات الخطأ التقريبية. يمكن للمترجم (transpiler) أيضًا تقديم اقتراح مدروس.

بعد ذلك، يمكننا دمج تسلسلات البوابات أحادية الكيوبت العاملة على نفس الكيوبت في بوابات واحدة — ويمكننا أحيانًا التخلص من البوابات غير الضرورية أو مجموعات البوابات. فمثلًا، يمكن اختزال بعض مجموعات البوابات إلى مجموعات أبسط — وفي الحقيقة قد تكافئ مجموعة من البوابات أحيانًا عملية المتطابقة، فيمكننا ببساطة حذفها. يمكنك فعل ذلك تلقائيًا باستخدام مترجم Qiskit — لكن يمكنك أيضًا فعله يدويًا بوابة بوابة إذا أردت مزيدًا من التحكم.

بعد تحسين تخطيط الدائرة وتوجيهها وعدد بواباتها — يدويًا أو باستخدام المترجم — نريد عادةً تصوير دائرتنا للتأكد من أن توقيت جميع البوابات منطقي. يوجد خيار يمكنك تعليمه في المترجم لتصوير الجدول الزمني لدائرتك، والتأكد من أن كل شيء منظم كما تتوقع.

مترجم Qiskit

كما ذُكر سابقًا، يمكن استخدام مترجم Qiskit للمساعدة في المراحل الأولى من سير عمل الأنماط. الآن دعنا نتعمق في قدراته بمزيد من التفصيل. يمكنه إعادة كتابة دائرة مدخلة لتتوافق مع طوبولوجيا جهاز كمومي محدد وتحسين الدائرة للتنفيذ والمرونة في مواجهة الضجيج. كما يُعيد كتابة الدائرة المعطاة بالبوابات الأساسية للمعالج الكمومي المحدد المختار.

يمتلك Qiskit أربع خطوط معالجة للترجمة مدمجة تتوافق مع مستويات تحسين مختلفة، وما لم تكن مألوفًا بالفعل مع تحسين الدوائر الكمومية، نوصي باستخدام إحداها. بشكل افتراضي، تشمل عملية الترجمة هذه الخطوات الست:

  1. التهيئة. تُشغّل هذه المرحلة أي تمريرات أولية مطلوبة قبل بدء تضمين الدائرة على الواجهة الخلفية. يشمل ذلك عادةً فك تسلسل التعليمات المخصصة وتحويل الدائرة إلى بوابات فردية وثنائية الكيوبتات فحسب.

  2. التخطيط. تُعيِّن هذه المرحلة الكيوبتات الافتراضية في الدائرة على الكيوبتات الفيزيائية في الواجهة الخلفية. راجع مرحلة التخطيط لمزيد من التفاصيل.

  3. التوجيه. تُشغَّل هذه المرحلة بعد تطبيق تخطيط وتُدخل بوابات (مثل بوابات SWAP) في الدائرة الأصلية لجعلها متوافقة مع اتصالية الواجهة الخلفية. راجع مرحلة التوجيه لمزيد من التفاصيل.

  4. الترجمة. تُترجم هذه المرحلة البوابات في الدائرة إلى المجموعة الأساسية للواجهة الخلفية المستهدفة. راجع مرحلة الترجمة لمزيد من التفاصيل.

  5. التحسين. تُشغّل هذه المرحلة حلقة التحسين الرئيسية بشكل متكرر حتى يتحقق شرط (كالوصول إلى عمق محدد مستهدف). لدينا أربعة مستويات تحسين مختلفة للاختيار من بينها، موصوفة أدناه.

  6. الجدولة. هذه المرحلة مخصصة لأي تمريرات جدولة واعية بالأجهزة. على مستوى رفيع، يمكن تصوّر الجدولة كإدراج تأخيرات في الدائرة لحساب وقت الخمول على الكيوبتات بين تنفيذ التعليمات.

تتراوح مستويات التحسين الأربعة من 0 إلى 3، حيث تستغرق مستويات التحسين الأعلى وقتًا وجهدًا حسابيًا أكبر لكنها قد تُنتج دائرة أفضل. مستوى التحسين 0 مخصص لتجارب تمييز الأجهزة، وبالتالي يُعيِّن فقط الدائرة المدخلة على قيود الواجهة الخلفية المستهدفة دون إجراء أي تحسينات. أما مستوى التحسين 3 فيبذل أكبر جهد لتحسين الدائرة. غير أنه نظرًا لاعتماد كثير من تقنيات التحسين في المترجم على الإرشادات التجريبية، فإن بذل جهد حسابي أكبر لا يُفضي دائمًا إلى تحسين في جودة الدائرة المخرجة. إذا كنت مهتمًا بمزيد من التفاصيل، راجع توثيق المترجم في توثيق Qiskit.

إخماد الأخطاء

الخطوة الأولى في تقليل الأخطاء في الدائرة هي تحسين التخطيط والتوجيه وتصغير عدد البوابات، وهو ما أنجزناه بالفعل سواء باستخدام المترجم أو بأنفسنا. الآن دعنا نتحدث عن بعض أساليب إخماد الأخطاء الأكثر تطورًا.

إخماد الأخطاء يشير إلى فئة من التقنيات التي تُحوِّل الدائرة أثناء التصريف لتصغير الأخطاء. يختلف عن التخفيف من الأخطاء الذي سنناقشه لاحقًا في قسم "التنفيذ". أكثر صورتَي إخماد الأخطاء شيوعًا هما الاقتران الديناميكي وتشابك باولي:

  1. الاقتران الديناميكي يُستخدم لإلغاء بعض الضجيج البيئي المتراكم حين يكون الكيوبت خاملًا. بتطبيق سلسلة من البوابات في أوقات محددة، يمكنك جعل الضجيج المتراكم في جزء من فترة الخمول يُلغي تقريبًا الضجيج في الجزء الآخر.
  2. تشابك باولي هو طريقة لإدراج بوابات عشوائية ليس لإلغاء الضجيج كما في الاقتران الديناميكي، بل لتبسيطه. بإدراج بوابات عشوائية، يمنع ذلك من تراكم آثار الأخطاء المختلفة بسرعة، ويجعل الضجيج أسهل في التمييز لأنه بات عشوائيًا بطبيعته. تُشكّل هذه الطريقة أيضًا أساس تقنية قوية للتخفيف من الأخطاء، سنناقشها أدناه.

التنفيذ

الآن نحن مستعدون لتنفيذ البرنامج الكمومي. توفر بدائيات Qiskit Runtime واجهة لأجهزة IBM الكمومية، كما تُجرِّد إخماد الأخطاء والتخفيف منها بعيدًا عن المستخدم. هناك بدائيَّان للاختيار من بينهما: المُعيِّن (Sampler) والمُقدِّر (Estimator).

مُعيِّن Qiskit Runtime يُشغّل الدائرة عدة مرات على جهاز كمومي، يُجري قياسات في كل مرة، ويُعيد بناء توزيع الاحتمالات من سلاسل البتات المسترجعة. كلما زادت المرات (أو اللقطات shots) التي يُنفّذها، كانت النتائج أكثر دقة، لكن هذا يستلزم مزيدًا من الوقت والموارد الكمومية. تحديدًا، يحسب احتمال الحصول على كل حالة أساسية اعتيادية ممكنة بقياس الحالة المُحضَّرة بالدائرة.

مُقدِّر Qiskit Runtime يستخدم عملية جبرية معقدة لتقدير قيمة التوقع على جهاز كمومي حقيقي عبر تفكيك القيمة الملاحَظة إلى مجموعة من القيم الملاحَظة الأخرى ذات الأسس الذاتية المعروفة.

خطوة التنفيذ هي أيضًا المرحلة التي يمكننا فيها اختيار استراتيجية التخفيف من الأخطاء. التخفيف من الأخطاء يشير إلى تقنيات تتيح للمستخدمين تقليل أخطاء الدوائر عبر نمذجة ضجيج الجهاز الموجود عند التنفيذ. يترتب على ذلك عادةً حمل حسابي مسبق للتعلم على النموذج وحمل حسابي لاحق للتخفيف من الأخطاء في النتائج الخام باستخدام النموذج المُولَّد. مقابل هذا الحمل، نحصل على نتائج أكثر دقة بكثير.

ثمة تقنيات متعددة يمكننا تطبيقها للتخفيف من الأخطاء. سنناقش ثلاثًا، بترتيب تصاعدي للمرونة في مواجهة الأخطاء، وبالتالي بترتيب تصاعدي للتكلفة الحسابية. انتبه، لكن، إلى أن هذا مجال بحث نشط — لذا من المرجح أن نواصل اختراع أساليب جديدة وتحسين القديمة.

عند مستوى المرونة 0، لا يُجري المترجم أي شيء على دائرتك.

عند المستوى 1، يُدخل أسلوبًا يُسمى إزالة أخطاء القراءة المُشابَكة (T-REX). يستخدم T-REX تشابك باولي كما نُوقش في قسم إخماد الأخطاء. كما ذُكر، يمكن لإدراج بوابات عشوائية في الدائرة جعل الضجيج المعقد وصعب النمذجة يبدو عشوائيًا وأسهل بكثير في الحساب أو الطرح في المعالجة اللاحقة.

عند مستوى المرونة 2، تُضاف إضافة استقراء الضجيج الصفري (ZNE). هذه تقنية شائعة أحرزنا بها نجاحًا واسعًا مؤخرًا. الفكرة وراء ZNE قد تكون مفاجئة — نحن نُضيف ضجيجًا فوق الموجود بالفعل! لكن هذا يتيح لنا الاستقراء في الاتجاه المعاكس، للتنبؤ بما ستبدو عليه النتائج لو كان الضجيج أقل فأقل.

يمكن إضافة الضجيج بعدة طرق. على سبيل المثال، يمكننا مد البوابات لجعلها أطول وبالتالي أكثر عرضة للخطأ، أو تشغيل بوابات إضافية تُنتج في مجملها عملية متطابقة بحيث لا تتغير وظيفة الدائرة لكننا نأخذ عينات أكثر من الضجيج عمدًا. يجب فعل هذا لكل دائرة ولكل قيمة توقع تريد متابعتها، لذا يمكنك أن ترى كيف يمكن أن يصبح مكلفًا حسابيًا.

نوع محدد من ZNE يُسمى تضخيم الأخطاء الاحتمالي (PEA). بعد تعلّم نموذج الضجيج لبوابة ما، يعمل PEA بأخذ عينات من الأخطاء من نموذج الضجيج هذا وحقنها عمدًا في الدائرة. هذا غير متاح في Qiskit بعد، لكنه سيكون متاحًا لاحقًا هذا العام.

الصورة الأخيرة من التخفيف من الأخطاء التي سنناقشها هي إلغاء الأخطاء الاحتمالي (PEC). بدلًا من أن يكون عند مستوى المرونة 3، PEC هو قدرة خاصة يجب تفعيلها يدويًا في Qiskit، لأن الموارد الحسابية المطلوبة لا تتوسع بشكل جيد مقارنةً بتقنيات التخفيف الأخرى. تبدأ بتعلّم الضجيج المؤثر على دائرتك — شغّل دوائر تعلم الضجيج أو تمييزه لكل طبقة فريدة من بوابات ثنائية الكيوبتات في دائرتك. تتيح هذه النتائج وصف الضجيج بدلالة عوامل باولي. بعد معرفة هذه العوامل، يمكنك تعديل دوائرك لتحتوي فعليًا على بوابات باولي المعاكسة مدمجة فيها لإلغاء قنوات الضجيج هذه. من بعض النواحي، العملية مشابهة لكيفية عمل سماعات الأذن مانعة الضجيج. غير أن هذه الطريقة في إلغاء الضجيج مكلفة جدًا، مع وقت تشغيل ينمو بسرعة وبشكل أسي مع عدد البوابات، لذا قد لا تكون الخيار الأفضل لدائرة كبيرة جدًا.

المعالجة اللاحقة

مرحلة المعالجة اللاحقة هي حيث نُصوِّر ونُحلّل مخرجات دائرتنا الكمومية. هناك عدد من أدوات Qiskit المتاحة لهذا الغرض، مثل وحدتَي التصوير والمعلومات الكمومية. لن نغطي هذه هنا، لكن سنرى هذه الوحدات عملًا فعليًا حين نتعمق في بعض أمثلة التطبيق في دروس مستقبلية.

الخلاصة

نأمل أن يكون هذا الدرس قد أعطاك جولة سريعة بالاعتبارات الرئيسية وسير العمل الذي نتبعه حين نريد تشغيل حساب كمومي على نطاق واسع. كان مليئًا بالمعلومات، وكثير منها لن يترسّخ إلا حين نرى أمثلة فعلية حيث تُطبَّق هذه المفاهيم النظرية. لذا هذا ما سيكون عليه بقية الدورة. فبعد كل شيء، هذه الدورة لا تُسمى الحوسبة الكمومية عمليًا دون سبب!

في المرة القادمة، سننظر في مثال محدد لكيفية استخدام سير عمل أنماط Qiskit لتصميم وتشغيل دائرة كمومية تحل المشكلة الكلاسيكية من نظرية الرسوميات المعروفة بـ MaxCut.