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

IBM Quantum Composer

มันคืออะไร?

IBM Quantum® Composer เป็นเครื่องมือการเขียนโปรแกรม quantum แบบกราฟิกที่ให้คุณลากและวางการดำเนินการเพื่อสร้าง quantum circuit และรันบนฮาร์ดแวร์ quantum

มันทำอะไรได้บ้าง?

แสดงสถานะ Qubit

ดูว่าการเปลี่ยนแปลง Circuit ของคุณส่งผลต่อสถานะของ Qubit อย่างไร แสดงเป็น q-sphere แบบ interactive หรือ histogram ที่แสดงความน่าจะเป็นของการวัดหรือ statevector simulations

รันบนฮาร์ดแวร์ quantum

รัน Circuit ของคุณบนฮาร์ดแวร์ quantum จริงเพื่อเข้าใจผลกระทบของ device noise

สร้างโค้ดโดยอัตโนมัติ

แทนที่จะเขียนโค้ดด้วยมือ สร้างโค้ด OpenQASM หรือ Python โดยอัตโนมัติที่ทำงานเหมือนกับ Circuit ที่คุณสร้างด้วย Composer

ทัวร์ interface

IBM Quantum Composer มีชุดเครื่องมือที่ปรับแต่งได้เพื่อให้คุณสร้าง แสดงผล และรัน quantum circuit บน quantum processing units (QPUs) ใช้เมนู "More options" บนแต่ละหน้าต่างเพื่อเข้าถึงเครื่องมือและการดำเนินการเพิ่มเติม

หน้าต่าง IBM Quantum Composer

  1. Operations catalog - เหล่านี้คือ building blocks ของ quantum circuit ลากและวาง Gate และการดำเนินการอื่นๆ เหล่านี้ลงในตัวแก้ไข Circuit แบบกราฟิก Gate ประเภทต่างๆ จะถูกจัดกลุ่มตามสี ตัวอย่างเช่น classical gate เป็นสีน้ำเงินเข้ม phase gate เป็นสีน้ำเงินอ่อน และ non-unitary operations เป็นสีเทา

    เพื่อเรียนรู้เกี่ยวกับ gate และการดำเนินการที่มี คลิกขวาที่การดำเนินการแล้วเลือก Info เพื่ออ่านคำจำกัดความ

  2. Code editor - ใช้เมนู View เพื่อเปิดหรือปิด code editor ซึ่งให้คุณดูโค้ด OpenQASM หรือ Qiskit สำหรับ Circuit คุณสามารถแก้ไขโค้ด OpenQASM ได้ โค้ด Qiskit เป็น read-only

  3. Graphical circuit editor - นี่คือที่ที่คุณสร้าง Circuit ลาก Gate และการดำเนินการอื่นๆ ลงบน "wire" ของ Qubit แนวนอนที่ประกอบเป็น quantum register ของคุณ

    เพื่อลบ Gate ออกจาก wire ให้เลือก Gate แล้วคลิกไอคอน trash can

    เพื่อแก้ไขพารามิเตอร์และการตั้งค่าบน Gate ที่รองรับการแก้ไข ให้เลือก Gate บน graphical editor แล้วคลิก Edit

  4. Toolbar - เข้าถึงเครื่องมือที่ใช้บ่อยเพื่อ undo และ redo การดำเนินการ เปลี่ยน gate alignment และสลับไปยัง inspect mode ด้วย inspect mode คุณจะเห็นมุมมองทีละขั้นของสถานะ Qubit ขณะที่การคำนวณ Circuit ของคุณพัฒนาไป เรียนรู้เพิ่มเติมใน ตรวจสอบ Circuit ของคุณทีละขั้น

  5. Phase disks - phase ของ qubit state vector ในระนาบ complex ถูกกำหนดโดยเส้นที่ขยายจากจุดกึ่งกลางของแผนภาพไปยังขอบของ disk สีเทา (ซึ่งหมุนทวนเข็มนาฬิกาไปรอบจุดกึ่งกลาง)

    ใช้เมนู View เพื่อแสดงหรือซ่อน phase disks

  6. Visualizations - Visualizations แสดงลักษณะ Circuit ของคุณขณะที่คุณสร้าง พวกมันใช้ single-shot statevector simulator ซึ่งแตกต่างจาก QPU ที่ระบุใน "Run circuit" settings โปรดทราบว่า visualizations จะ ignore การดำเนินการวัดใดๆ ที่คุณเพิ่มเข้ามา ลงชื่อเข้าใช้และคลิก Run circuit เพื่อรับผลลัพธ์จาก Backend ที่ระบุแทน

    เรียนรู้เพิ่มเติมในส่วน Visualizations

สร้าง แก้ไข และตรวจสอบ quantum circuit

ดาวน์โหลดไฟล์ Circuit ของคุณก่อนออกจาก Composer

ถ้าต้องการทำงานกับ Circuit ต่อในภายหลัง ให้ดาวน์โหลดไฟล์ Circuit และเก็บไว้ในเครื่องก่อนออกจาก Composer session ปัจจุบัน ใช้ลิงก์ "Save file" ที่มุมบนขวา หรือไปที่เมนู File แล้วเลือก "Save file" เมื่อพร้อมจะทำงานกับ Circuit อีกครั้ง ไปที่เมนู File แล้วเลือก "Upload .qasm file" จากนั้นไปที่ไฟล์ Circuit บน local drive แล้วคลิก Open

1. เปิด IBM Quantum Composer

  1. (เลือกได้) ถ้ายังไม่ได้ลงชื่อเข้าใช้ IBM Quantum ให้เลือก Sign in ที่มุมบนขวา จากนั้นคุณสามารถลงชื่อเข้าใช้หรือ Create an IBM Cloud account ได้
หมายเหตุ

ถ้าไม่ลงชื่อเข้าใช้ visualizations จะแสดงผลลัพธ์จำลองสำหรับ Qubit สูงสุดสี่ตัวโดยอัตโนมัติ ถ้าต้องการรัน Circuit บน quantum computer หรือถ้าต้องการ visualize Circuit ที่มี Qubit มากกว่าสี่ตัว ต้องลงชื่อเข้าใช้

  1. เปิด IBM Quantum Composer โดยคลิกลิงก์บนการนำทางของ หน้า Learning workspace จะแสดง Circuit ว่างที่ยังไม่มีชื่อ คุณสามารถสร้าง Circuit ใหม่หรืออัปโหลดไฟล์ .qasm เพื่อทำงานกับ Circuit ที่สร้างไว้แล้ว

  2. ตั้งชื่อ Circuit โดยคลิกที่คำว่า Untitled circuit แล้วพิมพ์ชื่อสำหรับ Circuit ของคุณ คลิกเครื่องหมายถูกเพื่อบันทึกชื่อ

  3. (เลือกได้) ปรับแต่ง workspace ของคุณ:

    • ใช้เมนู View เพื่อเปลี่ยนจาก theme เริ่มต้นเป็น theme ขาวดำ คุณยังสามารถเลือก panel ที่จะรวมใน workspace ของคุณ จากนั้นใช้เมนูที่มุมขวาของ panel ใดๆ เพื่อเข้าถึงตัวเลือกการปรับแต่งเพิ่มเติม ตัวเลือกในการแสดงหรือซ่อน phase disks เลือก alignment ของ Qubit บน Circuit ของคุณ และ reset workspace เป็นค่าเริ่มต้นอยู่ในเมนู View ด้วย
    • สลับระหว่าง workspace theme มืดและสว่างที่มุมล่างขวาของ footer

เพื่อสร้าง Circuit คุณสามารถ ลากและวางการดำเนินการ หรือป้อน โค้ด OpenQASM ลงใน code editor

2. สร้าง Circuit ด้วย drag-and-drop

Operations catalog

ลากและวางการดำเนินการจาก operations catalog ลงบน quantum และ classical registers คลิกไอคอน search แล้วป้อนคำใน search bar เพื่อค้นหาการดำเนินการอย่างรวดเร็ว

ย่อและขยาย operations catalog โดยคลิกไอคอนที่มุมบนขวาของ operations panel คลิกไอคอนถัดจากมันเพื่อสลับระหว่างมุมมอง grid และ list ของ catalog

คลิกขวาที่ไอคอนการดำเนินการแล้วเลือก Info เพื่อดูคำจำกัดความของการดำเนินการพร้อม QASM reference

เพื่อ undo หรือ redo ใช้ลูกศรโค้งใน toolbar

Alignment

เลือก Freeform alignment เพื่อวางการดำเนินการที่ใดก็ได้บน Circuit สำหรับมุมมองที่กะทัดรัดกว่าของ Circuit ให้เลือก Left alignment เพื่อดูลำดับที่การดำเนินการจะรัน ให้เลือก Layers alignment ซึ่งจะใช้ left alignment และเพิ่ม column delineators ที่บ่งบอกลำดับการรัน จากซ้ายไปขวาและบนลงล่าง

เมื่อวางการดำเนินการบน Circuit แล้ว คุณสามารถลากและวางไปยังตำแหน่งใหม่ได้

คัดลอกและวาง

คลิกการดำเนินการแล้วใช้ไอคอนใน contextual menu เพื่อคัดลอกและวาง

เลือกหลายการดำเนินการ

คุณสามารถเลือกการดำเนินการหลายอย่างเพื่อคัดลอกและวาง ลากไปยังตำแหน่งใหม่ หรือจัดกลุ่มเป็น custom unitary operation ที่แสดงใน operations catalog ของคุณและทำหน้าที่เป็น Gate เดียว

เพื่อเลือกมากกว่าหนึ่งการดำเนินการ วางเคอร์เซอร์ไว้นอกการดำเนินการหนึ่ง จากนั้นคลิกและลากข้ามพื้นที่เพื่อเลือก Shift-click การดำเนินการแต่ละอย่างเพื่อเลือกหรือยกเลิกการเลือก เส้นประจะวางกรอบชุดการดำเนินการที่คุณกำลังเลือก และการดำเนินการแต่ละอย่างที่เป็นส่วนหนึ่งของการเลือกจริงๆ จะมีกรอบสีน้ำเงิน

ตัวอย่างเช่น ในภาพต่อไปนี้ Hadamard gate บน q1 และ CX gate ถูกเลือก Hadamard gate บน q0 ไม่ได้ถูกเลือก

ชุดการดำเนินการที่เลือก

เลือก Copy จาก contextual menu เพื่อคัดลอกกลุ่ม

เพื่อวางกลุ่มการดำเนินการ คลิกขวาใน Circuit แล้วเลือก Paste

สร้าง custom operation โดยใช้ฟีเจอร์ group

เพื่อจัดกลุ่มการดำเนินการหลายอย่างเข้าด้วยกันและบันทึกเป็น custom operation ให้เลือกการดำเนินการตามที่อธิบายไว้ข้างต้นก่อน จากนั้นเลือก Group จาก contextual menu คุณจะถูกถามให้ตั้งชื่อ custom operation หรือจะยอมรับชื่อเริ่มต้นก็ได้ คลิก OK และ custom operation จะแสดงเป็นกล่องเดียว ทั้งใน Circuit ของคุณและใน operations catalog

ตอนนี้คุณสามารถลากและวาง operation ใหม่ทั่ว Circuit ได้ โปรดทราบว่า operation จะถูกบันทึกไปยัง Circuit นี้แต่จะไม่ปรากฏใน operations catalog สำหรับ Circuit อื่น

คุณยังสามารถสร้าง custom operation โดยตรงใน OpenQASM code editor ได้ ดู สร้าง custom operation ใน OpenQASM สำหรับข้อมูลเพิ่มเติม

Ungroup custom หรือ predefined operation

เพื่อ ungroup Gate ภายใน custom หรือ predefined operation ให้คลิก operation บน Composer แล้วเลือก Ungroup จาก contextual menu ตอนนี้คุณสามารถย้ายการดำเนินการแต่ละอย่างได้อย่างอิสระ เมื่อคุณ ungroup operation แต่ละ element ใน group เดิมจะรันอย่างอิสระ ซึ่งอาจหมายความว่าพวกมันรันในลำดับที่แตกต่างจากตอนที่จัดกลุ่มรวมกัน

ขยายคำจำกัดความของ operation

เพื่อดูการดำเนินการที่ประกอบกันเป็น custom หรือ predefined operation โดยไม่ต้อง ungroup ให้คลิก Expand definition จาก contextual menu เพื่อดู defining gates คลิกไอคอนอีกครั้งเพื่อย่อคำจำกัดความ

เปลี่ยนชื่อหรือลบ custom operation

เพื่อเปลี่ยนชื่อหรือลบ custom operation ให้คลิกขวาที่ operation ใน operations catalog แล้วเลือก Rename หรือ Delete การลบ custom operation จาก operations catalog จะลบทุก instance ของมันบน Circuit ด้วย

การลบ custom operation จาก Circuit เองไม่ได้ลบมันจาก operations catalog คุณสามารถลบ custom operation จาก catalog ได้โดยใช้คลิกขวาแล้วเลือก Delete เท่านั้น

เพิ่มหรือลบ register

เพื่อเพิ่มหรือลบ quantum หรือ classical registers ให้คลิก Edit → Manage registers คุณสามารถเพิ่มหรือลดจำนวน Qubit หรือ bit ใน Circuit ของคุณและเปลี่ยนชื่อ register ได้ คลิก Ok เพื่อใช้การเปลี่ยนแปลง คุณยังสามารถคลิกชื่อ register (เช่น q[0]) แล้วใช้ตัวเลือกใน contextual menu เพื่อเพิ่มหรือลบ register หรือ Qubit ได้อย่างรวดเร็ว

เพิ่ม conditional

เพื่อเพิ่ม conditional ให้กับ Gate ให้ลาก operation if ไปยัง Gate แล้วตั้งค่าพารามิเตอร์ใน Edit operation panel ที่เปิดขึ้นโดยอัตโนมัติ คุณยังสามารถดับเบิลคลิก Gate เพื่อเข้าถึง Edit operation panel และตั้งค่าพารามิเตอร์ conditional ด้วยวิธีนั้น

เพิ่ม control modifier

control modifier ให้ Gate ที่การดำเนินการเดิมขึ้นอยู่กับสถานะของ control qubit สำหรับรายละเอียดเพิ่มเติม คลิกขวาที่สัญลักษณ์ control modifier ใน operations catalog จากนั้นคลิก Info

ลาก control modifier ไปยัง Gate เพื่อเพิ่ม control ให้กับมัน จุดจะปรากฏบน control qubit และเส้นเชื่อมไปยัง target qubit เพื่อแก้ไขว่า Qubit ไหนเป็น control หรือ target ให้คลิก Gate แล้วเลือกไอคอน Edit operation (หรือดับเบิลคลิก Gate) เพื่อเปิด Edit operation panel จากนั้นระบุพารามิเตอร์ของคุณ จาก Edit operation panel คุณยังสามารถลบ control ออกจาก Qubit โดยคลิก x ถัดจากชื่อ Qubit ได้

แสดงผล phase disks ตลอด Circuit

เพื่อ visualize สถานะของ Qubit ทั้งหมด ณ จุดใดก็ได้ใน Circuit ของคุณ ให้ลากไอคอน phase disk จาก operations catalog แล้ววางที่ใดก็ได้ใน Circuit คอลัมน์ของ barrier operations และคอลัมน์ของ phase disks จะถูกเพิ่ม (barrier operation และ phase disk หนึ่งอันต่อ Qubit) วาง cursor บน phase disk แต่ละอันเพื่ออ่านสถานะของ Qubit ณ จุดนั้นใน Circuit โปรดทราบว่าการเพิ่ม phase disks ไม่ได้เปลี่ยนแปลง Circuit ของคุณ พวกมันเป็นเพียงเครื่องมือ visualization

อ่านเพิ่มเติมเกี่ยวกับ phase disk visualization ที่นี่

Export ภาพ Circuit

เพื่อ export ภาพของ Circuit ของคุณ ให้เลือก File → Export circuit image หน้าต่าง Export options จะเปิดขึ้น ที่นั่นคุณสามารถเลือก theme (light, dark, white on black หรือ black on white), format (.svg หรือ .png) และว่าต้องการใช้ line wrap หรือไม่ หลังจากเลือกตัวเลือกแล้ว คลิก Export

3. สร้าง Circuit ด้วยโค้ด OpenQASM

หมายเหตุ

IBM Quantum Composer ปัจจุบันรองรับ OpenQASM 2.0

  • เพื่อเปิด code editor คลิก View → Panels → Code Editor
  • ดู Composer operations glossary สำหรับ OpenQASM references ไปยัง gate และการดำเนินการอื่นๆ
  • คุณสามารถกำหนด custom operations ของคุณเองได้ ดู สร้าง custom operation ใน OpenQASM
  • สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ภาษา OpenQASM รวมถึงตัวอย่างโค้ด ดู guide Introduction to OpenQASM หรืออ่านงานวิจัยต้นฉบับ Open Quantum Assembly Language ตาราง ของ OpenQASM language statements จากงานวิจัยถูกนำมาแสดงด้านล่าง OpenQASM grammar สามารถพบได้ใน Appendix A ของงานวิจัย

Statementคำอธิบายตัวอย่าง
OPENQASM 2.0;ระบุไฟล์ในรูปแบบ OpenQASM (ดู [a])OPENQASM 2.0;
qreg name[size];ประกาศ register ของ Qubit ที่มีชื่อqreg q[5];
creg name[size];ประกาศ register ของ bit ที่มีชื่อcreg c[5];
include "filename";เปิดและ parse source file อื่นinclude "qelib1.inc";
gate name(params) qargsประกาศ unitary gate(ดูข้อความของงานวิจัย)
opaque name(params) qargs;ประกาศ opaque gate(ดูข้อความของงานวิจัย)
// comment textComment บรรทัดของข้อความ// oops!
U(theta,phi,lambda) qubit|qreg;ใช้ built-in single-qubit gate(s) (ดู [b])U(pi/2,2*pi/3,0) q[0];
CX qubit|qreg,qubit|qreg;ใช้ built-in CNOT gate(s)CX q[0],q[1];
measure qubit|qreg -> bit|creg;วัดใน basis ZZmeasure q -> c;
reset qubit|qreg;เตรียม Qubit ใน 0\vert 0\ranglereset q[0];
gatename(params) qargs;ใช้ user-defined unitary gatecrz(pi/2) q[1],q[0];
if(creg==int) qop;ใช้ quantum operation แบบมีเงื่อนไขif(c==5) CX q[0],q[1];
barrier qargs;ป้องกันการเปลี่ยนแปลงข้าม source line นี้barrier q[0],q[1];

[a] สิ่งนี้ต้องปรากฏเป็นบรรทัดแรกที่ไม่ใช่ comment ของไฟล์

[b] พารามิเตอร์ theta, phi และ lambda กำหนดโดย parameter expressions สำหรับข้อมูลเพิ่มเติม ดู หน้า 5 ของงานวิจัย และ Appendix A

สร้าง custom operation ใน OpenQASM

คุณสามารถกำหนด unitary operations ใหม่ใน code editor ได้ (ดูภาพด้านล่างสำหรับตัวอย่าง) การดำเนินการจะถูกใช้โดยใช้ statement name(params) qargs; เหมือนกับ built-in operations วงเล็บเป็น optional ถ้าไม่มีพารามิเตอร์

เพื่อกำหนด custom operation ให้ป้อนใน OpenQASM code editor โดยใช้รูปแบบนี้: gatename(params) qargs; ถ้าคุณคลิก +Add ใน operations list คุณจะถูกถามให้ป้อนชื่อสำหรับ custom operation ของคุณ ซึ่งจะสร้างใน code editor ได้

เมื่อกำหนด custom operation แล้ว ลากมันลงบน graphical editor แล้วใช้ edit icon เพื่อปรับพารามิเตอร์ให้ละเอียด

ตัวอย่าง custom operation
Gate ที่จะรวมใน custom operation:Gates in the custom operation
โค้ดสำหรับ operation ใหม่:Customized new operation
operation ใหม่ใน graphical editor:New operation

4. ตรวจสอบ Circuit ของคุณทีละขั้น

Inspect mode ทำให้การทำงานภายในของ Circuit ที่คุณสร้างเข้าใจง่ายขึ้น มันจะ step ผ่าน simulation ของ Circuit ของคุณทีละ layer เพื่อให้คุณเห็นสถานะของ Qubit ขณะที่การคำนวณพัฒนาไป

  • ในเมนู View เลือก panel สำหรับ visualizations ที่คุณต้องการใช้

  • คลิก toggle Inspect ใน toolbar โปรดทราบว่าเมื่อเปิด Inspect mode แล้ว คุณไม่สามารถเพิ่มการดำเนินการเพิ่มเติมได้จนกว่าจะปิดอีกครั้ง

  • ถ้าสร้าง Circuit ด้วย Freeform alignment เปิดอยู่ โปรดทราบว่า Inspect mode จะเปิด Left alignment โดยอัตโนมัติ

  • เพื่อ step ผ่าน visualizations ของ component ของ Circuit ทีละขั้น ใช้ปุ่ม forward และ rewind

การควบคุมเพื่อก้า�วไปข้างหน้าและข้างหลัง และเพื่อข้ามไปยังจุดเริ่มต้นหรือจุดสิ้นสุดของ Circuit

  • เพื่อตรวจสอบเฉพาะบางการดำเนินการ คลิกการดำเนินการที่ต้องการตรวจสอบ และ colored overlay จะปรากฏเหนือแต่ละอันเพื่อระบุว่าจะรวมเมื่อรันใน Inspect mode เพื่อยกเลิกการเลือกการดำเนินการ คลิกมันอีกครั้ง และ overlay จะหายไป

  • เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการตีความ visualizations ดูหัวข้อ Visualizations

  • เพื่อออกจาก Inspect mode และกลับไปแก้ไข Circuit คลิก toggle Inspect ใน toolbar

ความสุ่มใน simulator

simulator สร้างความสุ่มโดยการสร้างผลลัพธ์ตาม seed seed คือค่าเริ่มต้นที่ถูกนำเข้าใน algorithm ที่สร้าง pseudorandom numbers คุณสามารถดู seed number ได้โดยเลือก "Visualizations seed" จากเมนู Edit คุณยังสามารถตั้งค่า seed ด้วยตนเองโดยเปลี่ยนค่าในกล่อง

รัน Circuit และดูผลลัพธ์

ทำตามขั้นตอนด้านล่างเพื่อรัน quantum circuit บน QPUs และดูผลลัพธ์

เลือกการตั้งค่า job

คลิก Run circuit ที่มุมบนขวา ในหน้าต่างที่เปิดขึ้น ให้เลือก QPU ที่มี คุณยังสามารถเลือก instance ซึ่งเชื่อมโยงกับ plan (เช่น Open, Flex หรือ Premium Plans) instance ที่คุณเลือกจะส่งผลต่อ QPU ที่มีให้คุณ คลิกลิงก์ "View details" ในตาราง QPU เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับแต่ละ QPU

ต่อไป คุณสามารถตั้งค่าจำนวน shots (การรัน) ของ Circuit ที่ Backend จะดำเนินการ

คุณสามารถตั้งชื่อ job และเพิ่ม tags ใน panel นี้ได้เช่นกัน สิ่งนี้จะไม่เปลี่ยนชื่อของ Circuit tag "Composer" ที่ถูก pre-populated ทำให้กรอง Workloads table ตาม Composer jobs ได้ง่ายขึ้น คุณสามารถลบ tag นี้ได้

หน้าต่างที่แสดงตัวเลือก job

หมายเหตุ

เมื่อรัน Circuit มันจะถูกส่งไปยัง QPU ที่ว่างน้อยที่สุดโดยอัตโนมัติ เว้นแต่คุณจะระบุ QPU ใน Run settings ถ้ารัน Circuit เดิมอีกครั้ง หน้าต่างการเลือก QPU จะ default ไปยังตัวเลือกก่อนหน้าของคุณ

คลิก "Run on (QPU name)"

คุณสามารถดูความคืบหน้าของ job โดยคลิกปุ่ม "View jobs" ที่มุมบนขวา ซึ่งจะเปิดหน้า Workloads ใน IBM Quantum Platform

ดูผลลัพธ์

เมื่อ job เสร็จสมบูรณ์ รายละเอียดจะถูกอัปเดตใน Workloads table ใน IBM Quantum Platform

หน้า Jobs results แสดงรายละเอียดการรัน แผนภาพของ Circuit ต้นฉบับและ transpiled Circuit histogram ของผลลัพธ์ และ tab OpenQASM และ Qiskit เพื่อดูทั้ง Circuit ต้นฉบับและ transpiled ใน OpenQASM หรือ Qiskit

คุณสามารถดาวน์โหลด Circuit และ histogram โดยคลิกเมนูที่มุมบนขวาของแต่ละแผนภาพ จากนั้นเลือก format สำหรับการดาวน์โหลด (PNG, PDF หรือ SVG นอกจากนี้คุณสามารถ export histogram เป็นไฟล์ CSV ได้) คุณสามารถเปิด Circuit ของ OpenQASM โดยตรงใน Composer ได้

Visualizations

live visualizations ใน IBM Quantum Composer แสดงมุมมองต่างๆ ว่า quantum circuit ส่งผลต่อสถานะของชุด Qubit อย่างไร แต่ละประเภทของ live visualization อธิบายโดยละเอียดด้านล่าง

ความสุ่มใน simulator

live visualizations มาจาก single-shot statevector simulator ซึ่งแตกต่างจาก QPU ที่ระบุใน Run settings ซึ่งมีหลาย shots ได้ simulator สร้างความสุ่มโดยการสร้างผลลัพธ์ตาม seed seed คือค่าเริ่มต้นที่ถูกนำเข้าใน algorithm ที่สร้าง pseudorandom numbers คุณสามารถดู seed number ได้โดยเลือก "Visualizations seed" จากเมนู Edit คุณยังสามารถตั้งค่า seed ด้วยตนเองโดยเปลี่ยนค่าในกล่อง

ดู visualizations

live visualizations จะแสดงในหน้าต่างที่ด้านล่างของ Composer workspace (ยกเว้น phase disk ซึ่งปรากฏที่ปลายของ qubit wire แต่ละอัน) คุณสามารถเลือก statevector, probabilities และ q-sphere visualizations ในรูปแบบผสมใดก็ได้เพื่อแสดงที่ด้านล่างของ workspace เลือกหรือยกเลิกการเลือก visualizations ในเมนู View

ดาวน์โหลด visualizations

ดาวน์โหลด visualization หนึ่งอันที่ด้านล่างของ Composer workspace โดยคลิกเมนู "More options" ในหน้าต่าง visualization คุณสามารถดาวน์โหลด visualizations เป็น SVG, PNG หรือ CSV ของข้อมูลพื้นฐาน คุณยังสามารถดาวน์โหลดภาพ visualization ของ measurement probabilities และ statevector histograms เป็น PDF ได้

Phase disk

สถานะ single-qubit สามารถแสดงเป็น

ψ=1p0+ejφp1,\begin{split}\vert\psi\rangle = \sqrt{1-p}\vert0\rangle + e^{j\varphi} \sqrt{p} \vert1\rangle,\end{split}

โดยที่ pp คือความน่าจะเป็นที่ Qubit อยู่ในสถานะ 1|1\rangle และ φ\varphi คือ quantum phase pp มีความคล้ายคลึงอย่างมากกับ classical probabilistic bit สำหรับ p=0p=0 Qubit อยู่ในสถานะ 0|0\rangle สำหรับ p=1p=1 Qubit อยู่ในสถานะ 1|1\rangle และสำหรับ p=1/2p=1/2 Qubit เป็นส่วนผสม 50/50 เรียกสิ่งนี้ว่า superposition เนื่องจาก ไม่เหมือน classical bit ส่วนผสมนี้สามารถมี quantum phase ได้ phase disk แสดง visualize สถานะนี้

phase disk ที่ปลายของแต่ละ Qubit ใน IBM Quantum Composer ให้สถานะเฉพาะของแต่ละ Qubit ที่ปลายการคำนวณ component ของ phase disk อธิบายด้านล่าง

ความน่าจะเป็นที่ Qubit อยู่ใน 1|1\rangle state

ความน่าจะเป็นที่ Qubit อยู่ในสถานะ 1|1\rangle แสดงด้วย disk fill สีน้ำเงิน

ความน่าจะเป็นที่ Qubit อยู่ใน state 1

Quantum phase

quantum phase ของ qubit state กำหนดโดยเส้นที่ขยายจากจุดกึ่งกลางของแผนภาพไปยังขอบของ disk สีเทา (ซึ่งหมุนทวนเข็มนาฬิกาไปรอบจุดกึ่งกลาง)

phase ของ local qubit state

ตัวอย่าง: phase disks สำหรับ Qubit สองตัวที่แตกต่างกัน

ตัวอย่าง phase disk

ตัวอย่างสองอย่างของ phase disk visualization ตัวอย่างแรกคือสถานะ 1|1\rangle และตัวอย่างที่สองแสดงสถานะ (01)/2(|0\rangle-|1\rangle)/\sqrt{2} ที่มี relative phase ไม่เป็นศูนย์

การเชื่อมต่อกับ Bloch sphere

phase disk ซึ่งมีข้อมูลทั้งหมดใน Bloch sphere เป็น two-dimensional representation ของ Qubit เพื่อแปลงเป็น Bloch sphere representation: x=2p(1p)Re[ejφ]x=2\sqrt{p(1-p)}\mathrm{Re}[e^{j\varphi} ], y=2p(1p)Im[ejφ]y=2\sqrt{p(1-p)}\mathrm{Im}[e^{j\varphi} ] และ z=12pz=1-2p

สถานะ N-Qubit: สูงสุด 15 Qubit

N-qubit quantum state มีรูปแบบ

ψ=1p0...0+k=12N1ejφkpkk,\begin{split}\vert\psi\rangle = \sqrt{1-p}\vert0...0\rangle + \sum_{k=1}^{2^N-1}e^{j\varphi_k} \sqrt{p_k} \vert k\rangle,\end{split}

โดยที่ pkp_k คือความน่าจะเป็นที่ Qubit อยู่ในสถานะ k|k\rangle ที่มี quantum phase φk\varphi_k เทียบกับสถานะ 0...0|0...0\rangle p=k0pkp=\sum_{k\neq0}p_k คือความน่าจะเป็นที่ Qubit ไม่อยู่ใน ground state 0...0|0...0\rangle ที่นี่เห็นได้ง่ายว่าสำหรับ N-qubit quantum state มี 2N12^N-1 ความน่าจะเป็นและ 2N12^N-1 phases phase disk ล้มเหลวในการแสดงสถานะนี้ เนื่องจาก N-qubit phase disks จะมีเพียง NN ความน่าจะเป็นและ NN phases สิ่งนี้เป็นเพราะสถานะส่วนใหญ่มีการ entangle และไม่สามารถแยกเป็น independent single-qubit quantum states ได้ เพื่อแสดงว่าข้อมูลทั้งหมดไม่ได้อยู่ใน visualization นี้ เราจึงแนะนำ reduced purity เป็น component ใน phase disk

Reduced purity ของ qubit state

รัศมีของ ring สีดำแสดง reduced purity ของ qubit state ซึ่งสำหรับ Qubit jj ใน N-qubit state ψ|\psi\rangle กำหนดโดย Tr[Trij[ψψ]2]\mathrm{Tr}\left[\mathrm{Tr}_{i\neq j}[\left|\psi\rangle\langle\psi\right|\right]^{2}] reduced purity สำหรับ single qubit อยู่ในช่วง [0.5,1][0.5, 1] ค่าหนึ่งบ่งบอกว่า Qubit ไม่ได้ entangle กับ party อื่นใด ในทางตรงกันข้าม reduced purity ที่ 0.50.5 แสดงว่า Qubit ถูกทิ้งอยู่ใน completely mixed state และมีระดับ entanglement เหนือ Qubit ที่เหลืออีก N1N-1 ตัว และอาจรวมถึง environment ด้วย

purity ของ qubit state

มุมมอง Probabilities

ขีดจำกัด 8 Qubit

มุมมองนี้แสดง visualize ความน่าจะเป็นของ quantum state เป็น bar graph แกนนอนมีป้ายกำกับ computational basis states แกนตั้งวัดความน่าจะเป็นในรูปเปอร์เซ็นต์ ในมุมมองนี้ quantum phases ไม่ได้ถูกแสดง และจึงเป็น representation ที่ไม่สมบูรณ์ อย่างไรก็ตาม มันมีประโยชน์ในการทำนายผลลัพธ์ถ้า Qubit แต่ละตัวถูกวัดและค่าถูกเก็บใน classical bit ของตัวเอง

พิจารณา quantum circuit ต่อไปนี้และมุมมอง probabilities ของมัน:

quantum circuit

มุมมอง measurement probabilities

Circuit ทำให้ Qubit สองตัวอยู่ในสถานะ ψ=(00+01+1011)/2.|\psi\rangle = (|00\rangle + |01\rangle+ |10\rangle-|11\rangle) / 2. computational basis states คือ 00,10,01|00\rangle, |10\rangle, |01\rangle และ 11.|11\rangle. ความน่าจะเป็นสำหรับแต่ละ computational state คือ 1/4

มุมมอง Q-sphere

ขีดจำกัด 5 Qubit

q-sphere แสดง state ของระบบ Qubit หนึ่งตัวหรือมากกว่าโดยการเชื่อมโยง computational basis state แต่ละอันกับจุดบนพื้นผิวของทรงกลม node จะมองเห็นได้ที่แต่ละจุด รัศมีของ node แต่ละอันเป็นสัดส่วนกับความน่าจะเป็น (pkp_k) ของ basis state ของมัน ในขณะที่สีของ node บ่งบอก quantum phase (φk\varphi_k)

node ถูกวางบน q-sphere เพื่อให้ basis state ที่มีศูนย์ทั้งหมด (เช่น 000)|000\rangle) อยู่ที่ขั้วโลกเหนือของมัน และ basis state ที่มีหนึ่งทั้งหมด (เช่น 111|111\rangle) อยู่ที่ขั้วโลกใต้ Basis states ที่มีจำนวนศูนย์ (หรือหนึ่ง) เท่ากันจะอยู่บน latitude ร่วมของ q-sphere (เช่น 001,010,100|001\rangle, |010\rangle, |100\rangle) เริ่มต้นจากขั้วโลกเหนือของ q-sphere และเดินทางไปทางใต้ latitude ที่ต่อเนื่องกันแต่ละอันมี basis states ที่มีจำนวนหนึ่งมากกว่า latitude ของ basis state ถูกกำหนดโดย Hamming distance จาก zero state q-sphere มีข้อมูลสมบูรณ์เกี่ยวกับ quantum state ใน representation ที่กะทัดรัด

พิจารณา quantum circuit ต่อไปนี้และ q-sphere ของมัน ซึ่งแสดง state ที่ Circuit สร้าง:

quantum circuit

มุมมอง q-sphere

คุณสามารถเลือก ค้าง และลากเพื่อหมุน q-sphere เพื่อคืน q-sphere ไปยัง orientation เริ่มต้น ให้เลือก ปุ่ม rewind-arrow ที่มุมบนขวาของ q-sphere

Bloch sphere กับ q-sphere ต่างกันอย่างไร?

สำคัญที่จะเน้นว่า q-sphere ไม่ใช่ สิ่งเดียวกับ Bloch sphere แม้แต่สำหรับ single qubit จริงๆ แล้ว เช่นเดียวกับ phase disk Bloch sphere ให้มุมมอง local ของ quantum state ที่แต่ละ Qubit ถูกมองแยกกัน เมื่อพยายามเข้าใจว่า register ของ Qubit (multi-qubit states) ทำงานอย่างไรเมื่อใช้ quantum circuit จะมีประโยชน์มากกว่าที่จะมองมุมมอง global และดู quantum state ทั้งหมด q-sphere ให้ visual representation ของ quantum state และด้วยเหตุนี้ มุมมอง global นี้ ดังนั้นเมื่อสำรวจ quantum applications และ algorithms บน Qubit จำนวนน้อย q-sphere ควรเป็นวิธี visualization หลัก

มุมมอง Statevector

ขีดจำกัด 6 Qubit

มักจะเรียก pkeiφk\sqrt{p_k}e^{i\varphi_k} ว่า quantum amplitude มุมมองนี้แสดง visualize quantum amplitudes เป็น bar graph แกนนอนมีป้ายกำกับ computational basis states แกนตั้งวัดขนาดของ amplitudes (pk\sqrt{p_k}) ที่เชื่อมโยงกับ computational basis state แต่ละอัน สีของแต่ละแท่งแสดง quantum phase (φk{\varphi_k})

พิจารณา quantum circuit ต่อไปนี้และมุมมอง statevector ของมัน:

quantum circuit

มุมมอง statevector

Circuit ทำให้ Qubit สองตัวอยู่ในสถานะ ψ=(00+01+1011)/2|\psi\rangle = (|00\rangle + |01\rangle+ |10\rangle-|11\rangle) / 2 computational basis states คือ 00|00\rangle, 10|10\rangle, 01|01\rangle และ 11|11\rangle ขนาดของ amplitudes คือ 1/21/2 และ quantum phases เทียบกับ ground state คือ 00 สำหรับ 01|01\rangle และ 10|10\rangle และ π\pi สำหรับ 11|11\rangle

Composer operations glossary

หน้านี้เป็น reference ที่กำหนด classical และ quantum operations ต่างๆ ที่คุณสามารถใช้เพื่อจัดการ Qubit ใน quantum circuit quantum operations รวมถึง quantum gate เช่น Hadamard gate รวมถึงการดำเนินการที่ไม่ใช่ quantum gate เช่น measurement operation

แต่ละรายการด้านล่างให้รายละเอียดและ OpenQASM reference สำหรับแต่ละ operation ดูหัวข้อ สร้าง Circuit ด้วยโค้ด OpenQASM สำหรับข้อมูลเพิ่มเติม

ภาพ q-sphere ในแต่ละรายการ Gate ด้านล่างแสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}|i\rangle โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate ดูหัวข้อ q-sphere สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ visualization นี้

คุณสามารถกำหนด custom operation เพื่อใช้ใน IBM Quantum Composer สำหรับคำแนะนำ ดูหัวข้อ สร้าง custom operation ใน OpenQASM

สี Gate

สี Gate จะแตกต่างกันเล็กน้อยใน light และ dark theme สีจาก light theme แสดงที่นี่

คลิก quantum operation ด้านล่างเพื่อดูคำจำกัดความ

Classical gates

NOT Gate

NOT gate หรือที่เรียกว่า Pauli X gate จะ flip สถานะ 0\left|0\right\rangle เป็น 1\left|1\right\rangle และในทางกลับกัน NOT gate เทียบเท่ากับ RX สำหรับ angle π\pi หรือกับ 'HZH'

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
x_gatex q[0];image19q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

CNOT Gate

controlled-NOT gate หรือที่เรียกว่า controlled-x (CX) gate ทำงานบน Qubit คู่หนึ่ง โดยมีหนึ่งทำหน้าที่เป็น 'control' และอีกหนึ่งเป็น 'target' มันดำเนินการ NOT บน target เมื่อใดก็ตามที่ control อยู่ในสถานะ 1\left|1\right\rangle ถ้า control qubit อยู่ใน superposition Gate นี้จะสร้าง entanglement

unitary circuit ทั้งหมดสามารถ decompose เป็น single qubit gates และ CNOT gates ได้ เนื่องจาก two-qubit CNOT gate ใช้เวลาในการรันบนฮาร์ดแวร์จริงมากกว่า single qubit gates มาก cost ของ Circuit จึงมักวัดจากจำนวน CNOT gates

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
CX-Gatecx q[0], q[1];image19q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

Toffoli gate

Toffoli gate หรือที่เรียกว่า double controlled-NOT gate (CCX) มี control qubits สองตัวและ target หนึ่งตัว มันใช้ NOT กับ target เฉพาะเมื่อทั้งสอง controls อยู่ในสถานะ 1\left|1\right\rangle

Toffoli gate พร้อมกับ Hadamard gate เป็น universal gate set สำหรับ quantum computing

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
ccx-gateccx q[0], q[1], q[2];ccx_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

SWAP gate

SWAP gate สลับสถานะของ Qubit สองตัว

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
SWAP gateswap q[0], q[1];swap_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

Identity gate

identity gate (บางครั้งเรียกว่า Id หรือ I gate) จริงๆ แล้วคือการไม่มี Gate มันทำให้แน่ใจว่าไม่มีอะไรถูกใช้กับ Qubit เป็นเวลาหนึ่งหน่วยของ gate time

Composer referenceQasm reference
Identity gateid q[0];

Phase gates

T gate

T gate เทียบเท่ากับ RZ สำหรับ angle π/4\pi/4 quantum computer แบบ fault-tolerant จะ compile โปรแกรม quantum ทั้งหมดลงเป็นแค่ T gate และ inverse ของมัน รวมถึง Clifford gates

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
t_gatet q[0];image29q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

S gate

S gate ใช้ phase ของ ii กับสถานะ 1\left|1\right\rangle มันเทียบเท่ากับ RZ สำหรับ angle π/2\pi/2 โปรดทราบว่า S=P(π/2\pi/2)

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
s_gates q[0];image25q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

Z gate

Pauli Z gate ทำหน้าที่เป็น identity บนสถานะ 0\left|0\right\rangle และคูณ sign ของสถานะ 1\left|1\right\rangle ด้วย -1 ดังนั้นมันจึง flip สถานะ +\left|+\right\rangle และ \left|-\right\rangle ใน +/- basis มันทำบทบาทเดียวกับ NOT gate ใน 0\left|0\right\rangle/1\left|1\right\rangle basis

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
z_gatez q[0];image23q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

TT^{\dagger} gate

เรียกอีกชื่อว่า Tdg หรือ T-dagger gate

inverse ของ T gate

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
T-dagger gatetdg q[0];image31q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

SS^{\dagger} gate

เรียกอีกชื่อว่า Sdg หรือ S-dagger gate

inverse ของ S gate

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
S-dagger gatesdg q[0];image27q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

Phase gate

Phase gate (เดิมเรียกว่า U1 gate) ใช้ phase ของ eiθe^{i\theta} กับสถานะ 1\left|1\right\rangle สำหรับค่าบางอย่างของ θ\theta มันเทียบเท่ากับ gate อื่นๆ ตัวอย่างเช่น P(π\pi)=Z, P(π\pi/22)=S และ P(π/4\pi/4)=T จนถึง global phase ของ eiθ/2e^{i\theta/2} มันเทียบเท่ากับ RZ(θ\theta)

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
p_gatep(theta) q[0];p_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

ใน IBM Quantum Composer ค่าเริ่มต้นสำหรับ theta คือ π/2\pi/2

RZ gate

RZ gate implement exp(iθ2Z)exp(-i\frac{\theta}{2}Z) บน Bloch sphere Gate นี้สอดคล้องกับการหมุน qubit state รอบแกน z ตาม angle ที่กำหนด

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
rz_gaterz(angle) q[0];image17q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

ใน IBM Quantum Composer ค่าเริ่มต้นสำหรับ angle คือ π/2\pi/2 ดังนั้น angle นี้จึงถูกใช้ใน q-sphere visualization

Non-unitary operators and modifiers

Reset operation

reset operation คืน Qubit ไปยังสถานะ 0\left|0\right\rangle โดยไม่คำนึงถึงสถานะก่อนที่จะใช้ operation มันไม่ใช่ operation ที่ reversible

Composer referenceOpenQASM reference
0-operareset q[0];

Measurement

การวัดใน standard basis หรือที่เรียกว่า z basis หรือ computational basis สามารถใช้ implement การวัดทุกประเภทเมื่อรวมกับ gate มันไม่ใช่ operation ที่ reversible

Composer referenceOpenQASM reference
Measurement in the standard or z basismeasure q[0];

Control modifier

control modifier ให้ Gate ที่การดำเนินการเดิมขึ้นอยู่กับสถานะของ control qubit เมื่อ control อยู่ในสถานะ 1|1\rangle target qubit(s) จะผ่าน unitary evolution ที่ระบุ ในทางตรงกันข้าม ไม่มีการดำเนินการใดที่จะดำเนินการถ้า control อยู่ในสถานะ 0|0\rangle ถ้า control อยู่ใน superposition state ผลลัพธ์ operation จะมาจาก linearity

ลาก control modifier ไปยัง Gate เพื่อเพิ่ม control ให้กับมัน จุดจะปรากฏเหนือและใต้ Gate บน qubit wires ที่สามารถเป็น targets ที่ control ได้ คลิกจุดหนึ่งหรือมากกว่าเพื่อกำหนด target ให้กับ Qubit หนึ่งตัวหรือมากกว่า คุณยังสามารถกำหนด control โดยคลิกขวาที่ Gate ได้

เพื่อลบ control ให้คลิกขวาที่ Gate แล้วเลือก option เพื่อลบ control

Composer referenceOpenQASM reference
Control modifierc

Barrier operation

เพื่อทำให้ quantum program ของคุณมีประสิทธิภาพมากขึ้น compiler จะพยายามรวม gate เข้าด้วยกัน barrier เป็นคำแนะนำให้ compiler ป้องกันไม่ให้รวมกัน นอกจากนี้มันยังมีประโยชน์สำหรับ visualizations

Composer referenceOpenQASM reference
barrierbarrier q;

Hadamard gate

H gate

H หรือ Hadamard gate หมุนสถานะ 0\left|0\right\rangle และ 1\left|1\right\rangle ไปยัง +\left|+\right\rangle และ \left|-\right\rangle ตามลำดับ มันมีประโยชน์สำหรับการสร้าง superpositions ถ้าคุณมี universal gate set บน classical computer และเพิ่ม Hadamard gate มันจะกลายเป็น universal gate set บน quantum computer

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
h-gateh q[0];image1q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

Quantum gates

X\sqrt{X} gate

เรียกอีกชื่อว่า square-root NOT gate

Gate นี้ implement square-root ของ X, X\sqrt{X} การใช้ Gate นี้สองครั้งติดต่อกันจะได้ standard Pauli-X gate (NOT gate) เหมือนกับ Hadamard gate X\sqrt{X} สร้าง equal superposition state ถ้า Qubit อยู่ในสถานะ 0|0\rangle แต่มี relative phase ที่แตกต่างกัน บนฮาร์ดแวร์บางอย่าง มันเป็น native gate ที่สามารถ implement ได้ด้วย π/2\pi/2 หรือ X90 pulse

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
sx_gatesx q[0];sx_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

X\sqrt{X}^{\dagger} gate

เรียกอีกชื่อว่า SXdg หรือ square-root NOT-dagger gate

นี่คือ inverse ของ X\sqrt{X} gate การใช้มันสองครั้งติดต่อกันจะได้ Pauli-X gate (NOT gate) เนื่องจาก NOT gate เป็น inverse ของตัวเอง เหมือนกับ X\sqrt{X} gate Gate นี้สามารถใช้สร้าง equal superposition state และยัง implement ได้ใน native บนฮาร์ดแวร์บางอย่างโดยใช้ X90 pulse

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
sxdg_gatesxdg q[0];sxdg_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

Y gate

Pauli Y gate เทียบเท่ากับ Ry สำหรับ angle π\pi มันเทียบเท่ากับการใช้ X และ Z จนถึง global phase factor

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
y_gatey q[0];image21q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

RX gate

RX gate implement exp(iθ2X)exp(-i\frac{\theta}{2}X) บน Bloch sphere Gate นี้สอดคล้องกับการหมุน qubit state รอบแกน x ตาม angle ที่กำหนด

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
rx_gaterx(angle) q[0];image13q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

ใน IBM Quantum Composer ค่าเริ่มต้นสำหรับ angle คือ π/2\pi/2 ดังนั้น angle นี้จึงถูกใช้ใน q-sphere visualization

RY gate

RY gate implement exp(iθ2Y)exp(-i\frac{\theta}{2}Y) บน Bloch sphere Gate นี้สอดคล้องกับการหมุน qubit state รอบแกน y ตาม angle ที่กำหนด และไม่แนะนำ complex amplitudes

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
ry_gatery(angle) q[0];image15q-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

ใน IBM Quantum Composer ค่าเริ่มต้นสำหรับ angle คือ π/2\pi/2 ดังนั้น angle นี้จึงถูกใช้ใน q-sphere visualization ด้านล่าง

RXX gate

RXX gate implement exp(iθ/2XX)\exp(-i \theta/2 X \otimes X) Mølmer–Sørensen gate ซึ่งเป็น native gate บนระบบ ion-trap สามารถแสดงเป็นผลรวมของ RXX gates

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
rxx-gaterxx(angle) q[0], q[1];rxx_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

ใน IBM Quantum Composer ค่าเริ่มต้นสำหรับ angle คือ π/2\pi/2

RZZ gate

RZZ gate ต้องการพารามิเตอร์เดียว: angle ที่แสดงเป็น radians Gate นี้เป็น symmetric การสลับ Qubit สองตัวที่มันดำเนินการไม่ได้เปลี่ยนแปลงอะไร

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
rzz_gaterzz(angle) q[0], q[1];rzz_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

ใน IBM Quantum Composer ค่าเริ่มต้นสำหรับ angle คือ π/2\pi/2

U gate

(เดิมเรียกว่า U3 gate) พารามิเตอร์สามตัวช่วยให้สร้าง single-qubit gate ใดๆ ก็ได้ มี duration หนึ่งหน่วยของ gate time

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
u_gateu(theta, phi, lam) q[0];u3_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

ใน IBM Quantum Composer ค่าเริ่มต้นสำหรับ angle คือ π/2\pi/2

RCCX gate

simplified Toffoli gate หรือที่เรียกว่า Margolus gate

simplified Toffoli gate implement Toffoli gate จนถึง relative phases การ implement นี้ต้องใช้ CX gates สามตัว ซึ่งเป็นจำนวนน้อยที่สุดที่เป็นไปได้ ตามที่แสดงใน https://arxiv.org/abs/quant-ph/0312225 โปรดทราบว่า simplified Toffoli ไม่เทียบเท่ากับ Toffoli แต่สามารถใช้ในที่ที่ Toffoli gate ถูก uncomputed อีกครั้ง

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
rccx-gaterccx a, b, c;rccx_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate

RC3X gate

simplified 3-controlled Toffoli gate

simplified Toffoli gate implement Toffoli gate จนถึง relative phases โปรดทราบว่า simplified Toffoli ไม่เทียบเท่ากับ Toffoli แต่สามารถใช้ในที่ที่ Toffoli gate ถูก uncomputed อีกครั้ง

Composer referenceOpenQASM referenceQ-sphereหมายเหตุเกี่ยวกับ q-sphere representations
rc3x-gaterc3x a, b, c, d;rc3x_qsphq-sphere representation แสดงสถานะหลังจาก Gate ดำเนินการบน initial equal superposition state 12ni=02n1i,\frac{1}{\sqrt{2^{n}}}\sum_{i=0}^{2^{n}-1}\vert i\rangle, โดยที่ nn คือจำนวน Qubit ที่จำเป็นสำหรับรองรับ Gate
Source: IBM Quantum docs — updated 5 มี.ค. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of 11 มี.ค. 2569