And-or tree

From Cosmopedia
Jump to navigation Jump to search

An and-or tree is a graphical representation of the reduction of problems (or goals) to conjunctions and disjunctions of sub-problems (or sub-goals).

Example

The and-or tree: File:And-or tree.JPG represents the search space for solving the problem P, using the goal-reduction methods:

P is Q and R

P if S

Q if T

Q if U

Definitions

Given an initial problem P0 and set of problem solving methods of the form:

P if P1 and ... and Pn

the associated and-or tree is a set of labelled nodes such that:

1) The root of the tree is a node labelled by P0.

2) For every node N labelled by a problem or sub-problem P and for every method of the form P if P1 and ... and Pn, there exists a set of children nodes N1, ..., Nn of the node N, such that each node Ni is labelled by Pi. The nodes are conjoined by an arc, to distinguish them from children of N that might be associated with other methods.

A node N, labelled by a problem P, is a success node if there is a method of the form P if nothing (i.e. P is a "fact"). The node is a failure node if there is no method for solving P.

If all of the children of a node N, conjoined by the same arc, are success nodes, then the node N is also a success node. Otherwise the node is a failure node.

Search strategies

An and-or tree specifies only the search space for solving a problem. Different search strategies for searching the space are possible. These include searching the tree depth-first, breadth-first, or best-first using some measure of desirability of solutions. The search strategy can be sequential, searching or generating one node at a time, or parallel, searching or generating several nodes in parallel.

The relationship with logic programming

The methods used for generating and-or trees are propositional logic programs (without variables). In the case of logic programs containing variables, the solutions of conjoint sub-problems must be compatible. Subject to this complication, sequential and parallel search strategies for and-or trees provide a computational model for executing logic programs.

The relationship with game-playing

And-or trees can also be used to represent the search spaces for two-person games. The root node of such a tree represents the problem of one of the players winning the game, starting from the initial state of the game. Given a node N, labelled by the problem P of the player winning the game from a particular state of play, there exists a single set of conjoint children nodes, corresponding to all of the opponents responding moves. For each of these children nodes, there exists a set of non-conjoint children nodes, corresponding to all of the player's defending moves.

See also

  • Luger, G.F. and Stubblefield, W.A. Artificial Intelligence: Structures and Strategies for Complex Problem Solving (2nd Edition) The Begjamin/Cummings Publishing Company, Inc. 1993.
  • Nilsson, N.J. Artificial Intelligence, A New Synthesis, Morgan Kaufman Publishers, Inc. 1998.

Template:Compu-sci-stub