(Random Search) C++'da Rastgele Arama Algoritması- Açıklama, Örnek ve Kod

Rastgele Arama algoritması, arama uzayından rastgele bir dizi çözüm seçmeye ve sorunu çözüp çözemeyeceklerini kontrol etmeye dayalı bir arama yöntemidir. Bu yaklaşım genellikle aramaya rehberlik edecek belirli bir bilgi veya strateji olmadığında kullanılır.

Nasıl çalışır

  1. Başlatma: Rastgele oluşturulmuş bir dizi başlangıç ​​çözümüyle başlayın.
  2. Değerlendirme: Amaç fonksiyonuna veya değerlendirme kriterlerine dayalı olarak her bir çözümün kalitesini değerlendirin.
  3. Seçim: Olasılıklara veya rastgele seçime dayalı olarak kümeden en iyi çözümlerin bir alt kümesini seçin.
  4. Test Etme: Seçilen çözümlerin sorunu çözüp çözemeyeceğini test edin.
  5. Tekrarla: Tatmin edici bir sonuç elde edilene veya önceden tanımlanmış sayıda yinelemeye ulaşılana kadar 2 ila 4 arasındaki adımları yineleyin.

Örnek: Fibonacci İşlevi Optimize Etme

Fibonacci F(0) = 0, F(1) = 1 ile F(x) = F(x-1) + F(x-2) fonksiyonunun optimizasyon problemini ele alalım. F(x) maksimize edilir. Rastgele Arama yöntemi, x değerlerini rastgele seçebilir, Fibonacci her bir x'teki değeri hesaplayabilir ve elde edilen en yüksek değere karşılık gelen x değerini seçebilir Fibonacci.

C++'da Kod Örneği

#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;  
}  

Bu örnekte, işlevi optimize etmek için Rastgele Arama yöntemini kullanıyoruz Fibonacci. X'in değerlerini rastgele seçiyoruz, her x'teki değeri hesaplıyoruz ve sonra hesapladığımız Fibonacci en yüksek değere karşılık gelen x değerini seçiyoruz. Fibonacci