स्थानीय खोज (Local Search) एल्गोरिदम मा Java

स्थानीय खोज एल्गोरिथ्म Java प्रोग्रामिङमा एउटा खोज प्रविधि हो जुन हालको समाधानको वरपर खोजी गरेर समाधानहरूलाई अनुकूलन गर्नमा केन्द्रित हुन्छ। सम्पूर्ण समाधान ठाउँ खोज्नुको सट्टा, एल्गोरिदम सानो "छिमेक" मा समाधान खोज्नमा केन्द्रित हुन्छ।

कसरी स्थानीय खोज एल्गोरिदम काम गर्दछ

एल्गोरिदम प्रारम्भिक समाधानबाट सुरु हुन्छ र नजिकैको क्षेत्रमा राम्रो समाधानहरू खोजेर यसलाई निरन्तर सुधार गर्ने प्रयास गर्दछ। एल्गोरिथ्मले नजिकैका समाधानहरू मार्फत पुनरावृत्ति गर्छ र तिनीहरूमध्ये उत्कृष्ट समाधान चयन गर्दछ।

स्थानीय खोज एल्गोरिथ्मका फाइदाहरू र हानिहरू

फाइदा:

  • दक्षता: एल्गोरिथ्मले प्रायः सम्पूर्ण ठाउँको सट्टा नजिकका राज्यहरू खोजी गरेर ठूला समस्या ठाउँहरूमा छिटो काम गर्छ।
  • एकीकरण: खोज प्रदर्शन बृद्धि गर्न अन्य विधिहरूसँग जोड्न सकिन्छ।

बेफाइदाहरू:

  • स्थानीय अप्टिमा: एल्गोरिथ्मले विश्वव्यापी समाधान खोजी नगरी स्थानीय इष्टतम बिन्दुमा रूपान्तरण हुन सक्छ।

उदाहरण र व्याख्या

स्थानीय खोज एल्गोरिथ्मको वास्तविक जीवनको उदाहरणले ट्राफिक मार्गलाई अनुकूलन गर्दैछ। यो एल्गोरिथ्मले कसरी काम गर्छ हेरौं:

import java.util.*;  
  
public class LocalSearchExample {  
    static double evaluateSolution(double[] solution) {  
        // Function to evaluate the quality of a solution  
        // Lower value indicates a better solution  
        return 1.0 /(1.0 + solution[0] + solution[1]);  
    }  
  
    static double[] localSearch(double[] initialSolution, double stepSize, int maxIterations) {  
        double[] currentSolution = Arrays.copyOf(initialSolution, initialSolution.length);  
        double currentEvaluation = evaluateSolution(currentSolution);  
  
        for(int i = 0; i < maxIterations; i++) {  
            double[] nextSolution = Arrays.copyOf(currentSolution, currentSolution.length);  
            nextSolution[0] += stepSize;  
            double nextEvaluation = evaluateSolution(nextSolution);  
  
            if(nextEvaluation < currentEvaluation) {  
                currentSolution = nextSolution;  
                currentEvaluation = nextEvaluation;  
            } else {  
                stepSize /= 2;  
            }  
        }  
  
        return currentSolution;  
    }  
}  

माथिको उदाहरणमा, हामी संख्यात्मक समाधानलाई अनुकूलन गर्न स्थानीय खोज एल्गोरिदम प्रयोग गर्छौं। एल्गोरिथ्मले एक निश्चित चरण परिवर्तन गरेर हालको समाधानको वरपर खोज्छ र नयाँ समाधान राम्रो छ कि छैन भनेर जाँच गर्दछ। नतिजा यो हो कि एल्गोरिथ्मले क्रमशः समयसँगै राम्रो समाधान फेला पार्छ।