الخوارزمية العشوائية مقابل الخوارزمية العودية
تدمج الخوارزميات العشوائية إحساسًا بالعشوائية في منطقها من خلال اتخاذ خيارات عشوائية أثناء تنفيذ الخوارزمية. بسبب هذه العشوائية ، يمكن أن يتغير سلوك الخوارزمية حتى بالنسبة لمدخلات ثابتة. بالنسبة للعديد من المشكلات ، توفر الخوارزميات العشوائية أبسط الحلول وأكثرها كفاءة. تعتمد الخوارزميات التكرارية على فكرة أنه يمكن إيجاد حل لمشكلة ما من خلال إيجاد حلول لمشاكل فرعية أصغر لنفس المشكلة. تُستخدم العودية على نطاق واسع لإيجاد حلول لمشاكل علوم الكمبيوتر والعديد من لغات البرمجة عالية المستوى تدعم العودية.
ما هي الخوارزمية العشوائية؟
تتضمن الخوارزميات العشوائية إحساسًا بالعشوائية من خلال اتخاذ خيارات عشوائية توجه تنفيذ الخوارزمية. يتم ذلك عادةً عن طريق أخذ مجموعة من الأرقام العشوائية التي تم إنشاؤها بواسطة مولد رقم عشوائي كاذب كمدخل إضافي. نتيجة لهذا ، قد يتغير سلوك الخوارزمية حتى بالنسبة لمدخلات ثابتة. Quicksort هي خوارزمية معروفة على نطاق واسع تستخدم مفهوم العشوائية ولها وقت تشغيل O (n log n) بغض النظر عن خصائص الإدخال. علاوة على ذلك ، يتم استخدام طريقة البناء الإضافية العشوائية لبناء هياكل مثل الهيكل المحدب في هندسة الحساب. في هذه الطريقة ، يتم تبديل نقاط الإدخال بشكل عشوائي ثم يتم إدخالها واحدة تلو الأخرى في الهيكل. يعد تنفيذ خوارزمية عشوائية أمرًا بسيطًا نسبيًا من تنفيذ خوارزمية حتمية لنفس المشكلة. يكمن التحدي الأكبر في تصميم خوارزمية عشوائية في إجراء تحليل مقارب لتعقيد الزمان والمكان.
ما هي الخوارزمية العودية؟
تعتمد الخوارزميات التكرارية على فكرة أن حل المشكلة يمكن إيجاده من خلال إيجاد حلول لمشاكل فرعية أصغر لنفس المشكلة. في الخوارزمية العودية ، يتم تعريف الوظيفة من حيث الإصدار السابق من نفسها. من المهم ملاحظة أن هذا المرجع الذاتي يجب أن يكون له شرط إنهاء لتجنب الرجوع إلى نفسه إلى الأبد. يتم فحص شرط الإنهاء قبل الرجوع إلى نفسه. ترتبط الخطوة الأولية للخوارزمية العودية بالشرط الأساسي للتعريف العودي للمشكلة. ترتبط الخطوات التي تتبع الخطوة الأولية بالجمل الاستقرائي للمشكلة. توفر الخوارزميات التكرارية حلاً أبسط في العديد من المواقف وهي أقرب إلى طريقة التفكير الطبيعية من الخوارزمية التكرارية لنفس المشكلة. لكن بشكل عام ، تتطلب الخوارزميات العودية مزيدًا من الذاكرة وهي باهظة الثمن من الناحية الحسابية.
ما الفرق بين الخوارزمية العشوائية والتكرارية؟
الخوارزميات العشوائية هي خوارزميات تستخدم الإحساس بالعشوائية من خلال اتخاذ خيارات عشوائية يمكن أن تؤثر على تنفيذ الخوارزمية ، بينما الخوارزميات العودية هي خوارزميات تستند إلى فكرة أنه يمكن إيجاد حل لمشكلة ما من خلال إيجاد حلول لمشاكل فرعية أصغر لنفس المشكلة. بسبب العشوائية في الخوارزميات العشوائية ، يمكن أن يتغير سلوك الخوارزمية حتى لنفس المدخلات (في عمليات التنفيذ المختلفة للخوارزمية). لكن هذا غير ممكن في الخوارزميات العودية وسيكون سلوك الخوارزمية العودية هو نفسه لمدخل ثابت.