'''Grover's algorithm''' is a quantum algorithm for searching an unsorted database with ''N'' entries in ''O(N1/2)'' time and using ''O(''log''N)'' storage space (see big O notation). It was invented by Lov Grover in 1996.
== Introduction ==
Classically, searching an unsorted database requires a linear search, which is ''O(N)'' in time. Grover's algorithm, which takes ''O(N1/2)'' time, is the fastest possible quantum algorithm for searching an unsorted database. It provides "only" a quadratic speedup, unlike other quantum algorithms, which can provide exponential speedup over their classical counterparts. However, even quadratic speedup is considerable when ''N'' is large.
Like all quantum computer algorithms, Grover's algorithm is probabilistic, in the sense that it gives the correct answer with high probability. The probability of failure can be decreased by repeating the algorithm.
== Uses of Grover's algorithm ==
Although the purpose of Grover's algorithm is usually described as "searching a database", it may be more accurate to describe it as "inverting a function". Roughly speaking, if we have a function ''y=f(x)'' that can be evaluated on a quantum computer, Grover's algorithm allows us to calculate ''x'' when given ''y''. Inverting a function is related to the searching of a database because we could come up with a function that produces a particular value of ''y'' if ''x'' matches a desired entry in a database, and another value of ''y'' for other values of ''x''.
Grover's algorithm can also be used for estimating the mean and median of a set of numbers, and for solving the collision problem. In addition, it can be used to solve NP-complete problems by performing exhaustive searches over the set of possible solutions. This would result in a considerable speedup over classical solutions, even though it does not provide the "holy grail" of a polynomial-time solution.
Below, we present the basic form of Grover's algorithm, which searches for a single matching entry. The algorithm can be further optimized if there is more than one matching entry and the number of matches is known beforehand.
== Setup ==
Consider an unsorted database with N entries. The algorithm requires an ''N''-dimensional state space ''H'', which can be supplied by log''2N'' qubits.
Let us number the database entries by 0, 1, ... (''N''-1). Choose an observable, ''Ω'', acting on ''H'', with ''N'' distinct eigenvalues whose values are all known. Each of the eigenstates of ''Ω'' encode one of the entries in the database, in a manner that we will describe. Denote the eigenstates (using bra-ket notation) as
:$\backslash \{|0\backslash rangle,\; |1\backslash rangle,\; \backslash cdots,\; |N-1\backslash rangle\backslash \}$
and the corresponding eigenvalues by
:$\backslash \{\backslash lambda\_0,\; \backslash lambda\_1,\; \backslash cdots,\; \backslash lambda\_\{N-1\}\; \backslash \}$
We are provided with a unitary operator, ''Uω'', which acts as a subroutine that compares database entries according to some search criterion. The algorithm does not specify how this subroutine works, but it must be a ''quantum'' subroutine that works with superpositions of states. Furthermore, it must act specially on one of the eigenstates, |''ω''>, which corresponds to the database entry matching the search criterion. To be precise, we require ''Uω'' to have the following effects:
:$U\_\backslash omega\; |\backslash omega\backslash rangle\; =\; -\; |\backslash omega\backslash rangle$
:$U\_\backslash omega\; |x\backslash rangle\; =\; |x\backslash rangle\; \backslash qquad\; \backslash mbox\{for\; all\}\backslash \; x\; \backslash ne\; \backslash omega$
Our goal is to identify this eigenstate |ω>, or equivalently the eigenvalue ω, that Uω acts specially upon.
== Steps of the algorithm ==
The steps of Grover's algorithm are as follows:
#Initialize the system to the state |s\ranglele = \frac{1}{\sqrt{N}} \sum_x |x\ranglele
#Perform the following "Grover iteration" ''r(N)'' times. The function ''r(N)'' is described below.
##Apply the operator $U\_\backslash omega$
##Apply the operator $U\_s\; =\; 2\; \backslash left|s\backslash right\backslash ranglele\; \backslash left\backslash langlele\; s\backslash right|\; -\; I$.
#Perform the measurement Ω. The measurement result will be λω with probability approaching 1 for N>>1. From λω, ω may be obtained.
== Explanation of the algorithm ==
Our initial state is
:$|s\backslash rangle\; =\; \backslash frac\{1\}\{\backslash sqrt\{N\}\}\; \backslash sum\_x\; |x\backslash rangle$
Consider the plane spanned by |s> and |ω>. Let |ω×> be a ket in this plane perpendicular to |ω>. Since |ω> is one of the basis vectors, the overlap is
:$\backslash langle\backslash omega|s\backslash rangle\; =\; \backslash frac\{1\}\{\backslash sqrt\{N\}\}$
In geometric terms, there is an angle (π/2 - θ) between |ω> and |s>, where θ is given by:
:$\backslash cos\; \backslash left(\backslash frac\{\backslash pi\}\{2\}\; -\; \backslash theta\; \backslash right)\; =\; \backslash frac\{1\}\{\backslash sqrt\{N\}\}$
:$\backslash sin\; \backslash theta\; =\; \backslash frac\{1\}\{\backslash sqrt\{N\}\}$
The operator Uω is a reflection at the hyperplane orthogonal to |ω>; for vectors in the plane spanned by |s> and |ω>, it acts as a reflection at the line through |ω×>. The operator Us is a reflection at the line through |s>. Therefore, the state vector remains in the plane spanned by |s> and |ω> after each application of Us and after each application of Uω, and it is straightforward to check that the operator UsUω of each Grover iteration step rotates the state vector by an angle of 2θ toward |ω>.
We need to stop when the state vector passes close to |ω>; after this, subsequent iterations rotate the state vector ''away'' from |ω>, reducing the probability of obtaining the correct answer. The number of times to iterate is given by ''r''. In order to align the state vector exactly with |ω>, we need:
:$\backslash frac\{\backslash pi\}\{2\}\; -\; \backslash theta\; =\; 2\; \backslash theta\; r$
:$r\; =\; \backslash frac\{(\backslash frac\{\backslash pi\}\{\backslash theta\}\; -\; 2)\}\{4\}$
However, ''r'' must be an integer, so generally we can only set ''r'' to be the integer closest to (π/θ - 2)/4. The angle between |ω> and the final state vector is O(θ), so the probability of obtaining the wrong answer is O(1 - cos2θ) = O(sin2θ).
For N>>1, θ ≈ N-1/2, so
:$r\; \backslash rightarrow\; \backslash frac\{\backslash pi\; \backslash sqrt\{N\}\}\{4\}$
Furthermore, the probability of obtaining the wrong answer becomes O(1/N), which goes to zero for large N.
== Extensions ==
If, instead of 1 matching entry, there are ''k'' matching entries, the same algorithm works but the number of iterations must be ''π(N/k)1/2/4'' instead of ''πN1/2/4''.
There are several ways to handle the case if ''k'' is unknown. For example, one could run Grover's algorithm several times, with
:$\backslash pi\; \backslash frac\{N^\{1/2\}\}\{4\},\; \backslash pi\; \backslash frac\{(N/2)^\{1/2\}\}\{4\},\; \backslash pi\; \backslash frac\{(N/4)^\{1/2\}\}\{4\},\; \backslash ldots$
iterations. For any ''k'', one of iterations will find a matching entry with a sufficiently high probability. The total number of iterations is at most
:$\backslash pi\; \backslash frac\{N^\{1/2\}\}\{4\}\; \backslash left(\; 1+\; \backslash frac\{1\}\{\backslash sqrt\{2\}\}+\backslash frac\{1\}\{2\}+\backslash cdots\backslash right)$
which is still O(''N1/2'').
It is known that Grover's algorithm is optimal. That is, any algorithm that accesses the database only by using the operator Uω must apply Uω at least as many times as Grover's algorithm (Bernstein et al., 1997).
== References ==
# Grover L.K.: ''A fast quantum mechanical algorithm for database search'', Proceedings, 28th Annual ACM Symposium on the Theory of Computing, (May 1996) p. 212

`[Freelinking: External target “http://arxiv.org/abs/quant-ph/9605043A (available online)” not found]`

# Grover L.K.: ''From Schrodinger's equation to quantum search algorithm'', American Journal of Physics, 69(7): 769-777, 2001. Pedagogical review of the algorithm and its history.
# http://www.bell-labs.com/user/feature/archives/lkgrover/
# Bennett C.H., Bernstein E., Brassard G., Vazirani U., ''The strengths and weaknesses of quantum computation''. SIAM Journal on Computing 26(5): 1510-1523 (1997). Shows the optimality of Grover's algorithm.
{{FromWikipedia}}
Category:Quantum Algorithms## Last modified:

Tuesday, November 3, 2015 - 06:20