Solution: problem-specific algorithm, computational complexity
Separating logic and control: declarative programming, production system
Issue: exhaustive search, combinatorial/exponential explosion, intractable problems
Heuristic search: to use an evaluation function to decide the order of exploring the options.
Anytime algorithm: to terminate by external force with increasing quality of solution.
Metareasoning: to calculate the utility of computations to balance quality and cost.
Evolutionary computation: to optimize multiple solutions through resource competition.
Supervised learning: end-to-end training of a universal function approximator.