Meta-algorithm

From Wikipedia, the free encyclopedia

A meta-algorithm is an algorithm that can be usefully considered to have other significant algorithms, not just elementary operations and simple control structures, as its constituents; also an algorithm that has subordinate algorithms as variable and replaceable parameters. Thus a meta-algorithm defines a class of concrete algorithms.

This term is inappropriate for simple structural composition, e.g. using an algorithm for addition as a step of an algorithm for square root; it is usually employed for general strategies and design patterns applicable to different underlying algorithms and problems.

Evolutionary computation is a typical example of a family of meta-algorithms: it needs a model of the search space, a model of solution quality, an algorithm for initialization, an algorithm to evolve new attempts from old attempts and an algorithm for termination, all of which are problem-dependent but conform to the general architecture of evaluating a succession of tentative solutions somehow related to previous attempts.

Other examples of meta-algorithms include boosting, Simulated annealing, Bootstrap aggregating (bagging), AdaBoost and Random-restart hill climbing.