חיתוך Gate להפחתת עומק Circuit
במדריך הזה נפחית את עומק ה-Circuit על ידי חיתוך Gates מרוחקים, תוך הימנעות מ-Swap Gates שהיו מתווספים בדרך כלל במהלך הניתוב.
אלו השלבים שנעבור בתבנית Qiskit pattern הזו:
- שלב 1: מיפוי הבעיה ל-Circuit קוונטי ואופרטורים:
- מיפוי ההמילטוניאן ל-Circuit קוונטי.
- שלב 2: אופטימיזציה לחומרה היעד [משתמש בתוסף החיתוך]:
- חיתוך ה-Circuit והאובייקט הנצפה.
- Transpile של תת-הניסויים לחומרה.
- שלב 3: הרצה על חומרה יעד:
- הרצת תת-הניסויים שהתקבלו בשלב 2 בעזרת הפרימיטיב
Sampler.
- הרצת תת-הניסויים שהתקבלו בשלב 2 בעזרת הפרימיטיב
- שלב 4: עיבוד תוצאות לאחר מכן [משתמש בתוסף החיתוך]:
- שילוב תוצאות שלב 3 לצורך שחזור ערך הציפייה של האובייקט הנצפה.
שלב 1: מיפוי
יצירת Circuit להרצה על ה-Backend
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-addon-cutting qiskit-aer qiskit-ibm-runtime
from qiskit.circuit.library import efficient_su2
circuit = efficient_su2(num_qubits=4, entanglement="circular")
circuit.assign_parameters([0.4] * len(circuit.parameters), inplace=True)
circuit.draw("mpl", scale=0.8)

הגדרת אובייקט נצפה
from qiskit.quantum_info import SparsePauliOp
observable = SparsePauliOp(["ZZII", "IZZI", "-IIZZ", "XIXI", "ZIZZ", "IXIX"])
שלב 2: אופטימיזציה
הגדרת Backend
אפשר לספק Backend מדומה או Backend חומרה אמיתית מ-Qiskit Runtime.
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
backend = FakeManilaV2()