ereinion.search
Interface SearchProblem

All Known Implementing Classes:
SquarePuzzleProblem

public interface SearchProblem

Interfaccia per la definizione di un problema di Search. Un problema bene definito � caratterizzato da:
- initialState : lo stato iniziale del problema
- operatorList : gli operatori applicabili ad uno stato
- applyOperator : funzione che applica un operatore ad uno stato
- pathCost : il costo di un cammino dalla radice ad uno stato
- goalTest : verifica di raggiungimento di uno stato obiettivo

Since:
EPR 1.0
Version:
1.0, 25/09/2002
Author:
Ereinion

Method Summary
 SearchState applyOperator(SearchState s, SearchOp op)
          Restituisce lo stato risultante dall'applicare un operatore ad uno stato.
 boolean goalTest(SearchState s)
          Verifica se uno stato � uno stato obiettivo oppure no.
 SearchState initialState()
          Restituisce lo stato iniziale del problema.
 SearchOp[] operatorList(SearchState s)
          Restituisce la lista degli operatori applicabili ad uno stato.
 int pathCost(SearchOp op)
          Restituisce il costo di un operatore.
 

Method Detail

initialState

public SearchState initialState()
Restituisce lo stato iniziale del problema.

Returns:
lo stato iniziale del problema.

operatorList

public SearchOp[] operatorList(SearchState s)
Restituisce la lista degli operatori applicabili ad uno stato.

Parameters:
s - lo stato da verificare.
Returns:
la lista degli operatori applicabili allo stato.

applyOperator

public SearchState applyOperator(SearchState s,
                                 SearchOp op)
Restituisce lo stato risultante dall'applicare un operatore ad uno stato.

Parameters:
s - lo stato a cui applicare l'operatore.
op - l'operatore da applicare.
Returns:
lo stato risultante.

pathCost

public int pathCost(SearchOp op)
Restituisce il costo di un operatore.

Parameters:
op - l'operatore di cui va aggiunto il costo.
Returns:
il costo dell'operatore.

goalTest

public boolean goalTest(SearchState s)
Verifica se uno stato � uno stato obiettivo oppure no.

Parameters:
s - lo stato da verificare
Returns:
true se � uno stato obiettivo, false altrimenti.