Der Grover-Algorithmus ist ein Quantenalgorithmus zur Suche in einer unsortierten Datenbank mit
Einträgen in
Schritten und mit
Speicherbedarf (siehe O-Notation). Er wurde von Lov Grover im Jahre 1996 veröffentlicht[1] und gehört zu den ersten Quantenalgorithmen, für die bewiesen wurde, dass sie mit der Problemgröße besser skalieren als der beste klassische Algorithmus. Im Fall des Grover-Algorithmus handelt es sich um einen quadratischen Speedup.
Auf einem klassischen Computer ist der prinzipiell schnellstmögliche Suchalgorithmus in einer unsortierten Datenbank die lineare Suche, die
Rechenschritte erfordert. Der Grover-Algorithmus liefert damit eine quadratische Beschleunigung, was für große
beträchtlich ist.
Wie die meisten Quantenalgorithmen ist der Grover-Algorithmus ein probabilistischer Algorithmus, d. h., er gibt die korrekte Antwort mit hoher Wahrscheinlichkeit, wobei die Wahrscheinlichkeit einer fehlerhaften Antwort durch wiederholte Ausführung des Algorithmus verkleinert werden kann.
Anwendungen
Der Grover-Algorithmus ermöglicht eigentlich nicht die direkte Suche in unsortierten Datenbanken, sondern die Umkehrung einer endlichen Funktion
, denn zu einem gegebenen Wert
entspricht ein Wert
der Suche nach einem Wert
im Definitionsbereich von
.
Der Grover-Algorithmus kann ebenso zur Berechnung des Mittelwerts und des Medians einer Menge von Zahlen verwendet werden sowie zur Lösung des Kollisionsproblems. Weiter kann er zur Lösung NP-vollständiger Probleme eingesetzt werden, indem er die Menge aller möglichen Probleme durchläuft. Obwohl damit NP-vollständige Probleme beträchtlich schneller gelöst werden können, ermöglicht auch der Grover-Algorithmus keine Lösung in polynomialer Zeitkomplexität.
Detaillierter Ablauf
Der folgende Ablauf des Algorithmus bezieht sich auf die Suche nach einem einzelnen Sucheintrag. Der Algorithmus kann weiter optimiert werden, um einen von mehreren möglichen Einträgen zu finden, wobei deren Anzahl im Vorfeld bekannt ist.
Voraussetzungen
Gegeben sei eine unsortierte Datenbank mit
Einträgen, die in einem
-dimensionalen Zustandsraum
durch
Qubits dargestellt wird. Die Einträge seien mit
durchnummeriert. Dann wählen wir eine auf
wirkende Observable
mit
verschiedenen Eigenzuständen

(in der Bra-Ket-Notation) und den zugehörigen Eigenwerten

Ferner sei ein unitärer Operator
gegeben, der eine Subroutine, das sogenannte Orakel, darstellt, die die Datenbankeinträge effizient nach dem Suchkriterium vergleicht. Der Algorithmus legt nicht fest, wie das Orakel arbeitet, es muss allerdings die Superposition der Quantenzustände verarbeiten und den gesuchten Eigenzustand
erkennen:


Ziel des Algorithmus ist es, diesen Eigenzustand
, bzw. äquivalent den Eigenwert
zu identifizieren.
Schrittabfolge
- Initialisiere das System in den Zustand

- Führe die folgende sog. Grover-Iteration
-mal durch. (Die Funktion
wird weiter unten beschrieben.)
- Wende den Operator
an (erste Householdertransformation).
- Wende den Operator
an (zweite Householdertransformation).
- Führe die Messung von
durch. Das Messergebnis beträgt
mit einer Wahrscheinlichkeit nahe
, falls
. Mit der Messung von
ist das System im Zustand
.
Geometrische Sicht und Bestimmung der Schrittzahl r(N)
Der Anfangszustand lautet

Betrachten wir die von
und
aufgespannte Ebene. Sei
ein Ket-Vektor in dieser Ebene, senkrecht zu
. Da
einer der Basisvektoren ist, folgt

Geometrisch bedeutet das, dass
und
in einem Winkel von
zueinander stehen, wobei
gegeben ist durch

folglich ist

Der Operator
ist eine Spiegelung an der zu
orthogonalen Hyperebene; für Vektoren in der von
und
aufgespannten Ebene wirkt er als Spiegelung an der Geraden durch
. Der Operator
ist eine Spiegelung an der Geraden durch
. Der Zustandsvektor bleibt also nach der Anwendung von
und
in der durch
und
aufgespannten Ebene. Damit rotiert der Operator
bei jedem Schritt der Grover-Iteration den Zustandsvektor um einen Winkel von
nach
.
Der Algorithmus muss also anhalten, sobald der Zustandsvektor
am nächsten gekommen ist. Weitere Iterationen würden ihn wieder davon weg drehen und damit die Wahrscheinlichkeit der korrekten Antwort wieder verkleinern. Für die optimale Anzahl
an Iterationen zur exakten Übereinstimmung mit
gilt

also

Da
aber eine ganze Zahl sein muss, setzen wir
gleich der gerundeten Zahl
. Damit beträgt die Wahrscheinlichkeit, eine falsche Antwort zu messen,
. Die Irrtumswahrscheinlichkeit bei
Datenbankeinträgen lautet also asymptotisch
, d. h., sie ist vernachlässigbar klein für große
.
Für
gilt
, also

Erweiterungen
Enthält die Datenbank nicht nur einen, sondern
gesuchte Einträge, so funktioniert der Algorithmus ebenfalls, allerdings gilt für die Anzahl
durchzuführender Iterationen nun
statt
.
Ist
unbekannt, so führt man den Grover-Algorithmus in

Iterationen durch. Für beliebiges
wird ein gesuchter Eintrag mit genügend hoher Wahrscheinlichkeit gefunden. Die Gesamtzahl von Iterationen beträgt höchstens

Optimalität des Grover-Algorithmus
Der Grover-Algorithmus ist optimal in dem Sinne, dass es keinen Quantenalgorithmus mit weniger als
Rechenschritten geben kann.[2] Dieses Resultat ist wichtig, um die Grenzen des Quantenrechnens zu verstehen.
Wäre das Suchproblem beispielsweise mit
Schritten lösbar, so wäre NP in BQP enthalten.
Ebenso ist die Anzahl i. A. notwendiger Iterationen für
gesuchte Einträge, also
, optimal.
Qualitatives Argument
Um ein heuristisches Verständnis des quantenmechanischen Verfahrens im Vergleich zum klassischen Vorgehen zu gewinnen, und für Verallgemeinerungen, ist es sinnvoll den folgenden Spezialfall zu betrachten: die gesuchte Information soll auf einem spezifischen Gitterpunkt eines Quadratgitters liegen. Die Suche erfordert also klassisch im schlimmsten Fall
Schritte, wenn
die Kantenlänge des Quadrates ist. Quantenmechanische Zustände sind dagegen Strahlen im Hilbertraum, d. h., sie sind nur bis auf einen Faktor bestimmt, und wenn man vom Zentrum des Quadrates ausgeht, ist die Richtung
des Strahls durch eine Punktmenge gegeben, welche nur dem Umfang und nicht dem Inhalt des Quadrates entspricht, also einer Menge
. Um einen speziellen Punkt auf dem gewählten Strahl zu finden, muss man nur noch Interferenzexperimente mit anderen quantenmechanischen Zuständen durchführen, was praktisch ohne zusätzlichen Zeitaufwand möglich ist. Die gesuchte Information erhält man also quantenmechanisch in
Schritten.
Verwandte Themen
Ein ganz anderes Problem, bei dem Quantencomputer ebenfalls eine wesentliche Beschleunigung bringen, betrifft die Faktorisierung einer sehr großen Zahl (siehe Shor-Algorithmus).
Literatur
- M. Homeister: Quantum Computing verstehen Springer Vieweg, Wiesbaden 2018, fünfte Auflage, ISBN 978-3-6582-2883-5, S. 137ff.
- B. Lenze: Mathematik und Quantum Computing Logos Verlag, Berlin 2020, zweite Auflage, ISBN 978-3-8325-4716-5, S. 57ff.
- R. J. Lipton, K. W. Regan: Quantum Algorithms via Linear Algebra: A Primer MIT Press, Cambridge MA 2014, ISBN 978-0-2620-2839-4, S. 115ff.
- M. A. Nielsen, I. L. Chuang: Quantum Computation and Quantum Information. Cambridge University Press, Cambridge MA 2010, ISBN 978-1-107-00217-3, S. 248 ff. (wordpress.com [PDF]).
- W. Scherer: Mathematik der Quanteninformatik Springer-Verlag, Berlin-Heidelberg 2016, ISBN 978-3-6624-9079-2, S. 235ff.
- C. P. Williams: Explorations in Quantum Computing Springer-Verlag, London 2011, zweite Auflage, ISBN 978-1-8462-8886-9, S. 245ff.
Weblinks
- L. K. Grover: From Schrödinger's equation to quantum search algorithm, American Journal of Physics, 69(7): 769-777, 2001. Überblick über den Algorithmus und seine Geschichte (englisch)
- L. K. Grover: Quantum Computing: How the weird logic of the subatomic world could make it possible for machines to calculate millions of times faster than they do today, In: The Sciences, July/August 1999, S. 24–30. (englisch)
- What's a Quantum Phone Book? (Memento vom 1. Februar 2014 im Internet Archive), Lov Grover, Bell Labs
- J. Marre: Der Grover-Algorithmus und die Suche nach dem heiligen Gral In: quantencomputer-info veröffentlicht 11. September 2018
- Quanten-Suchalgorithmus In: Norbert Linke, Markus Müller: Quantencomputer auf Basis von Ionen in Fallen. Mit Ionen ist zu rechnen. In: Physik in unserer Zeit. 2020, S. 162–173 (wiley.com [PDF]).
- Reinhard Karnapke, Simon Rieche: Grover-Algorithmus In: Quantensuchalgorithmen S. 3–7 Seminarunterlagen Sommersemester 2002
Einzelnachweise
- ↑ L. K. Grover: A fast quantum mechanical algorithm for database search. In: Proceedings, 28th Annual ACM Symposium on the Theory of Computing (STOC). Mai 1996, S. 212–219, arxiv:quant-ph/9605043.
- ↑ C. H. Bennett, G. Brassard, Vazirani U.: The strengths and weaknesses of quantum computation. In: SIAM Journal on Computing. Band 26, Nr. 5, 1997, S. 1510–1523, doi:10.1137/s0097539796300933.