public class AndOrSearch
extends java.lang.Object
function AND-OR-GRAPH-SEARCH(problem) returns a conditional plan, or failure
OR-SEARCH(problem.INITIAL-STATE, problem, [])
---------------------------------------------------------------------------------
function OR-SEARCH(state, problem, path) returns a conditional plan, or failure
if problem.GOAL-TEST(state) then return the empty plan
if state is on path then return failure
for each action in problem.ACTIONS(state) do
plan <- AND-SEARCH(RESULTS(state, action), problem, [state | path])
if plan != failure then return [action | plan]
return failure
---------------------------------------------------------------------------------
function AND-SEARCH(states, problem, path) returns a conditional plan, or failure
for each si in states do
plani <- OR-SEARCH(si, problem, path)
if plani = failure then return failure
return [if s1 then plan1 else if s2 then plan2 else ... if sn-1 then plann-1 else plann]
Figure 4.11 An algorithm for searching AND-OR graphs generated by
nondeterministic environments. It returns a conditional plan that reaches a
goal state in all circumstances. (The notation [x | l] refers to the list
formed by adding object x to the front of the list l.)Modifier and Type | Field and Description |
---|---|
protected int |
expandedNodes |
Constructor and Description |
---|
AndOrSearch() |
Modifier and Type | Method and Description |
---|---|
Plan |
andSearch(java.util.Set<java.lang.Object> states,
NondeterministicProblem problem,
Path path)
Returns a conditional plan or null on failure; this function is
equivalent to the following on page 136:
|
Metrics |
getMetrics()
Returns all the metrics of the node expander.
|
Plan |
orSearch(java.lang.Object state,
NondeterministicProblem problem,
Path path)
Returns a conditional plan or null on failure; this function is
equivalent to the following on page 136:
|
Plan |
search(NondeterministicProblem problem)
Searches through state space and returns a conditional plan for the given
problem.
|
public Plan search(NondeterministicProblem problem)
function AND-OR-GRAPH-SEARCH(problem) returns a conditional plan, or failure
OR-SEARCH(problem.INITIAL-STATE, problem, [])
problem
- public Plan orSearch(java.lang.Object state, NondeterministicProblem problem, Path path)
function OR-SEARCH(state, problem, path) returns a conditional plan, or failure
if problem.GOAL-TEST(state) then return the empty plan
if state is on path then return failure
for each action in problem.ACTIONS(state) do
plan <- AND-SEARCH(RESULTS(state, action), problem, [state | path])
if plan != failure then return [action | plan]
return failure
state
- problem
- path
- public Plan andSearch(java.util.Set<java.lang.Object> states, NondeterministicProblem problem, Path path)
function AND-SEARCH(states, problem, path) returns a conditional plan, or failure
for each si in states do
plani <- OR-SEARCH(si, problem, path)
if plani = failure then return failure
return [if s1 then plan1 else if s2 then plan2 else ... if sn-1 then plann-1 else plann]
states
- problem
- path
- public Metrics getMetrics()