خوارزمية البحث العشوائي (Random Search) في PHP: موضحة مع المثال

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

كيف تعمل خوارزمية البحث العشوائي

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

مزايا وعيوب خوارزمية البحث العشوائي

مزايا:

  • مساحة استكشاف واسعة: تتمتع هذه الخوارزمية بالقدرة على استكشاف نطاق واسع من مساحة البحث من خلال تقييم الحلول المختلفة.
  • سهلة التنفيذ: خوارزمية البحث العشوائي سهلة التنفيذ بشكل عام ولا تتطلب خبرة واسعة.

سلبيات:

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

المثال والشرح

فكر في مثال للبحث عن الأعداد الأولية ضمن نطاق معين باستخدام خوارزمية البحث العشوائي في PHP.

function randomSearch($min, $max, $numTrials) {  
    for($i = 0; $i < $numTrials; $i++) {  
        $randomNumber = rand($min, $max);  
        if(isPrime($randomNumber)) {  
            return $randomNumber;  
        }  
    }  
    return "No prime found in the given range.";  
}  
  
function isPrime($num) {  
    if($num <= 1) {  
        return false;  
    }  
    for($i = 2; $i <= sqrt($num); $i++) {  
        if($num % $i === 0) {  
            return false;  
        }  
    }  
    return true;  
}  
  
$min = 100;  
$max = 1000;  
$numTrials = 50;  
  
$primeNumber = randomSearch($min, $max, $numTrials);  
echo "Random prime number found: $primeNumber";  

في هذا المثال، نستخدم خوارزمية البحث العشوائي للعثور على رقم أولي ضمن النطاق من 100 إلى 1000. تختار الخوارزمية الأرقام من هذا النطاق بشكل عشوائي وتتحقق مما إذا كانت أولية باستخدام الوظيفة isPrime. والنتيجة هي رقم أولي تم العثور عليه عشوائيًا ضمن النطاق المحدد.

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