# And-or-tree

An and-or tree is a kind of decision tree from computer science and serves as a data structure in artificial intelligence , especially in the minimax algorithm and means-ends analysis. In general, it is often used in control strategies of problem-solving programs.

The and-or tree can be viewed as a kind of parallel execution of a logic programming system. It consists of AND nodes and OR nodes (decision points). Or edges can be defined using hyper edges . A hyperedge is an edge on a graph that connects one node to several others. Normal edges only connect two nodes at a time, so to connect one node to three other nodes you need a total of three edges.

Or nodes arise when there are several ways to achieve a goal. Here it is sufficient to fulfill one of many possible solutions. And nodes arise when a main goal can be divided into several sub-goals. Thus, all subgoals must be met in the conjunctive sense in order to meet the main goal. And nodes are sometimes added with constraints to formally describe the conditions that must be met in the subjunctive.