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

اختيار عدد التكرارات

أثبتنا أن متجه الحالة للسجل Q\mathsf{Q} في خوارزمية غروفر يبقى في الفضاء الثنائي الأبعاد الممتد بين A0\vert A_0\rangle وA1\vert A_1\rangle بمجرد تنفيذ خطوة التهيئة.

الهدف هو إيجاد عنصر xA1x\in A_1، وسيتحقق هذا الهدف إذا تمكنا من الحصول على الحالة A1\vert A_1\rangle — لأنه إذا قسنا هذه الحالة، سنحصل بالتأكيد على نتيجة قياس xA1x\in A_1. بما أن حالة Q\mathsf{Q} بعد tt تكرار في الخطوة الثانية هي

Gtu=cos((2t+1)θ)A0+sin((2t+1)θ)A1,G^t \vert u \rangle = \cos\bigl((2t + 1)\theta\bigr) \vert A_0\rangle + \sin\bigl((2t + 1)\theta\bigr) \vert A_1\rangle,

ينبغي اختيار tt بحيث يكون

A1Gtu=sin((2t+1)θ)\langle A_1 \vert G^t \vert u \rangle = \sin((2t + 1)\theta)

أقرب ما يمكن إلى 11 بالقيمة المطلقة، لزيادة احتمالية الحصول على xA1x\in A_1 من القياس. لأي زاوية θ(0,2π)\theta \in (0,2\pi)، تتذبذب قيمة sin((2t+1)θ)\sin((2t + 1)\theta) كلما زاد tt، وإن لم تكن بالضرورة دورية — ولا ضمان بأن نحصل على القيمة نفسها مرتين.

بطبيعة الحال، إضافة إلى جعل احتمالية الحصول على عنصر xA1x\in A_1 من القياس كبيرة، نريد أيضًا اختيار tt بأصغر قيمة ممكنة، لأن tt تطبيقات للعملية GG تتطلب tt استعلامًا للدالة ff. نظرًا لأننا نسعى إلى جعل sin((2t+1)θ)\sin( (2t + 1) \theta) قريبة من 11 بالقيمة المطلقة، طريقة طبيعية لذلك هي اختيار tt بحيث

(2t+1)θπ2.(2t + 1) \theta \approx \frac{\pi}{2}.

حل هذه المعادلة لإيجاد tt يُعطي

tπ4θ12.t \approx \frac{\pi}{4\theta} - \frac{1}{2}.

بالطبع، tt يجب أن يكون عددًا صحيحًا، لذا لن نتمكن بالضرورة من الوصول إلى هذه القيمة تمامًا — لكن ما يمكننا فعله هو أخذ أقرب عدد صحيح لهذه القيمة، وهو

t=π4θ.t = \Bigl\lfloor \frac{\pi}{4\theta} \Bigr\rfloor.

هذا هو عدد التكرارات الموصى به لخوارزمية غروفر. مع تقدم التحليل، سنرى أن قرب هذا العدد الصحيح من القيمة المستهدفة يؤثر بشكل طبيعي على أداء الخوارزمية.

(ملاحظة جانبية: إذا كانت القيمة المستهدفة π/(4θ)1/2\pi/(4\theta) - 1/2 تقع بالضبط في منتصف المسافة بين عددين صحيحين، فإن هذا التعبير لـtt ينتج بالتقريب للأعلى. يمكننا بدلًا من ذلك التقريب للأسفل، وهو أمر منطقي لأنه يعني استعلامًا أقل — لكن هذا ثانوي وغير مهم لأغراض هذا الدرس.)

بالتذكر أن قيمة الزاوية θ\theta تُعطى بالصيغة

θ=sin1(A1N),\theta = \sin^{-1}\biggl(\sqrt{\frac{\vert A_1\vert}{N}}\biggr),

نرى أن عدد التكرارات الموصى به tt يعتمد على عدد السلاسل في A1A_1. هذا يطرح تحديًا إذا لم نعرف عدد الحلول كما سنناقش لاحقًا.

أولًا، لنركز على الحالة التي توجد فيها سلسلة واحدة فقط xx بحيث f(x)=1f(x)=1. بصيغة أخرى، نحن نأخذ بعين الاعتبار نسخة من مسألة البحث الفريد. في هذه الحالة لدينا

θ=sin1(1N),\theta = \sin^{-1}\biggl( \sqrt{\frac{1}{N}} \biggr),

والذي يمكن تقريبه بشكل مناسب بـ

θ=sin1(1N)1N\theta = \sin^{-1}\biggl( \sqrt{\frac{1}{N}} \biggr) \approx \sqrt{\frac{1}{N}}

عندما يصبح NN كبيرًا. إذا عوَّضنا θ=1/N\theta = 1/\sqrt{N} في التعبير

t=π4θt = \Bigl\lfloor \frac{\pi}{4\theta} \Bigr\rfloor

نحصل على

t=π4N.t = \Bigl\lfloor \frac{\pi}{4}\sqrt{N} \Bigr\rfloor.

بالتذكر أن tt ليس فقط عدد مرات تنفيذ العملية GG، بل هو أيضًا عدد الاستعلامات للدالة ff التي تتطلبها الخوارزمية، نرى أننا في طريقنا نحو الحصول على خوارزمية تتطلب O(N)O(\sqrt{N}) استعلامًا.

الآن سنتحقق من مدى نجاح الاختيار الموصى به لـtt. يمكن التعبير بصورة صريحة عن احتمالية أن يكشف القياس النهائي عن الحل الفريد على النحو التالي:

p(N,1)=sin2((2t+1)θ).p(N,1) = \sin^2 \bigl( (2t + 1) \theta \bigr).

الوسيطة الأولى، NN، تشير إلى عدد العناصر التي نبحث بينها، والوسيطة الثانية، وهي 11 هنا، تشير إلى عدد الحلول. بعد قليل سنستخدم نفس التدوين بصورة أعم، حيث تتعدد الحلول.

فيما يلي جدول لاحتمالات النجاح مع تزايد القيم N=2nN = 2^n.

Np(N,1)20.500000000041.000000000080.9453125000160.9613189697320.9991823155640.99658568081280.99561986572560.99994704215120.999448026210240.999461244720480.999996847840960.999945346181920.9999157752163840.9999997811327680.9999868295655360.9999882596\begin{array}{ll} N & p(N,1)\\ \hline 2 & 0.5000000000\\ 4 & 1.0000000000\\ 8 & 0.9453125000\\ 16 & 0.9613189697\\ 32 & 0.9991823155\\ 64 & 0.9965856808\\ 128 & 0.9956198657\\ 256 & 0.9999470421\\ 512 & 0.9994480262\\ 1024 & 0.9994612447\\ 2048 & 0.9999968478\\ 4096 & 0.9999453461\\ 8192 & 0.9999157752\\ 16384 & 0.9999997811\\ 32768 & 0.9999868295\\ 65536 & 0.9999882596 \end{array}

لاحظ أن هذه الاحتمالات ليست في تزايد صارم. بالتحديد، نلاحظ ظاهرة مثيرة للاهتمام عند N=4N=4، حيث نحصل على الحل بيقين تام. غير أنه يمكن إثبات بصفة عامة أن

p(N,1)11Np(N,1) \geq 1 - \frac{1}{N}

لجميع قيم NN، لذا فإن احتمالية النجاح تتجه نحو 11 في النهاية مع تكبُّر NN، كما توحي القيم أعلاه. هذا جيد!

لكن لاحظ أن حتى حدًا ضعيفًا كـp(N,1)1/2p(N,1) \geq 1/2 يُثبت فائدة خوارزمية غروفر. لأيِّ نتيجة قياس xx نحصل عليها من تشغيل الإجراء، يمكننا دائمًا التحقق من أن f(x)=1f(x) = 1 باستعلام واحد لـff. وإذا فشلنا في الحصول على السلسلة الفريدة xx التي يحقق f(x)=1f(x) = 1 باحتمالية على الأكثر 1/21/2 من تشغيل الإجراء مرة واحدة، فإنه بعد mm تشغيل مستقل للإجراء سيكون احتمالية فشلنا في الحصول على هذه السلسلة الفريدة xx على الأكثر 2m2^{-m}. أي باستخدام O(mN)O(m \sqrt{N}) استعلامًا لـff، سنحصل على الحل الفريد xx باحتمالية لا تقل عن 12m1 - 2^{-m}. استخدام الحد الأفضل p(N,1)11/Np(N,1) \geq 1 - 1/N يكشف أن احتمالية إيجاد xA1x\in A_1 باستخدام هذه الطريقة هي في الواقع لا تقل عن 1Nm1 - N^{-m}.

حلول متعددة

مع تغيُّر عدد العناصر في A1A_1، تتغير الزاوية θ\theta كذلك، مما قد يؤثر تأثيرًا كبيرًا على احتمالية نجاح الخوارزمية. للإيجاز، لنكتب s=A1s = \vert A_1 \vert لتدل على عدد الحلول، وكما في السابق سنفترض أن s1s\geq 1.

كمثال تحفيزي، لنفترض أن لدينا s=4s = 4 حلول بدلًا من حل واحد كما تناولنا أعلاه. هذا يعني أن

θ=sin1(4N),\theta = \sin^{-1}\biggl( \sqrt{\frac{4}{N}} \biggr),

وهو تقريبًا ضعف الزاوية في حالة A1=1\vert A_1 \vert = 1 عندما يكون NN كبيرًا. لنفترض أننا لم ننتبه لذلك، واخترنا نفس قيمة tt كما في حالة الحل الفريد:

t=π4sin1(1/N).t = \Biggl\lfloor \frac{\pi}{4\sin^{-1}\bigl(1/\sqrt{N}\bigr)}\Biggr\rfloor.

ستكون النتيجة كارثية كما يكشف الجدول التالي للاحتمالات.

Nاحتمالية النجاح41.000000000080.5000000000160.2500000000320.0122070313640.02038076891280.01445307582560.00007050585120.001931074110240.002300908320480.000007750640960.000230150281920.0003439882163840.0000007053327680.0000533810655360.0000472907\begin{array}{ll} N & \text{احتمالية النجاح}\\ \hline 4 & 1.0000000000\\ 8 & 0.5000000000\\ 16 & 0.2500000000\\ 32 & 0.0122070313\\ 64 & 0.0203807689\\ 128 & 0.0144530758\\ 256 & 0.0000705058\\ 512 & 0.0019310741\\ 1024 & 0.0023009083\\ 2048 & 0.0000077506\\ 4096 & 0.0002301502\\ 8192 & 0.0003439882\\ 16384 & 0.0000007053\\ 32768 & 0.0000533810\\ 65536 & 0.0000472907 \end{array}

هذه المرة تتجه احتمالية النجاح نحو 00 كلما اتجه NN نحو اللانهاية. يحدث هذا لأننا في الواقع ندور بسرعة ضعف ما كنا ندور في حالة الحل الفريد، فنتخطى الهدف A1\vert A_1\rangle وننتهي قرب A0-\vert A_0\rangle.

لكن إذا استخدمنا بدلًا من ذلك الاختيار الموصى به لـtt، وهو

t=π4θt = \Bigl\lfloor \frac{\pi}{4\theta}\Bigr\rfloor

من أجل

θ=sin1(sN),\theta = \sin^{-1}\biggl( \sqrt{\frac{s}{N}} \biggr),

فإن الأداء سيكون أفضل. بدقة أكبر، هذا الاختيار لـtt يؤدي إلى النجاح باحتمالية مرتفعة.

Np(N,4)41.000000000080.5000000000161.0000000000320.9453125000640.96131896971280.99918231552560.99658568085120.995619865710240.999947042120480.999448026240960.999461244781920.9999968478163840.9999453461327680.9999157752655360.9999997811\begin{array}{ll} N & p(N,4)\\ \hline 4 & 1.0000000000\\ 8 & 0.5000000000\\ 16 & 1.0000000000\\ 32 & 0.9453125000\\ 64 & 0.9613189697\\ 128 & 0.9991823155\\ 256 & 0.9965856808\\ 512 & 0.9956198657\\ 1024 & 0.9999470421\\ 2048 & 0.9994480262\\ 4096 & 0.9994612447\\ 8192 & 0.9999968478\\ 16384 & 0.9999453461\\ 32768 & 0.9999157752\\ 65536 & 0.9999997811 \end{array}

تعميمًا لما ادُّعي سابقًا، يمكن إثبات أن

p(N,s)1sN,p(N,s) \geq 1 - \frac{s}{N},

حيث نستخدم التدوين المقترح سابقًا: p(N,s)p(N,s) تدل على احتمالية أن تكشف خوارزمية غروفر المُشغَّلة لـtt تكرارًا عن حل عندما يوجد ss حلًا من بين NN احتمالًا.

هذا الحد الأدنى 1s/N1 - s/N لاحتمالية النجاح غريب قليلًا من حيث إن كثرة الحلول تعني حدًا أدنى أضعف — لكن بافتراض أن ss أصغر بكثير من NN، نستنتج مع ذلك أن احتمالية النجاح مرتفعة بشكل معقول. وكما من قبل، مجرد كون p(N,s)p(N,s) كبيرًا بشكل معقول يُثبت فائدة الخوارزمية.

يصادف أيضًا أن

p(N,s)sN.p(N,s) \geq \frac{s}{N}.

هذا الحد الأدنى يصف احتمالية أن تكون سلسلة xΣnx\in\Sigma^n مختارة عشوائيًا بتوزيع منتظم حلًا — لذا فإن خوارزمية غروفر دائمًا تؤدي أداءً أفضل على الأقل من التخمين العشوائي. (في الواقع، عندما t=0t=0، خوارزمية غروفر هي تخمين عشوائي.)

الآن لنلقِ نظرة على عدد التكرارات (ومن ثمَّ عدد الاستعلامات)

t=π4θ,t = \Bigl\lfloor \frac{\pi}{4\theta}\Bigr\rfloor,

من أجل

θ=sin1(sN).\theta = \sin^{-1}\biggl(\sqrt{\frac{s}{N}}\biggr).

لكل α[0,1]\alpha \in [0,1]، يصح أن sin1(α)α\sin^{-1}(\alpha)\geq \alpha، وبالتالي

θ=sin1(sN)sN.\theta = \sin^{-1}\left(\sqrt{\frac{s}{N}}\right) \geq \sqrt{\frac{s}{N}}.

هذا يستلزم أن

tπ4θπ4Ns.t \leq \frac{\pi}{4\theta} \leq \frac{\pi}{4}\sqrt{\frac{N}{s}}.

وهذا يُترجَم إلى توفير في عدد الاستعلامات كلما زاد ss. بالتحديد، عدد الاستعلامات المطلوبة هو

O(Ns).O\biggl(\sqrt{\frac{N}{s}}\biggr).

عدد الحلول غير المعروف

إذا كان عدد الحلول s=A1s = \vert A_1 \vert غير معروف، فمطلوب نهج مختلف، إذ ليس لدينا في هذه الحالة معرفة بـss تُرشدنا في اختيار tt. في الواقع، توجد عدة نهج.

نهج بسيط هو اختيار

t{1,,πN/4}t \in \Bigl\{ 1,\ldots,\bigl\lfloor\pi\sqrt{N}/4\bigr\rfloor \Bigr\}

بشكل عشوائي منتظم. اختيار tt بهذه الطريقة يجد دائمًا حلًا (إذا وُجد) باحتمالية تزيد على 40%، وإن كان هذا غير واضح ويستلزم تحليلًا لن نُدرجه هنا. لكنه منطقي بالنظر إلى الصورة الهندسية: تدوير حالة Q\mathsf{Q} عددًا عشوائيًا من المرات يشبه اختيار متجه وحدة عشوائي في الفضاء الممتد بـA0\vert A_0\rangle وA1\vert A_1\rangle، حيث من المرجح أن يكون معامل A1\vert A_1\rangle كبيرًا بشكل معقول. بتكرار هذا الإجراء والتحقق من النتيجة بنفس الطريقة المذكورة سابقًا، يمكن جعل احتمالية إيجاد الحل قريبة جدًا من 11.

يوجد طريقة مُحسَّنة تجد حلًا حين يوجد باستخدام O(N/s)O(\sqrt{N/s}) استعلامًا، حتى حين يكون عدد الحلول ss غير معروف، وتتطلب O(N)O(\sqrt{N}) استعلامًا لتحديد أنه لا توجد حلول حين s=0s=0.

الفكرة الأساسية هي اختيار tt بشكل منتظم عشوائي من المجموعة {1,,T}\{1,\ldots,T\} بصورة تكرارية مع زيادة قيم TT. بالتحديد، يمكننا البدء بـT=1T = 1 وزيادتها أسيًا، مع إنهاء العملية فور العثور على حل وتقييد TT لتجنب إضاعة الاستعلامات حين لا يوجد حل. تستفيد هذه العملية من حقيقة أنه كلما زادت الحلول، قلَّت الاستعلامات اللازمة. غير أن الأمر يستلزم بعض الدقة في الموازنة بين معدل زيادة TT واحتمالية النجاح في كل تكرار. (أخذ T54TT \leftarrow \lceil \frac{5}{4}T\rceil يجدي مثلًا، كما يُبيِّن التحليل. أما مضاعفة TT فلا يجدي — وهذا يبيَّن أنها زيادة سريعة جدًا.)

الحالات البديهية

طوال التحليل الذي مررنا به، افترضنا أن عدد الحلول غير صفري. في الواقع، بالإشارة إلى المتجهات

A0=1A0xA0xA1=1A1xA1x\begin{aligned} \vert A_0\rangle &= \frac{1}{\sqrt{\vert A_0\vert}} \sum_{x\in A_0} \vert x\rangle \\ \vert A_1\rangle &= \frac{1}{\sqrt{\vert A_1\vert}} \sum_{x\in A_1} \vert x\rangle \end{aligned}

افترضنا ضمنيًا أن A0A_0 وA1A_1 كلتيهما غير فارغتين. هنا سنتناول باختصار ما يحدث حين تكون إحدى هاتين المجموعتين فارغة.

قبل الخوض في التحليل، دعنا نلاحظ الأمر الجلي: إذا كانت كل سلسلة xΣnx\in\Sigma^n حلًا، فسنرى حلًا عند القياس؛ وحين لا توجد أي حلول، لن نرى أيًا منها. لا حاجة في بعض الأحيان للذهاب أبعد من هذا.

يمكننا مع ذلك التحقق سريعًا من الرياضيات لهذه الحالات البديهية. الحالة التي تكون فيها إحدى A0A_0 وA1A_1 فارغة تحدث حين تكون ff ثابتة؛ A1A_1 فارغة حين f(x)=0f(x) = 0 لكل xΣnx\in\Sigma^n، وA0A_0 فارغة حين f(x)=1f(x) = 1 لكل xΣnx\in\Sigma^n. هذا يعني أن

Zfu=±u,Z_f \vert u\rangle = \pm \vert u\rangle,

وبالتالي

Gu=(2uuI)Zfu=±(2uuI)u=±u.\begin{aligned} G \vert u \rangle & = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) Z_f\vert u\rangle \\ & = \pm \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) \vert u\rangle \\ & = \pm \vert u\rangle. \end{aligned}

إذن، بصرف النظر عن عدد التكرارات tt التي نُجريها في هذه الحالات، ستكشف القياسات دائمًا عن سلسلة عشوائية منتظمة xΣnx\in\Sigma^n.