English

Self-Improving Algorithms

Data Structures and Algorithms 2011-05-30 v2 Computational Geometry

Abstract

We investigate ways in which an algorithm can improve its expected performance by fine-tuning itself automatically with respect to an unknown input distribution D. We assume here that D is of product type. More precisely, suppose that we need to process a sequence I_1, I_2, ... of inputs I = (x_1, x_2, ..., x_n) of some fixed length n, where each x_i is drawn independently from some arbitrary, unknown distribution D_i. The goal is to design an algorithm for these inputs so that eventually the expected running time will be optimal for the input distribution D = D_1 * D_2 * ... * D_n. We give such self-improving algorithms for two problems: (i) sorting a sequence of numbers and (ii) computing the Delaunay triangulation of a planar point set. Both algorithms achieve optimal expected limiting complexity. The algorithms begin with a training phase during which they collect information about the input distribution, followed by a stationary regime in which the algorithms settle to their optimized incarnations.

Keywords

Cite

@article{arxiv.0907.0884,
  title  = {Self-Improving Algorithms},
  author = {Nir Ailon and Bernard Chazelle and Kenneth L. Clarkson and Ding Liu and Wolfgang Mulzer and C. Seshadhri},
  journal= {arXiv preprint arXiv:0907.0884},
  year   = {2011}
}

Comments

26 pages, 8 figures, preliminary versions appeared at SODA 2006 and SoCG 2008. Thorough revision to improve the presentation of the paper

R2 v1 2026-06-21T13:21:44.796Z