32. مسئلهٔ بنیادین
32.1چرا افزونگی کلاسیک کار میکند
افزونگی (redundancy) کلاسیک کار میکند چون بیتها را میتوان کپی کرد، اندازه گرفت و با منطق غیرخطی پردازش کرد. یک بیت را سه بار ذخیره کنید و با رأیگیری اکثریتی رمزگشایی کنید: اگر هر نسخه با احتمال p مستقل وارونه شود، مقدار فقط وقتی خراب میشود که دو یا چند نسخه وارونه شوند، پس p_L = 3p^2 - 2p^3 که برای هر p < ½ از p کمتر است. شانون همین را به نظریهٔ کامل ارتباط قابلاعتماد روی کانالهای نویزی تعمیم داد. به سه عنصر توجه کنید: کپی نامحدود، اندازهگیری مستقیم مقدار ذخیرهشده، و یک قاعدهٔ رمزگشایی غیرخطی. مکانیک کوانتومی دو تای اول را انکار میکند و سومی را محدود. همهٔ این بخش راههای غیرمستقیم بازپسگرفتن همینهاست.
32.2چرا کپیکردن کیوبیت جواب نمیدهد
حرکت بدیهی — کپیکردن حالت مجهول — بلافاصله شکست میخورد. CNOT را با کیوبیت مجهول بهعنوان کنترل و یک |0⟩ تازه بهعنوان هدف اعمال کنید: α|0⟩ + β|1⟩ ⊗ |0⟩ → α|00⟩ + β|11⟩. این یک حالت درهمتنیده است، نه دو کپی از (α|0⟩ + β|1⟩) ⊗ (α|0⟩ + β|1⟩). اندازهگیری برای یادگیری α و β هم کمک نمیکند: قاعدهٔ بورن بهازای هر نسخه فقط یک نمونه میدهد، دامنهها اعداد پیوستهاند، و اندازهگیری حالتی را که میخواند آشفته میکند. پس افزونگی را نمیتوان با بازرسی افزود. باید با یک واحدی افزود که هرگز به دامنهها نگاه نمیکند — و این دقیقاً تعریف کدگذاری (encoding) است.
32.3قضیهٔ عدم شبیهسازی
قضیهٔ عدم شبیهسازی (no-cloning theorem؛ ووترز، زورک و دیکس، ۱۹۸۲) شکست را کلی میکند: هیچ واحدی حالت کوانتومی مجهولِ دلخواه را کپی نمیکند. اثبات دو خط خطیت است. فرض کنید U|0⟩|0⟩ = |0⟩|0⟩ و U|1⟩|1⟩ = |1⟩|1⟩. آنگاه روی برهمنهی، U(α|0⟩ + β|1⟩)|0⟩ = α|00⟩ + β|11⟩، اما یک کپی واقعی میبود (α|0⟩ + β|1⟩) ⊗ (α|0⟩ + β|1⟩) که شامل جملات متقاطع αβ|01⟩ و αβ|10⟩ است. چون U خطی است، هر دو نمیتوانند همزمان برقرار باشند. پیامدها: نمیتوان از یک فرایند کوانتومی checkpoint گرفت، نمیتوان سیگنال کوانتومی را بدون نابودیاش تقویت کرد، و — بهصورت سازنده — تصحیح خطا باید روی حالتهایی کار کند که هرگز آنها را نمیآموزد.
32.4کدگذاری اطلاعات کوانتومی
راهحل، کدگذاری در فضای هیلبرت بزرگتر با واحدی است که فقط به پایه وابسته است نه به دامنهها:
encoding |psi> = a|0> + b|1> into the 3-qubit bit-flip code
q0: |psi> --●----●--
q1: |0> ---⊕----|- result: a|000> + b|111>
q2: |0> --------⊕--
اطلاعات اکنون در همبستگیهای میان کیوبیتهاست؛ هیچ کیوبیت واحدی α یا β را حمل نمیکند. اگر خطای X به کیوبیت ۱ بخورد، حالت میشود α|010⟩ + β|101⟩ — زوج دیگری از بردارهای پایهٔ متعامد، اما همان ساختار دوبعدی. عملی وجود دارد که بدون دانستن α و β آن را بازمیگرداند. بهصورت کلاسیک اطلاعات درون بیتهاست؛ بهصورت کوانتومی در الگوی درهمتنیدگی. این بازتعریف، کل جهش مفهومی تصحیح خطای کوانتومی است.
32.5کشف خطا بدون اندازهگیری حالت
چطور بفهمیم کدام خطا رخ داده بدون آموختن α و β؟ یک مشاهدهپذیر (observable) بسنجید که بردارهای ویژهاش کدواژهها را تفکیک نمیکند. برای حالت کدشدهٔ بالا، عملگر Z0Z1 کار میکند: |000⟩ و |111⟩ هر دو مقدار ویژهٔ +1 از Z0Z1 دارند (هر یک روی کیوبیتهای ۰ و ۱ تعداد زوجی ۱ دارند)، پس هر برهمنهی α|000⟩ + β|111⟩ هم مقدار ویژهٔ +1 دارد — نتیجه مستقل از دامنهها +1 است. بعد از خطای X روی کیوبیت ۰، هر دو مؤلفه تماماً به فضای ویژهٔ −1 منتقل میشوند و نتیجه −1 میشود. اندازهگیری فقط اثر انگشت خطا را نشان میدهد و هیچچیز از داده. «پاریتی را بسنج نه حالت را» اصل طراحی پشت هر کد این بخش است.
32.6اندازهگیری سندروم
اندازهگیری دو پاریتی یک زوج بیت کلاسیک میدهد — سندروم (syndrome):
syndrome (Z0Z1, Z1Z2) outcome implied error correction
(+1, +1) 00 none (or Z-type) do nothing
(-1, +1) 10 X on qubit 0 X on qubit 0
(-1, -1) 11 X on qubit 1 X on qubit 1
(+1, -1) 01 X on qubit 2 X on qubit 2
تصحیح سپس یک پائولیِ شرطی است. دو نکتهٔ ظریف مهماند. نخست، سندروم خطا را فقط تا ضرب در یک پایدارساز (۳۴.۳) شناسایی میکند: خطاهای E و E·S سندرومهای یکسان و اثرهای یکسان روی فضای کد دارند، پس «کدام خطا رخ داده» فقط بهصورت مدولار-از-همارزی تعریف میشود. دوم، سطر (+1, +1) خطاهای غیرقابلتصحیح را هم پوشش میدهد: سه وارونگی پیاپی مثل عملگر منطقی X⊗X⊗X عمل میکند و خطای Z برای پاریتیهای Z نامرئی است. کدی با فاصلهٔ ۳ هر خطای تککیوبیتی را تصحیح میکند؛ همین تمام وعدهٔ اوست.