<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Grover-Algorithmus</id>
	<title>Grover-Algorithmus - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Grover-Algorithmus"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Grover-Algorithmus&amp;action=history"/>
	<updated>2026-05-24T02:44:40Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Grover-Algorithmus&amp;diff=914743&amp;oldid=prev</id>
		<title>imported&gt;Nukelavee: /* growthexperiments-addlink-summary-summary:3|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Grover-Algorithmus&amp;diff=914743&amp;oldid=prev"/>
		<updated>2024-11-13T09:34:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:3|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;Grover-Algorithmus&amp;#039;&amp;#039;&amp;#039; ist ein [[Quantenalgorithmus]] zur Suche in einer un[[Sortierung|sortierten]] [[Datenbank]] mit &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; Einträgen in &amp;lt;math&amp;gt;\mathcal O\left(\sqrt{N}\right)&amp;lt;/math&amp;gt; Schritten und mit &amp;lt;math&amp;gt;\mathcal O\left(\log N\right)&amp;lt;/math&amp;gt; Speicherbedarf (siehe [[O-Notation]]). Er wurde von [[Lov Grover]] im Jahre [[1996]] veröffentlicht&amp;lt;ref name=&amp;quot;GROVER-1996&amp;quot;&amp;gt;{{Literatur |Autor=[[Lov Grover|L. K. Grover]] |Titel=A fast quantum mechanical algorithm for database search |Sammelwerk=Proceedings, 28th Annual ACM Symposium on the Theory of Computing (STOC) |Datum=1996-05 |Seiten=212–219 |arXiv=quant-ph/9605043}}&amp;lt;/ref&amp;gt; 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. &lt;br /&gt;
&lt;br /&gt;
Auf einem klassischen Computer ist der prinzipiell schnellstmögliche Suchalgorithmus in einer unsortierten Datenbank die [[lineare Suche]], die &amp;lt;math&amp;gt;\mathcal O\left(N\right)&amp;lt;/math&amp;gt; Rechenschritte erfordert. Der Grover-Algorithmus liefert damit eine quadratische Beschleunigung, was für große &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; beträchtlich ist.&lt;br /&gt;
&lt;br /&gt;
Wie die meisten Quantenalgorithmen ist der Grover-Algorithmus ein [[probabilistischer Algorithmus]], d.&amp;amp;nbsp;h., er gibt die korrekte Antwort mit hoher [[Wahrscheinlichkeit]], wobei die Wahrscheinlichkeit einer fehlerhaften Antwort durch wiederholte Ausführung des Algorithmus verkleinert werden kann.&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
&lt;br /&gt;
Der Grover-Algorithmus ermöglicht eigentlich nicht die direkte Suche in unsortierten Datenbanken, sondern die [[Umkehrfunktion|Umkehrung]] einer endlichen Funktion &amp;lt;math&amp;gt;y = f(x)&amp;lt;/math&amp;gt;, denn zu einem gegebenen Wert &amp;lt;math&amp;gt;y&amp;lt;/math&amp;gt; entspricht ein Wert &amp;lt;math&amp;gt;x=f^{-1} (y)&amp;lt;/math&amp;gt; der Suche nach einem Wert &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; im [[Definitionsbereich]] von &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Der Grover-Algorithmus kann ebenso zur Berechnung des [[Mittelwert]]s und des [[Median]]s einer Menge von Zahlen verwendet werden sowie zur Lösung des [[Kollisionsproblem]]s. Weiter kann er zur Lösung [[NP-vollständig]]er 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 [[P (Komplexitätsklasse)|polynomialer Zeitkomplexität]].&lt;br /&gt;
&lt;br /&gt;
== Detaillierter Ablauf ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Voraussetzungen ===&lt;br /&gt;
&lt;br /&gt;
Gegeben sei eine unsortierte Datenbank mit &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; Einträgen, die in einem &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-dimensionalen [[Quantenmechanischer Zustand|Zustandsraum]] &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt; durch &amp;lt;math&amp;gt;\log_2N&amp;lt;/math&amp;gt; [[Qubit]]s dargestellt wird. Die Einträge seien mit &amp;lt;math&amp;gt;0, 1, \dots, (N-1)&amp;lt;/math&amp;gt; durchnummeriert. Dann wählen wir eine auf &amp;lt;math&amp;gt;\mathcal{H}&amp;lt;/math&amp;gt; wirkende [[Observable]] &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; verschiedenen [[Eigenzustand|Eigenzuständen]]&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\left\{\left\vert 0\right\rang, \left\vert 1\right\rang, \cdots, \left\vert N-1\right\rang\right\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(in der [[Bra-Ket]]-Notation) und den zugehörigen [[Eigenwert]]en&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\left\{\lambda_0, \lambda_1, \cdots, \lambda_{N-1} \right\}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ferner sei ein [[unitärer Operator]] &amp;lt;math&amp;gt;U_\omega&amp;lt;/math&amp;gt; gegeben, der eine [[Subroutine]], das sogenannte [[Orakel-Turingmaschine|Orakel]], darstellt, die die Datenbankeinträge [[P (Komplexitätsklasse)|effizient]] nach dem Suchkriterium vergleicht. Der Algorithmus legt nicht fest, wie das Orakel arbeitet, es muss allerdings die [[Superposition (Physik)|Superposition]] der Quantenzustände verarbeiten und den gesuchten Eigenzustand &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; erkennen:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; U_\omega \left\vert\omega\right\rang = - \left\vert\omega\right\rang &amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt; U_\omega \left\vert x\right\rang = \left\vert x\right\rang \qquad \forall x \ne \omega&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ziel des Algorithmus ist es, diesen Eigenzustand &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt;, bzw. äquivalent den Eigenwert &amp;lt;math&amp;gt;\lambda_\omega&amp;lt;/math&amp;gt; zu identifizieren.&lt;br /&gt;
&lt;br /&gt;
=== Schrittabfolge ===&lt;br /&gt;
#Initialisiere das System in den Zustand&lt;br /&gt;
#:&amp;lt;math&amp;gt;\left\vert s\right\rang = \frac{1}{\sqrt{N}} \sum_x \left\vert x\right\rang&amp;lt;/math&amp;gt;&lt;br /&gt;
#Führe die folgende sog. Grover-Iteration &amp;lt;math&amp;gt;r(N)&amp;lt;/math&amp;gt;-mal durch. (Die Funktion &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; wird weiter unten beschrieben.)&lt;br /&gt;
##Wende den Operator &amp;lt;math&amp;gt;U_\omega = I - 2 \left\vert \omega\right\rang\left\lang \omega\right\vert&amp;lt;/math&amp;gt; an (erste [[Householdertransformation]]).&lt;br /&gt;
##Wende den Operator &amp;lt;math&amp;gt;U_s = -(I- 2 \left\vert s\right\rang \left\lang s\right\vert)&amp;lt;/math&amp;gt; an (zweite [[Householdertransformation]]).&lt;br /&gt;
#Führe die [[Observable|Messung]] von &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; durch. Das [[Messergebnis]] beträgt &amp;lt;math&amp;gt;\lambda_\omega&amp;lt;/math&amp;gt; mit einer Wahrscheinlichkeit nahe &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, falls &amp;lt;math&amp;gt;N\gg 1&amp;lt;/math&amp;gt;. Mit der Messung von &amp;lt;math&amp;gt;\lambda_\omega&amp;lt;/math&amp;gt; ist das System im Zustand &amp;lt;math&amp;gt;\omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Geometrische Sicht und Bestimmung der Schrittzahl &amp;#039;&amp;#039;r(N)&amp;#039;&amp;#039; ==&lt;br /&gt;
Der Anfangszustand lautet&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; |s\rang = \frac{1}{\sqrt{N}} \sum_x |x\rang. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betrachten wir die von &amp;lt;math&amp;gt;\left\vert s\right\rang&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; aufgespannte Ebene. Sei &amp;lt;!--left und right erzeugen mit MathML ein unschönes Ergebnis--&amp;gt;&amp;lt;math&amp;gt;\vert\omega^\times\rang&amp;lt;/math&amp;gt; ein Ket-Vektor in dieser Ebene, senkrecht zu &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt;. Da &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; einer der Basisvektoren ist, folgt&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \lang\omega\mid s\rang = \frac{1}{\sqrt{N}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Geometrisch bedeutet das, dass &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\left\vert s\right\rang&amp;lt;/math&amp;gt; in einem Winkel von &amp;lt;math&amp;gt;\tfrac\pi 2 - \theta&amp;lt;/math&amp;gt; zueinander stehen, wobei &amp;lt;math&amp;gt;\theta = \theta(N)&amp;lt;/math&amp;gt; gegeben ist durch&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \cos \left(\frac{\pi}{2} - \theta \right) = \frac{1}{\sqrt{N}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
folglich ist&lt;br /&gt;
:&amp;lt;math&amp;gt; \sin \theta = \frac{1}{\sqrt{N}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Operator &amp;lt;math&amp;gt;U_\omega&amp;lt;/math&amp;gt; ist eine [[Spiegelung (Geometrie)#Spiegelungen in Räumen beliebiger Dimension|Spiegelung]] an der zu &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; orthogonalen [[Hyperebene]]; für Vektoren in der von &amp;lt;math&amp;gt;\left\vert s\right\rang&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; aufgespannten Ebene wirkt er als Spiegelung an der Geraden durch &amp;lt;!--left und right erzeugen mit MathML ein unschönes Ergebnis--&amp;gt;&amp;lt;math&amp;gt;\vert\omega^\times\rang&amp;lt;/math&amp;gt;. Der Operator &amp;lt;math&amp;gt;U_s&amp;lt;/math&amp;gt; ist eine Spiegelung an der Geraden durch &amp;lt;math&amp;gt;\left\vert s\right\rang&amp;lt;/math&amp;gt;. Der Zustandsvektor bleibt also nach der Anwendung von &amp;lt;math&amp;gt;U_s&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;U_\omega&amp;lt;/math&amp;gt; in der durch &amp;lt;math&amp;gt;\left\vert s\right\rang&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; aufgespannten Ebene. Damit rotiert der Operator &amp;lt;math&amp;gt;U_s\ U_\omega&amp;lt;/math&amp;gt; bei jedem Schritt der Grover-Iteration den Zustandsvektor um einen Winkel von &amp;lt;math&amp;gt;2\theta&amp;lt;/math&amp;gt; nach &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Der Algorithmus muss also anhalten, sobald der Zustandsvektor &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; 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 &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; an Iterationen zur exakten Übereinstimmung mit &amp;lt;math&amp;gt;\left\vert\omega\right\rang&amp;lt;/math&amp;gt; gilt&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\frac{\pi}{2} - \theta = 2 \theta r, &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
also&lt;br /&gt;
:&amp;lt;math&amp;gt;r(N) = \frac{\pi}{4 \theta(N)} - \frac{1}{2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; aber eine [[ganze Zahl]] sein muss, setzen wir &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; gleich der gerundeten Zahl &amp;lt;math&amp;gt;\tfrac\pi{4\theta}-\tfrac 12&amp;lt;/math&amp;gt;. Damit beträgt die Wahrscheinlichkeit, eine falsche Antwort zu messen, &amp;lt;math&amp;gt; \mathcal O\left(1 - \cos^2\theta\right) = \mathcal O\left(\sin^2\theta\right)&amp;lt;/math&amp;gt;. Die Irrtumswahrscheinlichkeit bei &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; Datenbankeinträgen lautet also asymptotisch &amp;lt;math&amp;gt;\mathcal O\left(\tfrac 1N\right)&amp;lt;/math&amp;gt;, d.&amp;amp;nbsp;h., sie ist vernachlässigbar klein für große &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;math&amp;gt;N\gg 1&amp;lt;/math&amp;gt; gilt &amp;lt;math&amp;gt;\theta\approx N^{-\frac 12}&amp;lt;/math&amp;gt;, also&lt;br /&gt;
:&amp;lt;math&amp;gt;r(N) \longrightarrow \frac{\pi \sqrt N} 4&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Erweiterungen ==&lt;br /&gt;
&lt;br /&gt;
Enthält die Datenbank nicht nur einen, sondern &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; gesuchte Einträge, so funktioniert der Algorithmus ebenfalls, allerdings gilt für die Anzahl &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; durchzuführender Iterationen nun &amp;lt;math&amp;gt;\tfrac\pi 4\sqrt\tfrac Nk&amp;lt;/math&amp;gt; statt &amp;lt;math&amp;gt;\tfrac\pi 4\sqrt N&amp;lt;/math&amp;gt;.&lt;br /&gt;
Ist &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; unbekannt, so führt man den Grover-Algorithmus in&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \tfrac\pi 4\sqrt\tfrac N1,\; \tfrac\pi 4\sqrt\tfrac N2,\; \tfrac\pi 4\sqrt\tfrac N4,\; \tfrac\pi 4\sqrt\tfrac N8, \ldots &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterationen durch. Für beliebiges &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; wird ein gesuchter Eintrag mit genügend hoher Wahrscheinlichkeit gefunden. Die Gesamtzahl von Iterationen beträgt höchstens&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \pi \frac{\sqrt N}4 \left(1 + \frac{1}{\sqrt{2}} + \frac 12 + \cdots\right) = \mathcal O\left(\sqrt N\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optimalität des Grover-Algorithmus ==&lt;br /&gt;
Der Grover-Algorithmus ist optimal in dem Sinne, dass es keinen Quantenalgorithmus mit weniger als &amp;lt;math&amp;gt;\mathcal O\left(\sqrt{N}\right)&amp;lt;/math&amp;gt; Rechenschritten geben &amp;#039;&amp;#039;kann.&amp;#039;&amp;#039;&amp;lt;ref name=&amp;quot;BENNETT-ET-AL&amp;quot;&amp;gt;{{Literatur|Autor=[[Charles H. Bennett (Physiker)|C. H. Bennett]],  [[Gilles Brassard|G. Brassard]], [[Umesh Vazirani|Vazirani U.]]|Titel=&amp;#039;&amp;#039;The strengths and weaknesses of quantum computation&amp;#039;&amp;#039; |Sammelwerk= SIAM Journal on Computing|Band= 26|Nummer=5 |Seiten= 1510–1523|Datum=1997|DOI=10.1137/s0097539796300933}}&amp;lt;/ref&amp;gt; Dieses Resultat ist wichtig, um die Grenzen des Quantenrechnens zu verstehen.&lt;br /&gt;
Wäre das [[Suchproblem]] beispielsweise mit &amp;lt;math&amp;gt;\mathcal O\left(\log^c N\right)&amp;lt;/math&amp;gt; Schritten lösbar, so wäre [[NP (Komplexitätsklasse)|NP]] in [[BQP]] enthalten.&lt;br /&gt;
&lt;br /&gt;
Ebenso ist die Anzahl i.&amp;amp;nbsp;A. notwendiger Iterationen für &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; gesuchte Einträge, also &amp;lt;math&amp;gt;\pi\sqrt\tfrac N{2k}&amp;lt;/math&amp;gt;, optimal.&lt;br /&gt;
&lt;br /&gt;
== Qualitatives Argument ==&lt;br /&gt;
Um ein [[Heuristik|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 &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; Schritte, wenn &amp;lt;math&amp;gt;\sqrt N&amp;lt;/math&amp;gt; die Kantenlänge des Quadrates ist. Quantenmechanische Zustände sind dagegen Strahlen im [[Hilbertraum]], d.&amp;amp;nbsp;h., sie sind nur bis auf einen Faktor bestimmt, und wenn man vom Zentrum des Quadrates ausgeht, ist die Richtung &amp;lt;math&amp;gt;\theta&amp;lt;/math&amp;gt; des Strahls durch eine Punktmenge gegeben, welche nur dem Umfang und nicht dem Inhalt des Quadrates entspricht, also einer Menge &amp;lt;math&amp;gt;\sim \mathcal O\!\left(\sqrt N\right)&amp;lt;/math&amp;gt;. 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 &amp;lt;math&amp;gt;\mathcal O\!\left(\sqrt N\right)&amp;lt;/math&amp;gt; Schritten.&lt;br /&gt;
&lt;br /&gt;
== Verwandte Themen ==&lt;br /&gt;
Ein ganz anderes Problem, bei dem [[Quantencomputer]] ebenfalls eine wesentliche Beschleunigung bringen, betrifft die Faktorisierung einer sehr großen Zahl (siehe [[Shor-Algorithmus]]).&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* M. Homeister: &amp;#039;&amp;#039;Quantum Computing verstehen&amp;#039;&amp;#039; Springer Vieweg, Wiesbaden 2018, fünfte Auflage, ISBN 978-3-6582-2883-5, S. 137ff.&lt;br /&gt;
* B. Lenze: &amp;#039;&amp;#039;Mathematik und Quantum Computing&amp;#039;&amp;#039; Logos Verlag, Berlin 2020, zweite Auflage, ISBN 978-3-8325-4716-5, S. 57ff.&lt;br /&gt;
* [[Richard J. Lipton|R. J. Lipton]], [[Kenneth W. Regan|K. W. Regan]]: &amp;#039;&amp;#039;Quantum Algorithms via Linear Algebra: A Primer&amp;#039;&amp;#039; MIT Press, Cambridge MA 2014, ISBN 978-0-2620-2839-4, S. 115ff.&lt;br /&gt;
* {{Literatur|Autor=[[Michael Nielsen|M. A. Nielsen]], [[Isaac Chuang|I. L. Chuang]]|Titel=Quantum Computation and Quantum Information.|Verlag=Cambridge University Press|Ort=Cambridge MA|Datum=2010|ISBN=978-1-107-00217-3|Seiten= 248ff.|Online=https://profmcruz.files.wordpress.com/2017/08/quantum-computation-and-quantum-information-nielsen-chuang.pdf}}&lt;br /&gt;
* W. Scherer: &amp;#039;&amp;#039;Mathematik der Quanteninformatik&amp;#039;&amp;#039; Springer-Verlag, Berlin-Heidelberg 2016, ISBN 978-3-6624-9079-2, S. 235ff.&lt;br /&gt;
* C. P. Williams: &amp;#039;&amp;#039;Explorations in Quantum Computing&amp;#039;&amp;#039; Springer-Verlag, London 2011, zweite Auflage, ISBN 978-1-8462-8886-9, S. 245ff.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
*  L. K. Grover: &amp;#039;&amp;#039;[https://arxiv.org/abs/quant-ph/0109116 From Schrödinger&amp;#039;s equation to quantum search algorithm]&amp;#039;&amp;#039;, American Journal of Physics, 69(7): 769-777, 2001. Überblick über den Algorithmus und seine Geschichte (englisch)&lt;br /&gt;
*  L. K. Grover: &amp;#039;&amp;#039;[https://cryptome.org/qc-grover.htm 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]&amp;#039;&amp;#039;, In: &amp;#039;&amp;#039;The Sciences&amp;#039;&amp;#039;, July/August 1999, S. 24–30. (englisch)&lt;br /&gt;
* {{Webarchiv | url=http://www.bell-labs.com/user/feature/archives/lkgrover/ | wayback=20140201230754 | text=&amp;#039;&amp;#039;What&amp;#039;s a Quantum Phone Book?&amp;#039;&amp;#039;}}, Lov Grover, Bell Labs&lt;br /&gt;
* J. Marre: [https://www.quantencomputer-info.de/quantencomputer/grover-algorithmus/ &amp;#039;&amp;#039;Der Grover-Algorithmus und die Suche nach dem heiligen Gral&amp;#039;&amp;#039;] In: quantencomputer-info veröffentlicht 11. September 2018&lt;br /&gt;
* &amp;#039;&amp;#039;Quanten-Suchalgorithmus&amp;#039;&amp;#039; In: {{Literatur|Autor=Norbert Linke, Markus Müller|Titel=Quantencomputer auf Basis von Ionen in Fallen. Mit Ionen ist zu rechnen |Sammelwerk= [[Physik in unserer Zeit]] |Datum=2020 |Seiten=162–173 |Online=https://onlinelibrary.wiley.com/doi/pdf/10.1002/piuz.202001571}}&lt;br /&gt;
* Reinhard Karnapke, Simon Rieche: &amp;#039;&amp;#039;Grover-Algorithmus&amp;#039;&amp;#039; In: [http://page.mi.fu-berlin.de/alt/vorlesungen/sem02/rieche-zsf.pdf &amp;#039;&amp;#039;Quantensuchalgorithmen&amp;#039;&amp;#039;] S. 3–7 Seminarunterlagen Sommersemester 2002&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Suchalgorithmus]]&lt;br /&gt;
[[Kategorie:Quanteninformatik]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Nukelavee</name></author>
	</entry>
</feed>