Collision problem
The r-to-1 collision problem is an important theoretical problem in complexity theory, quantum computing, and computational mathematics. The collision problem most often refers to the 2-to-1 version:[1] given [math]\displaystyle{ n }[/math] even and a function [math]\displaystyle{ f:\,\{1,\ldots,n\}\rightarrow\{1,\ldots,n\} }[/math], we are promised that f is either 1-to-1 or 2-to-1. We are only allowed to make queries about the value of [math]\displaystyle{ f(i) }[/math] for any [math]\displaystyle{ i\in\{1,\ldots,n\} }[/math]. The problem then asks how many such queries we need to make to determine with certainty whether f is 1-to-1 or 2-to-1.
Classical solutions
Deterministic
Solving the 2-to-1 version deterministically requires [math]\displaystyle{ \frac{n}{2}+1 }[/math] queries, and in general distinguishing r-to-1 functions from 1-to-1 functions requires [math]\displaystyle{ \frac{n}{r} + 1 }[/math] queries.
This is a straightforward application of the pigeonhole principle: if a function is r-to-1, then after [math]\displaystyle{ \frac{n}{r} + 1 }[/math] queries we are guaranteed to have found a collision. If a function is 1-to-1, then no collision exists. Thus, [math]\displaystyle{ \frac{n}{r} + 1 }[/math] queries suffice. If we are unlucky, then the first [math]\displaystyle{ n/r }[/math] queries could return distinct answers, so [math]\displaystyle{ \frac{n}{r} + 1 }[/math] queries is also necessary.
Randomized
If we allow randomness, the problem is easier. By the birthday paradox, if we choose (distinct) queries at random, then with high probability we find a collision in any fixed 2-to-1 function after [math]\displaystyle{ \Theta(\sqrt{n}) }[/math] queries.
Quantum solution
The BHT algorithm, which uses Grover's algorithm, solves this problem optimally by only making [math]\displaystyle{ O(n^{1/3}) }[/math] queries to f.
References
- ↑ Scott Aaronson (2004). "Limits on Efficient Computation in the Physical World". http://www.scottaaronson.com/thesis.pdf.
Original source: https://en.wikipedia.org/wiki/Collision problem.
Read more |