Algartam Cuardaigh Státbhunaithe (State-Based Search) i Java

Is modh cuardaigh i ríomhchlárú é an t-algartam Cuardaigh Státbhunaithe Java a bhaineann le cruthú agus trasnú trí staideanna féideartha faidhbe. San algartam seo, léirítear gach staid féideartha d'fhadhb mar nóid i ngraf nó i spás stáit.

Conas a Oibríonn Algartam Cuardaigh Státbhunaithe

Tosaíonn an t-algartam ó staid tosaigh agus úsáideann sé claochluithe chun staid leanaí a ghiniúint. Éiríonn gach stát nuaghinte ina nód sa ghraf nó sa spás stáit. Trasnaíonn an t-algartam trí na stáit seo, ag seiceáil an bhfuil an spriocstát ina measc. Má aimsítear é, cuirtear deireadh leis an algartam; seachas sin, leanann sé ar aghaidh ag trasnú trí stáit leanaí eile.

Buntáistí agus Míbhuntáistí Algartam Cuardaigh Státbhunaithe

Buntáistí:

  • Uileghabhálach: Tá an cumas ag an algartam gach staid féideartha den fhadhb a chlúdach.
  • Versatile: Is féidir é a chur i bhfeidhm ar chineálacha éagsúla fadhbanna.

Míbhuntáistí:

  • Féidearthacht athrá: I gcásanna áirithe, d'fhéadfadh an t-algartam trasnú stáit áirithe a dhéanamh arís.

Sampla agus Míniú

Sampla léiritheach den Algartam Cuardaigh Státbhunaithe is ea cosán a aimsiú ó phointe tosaigh go ceann scríbe ar léarscáil. Feicfimid conas a oibríonn an algartam seo:

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);  
                }  
            }  
        }  
    }  
}  

Sa sampla thuas, úsáidimid an Algartam Cuardaigh Státbhunaithe chun cosán a aimsiú ó staid tosaigh go staid sprice ar léarscáil. Gintear stáit leanaí trí ghníomhartha is féidir a dhéanamh ón staid reatha. Is é an toradh atá air ná go bhfaighidh an algartam cosán ón stát tosaigh go dtí an stát sprioc.