C++ में यादृच्छिक खोज (Random Search) एल्गोरिथम- स्पष्टीकरण, उदाहरण और कोड

रैंडम सर्च एल्गोरिदम एक खोज विधि है जो खोज स्थान से यादृच्छिक रूप से समाधानों के एक सेट का चयन करने और यह जांचने पर आधारित है कि क्या वे समस्या का समाधान कर सकते हैं। इस दृष्टिकोण का उपयोग अक्सर तब किया जाता है जब खोज को निर्देशित करने के लिए कोई विशिष्ट जानकारी या रणनीति नहीं होती है।

यह काम किस प्रकार करता है

  1. आरंभीकरण: प्रारंभिक समाधानों के यादृच्छिक रूप से उत्पन्न सेट के साथ प्रारंभ करें।
  2. मूल्यांकन: वस्तुनिष्ठ कार्य या मूल्यांकन मानदंड के आधार पर प्रत्येक समाधान की गुणवत्ता का मूल्यांकन करें।
  3. चयन: संभावनाओं या यादृच्छिक चयन के आधार पर सेट से सर्वोत्तम समाधानों का एक सबसेट चुनें।
  4. परीक्षण: परीक्षण करें कि क्या चयनित समाधान समस्या को हल करने में सक्षम हैं।
  5. दोहराएँ: संतोषजनक परिणाम प्राप्त होने तक या पुनरावृत्तियों की पूर्वनिर्धारित संख्या तक पहुँचने तक चरण 2 से 4 तक दोहराएँ।

उदाहरण: Fibonacci फ़ंक्शन का अनुकूलन

Fibonacci F(0) = 0, F(1) = 1 के साथ फ़ंक्शन F(x) = F(x-1) + F(x-2) की अनुकूलन समस्या पर विचार करें। हम x का मान ज्ञात करना चाहते हैं जिसके लिए F(x) अधिकतम है. यादृच्छिक खोज विधि बेतरतीब ढंग से x के मानों का चयन कर सकती है, प्रत्येक x पर मान की गणना कर सकती है, और प्राप्त Fibonacci उच्चतम मान के अनुरूप x का मान चुन सकती है। Fibonacci

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

Fibonacci इस उदाहरण में, हम फ़ंक्शन को अनुकूलित करने के लिए रैंडम खोज पद्धति का उपयोग करते हैं । हम बेतरतीब ढंग से x के मानों का चयन करते हैं, Fibonacci प्रत्येक x पर मान की गणना करते हैं, और फिर हमारे द्वारा गणना किए गए उच्चतम Fibonacci मान के अनुरूप x का मान चुनते हैं।