A basic algorithm in artificial intelligence, in particular when constructing programs to play games such as chess. A tree of possible moves, alternating with possible opponent’s moves, is constructed to some depth. Evaluation of the positions at the leaves is then passed back up the tree, choosing always the minimum evaluation for the opponent and the maximum for the program itself. See also computer chess.