Jump to content

Adaptive algorithm

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mcld (talk | contribs) at 16:50, 30 July 2013 (expand range of "adaptive" algorithms). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

An adaptive algorithm is an algorithm that changes its behavior based on information available at the time it is run. This information might be information about computational resources available, or the history of data recently received.

For example, stable partition, using no additional memory is O(n lg n) but given O(n) memory, it can be O(n) in time. As implemented by the C++ Standard Library, stable_partition is adaptive and so it acquires as much memory as it can get (up to what it would need at most) and applies the algorithm using that available memory. Another example is adaptive sort, whose behaviour changes upon the presortedness of its input.

An example of an adaptive algorithm in radar systems is the Constant false alarm rate detector.

In machine learning and optimization, many algorithms are adaptive or have adaptive variants, which usually means that the algorithm parameters are automatically adjusted according to statistics about the optimisation thus far (e.g. the rate of convergence). Examples include adaptive simulated annealing and adaptive coordinate descent.

In signal processing, the Adaptive Transform Acoustic Coding (ATRAC) codec used in MiniDisc recorders is called "adaptive" because the window length (the size of an audio "chunk") can change according to the nature of the sound being compressed.