Cell-probe model

In computer science, the cell-probe model is a model of computation similar to the random-access machine, except that all operations are free except memory access. This model is useful for proving lower bounds of algorithms for data structure problems.

Overview
The cell-probe model is a modification of the random-access machine model, in which computational cost is only assigned to accessing memory cells.

The model is intended for proving lower bounds on the complexity of data structure problems. One type of such problems has two phases: the preprocessing phase and the query phase. The input to the first phase, the preprocessing phase, is a set of data from which to build some structure from memory cells. The input to the second phase, the query phase, is a query parameter. The query has to consult the data structure in order to compute its result; for example, a query may be asked to determine if the query parameter was included in the original input data set. Another type of problem involves both update operations, that modify the data structure, and query operations. For example, an update may add an element to the structure, or remove one. In both cases, the cell-probe complexity of the data structure is characterized by the number of memory cells accessed during preprocessing, query and (if relevant) update. The cell probe complexity is a lower bound on the time complexity of the corresponding operations on a random-access machine, where memory transfers are part of the operations counted in measuring time.

An example of such a problem is the dynamic partial sum problem.

History
Andrew Yao's 1981 paper "Should Tables Be Sorted?" is considered as the introduction of the cell-probe model. Yao used it to give a minimum number of memory cell "probes" or accesses necessary to determine whether a given query datum exists within a table stored in memory. In 1989, Fredman and Saks initiated the study of cell probe lower bounds for dynamic data-structure problems (i.e., involving updates and queries), and introduced the notation CPROBE(b) for the cell-probe model assuming that a memory cell (word) consists of b bits.

Searching Tables
Yao considered a static data-structure problem where one has to build a data structure ("table") to represent a set $$S$$ of $$n$$ elements out of $$1,\dots,m$$. The query parameter is a number $$x\le m$$ and the query has to report whether $$x$$ is in the table. Yao showed that as long as the table size is bounded independently of $$m$$ and $$m$$ is large enough, a query must perform $$\lceil\log (n+1)\rceil$$ probes in the worst case. This shows that a sorted table together with binary search for queries is an optimal scheme.

Dynamic Partial Sums
The dynamic partial sum problem defines two operations $(k,v)$ which sets the value in an array $A$ at index $k$ to be $v$, and $(k)$ which returns the sum of the values in $A$ at indices $0$ through $k$. A naïve implementation would take $$O(1)$$ time for and $$O(n)$$ time for.

Instead, values can be stored as leaves in a tree whose inner nodes store the sum over the subtree rooted at that node. In this structure requires $$O(\log n)$$ time to update each node in the leaf to root path, and  similarly requires $$O(\log n)$$ time to traverse the tree from leaf to root summing the values of all subtrees left of the query index.

Improving on a result of Fredman and Saks, Mihai Pătraşcu used the cell-probe model and an information transfer argument to show that the partial sums problem requires $$\Omega\left(\log n\right)$$ time per operation in the worst case (i.e., the worst of query and update must consume such time), assuming $$b=\Omega(\log n)$$ bits per word. He further exhibited the trade-off curve between update time and query time and investigated the case that updates are restricted to small numbers (of $$\delta=o(b)$$ bits).

Disjoint Set Maintenance (Union-Find)
In the disjoint-set data structure, the structure represents a collection of disjoint sets; there is an update operation, called Union, which unites two sets, and a query operation, called Find, which identifies the set to which a given element belongs. Fredman and Saks proved that in the model CPROBE(log n), any solution for this problem requires $$\Omega(m\alpha(m,n))$$ probes in the worst case (even in expectation) to execute $$n-1$$ unions and $$m\ge n$$ finds. This shows that the classic data structure described in the article on disjoint-set data structure is optimal.

Approximate Nearest Neighbor Searching
The exact nearest neighbor search problem is to determine the closest in a set of input points to a given query point. An approximate version of this problem is often considered since many applications of this problem are in very high dimension spaces and solving the problem in high dimensions requires exponential time or space with respect to the dimension.

Chakrabarti and Regev proved that the approximate nearest neighbor search problem on the Hamming cube using polynomial storage and $$d^{O(1)}$$ word size requires a worst-case query time of $$\Omega\left(\frac{\log\log d}{\log\log\log d}\right)$$. This proof used the cell-probe model and information theoretic techniques from communication complexity.

The Cell-Probe Model versus Random Access Machines
In the cell probe model, limiting the range of values that can be stored in a cell is paramount (otherwise one could encode the whole data structure in one cell). The idealized random access machine used as a computational model in Computer Science does not impose a limit on the contents of each cell (in contrast to the word RAM). Thus cell probe lower bounds apply to the word RAM, but do not apply to the idealized RAM. Certain techniques for cell-probe lower bounds can, however, be carried over to the idealized RAM with an algebraic instruction set and similar lower bounds result.