Returns the same move as a normal minimax tree would but it optimizes it by pruning away branches that cannot possibly influence the final decision

Can be applied to trees of any depth.

Principle: consider a node n somewhere in the tree such that Player has a choice of moving to that node. If Player has a better choice m either at the parent node of n or at any choice point further up, then n will ever be reached in actual play.

Remember minimax is a depth-first search so at any one time we just have to consider the nodes along a single path in the tree.

a = value of the best (i.e. highest value) choice we have found so far at any choice point along the path for MAX

B = the value of the best (i.e. lowest value) choice we have found so far at any choice point along the path for MIN.

Effectiveness is highly dependent on the order in which the states are examined. If pruning is done properly then N ≈O(b^{m/2) nodes to pick the best move.}

If successors are examined in random order rather than best-first, the total number of nodes examined will be roughly O(b^{3m/4})