Orbit - دالة Qiskit من Quantum Elements
راجع مرجع API
دوال Qiskit ميزة تجريبية متاحة فقط لمستخدمي خطط IBM Quantum® Premium Plan وFlex Plan وOn-Prem (عبر IBM Quantum Platform API). وهي في حالة إصدار أولي (preview) وقابلة للتغيير.
نظرة عامة
تستمر أجهزة الحوسبة الكمومية في التقدم، لكن الضجيج وفقدان التماسك (decoherence) لا يزالان يحدّان من عمق الدارات الكمومية العملية وموثوقيتها. من بين الأساليب المتاحة، هناك ثلاث تقنيات تكاملية يمكنها التخفيف بشكل كبير من هذه القيود: فك الاقتران الديناميكي (DD)، والنقل البرمجي الأمثل، وتخفيف أخطاء القياس (MEM). يقلل النقل البرمجي الأمثل من عمق الدارة ويوائم الدارات بشكل أفضل مع اتصالية الأجهزة المستهدفة، ويكبح DD ضجيج وقت الخمول من خلال تسلسلات تحكم مصممة بعناية، ويقلل MEM من تأثيرات أخطاء القراءة ويمكن تطبيقه أثناء المعالجة اللاحقة.
اختيار استراتيجية DD فعالة أمر غير بسيط بشكل خاص، لأن هناك العديد من عائلات التسلسلات المتاحة، والتسلسل الذي يعمل جيدًا لدارة أو بيئة ضجيج معينة قد لا يعمل جيدًا لأخرى. تعتمد فوائد النقل البرمجي وDD وMEM على المسألة والأجهزة وحمل العمل؛ وعند استخدامها منفردة أو مجتمعة، يمكن أن تحسّن الأداء، لكنها ليست مفيدة بشكل عام في كل تهيئة.
يجمع Orbit، وهي دالة Qiskit طورتها Quantum Elements، بسلاسة بين المكونات الثلاثة في مسار عمل موحد، مما يجعل استخدامها سهلاً لتحسين تنفيذ الدارات على أجهزة IBM Quantum. في شكله الأساسي، يطبّق Orbit تلقائيًا استراتيجيات كبح الأخطاء النشطة التي تحمي الحالات الكمومية أثناء فترات الخمول، مع الحفاظ على منطق الدارة الأصلي. والجدير بالذكر أنه يقوم بذلك دون إدخال أي وقت معالجة مسبقة كمومية أو كلاسيكية إضافية، وبالتالي تجنب أي تكاليف أو أوقات انتظار إضافية غير ضرورية ضمن مسار العمل.
بدلاً من العمل كصندوق أسود، يتيح Orbit للمستخدمين تقييم وضبط مكونات التحسين الخاصة به لتجربة معينة. يمكن للمستخدمين تمكين أو تعطيل النقل البرمجي الأمثل وDD وMEM بشكل مستقل؛ ومقارنة الاختيار التلقائي لـ DD بالتسلسلات المحددة من قبل المستخدم؛ وتنفيذ عدة تهيئات ضمن نفس مسار العمل. من خلال مقارنة كل تهيئة بالدارة الخام، يمكن للمستخدمين تحديد التقنيات التي توفر فوائد قابلة للقياس لدارتهم وجهازهم، والتعرف على التفاعلات بين طرق التحسين المختلفة، واختيار التهيئة التي تدعم بشكل أفضل هدف تجربتهم. توجّه هذه العملية المستخدمين لفهم مصدر مكاسب الأداء واتخاذ قرارات أكثر استنارة عند تحسين الدارات الكمومية لحمل عمل معين.
الوصف
صُمم Orbit لتحسين تنفيذ الدارات الكمومية على أجهزة IBM Quantum. في الوضع التلقائي، يمكن للمستخدمين تطبيق تسلسلات DD قوية وعالية الرتبة بسلاسة دون الحاجة إلى اختيارها أو تهيئتها يدويًا. يمكن للمستخدمين المتقدمين بدلاً من ذلك تجربة التسلسلات عالية الرتبة المتاحة لتحديد وتحسين النهج الذي يحقق أفضل أداء لدارة معينة.
يوفر Orbit أيضًا MEM فوريًا دون الحاجة إلى المهام الإضافية المطلوبة عادة لمسارات عمل المعايرة والتخفيف المنفصلة. بالنسبة لأحمال العمل التي لا ينبغي أن يغيّر فيها النقل البرمجي بنية الدارة، مثل دارات تصحيح الأخطاء الكمومية ذات القياسات في منتصف الدارة أو الدارات الديناميكية، يمكن لـ Orbit تطبيق DD وMEM دون التدخل في استراتيجية النقل البرمجي الحالية للمستخدم. بالنسبة للمستخدمين الذين ليس لديهم نهج مفضل بالفعل، يتضمن Orbit أيضًا ناقل برمجي مدمج لتحسين الدارات للأجهزة المستهدفة قبل تطبيق تقنيات كبح الأخطاء وتخفيف القراءة.
على عكس الأساليب التي تعتمد على أخذ عينات إضافية من الدارة، أو الاستقراء، أو المعالجة الكلاسيكية اللاحقة المكثفة، يركز Orbit على كبح الأخطاء أثناء التنفيذ. صُممت الدالة لإدخال عبء إضافي منخفض مع الحفاظ على منطق الدارة الأصلي. يمكن للمستخدمين فحص الدارة الناتجة ومقارنة عمليات التنفيذ المحسّنة بواسطة Orbit مباشرة بعمليات التنفيذ القياسية.
مسار عمل عملي لـ Orbit هو:
-
حدّد دارة كمومية واختر Orbit من خلال كتالوج دوال Qiskit.
-
أدرج الدارة دون Orbit باستخدام وضع 'Raw' لإنشاء خط أساس للدارة الخام.
-
اختر استراتيجيات التحسين التي تريد تطبيقها، بما في ذلك تسلسلات DD التلقائية أو المحددة من قبل المستخدم، وMEM، والنقل البرمجي الأمثل.
-
فعّل أو عطّل الطرق الفردية، أو أرسل عدة تهيئات، لتقييم تأثيراتها المنفصلة والمجتمعة.
يُعد Orbit مفيدًا بشكل خاص للدارات التي تحتوي على فترات خمول أو فجوات في الجدولة حيث لا تشارك الكيوبتات بنشاط في البوابات. وهو يدعم الدارات الثابتة والديناميكية، بما في ذلك مسارات العمل ذات القياسات في منتصف الدارة وتجارب الحوسبة الكمومية المتسامحة مع الأخطاء. تشمل التطبيقات النموذجية تصحيح الأخطاء الكمومية، وتجارب رمز السطح على الشبكات المربعة وشبكات heavy-hex، والخوارزميات الوهمية مثل Bernstein-Vazirani، ودارات تحويل فورييه، والخوارزميات الكمومية التغايرية، ومحاكاة هاميلتونيان، وتجارب القياس المرجعي، وتحسين الدارات الواعي بالأجهزة.
بالنظر إلى المستقبل، إلى عصر التسامح مع الأخطاء، فإن Orbit متوافق أيضًا مع مسارات عمل الحوسبة الكمومية المتسامحة مع الأخطاء، حيث يمكن دمجه بسلاسة مع تصحيح الأخطاء الكمومية. على المدى الطويل، يشير Orbit نحو فك الاقتران الديناميكي على المستوى المنطقي [1] كمسار مستقبلي لحماية الكيوبتات المنطقية. في المثال أدناه، تم تشابك كيوبتين منطقيين لإنشاء حالة بيل منطقية تحت كشف الأخطاء الكمومية. أدى كشف الأخطاء الكمومية وحده إلى تراجع دقة حالة بيل إلى حوالي 44% خلال عشرات الميكروثانية، بينما حافظ كشف الأخطاء الكمومية المدمج مع حماية على طراز Orbit على دقة حالة بيل المنطقية قرب أعلى مستوى في المقياس، حيث وصلت إلى حوالي 95.3% خلال نفس النافذة الزمنية.

المقاييس المرجعية
تلخص النتائج التالية عمليات تشغيل تمثيلية لـ Orbit على أجهزة IBM Quantum. كما هو الحال مع المقاييس المرجعية الأخرى للأجهزة، تعتمد النتائج على الجهاز المختار، وحالة المعايرة، والدارة، وإعدادات التنفيذ.
| المثال | المقياس | الكيوبتات | QPU | تفاصيل إضافية | تحسين Orbit |
|---|---|---|---|---|---|
| Bernstein–Vazirani | دقة السلسلة الثنائية المخفية | 26 60 70 | Heron r3 | خام مقابل Orbit كامل، النقل البرمجي فقط مقابل Orbit كامل، Orbit كامل فقط | 75x 66x غير متاح |
| QFT (unitary) | الدقة | 10 | Heron r2 Heron r3 | Orbit مقابل الخام: ~44% مقابل ~35% ~67% مقابل ~61% | 1.26x 1.09x |
| QFT (دارات ديناميكية) | الدقة | 10 20 | Heron r3 | Orbit مقابل الخام: ~55% مقابل ~2% ~10% مقابل ~0% | 27.51x غير متاح |
| حالة بيل بعيدة المدى (دارات ديناميكية) | الدقة | 30 60 | Heron r2 | غير متاح | 1.78x 1.11x |
| رمز السطح (شبكة مربعة) | احتمالية الخطأ المنطقي | 25 | Nighthawk r1 | جولة واحدة 5 جولات 10 جولات | 1.01x 1.15x 1.12x |
| رمز السطح (heavy-hex) | احتمالية الخطأ المنطقي | 65 | Heron r3 | جولة واحدة 5 جولات 10 جولات | 4.11x 2.04x 1.39x |
| VQE | الخطأ المطلق بالنسبة للطاقة المثالية | 8 | Heron r3 | Orbit مقابل الخام: 56mHa مقابل 1342 mHa | 24x |
| QAOA | احتمالية النجاح | 5 | Heron r2 | غير متاح | 1.46x |
رمز [[4,2,2]] (كبح الأخطاء على المستوى المنطقي) | الدقة المنطقية لحالة بيل المتشابكة | 4 | Heron r2 | متوسط الدقة على مدى 55 μs | 1.63x |
تعريفات المقاييس
-
دقة السلسلة الثنائية المخفية لـ Bernstein–Vazirani: احتمالية قياس السلسلة الثنائية المخفية الصحيحة. يشير هذا المقياس إلى مدى موثوقية استعادة الخوارزمية للحل المقصود مع زيادة حجم الدارة. يعرض الجدول أكبر ثلاث سلاسل ثنائية مخفية تم تقييمها بنجاح ضمن ثلاث تهيئات مختلفة: (i) الدارات الخام دون Orbit، التي وصلت إلى 26 كيوبت؛ (ii) الدارات مع النقل البرمجي فقط، التي وصلت إلى 60 كيوبت؛ و(iii) الدارات التي تستخدم مسار عمل Orbit الكامل، التي وصلت إلى 70 كيوبت. بالنسبة للدارات الخام (i)، يمثل عامل التحسين المكسب في الأداء الذي تحقق بواسطة DD وMEM بالنسبة للدارات غير المعدلة. بالنسبة لتهيئة النقل البرمجي فقط (ii)، فإنه يمثل التحسين المحقق بإضافة DD وMEM إلى الدارات المنقولة برمجيًا بشكل أمثل. بالنسبة لتهيئة Orbit الكاملة (iii)، لا يُبلَّغ عن عامل تحسين أساسي لأنه لم يتم الحصول على احتمالية نجاح غير صفرية إلا عندما تم تمكين جميع مكونات Orbit (النقل البرمجي وDD وMEM). يُقدَّم مثال توضيحي أدناه.
-
دقة تحويل فورييه الكمومي: بالنسبة لتطبيقي QFT الأحادي (unitary) والديناميكي [2]، تقيس الدقة مدى التطابق بين التحويل المُنفَّذ تجريبيًا وعملية QFT المثالية عبر 20 حالة إدخال مختلفة. تحتوي الدارات الديناميكية على وقت خمول كبير بسبب القياسات في منتصف الدارة والتغذية الأمامية الكلاسيكية، حيث يمكن لفك الاقتران الديناميكي أن يكبح فقدان التماسك خلالها. يقارن التحسين المُبلَّغ عنه الدقة التي تم الحصول عليها باستخدام Orbit بالدقة الخام.
-
تحضير حالة بيل بعيدة المدى: إنشاء حالة بيل باستخدام الدارات الديناميكية وعمليات التغذية الأمامية بين كيوبتين يفصل بينهما ما يصل إلى 60 كيوبتًا وسيطًا، مما يُظهر تشابكًا فعالًا بعيد المدى على أجهزة كمومية متصلة محليًا [3]. يحدد Orbit أفضل توجيه للكيوبتات، ويحافظ على الكيوبتات أثناء قياسات التغذية الأمامية، ويطبّق MEM لتخفيف أخطاء القراءة.
-
احتمالية الخطأ المنطقي لرمز السطح: بالنسبة لرمز السطح heavy-hex [4] ورمز السطح ذي الشبكة المربعة [5]، أُجريت تجارب ذاكرة كمومية تم فيها الحفاظ على حالة منطقية مُرمَّزة عبر جولات متكررة من تصحيح الأخطاء. تقيس احتمالية الخطأ المنطقي احتمالية أن تتسبب الأخطاء المتراكمة في استعادة المعلومات المُرمَّزة بشكل غير صحيح (الخطأ الأقل أفضل). يقارن التحسين المُبلَّغ عنه احتمالية الخطأ المنطقي من الدارات الخام بتلك التي تم الحصول عليها باستخدام Orbit.
-
الخطأ المطلق لـ VQE: باستخدام VQE مع محاولة تخمين مجموعة أحادية مترابطة مُحسَّنة لتقدير طاقة الحالة الأرضية لـ LiH [6]. تُقارَن الطاقة المقاسة بالطاقة المثالية المقابلة التي تم الحصول عليها من الدارة الخالية من الضجيج. المقياس هو الفرق المطلق بين الطاقتين المقاسة والمثالية (القيم الأقل أفضل). التحسين المُبلَّغ عنه هو:
تشير القيم الأكبر من واحد إلى أن Orbit يقلل من خطأ الطاقة بالنسبة إلى التنفيذ دون فك الاقتران الديناميكي.
-
احتمالية نجاح QAOA: احتمالية قياس سلسلة ثنائية مطابقة لحل أمثل لمسألة التحسين المعرّفة على الرسم البياني الفراشي. يقارن التحسين المُبلَّغ عنه احتمالية النجاح التي تم الحصول عليها باستخدام Orbit بتلك التي تم الحصول عليها من الدارات الخام.
-
الدقة المنطقية: في تجربة فك الاقتران الديناميكي المنطقي [[4,2,2]] [1]، تم ترميز كيوبتين منطقيين في أربعة كيوبتات فيزيائية وتحضيرهما كحالة بيل منطقية متشابكة. تقيس الدقة المنطقية مدى التطابق بين الحالة المُرمَّزة المستعادة وحالة بيل المنطقية المستهدفة. يقارن التحسين المُبلَّغ عنه متوسط الدقة المنطقية التي تم الحصول عليها باستخدام Orbit وكشف الأخطاء (قدرة الرمز) بتلك التي تم الحصول عليها عند استخدام الرمز وحده فقط.
البدء
صادق باستخدام مفتاح واجهة برمجة تطبيقات IBM Quantum Platform الخاص بك، واختر دالة Orbit كما يلي. يفترض هذا المقتطف أنك قد حفظت حسابك بالفعل في بيئتك المحلية.
# Added by doQumentation — required packages for this notebook
!pip install -q matplotlib qiskit qiskit-ibm-catalog
from qiskit_ibm_catalog import QiskitFunctionsCatalog
from qiskit import QuantumCircuit
catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")
# Verify that you have access to the function.
catalog.list()
[QiskitFunction(quantum-elements/orbit)]
# Load the function.
orbit = catalog.load("quantum-elements/orbit")
مثال
يبني المثال التالي دارة Bernstein-Vazirani ويرسلها إلى Orbit بطريقتين في مهمة واحدة: التنفيذ الخام وإعدادات Orbit الافتراضية.
استخدم هذا النمط عندما تريد مقارنة مباشرة بين الخام وOrbit.
بناء دارة Bernstein-Vazirani
اختر السلسلة الثنائية المخفية وابنِ الدارة المنطقية. الكيوبت الإضافي هو هدف الأوراكل (oracle)، بينما تُقاس كيوبتات الإدخال.
def create_bv_circuit(hidden_bitstring: str) -> QuantumCircuit:
width = len(hidden_bitstring)
circuit = QuantumCircuit(width + 1, width)
circuit.x(width)
circuit.h(range(width + 1))
for input_qubit, bit in enumerate(reversed(hidden_bitstring)):
if bit == "1":
circuit.cx(input_qubit, width)
circuit.barrier()
circuit.h(range(width + 1))
circuit.measure(range(width), range(width))
return circuit
circuit_width = 50
hidden_bitstring = "1" * circuit_width
shots = 4096
bv_circuit = create_bv_circuit(hidden_bitstring)
bv_circuit.count_ops()
OrderedDict([('h', 102),
('cx', 50),
('measure', 50),
('x', 1),
('barrier', 1)])
تحضير حمل عمل Orbit
أنشئ PUB واحد لـ Sampler، ثم كرّره لوضعي المقارنة. يستقبل Orbit الدارة المنطقية ويرسمها إلى الـ backend المحدد أثناء التنفيذ.
base_pub = (bv_circuit, None, shots)
comparison_labels = ["raw", "orbit"]
pubs = [base_pub] * len(comparison_labels)
تشغيل الوضع الخام وإعدادات Orbit الافتراضية
يُخصص pub_options الـ PUB الأول للوضع الخام، الذي يتخطى تحسين Orbit وDD وMEM، ويُخصص الـ PUB الثاني لإعدادات Orbit الافتراضية، التي تشمل النقل البرمجي الأمثل، وإدراج فك الاقتران الديناميكي (DD) التلقائي، وتخفيف أخطاء القياس (MEM).
backend_name = "ibm_kingston"
job = orbit.run(
primitive="sampler",
pubs=pubs,
backend_name=backend_name,
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
],
"save_backend_info": True,
},
)
# Check the job ID and status
print(job.job_id)
print(job.status())
c0f1b99c-8dfa-4ebb-9560-d9a37c990acc
QUEUED
استرجع النتيجة وقارن بين الدارة الخام والدارة المحسّنة بواسطة Orbit باستخدام العدّات (counts). بالنسبة لنتائج Sampler، توفر get_counts() على السجل الكلاسيكي المُعاد المخطط الترددي للمخرجات. عندما ينجح MEM بالنسبة لـ PUB الخاص بـ Orbit، يكون هذا المخطط الترددي مُصحَّحًا بالفعل بواسطة MEM؛ وتظل العدّات غير المخففة متاحة في بيانات Orbit الوصفية ضمن measurementErrorMitigation["rawCounts"].
def extract_counts(pub_result) -> dict[str, int]:
data = getattr(pub_result, "data", None)
if data is None:
raise TypeError("pub_result.data is missing")
for name in dir(data):
if name.startswith("_"):
continue
register = getattr(data, name)
get_counts = getattr(register, "get_counts", None)
if callable(get_counts):
counts = get_counts()
if counts:
return counts
raise TypeError(
"No classical register with get_counts() found in pub_result.data"
)
result = job.result()
if len(result) != len(comparison_labels):
raise RuntimeError(
f"Expected {len(comparison_labels)} PUB results, received {len(result)}."
)
comparison_counts = {
label: extract_counts(pub_result)
for label, pub_result in zip(comparison_labels, result, strict=True)
}
correct_counts = {
label: counts.get(hidden_bitstring, 0)
for label, counts in comparison_counts.items()
}
print(
{
"hidden_bitstring": hidden_bitstring,
"correct_counts": correct_counts,
"shots": shots,
}
)
{'hidden_bitstring': '11111111111111111111111111111111111111111111111111', 'correct_counts': {'raw': 0, 'orbit': 184}, 'shots': 4096}
قم بإجراء مقارنة بصرية بين الدارة الخام والدارة المحسّنة بواسطة Orbit.
import matplotlib.pyplot as plt
labels = list(correct_counts)
values = list(correct_counts.values())
fig, ax = plt.subplots(figsize=(7, 4))
bars = ax.bar(labels, values, width=0.55)
ax.bar_label(bars, labels=[f"{value:g}" for value in values], padding=3)
ax.set_xlabel("Circuit execution mode")
ax.set_ylabel("Correct hidden-bitstring count")
ax.set_title(f"{circuit_width}-qubit Bernstein-Vazirani on {backend_name}")
ax.set_ylim(0, max(1, 1.15 * max(values)))
ax.grid(axis="y", alpha=0.25)
fig.tight_layout()
plt.show()
الحصول على الدعم
تواصل مع دعم Quantum Elements: info@quantumelements.ai
تأكد من تضمين المعلومات التالية:
-
معرف مهمة دالة Qiskit (
qiskit-ibm-catalog)،job.job_id -
اسم الـ backend
-
pub_optionsالخاصة بـ Orbit المستخدمة للوضعين الخام وOrbit -
وصف تفصيلي للمشكلة
-
أي رسائل خطأ أو رموز ذات صلة
-
خطوات إعادة إنتاج المشكلة
الخطوات التالية
-
جرّب backend مختلفًا، أو عددًا مختلفًا من الكيوبتات، أو سلسلة ثنائية مخفية أخرى.
-
اقرأ درسنا التعليمي حول تحويل فورييه الكمومي لتتعلم كيفية تعريف استراتيجيات DD مخصصة مفعّلة بواسطة Orbit، بالإضافة إلى تطبيق DD على الدارات الديناميكية ذات القياسات في منتصف الدارة وعمليات التغذية الأمامية.
-
قم بزيارة مرجع API للحصول على وصف تفصيلي لجميع خيارات Orbit.
المراجع
-
كبح الأخطاء على المستوى المنطقي مدمجًا مع كشف الأخطاء الكمومية، Nature Communications (2026)
-
تحويل فورييه الكمومي باستخدام الدارات الديناميكية، Physical Review Letters (2024)
-
التشابك الفعال بعيد المدى باستخدام الدارات الديناميكية، PRX Quantum (2024)
-
تجارب توسيع رمز السطح على IBM Heron مع اتصالية heavy-hex، arXiv:2510.18847
-
تجارب رمز السطح على IBM Nighthawk مع اتصالية الشبكة المربعة، arXiv:2606.11496