مرحباً بالعالم: دائرتك الكمية الأولى
أنشئ حالة بِل (qubitان متشابكان) وشغِّلها بثلاث طرق:
- المحاكاة المثالية — نتائج مثالية، لا حاجة إلى حساب
- المحاكاة الضوضائية — تحاكي جهازاً حقيقياً، لا حاجة إلى حساب
- العتاد الكمي الحقيقي — يتطلب حساب IBM Quantum
بناء الدائرة
from qiskit import QuantumCircuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
qc.draw(output="mpl")
الخيار الأول: المحاكاة المثالية (لا حاجة إلى حساب)
يستخدم StatevectorSampler — محاكياً محلياً يُعطي نتائج مثالية خالية من الضوضاء.
from qiskit.primitives import StatevectorSampler
result = StatevectorSampler().run([qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
counts
from qiskit.visualization import plot_histogram
plot_histogram(counts)
الخيار الثاني: المحاكاة الضوضائية (لا حاجة إلى حساب)
يستخدم FakeManilaV2 — محاكياً محلياً يُحاكي جهاز IBM الكمي الحقيقي، بما في ذلك خصائص الضوضاء الخاصة به. يجب أولاً تحويل الدائرة (transpile) لتتوافق مع مجموعة البوابات واتصالية qubit الخاصة بالجهاز.
from qiskit_ibm_runtime import SamplerV2
from qiskit_ibm_runtime.fake_provider import FakeManilaV2
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
backend = FakeManilaV2()
pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_qc = pm.run(qc)
result = SamplerV2(mode=backend).run([isa_qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
counts
plot_histogram(counts)
الخيار الثالث: العتاد الكمي الحقيقي
يتطلب حساب IBM Quantum. راجع إعداد حساب IBM Quantum لمزيد من التفاصيل.
تخطَّ هذه الخلية إذا كنت قد حفظت بيانات الاعتماد في الإعدادات أو فعَّلت وضع المحاكاة — فسيتم حقنها تلقائياً عند الضغط على تشغيل. تشغيل هذه الخلية بقيم عشوائية سيُطغي على إعداداتك.
على المنصات الأخرى، شغِّل هذا أولاً لحفظ بيانات الاعتماد للجلسة:
from qiskit_ibm_runtime import QiskitRuntimeService
QiskitRuntimeService.save_account(
token="<your-api-key>",
instance="<your-crn>",
overwrite=True
)
ملاحظة: قد تستغرق المهام على العتاد الحقيقي بعض الوقت بحسب أوقات الانتظار في قائمة الانتظار. إذا كانت الخلية لا تزال تعمل، يمكنك التحقق من حالة مهمتك وعرض النتائج على quantum.cloud.ibm.com/workloads.
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
print(f"Running on {backend.name}")
pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_qc = pm.run(qc)
result = SamplerV2(mode=backend).run([isa_qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
counts
plot_histogram(counts)
ما الخطوة التالية؟
- الدروس التعليمية — أدلة خطوة بخطوة حول الخوارزميات، وتخفيف الأخطاء، والتحويل (transpilation)، وغير ذلك
- المسارات الدراسية — مسارات تعلُّم منظَّمة من أساسيات الكم إلى الحوسبة على نطاق واسع
- وضع الاختبار المحلي — تشغيل معظم دفاتر الملاحظات دون حساب IBM Quantum