Quantum algorithm: Difference between revisions
linked "entanglement" to "quantum entanglement" to avoid ambiguity |
|||
Line 49: | Line 49: | ||
{{main|Simon's algorithm}} |
{{main|Simon's algorithm}} |
||
Simon's algorithm solves a black-box problem exponentially faster than any classical algorithm, including probabilistic algorithms. |
Simon's algorithm solves a black-box problem exponentially faster than any such classical algorithm, including probabilistic algorithms. |
||
=== Shor's algorithm === |
=== Shor's algorithm === |
Revision as of 12:54, 7 September 2009
In quantum computing, a quantum algorithm is an algorithm which runs on a realistic model of quantum computation, the most commonly used model being the quantum circuit model of computation.[1][2] A classical algorithm is a finite sequence of instructions, or a step-by-step procedure for solving a problem, where each step or instruction can be performed on a classical computer. Similarly, a quantum algorithm is a step-by-step procedure, where each of the steps can be performed on a quantum computer. Although all classical algorithms can also be performed on a quantum computer, the term quantum algorithm is usually used for those algorithms which seem inherently quantum, or use some essential feature of quantum computation such as quantum superposition or entanglement.
All problems which can be solved on a quantum computer can be solved on a classical computer. In particular, problems which are undecidable using classical computers remain undecidable using quantum computers. The reason that makes quantum algorithms interesting is that they might be able to solve some problems faster than classical algorithms.
The most well known algorithms are Shor's algorithm for factoring, and Grover's algorithm for searching an unstructured database or an unordered list. Shor's algorithms runs exponentially faster than the best known classical algorithm for factoring, the general number field sieve. Grover's algorithm runs quadratically faster than the best possible classical algorithm for the same task.
Overview
Quantum algorithms are usually described, in the commonly-used circuit model of quantum computation, by a quantum circuit which acts on some input qubits and terminates with a measurement. A quantum circuit consists of simple quantum gates which act on at most a fixed number of qubits, usually 2 or 3. Quantum algorithms may also be stated in other models of quantum computation, such as the Hamiltonian oracle model.[3]
Quantum algorithms can be grouped together by the main techniques used by the algorithm. Some commonly used techniques/ideas in quantum algorithms include phase kick-back, phase estimation, the quantum Fourier transform, quantum walks and amplitude amplification. Quantum algorithms may also be grouped by the type of problem solved: algebraic[4], number-theoretic, combinatorial, etc.
Algorithms based on the quantum Fourier transform
The quantum Fourier transform is the quantum analogue of the discrete Fourier transform, and is used in several quantum algorithms. The Hadamard transform is also an example of a quantum Fourier transform.
Deutsch–Jozsa algorithm
The Deutsch–Jozsa algorithm solves a black-box problem which provably requires exponentially many queries to the black box for any deterministic classical computer, but can be done with exactly 1 query with a quantum algorithm.
Simon's algorithm
Simon's algorithm solves a black-box problem exponentially faster than any such classical algorithm, including probabilistic algorithms.
Shor's algorithm
Shor's algorithm solves the discrete logarithm problem and the integer factorization problem in polynomial time,[5] whereas the best known classical algorithms take super-polynomial time.
Hidden subgroup problem
The hidden subgroup problem is a generalization of many problems, such as factoring, graph isomorphism and certain lattice problems. There are efficient quantum algorithms for the Abelian hidden subgroup problem.[6] Efficient quantum algorithms are known for certain non-Abelian groups. However, no efficient algorithms are known for the symmetric group (which would give an efficient algorithm for graph isomorphism[7]) and the dihedral group (which would solve certain lattice problems[8]).
Estimating Gauss sums
A Gauss sum is a type of exponential sum. The best known classical algorithm for estimating these sums takes exponential time. Since the discrete logarithm problem reduces to Gauss sum estimation, an efficient classical algorithm for estimating Gauss sums would imply an efficient classical algorithm for computing discrete logarithms, which is considered unlikely. However, quantum computers can estimate Gauss sums to polynomial precision in polynomial time.[9]
Algorithms based on amplitude amplification
Amplitude amplification is a technique that allows the amplification of a chosen subspace of a quantum state. Applications of amplitude amplification usually lead to quadratic speedups over the corresponding classical algorithms.
Grover's algorithm
Grover's algorithm searches an unstructured database (or an unordered list) with N entries, for a marked entry, using only queries instead of the queries required classically.[10]
Quantum counting
Quantum counting solves a generalization of the the search problem.[11] It solves the problem of counting the number of marked entries in an unordered list.
Algorithms based on quantum walks
Algorithms based on quantum walks can provide an exponential speedup over any classical algorithm for some oracular problems.[12][13] Quantum walks also give polynomial speedups over classical algorithms for many practical problems, such as the element distinctness problem,[14] the triangle finding problem,[15] and evaluating NAND trees.[16]
References
- ^ Michael Nielsen and Isaac Chuang (2000). Quantum Computation and Quantum Information. Cambridge: Cambridge University Press. ISBN 0-521-63503-9. OCLC 174527496.
- ^ Mosca, Michele (2008-08-03). "Quantum Algorithms". 0808.0369. Retrieved 2009-08-05.
- ^ Farhi, E. (2007-02-14). "A Quantum Algorithm for the Hamiltonian NAND Tree". Quant-ph/0702144. Retrieved 2009-08-05.
{{cite journal}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - ^ Childs, Andrew M (2008-12-02). "Quantum algorithms for algebraic problems". 0812.0380. Retrieved 2009-08-05.
{{cite journal}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - ^ Shor, Peter W (1995-08-30). "Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer". Quant-ph/9508027. Retrieved 2009-08-06.
- ^ D. Boneh and R. J. Lipton. Quantum cryptoanalysis of hidden linear functions. In Don Coppersmith, editor, CRYPTO '95, Lecture Notes in Computer Science, pages 424-437. Springer-Verlag, 1995.
- ^ Cristopher Moore; Alexander Russell; Schulman, Leonard J. (2005). "The Symmetric Group Defies Strong Fourier Sampling: Part I". arXiv:quant-ph/0501056v3.
{{cite arXiv}}
:|class=
ignored (help) - ^ Regev, Oded (2003-04-01). "Quantum Computation and Lattice Problems". Cs/0304005. Retrieved 2009-08-06.
- ^ van Dam, Wim (2002-07-22). "Efficient Quantum Algorithms for Estimating Gauss Sums". Quant-ph/0207131. Retrieved 2009-08-13.
{{cite journal}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - ^ Grover, Lov K (1996-05-29). "A fast quantum mechanical algorithm for database search". Quant-ph/9605043. Retrieved 2009-08-06.
- ^ Brassard, Gilles (1998-05-27). "Quantum Counting". Quant-ph/9805082. Retrieved 2009-08-06.
{{cite journal}}
: Unknown parameter|coauthors=
ignored (|author=
suggested) (help) - ^ A. M. Childs, R. Cleve, E. Deotto, E. Farhi, S. Gutmann, and D. A. Spielman, Exponential algorithmic speedup by quantum walk, Proc. 35th ACM Symposium on Theory of Computing, pp. 59–68, 2003, quant-ph/0209131.
- ^ A. M. Childs, L. J. Schulman, and U. V. Vazirani, Quantum algorithms for hidden nonlinear structures, Proc. 48th IEEE Symposium on Foundations of Computer Science, pp. 395–404, 2007, arXiv:0705.2784.
- ^ A. Ambainis, Quantum walk algorithm for element distinctness, SIAM J. Comput. 37 (2007), no. 1, 210–239, quant-ph/0311001, preliminary version in FOCS 2004.
- ^ F. Magniez, M. Santha, and M. Szegedy, Quantum algorithms for the triangle problem, Proc. 16th ACM-SIAMSymposium on Discrete Algorithms, pp. 1109–1117, 2005, quant-ph/0310134.
- ^ E. Farhi, J. Goldstone, and S. Gutmann, A quantum algorithm for the Hamiltonian NAND tree, Theory of Computing 4 (2008), no. 1, 169–190, quant-ph/0702144