انتقل إلى المحتوى الرئيسي

سير عمل التطوير

يصف مصطلح نمط Qiskit سير عمل التطوير الخاص بتقسيم المسائل المتخصصة وتحديد القدرات المطلوبة على مراحل. يتيح هذا الأسلوب تركيب القدرات الجديدة التي طوّرها باحثو IBM Quantum® (وغيرهم) بشكل سلس، ويفتح الباب أمام مستقبل تُنجز فيه مهام الحوسبة الكمومية عبر بنية تحتية حاسوبية هجينة قوية (CPU/GPU/QPU). تُنفّذ الكتل أو مجموعات الكتل خطوات النمط، إذ يوفر Qiskit SDK طبقة أساسية مهمة، مدعومًا بأدوات وخدمات أخرى طوّرتها IBM Quantum أو مجتمع المصادر المفتوحة الكمومية. تُمكّن أنماط Qiskit خبراء المجالات من تحديد مسألة ما وتأليف الأدوات (الكتل) التي تحقق نمط Qiskit. ويمكن بعدها تنفيذ هذا النمط محليًا، أو عبر الخدمات السحابية، أو نشره باستخدام Qiskit Serverless.

الخطوات الأربع لنمط Qiskit هي كما يلي:

  • تعيين المسألة إلى دوائر كمومية وعوامل رياضية
  • تحسين الأداء للعتاد المستهدف
  • تنفيذ العمليات على العتاد المستهدف
  • معالجة النتائج لاحقًا

تُفصَّل كل خطوة في الأقسام أدناه.

تعيين المسألة إلى دوائر كمومية وعوامل رياضية

تصف هذه الخطوة كيف يبدأ المستخدم بمسألة كلاسيكية ويعمل على تحديد طريقة تعيينها على حاسوب كمومي. فمثلًا، في تطبيقات كالكيمياء ومحاكاة الكم، تتضمن هذه الخطوة عادةً بناء دائرة كمومية تمثّل الهاملتوني الذي تسعى إلى حله. وفي هذه الخطوة، وبالنسبة لبعض المسائل، قد يكون من المفيد تحديد تعيين المسألة على الكيوبتات في شبكة heavy-hex (أو gross) الخاصة بعتاد IBM® منذ البداية، إذا كان هيكل المسألة يناسب التحسين المبكر. كما يستحق التفكير في هذه المرحلة بنتيجة الخوارزمية المحددة استعدادًا لخطوة التنفيذ اللاحقة — فمثلًا، إذا كانت النتيجة المرجوة تتضمن استنتاج دوال الارتباط باستخدام اختبارات Hadamard، فقد تستعد لاستخدام Sampler، في حين أن تحديد المتغيرات القابلة للقياس يستخدم Estimator ويوفر خيارات كثيرة لتخفيف الأخطاء.

عادةً ما يكون ناتج هذه الخطوة مجموعة من الدوائر أو العوامل الكمومية التي يمكن تحسينها للعتاد في الخطوة التالية.

التحسين للعتاد المستهدف

في هذه الخطوة تأخذ الدوائر (أو العوامل) المجردة الناتجة عن خطوة التعيين وتُجري عليها سلسلة من التحسينات. يمكن أن يشمل ذلك تعيين مسار وتخطيط الدائرة على كيوبتات العتاد الفعلية، والتحويل إلى بوابات الأساس الخاصة بالعتاد، وتقليل عدد العمليات، كل ذلك بهدف تحسين احتمالية النجاح في خطوة التنفيذ اللاحقة. في هذه المرحلة قد ترغب أيضًا في اختبار دوائرك على محاكي قبل التنفيذ على العتاد الحقيقي في الخطوة التالية.

خلال هذه الخطوة، يجب تحويل الدوائر المجردة عبر transpilation إلى دوائر بنية مجموعة التعليمات (ISA). دائرة ISA هي دائرة لا تحتوي إلا على بوابات يفهمها العتاد المستهدف (بوابات الأساس)، وأي بوابات متعددة الكيوبتات تحتاج إلى احترام قيود الاتصال (خريطة الاقتران). لا يمكن تشغيل سوى دوائر ISA على عتاد IBM باستخدام IBM Qiskit Runtime.

التنفيذ على العتاد المستهدف

تتضمن هذه الخطوة تشغيل دوائرك على العتاد وتنتج مخرجات الحساب الكمومي. يمكن تنفيذ دوائر ISA الناتجة عن الخطوة السابقة باستخدام إما Sampler أو Estimator primitive من Qiskit Runtime، مُهيَّأة محليًا على حاسوبك أو من مجموعة حواسيب أو بيئة حوسبة هجينة أخرى. ويمكن تنفيذها في Batch الذي يتيح transpilation متوازيًا لكفاءة حسابية كلاسيكية — أو في Session الذي يتيح تنفيذ المهام التكرارية بكفاءة دون تأخيرات في قائمة الانتظار. في هذه الخطوة، يتوفر أيضًا خيار ضبط بعض تقنيات قمع الأخطاء وتخفيفها التي يوفرها Qiskit Runtime.

يختلف ناتج هذه الخطوة بحسب ما إذا كنت تستخدم Sampler أو Estimator primitive. إذا كنت تستخدم Sampler، سيكون الناتج قياسات لكل لقطة (shot) على شكل سلاسل بتية (bitstrings). أما إذا كنت تستخدم Estimator، فسيكون الناتج قيم توقع للمتغيرات القابلة للقياس المقابلة للكميات الفيزيائية أو دوال التكلفة.

معالجة النتائج لاحقًا

تتضمن هذه الخطوة الأخيرة ربط المخرجات من الخطوة السابقة ببعضها للحصول على النتيجة المرجوة. يمكن أن يشمل ذلك مجموعة من خطوات المعالجة الكلاسيكية للبيانات كتصوير النتائج، وتقنيات تخفيف أخطاء القراءة، وهامشة توزيعات الاحتمال شبه الاحتمالية للحصول على نتائج على مجموعات أصغر من الكيوبتات، أو الانتقاء اللاحق بناءً على خصائص متأصلة في المسألة كمجموع الدوران، أو التناظر، أو حفظ الجسيمات بإزالة المتغيرات القابلة للقياس غير الفيزيائية.

مع انتقال المجال من بناء الدوائر المخصصة إلى مسارات العمل على نطاق المنفعة، فإن المرونة وسهولة استخدام أنماط Qiskit لتأليف الخطوات المختلفة للنمط تفتح الحوسبة الكمومية أمام طيف واسع من التطبيقات والتقنيات لاستخدام يسير من قِبَل علماء الحوسبة الكمومية.