خوارزمية لاس فيغاس

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

تستخدم أساليب البحث المنهجية للمسائل الصعبة حسابيًا، مثل بعض متغيرات خوارزمية ديفيس-بوتنام لإرضاء القضايا ( SAT)، قرارات غير حتمية، وبالتالي يمكن اعتبارها أيضًا خوارزميات لاس فيغاس. [ 2 ]

تاريخ

طُرحت خوارزميات لاس فيغاس على يد لازلو باباي عام 1979، في سياق مسألة تماثل الرسوم البيانية ، كبديل لخوارزميات مونت كارلو . [ 3 ] وقدّم باباي [ 4 ] مصطلح "خوارزمية لاس فيغاس" مصحوبًا بمثال يتضمن رمي العملة: تعتمد الخوارزمية على سلسلة من رميات العملة المستقلة، وهناك احتمال ضئيل للفشل (عدم الحصول على نتيجة). ومع ذلك، وعلى عكس خوارزميات مونت كارلو، تضمن خوارزمية لاس فيغاس صحة أي نتيجة يتم الإبلاغ عنها.

مثال

دالة ` getRandomInteger ( int n )` : ` Random rand = new Random ( ); return rand.nextInt ( n ) ; }`// خوارزمية لاس فيغاس، بافتراض أن a عبارة عن مصفوفة طولها n. // الهدف: إرجاع فهرس صحيح k بحيث يكون a[k] == 1. int lasVegasAlgorithm ( int [] a ) { int n = a . length ; while ( true ) { int k = getRandomInteger ( n ); if ( a [ k ] == 1 ) { return k ; } } }

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

تعريف

يُقدّم هذا القسم الشروط التي تُميّز كون الخوارزمية من نوع لاس فيغاس.

تعتبر الخوارزمية A خوارزمية لاس فيغاس لفئة المشكلة X، إذا [ 5 ]

  1. عندما تُرجع الدالة حلاً s لمسألة معينة x∈X، فإن s مضمون أن يكون حلاً صحيحاً للمسألة x.
  2. في كل حالة معينة x، يكون زمن تشغيل A متغيرًا عشوائيًا RT A,x

توجد ثلاثة مفاهيم للاكتمال في خوارزميات لاس فيغاس:

  • يمكن ضمان أن خوارزميات لاس فيغاس الكاملة قادرة على حل كل مشكلة قابلة للحل في غضون وقت التشغيل t max، حيث t max هو ثابت يعتمد على الحالة.

لنفترض أن P(RT A,x ≤ t) تُمثل احتمال أن تجد A حلاً لمسألة قابلة للحل x في زمن t، فإن A تكون كاملة تمامًا إذا كان لكل x يوجد

بعض القيم القصوى لـ t بحيث يكون P(RT A,x ≤ t max ) = 1.

  • تُحلّ خوارزميات لاس فيغاس شبه الكاملة كل مشكلة باحتمالية تتقارب إلى 1 مع اقتراب زمن التشغيل من اللانهاية. وبالتالي، تكون A شبه كاملة إذا كان لكل حالة x، lim t→∞ P(RT A,x ≤ t) = 1.
  • خوارزميات لاس فيغاس غير المكتملة أساساً هي خوارزميات لاس فيغاس التي لا تكون مكتملة تقريباً.

إن الاكتمال التقريبي ذو أهمية نظرية في المقام الأول، حيث أن الحدود الزمنية لإيجاد الحلول عادة ما تكون كبيرة جدًا بحيث لا يمكن استخدامها عمليًا.

سيناريوهات التطبيق

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

  • النوع 1: لا توجد حدود زمنية، مما يعني أن الخوارزمية تعمل حتى تجد الحل.
  • النوع الثاني: هناك حد زمني أقصى t لإيجاد النتيجة.
  • النوع 3: يتم تحديد فائدة الحل من خلال الوقت اللازم لإيجاد الحل.

(النوع 1 والنوع 2 هما حالتان خاصتان من النوع 3.)

بالنسبة للنوع الأول حيث لا يوجد حد زمني، يمكن أن يمثل متوسط ​​وقت التشغيل سلوك وقت التشغيل. أما بالنسبة للنوع الثاني، فالأمر مختلف.

هنا، P ( RTt max )، وهو احتمال إيجاد حل في غضون الوقت، يصف سلوك وقت التشغيل.

في حالة النوع 3، لا يمكن تمثيل سلوك وقت التشغيل إلا بواسطة دالة توزيع وقت التشغيل rtd : R → [0,1] المعرفة على أنها rtd ( t ) = P ( RTt ) أو تقريبها.

يُعد توزيع وقت التشغيل (RTD) الطريقة المميزة لوصف سلوك وقت التشغيل لخوارزمية لاس فيغاس.

باستخدام هذه البيانات، يمكننا بسهولة الحصول على معايير أخرى مثل متوسط ​​وقت التشغيل، والانحراف المعياري ، والوسيط، والنسب المئوية، أو احتمالات النجاح P ( RTt ) لحدود زمنية عشوائية t .

التطبيقات

التشبيه

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

فرز سريع عشوائي

دالة فرز سريع عشوائي ( a : قائمة [ int ]) -> لا شيء : إذا كان طول ( a ) يساوي 1 : أرجع A # A مرتبة. وإلا : i : عدد صحيح = عشوائي . randrange ( 1 ، طول ( a )) # سيأخذ عددًا عشوائيًا في النطاق [1، طول (a)) x : عدد صحيح = a [ i ] # عنصر المحور# قسّم المصفوفة a إلى عناصر < x و x و > x، كما هو موضح في الشكل أعلاه. # نفّذ خوارزمية الفرز السريع على a[1 : i- 1] و A[i + 1 : n]. # اجمع النتائج للحصول على مصفوفة مرتبة.

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

  • أسوأ حالة Θ( n 2 ) عندما يكون العنصر المحوري هو أصغر عنصر أو أكبر عنصر.
تي(ن)=تي(0)+تي(ن-1)+Θ(ن){\displaystyle T(n)=T(0)+T(n-1)+\Theta (n)}
تي(ن)=Θ(1)+تي(ن-1)+Θ(ن){\displaystyle T(n)=\Theta (1)+T(n-1)+\Theta (n)}
تي(ن)=تي(ن-1)+Θ(ن){\displaystyle T(n)=T(n-1)+\Theta (n)}
تي(ن)=Θ(ن2){\displaystyle T(n)=\Theta (n^{2})}
  • ومع ذلك، من خلال العشوائية، حيث يتم اختيار المحور بشكل عشوائي ويكون بالضبط قيمة وسطية في كل مرة، يمكن إجراء QuickSort في Θ( n log n ).
تي(ن)2*تي(ن/2)+Θ(ن){\displaystyle T(n)\leq 2*T(n/2)+\Theta (n)}
تي(ن)=Θ(نسجل(ن)){\displaystyle T(n)=\Theta (n\log(n))}

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

في حالة المتوسط، يصعب تحديده لأن التحليل لا يعتمد على توزيع المدخلات، بل على الاختيارات العشوائية التي يقوم بها الخوارزمية. يُحسب متوسط ​​خوارزمية الفرز السريع على جميع الاختيارات العشوائية الممكنة التي قد تقوم بها الخوارزمية عند اختيار العنصر المحوري.

على الرغم من أن أسوأ زمن تشغيل هو Θ( n² )، فإن متوسط ​​زمن التشغيل هو Θ( n log n ). ويتضح أن أسوأ حالة لا تحدث كثيرًا. بالنسبة للقيم الكبيرة لـ n ، يكون زمن التشغيل Θ( n log n ) باحتمالية عالية.

لاحظ أن احتمال أن يكون العنصر المحوري هو العنصر ذو القيمة الوسطى في كل مرة هو واحد من بين n عددًا، وهو احتمال نادر جدًا. ومع ذلك، يظل وقت التشغيل هو نفسه عند تقسيم البيانات بنسبة 10%-90% بدلًا من 50%-50%، لأن عمق شجرة الاستدعاء الذاتي سيظل O (log n ) مع تنفيذ O ( n ) مرة لكل مستوى من مستويات الاستدعاء الذاتي.

خوارزمية جشعة عشوائية لمسألة الملكات الثماني

تُحل مسألة الملكات الثماني عادةً باستخدام خوارزمية التراجع . ومع ذلك، يمكن تطبيق خوارزمية لاس فيغاس؛ بل إنها في الواقع أكثر كفاءة من التراجع.

ضع ثماني ملكات على رقعة الشطرنج بحيث لا تهاجم أي ملكة أخرى. تذكر أن الملكة تهاجم القطع الأخرى الموجودة في نفس الصف والعمود والأقطار.

افترض أن k صفوف، 0 ≤ k ≤ 8، مشغولة بنجاح بواسطة الملكات.

إذا كانت قيمة k تساوي 8، فتوقف بنجاح. وإلا، فتابع إلى الصف k + 1.

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

لاحظ أن الخوارزمية تفشل ببساطة إذا تعذر وضع الملكة. ولكن يمكن تكرار العملية، وفي كل مرة ستُنتج ترتيبًا مختلفًا. [ 7 ]

فئة التعقيد

فئة تعقيد مسائل القرار التي تحتوي على خوارزميات لاس فيغاس ذات وقت تشغيل متعدد الحدود المتوقع هي ZPP .

اتضح أن

ZPP=آر بيالاستئصال الجراحي المشترك{\displaystyle {\textsf {ZPP}}={\textsf {RP}}\cap {\textsf {co-RP}}}

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

خوارزمية لاس فيغاس المثلى

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

  1. تُنفَّذ خوارزمية لاس فيغاس A ( x ) بشكل متكرر لعدد من الخطوات مقداره t ≤ 1. إذا توقفت A ( x ) أثناء التنفيذ، فهذا يعني أن العملية قد انتهت ؛ وإلا، تُكرَّر العملية من البداية لعدد آخر من الخطوات مقداره t ≤ 2 ، وهكذا.
  2. تصميم استراتيجية مثلى من بين جميع الاستراتيجيات لـ A ( x )، بالنظر إلى المعلومات الكاملة حول توزيع T A ( x ).

قد يكون وجود الاستراتيجية المثلى ملاحظة نظرية مثيرة للاهتمام. مع ذلك، فهو غير عملي في الواقع العملي لصعوبة الحصول على معلومات حول توزيع TA ( x ). علاوة على ذلك، لا جدوى من تكرار التجربة للحصول على معلومات حول التوزيع ، إذ غالبًا ما نحتاج إلى الإجابة مرة واحدة فقط لأي قيمة لـ x . [ 8 ]

العلاقة بخوارزميات مونت كارلو

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

إليكم جدول يقارن بين خوارزميات لاس فيغاس ومونت كارلو: [ 9 ]

مدة التشغيلالصواب
خوارزمية لاس فيغاساحتماليتأكيد
خوارزمية مونت كارلوتأكيداحتمالي

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

هذا مثال على خوارزميات لاس فيغاس ومونت كارلو للمقارنة: [ 10 ]

لنفترض وجود مصفوفة طولها عدد زوجي n . نصف عناصر المصفوفة عبارة عن أصفار، والنصف الآخر عبارة عن آحاد. الهدف هنا هو إيجاد فهرس يحتوي على الرقم 1.

// خوارزمية لاس فيجاس int lasVegasAlgorithm ( int [] a ) { int n = a . طول ؛ بينما ( صحيح ) { int k = getRandomInteger ( n إذا ( أ [ ك ] == 1 ) { إرجاع ك ؛ } } }// خوارزمية مونت كارلو int monteCarloAlgorithm ( int [] a ) { int n = a . length ; for ( int i = 0 ; i < 300 ; ++ i ) { int k = getRandomInteger ( n ); if ( a [ k ] == 1 ) { return k ; } } return - 1 ; // يشير إلى الفشل }

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

انظر أيضاً

مراجع

الاقتباسات

  1. ستيفن د. غالبريث (2012). رياضيات التشفير بالمفتاح العام . مطبعة جامعة كامبريدج. ص  16. ISBN 978-1-107-01392-6.
  2. هوس، هولجر هـ. "حول التقييم التجريبي لخوارزميات لاس فيغاس - ورقة موقف." (1998).
  3. باباي، لازلو. "خوارزميات مونت كارلو في اختبار تماثل الرسم البياني." (1979).
  4. إتش إتش هوس وتي ستوتزل. تقييم خوارزميات لاس فيغاس - المزالق والحلول. في وقائع المؤتمر الرابع عشر حول عدم اليقين في الذكاء الاصطناعي (UAI-98)، الصفحات 238-245. دار مورغان كوفمان للنشر، سان فرانسيسكو، كاليفورنيا، 1998.
  5. الخوارزميات العشوائية. Brilliant.org . تم الاطلاع عليه في 24 أكتوبر 2018، الساعة 23:54، من الرابط : https://brilliant.org/wiki/randomized-algorithms-overview/
  6. بارينجر، هوارد (ديسمبر 2010). "الخوارزميات العشوائية - مقدمة موجزة" (ملف PDF) . www.cs.man.ac.uk. تاريخ الاسترجاع: 8 ديسمبر 2018 .
  7. لوبي، مايكل (27 سبتمبر 1993). "التسريع الأمثل لخوارزميات لاس فيغاس". رسائل معالجة المعلومات . 47 (4): 173-180 . doi : 10.1016/0020-0190(93)90029-9 .
  8. غودريتش، مايكل. تصميم الخوارزميات وتطبيقاتها: الخوارزميات العشوائية. وايلي، 2015 ، https://nscpolteksby.ac.id/ebook/files/Ebook/Computer%20Engineering/Algorithm%20Design%20and%20Applications%20A4%20(2015)/20.%20Chapter%2019%20-%20Randomized%20Algorithms.pdf . 23 أكتوبر 2018.
  9. بروكاسيا، أرييل (5 نوفمبر 2015). "أفكار نظرية عظيمة في علوم الحاسوب" (ملف PDF) . www.cs.cmu.edu ( عرض تقديمي PowerPoint ) . تم الاطلاع عليه في 3 نوفمبر 2018 .

مصادر

  • دليل الخوارزميات ونظرية الحوسبة ، دار نشر CRC، 1999.
  • "خوارزمية لاس فيغاس"، في قاموس الخوارزميات وهياكل البيانات [متاح عبر الإنترنت]، تحرير بول إي. بلاك، المعهد الوطني الأمريكي للمعايير والتكنولوجيا . 17 يوليو 2006. (تم الاطلاع عليه في 9 مايو 2009). متاح من: