การแยกประเภทของข้อผิดพลาด
จนถึงตอนนี้เราได้พิจารณาข้อผิดพลาด และข้อผิดพลาด ในบริบทของ Shor code แบบ 9-Qubit แล้ว และในส่วนนี้เราจะพิจารณาข้อผิดพลาดแบบอื่น ๆ สิ่งที่เราจะพบคือ เพื่อจัดการกับข้อผิดพลาดดังกล่าว เราไม่จำเป็นต้องทำอะไรแตกต่างจากที่ได้พูดถึงไปแล้ว ความสามารถในการแก้ข้อผิดพลาด , ข้อผิดพลาด หรือทั้งคู่ หมายความว่าสามารถแก้ข้อผิดพลาดแบบสุ่มใด ๆ ได้เช่นกัน ปรากฏการณ์นี้บางครั้งเรียกว่า การแยกประเภทของข้อผิดพลาด (discretization of errors)
ข้อผิดพลาดแบบยูนิทารีของ Qubit
เริ่มต้นด้วยข้อผิดพลาดแบบ ยูนิทารี บน Qubit เดียว ตัวอย่างเช่น ข้อผิดพลาดแบบนี้อาจแทนการหมุน Bloch sphere เพียงเล็กน้อย ซึ่งอาจเกิดจาก Gate ที่ไม่สมบูรณ์แบบ หรืออาจเป็นการดำเนินการยูนิทารีอื่น ๆ บน Qubit ที่ไม่จำเป็นต้องใกล้เคียง identity ก็ได้
ดูเหมือนว่าการแก้ข้อผิดพลาดแบบนี้จะยาก เพราะมีข้อผิดพลาดที่เป็นไปได้อย่างไม่จำกัดจำนวน และเป็นไปไม่ได้ที่เราจะระบุข้อผิดพลาดแต่ละอันได้อย่างแม่นยำแล้วย้อนกลับมัน อย่างไรก็ตาม ตราบใดที่เราสามารถแก้การพลิกบิต การพลิกเฟส หรือทั้งคู่ได้ เราก็จะประสบความสำเร็จในการแก้ข้อผิดพลาดยูนิทารีบน Qubit เดียวแบบสุ่มใด ๆ โดยใช้ขั้นตอนที่อธิบายไว้ก่อนหน้านี้
เพื่ออธิบายว่าทำไมถึงเป็นเช่นนี้ ขอให้เราสังเกตก่อนว่า เราสามารถแสดงเมทริกซ์ยูนิทารี แบบสุ่ม ซึ่งแทนข้อผิดพลาดบน Qubit เดียว เป็น linear combination ของ Pauli matrices (รวม identity matrix) ได้
ดังที่เราจะเห็น เมื่อรัน Circuit ตรวจจับข้อผิดพลาด การวัดที่ให้ซินโดรมบิตจะ collapse สถานะของการเข้ารหัสอย่างน่าจะเป็นไปสู่สถานะที่มีข้อผิดพลาด (หรือไม่มีข้อผิดพลาด) ที่แทนด้วย Pauli matrix หนึ่งในสี่อัน (จากข้อเท็จจริงที่ว่า เป็นยูนิทารี ตัวเลข และ ต้องสอดคล้องกับ และค่า และ คือความน่าจะเป็นที่สถานะที่เข้ารหัสจะ collapse ไปสู่สถานะที่มีข้อผิดพลาด Pauli ที่สอดคล้อง)
เพื่อให้อธิบายได้ชัดเจนขึ้น จะสะดวกกว่าถ้าใช้ตัวห้อยเพื่อระบุว่า Qubit ใดที่การดำเนินการยูนิทารีนั้นกระทำ ตัวอย่างเช่น โดยใช้ขนบการนับ Qubit ของ Qiskit สำหรับ 9 Qubit ที่ใช้ใน Shor code เราได้นิพจน์เหล่านี้สำหรับการดำเนินการยูนิทารีต่าง ๆ บน Qubit เดียว โดยในแต่ละกรณีเราจะ tensor เมทริกซ์ยูนิทารีกับ identity matrix บน Qubit ทุกอันที่เหลือ
ดังนั้น โดยเฉพาะอย่างยิ่ง สำหรับการดำเนินการยูนิทารี บน Qubit ที่กำหนด เราสามารถระบุการกระทำของ ที่ใช้กับ Qubit ด้วยสูตรต่อไปนี้ ซึ่งคล้ายกับสูตรก่อนหน้า ยกเว้นว่าแต่ละเมทริกซ์แทนการดำเนินการที่ใช้กับ Qubit
สมมติว่า คือการเข้ารหัส 9-Qubit ของสถานะ Qubit ถ้าข้อผิดพลาด เกิดขึ้นบน Qubit เราจะได้สถานะ ซึ่งสามารถแสดงเป็น linear combination ของการดำเนินการ Pauli ที่กระทำบน ได้ดังนี้
ณ จุดนี้ ให้แทน
ตอนนี้พิจารณาขั้นตอนการตรวจจับและแก้ไขข้อผิดพลาดที่อธิบายไว้ก่อนหน้านี้ เราสามารถคิดถึงผลลัพธ์การวัดสำหรับการตรวจสอบ parity ของ code ภายในสามอันรวมกับอันสำหรับ code ภายนอก โดยรวมเป็นซินโดรมเดียวที่ประกอบด้วย 8 บิต ก่อนการวัดในฐานมาตรฐานจริงที่ให้ซินโดรมบิตเหล่านี้ สถานะมีรูปแบบดังนี้
เพื่อให้ชัดเจน ณ จุดนี้เรามีสองระบบ ระบบทางซ้ายคือ 8 Qubit ที่เราจะวัดเพื่อรับซินโดรม โดย และอื่น ๆ อ้างถึงสถานะฐานมาตรฐาน 8-Qubit ใด ๆ ที่สอดคล้องกับข้อผิดพลาด (หรือไม่มีข้อผิดพลาด) ที่สอดคล้อง ระบบทางขวาคือ 9 Qubit ที่เราใช้สำหรับการเข้ารหัส
สังเกตว่าสองระบบนี้มีความสัมพันธ์กัน (โดยทั่วไป) และนี่คือกุญแจสำคัญที่ทำให้ทำงานได้ เมื่อวัดซินโดรม สถานะของ 9 Qubit ทางขวาจะ collapse อย่างมีประสิทธิภาพไปสู่สถานะที่มีข้อผิดพลาด Pauli ที่สอดคล้องกับซินโดรมที่วัดได้เกิดขึ้นบน Qubit หนึ่ง ยิ่งกว่านั้น ซินโดรมเองให้ข้อมูลเพียงพอที่เราจะย้อนกลับข้อผิดพลาดและกู้คืนการเข้ารหัสเดิม ได้
โดยเฉพาะอย่างยิ่ง ถ้าวัด Qubit ซินโดรมและทำการแก้ไขที่เหมาะสม เราจะได้สถานะที่แสดงเป็น density matrix ได้ว่า
โดยที่
สิ่งสำคัญคือนี่คือ product state: เรามีการเข้ารหัสเดิมที่ไม่เสียหายเป็น tensor factor ทางขวา และทางซ้ายเรามี density matrix ที่อธิบายซินโดรมข้อผิดพลาดแบบสุ่ม ไม่มีความสัมพันธ์กับระบบทางขวาอีกต่อไปซึ่งเป็นอันที่เราสนใจ เพราะข้อผิดพลาดได้ถูกแก้ไขแล้ว ณ จุดนี้เราสามารถทิ้ง Qubit ซินโดรมหรือรีเซ็ตเพื่อนำกลับมาใช้ใหม่ได้ นี่คือวิธีที่ความสุ่ม — หรือ เอนโทรปี — ที่สร้างขึ้นจากข้อผิดพลาดถูกลบออกจากระบบ
นี่คือการแยกประเภทของข้อผิดพลาดสำหรับกรณีพิเศษของข้อผิดพลาดยูนิทารี โดยสาระสำคัญ เมื่อวัดซินโดรม เราจะ โปรเจกต์ ข้อผิดพลาดอย่างมีประสิทธิภาพไปสู่ข้อผิดพลาดที่อธิบายด้วย Pauli matrix
ในตอนแรกอาจดูเหมือนดีเกินจริงที่เราสามารถแก้ข้อผิดพลาดยูนิทารีแบบสุ่มได้แบบนี้ แม้แต่ข้อผิดพลาดที่เล็กน้อยและแทบไม่สังเกตเห็นได้ แต่สิ่งสำคัญที่ต้องตระหนักคือนี่คือข้อผิดพลาดยูนิทารีบน Qubit เดียว และจากการออกแบบของ code การดำเนินการบน Qubit เดียวไม่สามารถเปลี่ยนสถานะของ logical qubit ที่เข้ารหัสไว้ได้ สิ่งที่อาจเกิดขึ้นได้คือการย้ายสถานะออกจาก subspace ของการเข้ารหัสที่ถูกต้อง แต่การตรวจจับข้อผิดพลาดจะ collapse สถานะและการแก้ไขจะนำมันกลับสู่จุดเริ่มต้น
ข้อผิดพลาดแบบสุ่มของ Qubit
สุดท้าย พิจารณาข้อผิดพลาดแบบสุ่มที่ไม่จำเป็นต้องเป็นยูนิทารี ให้แม่นยำยิ่งขึ้น เราจะพิจารณาข้อผิดพลาดที่อธิบายด้วย qubit channel แบบสุ่ม ตัวอย่างเช่น อาจเป็น dephasing หรือ depolarizing channel, reset channel หรือ channel แปลก ๆ ที่ไม่เคยนึกถึงมาก่อน
ขั้นตอนแรกคือพิจารณา Kraus representation ใด ๆ ของ
นี่คือ qubit channel ดังนั้นแต่ละ เป็นเมทริกซ์ ซึ่งสามารถแสดงเป็น linear combination ของ Pauli matrices ได้
ซึ่งทำให้เราสามารถแสดงการกระทำของข้อผิดพลาด บน Qubit ที่เลือกในรูปของ Pauli matrices ได้ดังนี้
กล่าวโดยย่อ เราได้ขยาย Kraus matrices ทั้งหมดเป็น linear combinations ของ Pauli matrices แล้ว
ถ้าตอนนี้คำนวณและวัดซินโดรมข้อผิดพลาด และแก้ไขข้อผิดพลาดที่พบ เราจะได้สถานะที่คล้ายกับกรณีข้อผิดพลาดยูนิทารี:
โดยครั้งนี้
รายละเอียดค่อนข้างยุ่งยากกว่าและไม่แสดงไว้ที่นี่ ในเชิงแนวคิด แนวคิดเหมือนกับกรณียูนิทารีทุกประการ
การสรุปทั่วไป
การแยกประเภทของข้อผิดพลาดสรุปทั่วไปสู่ quantum error-correcting code อื่น ๆ รวมถึง code ที่สามารถตรวจจับและแก้ไขข้อผิดพลาดบน Qubit หลายตัวได้ ในกรณีเช่นนี้ ข้อผิดพลาดบน Qubit หลายตัวสามารถแสดงเป็น tensor products ของ Pauli matrices และซินโดรมต่าง ๆ ที่สอดคล้องจะระบุการแก้ไขด้วยการดำเนินการ Pauli ที่อาจดำเนินการบน Qubit หลายตัวแทนที่จะเป็นเพียง Qubit เดียว
อีกครั้ง เมื่อวัดซินโดรม ข้อผิดพลาดจะถูก project หรือ collapse อย่างมีประสิทธิภาพไปสู่ชุดความเป็นไปได้แบบ discrete ที่แทนด้วย tensor products ของ Pauli matrices และด้วยการแก้ไขข้อผิดพลาด Pauli เหล่านั้น เราสามารถกู้คืนสถานะที่เข้ารหัสเดิมได้ ในขณะเดียวกัน ความสุ่มที่เกิดขึ้นในกระบวนการจะถูกย้ายไปยัง Qubit ซินโดรม ซึ่งถูกทิ้งหรือรีเซ็ต ทำให้ลบความสุ่มที่เกิดขึ้นในกระบวนการนี้ออกจากระบบที่เก็บการเข้ารหัส