Stabilizer codes (รหัส Stabilizer)
ตอนนี้เราจะนิยาม stabilizer codes แบบทั่วไปกัน นอกจากนี้ยังจะพูดถึงคุณสมบัติพื้นฐานและการทำงานของมัน รวมถึงวิธีเข้ารหัส state และวิธีตรวจจับ/แก้ไขข้อผิดพลาดโดยใช้ codes เหล่านี้
นิยามของ stabilizer codes
-qubit stabilizer code กำหนดโดยรายการการดำเนินการ Pauli บน qubit ได้แก่ การดำเนินการเหล่านี้เรียกว่า stabilizer generators ในบริบทนี้ และต้องตอบสนองเงื่อนไขสามข้อต่อไปนี้
-
Stabilizer generators ทั้งหมด สับเปลี่ยนกันได้ (commute)
-
Stabilizer generators ก่อตัวเป็น minimal generating set
-
มีเวกเตอร์ quantum state อย่างน้อยหนึ่งตัวที่ถูกตรึงโดย stabilizer generators ทั้งหมด
(ไม่ใช่เรื่องชัดเจนทันทีว่าการมีอยู่ของ quantum state vector ที่ถูกตรึงโดย stabilizer generators ทั้งหมด หมายความว่า นั้นเทียบเท่ากับ แต่เป็นเช่นนั้นจริง และเราจะเห็นว่าทำไมในภายหลังในบทเรียน)
สมมติว่าเรามีรายการ ดังกล่าว code space ที่กำหนดโดย stabilizer generators เหล่านี้คือ subspace ที่ประกอบด้วย quantum state vectors บน qubit ทุกตัวที่ถูกตรึงโดย stabilizer generators ทั้ง ตัว
Quantum state vectors ใน subspace นี้คือสิ่งที่มองได้ว่าเป็น การเข้ารหัสที่ถูกต้อง ของ quantum states เราจะพูดถึงกระบวนการเข้ารหัสจริงในภายหลัง
สุดท้าย stabilizer ของ code ที่กำหนดโดย stabilizer generators คือเซตที่สร้างจากการดำเนินการเหล่านี้:
วิธีคิดเกี่ยวกับ stabilizer code อย่างเป็นธรรมชาติคือการมอง stabilizer generators เป็น observables และตีความผลลัพธ์การวัดที่เกี่ยวข้องกับ observables เหล่านี้รวมกันเป็น error syndrome การเข้ารหัสที่ถูกต้องคือ quantum state vectors บน qubit ที่ผลลัพธ์การวัดในรูป eigenvalues ทั้งหมดรับประกันว่าเป็น syndrome อื่นใดที่มี อย่างน้อยหนึ่งตัว บ่งชี้ว่าตรวจพบข้อผิดพลาด
เราจะดูตัวอย่างหลายตัวในไม่ช้า แต่ก่อนอื่นขอกล่าวสั้นๆ เกี่ยวกับเงื่อนไขสามข้อของ 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 ทั้งหมด ซึ่งเทียบเท่ากับ ไม่อยู่ใน stabilizer ความจำเป็นของเงื่อนไขนี้มาจากข้อเท็จจริงที่ว่าเป็นไปได้จริงที่จะเลือก minimal generating set ของ Pauli operations บน qubit ที่สับเปลี่ยนกันได้ทั้งหมด แต่ไม่มีเวกเตอร์ที่ไม่ใช่ศูนย์ใดที่ถูกตรึงโดยการดำเนินการทุกตัว เราไม่สนใจ "codes" ที่ไม่มีการเข้ารหัสที่ถูกต้อง จึงตัดความเป็นไปได้นี้ออกด้วยการกำหนดเงื่อนไขนี้เป็นส่วนหนึ่งของนิยาม
ตัวอย่าง
นี่คือตัวอย่าง stabilizer codes สำหรับค่า ขนาดเล็ก เราจะเห็นตัวอย่างเพิ่มเติม รวมถึงตัวที่ อาจใหญ่กว่านี้มาก ในบทเรียนถัดไป
3-bit repetition code
3-bit repetition code เป็นตัวอย่างของ stabilizer code ที่มี stabilizer generators คือ และ
เราสามารถตรวจสอบได้ง่ายๆ ว่า stabilizer generators ทั้งสองตัวนี้ตอบสนองเงื่อนไขที่กำหนด ประการแรก และ สับเปลี่ยนกันได้
ประการที่สอง เรามี minimal generating set (ซึ่งชัดเจนในกรณีนี้)
และประการที่สาม เรารู้อยู่แล้วว่า และ รวมถึง linear combination ใดๆ ของเวกเตอร์เหล่านี้ ถูกตรึงโดยทั้ง และ หรืออีกทางหนึ่ง เราสรุปได้จากเงื่อนไขที่เทียบเท่าในนิยาม
เงื่อนไขเหล่านี้อาจตรวจสอบยากกว่ามากสำหรับ stabilizer codes ที่ซับซ้อนกว่านี้
Modified 3-bit repetition code
ในบทเรียนที่แล้ว เราเห็นว่าเป็นไปได้ที่จะดัดแปลง 3-bit repetition code ให้ป้องกันข้อผิดพลาด phase-flip แทน bit-flip ในฐานะ stabilizer code ตัวใหม่นี้อธิบายได้ง่าย: stabilizer generators ของมันคือ และ
ครั้งนี้ stabilizer generators แทน observables แทนที่จะเป็น observables จึงเป็น parity checks ในฐาน plus/minus แทนที่จะเป็นฐานมาตรฐาน เงื่อนไขสามข้อที่กำหนดสำหรับ stabilizer generators สามารถตรวจสอบได้ง่าย ตามแนวทางเดียวกับ 3-bit repetition code ทั่วไป
9-qubit Shor code
นี่คือ 9-qubit Shor code ซึ่งเป็น stabilizer code ด้วย แสดงด้วย stabilizer generators
ในกรณีนี้ โดยพื้นฐานแล้วเรามี 3-bit repetition code สามชุด หนึ่งชุดสำหรับแต่ละบล็อกของ qubit สามตัว รวมถึง stabilizer generators สองตัวสุดท้ายที่มีรูปแบบชวนให้นึกถึง Circuit สำหรับตรวจจับ phase flips ของ code นี้
อีกวิธีในการคิดเกี่ยวกับ stabilizer generators สองตัวสุดท้ายคือมันมีรูปแบบเดียวกับ 3-bit repetition code สำหรับ phase flips ยกเว้นว่า ถูกแทนด้วย ซึ่งสอดคล้องกับข้อเท็จจริงที่ว่า สอดคล้องกับการดำเนินการ บน logical qubits ที่เข้ารหัสโดยใช้ 3-bit repetition code
ก่อนที่จะไปต่อ ควรสังเกตว่าสัญลักษณ์ tensor product มักถูกละไว้เมื่ออธิบาย stabilizer codes ด้วยรายการ stabilizer generators เพราะทำให้อ่านและเห็นรูปแบบได้ง่ายกว่า ตัวอย่างเช่น stabilizer generators เดียวกันกับ 9-qubit Shor code ข้างต้นมีลักษณะดังนี้เมื่อไม่เขียนสัญลักษณ์ tensor product อย่างชัดเจน
7-qubit Steane code
นี่คือตัวอย่างอื่นของ stabilizer code ที่รู้จักกันในชื่อ 7-qubit Steane code มันมีคุณสมบัติที่น่าทึ่ง และเราจะกลับมาที่ code นี้เป็นระยะๆ ตลอดบทเรียนที่เหลือของคอร์ส
ตอนนี้ขอสังเกตเพียงว่านี่เป็น stabilizer code ที่ถูกต้อง Stabilizer generators สามตัวแรกสับเปลี่ยนกันได้อย่างชัดเจน เพราะ สับเปลี่ยนกับตัวมันเองและ identity สับเปลี่ยนกับทุกสิ่ง และสถานการณ์ก็คล้ายกันสำหรับ stabilizer generators สามตัวหลัง สิ่งที่เหลือคือการตรวจสอบว่าถ้าเราเลือก -stabilizer generator หนึ่งตัว (นั่นคือหนึ่งในสามตัวแรก) และ -stabilizer generator หนึ่งตัว (นั่นคือหนึ่งในสามตัวหลัง) แล้วทั้งสองตัว generators นี้สับเปลี่ยนกันได้ และสามารถตรวจสอบได้จาก 9 คู่ที่เป็นไปได้ ในทุกกรณี และ Pauli matrices ตรงกันในตำแหน่งเดียวกันจำนวนคู่เสมอ ดังนั้น generators ทั้งสองจึงสับเปลี่ยนกันได้ เหมือนกับที่ และ สับเปลี่ยนกันได้ นี่ยังเป็น 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
code นี้มักเรียกว่า the 5-qubit code นี่คือจำนวน qubit น้อยที่สุดใน quantum error correcting code ที่สามารถแก้ไขข้อผิดพลาดบน qubit เดียวโดยพลการได้
One-dimensional stabilizer codes
นี่คือตัวอย่างอื่นของ stabilizer code แม้ว่าจริงๆ แล้วมันไม่ได้เข้ารหัส qubit ใดเลย: code space เป็นหนึ่งมิติ อย่างไรก็ตาม มันยังคงเป็น stabilizer code ที่ถูกต้องตามนิยาม
โดยเฉพาะ code space คือ one-dimensional space ที่ span โดย e-bit
นี่คือตัวอย่างที่เกี่ยวข้องของ stabilizer code ที่มี code space เป็น one-dimensional space ที่ span โดย GHZ state
มิติของ code space
สมมติว่าเรามี stabilizer code ที่อธิบายด้วย stabilizer generators บน qubits คำถามแรกที่น่าจะนึกถึงเกี่ยวกับ code นี้คือ "มันเข้ารหัส qubit กี่ตัว?"
คำถามนี้มีคำตอบง่ายๆ สมมติว่า stabilizer generators บน qubits ตอบสนองเงื่อนไขสามข้อของนิยาม (กล่าวคือ stabilizer generators ทั้งหมดสับเปลี่ยนกันได้ นี่เป็น minimal generating set และ code space ไม่ว่างเปล่า) ดังนั้น code space ของ stabilizer code นี้ต้องมีมิติ จึงสามารถเข้ารหัส qubits โดยใช้ code นี้ได้
ในแง่ intuitive เรามี qubits สำหรับการเข้ารหัส และ stabilizer generator แต่ละตัว "นำ qubit ออกไป" หนึ่งตัวในแง่ของจำนวน qubit ที่เราสามารถเข้ารหัสได้ สังเกตว่านี่ไม่เกี่ยวกับว่าจะตรวจจับหรือแก้ไข ข้อผิดพลาด ชนิดใดหรือจำนวนเท่าใด แต่เป็นเพียงข้อความเกี่ยวกับมิติของ code space
ตัวอย่างเช่น สำหรับทั้ง 3-bit repetition code และเวอร์ชันที่ดัดแปลงสำหรับ phase-flip errors เรามี qubits และ stabilizer generators ดังนั้น codes เหล่านี้สามารถเข้ารหัส 1 qubit ได้แต่ละตัว อีกตัวอย่างหนึ่ง พิจารณา 5-qubit code: เรามี 5 qubits และ 4 stabilizer generators ดังนั้น code space มีมิติ 2 หมายความว่า qubit หนึ่งตัวสามารถเข้ารหัสโดยใช้ code นี้ได้ ตัวอย่างสุดท้าย code ที่มี stabilizer generators คือ และ มี code space หนึ่งมิติ ที่ span โดย state ซึ่งสอดคล้องกับการมี qubits และ stabilizer generators
ตอนนี้มาดูว่าข้อเท็จจริงนี้พิสูจน์ได้อย่างไร ขั้นตอนแรกคือสังเกตว่า เนื่องจาก stabilizer generators สับเปลี่ยนกันได้ และเนื่องจาก Pauli operation ทุกตัวเป็น inverse ของตัวเอง องค์ประกอบทุกตัวใน stabilizer สามารถแสดงเป็น product ได้
โดยที่ พูดอีกแบบคือ องค์ประกอบแต่ละตัวของ stabilizer ได้จากการคูณ subset ของ stabilizer generators บางส่วนเข้าด้วยกัน จริงๆ แล้ว stabilizer element ทุกตัวสามารถแสดงในแบบนี้ อย่างเดียว เนื่องจากเงื่อนไขว่า เป็น minimal generating set
ต่อมา กำหนดให้ เป็น projection ลง subspace ของ eigenvectors ที่มี eigenvalue ของ สำหรับแต่ละ Projections เหล่านี้ได้จากการเฉลี่ย Pauli operations ที่สอดคล้องกับ identity operation ดังต่อไปนี้
Code space คือ subspace ของเวกเตอร์ทั้งหมดที่ถูกตรึงโดย stabilizer generators ทั้ง ตัว หรือเทียบเท่ากันคือ projections ทั้ง ตัว
เนื่องจาก stabilizer generators ทั้งหมดสับเปลี่ยนกันได้ projections ก็ต้องสับเปลี่ยนกันได้ด้วย ซึ่งทำให้เราใช้ข้อเท็จจริงจาก linear algebra ได้ว่า product ของ projections เหล่านี้คือ projection ลง intersection ของ subspaces ที่สอดคล้องกับ projections แต่ละตัว กล่าวคือ product คือ projection ลง code space
เราสามารถขยาย product โดยใช้สูตรของ projections เหล่านี้เพื่อได้นิพจน์ต่อไปนี้
กล่าวเป็นคำพูดคือ projection ลง code space ของ stabilizer code เท่ากับ (ในฐานะ matrix) ค่า เฉลี่ย ของ elements ทั้งหมดใน stabilizer ของ code นั้น
สุดท้าย เราสามารถคำนวณมิติของ code space โดยใช้ข้อเท็จจริงที่ว่ามิติของ subspace ใดๆ เท่ากับ trace ของ projection ลง subspace นั้น ดังนั้น มิติของ code space ได้จากสูตรต่อไปนี้
เราสามารถประเมินนิพจน์นี้โดยใช้ข้อเท็จจริงพื้นฐานสองข้อ
-
เรามี ดังนั้น
-
สำหรับ product ต้องเป็น คูณกับ Pauli operation — แต่เราไม่สามารถได้ เพราะจะขัดแย้งกับ minimality ของเซต และเราไม่สามารถได้ เพราะเงื่อนไขที่สามของ stabilizer generators ห้ามไว้ ดังนั้น เนื่องจาก trace ของ Pauli operation ที่ไม่ใช่ identity ทุกตัวเป็นศูนย์ เราจึงได้
ดังนั้น มิติของ code space จึงเป็น ตามที่อ้างไว้:
เป็นหมายเหตุเพิ่มเติม ตอนนี้เราเห็นแล้วว่าสมมติฐานที่ว่า ไม่อยู่ใน stabilizer นั้นหมายความว่า code space ต้องมี quantum state vector อย่างน้อยหนึ่งตัว เนื่องจากอย่างที่เราพิสูจน์แล้ว สมมติฐานนี้หมายความว่า code space มีมิติ ซึ่งเป็นศูนย์ไม่ได้ การอนุมานในทิศทางตรงข้ามนั้น trivial: ถ้า อยู่ใน 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
- gates
- CNOT gates
สังเกตว่า gates ไม่รวมอยู่ด้วย รวมถึง Toffoli gates และ Fredkin gates ไม่เพียงแต่ gates เหล่านั้นจะไม่อยู่ในรายการ แต่จริงๆ แล้วมันเป็นไปไม่ได้ที่จะ implement gates เหล่านั้นโดยใช้ gates ที่ระบุไว้ที่นี่ มันไม่ใช่ Clifford operations ในทางกลับกัน Pauli operations เป็น Clifford operations เพราะสามารถ implement ได้ด้วยลำดับของ Hadamard และ gates
นั่นเป็นวิธีง่ายๆ ในการนิยาม Clifford operations แต่ไม่ได้อธิบายว่าทำไมถึงนิยามแบบนี้หรืออะไรที่พิเศษเกี่ยวกับการรวบรวม gates ชุดนี้โดยเฉพาะ เหตุผล ที่แท้จริง ที่ Clifford operations ถูกนิยามแบบนี้คือ นอกเหนือจาก global phase factors แล้ว Clifford operations คือ unitary operations ที่แปลง Pauli operations เป็น Pauli operations เสมอโดย conjugation พูดให้ชัดเจนขึ้น -qubit unitary operation เทียบเท่ากับ Clifford operation นอกเหนือจาก phase factor ก็ต่อเมื่อ สำหรับ ทุก -qubit Pauli operation เรามี
สำหรับ -qubit Pauli operation บางตัว
(สังเกตว่าเป็นไปไม่ได้ที่จะมี สำหรับ เมื่อ เป็น unitary และ และ เป็น Pauli operations สิ่งนี้ตามมาจากข้อเท็จจริงที่ว่า matrix ทางด้านซ้ายของสมการนั้นเป็นทั้ง unitary และ Hermitian และ กับ เป็นตัวเลือกเดียวสำหรับ ที่ทำให้ด้านขวาเป็น unitary และ Hermitian ได้ด้วย)
การตรวจสอบคุณสมบัติ conjugation ที่กล่าวมานั้นตรงไปตรงมาเมื่อ เป็น Hadamard, หรือ CNOT gate โดยเฉพาะอย่างยิ่ง สำหรับ Hadamard gates ทำได้ง่าย
และ gates,
สำหรับ CNOT gates มี 15 non-identity Pauli operations บน two qubits ที่ต้องตรวจสอบ แน่นอนว่าสามารถตรวจสอบทีละตัว — แต่ความสัมพันธ์ระหว่าง CNOT gates กับ และ gates ที่ระบุไว้ (ในรูป circuit) ในบทเรียนที่แล้ว พร้อมกับกฎการคูณของ Pauli matrices เสนอทางลัดไปสู่ข้อสรุปเดียวกัน
เมื่อเรารู้ว่าคุณสมบัติ conjugation นี้เป็นจริงสำหรับ Hadamard, และ CNOT gates เราสรุปได้ทันทีว่ามันเป็นจริงสำหรับ circuits ที่ประกอบด้วย gates เหล่านี้ — นั่นก็คือ Clifford operations ทั้งหมด
การพิสูจน์ว่าความสัมพันธ์ทำงานในทิศทางตรงข้ามนั้นยากกว่า ซึ่งก็คือถ้า unitary operation ที่กำหนดตอบสนองคุณสมบัติ conjugation สำหรับ Pauli operations แล้วต้องสามารถ implement มันได้ (นอกเหนือจาก global phase) โดยใช้เพียง Hadamard, และ CNOT gates สิ่งนี้จะไม่อธิบายในบทเรียนนี้ แต่เป็นความจริง
Clifford operations ไม่ใช่ universal สำหรับ quantum computation; ต่างจาก universal sets ของ quantum gates การประมาณ unitary operations โดยพลการในระดับความแม่นยำที่ต้องการด้วย Clifford operations นั้นเป็นไปไม่ได้ จริงๆ แล้ว สำหรับค่า ที่กำหนด มี -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 ใดๆ ที่อนุญาตให้เข้ารหัส qubits ลงใน qubits มี -qubit Clifford operation ที่สำหรับ -qubit quantum state vector ใดๆ เรามีว่า
คือ quantum state vector ใน code space ของ code เราที่เราอาจตีความเป็นการเข้ารหัสของ
สิ่งนี้ดีเพราะ Clifford operations ค่อนข้างเรียบง่าย เมื่อเทียบกับ unitary operations โดยพลการ และมีวิธีการ optimize การ implement โดยใช้เทคนิคที่คล้ายกับที่พบในการพิสูจน์ Gottesman-Knill theorem ดังนั้น circuits สำหรับการเข้ารหัส states โดยใช้ stabilizer codes จึงไม่จำเป็นต้องใหญ่มากนัก โดยเฉพาะอย่างยิ่ง เป็นไปได้เสมอที่จะดำเนินการเข้ารหัสสำหรับ -qubit stabilizer code โดยใช้ Clifford operation ที่ต้องการ gates เนื่องจาก ทุก Clifford operation บน qubits สามารถ implement ได้ด้วย circuit ขนาดนี้
ตัวอย่างเช่น นี่คือ encoder สำหรับ 7-qubit Steane code มันเป็น Clifford operation จริงๆ และปรากฏว่าตัวนี้ไม่ต้องการ gates ด้วยซ้ำ
การตรวจจับข้อผิดพลาด
สำหรับ -qubit stabilizer code ที่อธิบายด้วย stabilizer generators การตรวจจับข้อผิดพลาดทำงานในแบบต่อไปนี้
ในการตรวจจับข้อผิดพลาด stabilizer generators ทั้งหมดจะถูกวัดในฐานะ observables มี stabilizer generators ดังนั้นจึงมี ผลการวัด แต่ละตัวเป็น หรือ (หรือค่า binary ถ้าเลือกใช้ แทน และ แทน ตามลำดับ) เราตีความผลลัพธ์ ตัวรวมกัน เป็น vector หรือ string เรียกว่า syndrome Syndrome บ่งชี้ว่าไม่มีข้อผิดพลาดถูกตรวจพบ ในขณะที่ อย่างน้อยหนึ่งตัวใน syndrome บ่งชี้ว่าตรวจพบข้อผิดพลาด
สมมติโดยเฉพาะว่า เป็น -qubit Pauli operation ที่แทนข้อผิดพลาดสมมุติ (เราพิจารณาเฉพาะ Pauli operations เป็นข้อผิดพลาด เนื่องจากการแยกส่วนของข้อผิดพลาดทำงานในแบบเดียวกันสำหรับ stabilizer codes โดยพลการเช่นเดียวกับ 9-qubit Shor code) มีสามกรณีที่กำหนดว่า ถูกตรวจพบว่าเป็นข้อผิดพลาดหรือไม่
กรณีการตรวจจับข้อผิดพลาด
-
การดำเนินการ เป็น proportional กับ element ใน stabilizer
ในกรณีนี้ ต้องสับเปลี่ยนได้กับ stabilizer generator ทุกตัว ดังนั้นเราได้ syndrome หมายความว่า ไม่ถูกตรวจพบว่าเป็นข้อผิดพลาด
-
การดำเนินการ ไม่ได้ proportional กับ element ใน stabilizer แต่กลับสับเปลี่ยนได้กับ stabilizer generator ทุกตัว
นี่คือข้อผิดพลาดที่เปลี่ยนเวกเตอร์ใน code space ในแบบที่ไม่ใช่ trivial อย่างไรก็ตาม เนื่องจาก สับเปลี่ยนได้กับ stabilizer generator ทุกตัว syndrome จึงเป็น ดังนั้น จึงไม่ถูก code ตรวจพบ
-
การดำเนินการ anti-commutes กับ stabilizer generator อย่างน้อยหนึ่งตัว
Syndrome ต่างจาก ดังนั้นข้อผิดพลาด จึงถูก code ตรวจพบ
ในกรณีแรก ข้อผิดพลาด ไม่น่าเป็นห่วง เพราะการดำเนินการนี้ไม่ทำอะไรกับเวกเตอร์ใน code space นอกจากอาจใส่ global phase ที่ไม่เกี่ยวข้อง: สำหรับทุก encoded state โดยแก่นแท้แล้ว นี่ไม่ใช่ข้อผิดพลาดจริงๆ — การกระทำที่ไม่ trivial ใดๆ ของ เกิดขึ้นนอก code space — จึงเป็นเรื่องดีที่ ไม่ถูกตรวจพบว่าเป็นข้อผิดพลาด เพราะไม่ต้องทำอะไร
กรณีที่สอง พูดในแง่ intuitive คือกรณีที่ไม่ดี มันคือ anti-commutation ของข้อผิดพลาดกับ stabilizer generator ที่ทำให้เกิด ใน syndrome บ่งสัญญาณข้อผิดพลาด แต่สิ่งนั้นไม่เกิดขึ้นในกรณีนี้ ดังนั้น เรามีข้อผิดพลาด ที่เปลี่ยนเวกเตอร์ใน code space ในแบบที่ไม่ใช่ trivial แต่ code ไม่ตรวจพบ ตัวอย่างเช่น สำหรับ 3-bit repetition code การดำเนินการ อยู่ในหมวดหมู่นี้
ข้อเท็จจริงที่ว่าข้อผิดพลาด ดังกล่าวต้องเปลี่ยนเวกเตอร์บางส่วนใน code space ในแบบที่ไม่ trivial สามารถโต้แย้งได้ดังต่อไปนี้ จากสมมติฐานที่ว่า สับเปลี่ยนได้กับ แต่ไม่ proportional กับ stabilizer element เราสรุปได้ว่าเราจะได้ stabilizer code ใหม่ที่ถูกต้องโดยรวม เป็น stabilizer generator ร่วมกับ อย่างไรก็ตาม code space สำหรับ code ใหม่นี้มีมิติเพียงครึ่งหนึ่งของ code space เดิม ซึ่งทำให้เราสรุปได้ว่า action ของ บน code space เดิมไม่สามารถ proportional กับ identity operation ได้
สำหรับกรณีที่สามในสามกรณี ซึ่งคือข้อผิดพลาด anti-commutes กับ stabilizer generator อย่างน้อยหนึ่งตัว syndrome มี อย่างน้อยหนึ่งตัว ซึ่งบ่งชี้ว่ามีบางอย่างผิดปกติ อย่างที่เราได้พูดถึงแล้ว syndrome จะไม่ระบุ อย่างเจาะจงโดยทั่วไป ดังนั้นจึงยังจำเป็นต้องเลือก correction operation สำหรับแต่ละ syndrome ซึ่งอาจหรืออาจไม่แก้ไขข้อผิดพลาด เราจะพูดถึงขั้นตอนนี้ในไม่ช้า ในส่วนสุดท้ายของบทเรียน
ระยะของ stabilizer code
ในฐานะคำศัพท์ เมื่อเราอ้างถึง ระยะ (distance) ของ stabilizer code เราหมายถึง น้ำหนักต่ำสุด (minimum weight) ของ Pauli operation ที่อยู่ในหมวดหมู่ที่สองข้างต้น — หมายความว่ามันเปลี่ยน code space ในแบบที่ไม่ใช่ trivial แต่ code ไม่ตรวจพบ เมื่อกล่าวว่า stabilizer code เป็น stabilizer code โดยใช้วงเล็บเหลี่ยมคู่ หมายความดังต่อไปนี้:
- การเข้ารหัสมีความยาว qubits
- code อนุญาตให้เข้ารหัส qubits และ
- ระยะของ code คือ
ตัวอย่างเช่น พิจารณา 7-qubit Steane code นี่คือ stabilizer generators สำหรับ code นี้:
code นี้มีระยะ 3 และเราสามารถโต้แย้งได้ดังต่อไปนี้
ก่อนอื่น พิจารณา Pauli operation ใดๆ ที่มีน้ำหนักไม่เกิน 2 และสมมติว่า operation นี้สับเปลี่ยนได้กับ stabilizer generators ทั้งหกตัว เราจะสรุปว่า ต้องเป็น identity operation ซึ่ง (อย่างเสมอ) เป็น element ของ stabilizer สิ่งนี้จะแสดงว่าระยะของ code มากกว่า 2 อย่างเคร่งครัด สมมติโดยเฉพาะว่า มีรูปแบบ
โดยที่ และ เป็น Pauli matrices ที่อาจไม่ใช่ identity นี่เป็นเพียงหนึ่งกรณี และจำเป็นต้องทำซ้ำการโต้แย้งที่ตามมาสำหรับตำแหน่งที่เป็นไปได้ทั้งหมดอื่นๆ สำหรับ Pauli matrices ที่ไม่ใช่ identity ใน tensor factors ของ แต่การโต้แย้งนั้นเหมือนกันโดยพื้นฐานสำหรับตำแหน่งที่เป็นไปได้ทั้งหมด
การดำเนินการ สับเปลี่ยนได้กับ stabilizer generators ทั้งหกตัว ดังนั้นมันสับเปลี่ยนได้กับสองตัวนี้โดยเฉพาะ:
Tensor factor ใน error ของเราตรงกับ identity matrix ในทั้งสอง stabilizer generators นี้ (นั่นเป็นเหตุผลที่เลือกมัน) เนื่องจากเรามี identity matrices ใน 5 ตำแหน่งขวาสุดของ เราสรุปได้ว่า ต้องสับเปลี่ยนได้กับ และ มิฉะนั้น จะ anti-commute กับ generator ตัวใดตัวหนึ่งในสอง อย่างไรก็ตาม Pauli matrix เดียวที่สับเปลี่ยนได้กับทั้ง และ คือ identity matrix ดังนั้น
ตอนนี้ที่เรารู้สิ่งนี้แล้ว เราสามารถเลือก stabilizer generators สองตัวเพิ่มเติมที่มี และ ในตำแหน่งที่สองจากซ้าย และเราสรุปได้ในลักษณะเดียวกัน: ดังนั้น จึงเป็น identity operation
ดังนั้น ไม่มีทางที่ข้อผิดพลาดที่มีน้ำหนักไม่เกิน 2 จะไม่ถูก code ตรวจพบ ยกเว้น identity operation (ซึ่งอยู่ใน stabilizer จึงไม่ใช่ข้อผิดพลาดจริงๆ) ในทางกลับกัน มี weight 3 Pauli operations ที่สับเปลี่ยนได้กับ stabilizer generators ทั้งหกตัว แต่ไม่ proportional กับ stabilizer elements เช่น และ สิ่งนี้แสดงว่า code นี้มีระยะ 3 ตามที่อ้างไว้
การแก้ไขข้อผิดพลาด
หัวข้อสุดท้ายของบทเรียนนี้คือการ แก้ไข ข้อผิดพลาดสำหรับ stabilizer codes อย่างเคยสมมติว่าเรามี stabilizer code ที่กำหนดด้วย stabilizer generators บน n qubits
-qubit Pauli operations ในฐานะข้อผิดพลาดที่อาจส่งผลต่อ states ที่เข้ารหัสโดยใช้ code นี้ ถูกแบ่งเป็น collections ขนาดเท่ากันตาม syndrome ที่มันทำให้เกิดขึ้น มี syndromes ที่แตกต่างกันและ Pauli operations หมายความว่ามี Pauli operations ที่ทำให้เกิดแต่ละ syndrome ข้อผิดพลาดใดๆ ตัวหนึ่งเหล่านี้อาจรับผิดชอบต่อ syndrome ที่สอดคล้องกัน
อย่างไรก็ตาม ในบรรดา Pauli operations ที่ทำให้เกิดแต่ละ syndrome มีบางตัวที่ควรพิจารณาว่าเทียบเท่ากัน โดยเฉพาะอย่างยิ่ง ถ้า product ของ Pauli operations สองตัว proportional กับ stabilizer element แล้วทั้งสองตัวนั้นเทียบเท่ากันโดยพื้นฐานในฐานะข้อผิดพลาด
อีกวิธีในการพูดสิ่งนี้คือถ้าเราใช้ correction operation เพื่อพยายามแก้ไขข้อผิดพลาด แล้วการแก้ไขนี้สำเร็จตราบใดที่ composition proportional กับ stabilizer element เนื่องจากมี elements ใน stabilizer จึงตามมาว่า correction operation แต่ละตัวแก้ไข Pauli errors จำนวน ตัวที่แตกต่างกัน ซึ่งเหลือ classes ที่ไม่เทียบเท่ากันของ Pauli operations ที่พิจารณาเป็นข้อผิดพลาด ซึ่งสอดคล้องกับแต่ละ syndrome ที่เป็นไปได้
หมายความว่า ยกเว้นกรณีที่ (ซึ่งในกรณีนั้นเรามี 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 ที่มีระยะ กลยุทธ์การเลือก correction operation ให้เป็น Pauli operation น้ำหนักต่ำสุดที่สอดคล้องกับ syndrome ที่วัดได้นี้ รับประกันเสมอว่าสามารถแก้ไขข้อผิดพลาดที่มีน้ำหนักน้อยกว่าครึ่งหนึ่งของ อย่างเคร่งครัด หรือพูดอีกอย่างคือน้ำหนักไม่เกิน สิ่งนี้แสดงให้เห็น เช่น ว่า 7-qubit Steane code สามารถแก้ไข Pauli error ที่มีน้ำหนักหนึ่งได้ และจากการแยกส่วนของข้อผิดพลาด หมายความว่า Steane code สามารถแก้ไขข้อผิดพลาดโดยพลการบน qubit หนึ่งตัวได้
เพื่อดูว่าสิ่งนี้ทำงานอย่างไร พิจารณา diagram ด้านล่าง วงกลมทางซ้ายแทน Pauli operations ทั้งหมดที่ทำให้เกิด syndrome ซึ่งเป็น syndrome ที่บ่งชี้ว่าไม่มีข้อผิดพลาดและทุกอย่างปกติ ในบรรดา operations เหล่านี้ เรามี elements ของ stabilizer (หรือ operations ที่ proportional กับ elements ของ stabilizer ให้แม่นยำยิ่งขึ้น) และยังมีข้อผิดพลาดที่ไม่ trivial ที่เปลี่ยน code space ในบางแง่แต่ code ไม่ตรวจพบ ตามนิยามของระยะ Pauli operation ทุกตัวในหมวดหมู่นี้ต้องมีน้ำหนักอย่างน้อย เพราะ ถูกนิยามเป็นน้ำหนักต่ำสุดของ operations เหล่านี้
วงกลมทางขวาแทน Pauli operations ที่ทำให้เกิด syndrome ต่าง รวมถึงข้อผิดพลาด ที่มีน้ำหนักน้อยกว่า อย่างเคร่งครัดที่เราจะพิจารณา
Correction operation ที่เลือกสำหรับ syndrome คือ Pauli operation น้ำหนักต่ำสุดใน collection ที่แทนด้วยวงกลมทางขวาใน diagram (หรือตัวใดตัวหนึ่งในกรณีที่เสมอกัน) ดังนั้น อาจเป็นไปได้ว่า แต่ไม่จำเป็นเสมอไป อย่างไรก็ตาม สิ่งที่เราพูดได้อย่างแน่นอนคือ ไม่สามารถมีน้ำหนักมากกว่าน้ำหนักของ เพราะ มีน้ำหนักต่ำสุดใน operations ใน collection นี้ — ดังนั้น จึงมีน้ำหนักน้อยกว่า อย่างเคร่งครัด
ตอนนี้พิจารณาสิ่งที่เกิดขึ้นเมื่อ correction operation ถูกนำไปใช้กับ state ที่เราได้รับหลังจากที่ข้อผิดพลาด เกิดขึ้น สมมติว่า encoding เดิมเป็น เราเหลือ เป้าหมายของเราคือแสดงว่า proportional กับ element ใน stabilizer หมายความว่าการแก้ไขสำเร็จและ (นอกเหนือจาก global phase) เราเหลือ encoded state เดิม
ประการแรก เนื่องจาก และ ทำให้เกิด syndrome เดียวกัน composition ต้องสับเปลี่ยนได้กับ stabilizer generator ทุกตัว โดยเฉพาะอย่างยิ่ง ถ้า เป็น stabilizer generator ตัวใดตัวหนึ่ง เราต้องมี
สำหรับค่า เดียวกัน เพราะนี่คือรายการที่ ใน syndrome ที่ทั้ง และ สร้างขึ้น ดังนั้น เรามี
ดังนั้น สับเปลี่ยนได้กับ เราจึงแสดงให้เห็นว่า อยู่ในวงกลมทางซ้ายใน diagram เพราะมันสร้าง syndrome
ประการที่สอง composition ต้องมีน้ำหนักไม่เกินผลรวมของน้ำหนักของ และ — ซึ่งตามมาจากการคิดสักครู่เกี่ยวกับ products ของ Pauli operations — ดังนั้นน้ำหนักของ น้อยกว่า อย่างเคร่งครัด สิ่งนี้หมายความว่า proportional กับ element ใน stabilizer ของ code เรา ซึ่งเป็นสิ่งที่เราต้องการแสดง ด้วยการเลือก correction operations ให้เป็นตัวแทนน้ำหนักต่ำสุดของเซต errors ที่สร้าง syndrome แต่ละตัว เราจึงรับประกันได้ว่าจะแก้ไข Pauli errors ที่มีน้ำหนักน้อยกว่าครึ่งหนึ่งของระยะ code
อย่างไรก็ตาม มีปัญหาหนึ่ง สำหรับ stabilizer codes โดยทั่วไป การคำนวณ Pauli operation น้ำหนักต่ำสุดที่ทำให้เกิด syndrome ที่กำหนดเป็นปัญหาที่ยากในเชิงคำนวณ (จริงๆ แล้ว สิ่งนี้เป็นจริงแม้แต่สำหรับ classical codes ซึ่งในบริบทนี้เราสามารถคิดว่าเป็น stabilizer codes ที่มีเฉพาะ และ matrices ปรากฏเป็น tensor factors ใน stabilizer generators) ดังนั้น ต่างจากขั้นตอนการเข้ารหัส Clifford operations จะไม่มาช่วยคราวนี้
ทางออกคือการเลือก specific codes ที่สามารถคำนวณการแก้ไขที่ดีได้อย่างมีประสิทธิภาพ ซึ่งไม่มีสูตรง่ายๆ พูดง่ายๆ คือการออกแบบ stabilizer codes ที่สามารถคำนวณ correction operations ที่ดีได้อย่างมีประสิทธิภาพเป็นส่วนหนึ่งของศิลปะในการออกแบบ quantum code เราจะเห็นศิลปะนี้ในบทเรียนถัดไป