مقدمة إلى الخيارات
يمكنك تمرير خيارات إلى الأدوات البدائية لتخصيصها وفق احتياجاتك. يركّز هذا القسم على خيارات أدوات Qiskit Runtime البدائية. على الرغم من أن واجهة طريقة run() مشتركة بين جميع التطبيقات، إلا أن خياراتها تختلف. راجع مراجع API المقابلة للاطلاع على معلومات حول خيارات qiskit.primitives وqiskit_aer.primitives.
نظرة عامة
البنية
عند استدعاء الأدوات البدائية، يمكنك تمرير الخيارات إما عبر فئة خيارات أو قاموس (dictionary). الخيارات الأكثر استخداماً، مثل resilience_level، تكون في المستوى الأول. أما الخيارات الأخرى فتُجمَّع في فئات مختلفة، كفئة execution. راجع قسم تعيين خيارات الأداة البدائية للاطلاع على التفاصيل الكاملة.
القيم الافتراضية
إن لم تحدّد قيمةً لأحد الخيارات، يُعطى قيمة خاصة هي Unset وتُستخدم القيمة الافتراضية للخادم. وبهذا تظل القيمة الافتراضية ثابتة بصرف النظر عن إصدار الكود الذي تستخدمه.
تسرد جداول قسم ملخص فئات الخيارات القيم الافتراضية.
تعيين الخيارات
يمكن تعريف الخيارات قبل إنشاء الأداة البدائية وتمريرها إليها، وستقوم الأداة بإنشاء نسخة منها. يمكن إجراء ذلك إما كقاموس متداخل أو باستخدام فئات الخيارات. علاوةً على ذلك، يمكن تغيير خيارات الأداة البدائية بعد إنشائها. استخدم الأسلوب الأنسب لتطبيقك. راجع تحديد الخيارات للتفاصيل الكاملة.
ملخص فئات الخيارات
- Estimator
- Sampler
- الفصل الديناميكي (Dynamical decoupling): خيارات الفصل الديناميكي.
- البيئة (Environment): خيارات بيئة التنفيذ، مثل مستوى التسجيل المراد تعيينه وعلامات المهمة المراد إضافتها.
- التنفيذ (Execution): خيارات تنفيذ الأداة البدائية، بما فيها تهيئة Qubits وتأخير التكرار.
- المرونة (Resilience): خيارات متقدمة لضبط أساليب تخفيف الأخطاء مثل تخفيف أخطاء القياس وZNE وPEC.
- المحاكي (Simulator): خيارات المحاكي، مثل بوابات الأساس وبذرة المحاكي وخريطة الاقتران. تنطبق على وضع الاختبار المحلي فقط.
- التلوية (Twirling): خيارات التلوية، مثل تطبيق التلوية على بوابات ثنائية الـ Qubit وعدد اللقطات التي تُشغَّل لكل عيّنة عشوائية.
- الفصل الديناميكي (Dynamical decoupling): خيارات الفصل الديناميكي.
- البيئة (Environment): خيارات بيئة التنفيذ، مثل مستوى التسجيل المراد تعيينه وعلامات المهمة المراد إضافتها.
- التنفيذ (Execution): خيارات تنفيذ الأداة البدائية، بما فيها تهيئة Qubits وتأخير التكرار.
- المحاكي (Simulator): خيارات المحاكي، مثل بوابات الأساس وبذرة المحاكي وخريطة الاقتران. تنطبق على وضع الاختبار المحلي فقط.
- التلوية (Twirling): خيارات التلوية، مثل تطبيق التلوية على بوابات ثنائية الـ Qubit وعدد اللقطات التي تُشغَّل لكل عيّنة عشوائية.
الخيارات المتاحة
يوثّق الجدول التالي الخيارات من أحدث إصدار من qiskit-ibm-runtime. للاطلاع على إصدارات الخيارات الأقدم، تفضّل بزيارة مرجع API لـ qiskit-ibm-runtime واختر إصداراً سابقاً.
- Estimator
- Sampler
default_shots
default_shotsإجمالي عدد اللقطات المراد استخدامها لكل Circuit ولكل تهيئة.
الخيارات: عدد صحيح >= 0
الافتراضي: None
default_precision
default_precisionالدقة الافتراضية المراد استخدامها لأي PUB أو استدعاء run() لا يحدّد دقةً.
الخيارات: عدد عشري > 0
الافتراضي: 0.015625 (1 / sqrt(4096))
dynamical_decoupling
dynamical_decouplingالتحكم في إعدادات تخفيف الأخطاء عبر الفصل الديناميكي.
dynamical_decoupling توثيق API
dynamical_decoupling.enable
dynamical_decoupling.enableالخيارات: True, False
الافتراضي: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionالخيارات: middle, edges
الافتراضي: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodالخيارات: asap, alap
الافتراضي: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeالخيارات: XX, XpXm, XY4
الافتراضي: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsالخيارات: True, False
الافتراضي: False
environment
environmentenvironment.callback
environment.callbackدالة قابلة للاستدعاء تستقبل Job ID وJob result.
الخيارات: None
الافتراضي: None
environment.job_tags
environment.job_tagsقائمة من العلامات.
الخيارات: None
الافتراضي: None
environment.log_level
environment.log_levelالخيارات: DEBUG, INFO, WARNING, ERROR, CRITICAL
الافتراضي: WARNING
environment.private
environment.privateالخيارات: True, False
الافتراضي: False
execution
executionmax_execution_time
max_execution_timeالخيارات: عدد صحيح بالثواني في النطاق [1, 10800]
الافتراضي: 10800 (3 ساعات)
resilience
resilienceخيارات مرونة متقدمة لضبط استراتيجية المرونة بدقة.
resilience.layer_noise_learning
resilience.layer_noise_learningخيارات تعلّم ضوضاء الطبقة.
resilience.layer_noise_learning.layer_pair_depths
resilience.layer_noise_learning.layer_pair_depthsالخيارات: list[int] من 2 إلى 10 قيم في النطاق [0, 200]
الافتراضي: (0, 1, 2, 4, 16, 32)
resilience.layer_noise_learning.max_layers_to_learn
resilience.layer_noise_learning.max_layers_to_learnالخيارات: None، أو عدد صحيح >= 1
الافتراضي: 4
resilience.layer_noise_learning.num_randomizations
resilience.layer_noise_learning.num_randomizationsالخيارات: عدد صحيح >= 1
الافتراضي: 32
resilience.layer_noise_learning.shots_per_randomization
resilience.layer_noise_learning.shots_per_randomizationالخيارات: عدد صحيح >= 1
الافتراضي: 128
resilience.layer_noise_model
resilience.layer_noise_modelالخيارات: NoiseLearnerResult, Sequence[LayerError]
الافتراضي: None
resilience.measure_mitigation
resilience.measure_mitigationالخيارات: True, False
الافتراضي: True
resilience.measure_noise_learning
resilience.measure_noise_learningخيارات تعلّم ضوضاء القياس.
resilience.measure_noise_learning.num_randomizations
resilience.measure_noise_learning.num_randomizationsالخيارات: عدد صحيح >= 1
الافتراضي: 32
resilience.measure_noise_learning.shots_per_randomization
resilience.measure_noise_learning.shots_per_randomizationالخيارات: عدد صحيح، auto
الافتراضي: auto
resilience.pec_mitigation
resilience.pec_mitigationالخيارات: True, False
الافتراضي: False
resilience.pec
resilience.pecخيارات تخفيف الأخطاء باستخدام الإلغاء الاحتمالي للأخطاء (PEC).
resilience.pec.max_overhead
resilience.pec.max_overheadالخيارات: None، أو عدد صحيح >= 1
الافتراضي: 100
resilience.pec.noise_gain
resilience.pec.noise_gainالخيارات: auto، أو عدد عشري في النطاق [0, 1]
الافتراضي: auto
resilience.zne_mitigation
resilience.zne_mitigationالخيارات: True، False
الافتراضي: False
resilience.zne
resilience.zneresilience.zne.amplifier
resilience.zne.amplifierالخيارات: gate_folding، gate_folding_front، gate_folding_back، pea
الافتراضي: gate_folding
resilience.zne.extrapolated_noise_factors
resilience.zne.extrapolated_noise_factorsالخيارات: قائمة من الأعداد العشرية (floats)
الافتراضي: [0, *noise_factors]
resilience.zne.extrapolator
resilience.zne.extrapolatorالخيارات: واحد أو أكثر من: exponential، linear، double_exponential، polynomial_degree_(1 <= k <= 7)، fallback
الافتراضي: (exponential, linear)
resilience.zne.noise_factors
resilience.zne.noise_factorsالخيارات: قائمة من الأعداد العشرية؛ كل عدد >= 1
الافتراضي: (1, 1.5, 2) لـ PEA، و(1, 3, 5) في غير ذلك
resilience_level
resilience_levelمقدار الصمود (resilience) المراد بناؤه في مواجهة الأخطاء. كلما ارتفع المستوى، كانت النتائج أدق، لكن على حساب وقت معالجة أطول.
الخيارات: 0، 1، 2
الافتراضي: 1
seed_estimator
seed_estimatorsimulator
simulatorخيارات تُمرَّر عند محاكاة Backend.
simulator.basis_gates
simulator.basis_gatesالخيارات: قائمة بأسماء البوابات الأساسية (basis gates) المراد التحويل إليها
الافتراضي: مجموعة جميع البوابات الأساسية التي يدعمها محاكي Qiskit Aer
simulator.coupling_map
simulator.coupling_mapالخيارات: قائمة من التفاعلات الثنائية الموجَّهة بين الكيوبتات (two-qubit interactions)
الافتراضي: None، مما يعني عدم وجود قيود على الاتصال (اتصال كامل).
simulator.noise_model
simulator.noise_modelالخيارات: Qiskit Aer NoiseModel، أو تمثيله
الافتراضي: None
simulator.seed_simulator
simulator.seed_simulatorالخيارات: عدد صحيح (Integer)
الافتراضي: None
twirling
twirlingخيارات Twirling
twirling.enable_gates
twirling.enable_gatesالخيارات: True، False
الافتراضي: False
twirling.enable_measure
twirling.enable_measureالخيارات: True، False
الافتراضي: True
twirling.num_randomizations
twirling.num_randomizationsالخيارات: auto، عدد صحيح >= 1
الافتراضي: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationالخيارات: auto، عدد صحيح >= 1
الافتراضي: auto
twirling.strategy
twirling.strategyالخيارات: active، active-circuit، active-accum، all
الافتراضي: active-accum
experimental
experimentalالخيارات التجريبية، حين تتوفر.
default_shots
default_shotsإجمالي عدد القياسات (shots) المستخدمة لكل دائرة لكل تهيئة.
الخيارات: عدد صحيح >= 0
الافتراضي: None
dynamical_decoupling
dynamical_decouplingالتحكم في إعدادات تخفيف الأخطاء بأسلوب Dynamical Decoupling.
توثيق API لـ dynamical_decoupling
dynamical_decoupling.enable
dynamical_decoupling.enableالخيارات: True، False
الافتراضي: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionالخيارات: middle، edges
الافتراضي: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodالخيارات: asap، alap
الافتراضي: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeالخيارات: XX، XpXm، XY4
الافتراضي: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsالخيارات: True، False
الافتراضي: False
environment
environmentexecution
executionexecution.init_qubits
execution.init_qubitsهل تُعاد تهيئة الكيوبتات إلى الحالة الأساسية (ground state) عند كل قياس (shot).
الخيارات: True، False
الافتراضي: True
execution.rep_delay
execution.rep_delayالتأخير بين قياس ودائرة الكم التالية.
الخيارات: قيمة ضمن النطاق الذي يوفره backend.rep_delay_range
الافتراضي: تُحدَّد بواسطة backend.default_rep_delay
execution.meas_type
execution.meas_typeالخيارات: classified، kerneled، avg_kerneled
الافتراضي: classified
max_execution_time
max_execution_timeالخيارات: عدد صحيح بالثواني في النطاق [1, 10800]
الافتراضي: 10800 (3 ساعات)
simulator
simulatorخيارات تُمرَّر عند محاكاة Backend.
simulator.basis_gates
simulator.basis_gatesالخيارات: قائمة بأسماء البوابات الأساسية (basis gates) المراد التحويل إليها
الافتراضي: مجموعة جميع البوابات الأساسية التي يدعمها محاكي Qiskit Aer
simulator.coupling_map
simulator.coupling_mapالخيارات: قائمة من التفاعلات الثنائية الموجَّهة بين الكيوبتات (two-qubit interactions)
الافتراضي: None، مما يعني عدم وجود قيود على الاتصال (اتصال كامل).
simulator.noise_model
simulator.noise_modelالخيارات: Qiskit Aer NoiseModel، أو تمثيله
الافتراضي: None
simulator.seed_simulator
simulator.seed_simulatorالخيارات: عدد صحيح
الافتراضي: None
twirling
twirlingخيارات Twirling
twirling.enable_gates
twirling.enable_gatesالخيارات: True، False
الافتراضي: False
twirling.enable_measure
twirling.enable_measureالخيارات: True، False
الافتراضي: False
twirling.num_randomizations
twirling.num_randomizationsالخيارات: auto، عدد صحيح >= 1
الافتراضي: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationالخيارات: auto، عدد صحيح >= 1
الافتراضي: auto
twirling.strategy
twirling.strategyالخيارات: active، active-circuit، active-accum، all
الافتراضي: active-accum
experimental
experimentalالخيارات التجريبية، عند توفرها.
توافق الميزات
نظرًا للاختلافات في عملية تصريف الجهاز، لا يمكن استخدام بعض ميزات Runtime معًا في مهمة واحدة. انقر على التبويب المناسب للاطلاع على قائمة الميزات غير المتوافقة مع الميزة المحددة:
- الدوائر الديناميكية
- الفصل الديناميكي
- الأبواب الكسرية
- Gate-folding ZNE
- Gate twirling
- PEA
- PEC
غير متوافقة مع:
- Gate-folding ZNE
- PEA
- PEC
- الفصل الديناميكي
ملاحظات أخرى:
- يمكن استخدامها مع Gate twirling للبوابات غير الشرطية.
- متوافقة مع الأبواب الكسرية عند استخدام
qiskit-ibm-runtimev0.42.0 أو أحدث.
غير متوافق مع الدوائر الديناميكية.
غير متوافقة مع:
- Gate twirling
- PEA
- PEC
متوافقة مع الدوائر الديناميكية عند استخدام qiskit-ibm-runtime v0.42.0 أو أحدث.
غير متوافق مع:
- الدوائر الديناميكية
- PEA
- PEC
قد لا يعمل عند استخدام بوابات مخصصة.
غير متوافق مع الأبواب الكسرية أو مع الامتدادات.
ملاحظات أخرى:
- يمكن استخدامه مع الدوائر الديناميكية مع البوابات غير الشرطية.
- لا يعمل مع المشابكات غير Clifford.
غير متوافق مع:
- الدوائر الديناميكية
- الأبواب الكسرية
- Gate-folding ZNE
- PEC
غير متوافق مع:
- الدوائر الديناميكية
- الأبواب الكسرية
- Gate-folding ZNE
- PEA
الخطوات التالية
- اطلع على مزيد من التفاصيل حول توابع
EstimatorV2في مرجع Estimator API.