בניית מודלי רעש
גרסאות חבילות
הקוד בדף זה פותח בשימוש בדרישות הבאות. אנו ממליצים להשתמש בגרסאות אלה או בגרסאות חדשות יותר.
qiskit[all]~=2.3.0
qiskit-ibm-runtime~=0.43.1
qiskit-aer~=0.17
דף זה מדגים כיצד להשתמש במודול noise של Qiskit Aer לבניית מודלי רעש לסימולציה של מעגלים קוונטיים בנוכחות שגיאות. זה שימושי לאמולציה של מעבדים קוונטיים רועשים ולחקר השפעות הרעש על ביצוע אלגוריתמים קוונטיים.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
import numpy as np
from qiskit import QuantumCircuit
from qiskit.quantum_info import Kraus, SuperOp
from qiskit.visualization import plot_histogram
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_aer import AerSimulator
# Import from Qiskit Aer noise module
from qiskit_aer.noise import (
NoiseModel,
QuantumError,
ReadoutError,
depolarizing_error,
pauli_error,
thermal_relaxation_error,
)
מודול noise של Qiskit Aer
מודול noise של Qiskit Aer מכיל מחלקות Python לבניית מודלי רעש מותאמים אישית לסימולציה. ישנן שלוש מחלקות מפתח:
-
המחלקה
NoiseModelהמאחסנת מודל רעש המשמש לסימולציה רועשת. -
המחלקה
QuantumErrorהמתארת שגיאות Gate מסוג CPTP. ניתן להחיל אותן:- אחרי הוראות gate או reset
- לפני הוראות measure.
-
המחלקה
ReadoutErrorהמתארת שגיאות קריאה קלאסיות.
אתחול מודל רעש מ-Backend
ניתן לאתחל מודל רעש עם פרמטרים שנקבעו מנתוני הכיול העדכניים של Backend פיזי:
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.backend("ibm_fez")
noise_model = NoiseModel.from_backend(backend)
פעולה זו תניב מודל רעש שמקרב באופן גס את השגיאות שתיתקל בהן בשימוש ב-Backend הזה. אם ברצונך לשלוט בצורה מדויקת יותר בפרמטרים של מודל הרעש, תצטרך ליצור מודל רעש משלך, כפי שמתואר בהמשך דף זה.
שגיאות קוונטיות
במקום לעבוד ישירות עם אובייקט QuantumError, קיימות פונקציות עזר רבות שמייצרות אוטומטית סוג ספציפי של שגיאה קוונטית פרמטרית. פונקציות אלה נמצאות במודול noise וכוללות פונקציות עבור סוגי שגיאות נפוצים רבים בחקר המחשוב הקוונטי. שמות הפונקציות וסוג השגיאה שהן מחזירות:
| פונקציית שגיאה סטנדרטית | פרטים |
|---|---|
kraus_error | ערוץ שגיאה כללי CPTP עבור n-Qubit, נתון כרשימת מטריצות Kraus . |
mixed_unitary_error | שגיאת unitary מעורבת עבור n-Qubit, נתונה כרשימת מטריצות unitary והסתברויות . |
coherent_unitary_error | שגיאת unitary קוהרנטית עבור n-Qubit, נתונה כמטריצת unitary בודדת . |
pauli_error | ערוץ שגיאת Pauli עבור n-Qubit (unitary מעורב), נתון כרשימת אופרטורי Pauli והסתברויות |
depolarizing_error | ערוץ שגיאת depolarizing עבור n-Qubit, מפורמט על ידי הסתברות depolarization . |
reset_error | שגיאת reset עבור Qubit יחיד, מפורמטת על ידי הסתברויות של איפוס למצב , . |
thermal_relaxation_error | ערוץ רלקסציה תרמית עבור Qubit יחיד, מפורמט על ידי קבועי זמן רלקסציה , |