Circuit
ในวิทยาการคอมพิวเตอร์ circuit คือโมเดลการคำนวณที่ข้อมูลถูกพาผ่านสายโดยผ่านเครือข่ายของ gate ซึ่งแทนการดำเนินการบนข้อมูลที่พาอยู่ในสาย Quantum circuit คือโมเดลการคำนวณเฉพาะที่อิงกับแนวคิดทั่วไปนี้
แม้ว่า คำว่า "circuit" มักหมายถึงเส้นทางแบบวงกลม แต่เส้นทางแบบวงกลมนั้นไม่ได้รับอนุญาตในโมเดล circuit ของการคำนวณที่ศึกษากันโดยทั่วไป กล่าวคือ เราโดยปกติพิจารณา acyclic circuit เมื่อคิดถึง circuit ในฐานะโมเดลการคำนวณ Quantum circuit เป็นไปตามแบบแผนนี้ — quantum circuit แทนลำดับของการดำเนินการที่จำกัดซึ่งไม่สามารถมีวงวนย้อนกลับได้
Boolean circuit
ต่อไปนี้คือตัวอย่าง Boolean circuit (แบบคลาสสิก) ที่สายพาค่าไบนารีและ gate แทนการดำเนินการตรรกศาสตร์ Boolean:
การไหลของข้อมูลตามสายไปจากซ้ายไปขวา: สายทางด้านซ้ายที่มีป้ายกำกับ และ คือบิตอินพุต ซึ่งสามารถตั้งค่าเป็นค่าไบนารีใดก็ได้ที่เราต้องการ และสายทางด้านขวาคืออินพุต สายกลางรับค่าใดก็ตามที่กำหนดโดย gate ซึ่งถูกประเมินจากซ้ายไปขวา
Gate ประกอบด้วย AND gate (มีป้าย ), OR gate (มีป้าย ), และ NOT gate (มีป้าย ) ฟังก์ชันที่คำนวณโดย gate เหล่านี้น่าจะคุ้นเคยสำหรับผู้อ่านหลายคน แต่ที่นี่แสดงโดยตารางค่า:
วงกลมเล็กๆ ทึบบนสายทางขวาของชื่อ และ แทนการดำเนินการ fan-out ซึ่งเพียงแค่สร้างสำเนาของค่าที่พาอยู่บนสายที่ปรากฏ ทำให้ค่านี้สามารถเป็นอินพุตให้กับหลาย gate ได้ การดำเนินการ fan-out ไม่ได้ถือว่าเป็น gate เสมอไปในบริบทคลาสสิก บางครั้งถือว่าเป็น "ฟรี" ในบางความหมาย อย่างไรก็ตาม เมื่อ Boolean circuit ถูกแปลงเป็น quantum circuit ที่เทียบเท่า เราจำเป็นต้องจัดประเภทการดำเนินการ fan-out อย่างชัดเจนในฐานะ gate เพื่อจัดการและคำนึงถึงมันอย่างถูกต้อง
ต่อไปนี้คือ circuit เดิมที่แสดงในสไตล์ที่พบบ่อยกว่าในวิศวกรรมไฟฟ้า ซึ่งใ ช้สัญลักษณ์ทั่วไปสำหรับ AND, OR, และ NOT gate:
เราจะไม่ใช้สไตล์นี้หรือสัญลักษณ์ gate เหล่านี้ต่อไป แต่เราจะใช้สัญลักษณ์ต่างๆ เพื่อแทน gate ใน quantum circuit ซึ่งจะอธิบายเมื่อพบในระหว่างทาง
Circuit ในตัวอย่างนี้คำนวณ exclusive-OR (หรือ XOR ย่อ) ซึ่งแทนด้วยสัญลักษณ์ :
ในแผนภาพถัดไปเราพิจารณาแค่การเลือกอินพุตหนึ่งอย่าง: และ สายแต่ละเส้นมีป้ายกำกับด้วยค่าที่พาเพื่อให้ติดตามการดำเนินการได้ ค่าอินพุตในกรณีนี้คือ ซึ่งเป็นค่าที่ถูกต้องสำหรับ XOR:
การตั้งค่าอินพุตที่เป็นไปได้อีกสามแบบสามารถตรวจสอบได้ในทำนองเดียวกัน
Circuit ประเภทอื่นๆ
ดังที่แนะนำข้างต้น แนวคิดของ circuit ในวิทยาการคอมพิวเตอร์นั้นกว้างมาก ตัวอย่างเช่น บางครั้งมีการวิเคราะห์ circuit ที่สายพาค่าอื่นๆ นอกจาก และ รวมถึง gate ที่แทนการเลือกการดำเนินการต่างๆ
ใน arithmetic circuit เป็นต้น สายอาจพาค่าจำนวนเต็มในขณะที่ gate แทนการดำเนินการเลขคณิต เช่น การบวกและการคูณ รูปต่อไปนี้แสดง arithmetic circuit ที่รับค่าอินพุตตัวแปรสองค่า ( และ ) รวมถึงอินพุตที่สามที่ตั้งค่าเป็น ค่าที่พาโดยสาย เป็นฟังก์ชันของค่า และ แสดงอยู่ในรูป
เรายังสามารถพิจารณา circuit ที่รวมความสุ่ม เช่น circuit ที่ gate แทนการดำเนินการแบบความน่าจะเป็นได้
Quantum circuit
ในโมเดล quantum circuit สายแทน qubit และ gate แทนการดำเนินการบน qubit เหล่านี้ ตอนนี้เราจะมุ่งเน้นไปที่การดำเนินการที่เราพบมาจนถึงขณะนี้ คือ การดำเนินการ unitary และ การวัดฐานมาตรฐาน เมื่อเราเรียนรู้เกี่ยวกับการดำเนินการและการวัดเชิงควอนตัมประเภทอื่นๆ เราสามารถขยายโมเดลของเราตามนั้นได้
ต่อไปนี้คือตัวอย่างง่ายๆ ของ quantum circuit:
ใน circuit นี้ เรามี qubit เดียวชื่อ ซึ่งแทนด้วยเส้นแนวนอน และลำดับของ gate ที่แทนการดำเนินการ unitary บน qubit นี้ เหมือนกับตัวอย่างข้างต้น การไหลของข้อมูลไปจากซ้ายไปขวา — ดังนั้นการดำเนินการแรกที่ทำคือ Hadamard การดำเนินการที่สองคือ การดำเนินการที่สามคือ Hadamard อีกครั้ง และการดำเนินการสุดท้ายคือ การใช้ circuit ทั้งหมดจึงใช้ composition ของการดำเนินการเหล่านี้ กับ qubit
บางครั้งเราอาจต้องการระบุสถานะอินพุตหรืออินพุตของ circuit อย่างชัดเจน ตัวอย่างเช่น ถ้าเราใช้การดำเนินการ กับสถานะ เราจะได้สถานะ สามารถระบุได้ดังนี้:
Quantum circuit มักเริ่มต้นด้วย qubit ทั้งหมดที่ถูก initialize เป็น ดังที่เรามีในกรณีนี้ แต่ก็มีสถานการณ์ที่ qubit อินพุตถูกตั้งค่าเป็นสถานะที่แตกต่างกันในตอนแรก ต่อไปนี้เป็นอีกตัวอย่างของ quantum circuit คราวนี้มีสอง qubit:
ดังเสมอ Gate ที่มีป้าย หมายถึงการดำเนินการ Hadamard ในขณะที่ Gate ที่สองคือการดำเนินการ controlled-NOT: วงกลมเล็กๆ ทึบแทน qubit ควบคุม และวงกลมที่คล้ายสัญลักษณ์ แสดง qubit เป้าหมาย
ก่อนที่จะตรวจสอบ circuit นี้อย่างละเอียดและอธิบายว่ามันทำอะไร เป็นสิ่งจำเป็นที่เราต้องชี้แจงก่อนว่า qubit ถูกจัดลำดับอย่างไรใน quantum circuit สิ่งนี้เชื่อมโยงกับ convention ที่ Qiskit ใช้สำหรับการตั้งชื่อและจัดลำดับระบบที่กล่าวถึงสั้นๆ ในบทเรียนก่อนหน้า
ใน Qiskit qubit บนสุด ใน circuit diagram มีดัชนี และสอดคล้องกับตำแหน่ง ขวาสุด ใน tuple ของ qubit (หรือใน string, Cartesian product, หรือ tensor product ที่สอดคล้องกับ tuple นี้) qubit ที่สองจากบน มีดัชนี และสอดคล้องกับตำ แหน่ง ที่สองจากขวา ใน tuple และเช่นนั้นต่อไป qubit ล่างสุด ซึ่งมีดัชนีสูงสุด จึงสอดคล้องกับตำแหน่ง ซ้ายสุด ใน tuple โดยเฉพาะอย่างยิ่ง ชื่อเริ่มต้นของ Qiskit สำหรับ qubit ใน circuit แบบ -qubit แทนด้วย -tuple โดย อยู่บนสุดและ อยู่ล่างสุดใน quantum circuit diagram
สังเกตว่านี่เป็นการกลับ convention ทั่วไปมากขึ้นสำหรับการจัดลำดับ qubit ใน circuit และเป็นแหล่งของความ สับสนบ่อยครั้ง ข้อมูลเพิ่มเติมเกี่ยวกับ convention การจัดลำดับนี้สามารถพบได้ในหน้าเอกสาร Bit-ordering in Qiskit
แม้ว่าบางครั้งเราจะออกจากชื่อเริ่มต้นเฉพาะ ที่ Qiskit ใช้สำหรับ qubit เราจะยึดตาม convention การจัดลำดับที่อธิบายข้างต้นเสมอเมื่อตีความ circuit diagram ตลอดคอร์สนี้ ดังนั้น การตีความ circuit ข้างต้นของเราคือมันอธิบายการดำเนินการบนคู่ qubit ถ้าอินพุตของ circuit เป็นสถานะควอนตัม ตัวอย่างเช่น นั่นหมายความว่า qubit ล่าง เริ่มต้นในสถานะ และ qubit บ น เริ่มต้นในสถานะ
เพื่อทำความเข้าใจว่า circuit ทำอะไร เราสามารถดำเนินการจากซ้ายไปขวาผ่านการดำเนินการของมัน
-
การดำเนินการแรกคือ Hadamard บน :
เมื่อใช้ gate กับ qubit เดียวเช่นนี้ ไม่มีอะไรเกิดขึ้นกับ qubit อื่นๆ (ซึ่งเป็นอีก qubit หนึ่งในกรณีนี้) ไม่มีอะไรเกิดขึ้นเทียบเท่ากับการดำเนินการ identity สี่เหลี่ยมผืนผ้าประในรูปข้างต้นจึงแทนการดำเนินการนี้:
สังเกตว่า identity matrix อยู่ทางซ้ายของผลคูณ tensor และ อยู่ทางขวา ซึ่งสอดคล้องกับ convention การจัดลำดับของ Qiskit
-
การดำเนินการที่สองคือ controlled-NOT โดยมี เป็นตัวควบคุมและ เป็นเป้าหมาย:
การกระทำของ controlled-NOT gate บนสถานะฐานมาตรฐานเป็นดังนี้:
เมื่อเราจัดลำดับ qubit เป็น โดย อยู่ล่างและ อยู่บนของ circuit การแทนเมทริกซ์ของ controlled-NOT gate คือ:
การดำเนินการ unitary ที่สร้างโดย circuit ทั้งหมด ซึ่งเราจะตั้งชื่อว่า คือ composition ของการดำเนินการ:
โดยเฉพาะอย่างยิ่ง เมื่อนึกถึง notation สำหรับส ถานะ Bell
เราพบว่า
Circuit นี้จึงให้วิธีสร้างสถานะ ถ้าเรารันมันบนสอง qubit ที่ initialize เป็น โดยทั่วไป มันให้วิธีแปลงฐานมาตรฐานไปเป็น Bell basis (สังเกตว่า แม้ว่ามันจะไม่สำคัญสำหรับตัวอย่างนี้ ปัจจัย ของเฟสในสถานะสุดท้าย สามารถขจัดได้ถ้าต้องการโดยการเพิ่มเล็กน้อยใน circuit ตัวอย่างเช่น เราสามารถเพิ่ม controlled- gate ที่จุดเริ่มต้น ซึ่งคล้ายกับ controlled-NOT gate ยกเว้นว่าการดำเนินการ ถูกใช้กับ qubit เป้าหมายแทนที่จะเป็นการดำเนินการ NOT เมื่อตัวควบคุมถูกตั้งเป็น หรืออีกทางเลือกคือเพิ่ม swap gate ที่ท้าย ทั้งสองทางเลือกขจัดเครื่องหมายลบโดยไม่กระทบต่อการกระทำของ circuit บนสถานะฐานมาตรฐานอีกสามแบบ)
โดยทั่วไป quantum circuit สามารถมีสายควอนตัมจำนวนเท่าใดก็ได้ เรายังสามารถรวม สายบิตแบบคลาสสิก ด้วย ซึ่งแสดงด้วยเส้นคู่ เช่นในตัวอย่างนี้:
ที่นี่เรามี Hadamard gate และ controlled-NOT gate บนสอง qubit และ เหมือนกับตัวอย่างก่อนหน้า เรายังมีบิตแบบ คลาสสิก สองบิต และ รวมถึง measurement gate สองอัน Measurement gate แทนการวัดฐานมาตรฐาน: qubit ถูกเปลี่ยนเป็นสถานะหลังการวัด ในขณะที่ผลการวัดถูก เขียนทับ ลงบนบิตแบบคลาสสิกที่ลูกศรชี้ไป
มักสะดวกที่จะแสดงการวัดเป็น gate ที่รับ qubit เป็นอินพุตและให้บิตแบบคลาสสิกเป็นอินพุต (แทนที่จะให้ qubit ในสถานะหลังการวัดเป็นอินพุตและเขียนผลลัพธ์ลงในบิตแบบคลาสสิกแยกต่างหาก) ซึ่งหมายความว่า qubit ที่วัดแล้วถูกละทิ้งและสามารถถูกละเลยได้อย่างปลอดภัยหลังจากนั้น โดยสถานะของมันเปลี่ยนเป็น หรือ ขึ้นอยู่กับผลการวัด
ตัวอย่างเช่น circuit diagram ต่อไปนี้แทนกระบวนการเดิมกับในแผนภาพก่อนหน้า แต่ที่เราไม่สนใจ และ หลังจากวัดพวกมัน:
เมื่อคอร์สดำเนินต่อไป เราจะเห็นตัวอย่างเพิ่มเติมของ quantum circuit ซึ่งโดยปกติซับซ้อนกว่าตัวอย่างง่ายๆ ข้างต้น ต่อไปนี้คือตัวอย่างสัญลักษณ์ที่ใช้แทน gate ที่ปรากฏบ่อยใน circuit diagram:
-
Single-qubit gate โดยทั่วไปแสดงเป็นสี่เหลี่ยมพร้อมตัวอักษรระบุว่าเป็นการดำเนินการอะไร เช่นนี้:
NOT gate (หรือ gate เทียบเท่า) ยังบางครั้งแสดงด้วยวงกลมรอบเครื่องหมายบวก:
-
Swap gate แสดงดังนี้:
-
Controlled-gate หมายถึง gate ที่อธิบายการดำเนินการ controlled-unitary แสดงด้วยวงกลมทึบ (ระบุตัวควบคุม) เชื่อมต่อด้วยเส้นแนวตั้งกับการดำเนินการที่ถูกควบคุม ตัวอย่างเช่น controlled-NOT gate, controlled-controlled-NOT (หรือ Toffoli) gate, และ controlled-swap (Fredkin) gate แสดงดังนี้:
-
การดำเนินการ unitary ตามอำเภอใจบน qubit หลายตัวสามารถมองว่าเป็น gate แสดงด้วยสี่เหลี่ยมผืนผ้าที่มีป้ายชื่อของการดำเนินการ unitary ตัวอย่างเช่น ต่อไปนี้คือการแสดงการดำเนินการ unitary (ที่ไม่ระบุ) เป็น gate พร้อมกับเวอร์ชัน controlled ของ gate นี้: