राज्य-आधारित खोज (State-Based Search) एल्गोरिदम मा Java

राज्य-आधारित खोज एल्गोरिदम Java प्रोग्रामिङमा एक खोज विधि हो जसमा समस्याको सम्भावित अवस्थाहरू सिर्जना गर्ने र पार गर्ने समावेश हुन्छ। यस एल्गोरिदममा, समस्याको सबै सम्भावित अवस्थाहरूलाई ग्राफ वा स्टेट स्पेसमा नोडहरूको रूपमा प्रतिनिधित्व गरिन्छ।

कसरी राज्य-आधारित खोज एल्गोरिदम काम गर्दछ

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

राज्य-आधारित खोज एल्गोरिदमका फाइदाहरू र हानिहरू

फाइदा:

  • विस्तृत: एल्गोरिदमसँग समस्याको सबै सम्भावित अवस्थाहरू कभर गर्ने क्षमता छ।
  • बहुमुखी: यो विभिन्न प्रकारका समस्याहरूमा लागू गर्न सकिन्छ।

बेफाइदाहरू:

  • दोहोरिने सम्भावना: केही अवस्थामा, एल्गोरिदमले निश्चित राज्यहरूको ट्र्याभर्सल दोहोर्याउन सक्छ।

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

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

import java.util.*;  
  
public class StateSearchExample {  
    static boolean isGoalState(State state, State goalState) {  
        return state.equals(goalState);  
    }  
  
    static void stateSearch(State initialState, State goalState) {  
        Queue<State> queue = new LinkedList<>();  
        Set<State> visited = new HashSet<>();  
  
        queue.add(initialState);  
        visited.add(initialState);  
  
        while(!queue.isEmpty()) {  
            State currentState = queue.poll();  
  
            if(isGoalState(currentState, goalState)) {  
                System.out.println("Found goal state: " + currentState);  
                return;  
            }  
  
            List<State> nextStates = currentState.generateNextStates();  
            for(State nextState: nextStates) {  
                if(!visited.contains(nextState)) {  
                    queue.add(nextState);  
                    visited.add(nextState);  
                }  
            }  
        }  
    }  
}  

माथिको उदाहरणमा, हामीले राज्य-आधारित खोज एल्गोरिथ्म प्रयोग गर्छौं नक्सामा प्रारम्भिक अवस्थाबाट लक्ष्य राज्यसम्मको बाटो पत्ता लगाउन। बाल अवस्थाहरू वर्तमान अवस्थाबाट सम्भव कार्यहरू प्रदर्शन गरेर उत्पन्न हुन्छन्। नतिजा यो हो कि एल्गोरिथ्मले सुरुवात अवस्थाबाट लक्ष्य राज्यमा बाटो फेला पार्नेछ।