(Local Search) C++ मा स्थानीय खोज एल्गोरिदम- व्याख्या, उदाहरण र कोड

स्थानीय खोज एल्गोरिथ्म हालको अवस्थाको वरपरको क्षेत्रमा उत्तम समाधान खोज्ने विधि हो। यो प्रविधि प्राय: राम्रो अवस्थाहरू पत्ता लगाउनको लागि व्यक्तिगत कम्पोनेन्टहरू पुनरावृत्ति परिमार्जन गरेर अनुमानित समाधानहरू परिष्कृत गर्न प्रयोग गरिन्छ।

यो कसरी काम गर्दछ

  1. प्रारम्भिकता: प्रारम्भिक अवस्थाको साथ सुरु गर्नुहोस्।
  2. छिमेकीहरू उत्पन्न गर्नुहोस्: हालको राज्यको कम्पोनेन्ट परिवर्तन गरेर छिमेकी राज्यहरू उत्पन्न गर्नुहोस्।
  3. मूल्याङ्कन: वस्तुगत प्रकार्य प्रयोग गरी छिमेकी राज्यहरूको गुणस्तर मूल्याङ्कन गर्नुहोस्।
  4. उत्तम राज्य चयन गर्नुहोस्: उत्कृष्ट वस्तुगत मूल्यको साथ छिमेकी राज्य छान्नुहोस्।
  5. दोहोर्याउनुहोस्: कुनै राम्रो छिमेकी राज्य भेट्टाउन नसकेसम्म चरणहरू 2 देखि 4 मार्फत दोहोर्याउनुहोस्।

उदाहरण: Fibonacci प्रकार्य अनुकूलन

Fibonacci प्रकार्य F(x) = F(x-1) + F(x-2) F(0) = 0, F(1) = 1 को अप्टिमाइजेसन समस्यालाई विचार गर्नुहोस्। हामी 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 अपडेट गर्छौं।