مهندس کوانتومی

35. کدهای سطحی (surface codes)

35.1انگیزه

چرا یک خانوادهٔ کد صنعت را برد؟ به‌خاطر قیدهای سخت‌افزار واقعی. کیوبیت‌ها روی تراشهٔ دوبعدی زندگی می‌کنند و فقط با همسایه‌ها برهم‌کنش دارند، پس بررسی‌ها باید محلی باشند. کنترل ناکامل است، پس بررسی‌ها باید کوچک باشند (وزن ۴) و کد باید گیت‌های دو‌کیوبیتیِ ناکامل را تاب بیاورد. و حاشیهٔ امنیت باید پهن باشد: آستانهٔ (threshold) کد سطحی نزدیک ۱٪ حدود ده برابر بالاتر از بهترین نرخ خطای گیت دو‌کیوبیتی امروز (~۱۰⁻³) است، پس تصحیح از آسیب پیشی می‌گیرد. هزینه‌ها واقعی‌اند — یک کیوبیت منطقی به‌ازای حدود 2d² کیوبیت فیزیکی نرخ بدی است — اما هر جایگزین (کدهای رنگی، qLDPC) نرخ را با مطالبهٔ برهم‌کنش‌های دوربرد می‌خرد. کد چنبره‌ای کیتایف (Kitaev) در ۱۹۹۷، پس از صفحه‌ای‌شدن، پیش‌فرض شد چون با ماشین جور بود.

35.2ساخت شبکه

کد سطحی کیوبیت‌های داده را روی یال‌های شبکهٔ مربعی می‌گذارد. دو خانوادهٔ بررسی روی آن زندگی می‌کنند: عملگرهای ستاره‌ای در رئوس و عملگرهای پلاکتی (plaquette) روی خانه‌ها (۳۵.۵ و ۳۵.۶). روی چنبرهٔ بسته این کد چنبره‌ای (toric code) با دو کیوبیت منطقی است؛ چنبره را باز کنید و وصلهٔ مسطح بسازید تا کد سطحی با یک کیوبیت منطقی به دست آید. سخت‌افزار چیدمان چرخیده (rotated) را پیاده می‌کند — همان بررسی‌ها، تاشده در شبکهٔ d×d از کیوبیت‌های داده با کیوبیت‌های سنجش میان‌بافته — اما تصویر یال-و-خانه مدل ذهنی تمیزتری است:

      *-----0-----*-----1-----*         *  vertex: star check
      |           |           |            = X on incident edges
      2     []    3     []    4         [] face: plaquette check
      |           |           |            = Z on bounding edges
      *-----5-----*-----6-----*         -,|  data qubits (one per edge)
      |           |           |
      7     []    8     []    9         on a torus there are no
      |           |           |         boundaries; a planar patch
      *----10-----*----11-----*         has two kinds (35.8)

35.3کیوبیت‌های داده

کیوبیت‌های داده — d² تا در چیدمان چرخیده — کیوبیت‌های فیزیکی‌ای هستند که واقعاً حالت منطقی را ذخیره می‌کنند. در آزمایش حافظه هرگز مستقیم اندازه‌گیری نمی‌شوند؛ فقط با بررسی‌ها درهم‌تنیده می‌شوند و رها می‌شوند. خطاهایشان موضوع کل این تمرین است و هر ردهٔ خطا دقیقاً با یک خانوادهٔ بررسی گفت‌وگو می‌کند: خطای X روی کیوبیت داده، بررسی‌های پلاکتی (Z-نوع) مجاور یالش را پشت‌ورو می‌کند، و خطای Z بررسی‌های ستاره‌ای (X-نوع) را در دو سرِ یال. این پاسخ مکمل است که اجازه می‌دهد یک تاریخچهٔ سندروم واحد، هر دو نوع خطا را مستقل موضع‌یابی کند — تعمیم دوبعدیِ منطق پاریتیِ ۳۲.۵.

35.4کیوبیت‌های سندروم

میان کیوبیت‌های داده، d²−1 کیوبیت سنجش (measure qubits؛ کیوبیت کمکی) می‌نشیند که شطرنجی‌وار به مأموریت X-نوع یا Z-نوع گمارده شده‌اند. در هر دور، هر کمکی ریست می‌شود، با حداکثر چهار کیوبیت دادهٔ همسایه درهم‌تنیده می‌شود و اندازه‌گیری می‌شود. کمکی‌ها پروب‌های منفعل نیستند: خطاهای ریست، خطاهای گیت و به‌ویژه خطاهای اندازه‌گیری خود سندروم را خراب می‌کنند. یک اندازه‌گیری وارونه، به‌صورت محلی، از خطای واقعی داده قابل‌تفکیک نیست — به همین دلیل مسئلهٔ رمزگشایی در فضازمان زندگی می‌کند (۳۵.۹) و آزمایش‌های حافظه دور را دست‌کم d بار تکرار می‌کنند تا نویز اندازه‌گیری به‌صورت نقص‌های جداشده در محور زمان خودش را نشان دهد.

35.5عملگرهای ستاره‌ای

عملگر ستاره‌ای (star operator) A_s ضرب X روی حداکثر چهار کیوبیت دادهٔ مجاور رأس s است — برای یک رأس درونی شبکهٔ بالا، X0 X1 X2 X3. ستاره‌ها بررسی‌های X-نوع‌اند: خطاهای Z روی یال‌های مجاور را می‌یابند و نسبت به خطاهای X کورند. همهٔ ستاره‌ها دوبه‌دو جابه‌جایند، چون هر دو رأس ۰ یا ۲ یال مشترک دارند — هم‌پوشانی زوج (۳۴.۲) — و با همهٔ پلاکت‌ها هم با همان استدلال هم‌پوشانی زوج در میان دو نوع پائولی جابه‌جایند. در مرزها، ستاره‌ها به وزن ۲ می‌رسند یا حذف می‌شوند (۳۵.۸). اندازه‌گیری همهٔ ستاره‌ها در هر دور به‌ازای هر یک یک کمکی و چهار CNOT هزینه دارد — ارزان‌ترین بررسی محلی ممکن.

35.6عملگرهای پلاکتی

عملگر پلاکتی B_p ضرب Z روی چهار کیوبیت دادهٔ محصورکنندهٔ خانهٔ p است — برای نخستین خانهٔ شبکهٔ بالا، Z0 Z2 Z3 Z5. پلاکت‌ها بررسی‌های Z-نوع‌اند که خطاهای X را می‌یابند؛ تصویر آینه‌ای ستاره‌ها در همهٔ جهات: وزن ۴ در bulk، دوبه‌دو جابه‌جا، وزن ≤ ۲ در مرزها. با هم، (d²−1)/2 ستاره و (d²−1)/2 پلاکت گروه پایدارساز کد سطحی چرخیده را می‌سازند؛ اندازه‌گیری همهٔ آن‌ها یک بار، یک دور سندروم کامل است. توصیف پایدارسازیِ کامل کد پس فهرستی از رشته‌های پائولی وزن-۴ روی یک شبکه است — به‌اندازه‌ای کوچک که در یک هدر فایل جا شود، که تقریباً همان جوری است که باید به آن فکر کنید.

35.7کیوبیت‌های منطقی

روی چنبره، دو کیوبیت منطقی مستقل در توپولوژی زندگی می‌کنند: عملگرهای منطقی حلقه‌های نا-قابل‌انقباضی از پائولی‌ها هستند که دور چنبره می‌پیچند، و هیچ خطای محلی نمی‌تواند یکی را بسازد یا نابود کند. روی وصلهٔ مسطح یک کیوبیت منطقی می‌ماند و عملگرهایش *رشته‌های باز*ند: رشتهٔ X-نوعی که به دو مرزی ختم می‌شود که بررسی‌های پلاکتی در آن‌ها قطع می‌شوند (به آن‌ها مرز Z بگویید) هیچ نقص پلاکتی نمی‌سازد و مثل X̄ منطقی عمل می‌کند؛ دوگانه‌اش، رشتهٔ Z میان دو مرز X، برابر Z̄ است. رشته‌ای به طول کمتر از d نقص‌های قابل‌کشف می‌سازد؛ رشته‌ای به طول d مرز به مرز امتداد می‌یابد و غیرقابل‌کشف است. کیوبیت منطقی در توپولوژی ذخیره می‌شود نه هندسه — رشته را آزادانه تغییر شکل دهید، همان عملگر می‌ماند.

35.8مرزها

مرزها (boundary) چیزی هستند که کد مسطح را عملی می‌کنند — و بخشی که بیش از همه سرسری از آن گذر می‌شود. دو نوع وجود دارد. در مرز X، بررسی‌های ستاره‌ای قطع می‌شوند (در برخی متون: «rough»)؛ در مرز Z، بررسی‌های پلاکتی («smooth»). هیچ بررسی‌ای از مرز عبور نمی‌کند و هر نوع رشتهٔ منطقی باید به نوع خودش ختم شود: X̄ دو مرز Z را به هم می‌بندد و Z̄ دو مرز X را. همین تطبیق نوعِ عملگر با نوعِ مرز است که یکی از دو جهت منطقی را غیرقابل‌کشف می‌کند در حالی که دیگری محافظت‌شده می‌ماند. چیدمان چرخیده مرزهای متناوب را دور یک وصلهٔ مربعی می‌چیند، و به همین دلیل تصویرش در مقالات لوزی‌مانند به نظر می‌رسد — همان کد، هندسهٔ فشرده‌تر، یک ردیف کیوبیت کمتر از رسم نچرخیده.

35.9رمزگشایی

خطاها زنجیره‌اند: زنجیرهٔ خطای X دو بررسی پلاکتی در دو سرش را پشت‌ورو می‌کند و زوج نقص می‌سازد؛ خطای اندازه‌گیری یک بررسی را در دو دور متوالی پشت‌ورو می‌کند و نقص‌هایی جداشده در زمان می‌سازد. ورودی رمزگشا این الگوی نقص سه‌بعدی است (فضای دوبعدی به‌علاوهٔ دورها)؛ خروجی‌اش محتمل‌ترین تصحیح. رویکرد مرجع، تطبیق کامل کمینه‌وزن (minimum-weight perfect matching؛ ۳۷.۳) است: نقص‌ها گره‌های گرافی می‌شوند که وزن یال‌هایش احتمال زنجیرهٔ اتصال‌دهنده را کد می‌کند، و رمزگشا آن‌ها را با کمینه‌کردن وزن کل جفت می‌کند. رمزگشاهای union-find کمی دقت را با سرعت نزدیک-خطی معامله می‌کنند. هر یک از این ایده‌ها از قبل در یک بُعد کار می‌کند:

35.10فاصلهٔ کد

فاصلهٔ d طول کوتاه‌ترین عملگر منطقی است — کوتاه‌ترین زنجیرهٔ خطا که دو مرز هم‌نوع را به هم می‌بندد — و کد هر ⌊(d−1)/2⌋ خطا را تصحیح می‌کند. منابع به‌صورت d² به‌علاوهٔ همان مقدار در کیوبیت‌های سنجش مقیاس می‌گیرند، و یافتن خطاهای اندازه‌گیری دست‌کم d دور لازم دارد. جدول مرجع منابع، همراه نرخ خطای منطقیِ هر-دورِ هیوریستیک ۳۵.۱۱ در p = 10⁻³:

فاصلهکیوبیت دادهکیوبیت سنجشمجموعخطای منطقی هر دور در p = 10⁻³
39817≈10⁻³
5252449≈10⁻⁴
7494897≈10⁻⁵

ستون آخر را لیست قیمت تصحیح خطا بخوانید: هر واحد فاصله بیشتر، یک رقم اعشار اطمینان بیشتر می‌خرد، به بهای حدود ۳۰ کیوبیت فیزیکی بیشتر.

35.11نرخ‌های خطای منطقی

زیر آستانه، خطای منطقی هر دور از یک هیوریستیک پیروی می‌کند که دهه‌ها شبیه‌سازی و اکنون سخت‌افزار تأییدش کرده‌اند:

p_L(d)  ≈  A * (p / p_th)^((d+1)/2)        A ≈ 0.1 for the surface code

هر گام در فاصله، خطا را به توان (d+1)/2 می‌رساند. در p = 10⁻³ مقابل p_th ≈ 10⁻²: d = 3 حدود 10⁻³، d = 5 حدود 10⁻⁴، d = 7 حدود 10⁻⁵ در هر دور — جدول ۳۵.۱۰. بالای آستانه منحنی‌ها وارونه می‌شوند: کدهای بزرگ‌تر بدترند و نقطهٔ تقاطع، p_th ≈ ۱٪ (ایده‌آل) یا ۰٫۵ تا ۰٫۷٪ (نویز واقع‌بینانهٔ مداری) را تعریف می‌کند. نقطهٔ عطف ۲۰۲۴–۲۰۲۵: تراشهٔ Willow گوگل وصله‌های d = 3، 5، 7 را اجرا کرد و سرکوب با ضریب Λ ≈ 2.14 به‌ازای هر گام فاصله، خطای منطقی حدود ۰٫۱٪ در هر دور در d = 7، و کیوبیت منطقی‌ای که از بهترین کیوبیت فیزیکی تراشه عمر بیشتری کرد را اندازه گرفت — نخستین نمایش بی‌ابهامِ عملکرد زیر آستانه.