Algoritma Random Search minangka cara telusuran adhedhasar kanthi acak milih sakumpulan solusi saka papan telusuran lan mriksa manawa bisa ngatasi masalah kasebut. Pendekatan iki asring digunakake nalika ora ana informasi utawa strategi khusus kanggo nuntun panelusuran.
Cara Kerjane
- Initialization: Miwiti karo solusi awal sing digawe kanthi acak.
- Evaluasi: Evaluasi kualitas saben solusi adhedhasar fungsi objektif utawa kriteria evaluasi.
- Pilihan: Pilih subset saka solusi paling apik saka pesawat adhedhasar kemungkinan utawa pilihan acak.
- Tes: Tes yen solusi sing dipilih bisa ngrampungake masalah kasebut.
- Baleni: Ulangi langkah 2 nganti 4 nganti asil sing marem diraih utawa jumlah pengulangan sing wis ditemtokake wis tekan.
Tuladha: Ngoptimalake Fibonacci Fungsi
Coba masalah optimasi fungsi Fibonacci F(x) = F(x-1) + F(x-2) karo F(0) = 0, F(1) = 1. Kita arep golek nilai x kang F(x) maksimal. Metode Random Search bisa kanthi acak milih nilai x, ngitung Fibonacci nilai ing saben x, lan milih nilai x sing cocog karo Fibonacci nilai paling dhuwur sing dipikolehi.
Tuladha Kode ing C++
#include <iostream>
#include <cstdlib>
#include <ctime>
int fibonacci(int n) {
if(n <= 0) return 0;
if(n == 1) return 1;
return fibonacci(n- 1) + fibonacci(n- 2);
}
int randomSearchFibonacci(int maxIterations) {
int bestX = 0;
int bestValue = 0;
srand(time(0));
for(int i = 0; i < maxIterations; ++i) {
int x = rand() % maxIterations;
int value = fibonacci(x);
if(value > bestValue) {
bestValue = value;
bestX = x;
}
}
return bestX;
}
int main() {
int maxIterations = 20;
int result = randomSearchFibonacci(maxIterations);
std::cout << "Optimal x for maximum Fibonacci value: " << result << std::endl;
return 0;
}
Ing conto iki, kita nggunakake metode Random Search kanggo ngoptimalake Fibonacci fungsi kasebut. Kita kanthi acak milih nilai x, ngitung Fibonacci nilai ing saben x, banjur pilih nilai x sing cocog karo Fibonacci nilai paling dhuwur sing wis diwilang.