BHT Algorithm
   HOME

TheInfoList



OR:

In quantum computing, the Brassard-Høyer-Tapp algorithm or BHT algorithm is a quantum algorithm that solves the collision problem. In this problem, one is given ''n'' and an ''r''-to-1 function f:\,\\rightarrow\ and needs to find two inputs that ''f'' maps to the same output. The BHT algorithm only makes O(n^) queries to ''f'', which matches the lower bound of \Omega(n^) in the
black box In science, computing, and engineering, a black box is a system which can be viewed in terms of its inputs and outputs (or transfer characteristics), without any knowledge of its internal workings. Its implementation is "opaque" (black). The te ...
model. The algorithm was discovered by
Gilles Brassard Gilles Brassard, is a faculty member of the Université de Montréal, where he has been a Full Professor since 1988 and Canada Research Chair since 2001. Education and early life Brassard received a Ph.D. in Computer Science from Cornell Unive ...
, Peter Høyer, and Alain Tapp in 1997. It uses
Grover's algorithm In quantum computing, Grover's algorithm, also known as the quantum search algorithm, refers to a quantum algorithm for unstructured search that finds with high probability the unique input to a black box function that produces a particular output ...
, which was discovered the year before.


Algorithm

Intuitively, the algorithm combines the square root speedup from the
birthday paradox In probability theory, the birthday problem asks for the probability that, in a set of randomly chosen people, at least two will share a birthday. The birthday paradox is that, counterintuitively, the probability of a shared birthday exceeds 5 ...
using (classical) randomness with the square root speedup from Grover's (quantum) algorithm. First, ''n''1/3 inputs to ''f'' are selected at random and ''f'' is queried at all of them. If there is a collision among these inputs, then we return the colliding pair of inputs. Otherwise, all these inputs map to distinct values by ''f''. Then Grover's algorithm is used to find a new input to ''f'' that collides. Since there are ''n'' inputs to ''f'' and ''n''1/3 of these could form a collision with the already queried values, Grover's algorithm can find a collision with O\left(\sqrt\right) = O(n^) extra queries to ''f''.


See also

* Element distinctness problem


References

{{reflist Quantum algorithms