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

وصف خوارزمية Grover

في هذا القسم، سنصف خوارزمية Grover. سنبدأ بمناقشة بوابات الاستعلام بالطور وكيفية بنائها، ثم ننتقل إلى وصف الخوارزمية نفسها. وأخيرًا، سنناقش باختصار كيف تُطبَّق هذه الخوارزمية بصورة طبيعية على مسائل البحث.

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

تستخدم خوارزمية Grover عمليات تُعرف بـبوابات الاستعلام بالطور. على النقيض من بوابة الاستعلام العادية UfU_f، المعرَّفة لدالة معطاة ff بالطريقة المعتادة الموصوفة سابقًا، تُعرَّف بوابة الاستعلام بالطور للدالة ff على النحو التالي:

Zfx=(1)f(x)xZ_f \vert x\rangle = (-1)^{f(x)} \vert x\rangle

لكل سلسلة xΣnx\in\Sigma^n.

يمكن تنفيذ العملية ZfZ_f باستخدام بوابة استعلام واحدة UfU_f كما يوضح هذا الرسم البياني:

دائرة كمومية تنفّذ بوابة Z_f باستخدام بوابة استعلام واحدة مع ظاهرة الركل بالطور

يستخدم هذا التنفيذ ظاهرة الركل بالطور، ويتطلب توفر كيوبت عمل واحد مهيَّأ في حالة \vert -\rangle. يبقى هذا الكيوبت في حالة \vert - \rangle بعد اكتمال التنفيذ، ويمكن إعادة استخدامه (لتنفيذ بوابات ZfZ_f لاحقة، مثلًا) أو تجاهله.

إضافة إلى العملية ZfZ_f، سنستخدم أيضًا بوابة استعلام بالطور لدالة OR ذات nn بت، المعرَّفة على النحو التالي لكل سلسلة xΣnx\in\Sigma^n:

OR(x)={0x=0n1x0n\mathrm{OR}(x) = \begin{cases} 0 & x = 0^n\\[0.5mm] 1 & x \neq 0^n \end{cases}

بشكل صريح، تعمل بوابة الاستعلام بالطور لدالة OR ذات nn بت على النحو الآتي:

ZORx={xx=0nxx0n.Z_{\mathrm{OR}} \vert x\rangle = \begin{cases} \vert x\rangle & x = 0^n \\[0.5mm] - \vert x\rangle & x \neq 0^n. \end{cases}

للتوضيح، هكذا تعمل ZORZ_{\mathrm{OR}} على حالات الأساس القياسية؛ ويُستنتج سلوكها على الحالات التعسفية من هذه العبارة بالخطية.

يمكن تنفيذ العملية ZORZ_{\mathrm{OR}} كدائرة كمومية بالبدء بدائرة بولية لدالة OR، ثم بناء عملية UORU_{\mathrm{OR}} (أي بوابة استعلام قياسية لدالة OR ذات nn بت) باستخدام الإجراء الموصوف في درس أسس الخوارزميات الكمومية، وأخيرًا عملية ZORZ_{\mathrm{OR}} باستخدام ظاهرة الركل بالطور كما هو موضح أعلاه. لاحظ أن العملية ZORZ_{\mathrm{OR}} لا تعتمد على الدالة ff وبالتالي يمكن تنفيذها بدائرة كمومية لا تحتوي على أي بوابات استعلام.

وصف الخوارزمية

الآن بعد أن توفرت لدينا العمليتان ZfZ_f وZORZ_{\mathrm{OR}}، يمكننا وصف خوارزمية Grover.

تشير الخوارزمية إلى عدد tt، وهو عدد التكرارات التي تُجريها (وبالتالي عدد الاستعلامات عن الدالة ff التي تحتاجها). لا تحدد خوارزمية Grover هذا العدد tt كما نصفها هنا، وسنناقش لاحقًا في الدرس كيفية اختياره.

خوارزمية Grover
  1. هيّئ سجلًا مؤلفًا من nn كيوبت Q\mathsf{Q} في الحالة الصفرية الكاملة 0n\vert 0^n \rangle، ثم طبّق عملية Hadamard على كل كيوبت في Q\mathsf{Q}.
  2. طبّق tt مرة العملية الوحدوية G=HnZORHnZfG = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f على السجل Q\mathsf{Q}.
  3. قِس كيوبتات Q\mathsf{Q} بالنسبة لقياسات الأساس القياسية وأخرج السلسلة الناتجة.

ستُسمى العملية G=HnZORHnZfG = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f المتكررة في الخطوة 2 بـعملية Grover طوال بقية هذا الدرس. إليك تمثيل دائرة كمومية لعملية Grover حين n=7n=7:

تمثيل دائرة كمومية لعملية Grover

في هذا الرسم، تظهر عملية ZfZ_f أكبر من ZORZ_{\mathrm{OR}} كإشارة بصرية غير رسمية تُوحي بأنها على الأرجح العملية ذات التكلفة الأعلى. بخاصة، حين نعمل ضمن نموذج الاستعلام، تتطلب ZfZ_f استعلامًا واحدًا بينما لا تحتاج ZORZ_{\mathrm{OR}} إلى أي استعلامات. أما إذا توفرت لدينا دائرة بولية للدالة ff، وحوّلناها إلى دائرة كمومية لـZfZ_f، فمن المعقول توقع أن تكون الدائرة الكمومية الناتجة أكبر وأكثر تعقيدًا من نظيرتها لـZORZ_{\mathrm{OR}}.

هنا رسم لدائرة كمومية للخوارزمية بأكملها حين n=7n=7 وt=3t=3. لقيم أكبر من tt، يمكن ببساطة إدراج نسخ إضافية من عملية Grover مباشرة قبل القياسات.

دائرة كمومية لخوارزمية Grover حين t=3

يمكن تطبيق خوارزمية Grover على مسألة البحث على النحو التالي:

  • اختر العدد tt في الخطوة 2. (يُناقش هذا لاحقًا في الدرس.)
  • شغّل خوارزمية Grover على الدالة ff، باستخدام الاختيار الذي اتخذناه لـtt، للحصول على سلسلة xΣnx\in\Sigma^n.
  • استعلم عن الدالة ff بالسلسلة xx لمعرفة ما إذا كانت حلًا صالحًا:
    • إذا كان f(x)=1f(x) = 1، فقد وجدنا حلًا، لذا يمكننا التوقف وإخراج xx.
    • وإلا، إذا كان f(x)=0f(x) = 0، فيمكننا إما تشغيل الإجراء مرة أخرى، ربما باختيار مختلف لـtt، أو نقرر الاستسلام وإخراج "لا يوجد حل".

بمجرد تحليل كيفية عمل خوارزمية Grover، سنرى أنه باختيار t=O(N)t = O(\sqrt{N})، نحصل على حل لمسألة البحث (إن وُجد) باحتمالية عالية.