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

محاكاة الطبيعة

شاهد هذا الفيديو من Olivia Lanes عن محاكاة الطبيعة باستخدام الحواسيب الكمومية، أو افتح الفيديو في نافذة منفصلة على YouTube.

هذا الدرس يستخدم محتوى من هذا البرنامج التعليمي:

برنامج تعليمي لتخفيف الأخطاء على نطاق الفائدة باستخدام تضخيم الأخطاء الاحتمالي

مقدمة

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

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

ألقى Richard Feynman محاضرة بالغة التأثير في Caltech عام 1959، وكان عنوانها الشهير "There's Plenty of Room at the Bottom"، في إشارة مرحة إلى الاحتمالات الواسعة غير المستكشفة على المستوى المجهري. جادل Feynman بأن كثيراً من الفيزياء على المستويين الذري ودون الذري لم يُكشف عنها بعد.

ازداد أهمية هذه المحاضرة في الثمانينيات مع تقدم التكنولوجيا. خلال تلك الحقبة، عاد Feynman لهذه الأفكار في محاضرة مهمة أخرى في Caltech، وقدّم ورقة بحثية بعنوان "Simulating Physics with Computers". هناك طرح سؤالاً جريئاً: هل يمكن للحواسيب إجراء محاكاة دقيقة تُعيد إنتاج سلوك الطبيعة على المستوى الكمومي؟ اقترح Feynman أنه بدلاً من الاعتماد على تقريبات خشنة لنمذجة العمليات الذرية، يمكننا استخدام حواسيب تستغل قوانين ميكانيكا الكم ذاتها — ليس لمجرد نمذجة الطبيعة، بل لمحاكاتها بالفعل.

هذا النوع من المحاكاة الفيزيائية تحديداً هو ما سندرسه في هذا الدرس.

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

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

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

المعلومات التالية تغطي سير العمل العام في محاكاة الطبيعة، ثم مثالاً محدداً لتكرار نتائج دراسة معروفة.

سير العمل العام

قبل أن يتمكن أي شخص من تطبيق الحوسبة الكمومية في هذه المجالات المثيرة، من المهم أولاً فهم الخطوات الأساسية في سير عمل المحاكاة النموذجي:

  1. تحديد Hamiltonian النظام
  2. ترميز Hamiltonian
  3. تحضير الحالة
  4. التطور الزمني للحالة
  5. تحسين الدائرة
  6. تنفيذ الدائرة
  7. المعالجة اللاحقة

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

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

بعد ذلك، سنناقش ما تعنيه هذه الخطوات قبل أن ننتقل إلى البرمجة.

1. تحديد Hamiltonian النظام

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

H=iNHiH=\sum_i^N {H_i}

حيث كل حد HiH_i يعمل على أحد NN من الأنظمة الفرعية المحلية (كجسيم واحد أو مجموعة صغيرة من الجسيمات) لـ Hamiltonian الكلي HH. في حالة الجسيمات الأولية غير المتمايزة، من المهم تحديد ما إذا كان النظام يتضمن فيرميونات أو بوزونات، حيث تخضع الفيرميونات لمبدأ الاستبعاد لـ Pauli، مما يعني أنه لا يمكن لفيرميونين متطابقين أن يشغلا نفس الحالات الكمومية كالإلكترونات. على عكس الفيرميونات، يمكن لبوزونات متعددة أن توجد في نفس الحالة الكمومية، وهذا الاختلاف يؤثر على إحصاءات النظام وكيفية نمذجته.

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

شبكة بها دورانات وجزيء مرتبط باستخدام إلكترونات هي فيرميونات.

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

H=iNHi=J<i,j>ZiZj+hi=0NXiH = \sum_i^N {H_i} = J \sum_{<i,j>}Z_iZ_j + h\sum_{i=0}^N X_i

حيث يمثل الحد الأول طاقة التفاعل بين الدورانات المجاورة. هنا <i,j><i,j> تشير إلى أننا نجمع على جميع أزواج الدورانات المتصلة مباشرة على الشبكة، ZiZ_i وZjZ_j هما مصفوفتا Pauli-Z، اللتان تمثلان حالة الدورانات عند الموقع ii وjj، وJJ هو ثابت الاقتران الذي يحدد قوة هذا التفاعل. يمثل الحد الثاني تأثير حقل مغناطيسي خارجي مطبَّق على النظام بأكمله. هنا XiX_i هو مصفوفة Pauli-X التي تعمل على الدوران الفردي عند الموقع ii، وhh تشير إلى قوة هذا الحقل الخارجي.

2. ترميز Hamiltonian

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

مخطط انسيابي يُظهر أنواعاً مختلفة محتملة من التعيينات لأنواع أنظمة مختلفة بما في ذلك البوزونات والفيرميونات والجسيمات المتمايزة كالدورانات على شبكة.

إذا كان لديك نظام بجسيمات متمايزة، مثل دورانات 1/21/2 ثابتة على شبكة كما أشرنا أعلاه، فغالباً ما يكون Hamiltonian مكتوباً بالفعل بلغة متوافقة مع الكيوبتات. مثلاً، مشغّل Pauli-Z يصف بشكل طبيعي دوران النواة لأعلى أو لأسفل، ولا حاجة لترميز خاص.

عند محاكاة الجسيمات غير المتمايزة من الفيرميونات أو البوزونات، يكون من الضروري تطبيق تحويل الترميز. تُوصف هذه الجسيمات ضمن إطار رياضي خاص يُسمى التكميم الثانوي، الذي يتتبع عدد إشغال كل حالة كمومية من خلال إدخال مشغّلات الإنشاء والإفناء، حيث يضيف مشغّل الإنشاء a^i\hat{a}_i^\dagger جسيماً واحداً إلى الحالة ii بينما يزيل مشغّل الإفناء a^i\hat{a}_i جسيماً واحداً من الحالة ii. بناءً على إطار التكميم الثانوي هذا، يمكن تحويل الفيرميون بواسطة Bravyi-Kitaev وJordan-Wigner. يعرّف تحويل Jordan-Wigner مشغّل الإنشاء الفيرميوني f^j=(k<j(Zk))(Xj+iYj2)\hat{f}_j^\dagger = \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j + i Y_j}{2} \Bigr) الذي يملأ الحالة الكمومية jj بفيرميون، ومشغّل الإفناء الفيرميوني f^j=(k<j(Zk))(XjiYj2)\hat{f}_j= \Bigl( \prod\limits_{k \lt j}{(-Z_k)} \Bigr)\Bigl( \frac{X_j - i Y_j}{2} \Bigr) الذي يُخلي فيرميوناً من الحالة jj. يمكنك الاطلاع على مزيد من التفاصيل حول تحويل Jordan-Wigner في الحوسبة الكمومية في الممارسة، الحلقة 5 - التعيين. وبالمثل، تتطلب البوزونات أيضاً أساليب ترميز خاصة بها، مثل تحويل Holstein-Primakoff، لتمثيلها بالكيوبتات.

في نهاية المطاف، سواء كان المسار مباشراً أم يتطلب ترجمة، فإن الهدف واحد: التعبير عن Hamiltonian النظام بشكل مشغّلات Pauli الدورانية التي يمكن للحاسوب الكمومي فهمها وتنفيذها.

3. تحضير الحالة

بعد ترميز Hamiltonian المطلوب في مجموعة بوابات الحاسوب الكمومي، تأتي الخطوة المهمة التالية وهي اختيار حالة كمومية أولية مناسبة لبدء المحاكاة. يؤثر اختيار الحالة الأولية ليس فقط على تقارب الخوارزميات التغايرية مثل Variational Quantum Eigensolver (VQE)، بل يؤثر أيضاً على دقة وكفاءة التطور الزمني والأخذ بالعينات. بشكل أساسي، تعمل الحالة الأولية كنقطة بداية للحساب، وتضع الأساس لاستخراج قيم رصد مفيدة من النظام الكمومي الذي يجري نمذجته. من الناحية المثالية، ينبغي أن تمثل هذه الحالة تكويناً فيزيائياً ذا معنى للنظام قيد الدراسة.

بالنسبة لكثير من محاكاة الكيمياء الكمومية، يمكن أن تكون حالة Hartree-Fock نقطة بداية جيدة. بلغة التكميم الثانوي، تُنشأ حالة Hartree-Fock (ϕHF|\phi\rangle_{HF}) بتطبيق مشغّلات الإنشاء (a^i\hat{a}_i^\dagger) لكل من المدارات ذات أدنى طاقة على الحالة الفراغية (vac=01...0k...0N=0N|vac\rangle = |0_1 ... 0_k ... 0_N\rangle = |0\rangle ^{\otimes N})، وهي حالة بلا إلكترونات.

ϕHF=i=1ka^i0N=a^1...a^k01...0k...0N|\phi\rangle_{HF} = \prod\limits_{i=1}^k \hat{a}_i^\dagger |0\rangle ^{\otimes N} = \hat{a}_1^\dagger ... \hat{a}_k^\dagger |0_1 ... 0_k ... 0_N\rangle

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

بشكل أعم، يمكننا كتابة حالة nn-كيوبت عشوائية كتراكب من حالات الأساس الحسابية ci∣c_i\rangle بمعاملات aia_i، مع استيفاء شروط التسوية. يمكن عموماً الاقتراب من تحضير مثل هذه الحالة بتطبيق مشغّل محدد O^\hat{O} على الحالة الأولية، وهي عادةً حالة الأساس القياسية الكلية الصفر بحكم الاصطلاح.

ψ=i=02n1aici=O^0nwithi=02n1ai2=1|\psi\rangle = \sum_{i=0}^{2^n-1}{a_i |c_i\rangle}=\hat{O}|0\rangle^{\otimes n}\\ \text{with} \qquad \sum_{i=0}^{2^n-1}{|a_i^2|}=1

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

الآن بعد أن تم ضبط الحالة الأولية، يمكننا أخيراً بدء المحاكاة نفسها - فحص كيف تغيّرت حالة النظام ϕ(t=0)|\phi(t=0)\rangle إلى ϕ(t)|\phi(t)\rangle بعد مرور وقت tt. في ميكانيكا الكم، يوصف هذا التطور بعملية رياضية واحدة تُسمى مشغّل التطور الزمني:

U(t)=eiHtU(t) = e^{-iHt}

حيث وضعنا =1\hbar=1 بحكم الاصطلاح. تطبيق هذا المشغّل على حالتنا الأولية يعطينا الحالة النهائية: ϕ(t)=eiHtϕ(t=0)|\phi(t)\rangle = e^{-iHt}|\phi(t=0)\rangle

ومع ذلك، فإن بناء دائرة كمومية تُنفّذ مباشرةً المشغّل الكامل eiHte^{-iHt} يكون مستحيلاً في العادة عندما يكون Hamiltonian الخاص بنا مجموع أجزاء مختلفة. لذلك نحتاج إلى Trotterization.

بعبارات بسيطة، Trotterization هي تقنية لتقريب أس مصفوفة (هنا Hamiltonian، HH)، خاصةً عندما يحتوي الأس على مشغّلات غير تبديلية ([HA,HB]0[H_A, H_B] \neq 0). في الغالب يتكون Hamiltonian HH من مشغّلات متعددة لا تتبادل. في هذه الحالة، لا يمكنك فصل أسسها:

ei(HA+HB)teiHAteiHBte^{-i(H_A + H_B)t} \neq e^{-iH_A t}e^{-iH_B t}

أسلوب مفيد هو تطبيق أسس تطورها الزمني بالتناوب على فترات زمنية قصيرة t/nt/n، إجمالي nn مرة. في حالة هذين المساهمين غير المتبادلين، نكتب

eiHt(eiHAt/neiHBt/n)ne^{−i H t}\approx \left(e^{−i H_A t/n}e^{−i H_B t/n}\right)^n

دائرة كمومية تُظهر مشغّلات التطور الزمني المُرتَّبة بـ Trotter: مشغّلات مقسَّمة إلى قطع صغيرة.

الخطأ الناتج عن هذا التقريب يُسمى خطأ Trotter. يمكننا تقليل هذا الخطأ بزيادة nn، لكن هذا له ثمن. صيغ أكثر تقدماً وأعلى رتبة (الصيغة من الدرجة الثانية وغيرها) موجودة أيضاً. على سبيل المثال، صيغة الدرجة الثانية تقدم دقة أفضل بتطبيق الخطوات بنمط متماثل.

First order:eiHt(jeiHit/n)nSecond order:eiHt(j=1NeiHjt/2n)n(k=N1eiHkt/2n)n\begin{aligned} \text{First order:} & \qquad e^{-iHt}\approx \left(\prod_j{e^{-iH_i t/n}}\right)^n\\ \text{Second order:} & \qquad e^{-iHt}\approx \left(\prod_{j=1}^N{e^{-iH_j t/2n}}\right)^n\left(\prod_{k=N}^1{e^{-iH_k t/2n}}\right)^n \end{aligned}

هنا، NN هو عدد الحدود غير المتبادلة HjH_j في Hamiltonian الذي سيُقسَّم بهذه الطريقة، وnn هو عدد الخطوات الزمنية الصغيرة التي يُقسَّم إليها هذا التطور. لاحظ الترتيب العكسي للمشغّلات في الضرب الثاني في المعالجة من الدرجة الثانية.

راجع قسم Trotterization في دورة خوارزميات قطرية كمومية للمزيد من التفاصيل. 5. تحسين الدائرة

بعد توليد الدائرة المُرتَّبة بـ Trotter، تكتمل خطوة التعيين، ويمكننا المضي قدماً في تحسين الدائرة. تتضمن هذه العملية عدة مهام رئيسية:

  • تحديد تخطيط الكيوبتات الذي يعيّن الكيوبتات المجردة في الدائرة إلى الكيوبتات الفيزيائية على الجهاز. هذه الخطوة ضرورية لأن بنية الجهاز غالباً ما تفرض قيوداً محددة على الاتصال، في حين تفترض تصميمات الدائرة الكمومية عادةً أن أي كيوبت يمكنه التفاعل مع أي كيوبت آخر.
  • إدراج بوابات swap حسب الحاجة لتمكين التفاعلات بين الكيوبتات غير المتصلة مباشرة على الجهاز.
  • ترجمة بوابات الدائرة إلى تعليمات بنية مجموعة التعليمات (ISA) التي يمكن للجهاز تنفيذها مباشرةً.
  • إجراء تحسينات الدائرة لتقليل عمق الدائرة وعدد البوابات. يمكن أيضاً تطبيق هذا التحسين في وقت سابق على الدائرة الافتراضية قبل تعيين الكيوبتات لاتصالات جهاز محددة.

من المهم ملاحظة أن كثيراً من هذه العملية التحسينية يُعالَج تلقائياً بواسطة أدوات في Qiskit. سنستكشف كيفية عمل هذا بالتفصيل لاحقاً في هذا الدرس.

6. تنفيذ الدائرة

بعد إتمام خطوة التحسين، نكون مستعدين لتنفيذ الدائرة باستخدام primitive. نحن نفكر في تجربة محاكاة يكون هدفها فهم كيفية تغيّر بعض خصائص النظام بمرور الوقت. لهذا الغرض، يكون Estimator primitive الخيار الأنسب، إذ يتيح لك قياس قيم التوقع للقيم الرصدية التي تتوافق مع هذه الخصائص.

بعد ذلك، نستخدم خيارات تشمل تقنيات قمع الأخطاء وتخفيفها، لتحسين دقة Estimator. أخيراً، نشغّل التجربة لجمع النتائج.

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

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

تكرار ورقة "الفائدة"

ملاحظة

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

سنفحص الآن مثالاً ملموساً من ورقة بحثية بالغة التأثير نشرتها IBM عام 2023، بعنوان دليل على فائدة الحوسبة الكمومية قبل التسامح مع الأخطاء، والتي يُشار إليها غالباً بـ "ورقة الفائدة".

غلاف المقال الذي نسميه ورقة الفائدة، المنشور في مجلة Nature.

عند نشره، أصبح هذا العمل سريعاً دراسة بارزة داخل مجتمع الحوسبة الكمومية. أطروحته المحورية هي أن الحاسوب الكمومي الصاخب، الذي يستخدم 127 كيوبتاً و2,880 بوابة، يستطيع إنتاج قيم توقع دقيقة للدوائر الكمومية التي تقع خارج متناول أساليب المحاكاة الكلاسيكية القسرية، التي تحاول المحاكاة الدقيقة لنفس الدوائر.

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

جانب آخر لافت في هذا العمل هو أنه أُعيد إنتاجه على نطاق واسع: أصبح بإمكان الباحثين والمستخدمين الآن تكرار التجربة والتحقق منها باستخدام أنظمة IBM الكمومية القابلة للوصول عبر السحابة وإطار برمجيات Qiskit. فيما يلي، سنرشدك خلال خطوات إجراء هذا التكرار بنفسك من خلال مراجعة برنامج IBM التعليمي خطوة بخطوة.

في هذا الدرس، نناقش الخطوات المحددة المطلوبة لترجمة المشكلة إلى مدخلات يستطيع الجهاز الكمومي معالجتها. نركز على محاكاة ديناميكيات المغنطة الكلية في نظام من الدورانات ثنائية القطب المغناطيسي مرتبة على شبكة وخاضعة لحقل مغناطيسي خارجي. يمكن وصف هذا النظام بنموذج Ising ذو الحقل المغناطيسي المستعرض. نمثله باستخدام دائرة كمومية مُعلمَلة، حيث تتوافق المعاملات مع القيم القابلة للضبط لتفاعلات الدوران-دوران (ZZZZ) وقوة الحقل المغناطيسي الخارجي المستعرض (BxB_x، مُعلمَل باستخدام XX).

دورانات على شبكة تشير إما لأعلى أو لأسفل.

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

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

خطوة أنماط Qiskit 1: التعيين

البرنامج التعليمي يُنجز خطوة التعيين بشكل مشابه للنهج العام الموصوف أعلاه. خصيصاً لهذه المشكلة، يقوم البرنامج التعليمي بما يلي:

  • إنشاء دائرة نموذج Ising مُعلمَلة
  • إنشاء طبقات متشابكة وإزالة الكيوبتات السيئة
  • توليد نسخة مُرتَّبة بـ Trotter من الدائرة

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

  • إزالة اقترانات الكيوبتات
  • تعريف اقترانات الكيوبتات
  • بناء اقترانات الطبقة
  • بناء الطبقة المتشابكة
  • تعريف الدائرة المُرتَّبة بـ Trotter

هنا، دعنا نستكشف الموضوعات المتعلقة بهذه الدوال قليلاً. اقترانات الطبقة

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

خريطة مُرمَّزة بالألوان تُظهر طبقات الاقترانات. تؤكد أن بوابات الكيوبتين يمكن تنفيذها عبر الحاسوب الكمومي بأكمله، على الرغم من أنه يمكن تنفيذ بوابة كيوبتين واحدة فقط في وقت واحد على كيوبت معين.

بهيكلة جميع الاتصالات في ثلاث طبقات منفصلة، يمكن تطبيق بوابات الكيوبتين عبر الجهاز بأكمله في ثلاث جولات متتالية. هذا يضمن عدم اشتراك أي كيوبت في أكثر من بوابة واحدة لكل طبقة. تُنفّذ هذه البوابات تفاعل ZZ في نموذج Ising، وتُكرَّر في كل خطوة زمنية من المحاكاة (كل خطوة Trotter).

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

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

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

يُظهر تخطيط الحاسوب الكمومي مع الإشارة إلى كيوبت منخفض الأداء باللون الزهري.

إزالة الكيوبتات غير الموثوقة تضمن أن يكون سلوك النظام أكثر قابلية للتنبؤ، مما يحسن دقة التجربة. كما يسمح بنمذجة أفضل للضوضاء، وهو أمر أساسي لتنفيذ استراتيجيات فعّالة لتخفيف الأخطاء. الدائرة المُرتَّبة بـ Trotter

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

ستُعرَّف الدائرة باستخدام عدة معاملات: معامل theta الذي يمثل قوة الحقل المغناطيسي الخارجي، والاقترانات بين الطبقات، وعدد الخطوات، وعدد الكيوبتات، وبالطبع اختيار backend الجهاز. بما أن مغنطة النظام تعتمد على قوة الحقل المغناطيسي الخارجي، فمن القيمة تشغيل المحاكاة بقيم مختلفة للحقل المغناطيسي. يتوافق هذا التنويع مع زوايا دوران مختلفة لبوابة RX في الدائرة.

from qiskit.circuit import Parameter

num_steps = 6 #Trotter steps
theta = Parameter("theta")
circuit = trotter_circuit(
theta, layer_couplings, num_steps, qubits = good_qubits, backend = backend
)
num_params = 12

# 12 parameter values for Rx between [0,p/2].
#Reshape to outer product broadcast with observables

parameter_values = np.linespace(0,np.pi/2,num_params).reshape((num_params,1))
num_params = parameter_values.size

خطوة أنماط Qiskit 2: التحسين

الآن بعد أن ولّدنا دائرتنا، الخطوة التالية هي تحسينها. الجزء الأول من هذه العملية يتضمن تعريف مدير المرور. في سياق Qiskit SDK، التحويل هو عملية تحويل الدائرة المُدخَلة إلى شكل مناسب للتنفيذ على الجهاز الكمومي. يحدث هذا التحويل من خلال سلسلة من الخطوات المعروفة بمرورات المحوِّل. مدير المرور هو كائن يحمل قائمة بمرورات المحوِّل هذه ويمكنه تطبيقها على دائرة. لإنشائه، تُهيّئ PassManager بقائمة مرورات المحوِّل المطلوبة. في نهاية المطاف، ينتج مدير المرور دائرة ISA — دائرة معبَّر عنها بمصطلحات بنية مجموعة تعليمات (ISA) الخاصة بالـ backend. هذا يعني أن الدائرة ممثَّلة باستخدام بوابات أصلية للـ backend، وإن كانت لا تتضمن بعد معلومات التوقيت المطلوبة لتشغيل الدائرة على الجهاز.

خطوة أنماط Qiskit 3: التنفيذ باستخدام primitives

حان الوقت الآن لتشغيل دائرتنا. سنستخدم Estimator كأداتنا الرئيسية لهذه التجربة لأن هدفنا هو قياس المغنطة الكلية للنظام. صُمِّم Estimator خصيصاً لتقدير قيم التوقع للقيم الرصدية، مما يجعله الخيار المثالي هنا. في هذه المرحلة، من الضروري أيضاً تهيئة إعدادات تخفيف الأخطاء. سنطبق Zero Noise Extrapolation (ZNE) لتحسين دقة نتائجنا. في البرنامج التعليمي، ستلاحظ أننا نحدد قيمتين أو أكثر لعوامل الضوضاء لتقييم النماذج المُستقرأة، ونختار "Probabilistic Error Amplification" (PEA) كأسلوب تضخيم. يُفضَّل PEA لهذه التجربة لأنه يتناسب بشكل أفضل بكثير من الخيارات الأخرى، وهو أمر بالغ الأهمية عند العمل مع أنظمة من 100 كيوبت أو أكثر.

هذا كل ما هو مطلوب لتشغيل التجربة.

استراحة تخفيف الأخطاء

قبل المضي في المعالجة اللاحقة، دعنا نأخذ لحظة قصيرة لتوضيح ما يُقصد بـ Zero Noise Extrapolation (ZNE). لمسنا هذا المفهوم في حلقات سابقة، لكن يستحق المراجعة بإيجاز. ZNE هي تقنية لتخفيف الأخطاء مصممة لتقليل تأثير الضوضاء غير المعروفة التي تحدث أثناء تنفيذ الدوائر الكمومية، شريطة أن تتمكن من تناسب هذه الضوضاء بطريقة محكومة. تعتمد الطريقة على افتراض أن قيم التوقع تتناسب مع الضوضاء وفق دالة معروفة:

A(λ)=A(0)+k=0makλk+R,\langle A(\lambda)\rangle = \langle A(0)\rangle + \sum_{k=0}^m {a_k \lambda^k}+R,

حيث λλ يمثل قوة الضوضاء، التي يمكن تضخيمها عمداً.

عملية تنفيذ ZNE تتكون من الخطوات التالية:

  1. تضخيم ضوضاء الدائرة لعوامل ضوضاء مختلفة λ1λ_1، λ2λ_2، … .
  2. تنفيذ كل دائرة مُضخَّمة الضوضاء لقياس قيم التوقع المقابلة A(λ1)\langle A(\lambda_1)\rangle، A(λ2)\langle A(\lambda_2)\rangle، ....
  3. استقراء هذه النتائج إلى حد الضوضاء الصفرية \langle A(λ0)A(\lambda_0)\rangle.

تُظهر مخططات قيمة توقع، ونفس قيمة التوقع مع تضخيم الضوضاء، ثم القيمة المُستقرأة إلى حالة انعدام الضوضاء.

تتيح لنا هذه التقنية تقدير ما ستكون عليه النتيجة لو لم تكن هناك ضوضاء، مما يحسن دقة الحسابات الكمومية.

التحدي الرئيسي في تنفيذ ZNE بفعالية هو تطوير نموذج ضوضاء دقيق لقيمة التوقع وتضخيم الضوضاء بطريقة محكومة ومفهومة جيداً. تشمل التقنيات الشائعة لتضخيم الأخطاء في ZNE: تناسب مدة النبضات من خلال المعايرة، وتكرار البوابات باستخدام دورات الهوية، وإضافة الضوضاء عبر أخذ عينات من قنوات Pauli — أسلوب يُعرف بـ Probabilistic Error Amplification (PEA).

من بينها، PEA هو الخيار المُفضَّل في الغالب لأسباب عدة:

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

تُظهر ثلاث طرق لتضخيم الضوضاء لـ ZNE: تناسب النبضات، وطيّ البوابات، وتضخيم الأخطاء الاحتمالي.

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

بينما يُفيد فهم هذا الأسلوب مفاهيمياً، فإن تنفيذه يدوياً في Qiskit أبسط بكثير، كما يتضح في البرنامج التعليمي المصاحب.

تُظهر خطوات تعلّم نموذج ضوضاء Pauli-Lindblad المتفرق

خطوة أنماط Qiskit 4: المعالجة اللاحقة

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

رسم بياني للحلول الدقيقة والحلول غير المُخفَّفة والحلول المُخفَّفة للمشكلة المحلولة في ورقة الفائدة.

ملخص

للتلخيص السريع لما تعلمناه:

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

استبيان ما بعد الدورة

تهانينا على إتمام هذه الدورة! يُرجى تخصيص لحظة لمساعدتنا في تحسين دورتنا من خلال ملء الاستبيان السريع التالي. ستُستخدم ملاحظاتك لتحسين محتوانا وتجربة المستخدم. شكراً!