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 को अपडेट करते हैं।