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

تقسيم الأخطاء إلى فئات منفصلة

حتى الآن تناولنا أخطاء XX وأخطاء ZZ في سياق شيفرة شور ذات 9 كيوبتات، وفي هذا القسم سنتناول الأخطاء العشوائية. ما سنجده هو أننا لا نحتاج إلى فعل أي شيء مختلف عمّا ناقشناه سابقًا؛ فالقدرة على تصحيح أخطاء XX وأخطاء ZZ أو كليهما تستلزم القدرة على تصحيح الأخطاء العشوائية. تُسمى هذه الظاهرة أحيانًا تقسيم الأخطاء إلى فئات منفصلة (discretization of errors).

أخطاء الكيوبت الأحادية (Unitary)

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

قد يبدو تصحيح مثل هذه الأخطاء أمرًا صعبًا. فبعد كل شيء، هناك عدد لا نهائي من الأخطاء المحتملة من هذا القبيل، ويبدو من المستحيل تحديد كل خطأ بدقة ثم التراجع عنه. غير أنه طالما نستطيع تصحيح قلب البت (bit-flip) أو قلب الطور (phase-flip) أو كليهما، فسننجح في تصحيح خطأ أحادي عشوائي في كيوبت مفرد باتباع الإجراءات المشروحة سابقًا في الدرس.

لفهم السبب، لنلاحظ أولًا أننا نستطيع التعبير عن أي مصفوفة أحادية 2×22 \times 2 للقيمة UU، التي تمثل خطأ على كيوبت مفرد، كتركيبة خطية من مصفوفات باولي الأربع (بما فيها مصفوفة المتطابقة).

U=αI+βX+γY+δZU = \alpha \mathbb{I} + \beta X + \gamma Y + \delta Z

كما سنرى، عند تشغيل دوائر اكتشاف الخطأ، تُؤدّي القياسات التي تمنحنا بتات المتلازمة إلى انهيار حالة الترميز احتماليًا إلى حالة تتوافق مع خطأ (أو غياب خطأ) يمثله إحدى مصفوفات باولي الأربع. (يترتب على كون UU أحادية أن الأعداد α\alpha وβ\beta وγ\gamma وδ\delta يجب أن تحقق α2+β2+γ2+δ2=1\vert\alpha\vert^2 + \vert\beta\vert^2 + \vert\gamma\vert^2 + \vert\delta\vert^2 = 1، وبالفعل، القيم α2\vert\alpha\vert^2 وβ2\vert\beta\vert^2 وγ2\vert\gamma\vert^2 وδ2\vert\delta\vert^2 هي الاحتمالات التي بها تنهار الحالة المشفّرة إلى حالة وقع فيها خطأ باولي المقابل.)

لتوضيح كيفية عمل ذلك بمزيد من التفصيل، سيكون من المناسب استخدام منخفضات (subscripts) للإشارة إلى الكيوبت الذي تعمل عليه عملية كيوبت أحادية معينة. فمثلًا، باستخدام اصطلاح ترقيم Qiskit للكيوبتات (Q8,Q7,,Q0)(\mathsf{Q}_8,\mathsf{Q}_7,\ldots,\mathsf{Q}_0) لترقيم الكيوبتات الـ 9 المستخدمة في شيفرة شور، نحصل على هذه التعابير لعمليات أحادية متنوعة على كيوبتات مفردة، حيث في كل حالة نضرب المصفوفة الأحادية في مصفوفة المتطابقة لكل كيوبت آخر.

X0=IIIIIIIIXZ4=IIIIZIIIIU7=IUIIIIIII\begin{aligned} X_0 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes X \\[1.5mm] Z_4 & = \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \\[1.5mm] U_7 & = \mathbb{I} \otimes U \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \end{aligned}

وبالتالي، تحديدًا لعملية كيوبت أحادية معطاة UU، يمكننا تحديد تأثير تطبيق UU على الكيوبت kk بالصيغة التالية، المشابهة للسابقة إلا أن كل مصفوفة تمثل عملية مطبّقة على الكيوبت kk.

Uk=αIk+βXk+γYk+δZkU_k = \alpha \mathbb{I}_k + \beta X_k + \gamma Y_k + \delta Z_k

لنفترض الآن أن ψ\vert\psi\rangle هو ترميز 9 كيوبتات لحالة كيوبت. إذا وقع الخطأ UU على الكيوبت kk، نحصل على الحالة UkψU_k \vert\psi\rangle، التي يمكن التعبير عنها كتركيبة خطية من عمليات باولي على ψ\vert\psi\rangle كالتالي.

Ukψ=αψ+βXkψ+γYkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + \gamma Y_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

في هذه النقطة لنجرِ التعويض Y=iXZY = iXZ.

Ukψ=αψ+βXkψ+iγXkZkψ+δZkψU_k \vert\psi\rangle = \alpha \vert\psi\rangle + \beta X_k\vert\psi\rangle + i \gamma X_kZ_k\vert\psi\rangle + \delta Z_k\vert\psi\rangle

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

αI syndromeψ+βXk syndromeXkψ+iγXkZk syndromeXkZkψ+δZk syndromeZkψ\begin{gathered} \alpha\,\vert \mathbb{I} \text{ syndrome}\rangle \otimes \vert\psi\rangle \\ + \beta\,\vert X_k \text{ syndrome}\rangle \otimes X_k\vert\psi\rangle \\ + i \gamma\,\vert X_k Z_k \text{ syndrome}\rangle \otimes X_k Z_k\vert\psi\rangle \\ + \delta\,\vert Z_k \text{ syndrome}\rangle \otimes Z_k\vert\psi\rangle \end{gathered}

للتوضيح، لدينا نظامان في هذه النقطة. النظام على اليسار هو الكيوبتات الـ 8 التي سنقيسها للحصول على المتلازمة، حيث I syndrome\vert \mathbb{I} \text{ syndrome}\rangle وXk syndrome\vert X_k \text{ syndrome}\rangle وما إلى ذلك، تشير إلى أي حالة أساسية اعتيادية من 8 كيوبتات تتوافق مع الخطأ (أو عدم الخطأ) المقابل. النظام على اليمين هو الكيوبتات الـ 9 المستخدمة للترميز.

لاحظ أن هذين النظامين باتا مترابطَين الآن (بوجه عام)، وهذا هو مفتاح فهم آلية عمل ذلك. بقياس المتلازمة، تنهار حالة الكيوبتات الـ 9 على اليمين فعليًا إلى حالة طُبِّق عليها خطأ باولي متسق مع المتلازمة المقيسة على أحد الكيوبتات. علاوةً على ذلك، توفر المتلازمة ذاتها معلومات كافية لإلغاء الخطأ واسترداد الترميز الأصلي ψ\vert\psi\rangle.

تحديدًا، إذا قيست كيوبتات المتلازمة وأجريت التصحيحات المناسبة، نحصل على حالة يمكن التعبير عنها كمصفوفة كثافة،

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

حيث

ξ=α2I syndromeI syndrome+β2Xk syndromeXk syndrome+γ2XkZk syndromeXkZk syndrome+δ2Zk syndromeZk syndrome.\begin{aligned} \xi = & \vert\alpha\vert^2 \vert \mathbb{I} \text{ syndrome}\rangle\langle \mathbb{I} \text{ syndrome}\vert \\[1mm] & + \vert\beta\vert^2 \vert X_k \text{ syndrome}\rangle\langle X_k \text{ syndrome}\vert\\[1mm] & + \vert\gamma\vert^2 \vert X_k Z_k \text{ syndrome}\rangle\langle X_k Z_k \text{ syndrome}\vert\\[1mm] & + \vert\delta\vert^2 \vert Z_k \text{ syndrome}\rangle\langle Z_k \text{ syndrome}\vert. \end{aligned}

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

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

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

أخطاء الكيوبت العشوائية

أخيرًا، لنتأمل الأخطاء العشوائية التي ليست بالضرورة أحادية. بدقة أكثر، سننظر في خطأ يوصفه قناة كيوبت عشوائية Φ\Phi. على سبيل المثال، قد تكون هذه قناة تخفيت (dephasing) أو تخفيف قطبي (depolarizing)، أو قناة إعادة ضبط، أو قناة غريبة لم نفكر فيها من قبل.

الخطوة الأولى هي اعتبار أي تمثيل كراوس لـ Φ\Phi.

Φ(σ)=jAjσAj\Phi(\sigma) = \sum_j A_j \sigma A_j^{\dagger}

هذه قناة كيوبت، لذا كل AjA_j هي مصفوفة 2×22\times 2، يمكننا التعبير عنها كتركيبة خطية من مصفوفات باولي.

Aj=αjI+βjX+γjY+δjZA_j = \alpha_j \mathbb{I} + \beta_j X + \gamma_j Y + \delta_j Z

يتيح لنا ذلك التعبير عن تأثير الخطأ Φ\Phi على الكيوبت المحدد kk بدلالة مصفوفات باولي كالتالي.

Φk(ψψ)=j(αjIk+βjXk+γjYk+δjZk)ψψ(αjIk+βjXk+γjYk+δjZk)\Phi_k \bigl( \vert\psi\rangle\langle\psi\vert\bigr) = \sum_j (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k) \vert\psi\rangle\langle\psi\vert (\alpha_j \mathbb{I}_k + \beta_j X_k + \gamma_j Y_k + \delta_j Z_k)^{\dagger}

باختصار، قمنا ببساطة بتوسيع جميع مصفوفات كراوس كتركيبات خطية من مصفوفات باولي.

إذا حسبنا متلازمة الخطأ وقسناها وصحّحنا الأخطاء الكاشفة، سنحصل على حالة مشابهة لما حصلنا عليه في حالة الخطأ الأحادي:

ξψψ,\xi \otimes \vert\psi\rangle\langle\psi\vert,

حيث هذه المرة لدينا

ξ=j(αj2I syndromeI syndrome+βj2Xk syndromeXk syndrome+γj2XkZk syndromeXkZk syndrome+δj2Zk syndromeZk syndrome).\begin{aligned} \xi = & \sum_j \Bigl(\vert\alpha_j\vert^2 \vert \mathbb{I} \text{ syndrome}\rangle\langle \mathbb{I} \text{ syndrome}\vert \\[-3mm] & \qquad + \vert\beta_j\vert^2 \vert X_k \text{ syndrome}\rangle\langle X_k \text{ syndrome}\vert\\[2mm] & \qquad + \vert\gamma_j\vert^2 \vert X_k Z_k \text{ syndrome}\rangle\langle X_k Z_k \text{ syndrome}\vert\\[2mm] & \qquad + \vert\delta_j\vert^2 \vert Z_k \text{ syndrome}\rangle\langle Z_k \text{ syndrome}\vert \Bigr). \end{aligned}

التفاصيل أكثر تعقيدًا بعض الشيء ولا تُعرض هنا. من الناحية المفاهيمية، الفكرة مطابقة لحالة الخطأ الأحادي.

التعميم

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

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