Algoritam nasumičnog pretraživanja (Random Search) u PHP-u: objašnjeno na primjeru

Algoritam slučajnog pretraživanja značajan je pristup u PHP programiranju, koji se koristi za istraživanje prostora pretraživanja nasumičnim odabirom rješenja i njihovim ocjenjivanjem. Cilj ovog algoritma je traženje potencijalnih rješenja unutar prostora pretraživanja.

Kako radi algoritam nasumičnog pretraživanja

Algoritam nasumičnog pretraživanja počinje nasumičnim odabirom niza rješenja iz prostora pretraživanja. Zatim ocjenjuje kvalitetu rješenja pomoću funkcije evaluacije. Algoritam može ponoviti ovaj postupak više puta u potrazi za potencijalno boljim rješenjima.

Prednosti i nedostaci algoritma slučajnog pretraživanja

Prednosti:

  • Široki prostor istraživanja: Ovaj algoritam ima sposobnost istraživanja širokog raspona prostora pretraživanja procjenom različitih rješenja.
  • Jednostavan za implementaciju: Algoritam nasumičnog pretraživanja općenito je jednostavan za implementaciju i ne zahtijeva veliku stručnost.

Nedostaci:

  • Nedostatak jamstva globalne optimizacije: ovaj algoritam možda neće pronaći globalno optimalno rješenje i teži se usredotočiti na rješenja koja su bliža početnoj poziciji.
  • Oduzima puno vremena: Algoritam nasumičnog pretraživanja može oduzimati puno vremena jer treba procijeniti više rješenja.

Primjer i objašnjenje

Razmotrite primjer traženja prostih brojeva unutar određenog raspona pomoću algoritma slučajnog pretraživanja u PHP-u.

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";  

U ovom primjeru koristimo algoritam nasumičnog pretraživanja za pronalaženje prostog broja unutar raspona od 100 do 1000. Algoritam nasumično odabire brojeve iz tog raspona i pomoću funkcije provjerava jesu li prosti isPrime. Rezultat je nasumično pronađen prosti broj unutar navedenog raspona.

Iako ovaj primjer pokazuje kako se algoritam nasumičnog pretraživanja može koristiti za istraživanje širokog prostora pretraživanja, može se primijeniti i na druge probleme optimizacije u PHP-u.