C++ मध्ये स्थानिक शोध (Local 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) कमाल केले आहे. आम्ही स्थानिक शोध पद्धतीचा वापर करून पुनरावृत्तीने प्रत्येक पायरीपासून दूर शोधू शकतो.

C++ मधील कोड उदाहरण

#include <iostream>  
  
int fibonacci(int n) {  
    if(n <= 0) return 0;  
    if(n == 1) return 1;  
    return fibonacci(n- 1) + fibonacci(n- 2);  
}  
  
int localSearchFibonacci(int maxIterations) {  
    int bestX = 0;  
    int bestValue = 0;  
  
    for(int x = 0; x < maxIterations; ++x) {  
        int value = fibonacci(x);  
        if(value > bestValue) {  
            bestValue = value;  
            bestX = x;  
        }  
    }  
  
    return bestX;  
}  
  
int main() {  
    int maxIterations = 20;  
    int result = localSearchFibonacci(maxIterations);  
  
    std::cout << "Optimal x for maximum Fibonacci value: " << result << std::endl;  
  
    return 0;  
}  

या उदाहरणात, आम्ही Fibonacci फंक्शन ऑप्टिमाइझ करण्यासाठी स्थानिक शोध पद्धतीचा वापर करतो. आम्ही x च्या वेगवेगळ्या मूल्यांमधून पुनरावृत्ती करतो आणि Fibonacci प्रत्येक x वर मूल्य मोजतो. जेव्हा एक चांगले मूल्य आढळते, तेव्हा आम्ही सर्वोत्तम मूल्य आणि त्याच्याशी संबंधित x अद्यतनित करतो.