Halving Algorithm

The Halving Algorithm is perhaps the simplest algorithm for On-line Prediction. Barzdin and Freivald (1972), Angluin (1988), and Littlestone (1988) are credited with its introduction; the name was suggested by Littlestone (1988).

Suppose the sequence of observations is known to belong to a finite class consisting of {$K$} sequences, which will be called experts. The following algorithm (the Halving Algorithm) makes at most {$\log K$} errors when predicting this sequence. Predict with the majority of the {$K$} experts in the class until you make a mistake. At least half of the experts will also make a mistake; remove them from the class. Predict with the majority of the remaining experts until you make a mistake. Etc.

The Halving Algorithm assumes that one of the experts is perfect ("knows" the sequence to be observed). The Weighted Majority Algorithm extends the Halving Algorithm beyond this case.


  • Dana Angluin. Queries and concept learning. Machine Learning 2:319 - 342, 1988.
  • J. Barzdin and R. Freivald. On the prediction of general recursive functions. Soviet Mathematics Doklady, 13:1224 - 1228, 1972.
  • Nick Littlestone. Learning quickly when irrelevant attributes abound: a new linear-threshold algorithm. Machine Learning 2:285 - 318, 1988.