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

Toric code

ต่อไปเราจะพูดถึง CSS code เฉพาะที่เรียกว่า toric code ซึ่งค้นพบโดย Alexei Kitaev ในปี 1997 อันที่จริง toric code ไม่ใช่โค้ดเดียว แต่เป็นครอบครัวของโค้ด หนึ่งโค้ดสำหรับจำนวนเต็มบวกทุกค่าตั้งแต่ 2 เป็นต้นไป โค้ดเหล่านี้มีคุณสมบัติสำคัญสองสามประการ:

  • Stabilizer generators มี weight ต่ำ โดยเฉพาะทุกตัวมี weight 4 ในภาษาของทฤษฎีการเข้ารหัส toric code เป็นตัวอย่างของ quantum low-density parity check code หรือ quantum LDPC code (โดยที่ ต่ำ ในที่นี้หมายถึง 4) ซึ่งดีเพราะการวัด stabilizer generator แต่ละครั้งไม่ต้องใช้ qubit มากเกินไป

  • Toric code มี geometric locality หมายความว่าไม่เพียงแต่ stabilizer generators มี weight ต่ำ แต่ยังเป็นไปได้ที่จะจัด qubit ในเชิงพื้นที่เพื่อให้การวัด stabilizer generator แต่ละครั้งเกี่ยวข้องเฉพาะ qubit ที่อยู่ใกล้กัน ในหลักการ สิ่งนี้ทำให้การวัดเหล่านี้ง่ายต่อการปฏิบัติมากกว่าหากเกี่ยวข้อง qubit ที่อยู่ไกลกันทางกายภาพ

  • สมาชิกของครอบครัว toric code มี ระยะทางที่ใหญ่ขึ้นเรื่อย ๆ และรับมือกับ อัตราข้อผิดพลาดค่อนข้างสูง ได้

คำอธิบาย toric code

ให้ L2L\geq 2 เป็นจำนวนเต็มบวก และพิจารณาตาราง L×LL\times L ที่มี periodic boundaries ที่เรียกกันว่า ตัวอย่างเช่น รูปนี้แสดงตาราง L×LL\times L สำหรับ L=9L=9

ตาราง 9x9 ที่มี periodic boundaries

สังเกตว่าเส้นทางด้านขวาและด้านล่างเป็นเส้นประ สิ่งนี้หมายความว่าเส้นประด้านขวาคือเส้นเดียวกันกับเส้นทางซ้ายสุด และเช่นเดียวกัน เส้นประด้านล่างคือเส้นเดียวกับเส้นบนสุด

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

สิ่งที่ได้คือ ทอรัส — หรือพูดอีกอย่างคือโดนัท (แม้ว่าการนึกถึงว่าเป็นยางในรถอาจให้ภาพที่ดีกว่า เพราะนี่ไม่ใช่ของแข็ง: ตารางกลายเป็นเพียงพื้นผิวของทอรัส) นี่คือที่มาของชื่อ "toric code"

ตาราง 9x9 ที่พันเป็นทอรัส

วิธีที่สามารถ "เคลื่อนที่" บนทอรัสแบบนี้ ระหว่างจุดที่อยู่ติดกันบนตาราง น่าจะคุ้นเคยสำหรับผู้ที่เล่นวิดีโอเกมรุ่นเก่า ซึ่งการเดินออกนอกด้านบนของหน้าจอจะทำให้โผล่ขึ้นมาจากด้านล่าง และในทำนองเดียวกันสำหรับขอบซ้ายและขวา นี่คือวิธีที่เราจะมองตารางที่มี periodic boundaries นี้ แทนที่จะพูดถึงทอรัสในสามมิติโดยตรง

ต่อมา qubit จะถูกจัดวางบน ขอบ ของตารางนี้ ดังที่แสดงในภาพต่อไปนี้ โดย qubit แสดงด้วยวงกลมสีน้ำเงินทึบ

Qubit บนขอบของตาราง 9x9 แบบคาบ

สังเกตว่า qubit ที่วางบนเส้นประไม่เป็นสีทึบ เพราะถูกแทนแล้วบนเส้นบนสุดและซ้ายสุดของตาราง รวมทั้งหมดมี 2L22L^2 qubit: L2L^2 qubit บนเส้นแนวนอน และ L2L^2 qubit บนเส้นแนวตั้ง

เพื่ออธิบาย toric code เอง ยังต้องอธิบาย stabilizer generators:

  • สำหรับแต่ละ กระเบื้อง ที่เกิดจากเส้นในตาราง จะมี ZZ stabilizer generator หนึ่งตัว ซึ่งได้จากการ tensor ZZ matrices บน qubit สี่ตัวที่แตะกระเบื้องนั้น พร้อมกับ identity matrices บน qubit ที่เหลือทั้งหมด

  • สำหรับแต่ละ จุดยอด ที่เกิดจากเส้นในตาราง จะมี XX stabilizer generator หนึ่งตัว ซึ่งได้จากการ tensor XX matrices บน qubit สี่ตัวที่อยู่ติดกับจุดยอดนั้น พร้อมกับ identity matrices บน qubit ที่เหลือทั้งหมด

ทั้งสองกรณีให้ Pauli operation ที่มี weight 4 แต่ละ stabilizer generator อาจแสดงเป็นภาพได้ดังนี้

ประเภท stabilizer generator สำหรับ toric code

นี่คือภาพประกอบที่แสดงตัวอย่าง stabilizer generators ในบริบทของตารางเอง สังเกตว่า stabilizer generators ที่พันรอบ periodic boundaries รวมอยู่ด้วย generators ที่พันรอบ periodic boundaries เหล่านี้ไม่ได้พิเศษหรือแตกต่างจากตัวที่ไม่ได้พัน

ตัวอย่าง stabilizer generators บนตาราง

stabilizer generators ต้องสับเปลี่ยนกันได้เพื่อให้เป็น stabilizer code ที่ถูกต้อง ตามปกติ ZZ stabilizer generators ทุกตัวสับเปลี่ยนกันได้ เพราะ ZZ สับเปลี่ยนกับตัวมันเองและ identity สับเปลี่ยนกับทุกอย่าง และเช่นเดียวกันกับ XX stabilizer generators ZZ และ XX stabilizer generators สับเปลี่ยนกันได้อย่างชัดเจนเมื่อทำงานได้จริงบน qubit ชุดที่ไม่ทับกัน อย่างเช่นตัวอย่างในภาพก่อนหน้า ความเป็นไปได้ที่เหลือคือ ZZ stabilizer generator และ XX stabilizer generator ซ้อนทับกันบน qubit ที่ทำงานได้จริง และเมื่อเกิดขึ้นก็ต้องซ้อนทับกันสอง qubit เสมอ ดังในภาพถัดไป

overlapping stabilizer generators สำหรับ toric code

ดังนั้น stabilizer generators สองตัวแบบนี้จึงสับเปลี่ยนกันได้ เช่นเดียวกับที่ ZZZ\otimes Z และ XXX\otimes X สับเปลี่ยนกันได้ stabilizer generators ทั้งหมดจึงสับเปลี่ยนกันได้

เงื่อนไขที่สองที่ต้องการสำหรับ stabilizer generators ของ stabilizer code คือต้องเป็น minimal generating set เงื่อนไขนี้จริง ๆ แล้ว ไม่ ถูกตอบสนองโดยชุดนี้: ถ้าคูณ ZZ stabilizer generators ทั้งหมดเข้าด้วยกัน จะได้ identity operation และเช่นเดียวกันสำหรับ XX stabilizer generators ดังนั้น ZZ stabilizer generator ใดก็ตามสามารถแสดงเป็นผลคูณของตัวที่เหลือทั้งหมดได้ และในทำนองเดียวกัน XX stabilizer generator ใดก็ตามสามารถแสดงเป็นผลคูณของ XX stabilizer generators ที่เหลือได้ อย่างไรก็ตาม ถ้าลบ ZZ stabilizer generator หนึ่งตัวและ XX stabilizer generator หนึ่งตัวออก เราก็จะได้ minimal generating set

เพื่อให้ชัดเจน เราให้ความสำคัญกับ stabilizer generators ทุกตัวเท่าเทียมกัน และในเชิงปฏิบัติไม่จำเป็นต้องเลือก stabilizer generator ประเภทละหนึ่งตัวเพื่อลบออก แต่เพื่อวัตถุประสงค์ในการ วิเคราะห์ โค้ด โดยเฉพาะการนับ generators เราจินตนาการว่ามีการลบ stabilizer generator ประเภทละหนึ่งตัวออก เพื่อให้ได้ minimal generating set โดยจำไว้ว่าเราสามารถอนุมานผลลัพธ์ของ generators ที่ถูกลบออก (ในแง่ของ observables) จากผลลัพธ์ของ stabilizer generator observables ประเภทเดียวกันทั้งหมดเสมอ

สิ่งนี้ทิ้งไว้ L21L^2 - 1 stabilizer generators ของแต่ละประเภท หรือ 2L222L^2 - 2 ทั้งหมด ใน minimal generating set (สมมติ) เนื่องจากมี 2L22L^2 qubit ทั้งหมด หมายความว่า toric code เข้ารหัส 2L22(L21)=22L^2 - 2 (L^2 - 1) = 2 qubits

เงื่อนไขสุดท้ายที่ต้องการสำหรับ stabilizer generators คือ vector ของสถานะควอนตัมอย่างน้อยหนึ่งตัวต้องถูกตรึงโดย stabilizer generators ทั้งหมด เราจะเห็นว่าสิ่งนี้เป็นจริงเมื่อเราวิเคราะห์โค้ดต่อไป แต่ก็สามารถอ้างเหตุผลได้ว่าไม่มีทางสร้าง 1-1 เท่าของ identity บน qubit ทั้ง 2L22L^2 จาก stabilizer generators ได้

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

Toric code มีคำอธิบายที่เรียบง่ายและสง่างาม แต่คุณสมบัติการแก้ไขข้อผิดพลาดเชิงควอนตัมอาจไม่ชัดเจนเลยเมื่อมองครั้งแรก ปรากฏว่า มันเป็นโค้ดที่น่าทึ่งมาก! เพื่อเข้าใจว่าทำไมและทำงานอย่างไร มาเริ่มด้วยการพิจารณาข้อผิดพลาดต่าง ๆ และ syndromes ที่เกิดขึ้น

Toric code เป็น CSS code เพราะ stabilizer generators ทั้งหมดของเราเป็นทั้ง ZZ หรือ XX stabilizer generators หมายความว่า XX errors และ ZZ errors สามารถตรวจจับ (และอาจแก้ไข) แยกกัน ที่จริง มีความสมมาตรง่าย ๆ ระหว่าง ZZ และ XX stabilizer generators ที่ช่วยให้เราวิเคราะห์ XX errors และ ZZ errors ในทิศทางเดียวกันได้ ดังนั้นเราจะมุ่งเน้นที่ XX errors ซึ่งอาจถูกตรวจจับโดย ZZ stabilizer generators — แต่การอภิปรายทั้งหมดต่อไปนี้สามารถแปลจาก XX errors เป็น ZZ errors ซึ่งถูกตรวจจับในทำนองเดียวกันโดย XX stabilizer generators

แผนภาพต่อไปนี้แสดงผลของ XX error บน qubit เดียว สมมติว่า 2L22L^2 qubits ของเราอยู่ในสถานะที่อยู่ใน code space ของ toric code มาก่อน ทำให้การวัด stabilizer generator ทั้งหมดให้ผล +1+1 ZZ stabilizer generators ตรวจจับ XX errors และมีหนึ่งตัวต่อหนึ่งกระเบื้องในภาพ ดังนั้นเราสามารถระบุผลการวัดของ stabilizer generator ที่สอดคล้องด้วยสีของกระเบื้องนั้น: ผล +1+1 แสดงด้วยกระเบื้องสีขาวและผล 1-1 แสดงด้วยกระเบื้องสีเทา ถ้าเกิดข้อผิดพลาด bit-flip บน qubit หนึ่ง ผลคือการวัด stabilizer generator ที่สอดคล้องกับสองกระเบื้องที่แตะ qubit ที่ได้รับผลกระทบจะให้ผล 1-1

ผลของ bit-flip error เดี่ยวบน toric code

สิ่งนี้เข้าใจได้เมื่อพิจารณา ZZ stabilizer generators และพฤติกรรมของมัน โดยพื้นฐาน ZZ stabilizer generator แต่ละตัววัด parity ของ qubit สี่ตัวที่แตะกระเบื้องที่สอดคล้อง (เทียบกับ standard basis) ดังนั้น ผล +1+1 ไม่ได้บ่งบอกว่าไม่มี XX errors เกิดขึ้นบน qubit สี่ตัวเหล่านี้ แต่บ่งบอกว่า XX errors จำนวน คู่ เกิดขึ้นบน qubit เหล่านี้ ในขณะที่ผล 1-1 บ่งบอกว่า XX errors จำนวน คี่ เกิดขึ้น ดังนั้น XX error เดียวจึง flip parity ของ bit ทั้งสี่ตัวบนกระเบื้องทั้งสองที่แตะมัน ทำให้การวัด stabilizer generator ให้ผล 1-1

ต่อมาเราจะพิจารณา XX errors หลายตัวพร้อมกันเพื่อดูว่าเกิดอะไรขึ้น โดยเฉพาะ เราจะพิจารณา chain ของ XX errors ที่อยู่ติดกัน โดยที่ XX errors สองตัวอยู่ติดกันถ้าส่งผลต่อ qubit ที่แตะกระเบื้องเดียวกัน

ผลของ chain ของ bit-flip errors บน toric code

ZZ stabilizer generators สองตัวที่ปลายของ chain ทั้งคู่ให้ผล 1-1 ในกรณีนี้ เพราะเกิด XX errors จำนวนคี่บนกระเบื้องที่สอดคล้องสองตัวนั้น ZZ stabilizer generators อื่น ๆ ทั้งหมดในทางกลับกัน ให้ผล +1+1 รวมถึงตัวที่แตะ chain แต่ไม่อยู่ที่ปลาย เพราะเกิด XX errors จำนวนคู่บน qubit ที่แตะกระเบื้องที่สอดคล้อง

ดังนั้น ตราบใดที่เรามี chain ของ XX errors ที่มีจุดปลาย toric code จะตรวจจับว่าเกิดข้อผิดพลาด โดยให้ผล 1-1 ของการวัด ZZ stabilizer generators ที่สอดคล้องกับจุดปลายของ chain สังเกตว่า chain จริง ๆ ไม่ถูกเปิดเผย มีเพียงจุดปลายเท่านั้น! ไม่เป็นไร — ในส่วนถัดไปเราจะเห็นว่าเราไม่จำเป็นต้องรู้แน่ชัดว่า qubit ใดได้รับผลจาก XX errors เพื่อแก้ไขมัน (Toric code เป็นตัวอย่างของโค้ดที่มีความ degenerate สูง ในแง่ที่โดยทั่วไปไม่ระบุข้อผิดพลาดที่แก้ไขได้อย่างเฉพาะเจาะจง)

อย่างไรก็ตาม chain ของ XX errors ที่อยู่ติดกันอาจไม่มีจุดปลาย ซึ่งหมายความว่า chain ของข้อผิดพลาดอาจเป็น closed loop ดังในภาพต่อไปนี้

closed loop ของ bit-flip errors สำหรับ toric code

ในกรณีนั้น เกิด XX errors จำนวนคู่บนทุกกระเบื้อง ดังนั้นการวัด stabilizer generator ทุกครั้งให้ผล +1+1 Closed loops ของ XX errors ที่อยู่ติดกันจึงไม่ถูกตรวจจับโดยโค้ด

ดูเหมือนน่าผิดหวัง เพราะต้องการเพียง XX errors สี่ตัวเพื่อเป็น closed loop (และเราหวังว่าจะได้อะไรที่ดีกว่า distance 4 code มาก) อย่างไรก็ตาม closed loop ของ XX errors รูปแบบที่แสดงในภาพก่อนหน้าไม่ใช่ข้อผิดพลาดจริง ๆ — เพราะมันอยู่ใน stabilizer! จำไว้ว่า นอกจาก ZZ stabilizer generators แล้ว เรายังมี XX stabilizer generator สำหรับแต่ละจุดยอดในตาราง และถ้าคูณ XX stabilizer generators ที่อยู่ติดกันเข้าด้วยกัน ผลที่ได้คือเราได้ closed loops ของ XX operations ตัวอย่างเช่น closed loop ในภาพก่อนหน้าได้มาจากการคูณ XX stabilizer generators ที่แสดงในภาพต่อไปนี้เข้าด้วยกัน

closed loop ของ bit-flip errors ที่สร้างจาก X stabilizer generators

อย่างไรก็ตาม นี่ไม่ใช่ประเภทเดียวของ closed loop ของ XX errors ที่เราสามารถมีได้ — และไม่ใช่ว่า closed loop ทุก loop ของ XX errors อยู่ใน stabilizer โดยเฉพาะ ประเภทต่าง ๆ ของ loops สามารถระบุได้ดังนี้

  1. Closed loops ของ XX errors ที่มี XX errors จำนวน คู่ บนแนวนอนและแนวตั้งของ qubit ทุกเส้น (ตัวอย่างที่แสดงด้านบนอยู่ในหมวดนี้) Loops ของรูปแบบนี้อยู่ใน stabilizer เสมอ เพราะสามารถหดให้เป็นศูนย์ได้โดยคูณด้วย XX stabilizer generators

  2. Closed loops ของ XX errors ที่มี XX errors จำนวน คี่ บนแนวนอนหรือแนวตั้งของ qubit อย่างน้อยหนึ่งเส้น Loops ของรูปแบบนี้ไม่อยู่ใน stabilizer และจึงแทน nontrivial errors ที่ไม่ถูกตรวจจับโดยโค้ด

ตัวอย่างของ closed loop ของ XX errors ในหมวดที่สองแสดงในแผนภาพต่อไปนี้

closed loop ของ bit-flip errors ที่ไม่อยู่ใน stabilizer

chain ของข้อผิดพลาดดังกล่าวไม่อยู่ใน stabilizer เพราะ XX stabilizer generator ทุกตัวใส่ XX operations จำนวนคู่บนแนวนอนและแนวตั้งของ qubit ทุกเส้น ดังนั้นนี่คือตัวอย่างจริงของ nontrivial error ที่โค้ดตรวจไม่พบ

สิ่งสำคัญคือวิธีเดียวที่จะสร้าง loop ประเภทที่สองได้คือต้องวนรอบทอรัส หมายความว่าต้องวนรอบรูตรงกลางของทอรัส ผ่านมัน หรือทั้งสองอย่าง พูดอย่างสัญชาตญาณ chain ของ XX errors แบบนี้ไม่สามารถหดให้เป็นศูนย์ได้โดยคูณด้วย XX stabilizer generators เพราะโทโพโลยีของทอรัสห้ามไว้ Toric code บางครั้งถูกจัดเป็น topological quantum error correcting code ด้วยเหตุนี้ loop ที่สั้นที่สุดดังกล่าวมีความยาว LL ดังนั้นนี่คือ distance ของ toric code: closed loop ของ XX errors ที่มีความยาวน้อยกว่า LL ต้องอยู่ในหมวดแรกและจึงอยู่ใน stabilizer และ chain ของ XX errors ที่มีจุดปลายถูกตรวจจับโดยโค้ด

เนื่องจาก toric code ใช้ 2L22L^2 qubits เพื่อเข้ารหัส 22 qubits และมี distance LL จึงสรุปได้ว่าเป็น [[2L2,2,L]][[2L^2,2,L]] stabilizer code

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

เราได้พูดถึงการ ตรวจจับ ข้อผิดพลาดสำหรับ toric code แล้ว ต่อไปเราจะพูดสั้น ๆ เกี่ยวกับวิธี แก้ไข ข้อผิดพลาด Toric code เป็น CSS code ดังนั้น XX errors และ ZZ errors สามารถตรวจจับและแก้ไขได้แยกกัน มุ่งเน้นที่ ZZ stabilizer generators ซึ่งตรวจจับ XX errors มาพิจารณาว่า chain ของ XX errors สามารถแก้ไขได้อย่างไร (ZZ errors ถูกแก้ไขในทิศทางที่สมมาตร)

ถ้าวัด syndrome ที่แตกต่างจาก (+1,,+1)(+1,\ldots,+1) syndrome เมื่อวัด ZZ stabilizer generators ผล 1-1 จะเปิดเผยจุดปลายของ chain หนึ่งตัวหรือมากกว่าของ XX errors เราสามารถพยายามแก้ไขข้อผิดพลาดเหล่านี้โดยจับคู่ผล 1-1 เข้าด้วยกันและสร้าง chain ของ XX corrections ระหว่างมัน เมื่อทำเช่นนี้ เหมาะสมที่จะเลือก shortest paths ตามแนวที่การแก้ไขเกิดขึ้น

ตัวอย่างเช่น พิจารณาแผนภาพต่อไปนี้ซึ่งแสดง syndrome ที่มีผล 1-1 สองตัว แสดงด้วยกระเบื้องสีเทา ซึ่งเกิดจาก chain ของ XX errors ที่แสดงด้วยเส้นและวงกลมสีชมพู อย่างที่เราสังเกตแล้ว chain เองไม่ถูกเปิดเผยโดย syndrome; มีเพียงจุดปลายเท่านั้นที่มองเห็นได้

การแก้ไข X errors ด้วย shortest path

เพื่อพยายามแก้ไข chain ของข้อผิดพลาดนี้ จะเลือก shortest path ระหว่างผลการวัด 1-1 และนำ XX gates ไปใช้เป็น corrections กับ qubit ตาม path นี้ (แสดงด้วยสีเหลืองในภาพ) แม้ว่า corrections อาจไม่ตรงกับ chain ของข้อผิดพลาดจริง ๆ แต่ข้อผิดพลาดและ corrections รวมกันเป็น closed loop ของ XX operations ที่อยู่ใน stabilizer ของโค้ด ดังนั้น correction สำเร็จในสถานการณ์นี้ เพราะผลรวมของข้อผิดพลาดและ corrections คือไม่ทำอะไรกับ encoded state

กลยุทธ์นี้ไม่ได้สำเร็จเสมอไป ตัวอย่างเช่น คำอธิบายที่แตกต่างสำหรับ syndrome เดียวกันกับในภาพก่อนหน้าแสดงในภาพต่อไปนี้

ทำ logical error ให้สมบูรณ์ด้วย corrections

คราวนี้ chain ของ corrections เดิมล้มเหลวในการแก้ไข chain ของข้อผิดพลาดนี้ เพราะผลรวมของข้อผิดพลาดและ corrections คือเราได้ closed loop ของ XX operations ที่วนรอบทอรัส และจึงมีผลที่ไม่ trivial ต่อ code space ดังนั้นไม่มีการรับประกันว่ากลยุทธ์ที่เพิ่งอธิบายไป คือการเลือก shortest path ของ XX corrections ระหว่างผลการวัด syndrome 1-1 สองตัว จะแก้ไขข้อผิดพลาดที่ก่อให้เกิด syndrome นั้นได้อย่างถูกต้อง

อาจเป็นไปได้มากกว่า ขึ้นอยู่กับ noise model ว่าจะวัด syndrome ที่มีผล 1-1 มากกว่าสองตัว ดังที่ภาพต่อไปนี้แนะนำ

Multiple correction chains

ในกรณีนั้น มีกลยุทธ์การแก้ไขหลายอย่างที่รู้จัก กลยุทธ์ธรรมชาติหนึ่งคือพยายามจับคู่ผลการวัด 1-1 เข้าด้วยกันและแก้ไขตาม shortest paths ที่เชื่อมต่อคู่เหล่านั้น ดังที่แสดงในภาพสีเหลือง โดยเฉพาะ สามารถคำนวณ minimum-weight perfect matching ระหว่างผลการวัด 1-1 แล้วเชื่อมต่อคู่ด้วย shortest paths ของ XX corrections การคำนวณ minimum-weight perfect matching สามารถทำได้อย่างมีประสิทธิภาพด้วย classical algorithm ที่เรียกว่า blossom algorithm ซึ่งค้นพบโดย Edmonds ในช่วงทศวรรษ 1960

วิธีนี้โดยทั่วไปไม่ใช่วิธีที่ดีที่สุดสำหรับ noise models ที่ศึกษากันมากที่สุด แต่จากการจำลองตัวเลขทำงานได้ดีมากในทางปฏิบัติต่ำกว่าอัตราข้อผิดพลาดประมาณ 10% สมมติว่าเป็น independent Pauli errors โดยที่ X,X, Y,Y, และ Z,Z, มีความน่าจะเป็นเท่ากัน การเพิ่ม LL ไม่มีผลสำคัญต่อจุดคุ้มทุนที่โค้ดเริ่มให้ผลดี แต่ทำให้ความน่าจะเป็นสำหรับ logical error ลดลงเร็วขึ้นเมื่ออัตราข้อผิดพลาดผ่านจุดคุ้มทุนไป

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