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

Circuit

ในวิทยาการคอมพิวเตอร์ circuit คือโมเดลการคำนวณที่ข้อมูลถูกพาผ่านสายโดยผ่านเครือข่ายของ gate ซึ่งแทนการดำเนินการบนข้อมูลที่พาอยู่ในสาย Quantum circuit คือโมเดลการคำนวณเฉพาะที่อิงกับแนวคิดทั่วไปนี้

แม้ว่าคำว่า "circuit" มักหมายถึงเส้นทางแบบวงกลม แต่เส้นทางแบบวงกลมนั้นไม่ได้รับอนุญาตในโมเดล circuit ของการคำนวณที่ศึกษากันโดยทั่วไป กล่าวคือ เราโดยปกติพิจารณา acyclic circuit เมื่อคิดถึง circuit ในฐานะโมเดลการคำนวณ Quantum circuit เป็นไปตามแบบแผนนี้ — quantum circuit แทนลำดับของการดำเนินการที่จำกัดซึ่งไม่สามารถมีวงวนย้อนกลับได้

Boolean circuit

ต่อไปนี้คือตัวอย่าง Boolean circuit (แบบคลาสสิก) ที่สายพาค่าไบนารีและ gate แทนการดำเนินการตรรกศาสตร์ Boolean:

Example of a Boolean circuit

การไหลของข้อมูลตามสายไปจากซ้ายไปขวา: สายทางด้านซ้ายที่มีป้ายกำกับ X\mathsf{X} และ Y\mathsf{Y} คือบิตอินพุต ซึ่งสามารถตั้งค่าเป็นค่าไบนารีใดก็ได้ที่เราต้องการ และสายทางด้านขวาคืออินพุต สายกลางรับค่าใดก็ตามที่กำหนดโดย gate ซึ่งถูกประเมินจากซ้ายไปขวา

Gate ประกอบด้วย AND gate (มีป้าย \wedge), OR gate (มีป้าย \vee), และ NOT gate (มีป้าย ¬\neg) ฟังก์ชันที่คำนวณโดย gate เหล่านี้น่าจะคุ้นเคยสำหรับผู้อ่านหลายคน แต่ที่นี่แสดงโดยตารางค่า:

a¬a0110abab000010100111abab000011101111\begin{array}{c} \begin{array}{c|c} a & \neg a\\ \hline 0 & 1\\ 1 & 0\\ \end{array}\\ \\ \\ \end{array} \qquad\quad \begin{array}{c|c} ab & a \wedge b\\ \hline 00 & 0\\ 01 & 0\\ 10 & 0\\ 11 & 1 \end{array} \qquad\quad \begin{array}{c|c} ab & a \vee b\\ \hline 00 & 0\\ 01 & 1\\ 10 & 1\\ 11 & 1 \end{array}

วงกลมเล็กๆ ทึบบนสายทางขวาของชื่อ X\mathsf{X} และ Y\mathsf{Y} แทนการดำเนินการ fan-out ซึ่งเพียงแค่สร้างสำเนาของค่าที่พาอยู่บนสายที่ปรากฏ ทำให้ค่านี้สามารถเป็นอินพุตให้กับหลาย gate ได้ การดำเนินการ fan-out ไม่ได้ถือว่าเป็น gate เสมอไปในบริบทคลาสสิก บางครั้งถือว่าเป็น "ฟรี" ในบางความหมาย อย่างไรก็ตาม เมื่อ Boolean circuit ถูกแปลงเป็น quantum circuit ที่เทียบเท่า เราจำเป็นต้องจัดประเภทการดำเนินการ fan-out อย่างชัดเจนในฐานะ gate เพื่อจัดการและคำนึงถึงมันอย่างถูกต้อง

ต่อไปนี้คือ circuit เดิมที่แสดงในสไตล์ที่พบบ่อยกว่าในวิศวกรรมไฟฟ้า ซึ่งใช้สัญลักษณ์ทั่วไปสำหรับ AND, OR, และ NOT gate:

Boolean circuit in a classic style

เราจะไม่ใช้สไตล์นี้หรือสัญลักษณ์ gate เหล่านี้ต่อไป แต่เราจะใช้สัญลักษณ์ต่างๆ เพื่อแทน gate ใน quantum circuit ซึ่งจะอธิบายเมื่อพบในระหว่างทาง

Circuit ในตัวอย่างนี้คำนวณ exclusive-OR (หรือ XOR ย่อ) ซึ่งแทนด้วยสัญลักษณ์ \oplus:

abab000011101110\begin{array}{c|c} ab & a \oplus b\\ \hline 00 & 0\\ 01 & 1\\ 10 & 1\\ 11 & 0 \end{array}

ในแผนภาพถัดไปเราพิจารณาแค่การเลือกอินพุตหนึ่งอย่าง: X=0\mathsf{X}=0 และ Y=1\mathsf{Y}=1 สายแต่ละเส้นมีป้ายกำกับด้วยค่าที่พาเพื่อให้ติดตามการดำเนินการได้ ค่าอินพุตในกรณีนี้คือ 11 ซึ่งเป็นค่าที่ถูกต้องสำหรับ XOR: 01=10 \oplus 1 = 1

Evaluating a Boolean circuit

การตั้งค่าอินพุตที่เป็นไปได้อีกสามแบบสามารถตรวจสอบได้ในทำนองเดียวกัน

Circuit ประเภทอื่นๆ

ดังที่แนะนำข้างต้น แนวคิดของ circuit ในวิทยาการคอมพิวเตอร์นั้นกว้างมาก ตัวอย่างเช่น บางครั้งมีการวิเคราะห์ circuit ที่สายพาค่าอื่นๆ นอกจาก 00 และ 11 รวมถึง gate ที่แทนการเลือกการดำเนินการต่างๆ

ใน arithmetic circuit เป็นต้น สายอาจพาค่าจำนวนเต็มในขณะที่ gate แทนการดำเนินการเลขคณิต เช่น การบวกและการคูณ รูปต่อไปนี้แสดง arithmetic circuit ที่รับค่าอินพุตตัวแปรสองค่า (xx และ yy) รวมถึงอินพุตที่สามที่ตั้งค่าเป็น 11 ค่าที่พาโดยสาย เป็นฟังก์ชันของค่า xx และ yy แสดงอยู่ในรูป

Example arithmetic circuit

เรายังสามารถพิจารณา circuit ที่รวมความสุ่ม เช่น circuit ที่ gate แทนการดำเนินการแบบความน่าจะเป็นได้

Quantum circuit

ในโมเดล quantum circuit สายแทน qubit และ gate แทนการดำเนินการบน qubit เหล่านี้ ตอนนี้เราจะมุ่งเน้นไปที่การดำเนินการที่เราพบมาจนถึงขณะนี้ คือ การดำเนินการ unitary และ การวัดฐานมาตรฐาน เมื่อเราเรียนรู้เกี่ยวกับการดำเนินการและการวัดเชิงควอนตัมประเภทอื่นๆ เราสามารถขยายโมเดลของเราตามนั้นได้

ต่อไปนี้คือตัวอย่างง่ายๆ ของ quantum circuit:

Simple quantum circuit

ใน circuit นี้ เรามี qubit เดียวชื่อ X\mathsf{X} ซึ่งแทนด้วยเส้นแนวนอน และลำดับของ gate ที่แทนการดำเนินการ unitary บน qubit นี้ เหมือนกับตัวอย่างข้างต้น การไหลของข้อมูลไปจากซ้ายไปขวา — ดังนั้นการดำเนินการแรกที่ทำคือ Hadamard การดำเนินการที่สองคือ SS การดำเนินการที่สามคือ Hadamard อีกครั้ง และการดำเนินการสุดท้ายคือ TT การใช้ circuit ทั้งหมดจึงใช้ composition ของการดำเนินการเหล่านี้ THSHT H S H กับ qubit X\mathsf{X}

บางครั้งเราอาจต้องการระบุสถานะอินพุตหรืออินพุตของ circuit อย่างชัดเจน ตัวอย่างเช่น ถ้าเราใช้การดำเนินการ THSHT H S H กับสถานะ 0\vert 0\rangle เราจะได้สถานะ 1+i20+121.\frac{1+i}{2}\vert 0\rangle + \frac{1}{\sqrt{2}} \vert 1 \rangle. สามารถระบุได้ดังนี้:

Simple quantum circuit evaluated

Quantum circuit มักเริ่มต้นด้วย qubit ทั้งหมดที่ถูก initialize เป็น 0\vert 0\rangle ดังที่เรามีในกรณีนี้ แต่ก็มีสถานการณ์ที่ qubit อินพุตถูกตั้งค่าเป็นสถานะที่แตกต่างกันในตอนแรก ต่อไปนี้เป็นอีกตัวอย่างของ quantum circuit คราวนี้มีสอง qubit:

Quantum circuit that creates an e-bit

ดังเสมอ Gate ที่มีป้าย HH หมายถึงการดำเนินการ Hadamard ในขณะที่ Gate ที่สองคือการดำเนินการ controlled-NOT: วงกลมเล็กๆ ทึบแทน qubit ควบคุม และวงกลมที่คล้ายสัญลักษณ์ \oplus แสดง qubit เป้าหมาย

ก่อนที่จะตรวจสอบ circuit นี้อย่างละเอียดและอธิบายว่ามันทำอะไร เป็นสิ่งจำเป็นที่เราต้องชี้แจงก่อนว่า qubit ถูกจัดลำดับอย่างไรใน quantum circuit สิ่งนี้เชื่อมโยงกับ convention ที่ Qiskit ใช้สำหรับการตั้งชื่อและจัดลำดับระบบที่กล่าวถึงสั้นๆ ในบทเรียนก่อนหน้า

Convention การจัดลำดับ qubit ของ Qiskit สำหรับ circuit

ใน Qiskit qubit บนสุด ใน circuit diagram มีดัชนี 00 และสอดคล้องกับตำแหน่ง ขวาสุด ใน tuple ของ qubit (หรือใน string, Cartesian product, หรือ tensor product ที่สอดคล้องกับ tuple นี้) qubit ที่สองจากบน มีดัชนี 11 และสอดคล้องกับตำแหน่ง ที่สองจากขวา ใน tuple และเช่นนั้นต่อไป qubit ล่างสุด ซึ่งมีดัชนีสูงสุด จึงสอดคล้องกับตำแหน่ง ซ้ายสุด ใน tuple โดยเฉพาะอย่างยิ่ง ชื่อเริ่มต้นของ Qiskit สำหรับ qubit ใน circuit แบบ nn-qubit แทนด้วย nn-tuple (qn1,,q0)(\mathsf{q_{n-1}},\ldots,\mathsf{q_{0}}) โดย q0\mathsf{q_{0}} อยู่บนสุดและ qn1\mathsf{q_{n-1}} อยู่ล่างสุดใน quantum circuit diagram

สังเกตว่านี่เป็นการกลับ convention ทั่วไปมากขึ้นสำหรับการจัดลำดับ qubit ใน circuit และเป็นแหล่งของความสับสนบ่อยครั้ง ข้อมูลเพิ่มเติมเกี่ยวกับ convention การจัดลำดับนี้สามารถพบได้ในหน้าเอกสาร Bit-ordering in Qiskit

แม้ว่าบางครั้งเราจะออกจากชื่อเริ่มต้นเฉพาะ q0,,qn1\mathsf{q_{0}},\ldots,\mathsf{q_{n-1}} ที่ Qiskit ใช้สำหรับ qubit เราจะยึดตาม convention การจัดลำดับที่อธิบายข้างต้นเสมอเมื่อตีความ circuit diagram ตลอดคอร์สนี้ ดังนั้น การตีความ circuit ข้างต้นของเราคือมันอธิบายการดำเนินการบนคู่ qubit (X,Y)(\mathsf{X},\mathsf{Y}) ถ้าอินพุตของ circuit เป็นสถานะควอนตัม ψϕ\vert\psi\rangle \otimes \vert\phi\rangle ตัวอย่างเช่น นั่นหมายความว่า qubit ล่าง X\mathsf{X} เริ่มต้นในสถานะ ψ\vert\psi\rangle และ qubit บน Y\mathsf{Y} เริ่มต้นในสถานะ ϕ\vert\phi\rangle

เพื่อทำความเข้าใจว่า circuit ทำอะไร เราสามารถดำเนินการจากซ้ายไปขวาผ่านการดำเนินการของมัน

  1. การดำเนินการแรกคือ Hadamard บน Y\mathsf{Y}:

    First operation e-bit creator

    เมื่อใช้ gate กับ qubit เดียวเช่นนี้ ไม่มีอะไรเกิดขึ้นกับ qubit อื่นๆ (ซึ่งเป็นอีก qubit หนึ่งในกรณีนี้) ไม่มีอะไรเกิดขึ้นเทียบเท่ากับการดำเนินการ identity สี่เหลี่ยมผืนผ้าประในรูปข้างต้นจึงแทนการดำเนินการนี้:

    IH=(121200121200001212001212). \mathbb{I}\otimes H = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 & 0\\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 & 0\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix}.

    สังเกตว่า identity matrix อยู่ทางซ้ายของผลคูณ tensor และ HH อยู่ทางขวา ซึ่งสอดคล้องกับ convention การจัดลำดับของ Qiskit

  2. การดำเนินการที่สองคือ controlled-NOT โดยมี Y\mathsf{Y} เป็นตัวควบคุมและ X\mathsf{X} เป็นเป้าหมาย:

    Second operation e-bit creator

    การกระทำของ controlled-NOT gate บนสถานะฐานมาตรฐานเป็นดังนี้:

    Controlled-NOT gate

    เมื่อเราจัดลำดับ qubit เป็น (X,Y)(\mathsf{X}, \mathsf{Y}) โดย X\mathsf{X} อยู่ล่างและ Y\mathsf{Y} อยู่บนของ circuit การแทนเมทริกซ์ของ controlled-NOT gate คือ:

    (1000000100100100). \begin{pmatrix} 1 & 0 & 0 & 0\\[2mm] 0 & 0 & 0 & 1\\[2mm] 0 & 0 & 1 & 0\\[2mm] 0 & 1 & 0 & 0 \end{pmatrix}.

การดำเนินการ unitary ที่สร้างโดย circuit ทั้งหมด ซึ่งเราจะตั้งชื่อว่า UU คือ composition ของการดำเนินการ:

U=(1000000100100100)(121200121200001212001212)=(121200001212001212121200).U = \begin{pmatrix} 1 & 0 & 0 & 0\\[2mm] 0 & 0 & 0 & 1\\[2mm] 0 & 0 & 1 & 0\\[2mm] 0 & 1 & 0 & 0 \end{pmatrix} \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 & 0\\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 & 0\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0 & 0\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}}\\[2mm] 0 & 0 & \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\[2mm] \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} & 0 & 0 \end{pmatrix}.

โดยเฉพาะอย่างยิ่ง เมื่อนึกถึง notation สำหรับสถานะ Bell

ϕ+=1200+1211ϕ=12001211ψ+=1201+1210ψ=12011210,\begin{aligned} \vert \phi^+ \rangle & = \frac{1}{\sqrt{2}} \vert 0 0 \rangle + \frac{1}{\sqrt{2}} \vert 1 1 \rangle \\[2mm] \vert \phi^- \rangle & = \frac{1}{\sqrt{2}} \vert 0 0 \rangle - \frac{1}{\sqrt{2}} \vert 1 1 \rangle \\[2mm] \vert \psi^+ \rangle & = \frac{1}{\sqrt{2}} \vert 0 1 \rangle + \frac{1}{\sqrt{2}} \vert 1 0 \rangle \\[2mm] \vert \psi^- \rangle & = \frac{1}{\sqrt{2}} \vert 0 1 \rangle - \frac{1}{\sqrt{2}} \vert 1 0 \rangle, \end{aligned}

เราพบว่า

U00=ϕ+U01=ϕU10=ψ+U11=ψ.\begin{aligned} U \vert 00\rangle & = \vert \phi^+\rangle\\ U \vert 01\rangle & = \vert \phi^-\rangle\\ U \vert 10\rangle & = \vert \psi^+\rangle\\ U \vert 11\rangle & = -\vert \psi^-\rangle. \end{aligned}

Circuit นี้จึงให้วิธีสร้างสถานะ ϕ+\vert\phi^+\rangle ถ้าเรารันมันบนสอง qubit ที่ initialize เป็น 00\vert 00\rangle โดยทั่วไป มันให้วิธีแปลงฐานมาตรฐานไปเป็น Bell basis (สังเกตว่า แม้ว่ามันจะไม่สำคัญสำหรับตัวอย่างนี้ ปัจจัย 1-1 ของเฟสในสถานะสุดท้าย ψ-\vert \psi^-\rangle สามารถขจัดได้ถ้าต้องการโดยการเพิ่มเล็กน้อยใน circuit ตัวอย่างเช่น เราสามารถเพิ่ม controlled-ZZ gate ที่จุดเริ่มต้น ซึ่งคล้ายกับ controlled-NOT gate ยกเว้นว่าการดำเนินการ ZZ ถูกใช้กับ qubit เป้าหมายแทนที่จะเป็นการดำเนินการ NOT เมื่อตัวควบคุมถูกตั้งเป็น 11 หรืออีกทางเลือกคือเพิ่ม swap gate ที่ท้าย ทั้งสองทางเลือกขจัดเครื่องหมายลบโดยไม่กระทบต่อการกระทำของ circuit บนสถานะฐานมาตรฐานอีกสามแบบ)

โดยทั่วไป quantum circuit สามารถมีสายควอนตัมจำนวนเท่าใดก็ได้ เรายังสามารถรวม สายบิตแบบคลาสสิก ด้วย ซึ่งแสดงด้วยเส้นคู่ เช่นในตัวอย่างนี้:

Example circuit with measurements

ที่นี่เรามี Hadamard gate และ controlled-NOT gate บนสอง qubit X\mathsf{X} และ Y\mathsf{Y} เหมือนกับตัวอย่างก่อนหน้า เรายังมีบิตแบบ คลาสสิก สองบิต A\mathsf{A} และ B\mathsf{B} รวมถึง measurement gate สองอัน Measurement gate แทนการวัดฐานมาตรฐาน: qubit ถูกเปลี่ยนเป็นสถานะหลังการวัด ในขณะที่ผลการวัดถูก เขียนทับ ลงบนบิตแบบคลาสสิกที่ลูกศรชี้ไป

มักสะดวกที่จะแสดงการวัดเป็น gate ที่รับ qubit เป็นอินพุตและให้บิตแบบคลาสสิกเป็นอินพุต (แทนที่จะให้ qubit ในสถานะหลังการวัดเป็นอินพุตและเขียนผลลัพธ์ลงในบิตแบบคลาสสิกแยกต่างหาก) ซึ่งหมายความว่า qubit ที่วัดแล้วถูกละทิ้งและสามารถถูกละเลยได้อย่างปลอดภัยหลังจากนั้น โดยสถานะของมันเปลี่ยนเป็น 0\vert 0\rangle หรือ 1\vert 1\rangle ขึ้นอยู่กับผลการวัด

ตัวอย่างเช่น circuit diagram ต่อไปนี้แทนกระบวนการเดิมกับในแผนภาพก่อนหน้า แต่ที่เราไม่สนใจ X\mathsf{X} และ Y\mathsf{Y} หลังจากวัดพวกมัน:

Example circuit with measurements compact

เมื่อคอร์สดำเนินต่อไป เราจะเห็นตัวอย่างเพิ่มเติมของ quantum circuit ซึ่งโดยปกติซับซ้อนกว่าตัวอย่างง่ายๆ ข้างต้น ต่อไปนี้คือตัวอย่างสัญลักษณ์ที่ใช้แทน gate ที่ปรากฏบ่อยใน circuit diagram:

  • Single-qubit gate โดยทั่วไปแสดงเป็นสี่เหลี่ยมพร้อมตัวอักษรระบุว่าเป็นการดำเนินการอะไร เช่นนี้:

    Single-qubit gates

    NOT gate (หรือ XX gate เทียบเท่า) ยังบางครั้งแสดงด้วยวงกลมรอบเครื่องหมายบวก:

    Not gate

  • Swap gate แสดงดังนี้:

    Swap gate

  • Controlled-gate หมายถึง gate ที่อธิบายการดำเนินการ controlled-unitary แสดงด้วยวงกลมทึบ (ระบุตัวควบคุม) เชื่อมต่อด้วยเส้นแนวตั้งกับการดำเนินการที่ถูกควบคุม ตัวอย่างเช่น controlled-NOT gate, controlled-controlled-NOT (หรือ Toffoli) gate, และ controlled-swap (Fredkin) gate แสดงดังนี้:

    Controlled gate

  • การดำเนินการ unitary ตามอำเภอใจบน qubit หลายตัวสามารถมองว่าเป็น gate แสดงด้วยสี่เหลี่ยมผืนผ้าที่มีป้ายชื่อของการดำเนินการ unitary ตัวอย่างเช่น ต่อไปนี้คือการแสดงการดำเนินการ unitary UU (ที่ไม่ระบุ) เป็น gate พร้อมกับเวอร์ชัน controlled ของ gate นี้:

    Arbitrary unitary gate together with controlled version

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