स्थानीय खोज एल्गोरिथ्म हालको अवस्थाको वरपरको क्षेत्रमा उत्तम समाधान खोज्ने विधि हो। यो प्रविधि प्राय: राम्रो अवस्थाहरू पत्ता लगाउनको लागि व्यक्तिगत कम्पोनेन्टहरू पुनरावृत्ति परिमार्जन गरेर अनुमानित समाधानहरू परिष्कृत गर्न प्रयोग गरिन्छ।
यो कसरी काम गर्दछ
- प्रारम्भिकता: प्रारम्भिक अवस्थाको साथ सुरु गर्नुहोस्।
- छिमेकीहरू उत्पन्न गर्नुहोस्: हालको राज्यको कम्पोनेन्ट परिवर्तन गरेर छिमेकी राज्यहरू उत्पन्न गर्नुहोस्।
- मूल्याङ्कन: वस्तुगत प्रकार्य प्रयोग गरी छिमेकी राज्यहरूको गुणस्तर मूल्याङ्कन गर्नुहोस्।
- उत्तम राज्य चयन गर्नुहोस्: उत्कृष्ट वस्तुगत मूल्यको साथ छिमेकी राज्य छान्नुहोस्।
- दोहोर्याउनुहोस्: कुनै राम्रो छिमेकी राज्य भेट्टाउन नसकेसम्म चरणहरू 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 अपडेट गर्छौं।