Most algorithms run to completion: they provide a single answer after performing some fixed amount of computation.
Anytime algorithms, however, are able to return a partial answer, whose quality depends on the amount of computation they were able to perform.
[1] The goal of anytime algorithms are to give intelligent systems the ability to make results of better quality in return for turn-around time.
[3] They are important because artificial intelligence or AI algorithms can take a long time to complete results.
[2] An anytime algorithm uses many well defined quality measures to monitor progress in problem solving and distributed computing resources.
[8] While this may sound similar to dynamic programming, the difference is that it is fine-tuned through random adjustments, rather than sequential.
Anytime algorithms are designed so that it can be told to stop at any time and would return the best result it has found so far.
[7] The performance profile estimates the quality of the results based on the input and the amount of time that is allotted to the algorithm.