(Random Search) C++ मध्ये यादृच्छिक शोध अल्गोरिदम- स्पष्टीकरण, उदाहरण आणि कोड

यादृच्छिक शोध अल्गोरिदम ही एक शोध पद्धत आहे जी यादृच्छिकपणे शोध जागेतून समाधानाचा संच निवडणे आणि ते समस्येचे निराकरण करू शकतात का ते तपासणे यावर आधारित आहे. जेव्हा शोध मार्गदर्शन करण्यासाठी कोणतीही विशिष्ट माहिती किंवा धोरण नसते तेव्हा हा दृष्टिकोन अनेकदा वापरला जातो.

हे कसे कार्य करते

  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 ची मूल्ये निवडू शकते, Fibonacci प्रत्येक x वर मूल्याची गणना करू शकते आणि प्राप्त केलेल्या सर्वोच्च Fibonacci मूल्याशी संबंधित x चे मूल्य निवडू शकते.

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 ची मूल्ये निवडतो, प्रत्येक x वर मूल्याची गणना करतो आणि नंतर आम्ही गणना केलेल्या Fibonacci सर्वोच्च मूल्याशी संबंधित x चे मूल्य निवडतो. Fibonacci