Dynamic Programming, e.g. optimal association for matrix multiplication
Searching, games (see Bratko)
Pruning (alpha-beta search)