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

Stabilizer codes (รหัส Stabilizer)

ตอนนี้เราจะนิยาม stabilizer codes แบบทั่วไปกัน นอกจากนี้ยังจะพูดถึงคุณสมบัติพื้นฐานและการทำงานของมัน รวมถึงวิธีเข้ารหัส state และวิธีตรวจจับ/แก้ไขข้อผิดพลาดโดยใช้ codes เหล่านี้

นิยามของ stabilizer codes

nn-qubit stabilizer code กำหนดโดยรายการการดำเนินการ Pauli บน nn qubit ได้แก่ P1,,Pr.P_1,\ldots,P_r. การดำเนินการเหล่านี้เรียกว่า stabilizer generators ในบริบทนี้ และต้องตอบสนองเงื่อนไขสามข้อต่อไปนี้

  1. Stabilizer generators ทั้งหมด สับเปลี่ยนกันได้ (commute)

    PjPk=PkPj(for all j,k{1,,r})P_j P_k = P_k P_j \qquad \text{(for all $j,k\in\{1,\ldots,r\}$)}
  2. Stabilizer generators ก่อตัวเป็น minimal generating set

    PkP1,,Pk1,Pk+1,,Pr(for all k{1,,r})P_k \notin \langle P_1,\ldots,P_{k-1},P_{k+1},\ldots,P_r\rangle \qquad \text{(for all $k\in\{1,\ldots,r\}$)}
  3. มีเวกเตอร์ quantum state อย่างน้อยหนึ่งตัวที่ถูกตรึงโดย stabilizer generators ทั้งหมด

    InP1,,Pr-\mathbb{I}^{\otimes n} \notin \langle P_1,\ldots, P_r\rangle

    (ไม่ใช่เรื่องชัดเจนทันทีว่าการมีอยู่ของ quantum state vector ψ\vert\psi\rangle ที่ถูกตรึงโดย stabilizer generators ทั้งหมด หมายความว่า P1ψ==Prψ=ψP_1 \vert\psi\rangle = \cdots = P_r \vert\psi\rangle = \vert\psi\rangle นั้นเทียบเท่ากับ InP1,,Pr-\mathbb{I}^{\otimes n} \notin \langle P_1,\ldots, P_r\rangle แต่เป็นเช่นนั้นจริง และเราจะเห็นว่าทำไมในภายหลังในบทเรียน)

สมมติว่าเรามีรายการ P1,,PrP_1,\ldots,P_r ดังกล่าว code space ที่กำหนดโดย stabilizer generators เหล่านี้คือ subspace C\mathcal{C} ที่ประกอบด้วย quantum state vectors บน nn qubit ทุกตัวที่ถูกตรึงโดย stabilizer generators ทั้ง rr ตัว

C={ψ:P1ψ==Prψ=ψ}\mathcal{C} = \bigl\{ \vert\psi\rangle \,:\, P_1 \vert\psi\rangle = \cdots = P_r \vert\psi\rangle = \vert\psi\rangle \bigr\}

Quantum state vectors ใน subspace นี้คือสิ่งที่มองได้ว่าเป็น การเข้ารหัสที่ถูกต้อง ของ quantum states เราจะพูดถึงกระบวนการเข้ารหัสจริงในภายหลัง

สุดท้าย stabilizer ของ code ที่กำหนดโดย stabilizer generators P1,,PrP_1, \ldots, P_r คือเซตที่สร้างจากการดำเนินการเหล่านี้:

P1,,Pr.\langle P_1,\ldots,P_r\rangle.

วิธีคิดเกี่ยวกับ stabilizer code อย่างเป็นธรรมชาติคือการมอง stabilizer generators เป็น observables และตีความผลลัพธ์การวัดที่เกี่ยวข้องกับ observables เหล่านี้รวมกันเป็น error syndrome การเข้ารหัสที่ถูกต้องคือ quantum state vectors บน nn qubit ที่ผลลัพธ์การวัดในรูป eigenvalues ทั้งหมดรับประกันว่าเป็น +1+1 syndrome อื่นใดที่มี 1-1 อย่างน้อยหนึ่งตัว บ่งชี้ว่าตรวจพบข้อผิดพลาด

เราจะดูตัวอย่างหลายตัวในไม่ช้า แต่ก่อนอื่นขอกล่าวสั้นๆ เกี่ยวกับเงื่อนไขสามข้อของ stabilizer generators

เงื่อนไขแรกนั้นสมเหตุสมผล จากการตีความ stabilizer generators เป็น observables เพราะหมายความว่าไม่ว่าจะวัดในลำดับใดก็ไม่มีผล: observables สับเปลี่ยนกันได้ การวัดจึงสับเปลี่ยนกันได้ ซึ่งก็เป็นการกำหนดข้อจำกัดทางพีชคณิตบางอย่างให้กับ stabilizer codes ที่สำคัญต่อการทำงานของมัน

เงื่อนไขที่สองกำหนดให้ stabilizer generators ก่อตัวเป็น minimal generating set หมายความว่าการนำตัวใดตัวหนึ่งออกจะทำให้ได้ stabilizer ที่เล็กกว่า จริงๆ แล้ว เงื่อนไขนี้ไม่ได้จำเป็นต่อการทำงานของ stabilizer codes ในแง่ การปฏิบัติ — และอย่างที่เราจะเห็นในบทเรียนถัดไป บางครั้งก็สมเหตุสมผลที่จะนึกถึงเซตของ stabilizer generators สำหรับ codes ที่ไม่ตอบสนองเงื่อนไขนี้ อย่างไรก็ตาม เพื่อการ วิเคราะห์ stabilizer codes และอธิบายคุณสมบัติของมัน เราจะถือว่าเงื่อนไขนี้มีอยู่ สรุปสั้นๆ เงื่อนไขนี้รับประกันว่า observable แต่ละตัวที่วัดเพื่อหา error syndrome นั้น เพิ่ม ข้อมูลเกี่ยวกับข้อผิดพลาดที่เป็นไปได้ แทนที่จะซ้ำซ้อนและให้ผลลัพธ์ที่สามารถอนุมานได้จากการวัด stabilizer generator อื่น

เงื่อนไขที่สามกำหนดให้มีเวกเตอร์ที่ไม่ใช่ศูนย์อย่างน้อยหนึ่งตัวที่ถูกตรึงโดย stabilizer generators ทั้งหมด ซึ่งเทียบเท่ากับ In-\mathbb{I}^{\otimes n} ไม่อยู่ใน stabilizer ความจำเป็นของเงื่อนไขนี้มาจากข้อเท็จจริงที่ว่าเป็นไปได้จริงที่จะเลือก minimal generating set ของ Pauli operations บน nn qubit ที่สับเปลี่ยนกันได้ทั้งหมด แต่ไม่มีเวกเตอร์ที่ไม่ใช่ศูนย์ใดที่ถูกตรึงโดยการดำเนินการทุกตัว เราไม่สนใจ "codes" ที่ไม่มีการเข้ารหัสที่ถูกต้อง จึงตัดความเป็นไปได้นี้ออกด้วยการกำหนดเงื่อนไขนี้เป็นส่วนหนึ่งของนิยาม

ตัวอย่าง

นี่คือตัวอย่าง stabilizer codes สำหรับค่า nn ขนาดเล็ก เราจะเห็นตัวอย่างเพิ่มเติม รวมถึงตัวที่ nn อาจใหญ่กว่านี้มาก ในบทเรียนถัดไป

3-bit repetition code

3-bit repetition code เป็นตัวอย่างของ stabilizer code ที่มี stabilizer generators คือ ZZIZ \otimes Z \otimes \mathbb{I} และ IZZ\mathbb{I} \otimes Z \otimes Z

เราสามารถตรวจสอบได้ง่ายๆ ว่า stabilizer generators ทั้งสองตัวนี้ตอบสนองเงื่อนไขที่กำหนด ประการแรก ZZIZ \otimes Z \otimes \mathbb{I} และ IZZ\mathbb{I} \otimes Z \otimes Z สับเปลี่ยนกันได้

(ZZI)(IZZ)=ZIZ=(IZZ)(ZZI)(Z \otimes Z \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z) = Z \otimes \mathbb{I} \otimes Z = (\mathbb{I} \otimes Z \otimes Z)(Z \otimes Z \otimes \mathbb{I})

ประการที่สอง เรามี minimal generating set (ซึ่งชัดเจนในกรณีนี้)

ZZIIZZ={III,IZZ}IZZZZI={III,ZZI}\begin{aligned} Z \otimes Z \otimes \mathbb{I} \notin \langle\mathbb{I} \otimes Z \otimes Z\rangle & = \{\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, \mathbb{I} \otimes Z \otimes Z\}\\[1mm] \mathbb{I} \otimes Z \otimes Z \notin \langle Z \otimes Z \otimes \mathbb{I}\rangle & = \{\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z \otimes Z \otimes \mathbb{I}\} \end{aligned}

และประการที่สาม เรารู้อยู่แล้วว่า 000\vert 000\rangle และ 111\vert 111\rangle รวมถึง linear combination ใดๆ ของเวกเตอร์เหล่านี้ ถูกตรึงโดยทั้ง ZZIZ \otimes Z \otimes \mathbb{I} และ IZZ\mathbb{I} \otimes Z \otimes Z หรืออีกทางหนึ่ง เราสรุปได้จากเงื่อนไขที่เทียบเท่าในนิยาม

IIIZZI,IZZ={III,ZZI,ZIZ,IZZ}-\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\notin \langle Z \otimes Z \otimes \mathbb{I}, \mathbb{I} \otimes Z \otimes Z\rangle = \{ \mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z\otimes Z\otimes\mathbb{I}, Z\otimes\mathbb{I}\otimes Z, \mathbb{I}\otimes Z\otimes Z \}

เงื่อนไขเหล่านี้อาจตรวจสอบยากกว่ามากสำหรับ stabilizer codes ที่ซับซ้อนกว่านี้

Modified 3-bit repetition code

ในบทเรียนที่แล้ว เราเห็นว่าเป็นไปได้ที่จะดัดแปลง 3-bit repetition code ให้ป้องกันข้อผิดพลาด phase-flip แทน bit-flip ในฐานะ stabilizer code ตัวใหม่นี้อธิบายได้ง่าย: stabilizer generators ของมันคือ XXIX \otimes X \otimes \mathbb{I} และ IXX\mathbb{I} \otimes X \otimes X

ครั้งนี้ stabilizer generators แทน XXX\otimes X observables แทนที่จะเป็น ZZZ\otimes Z observables จึงเป็น parity checks ในฐาน plus/minus แทนที่จะเป็นฐานมาตรฐาน เงื่อนไขสามข้อที่กำหนดสำหรับ stabilizer generators สามารถตรวจสอบได้ง่าย ตามแนวทางเดียวกับ 3-bit repetition code ทั่วไป

9-qubit Shor code

นี่คือ 9-qubit Shor code ซึ่งเป็น stabilizer code ด้วย แสดงด้วย stabilizer generators

ZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZXXXXXXIIIIIIXXXXXX\begin{gathered} Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes Z \otimes Z\\[1mm] X \otimes X \otimes X \otimes X \otimes X \otimes X \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\\[1mm] \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}\otimes X \otimes X \otimes X \otimes X \otimes X \otimes X \end{gathered}

ในกรณีนี้ โดยพื้นฐานแล้วเรามี 3-bit repetition code สามชุด หนึ่งชุดสำหรับแต่ละบล็อกของ qubit สามตัว รวมถึง stabilizer generators สองตัวสุดท้ายที่มีรูปแบบชวนให้นึกถึง Circuit สำหรับตรวจจับ phase flips ของ code นี้

อีกวิธีในการคิดเกี่ยวกับ stabilizer generators สองตัวสุดท้ายคือมันมีรูปแบบเดียวกับ 3-bit repetition code สำหรับ phase flips ยกเว้นว่า XXXX\otimes X\otimes X ถูกแทนด้วย XX ซึ่งสอดคล้องกับข้อเท็จจริงที่ว่า XXXX\otimes X\otimes X สอดคล้องกับการดำเนินการ XX บน logical qubits ที่เข้ารหัสโดยใช้ 3-bit repetition code

ก่อนที่จะไปต่อ ควรสังเกตว่าสัญลักษณ์ tensor product มักถูกละไว้เมื่ออธิบาย stabilizer codes ด้วยรายการ stabilizer generators เพราะทำให้อ่านและเห็นรูปแบบได้ง่ายกว่า ตัวอย่างเช่น stabilizer generators เดียวกันกับ 9-qubit Shor code ข้างต้นมีลักษณะดังนี้เมื่อไม่เขียนสัญลักษณ์ tensor product อย่างชัดเจน

ZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZIIIIIIIIIZZIIIIIIIIZZXXXXXXIIIIIIXXXXXX\begin{array}{ccccccccc} Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & \mathbb{I} & Z & Z\\[1mm] X & X & X & X & X & X & \mathbb{I} & \mathbb{I} & \mathbb{I}\\[1mm] \mathbb{I} & \mathbb{I} & \mathbb{I}& X & X & X & X & X & X \end{array}

7-qubit Steane code

นี่คือตัวอย่างอื่นของ stabilizer code ที่รู้จักกันในชื่อ 7-qubit Steane code มันมีคุณสมบัติที่น่าทึ่ง และเราจะกลับมาที่ code นี้เป็นระยะๆ ตลอดบทเรียนที่เหลือของคอร์ส

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}

ตอนนี้ขอสังเกตเพียงว่านี่เป็น stabilizer code ที่ถูกต้อง Stabilizer generators สามตัวแรกสับเปลี่ยนกันได้อย่างชัดเจน เพราะ ZZ สับเปลี่ยนกับตัวมันเองและ identity สับเปลี่ยนกับทุกสิ่ง และสถานการณ์ก็คล้ายกันสำหรับ stabilizer generators สามตัวหลัง สิ่งที่เหลือคือการตรวจสอบว่าถ้าเราเลือก ZZ-stabilizer generator หนึ่งตัว (นั่นคือหนึ่งในสามตัวแรก) และ XX-stabilizer generator หนึ่งตัว (นั่นคือหนึ่งในสามตัวหลัง) แล้วทั้งสองตัว generators นี้สับเปลี่ยนกันได้ และสามารถตรวจสอบได้จาก 9 คู่ที่เป็นไปได้ ในทุกกรณี XX และ ZZ Pauli matrices ตรงกันในตำแหน่งเดียวกันจำนวนคู่เสมอ ดังนั้น generators ทั้งสองจึงสับเปลี่ยนกันได้ เหมือนกับที่ XXX\otimes X และ ZZZ\otimes Z สับเปลี่ยนกันได้ นี่ยังเป็น minimal generating set ด้วย และกำหนด code space ที่ไม่ใช่ trivial ซึ่งเป็นข้อเท็จจริงที่ฝากให้คุณใคร่ครวญ

7-qubit Steane code คล้ายกับ 9-qubit Shor code ตรงที่มันเข้ารหัส qubit เดียวและอนุญาตให้แก้ไขข้อผิดพลาดโดยพลการบน qubit หนึ่งตัว แต่ต้องการเพียง 7 qubits แทนที่จะเป็น 9

5-qubit code

เจ็ดไม่ใช่จำนวน qubit น้อยที่สุดที่จำเป็นสำหรับการเข้ารหัส qubit หนึ่งตัวและป้องกันข้อผิดพลาดโดยพลการบน qubit หนึ่งตัว — นี่คือ stabilizer code ที่ทำสิ่งนี้ได้ด้วยเพียง 5 qubits

XZZXIIXZZXXIXZZZXIXZ\begin{array}{ccccc} X & Z & Z & X & \mathbb{I} \\[1mm] \mathbb{I} & X & Z & Z & X \\[1mm] X & \mathbb{I} & X & Z & Z \\[1mm] Z & X & \mathbb{I} & X & Z \\[1mm] \end{array}

code นี้มักเรียกว่า the 5-qubit code นี่คือจำนวน qubit น้อยที่สุดใน quantum error correcting code ที่สามารถแก้ไขข้อผิดพลาดบน qubit เดียวโดยพลการได้

One-dimensional stabilizer codes

นี่คือตัวอย่างอื่นของ stabilizer code แม้ว่าจริงๆ แล้วมันไม่ได้เข้ารหัส qubit ใดเลย: code space เป็นหนึ่งมิติ อย่างไรก็ตาม มันยังคงเป็น stabilizer code ที่ถูกต้องตามนิยาม

ZZXX\begin{array}{cc} Z & Z \\[1mm] X & X \end{array}

โดยเฉพาะ code space คือ one-dimensional space ที่ span โดย e-bit ϕ+\vert\phi^+\rangle

นี่คือตัวอย่างที่เกี่ยวข้องของ stabilizer code ที่มี code space เป็น one-dimensional space ที่ span โดย GHZ state (000+111)/2(\vert 000\rangle + \vert 111\rangle)/\sqrt{2}

ZZIIZZXXX\begin{array}{cc} Z & Z & \mathbb{I} \\[1mm] \mathbb{I} & Z & Z \\[1mm] X & X & X \end{array}

มิติของ code space

สมมติว่าเรามี stabilizer code ที่อธิบายด้วย stabilizer generators P1,,PrP_1,\ldots,P_r บน nn qubits คำถามแรกที่น่าจะนึกถึงเกี่ยวกับ code นี้คือ "มันเข้ารหัส qubit กี่ตัว?"

คำถามนี้มีคำตอบง่ายๆ สมมติว่า stabilizer generators P1,,PrP_1, \ldots, P_r บน nn qubits ตอบสนองเงื่อนไขสามข้อของนิยาม (กล่าวคือ stabilizer generators ทั้งหมดสับเปลี่ยนกันได้ นี่เป็น minimal generating set และ code space ไม่ว่างเปล่า) ดังนั้น code space ของ stabilizer code นี้ต้องมีมิติ 2nr2^{n-r} จึงสามารถเข้ารหัส nrn-r qubits โดยใช้ code นี้ได้

ในแง่ intuitive เรามี nn qubits สำหรับการเข้ารหัส และ stabilizer generator แต่ละตัว "นำ qubit ออกไป" หนึ่งตัวในแง่ของจำนวน qubit ที่เราสามารถเข้ารหัสได้ สังเกตว่านี่ไม่เกี่ยวกับว่าจะตรวจจับหรือแก้ไข ข้อผิดพลาด ชนิดใดหรือจำนวนเท่าใด แต่เป็นเพียงข้อความเกี่ยวกับมิติของ code space

ตัวอย่างเช่น สำหรับทั้ง 3-bit repetition code และเวอร์ชันที่ดัดแปลงสำหรับ phase-flip errors เรามี n=3n=3 qubits และ r=2r=2 stabilizer generators ดังนั้น codes เหล่านี้สามารถเข้ารหัส 1 qubit ได้แต่ละตัว อีกตัวอย่างหนึ่ง พิจารณา 5-qubit code: เรามี 5 qubits และ 4 stabilizer generators ดังนั้น code space มีมิติ 2 หมายความว่า qubit หนึ่งตัวสามารถเข้ารหัสโดยใช้ code นี้ได้ ตัวอย่างสุดท้าย code ที่มี stabilizer generators คือ XXX\otimes X และ ZZZ\otimes Z มี code space หนึ่งมิติ ที่ span โดย state ϕ+\vert\phi^+\rangle ซึ่งสอดคล้องกับการมี n=2n=2 qubits และ r=2r=2 stabilizer generators

ตอนนี้มาดูว่าข้อเท็จจริงนี้พิสูจน์ได้อย่างไร ขั้นตอนแรกคือสังเกตว่า เนื่องจาก stabilizer generators สับเปลี่ยนกันได้ และเนื่องจาก Pauli operation ทุกตัวเป็น inverse ของตัวเอง องค์ประกอบทุกตัวใน stabilizer สามารถแสดงเป็น product ได้

P1a1Prar,P_1^{a_1} \cdots P_r^{a_r},

โดยที่ a1,,ar{0,1}a_1,\ldots,a_r\in\{0,1\} พูดอีกแบบคือ องค์ประกอบแต่ละตัวของ stabilizer ได้จากการคูณ subset ของ stabilizer generators บางส่วนเข้าด้วยกัน จริงๆ แล้ว stabilizer element ทุกตัวสามารถแสดงในแบบนี้ อย่างเดียว เนื่องจากเงื่อนไขว่า {P1,,Pr}\{P_1,\ldots,P_r\} เป็น minimal generating set

ต่อมา กำหนดให้ Πk\Pi_k เป็น projection ลง subspace ของ eigenvectors ที่มี eigenvalue +1+1 ของ PkP_k สำหรับแต่ละ k{1,,r}k\in\{1,\ldots,r\} Projections เหล่านี้ได้จากการเฉลี่ย Pauli operations ที่สอดคล้องกับ identity operation ดังต่อไปนี้

Πk=In+Pk2\Pi_k = \frac{\mathbb{I}^{\otimes n} + P_k}{2}

Code space C\mathcal{C} คือ subspace ของเวกเตอร์ทั้งหมดที่ถูกตรึงโดย stabilizer generators P1,,PrP_1,\ldots,P_r ทั้ง rr ตัว หรือเทียบเท่ากันคือ projections Π1,,Πr\Pi_1,\ldots,\Pi_r ทั้ง rr ตัว

เนื่องจาก stabilizer generators ทั้งหมดสับเปลี่ยนกันได้ projections Π1,,Πr\Pi_1,\ldots,\Pi_r ก็ต้องสับเปลี่ยนกันได้ด้วย ซึ่งทำให้เราใช้ข้อเท็จจริงจาก linear algebra ได้ว่า product ของ projections เหล่านี้คือ projection ลง intersection ของ subspaces ที่สอดคล้องกับ projections แต่ละตัว กล่าวคือ product Π1Πr\Pi_1\cdots\Pi_r คือ projection ลง code space C\mathcal{C}

เราสามารถขยาย product Π1Πr\Pi_1\cdots\Pi_r โดยใช้สูตรของ projections เหล่านี้เพื่อได้นิพจน์ต่อไปนี้

Π1Πr=(In+P12)(In+Pr2)=12ra1,,ar{0,1}P1a1Prar\Pi_1\cdots\Pi_r = \biggl(\frac{\mathbb{I}^{\otimes n} + P_1}{2}\biggr)\cdots\biggl(\frac{\mathbb{I}^{\otimes n} + P_r}{2}\biggr) = \frac{1}{2^r}\sum_{a_1,\ldots,a_r \in \{0,1\}} P_1^{a_1}\cdots P_r^{a_r}

กล่าวเป็นคำพูดคือ projection ลง code space ของ stabilizer code เท่ากับ (ในฐานะ matrix) ค่า เฉลี่ย ของ elements ทั้งหมดใน stabilizer ของ code นั้น

สุดท้าย เราสามารถคำนวณมิติของ code space โดยใช้ข้อเท็จจริงที่ว่ามิติของ subspace ใดๆ เท่ากับ trace ของ projection ลง subspace นั้น ดังนั้น มิติของ code space C\mathcal{C} ได้จากสูตรต่อไปนี้

dim(C)=Tr(Π1Πr)=12ra1,,ar{0,1}Tr(P1a1Prar)\operatorname{dim}(\mathcal{C}) = \operatorname{Tr}(\Pi_1\cdots\Pi_r) = \frac{1}{2^r} \sum_{a_1,\ldots,a_r \in \{0,1\}} \operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r})

เราสามารถประเมินนิพจน์นี้โดยใช้ข้อเท็จจริงพื้นฐานสองข้อ

  • เรามี P10Pr0=InP_1^0 \cdots P_r^0 = \mathbb{I}^{\otimes n} ดังนั้น

    Tr(P10Pr0)=2n.\operatorname{Tr}(P_1^{0}\cdots P_r^{0}) = 2^n.
  • สำหรับ (a1,,ar)(0,,0)(a_1,\ldots,a_r) \neq (0,\ldots,0) product P1a1PrarP_1^{a_1}\cdots P_r^{a_r} ต้องเป็น ±1\pm 1 คูณกับ Pauli operation — แต่เราไม่สามารถได้ In\mathbb{I}^{\otimes n} เพราะจะขัดแย้งกับ minimality ของเซต {P1,,Pr}\{P_1,\ldots,P_r\} และเราไม่สามารถได้ In-\mathbb{I}^{\otimes n} เพราะเงื่อนไขที่สามของ stabilizer generators ห้ามไว้ ดังนั้น เนื่องจาก trace ของ Pauli operation ที่ไม่ใช่ identity ทุกตัวเป็นศูนย์ เราจึงได้

    Tr(P1a1Prar)=0.\operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r}) = 0.

ดังนั้น มิติของ code space จึงเป็น 2nr2^{n-r} ตามที่อ้างไว้:

dim(C)=12ra1,,ar{0,1}Tr(P1a1Prar)=12rTr(P10Pr0)=2nr.\begin{aligned} \operatorname{dim}(\mathcal{C}) & = \frac{1}{2^r} \sum_{a_1,\ldots,a_r \in \{0,1\}} \operatorname{Tr}(P_1^{a_1}\cdots P_r^{a_r}) \\ & = \frac{1}{2^r} \operatorname{Tr}(P_1^{0}\cdots P_r^{0}) \\ & = 2^{n-r}. \end{aligned}

เป็นหมายเหตุเพิ่มเติม ตอนนี้เราเห็นแล้วว่าสมมติฐานที่ว่า In-\mathbb{I}^{\otimes n} ไม่อยู่ใน stabilizer นั้นหมายความว่า code space ต้องมี quantum state vector อย่างน้อยหนึ่งตัว เนื่องจากอย่างที่เราพิสูจน์แล้ว สมมติฐานนี้หมายความว่า code space มีมิติ 2nr2^{n-r} ซึ่งเป็นศูนย์ไม่ได้ การอนุมานในทิศทางตรงข้ามนั้น trivial: ถ้า In-\mathbb{I}^{\otimes n} อยู่ใน stabilizer แล้ว code space ก็ไม่สามารถมี quantum state vectors ใดๆ เพราะไม่มีเวกเตอร์ที่ไม่ใช่ศูนย์ใดถูกตรึงโดยการดำเนินการนี้

Clifford operations และการเข้ารหัส

ต่อไป เราจะพูดถึงโดยย่อว่า qubits สามารถเข้ารหัสโดยใช้ stabilizer codes ได้อย่างไร แต่ก่อนอื่นเราต้องแนะนำ Clifford operations ก่อน

Clifford operations

Clifford operations คือ unitary operations บน qubits จำนวนเท่าใดก็ได้ ที่สามารถ implement ได้โดย quantum circuits ที่มี gates ชุดจำกัด:

  • Hadamard gates
  • SS gates
  • CNOT gates

สังเกตว่า TT gates ไม่รวมอยู่ด้วย รวมถึง Toffoli gates และ Fredkin gates ไม่เพียงแต่ gates เหล่านั้นจะไม่อยู่ในรายการ แต่จริงๆ แล้วมันเป็นไปไม่ได้ที่จะ implement gates เหล่านั้นโดยใช้ gates ที่ระบุไว้ที่นี่ มันไม่ใช่ Clifford operations ในทางกลับกัน Pauli operations เป็น Clifford operations เพราะสามารถ implement ได้ด้วยลำดับของ Hadamard และ SS gates

นั่นเป็นวิธีง่ายๆ ในการนิยาม Clifford operations แต่ไม่ได้อธิบายว่าทำไมถึงนิยามแบบนี้หรืออะไรที่พิเศษเกี่ยวกับการรวบรวม gates ชุดนี้โดยเฉพาะ เหตุผล ที่แท้จริง ที่ Clifford operations ถูกนิยามแบบนี้คือ นอกเหนือจาก global phase factors แล้ว Clifford operations คือ unitary operations ที่แปลง Pauli operations เป็น Pauli operations เสมอโดย conjugation พูดให้ชัดเจนขึ้น nn-qubit unitary operation UU เทียบเท่ากับ Clifford operation นอกเหนือจาก phase factor ก็ต่อเมื่อ สำหรับ ทุก nn-qubit Pauli operation PP เรามี

UPU=±QU P U^{\dagger} = \pm Q

สำหรับ nn-qubit Pauli operation QQ บางตัว

(สังเกตว่าเป็นไปไม่ได้ที่จะมี UPU=αQU P U^{\dagger} = \alpha Q สำหรับ α{+1,1}\alpha\notin\{+1,-1\} เมื่อ UU เป็น unitary และ PP และ QQ เป็น Pauli operations สิ่งนี้ตามมาจากข้อเท็จจริงที่ว่า matrix ทางด้านซ้ายของสมการนั้นเป็นทั้ง unitary และ Hermitian และ +1+1 กับ 1-1 เป็นตัวเลือกเดียวสำหรับ α\alpha ที่ทำให้ด้านขวาเป็น unitary และ Hermitian ได้ด้วย)

การตรวจสอบคุณสมบัติ conjugation ที่กล่าวมานั้นตรงไปตรงมาเมื่อ UU เป็น Hadamard, S,S, หรือ CNOT gate โดยเฉพาะอย่างยิ่ง สำหรับ Hadamard gates ทำได้ง่าย

HXH=Z,HYH=Y,HZH=X,H X H^{\dagger} = Z, \qquad H Y H^{\dagger} = -Y, \qquad H Z H^{\dagger} = X,

และ SS gates,

SXS=Y,SYS=X,SZS=Z.S X S^{\dagger} = Y, \qquad S Y S^{\dagger} = -X, \qquad S Z S^{\dagger} = Z.

สำหรับ CNOT gates มี 15 non-identity Pauli operations บน two qubits ที่ต้องตรวจสอบ แน่นอนว่าสามารถตรวจสอบทีละตัว — แต่ความสัมพันธ์ระหว่าง CNOT gates กับ XX และ ZZ gates ที่ระบุไว้ (ในรูป circuit) ในบทเรียนที่แล้ว พร้อมกับกฎการคูณของ Pauli matrices เสนอทางลัดไปสู่ข้อสรุปเดียวกัน

เมื่อเรารู้ว่าคุณสมบัติ conjugation นี้เป็นจริงสำหรับ Hadamard, S,S, และ CNOT gates เราสรุปได้ทันทีว่ามันเป็นจริงสำหรับ circuits ที่ประกอบด้วย gates เหล่านี้ — นั่นก็คือ Clifford operations ทั้งหมด

การพิสูจน์ว่าความสัมพันธ์ทำงานในทิศทางตรงข้ามนั้นยากกว่า ซึ่งก็คือถ้า unitary operation UU ที่กำหนดตอบสนองคุณสมบัติ conjugation สำหรับ Pauli operations แล้วต้องสามารถ implement มันได้ (นอกเหนือจาก global phase) โดยใช้เพียง Hadamard, S,S, และ CNOT gates สิ่งนี้จะไม่อธิบายในบทเรียนนี้ แต่เป็นความจริง

Clifford operations ไม่ใช่ universal สำหรับ quantum computation; ต่างจาก universal sets ของ quantum gates การประมาณ unitary operations โดยพลการในระดับความแม่นยำที่ต้องการด้วย Clifford operations นั้นเป็นไปไม่ได้ จริงๆ แล้ว สำหรับค่า nn ที่กำหนด มี nn-qubit Clifford operations จำนวนจำกัด เท่านั้น (นอกเหนือจาก phase factors) การดำเนินการ Clifford operations บน standard basis states ตามด้วยการวัด standard basis ก็ไม่สามารถทำการคำนวณที่อยู่นอกเหนือขอบเขตของ classical algorithms ได้ — เพราะเราสามารถ จำลอง การคำนวณในรูปแบบนี้ได้อย่างมีประสิทธิภาพด้วย classical computation ข้อเท็จจริงนี้รู้จักกันในชื่อ Gottesman-Knill theorem

Encoders สำหรับ stabilizer codes

Stabilizer code กำหนด code space ที่มีมิติหนึ่ง และเรามีอิสระที่จะใช้ code space นั้นตามที่ต้องการ — ไม่มีอะไรบังคับให้เราเข้ารหัส qubits ลงใน code space นั้นในแบบใดแบบหนึ่งโดยเฉพาะ อย่างไรก็ตาม เป็นไปได้เสมอที่จะใช้ Clifford operation เป็น encoder ถ้าเราเลือกทำเช่นนั้น พูดให้ชัดเจนขึ้น สำหรับ stabilizer code ใดๆ ที่อนุญาตให้เข้ารหัส mm qubits ลงใน nn qubits มี nn-qubit Clifford operation UU ที่สำหรับ mm-qubit quantum state vector ϕ\vert\phi\rangle ใดๆ เรามีว่า

ψ=U(0nmϕ)\vert\psi\rangle = U \bigl(\vert 0^{n-m} \rangle \otimes \vert \phi\rangle\bigr)

คือ quantum state vector ใน code space ของ code เราที่เราอาจตีความเป็นการเข้ารหัสของ ϕ\vert\phi\rangle

สิ่งนี้ดีเพราะ Clifford operations ค่อนข้างเรียบง่าย เมื่อเทียบกับ unitary operations โดยพลการ และมีวิธีการ optimize การ implement โดยใช้เทคนิคที่คล้ายกับที่พบในการพิสูจน์ Gottesman-Knill theorem ดังนั้น circuits สำหรับการเข้ารหัส states โดยใช้ stabilizer codes จึงไม่จำเป็นต้องใหญ่มากนัก โดยเฉพาะอย่างยิ่ง เป็นไปได้เสมอที่จะดำเนินการเข้ารหัสสำหรับ nn-qubit stabilizer code โดยใช้ Clifford operation ที่ต้องการ O(n2/log(n))O(n^2/\log(n)) gates เนื่องจาก ทุก Clifford operation บน nn qubits สามารถ implement ได้ด้วย circuit ขนาดนี้

ตัวอย่างเช่น นี่คือ encoder สำหรับ 7-qubit Steane code มันเป็น Clifford operation จริงๆ และปรากฏว่าตัวนี้ไม่ต้องการ SS gates ด้วยซ้ำ

Clifford encoder for the 7-qubit Steane code

การตรวจจับข้อผิดพลาด

สำหรับ nn-qubit stabilizer code ที่อธิบายด้วย stabilizer generators P1,,PrP_1,\ldots, P_r การตรวจจับข้อผิดพลาดทำงานในแบบต่อไปนี้

ในการตรวจจับข้อผิดพลาด stabilizer generators ทั้งหมดจะถูกวัดในฐานะ observables มี rr stabilizer generators ดังนั้นจึงมี rr ผลการวัด แต่ละตัวเป็น +1+1 หรือ 1-1 (หรือค่า binary ถ้าเลือกใช้ 00 แทน +1+1 และ 11 แทน 1-1 ตามลำดับ) เราตีความผลลัพธ์ rr ตัวรวมกัน เป็น vector หรือ string เรียกว่า syndrome Syndrome (+1,,+1)(+1,\ldots,+1) บ่งชี้ว่าไม่มีข้อผิดพลาดถูกตรวจพบ ในขณะที่ 1-1 อย่างน้อยหนึ่งตัวใน syndrome บ่งชี้ว่าตรวจพบข้อผิดพลาด

สมมติโดยเฉพาะว่า EE เป็น nn-qubit Pauli operation ที่แทนข้อผิดพลาดสมมุติ (เราพิจารณาเฉพาะ Pauli operations เป็นข้อผิดพลาด เนื่องจากการแยกส่วนของข้อผิดพลาดทำงานในแบบเดียวกันสำหรับ stabilizer codes โดยพลการเช่นเดียวกับ 9-qubit Shor code) มีสามกรณีที่กำหนดว่า EE ถูกตรวจพบว่าเป็นข้อผิดพลาดหรือไม่

กรณีการตรวจจับข้อผิดพลาด

  1. การดำเนินการ EE เป็น proportional กับ element ใน stabilizer

    E=±Q  for some  QP1,,PrE = \pm Q \; \text{for some}\; Q \in \langle P_1,\ldots,P_r\rangle

    ในกรณีนี้ EE ต้องสับเปลี่ยนได้กับ stabilizer generator ทุกตัว ดังนั้นเราได้ syndrome (+1,,+1)(+1,\ldots,+1) หมายความว่า EE ไม่ถูกตรวจพบว่าเป็นข้อผิดพลาด

  2. การดำเนินการ EE ไม่ได้ proportional กับ element ใน stabilizer แต่กลับสับเปลี่ยนได้กับ stabilizer generator ทุกตัว

    E±Q  for  QP1,,Pr,  but  EPk=PkE  for every  k{1,,r}E\neq \pm Q\; \text{for} \; Q \in \langle P_1,\ldots,P_r\rangle, \;\text{but}\; E P_k = P_k E \;\text{for every}\; k\in\{1,\ldots,r\}

    นี่คือข้อผิดพลาดที่เปลี่ยนเวกเตอร์ใน code space ในแบบที่ไม่ใช่ trivial อย่างไรก็ตาม เนื่องจาก EE สับเปลี่ยนได้กับ stabilizer generator ทุกตัว syndrome จึงเป็น (+1,,+1)(+1,\ldots,+1) ดังนั้น EE จึงไม่ถูก code ตรวจพบ

  3. การดำเนินการ EE anti-commutes กับ stabilizer generator อย่างน้อยหนึ่งตัว

    PkE=EPk  for at least one  k{1,,r}P_k E = -E P_k \; \text{for at least one} \; k\in\{1,\ldots,r\}

    Syndrome ต่างจาก (+1,,+1)(+1,\ldots,+1) ดังนั้นข้อผิดพลาด EE จึงถูก code ตรวจพบ

ในกรณีแรก ข้อผิดพลาด EE ไม่น่าเป็นห่วง เพราะการดำเนินการนี้ไม่ทำอะไรกับเวกเตอร์ใน code space นอกจากอาจใส่ global phase ที่ไม่เกี่ยวข้อง: Eψ=±ψE \ket{\psi} = \pm\ket{\psi} สำหรับทุก encoded state ψ\ket{\psi} โดยแก่นแท้แล้ว นี่ไม่ใช่ข้อผิดพลาดจริงๆ — การกระทำที่ไม่ trivial ใดๆ ของ EE เกิดขึ้นนอก code space — จึงเป็นเรื่องดีที่ EE ไม่ถูกตรวจพบว่าเป็นข้อผิดพลาด เพราะไม่ต้องทำอะไร

กรณีที่สอง พูดในแง่ intuitive คือกรณีที่ไม่ดี มันคือ anti-commutation ของข้อผิดพลาดกับ stabilizer generator ที่ทำให้เกิด 1-1 ใน syndrome บ่งสัญญาณข้อผิดพลาด แต่สิ่งนั้นไม่เกิดขึ้นในกรณีนี้ ดังนั้น เรามีข้อผิดพลาด EE ที่เปลี่ยนเวกเตอร์ใน code space ในแบบที่ไม่ใช่ trivial แต่ code ไม่ตรวจพบ ตัวอย่างเช่น สำหรับ 3-bit repetition code การดำเนินการ E=XXXE = X\otimes X\otimes X อยู่ในหมวดหมู่นี้

ข้อเท็จจริงที่ว่าข้อผิดพลาด EE ดังกล่าวต้องเปลี่ยนเวกเตอร์บางส่วนใน code space ในแบบที่ไม่ trivial สามารถโต้แย้งได้ดังต่อไปนี้ จากสมมติฐานที่ว่า EE สับเปลี่ยนได้กับ P1,,PrP_1,\ldots,P_r แต่ไม่ proportional กับ stabilizer element เราสรุปได้ว่าเราจะได้ stabilizer code ใหม่ที่ถูกต้องโดยรวม EE เป็น stabilizer generator ร่วมกับ P1,,PrP_1,\ldots,P_r อย่างไรก็ตาม code space สำหรับ code ใหม่นี้มีมิติเพียงครึ่งหนึ่งของ code space เดิม ซึ่งทำให้เราสรุปได้ว่า action ของ EE บน code space เดิมไม่สามารถ proportional กับ identity operation ได้

สำหรับกรณีที่สามในสามกรณี ซึ่งคือข้อผิดพลาด EE anti-commutes กับ stabilizer generator อย่างน้อยหนึ่งตัว syndrome มี 1-1 อย่างน้อยหนึ่งตัว ซึ่งบ่งชี้ว่ามีบางอย่างผิดปกติ อย่างที่เราได้พูดถึงแล้ว syndrome จะไม่ระบุ EE อย่างเจาะจงโดยทั่วไป ดังนั้นจึงยังจำเป็นต้องเลือก correction operation สำหรับแต่ละ syndrome ซึ่งอาจหรืออาจไม่แก้ไขข้อผิดพลาด EE เราจะพูดถึงขั้นตอนนี้ในไม่ช้า ในส่วนสุดท้ายของบทเรียน

ระยะของ stabilizer code

ในฐานะคำศัพท์ เมื่อเราอ้างถึง ระยะ (distance) ของ stabilizer code เราหมายถึง น้ำหนักต่ำสุด (minimum weight) ของ Pauli operation EE ที่อยู่ในหมวดหมู่ที่สองข้างต้น — หมายความว่ามันเปลี่ยน code space ในแบบที่ไม่ใช่ trivial แต่ code ไม่ตรวจพบ เมื่อกล่าวว่า stabilizer code เป็น [[n,m,d]][[n,m,d]] stabilizer code โดยใช้วงเล็บเหลี่ยมคู่ หมายความดังต่อไปนี้:

  1. การเข้ารหัสมีความยาว nn qubits
  2. code อนุญาตให้เข้ารหัส mm qubits และ
  3. ระยะของ code คือ dd

ตัวอย่างเช่น พิจารณา 7-qubit Steane code นี่คือ stabilizer generators สำหรับ code นี้:

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}

code นี้มีระยะ 3 และเราสามารถโต้แย้งได้ดังต่อไปนี้

ก่อนอื่น พิจารณา Pauli operation EE ใดๆ ที่มีน้ำหนักไม่เกิน 2 และสมมติว่า operation นี้สับเปลี่ยนได้กับ stabilizer generators ทั้งหกตัว เราจะสรุปว่า EE ต้องเป็น identity operation ซึ่ง (อย่างเสมอ) เป็น element ของ stabilizer สิ่งนี้จะแสดงว่าระยะของ code มากกว่า 2 อย่างเคร่งครัด สมมติโดยเฉพาะว่า EE มีรูปแบบ

E=PQIIIIIE = P \otimes Q \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I} \otimes \mathbb{I}

โดยที่ PP และ QQ เป็น Pauli matrices ที่อาจไม่ใช่ identity นี่เป็นเพียงหนึ่งกรณี และจำเป็นต้องทำซ้ำการโต้แย้งที่ตามมาสำหรับตำแหน่งที่เป็นไปได้ทั้งหมดอื่นๆ สำหรับ Pauli matrices ที่ไม่ใช่ identity ใน tensor factors ของ EE แต่การโต้แย้งนั้นเหมือนกันโดยพื้นฐานสำหรับตำแหน่งที่เป็นไปได้ทั้งหมด

การดำเนินการ EE สับเปลี่ยนได้กับ stabilizer generators ทั้งหกตัว ดังนั้นมันสับเปลี่ยนได้กับสองตัวนี้โดยเฉพาะ:

ZIZIZIZXIXIXIX\begin{gathered} Z \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes Z \otimes \mathbb{I} \otimes Z\\[1mm] X \otimes \mathbb{I} \otimes X \otimes \mathbb{I} \otimes X \otimes \mathbb{I} \otimes X \end{gathered}

Tensor factor QQ ใน error EE ของเราตรงกับ identity matrix ในทั้งสอง stabilizer generators นี้ (นั่นเป็นเหตุผลที่เลือกมัน) เนื่องจากเรามี identity matrices ใน 5 ตำแหน่งขวาสุดของ EE เราสรุปได้ว่า PP ต้องสับเปลี่ยนได้กับ XX และ ZZ มิฉะนั้น EE จะ anti-commute กับ generator ตัวใดตัวหนึ่งในสอง อย่างไรก็ตาม Pauli matrix เดียวที่สับเปลี่ยนได้กับทั้ง XX และ ZZ คือ identity matrix ดังนั้น P=IP = \mathbb{I}

ตอนนี้ที่เรารู้สิ่งนี้แล้ว เราสามารถเลือก stabilizer generators สองตัวเพิ่มเติมที่มี XX และ ZZ ในตำแหน่งที่สองจากซ้าย และเราสรุปได้ในลักษณะเดียวกัน: Q=IQ = \mathbb{I} ดังนั้น EE จึงเป็น identity operation

ดังนั้น ไม่มีทางที่ข้อผิดพลาดที่มีน้ำหนักไม่เกิน 2 จะไม่ถูก code ตรวจพบ ยกเว้น identity operation (ซึ่งอยู่ใน stabilizer จึงไม่ใช่ข้อผิดพลาดจริงๆ) ในทางกลับกัน มี weight 3 Pauli operations ที่สับเปลี่ยนได้กับ stabilizer generators ทั้งหกตัว แต่ไม่ proportional กับ stabilizer elements เช่น IIIIXXX\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes X\otimes X\otimes X และ IIIIZZZ\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}\otimes Z\otimes Z\otimes Z สิ่งนี้แสดงว่า code นี้มีระยะ 3 ตามที่อ้างไว้

การแก้ไขข้อผิดพลาด

หัวข้อสุดท้ายของบทเรียนนี้คือการ แก้ไข ข้อผิดพลาดสำหรับ stabilizer codes อย่างเคยสมมติว่าเรามี stabilizer code ที่กำหนดด้วย stabilizer generators P1,,PrP_1, \ldots, P_r บน n qubits

nn-qubit Pauli operations ในฐานะข้อผิดพลาดที่อาจส่งผลต่อ states ที่เข้ารหัสโดยใช้ code นี้ ถูกแบ่งเป็น collections ขนาดเท่ากันตาม syndrome ที่มันทำให้เกิดขึ้น มี 2r2^r syndromes ที่แตกต่างกันและ 4n4^n Pauli operations หมายความว่ามี 4n/2r4^n/2^r Pauli operations ที่ทำให้เกิดแต่ละ syndrome ข้อผิดพลาดใดๆ ตัวหนึ่งเหล่านี้อาจรับผิดชอบต่อ syndrome ที่สอดคล้องกัน

อย่างไรก็ตาม ในบรรดา 4n/2r4^n/2^r Pauli operations ที่ทำให้เกิดแต่ละ syndrome มีบางตัวที่ควรพิจารณาว่าเทียบเท่ากัน โดยเฉพาะอย่างยิ่ง ถ้า product ของ Pauli operations สองตัว proportional กับ stabilizer element แล้วทั้งสองตัวนั้นเทียบเท่ากันโดยพื้นฐานในฐานะข้อผิดพลาด

อีกวิธีในการพูดสิ่งนี้คือถ้าเราใช้ correction operation CC เพื่อพยายามแก้ไขข้อผิดพลาด EE แล้วการแก้ไขนี้สำเร็จตราบใดที่ composition CECE proportional กับ stabilizer element เนื่องจากมี 2r2^r elements ใน stabilizer จึงตามมาว่า correction operation CC แต่ละตัวแก้ไข Pauli errors จำนวน 2r2^r ตัวที่แตกต่างกัน ซึ่งเหลือ 4nr4^{n-r} classes ที่ไม่เทียบเท่ากันของ Pauli operations ที่พิจารณาเป็นข้อผิดพลาด ซึ่งสอดคล้องกับแต่ละ syndrome ที่เป็นไปได้

หมายความว่า ยกเว้นกรณีที่ n=rn=r (ซึ่งในกรณีนั้นเรามี code space หนึ่งมิติ trivial) เราไม่สามารถแก้ไขทุกข้อผิดพลาดที่ตรวจพบโดย stabilizer code ได้ สิ่งที่เราต้องทำแทนคือเลือก correction operation เพียง หนึ่ง ตัวสำหรับแต่ละ syndrome โดยหวังว่าจะแก้ไขเพียง class เดียวของข้อผิดพลาดที่เทียบเท่ากันซึ่งทำให้เกิด syndrome นั้น

กลยุทธ์หนึ่งที่เป็นธรรมชาติในการเลือก correction operation สำหรับแต่ละ syndrome คือการเลือก Pauli operation ที่มี น้ำหนักต่ำสุด ที่ในฐานะข้อผิดพลาดทำให้เกิด syndrome นั้น อาจมีหลาย operations ที่มีน้ำหนักต่ำสุดเท่ากันสำหรับ syndrome ที่กำหนด ในกรณีนั้นสามารถเลือกตัวใดตัวหนึ่งได้ แนวคิดคือ Pauli operations ที่มีน้ำหนักต่ำกว่าแทนคำอธิบายที่เป็นไปได้มากกว่าสำหรับ syndrome ที่วัดได้ สิ่งนี้อาจไม่เป็นจริงสำหรับ noise models บางอย่าง และกลยุทธ์ทางเลือกหนึ่งคือการคำนวณข้อผิดพลาดที่ น่าจะเป็น มากที่สุดที่ทำให้เกิด syndrome ที่กำหนด ตาม noise model ที่เลือก อย่างไรก็ตาม สำหรับบทเรียนนี้ เราจะทำให้เรียบง่ายและพิจารณาเฉพาะการแก้ไขน้ำหนักต่ำสุดเท่านั้น

สำหรับ stabilizer code ที่มีระยะ dd กลยุทธ์การเลือก correction operation ให้เป็น Pauli operation น้ำหนักต่ำสุดที่สอดคล้องกับ syndrome ที่วัดได้นี้ รับประกันเสมอว่าสามารถแก้ไขข้อผิดพลาดที่มีน้ำหนักน้อยกว่าครึ่งหนึ่งของ dd อย่างเคร่งครัด หรือพูดอีกอย่างคือน้ำหนักไม่เกิน (d1)/2(d-1)/2 สิ่งนี้แสดงให้เห็น เช่น ว่า 7-qubit Steane code สามารถแก้ไข Pauli error ที่มีน้ำหนักหนึ่งได้ และจากการแยกส่วนของข้อผิดพลาด หมายความว่า Steane code สามารถแก้ไขข้อผิดพลาดโดยพลการบน qubit หนึ่งตัวได้

เพื่อดูว่าสิ่งนี้ทำงานอย่างไร พิจารณา diagram ด้านล่าง วงกลมทางซ้ายแทน Pauli operations ทั้งหมดที่ทำให้เกิด syndrome (+1,,+1)(+1,\ldots,+1) ซึ่งเป็น syndrome ที่บ่งชี้ว่าไม่มีข้อผิดพลาดและทุกอย่างปกติ ในบรรดา operations เหล่านี้ เรามี elements ของ stabilizer (หรือ operations ที่ proportional กับ elements ของ stabilizer ให้แม่นยำยิ่งขึ้น) และยังมีข้อผิดพลาดที่ไม่ trivial ที่เปลี่ยน code space ในบางแง่แต่ code ไม่ตรวจพบ ตามนิยามของระยะ Pauli operation ทุกตัวในหมวดหมู่นี้ต้องมีน้ำหนักอย่างน้อย dd เพราะ dd ถูกนิยามเป็นน้ำหนักต่ำสุดของ operations เหล่านี้

วงกลมทางขวาแทน Pauli operations ที่ทำให้เกิด syndrome ต่าง s(+1,,+1)s\neq(+1,\ldots,+1) รวมถึงข้อผิดพลาด EE ที่มีน้ำหนักน้อยกว่า d/2d/2 อย่างเคร่งครัดที่เราจะพิจารณา

Lowest-weight error correction diagram

Correction operation CC ที่เลือกสำหรับ syndrome ss คือ Pauli operation น้ำหนักต่ำสุดใน collection ที่แทนด้วยวงกลมทางขวาใน diagram (หรือตัวใดตัวหนึ่งในกรณีที่เสมอกัน) ดังนั้น อาจเป็นไปได้ว่า C=EC = E แต่ไม่จำเป็นเสมอไป อย่างไรก็ตาม สิ่งที่เราพูดได้อย่างแน่นอนคือ CC ไม่สามารถมีน้ำหนักมากกว่าน้ำหนักของ EE เพราะ CC มีน้ำหนักต่ำสุดใน operations ใน collection นี้ — ดังนั้น CC จึงมีน้ำหนักน้อยกว่า d/2d/2 อย่างเคร่งครัด

ตอนนี้พิจารณาสิ่งที่เกิดขึ้นเมื่อ correction operation CC ถูกนำไปใช้กับ state ที่เราได้รับหลังจากที่ข้อผิดพลาด EE เกิดขึ้น สมมติว่า encoding เดิมเป็น ψ\vert\psi\rangle เราเหลือ CEψCE\vert\psi\rangle เป้าหมายของเราคือแสดงว่า CECE proportional กับ element ใน stabilizer หมายความว่าการแก้ไขสำเร็จและ (นอกเหนือจาก global phase) เราเหลือ encoded state เดิม ψ\vert\psi\rangle

ประการแรก เนื่องจาก EE และ CC ทำให้เกิด syndrome เดียวกัน composition CECE ต้องสับเปลี่ยนได้กับ stabilizer generator ทุกตัว โดยเฉพาะอย่างยิ่ง ถ้า PkP_k เป็น stabilizer generator ตัวใดตัวหนึ่ง เราต้องมี

PkE=αEPkandPkC=αCPkP_k E = \alpha E P_k \quad\text{and}\quad P_k C = \alpha C P_k

สำหรับค่า α{+1,1}\alpha\in\{+1,-1\} เดียวกัน เพราะนี่คือรายการที่ kk ใน syndrome ss ที่ทั้ง CC และ EE สร้างขึ้น ดังนั้น เรามี

Pk(CE)=αCPkE=α2(CE)Pk=(CE)Pk,P_k (CE) = \alpha C P_k E = \alpha^2 (CE) P_k = (CE) P_k,

ดังนั้น PkP_k สับเปลี่ยนได้กับ CECE เราจึงแสดงให้เห็นว่า CECE อยู่ในวงกลมทางซ้ายใน diagram เพราะมันสร้าง syndrome (+1,,+1)(+1,\ldots,+1)

ประการที่สอง composition CECE ต้องมีน้ำหนักไม่เกินผลรวมของน้ำหนักของ CC และ EE — ซึ่งตามมาจากการคิดสักครู่เกี่ยวกับ products ของ Pauli operations — ดังนั้นน้ำหนักของ CECE น้อยกว่า dd อย่างเคร่งครัด สิ่งนี้หมายความว่า CECE proportional กับ element ใน stabilizer ของ code เรา ซึ่งเป็นสิ่งที่เราต้องการแสดง ด้วยการเลือก correction operations ให้เป็นตัวแทนน้ำหนักต่ำสุดของเซต errors ที่สร้าง syndrome แต่ละตัว เราจึงรับประกันได้ว่าจะแก้ไข Pauli errors ที่มีน้ำหนักน้อยกว่าครึ่งหนึ่งของระยะ code

อย่างไรก็ตาม มีปัญหาหนึ่ง สำหรับ stabilizer codes โดยทั่วไป การคำนวณ Pauli operation น้ำหนักต่ำสุดที่ทำให้เกิด syndrome ที่กำหนดเป็นปัญหาที่ยากในเชิงคำนวณ (จริงๆ แล้ว สิ่งนี้เป็นจริงแม้แต่สำหรับ classical codes ซึ่งในบริบทนี้เราสามารถคิดว่าเป็น stabilizer codes ที่มีเฉพาะ I\mathbb{I} และ ZZ matrices ปรากฏเป็น tensor factors ใน stabilizer generators) ดังนั้น ต่างจากขั้นตอนการเข้ารหัส Clifford operations จะไม่มาช่วยคราวนี้

ทางออกคือการเลือก specific codes ที่สามารถคำนวณการแก้ไขที่ดีได้อย่างมีประสิทธิภาพ ซึ่งไม่มีสูตรง่ายๆ พูดง่ายๆ คือการออกแบบ stabilizer codes ที่สามารถคำนวณ correction operations ที่ดีได้อย่างมีประสิทธิภาพเป็นส่วนหนึ่งของศิลปะในการออกแบบ quantum 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