ข้ามไปยังเนื้อหาหลัก

ครอบครัวโค้ดอื่น ๆ

ผ่านมากว่า 25 ปีนับตั้งแต่ค้นพบ toric code และมีงานวิจัยเกี่ยวกับโค้ดแก้ไขข้อผิดพลาดเชิงควอนตัมอีกมากมายนับแต่นั้น รวมถึงการค้นพบโค้ดเชิงโทโพโลยีเชิงควอนตัมอื่น ๆ ที่ได้รับแรงบันดาลใจจาก toric code ตลอดจนโค้ดที่อาศัยแนวคิดแตกต่างออกไป การรวบรวมโครงสร้างโค้ดแก้ไขข้อผิดพลาดเชิงควอนตัมที่รู้จักทั้งหมดไว้ที่นี่เป็นไปไม่ได้ แต่เราจะขอเปิดมุมมองเล็กน้อยด้วยการพูดถึงตัวอย่างสำคัญสองสามอย่าง

Surface codes

อันที่จริง toric code ไม่จำเป็นต้องมีขอบเขตแบบเป็นคาบเสมอไป กล่าวคือ เป็นไปได้ที่จะตัดเอาเฉพาะส่วนหนึ่งของ toric code และวางราบบนพื้นผิวสองมิติแทนที่จะเป็นทอรัส เพื่อให้ได้โค้ดแก้ไขข้อผิดพลาดเชิงควอนตัม โดยต้องกำหนด stabilizer generators ที่ขอบให้ถูกต้อง สิ่งที่ได้มาเรียกว่า surface code

ตัวอย่างเช่น นี่คือแผนภาพของ surface code ที่ถูกตัดด้วยขอบหยาบที่ด้านบนและล่าง และขอบเรียบที่ด้านข้าง กรณีขอบสำหรับ stabilizer generators กำหนดตามธรรมชาติ คือ การดำเนินการ Pauli บน qubit ที่ "หายไป" จะถูกละไว้

แผนภาพ surface code

Surface codes ในรูปแบบนี้เข้ารหัส qubit เดียว ไม่ใช่สองอย่างที่ toric code ทำ ในกรณีนี้ stabilizer generators เป็น generating set ขั้นต่ำโดยไม่ต้องลบหนึ่งตัวในแต่ละประเภทเหมือน toric code แม้จะต่างกัน แต่คุณสมบัติสำคัญของ toric code ยังคงส่งต่อมา โดยเฉพาะ ข้อผิดพลาดที่ตรวจไม่พบซึ่งไม่ใช่ trivial สำหรับโค้ดนี้ คือ chains ของข้อผิดพลาดที่ทอดยาวจากขอบซ้ายไปขวา (สำหรับ chains ของ XX errors) หรือจากบนลงล่าง (สำหรับ chains ของ ZZ errors)

เป็นไปได้เช่นกันที่จะตัดขอบของ surface code ตามแนวทแยงมุม เพื่อให้ได้สิ่งที่บางครั้งเรียกว่า rotated surface codes ซึ่งได้ชื่อนี้ไม่ใช่เพราะโค้ดถูกหมุนในความหมายที่มีนัย แต่เพราะแผนภาพถูกหมุน (45 องศา) ตัวอย่างเช่น นี่คือแผนภาพของ rotated surface code ที่มีระยะทาง 5

แผนภาพ rotated surface code

สำหรับแผนภาพประเภทนี้ กระเบื้องสีดำ (รวมถึงแบบมน ๆ ที่ขอบ) แสดง XX stabilizer generators โดยนำ XX ไปใช้กับจุดยอด (สองหรือสี่จุด) ของแต่ละกระเบื้อง ขณะที่กระเบื้องสีขาวแทน ZZ stabilizer generators Rotated surface codes มีคุณสมบัติคล้ายกับ surface codes แบบไม่ rotated แต่ประหยัดกว่าในแง่ของจำนวน qubit ที่ใช้

Color codes

Color codes เป็นโค้ดที่น่าสนใจอีกกลุ่มหนึ่ง ซึ่งยังจัดอยู่ในหมวดหมู่ทั่วไปของ topological quantum codes ที่นี่จะอธิบายเพียงสั้น ๆ เท่านั้น

วิธีหนึ่งในการมอง color codes คือมองเป็นการนำ 7-qubit Steane code ไปสรุปทั่วไปในเชิงเรขาคณิต ด้วยแนวคิดนี้ ลองพิจารณา 7-qubit Steane code อีกครั้ง โดยสมมติว่า seven qubits มีชื่อและลำดับตามหลักการตั้งเลขของ Qiskit ว่า (Q6,Q5,Q4,Q3,Q2,Q1,Q0)(\mathsf{Q}_6,\mathsf{Q}_5,\mathsf{Q}_4,\mathsf{Q}_3,\mathsf{Q}_2,\mathsf{Q}_1,\mathsf{Q}_0) ลองนึกถึง stabilizer generators สำหรับโค้ดนี้ดังนี้

ZZZZIIIZZIIZZIZIZIZIZXXXXIIIXXIIXXIXIXIXIX\begin{array}{ccccccc} Z & Z & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] Z & Z & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} \\[1mm] Z & \mathbb{I} & Z & \mathbb{I} & Z & \mathbb{I} & Z \\[1mm] X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I} \\[1mm] X & X & \mathbb{I} & \mathbb{I} & X & X & \mathbb{I} \\[1mm] X & \mathbb{I} & X & \mathbb{I} & X & \mathbb{I} & X \end{array}

ถ้าเราเชื่อม seven qubits เหล่านี้กับจุดยอดของกราฟต่อไปนี้ เราจะพบว่า stabilizer generators ตรงกับหน้าที่เกิดจากขอบของกราฟพอดี

แผนภาพแสดง geometric locality ของ 7-qubit Steane code

กล่าวคือ สำหรับแต่ละหน้า จะมีทั้ง ZZ stabilizer generator และ XX stabilizer generator ที่ทำงานได้จริงบน qubit ที่จุดยอดของหน้านั้น ดังนั้น 7-qubit Steane code จึงมี geometric locality หมายความว่าในหลักการไม่ต้องเคลื่อนย้าย qubit ข้ามระยะทางไกลเพื่อวัด stabilizer generators ข้อดีที่ ZZ และ XX stabilizer generators ทำงานได้จริงบนชุดของ qubit เดียวกันเสมอ ยังเป็นเรื่องดีด้วยเหตุผลที่เชื่อมโยงกับการคำนวณเชิงควอนตัมแบบ fault-tolerant ซึ่งเป็นหัวข้อของบทถัดไป

Color codes คือโค้ดแก้ไขข้อผิดพลาดเชิงควอนตัม (CSS codes พูดให้ชัดกว่า) ที่นำรูปแบบพื้นฐานนี้ไปขยาย ยกเว้นว่ากราฟที่ใช้อาจแตกต่างกัน ตัวอย่างเช่น นี่คือกราฟที่มี 19 จุดยอดซึ่งใช้ได้ มันกำหนดโค้ดที่เข้ารหัส qubit หนึ่งใน 19 qubit และมีระยะทาง 5 (นั่นคือ เป็น [[19,1,5]][[19,1,5]] stabilizer code)

แผนภาพ color code

สิ่งนี้สามารถทำได้กับกราฟอื่น ๆ อีกมาก รวมถึงครอบครัวกราฟที่ขยายขนาดได้และมีโครงสร้างที่น่าสนใจ

Color codes ได้ชื่อนี้เพราะเงื่อนไขที่จำเป็นข้อหนึ่งบนกราฟที่กำหนดโค้ดเหล่านี้คือหน้าสามารถถูกระบายสีสามสีได้ หมายความว่าแต่ละหน้าสามารถกำหนดหนึ่งในสามสีได้ โดยไม่มีสองหน้าที่มีสีเดียวกันเชื่อมต่อกันด้วยขอบ (เหมือนที่เราเห็นในแผนภาพก่อนหน้า) สีไม่มีความสำคัญต่อนิยามของโค้ดเอง — มีทั้ง ZZ และ XX stabilizer generators สำหรับแต่ละหน้าเสมอไม่ว่าจะเป็นสีใด — แต่สีมีความสำคัญในการวิเคราะห์ว่าโค้ดทำงานอย่างไร

โค้ดอื่น ๆ

การแก้ไขข้อผิดพลาดเชิงควอนตัมเป็นพื้นที่วิจัยที่กระตือรือร้นและก้าวหน้าอย่างรวดเร็ว ผู้ที่สนใจสำรวจเพิ่มเติมอาจอยากลองดู Error Correction Zoo ซึ่งรวบรวมตัวอย่างและการจัดหมวดหมู่ของโค้ดแก้ไขข้อผิดพลาดเชิงควอนตัมจำนวนมาก

ตัวอย่าง: Gross code

Gross code คือ [[144,12,12]][[144,12,12]] stabilizer code ที่เพิ่งค้นพบไม่นานมานี้ มีลักษณะคล้าย toric code ยกเว้นว่าแต่ละ stabilizer generator ทำงานได้จริงบน qubit เพิ่มอีกสอง qubit ที่อยู่ไกลออกไปจากกระเบื้องหรือจุดยอดของ generator นั้นเล็กน้อย (ดังนั้นแต่ละ stabilizer generator มี weight 6) ข้อได้เปรียบของโค้ดนี้คือสามารถเข้ารหัสได้ถึง 12 qubit เทียบกับเพียงสองใน toric code

Source: IBM Quantum docs — updated 15 ม.ค. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of approx. 26 มี.ค. 2569