البحث غير المنظم
ملخص
سنبدأ بوصف المشكلة التي تحلها خوارزمية Grover. كالمعتاد، سنستخدم للدلالة على الأبجدية الثنائية طوال هذا النقاش.
لنفترض أن
هي دالة من السلاسل الثنائية بطول إلى البتات. سنفترض أننا نستطيع حساب هذه الدالة بكفاءة، لكنها فيما عدا ذلك اعتباطية ولا يمكننا الاعتماد على وجود بنية خاصة أو تنفيذ محدد يلائم احتياجاتنا.
ما تفعله خوارزمية Grover هو البحث عن سلسلة تُحقق سنُسمي مثل هذه السلاسل حلولًا لمسألة البحث. إذا وُجدت حلول متعددة، يُعدّ أيٌّ منها إجابةً صحيحة، وإذا لم يوجد أي حل فإن الإجابة الصحيحة تستلزم التصريح بعدم وجود حلول.
تُوصف هذه المهمة بمسألة بحث غير منظم (unstructured search) لأننا لا يمكننا الاعتماد على وجود أي بنية خاصة في تجعل المهمة سهلة. نحن لا نبحث في قائمة مرتبة أو داخل هيكل بيانات مُصمَّم خصيصًا لتسهيل البحث، بل نبحث في جوهره عن إبرة في كومة قش.
بشكل حدسي، يمكننا تخيّل أن لدينا دائرة بوليانية بالغة التعقيد تحسب ، ويمكننا بسهولة تشغيل هذه الدائرة على سلسلة مُدخَلة مختارة. لكن لأن الدائرة بالغة التعقيد، لا أمل لنا في فهمها بفحصها (سوى امتلاك القدرة على تقييمها على سلاسل مُدخَلة مختارة).
إحدى طرق أداء مهمة البحث هذه كلاسيكيًا هي ببساطة المرور عبر جميع السلاسل ، وتقييم على كل منها للتحقق من كونها حلًا أم لا. من الآن فصاعدًا، لنكتب
لاختصار العبارة. يوجد سلسلة في ، ويستلزم المرور عبرها جميعًا تقييمًا لـ . انطلاقًا من افتراض أننا مقيّدون بتقييم على مدخلات مختارة، هذا أفضل ما يمكننا تحقيقه بخوارزمية حتمية إذا أردنا ضمان النجاح. مع خوارزمية احتمالية، يمكن الأمل في توفير الوقت باختيار سلاسل مُدخَلة عشوائية لـ ، لكننا سنحتاج كذلك إلى تقييمًا لـ إذا أردنا لهذه الطريقة أن تنجح باحتمال مرتفع.
تحل خوارزمية Grover مسألة البحث هذه باحتمال مرتفع بـ تقييمًا فقط لـ . وللتوضيح، يجب أن تتم تقييمات الدالة هذه في تراكب (in superposition)، على غرار خوارزميات الاستعلام الكمومي التي نوقشت في درس خوارزميات الاستعلام الكمومي، بما فيها خوارزمية Deutsch، وخوارزمية Deutsch-Jozsa، وخوارزمية Simon. على خلاف تلك الخوارزميات، تتبنى خوارزمية Grover نهجًا تكراريًا: تُقيِّم على تراكبات سلاسل المُدخَلات وتتخلل هذه التقييمات بعمليات أخرى ذات تأثير في إنشاء أنماط تداخل (interference patterns)، مما يُفضي إلى حل باحتمال مرتفع (إذا وُجد) بعد تكرارًا.
صياغة رسمية للمسألة
سنُصوِّغ المسألة التي تحلها خوارزمية Grover بشكل رسمي باستخدام نموذج الحساب بالاستعلام (query model). أي سنفترض أن بإمكاننا الوصول إلى الدالة عبر بوابة استعلام مُعرَّفة بالطريقة المعتادة:
لكل و . هذا هو تأثير على حالات الأساس القياسية، ويُحدَّد تأثيرها عمومًا بالخطية.
كما نُوقش في درس أسس الخوارزميات الكمومية، إذا كان لدينا دائرة بوليانية لحساب ، يمكننا تحويل وصف تلك الدائرة إلى دائرة كمومية تُنفِّذ (باستخدام عدد من كيوبتات مساحة العمل التي تبدأ وتنتهي الحساب في حالة ). لذا، رغم استخدامنا نموذج الاستعلام لتصوير المسألة التي تحلها خوارزمية Grover، فإنها ليست مقتصرة على هذا النموذج؛ يمكن تشغيل خوارزمية Grover على أي دالة تتوفر لها دائرة بوليانية.
إليك صياغة دقيقة للمسألة، التي تُسمى بحث (Search) لأننا نبحث عن حل، أي عن سلسلة تجعل تُقيَّم بـ .
لاحظ أن هذه ليست مسألة وعد (promise problem) — الدالة اعتباطية. سيكون مفيدًا مع ذلك تناول النوع التالي من المسألة مع وعد، حيث يُضمن وجود حل واحد فقط. ظهرت هذه المسألة كمثال على مسألة وعد في درس خوارزميات الاستعلام الكمومي.
لاحظ أيضًا أن مسألة Or المذكورة في الدرس نفسه وثيقة الصلة بمسألة البحث. في تلك المسألة، الهدف هو تحديد ما إذا كان يوجد حل أم لا، في مقابل إيجاد الحل فعليًا.