Multi-finger binary search trees
Abstract
We study multi-finger binary search trees (BSTs), a far-reaching extension of the classical BST model, with connections to the well-studied -server problem. Finger search is a popular technique for speeding up BST operations when a query sequence has locality of reference. BSTs with multiple fingers can exploit more general regularities in the input. In this paper we consider the cost of serving a sequence of queries in an optimal (offline) BST with fingers, a powerful benchmark against which other algorithms can be measured. We show that the -finger optimum can be matched by a standard dynamic BST (having a single root-finger) with an factor overhead. This result is tight for all , improving the factor implicit in earlier work. Furthermore, we describe new online BSTs that match this bound up to a factor. Previously only the "one-finger" special case was known to hold for an online BST (Iacono, Langerman, 2016; Cole et al., 2000). Splay trees, assuming their conjectured optimality (Sleator and Tarjan, 1983), would have to match our bounds for all . Our online algorithms are randomized and combine techniques developed for the -server problem with a multiplicative-weights scheme for learning tree metrics. To our knowledge, this is the first time when tools developed for the -server problem are used in BSTs. As an application of our -finger results, we show that BSTs can efficiently serve queries that are close to some recently accessed item. This is a (restricted) form of the unified property (Iacono, 2001) that was previously not known to hold for any BST algorithm, online or offline.
Cite
@article{arxiv.1809.01759,
title = {Multi-finger binary search trees},
author = {Parinya Chalermsook and Mayank Goswami and László Kozma and Kurt Mehlhorn and Thatchaphol Saranurak},
journal= {arXiv preprint arXiv:1809.01759},
year = {2018}
}
Comments
To be presented at ISAAC 2018. Also extends (and supersedes parts of) arXiv:1603.04892, with possible text overlaps