राज्य-आधारित खोज (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);  
                }  
            }  
        }  
    }  
}  

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