Learning augmented algorithm

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

A learning augmented algorithm (also called algorithm with predictions) is an algorithm that can make use of a prediction to improve its performance.[1] Whereas in regular algorithms just the problem instance is inputted, learning augmented algorithms accept an extra parameter. This extra parameter often is a prediction of some property of the solution. This prediction is then used by the algorithm to improve its running time or the quality of its output. The most common application are online algorithms, where a prediction on the uncertain instance is provided.

Description

[edit | edit source]

A learning augmented algorithm typically takes an input (,𝒜). Here is a problem instance and 𝒜 is the prediction. A prediction can be any object. Common are the following types:

  • Prediction of an optimal solution. The prediction gives a solution to the problem or characterizes an optimal solution.
  • Prediction of the input. This is mainly used for online problems.
  • Prediction of algorithmic actions. A prediction tailored to a specific algorithm that suggests a specific algorithm execution.

Learning augmented algorithms usually satisfy the following three properties:[1]

  • Consistency. A learning augmented algorithm is said to be consistent if the algorithm can be proven to have a good performance when it is provided with an accurate prediction.
  • Smoothness. A learning augmented algorithm is called smooth if its performance can be bounded by a function of the quality of the prediction. Here, the quality can be measured in a problem specific way. This is also called the prediction error.
  • Robustness. A learning augmented algorithm is called robust if its worst-case performance can be bounded even if the given prediction is inaccurate.

Learning augmented algorithms generally do not prescribe how the prediction should be done. For this purpose machine learning can be used.[citation needed]

Applications

[edit | edit source]

A few examples of problems where learning augmented algorithms have been applied are the following.

Online algorithms

[edit | edit source]


Warm starting

[edit | edit source]

Data structures

[edit | edit source]

The binary search algorithm is an algorithm for finding elements of a sorted list x1,,xn. It needs O(log(n)) steps to find an element with some known value y in a list of length n. With a prediction i for the position of y, the following learning augmented algorithm can be used.[1]

  • First, look at position i in the list. If xi=y, the element has been found.
  • If xi<y, look at positions i+1,i+2,i+4, until an index j with xjy is found.
    • Now perform a binary search on xi,,xj.
  • If xi>y, do the same as in the previous case, but instead consider i1,i2,i4,.

The error is defined to be η=|ii*|, where i* is the real index of y. In the learning augmented algorithm, probing the positions i+1,i+2,i+4, takes log2(η) steps. Then a binary search is performed on a list of size at most 2η, which takes log2(η) steps. This makes the total running time of the algorithm 2log2(η). So, when the error is small, the algorithm is faster than a normal binary search. This shows that the algorithm is consistent. Even in the worst case, the error will be at most n. Then the algorithm takes at most O(log(n)) steps, so the algorithm is robust.

More examples

[edit | edit source]

Approximation algorithms

[edit | edit source]


Mechanism Design

[edit | edit source]


See also

[edit | edit source]

References

[edit | edit source]
  1. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]