Analyse
Jetzt werden wir Grovers Algorithmus analysieren, um zu verstehen, wie er funktioniert. Wir beginnen mit einer symbolischen Analyse, bei der wir berechnen, wie sich die Grover-Operation auf bestimmte Zustände auswirkt, und verknüpfen diese symbolische Analyse dann mit einem geometrischen Bild, das die Funktionsweise des Algorithmus veranschaulicht.
Lösungen und Nicht-Lösungen
Beginnen wir mit der Definition von zwei Gruppen von Zeichenfolgen.
Die Menge enthält alle Lösungen unseres Suchproblems, während die Zeichenfolgen enthält, die keine Lösungen sind (die wir der Einfachheit halber als „Nicht-Lösungen“ bezeichnen können). Diese beiden Mengen erfüllen die Bedingungen und , was bedeutet, dass es sich hierbei um eine Zweiteilung von handelt.
Als Nächstes definieren wir zwei Einheitsvektoren, die einheitliche Überlagerungen über die Mengen der Lösungen und Nicht-Lösungen darstellen.
Formal gesehen ist jeder dieser Vektoren nur dann definiert, wenn die zugehörige Menge nicht leer ist, aber wir werden uns im Folgenden auf den Fall konzentrieren, dass weder noch leer ist. Die Fälle, die und betreffen, können leicht getrennt behandelt werden, was wir später tun werden.
Nebenbei bemerkt ist die hier verwendete Notation üblich: Immer wenn wir eine endliche und nichtleere Menge haben, können wir schreiben, um den Quantenzustandsvektor zu bezeichnen, der über die Elemente von gleichmäßig verteilt ist.
Definieren wir auch als einheitlichen Quantenzustand über alle -Bit-Strings:
Beachten Sie, dass
Da außerdem gilt: „ “, stellt „ “ den Zustand des Registers „ “ nach der Initialisierung in Schritt 1 des Grover-Algorithmus dar.
Dies bedeutet, dass unmittelbar vor den Iterationen von in Schritt 2 der Zustand von in dem zweidimensionalen Vektorraum enthalten ist, der durch und aufgespannt wird, und dass zudem die Koeffizienten dieser Vektoren reelle Zahlen sind. Wie wir sehen werden, weist der Zustand nach einer beliebigen Anzahl von Iterationen der Operation in Schritt 2 stets diese Eigenschaften auf – was bedeutet, dass der Zustand eine echte Linearkombination aus und ist.
Eine Beobachtung zur Grover-Operation
Wenden wir uns nun der Operation Grover zu
mit einer interessanten Beobachtung zu beginnen.
Stellen wir uns einmal vor, wir würden die Funktion durch die Zusammensetzung von mit der NOT-Funktion ersetzen – oder, mit anderen Worten, durch die Funktion, die wir erhalten, wenn wir das Ausgangsbit von umkehren. Wir nennen diese neue Funktion und können sie mithilfe von Symbolen auf verschiedene Arten darstellen.
Beachten Sie, dass
für jede Zeichenkette , und daher
Das bedeutet: Würden wir die Funktion durch die Funktion ersetzen, würde sich die Funktionsweise des Grover-Algorithmus nicht ändern – denn die Zustände, die wir in beiden Fällen aus dem Algorithmus erhalten, sind bis auf eine globale Phase zwangsläufig äquivalent.
Das ist kein Problem! Intuitiv gesprochen ist es dem Algorithmus egal, welche Zeichenketten Lösungen und welche Nichtlösungen sind - er muss nur in der Lage sein, Lösungen und Nichtlösungen zu unterscheiden, um korrekt zu arbeiten.
Aktion der Grover-Operation
Betrachten wir nun die Wirkung von „ “ auf die Quantenzustandsvektoren „ “ und „ “.
Zunächst sei angemerkt, dass die Operation „ “ eine sehr einfache Wirkung auf „ “ und „ “ hat.
Zweitens gibt es die Operation „ “. Die Operation „ “ ist wie folgt definiert:
wieder für jede Zeichenkette , und eine praktische Alternative, um diese Operation auszudrücken, sieht folgendermaßen aus:
Eine einfache Möglichkeit zu überprüfen, ob dieser Ausdruck mit der Definition von übereinstimmt, besteht darin, seine Wirkung auf Standard-Basiszustände zu bewerten.
Die Operation kann also wie folgt geschrieben werden:
unter Verwendung derselben Notation, , die wir oben für die gleichmäßige Überlagerung über alle -Bit-Zeichenfolgen verwendet haben.
Und nun haben wir alles, was wir brauchen, um die Wirkung von auf und zu berechnen. Berechnen wir zunächst die Wirkung von auf .
Und zweitens: Berechnen wir die Wirkung von „ “ auf „ “.
In beiden Fällen verwenden wir die Gleichung
zusammen mit den Ausdrücken
die folgen.
Zusammenfassend lässt sich sagen, dass wir
Wie bereits erwähnt, liegt der Zustand von „ “ unmittelbar vor Schritt 2 in dem zweidimensionalen Raum, der durch „ “ und „ “ aufgespannt wird, und wir haben soeben festgestellt, dass „ “ jeden Vektor in diesem Raum auf einen anderen Vektor im selben Raum abbildet. Das bedeutet, dass wir uns für die Zwecke der Analyse ausschließlich auf diesen Unterraum konzentrieren können.
Um besser zu verstehen, was in diesem zweidimensionalen Raum geschieht, können wir die Wirkung von auf diesen Raum als Matrix darstellen,
dessen erste und zweite Zeile bzw. Spalte den Einträgen und entsprechen. Bisher haben wir in dieser Reihe die Zeilen und Spalten von Matrizen stets mit den klassischen Zuständen eines Systems in Verbindung gebracht, doch Matrizen können auch dazu verwendet werden, die Abbildungen linearer Abbildungen auf verschiedene Basen zu beschreiben, wie wir es hier tun.
Auch wenn es auf den ersten Blick nicht offensichtlich ist, ist die Matrix das, was wir durch Quadrieren einer einfacher aussehenden Matrix erhalten.
Die Matrix
ist eine Rotationsmatrix, die wir alternativ wie folgt ausdrücken können
nach
Dieser Winkel wird in der folgenden Analyse eine sehr wichtige Rolle spielen, so dass es sich lohnt, seine Bedeutung hier zu betonen, da wir ihn zum ersten Mal sehen.
In Anbetracht dieses Ausdrucks dieser Matrix stellen wir fest, dass
Das liegt daran, dass eine zweimalige Drehung um den Winkel einer Drehung um den Winkel entspricht. Eine andere Möglichkeit, dies zu veranschaulichen, besteht darin, die alternative Schreibweise zu verwenden
zusammen mit den Doppelwinkelformeln aus der Trigonometrie:
Zusammenfassend lässt sich sagen, dass der Zustand des Registers zu Beginn von Schritt 2 folgender ist
und die Anwendung von „ “ auf diesen Zustand bewirkt eine Drehung um den Winkel „ “ innerhalb des Raums, der durch „ “ und „ “ aufgespannt wird. So haben wir beispielsweise
und ganz allgemein
Geometrisches Bild
Lassen Sie uns nun die soeben durchgeführte Analyse mit einer geometrischen Darstellung verknüpfen. Die Idee dahinter ist, dass die Operation das Produkt zweier Spiegelungen ist: und . Und das Endergebnis zweier Spiegelungen ist eine Drehung.
Beginnen wir mit „ “. Wie wir bereits zuvor festgestellt haben, gilt
In dem zweidimensionalen Vektorraum, der durch und aufgespannt wird, handelt es sich hierbei um eine Spiegelung an der Geraden parallel zu , die wir als bezeichnen. Die folgende Abbildung veranschaulicht die Wirkung dieser Spiegelung auf einen hypothetischen Einheitsvektor , von dem wir annehmen, dass er eine reelle Linearkombination aus und ist.
Zweitens haben wir die Operation „ “, die, wie wir bereits gesehen haben, wie folgt geschrieben werden kann:
Dies ist ebenfalls eine Spiegelung, diesmal bezüglich der Geraden , die parallel zum Vektor verläuft. Hier ist eine Abbildung, die die Wirkung dieser Spiegelung auf einen Einheitsvektor veranschaulicht.
Setzt man diese beiden Spiegelungen zusammen, erhält man eine Drehung - um den doppelten Winkel zwischen den Spiegelungslinien - wie diese Abbildung zeigt.
Dies erklärt aus geometrischer Sicht, warum die Grover-Operation dazu führt, dass Linearkombinationen von und um einen Winkel von gedreht werden.