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

التحكم في انتشار الأخطاء

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

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

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

تمثيلات الدائرة لانتشار الأخطاء بواسطة بوابات CNOT

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

مما يزيد قلقنا أن البوابات الثنائية اللاحقة قد تنشر هذه الأخطاء أبعد من ذلك، كما يُشير الشكل التالي.

تمثيلات الدائرة لانتشار الأخطاء بواسطة بوابات CNOT متعددة

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

تطبيقات البوابات العرضانية

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

أمثلة على تطبيقات البوابات العرضانية

لنتأمل الشكل التالي، الذي يُقترح فيه تطبيق عرضاني لبوابة CNOT. (هذا التطبيق بالذات، حيث تُنفَّذ بوابات CNOT كيوبتًا بكيوبت، يعمل فقط لرموز CSS — لكنه يعمل فعلًا لجميع رموز CSS.)

تطبيق عرضاني لبوابة CNOT

هناك كتلتا رمز في هذا الشكل، كل منهما مُصوَّرة كمكوّنة من خمسة كيوبتات (وإن كان يمكن أن تكون أكثر كما أُشير إليه). الدائرة على اليمين لها عمق واحد، وكل بوابة CNOT تعمل على موضع كيوبت واحد داخل كل كتلة: كلٌّ من الكيوبت التحكمي والمستهدف للـCNOT الأولى هو الكيوبت الأعلى (أي الكيوبت 0 باتفاقية ترقيم Qiskit)، وكلٌّ من الكيوبت التحكمي والمستهدف للـCNOT الثانية هو الكيوبت الثاني من الأعلى (أي الكيوبت 1)، وهكذا. لذا فهذه أداة عرضانية.

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

كمثال محدد، لنتأمل رمز شور ذا الـ99 كيوبتات، الذي يمكن ترميز حالات الأساس القياسي له كما يلي.

0122(000+111)(000+111)(000+111)1122(000111)(000111)(000111)\begin{aligned} \vert 0\rangle & \:\mapsto\: \frac{1}{2\sqrt{2}} (\vert 000\rangle + \vert 111\rangle) \otimes (\vert 000\rangle + \vert 111\rangle) \otimes (\vert 000\rangle + \vert 111\rangle) \\[3mm] \vert 1\rangle & \:\mapsto\: \frac{1}{2\sqrt{2}} (\vert 000\rangle - \vert 111\rangle) \otimes (\vert 000\rangle - \vert 111\rangle) \otimes (\vert 000\rangle - \vert 111\rangle) \end{aligned}

يمكن تطبيق بوابة XX على الكيوبت المنطقي المُرمَّز بهذا الرمز عرضانيًا بعملية باولي ذات الـ99 كيوبتات

ZIIZIIZIIZ \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes \mathbb{I}

بينما يمكن تطبيق بوابة ZZ على الكيوبت المنطقي عرضانيًا بعملية باولي ذات الـ99 كيوبتات

XXXIIIIII.X \otimes X \otimes X \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}.

كلتا عمليتَي باولي هاتين لهما وزن 33، وهو الحد الأدنى من الوزن المطلوب. (رمز شور ذو الـ99 كيوبتات له مسافة 33، لذا أي عملية باولي غير متطابقة بوزن 22 أو أقل تُكشف كخطأ.)

وللمثال الثالث، يسمح رمز ستين ذو الـ77 كيوبتات (وكذلك كل رمز لوني بالفعل) بالتطبيق العرضاني لجميع بوابات كليفورد. لقد رأينا بالفعل كيف تُطبَّق بوابات CNOT عرضانيًا لأي رمز CSS، فلم يتبق سوى النظر في بوابات HH وSS. بوابة هادامار المطبّقة على جميع الـ77 كيوبتات في رمز ستين تعادل تطبيق HH على الكيوبت المنطقي الذي يُرمِّزه، بينما بوابة SS^{\dagger} (بدلًا من بوابة SS) المطبّقة على جميع الـ77 كيوبتات تعادل بوابة SS منطقية.

انتشار الأخطاء للأدوات العرضانية

الآن بعد أن عرفنا ما هي التطبيقات العرضانية للبوابات، لنناقش ارتباطها بانتشار الأخطاء.

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

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

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

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

بالنسبة لرمزَي تثبيت مختلفَين، قد يكون بوسع بوابة معينة أن تُطبَّق عرضانيًا مع أحد الرمزين دون الآخر. فمثلًا، بينما لا يمكن تطبيق بوابة TT عرضانيًا باستخدام رمز ستين ذي الـ77 كيوبتات، هناك رموز أخرى يمكن فيها ذلك.

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

مبرهنة

مبرهنة إيستن-كنيل: لأي رمز تصحيح أخطاء كمومية بمسافة لا تقل عن 2، فإن مجموعة البوابات المنطقية التي يمكن تطبيقها عرضانيًا تُولِّد مجموعة من العمليات (بصرف النظر عن الطور الكلي) تكون منفصلة وبالتالي غير شاملة.

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

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

الحالات السحرية

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

تطبيق البوابات باستخدام الحالات السحرية

لنبدأ بالنظر في بوابتَي SS وTT، اللتين لهما أوصاف مصفوفية كما يلي.

S=(100i)=(100eiπ/2)andT=(1001+i2)=(100eiπ/4)S = \begin{pmatrix} 1 & 0\\ 0 & i \end{pmatrix} = \begin{pmatrix} 1 & 0\\ 0 & e^{i\pi/2} \end{pmatrix} \qquad\text{and}\qquad T = \begin{pmatrix} 1 & 0\\ 0 & \frac{1+i}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} 1 & 0\\ 0 & e^{i\pi/4} \end{pmatrix}

بالتعريف، SS عملية كليفورد، في حين أن TT ليست كذلك؛ لا يمكن تطبيق بوابة TT بدائرة مكوّنة من بوابات كليفورد (بوابات HH وبوابات SS وبوابات CNOT).

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

T+=120+eiπ/421,T\vert {+} \rangle = \frac{1}{\sqrt{2}} \vert 0 \rangle + \frac{e^{i\pi/4}}{\sqrt{2}} \vert 1\rangle,

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

مخطط دائرة يُصوِّر حقن الحالة السحرية

للتحقق من صحة عمل هذه الدائرة، يمكننا أولًا حساب تأثير بوابة CNOT على المدخل.

T+ψCNOT120Tψ+1+i21TψT \vert {+} \rangle \otimes \vert\psi\rangle \stackrel{\text{CNOT}}{\longmapsto} \frac{1}{\sqrt{2}} \vert 0\rangle \otimes T \vert \psi\rangle + \frac{1+i}{2} \vert 1\rangle \otimes T^{\dagger} \vert \psi\rangle

القياس إذن يعطي النتيجتين 00 و11 باحتمال متساوٍ. إذا كانت النتيجة 00، لا تُنفَّذ بوابة SS، وتكون الحالة المخرجة TψT\vert\psi\rangle؛ وإذا كانت النتيجة 11، تُنفَّذ بوابة SS، وتكون الحالة المخرجة STψ=TψST^{\dagger}\vert\psi\rangle = T\vert \psi\rangle.

تُسمّى الحالة T+T\vert {+}\rangle حالة سحرية في هذا السياق، وإن لم تكن هي الوحيدة: حالات أخرى تُسمّى أيضًا حالات سحرية حين يمكن استخدامها بطريقة مماثلة (لبوابات مختلفة ربما وباستخدام دوائر مختلفة). فمثلًا، استبدال الحالة T+T\vert{+}\rangle بالحالة S+S\vert{+}\rangle واستبدال بوابة SS في الدائرة أعلاه ببوابة ZZ يُطبّق بوابة SS — وهو مفيد محتملًا للحوسبة الكمومية المتسامحة مع الأخطاء عند استخدام رمز لا يمكن فيه تطبيق بوابات SS عرضانيًا.

أدوات متسامحة مع الأخطاء من الحالات السحرية

قد لا يكون واضحًا أن استخدام الحالات السحرية لتطبيق البوابات مفيدٌ للتسامح مع الأخطاء. لتطبيق بوابة TT الموصوف أعلاه مثلًا، يبدو أننا لا نزال بحاجة إلى تطبيق بوابة TT على حالة +\vert{+}\rangle للحصول على حالة سحرية، ثم نستخدم هذه الحالة السحرية لتطبيق بوابة TT. فما الفائدة إذن من هذا النهج للتسامح مع الأخطاء؟

إليك ثلاث نقاط رئيسية تجيب عن هذا السؤال.

  1. إنشاء الحالات السحرية لا يستلزم تطبيق البوابة التي نحاول تطبيقها على حالة معينة. فمثلًا، تطبيق بوابة TT على حالة +\vert {+} \rangle ليست الطريقة الوحيدة للحصول على حالة T+T\vert{+}\rangle.

  2. يمكن إنشاء الحالات السحرية بشكل منفصل عن الحساب الذي ستُستخدم فيه. هذا يعني أن الأخطاء التي تظهر في عملية إنشاء الحالة السحرية لن تنتشر إلى الحساب الفعلي الذي يُنفَّذ.

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

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

مخطط دائرة يُصوِّر حقن الحالة السحرية على كيوبت مُرمَّز

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

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

التطبيق إذن متسامح مع الأخطاء، بافتراض أن لدينا ترميزًا لحالة سحرية T+T\vert{+}\rangle. لكننا لم نعالج بعد مسألة كيفية الحصول على ترميز هذه الحالة. إحدى طرق الحصول على الحالات السحرية المُرمَّزة (أو بتعبير أدق، تحسينها) هي من خلال عملية تُعرف بـتقطير الحالة السحرية. يُوضّح المخطط التالي ما تبدو عليه هذه العملية على أعلى مستوياتها.

مخطط دائرة يمثّل تقطير الحالات السحرية المُرمَّزة

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

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

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

تصحيح الأخطاء المتسامح مع الأخطاء

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

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

إحدى الطرق تُعرف بـتصحيح أخطاء شور، لأن بيتر شور اكتشفها لأول مرة. الفكرة هي إجراء قياسات السندروم باستخدام ما يُسمّى الحالة القطية، وهي حالة nn-كيوبت بالشكل

120n+121n,\frac{1}{\sqrt{2}} \vert 0^n \rangle + \frac{1}{\sqrt{2}} \vert 1^n \rangle,

حيث 0n0^n و1n1^n تشيران إلى سلاسل الأصفار والواحدات بالطول nn. على سبيل المثال، هذه حالة ϕ+\vert\phi^+\rangle عندما n=2n=2 وحالة GHZ عندما n=3n=3، لكن بشكل عام يتطلب تصحيح أخطاء شور حالة كهذه حيث nn هو وزن منشئ المثبِّت الذي يُقاس.

كمثال، الدائرة الموضحة هنا تقيس منشئ مثبِّت بالشكل P2P1P0P_2\otimes P_1 \otimes P_0.

دائرة كشف أخطاء شور

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

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

دائرة كشف أخطاء ستين

طريقة ذات صلة تُعرف بـتصحيح أخطاء كنيل تمدّ هذه الطريقة لتشمل رموز التثبيت الاعتباطية باستخدام الإنقال.