Simons Algorithmus
Simons Algorithmus ist ein Quanten-Abfragealgorithmus für ein Problem, das als Simons Problem bekannt ist. Es ist ein Promise-Problem mit einer ähnlichen Grundstruktur wie die Deutsch-Jozsa- und Bernstein-Vazirani-Probleme, aber mit anderen Einzelheiten.
Simons Algorithmus ist bedeutsam, weil er einen exponentiellen Vorteil von Quanten- gegenüber klassischen (einschließlich probabilistischen) Algorithmen bietet, und die darin verwendete Technik inspirierte Peter Shor zur Entdeckung eines effizienten Quantenalgorithmus für die ganzzahlige Faktorisierung.
Simons Problem
Die Eingabefunktion für Simons Problem hat die Form
für positive ganze Zahlen und . Wir könnten uns auf den Fall beschränken, aber es gibt kaum etwas zu gewinnen, wenn wir diese Annahme machen – Simons Algorithmus und seine Analyse sind in beiden Fällen im Wesentlichen gleich.
Wir werden das Versprechen gleich entpacken, um besser zu verstehen, was es besagt, aber zunächst sollte klar sein, dass es erfordert, dass eine sehr spezielle Struktur hat – also werden die meisten Funktionen dieses Versprechen nicht erfüllen. Es ist auch angemessen anzuerkennen, dass dieses Problem nicht für seine praktische Bedeutung gedacht ist. Vielmehr ist es ein etwas künstliches Problem, das maßgeschneidert ist, um für Quantencomputer einfach und für klassische Computer schwer zu sein.
Es gibt zwei Hauptfälle: Der erste Fall ist, dass die Null-Zeichenkette ist, und der zweite Fall ist, dass nicht die Null-Zeichenkette ist.
-
Fall 1: Wenn die Null-Zeichenkette ist, können wir die Genau-dann-Aussage im Versprechen vereinfachen, sodass sie lautet: Das entspricht der Injektivität von .
-
Fall 2: Wenn nicht die Null-Zeichenkette ist, impliziert das erfüllte Versprechen für diese Zeichenkette, dass zweieindeutig ist (two-to-one), d.h. für jede mögliche Ausgabezeichenkette von gibt es genau zwei Eingabezeichenketten, die dazu bringen, diese Zeichenkette auszugeben. Außerdem müssen diese zwei Eingabezeichenketten die Form und für eine Zeichenkette haben.
Es ist wichtig zu erkennen, dass es nur eine Zeichenkette geben kann, die funktioniert, wenn das Versprechen erfüllt ist, sodass es für Funktionen, die das Versprechen erfüllen, immer eine eindeutig korrekte Antwort gibt.
Hier ist ein Beispiel einer Funktion der Form , die das Versprechen für die Zeichenkette erfüllt.
Es gibt verschiedene Eingabezeichenketten und verschiedene Ausgabezeichenketten, jede davon erscheint zweimal – das ist also eine zweieindeutige Funktion. Außerdem ist für je zwei verschiedene Eingabezeichenketten, die dieselbe Ausgabezeichenkette erzeugen, das bitweise XOR dieser zwei Eingabezeichenketten gleich , was gleichbedeutend damit ist, dass eine der beiden gleich der anderen XOR-verknüpft mit ist.
Beachte, dass das Einzige, was an den tatsächlichen Ausgabezeichenketten wichtig ist, ist, ob sie für verschiedene Eingabezeichenketten gleich oder verschieden sind. Im obigen Beispiel erscheinen zum Beispiel vier Zeichenketten ( und ) als Ausgaben von . Wir könnten diese vier Zeichenketten durch andere ersetzen, solange sie alle verschieden sind, und die korrekte Lösung würde sich nicht ändern.
Algorithmusbeschreibung
Hier ist ein Quantencircuit-Diagramm, das Simons Algorithmus darstellt.
Um klar zu sein: Oben sind Qubits, auf die Hadamard-Gates wirken, und unten sind Qubits, die direkt in das Abfrage-Gate gehen. Es sieht den bereits in der Lektion besprochenen Algorithmen sehr ähnlich, aber diesmal gibt es keinen Phase-Kickback; die unteren Qubits gehen alle im Zustand in das Abfrage-Gate.
Um Simons Problem mit diesem Circuit zu lösen, sind tatsächlich mehrere unabhängige Ausführungen erforderlich, gefolgt von einem klassischen Nachbearbeitungsschritt, der später nach der Analyse des Verhaltens des Circuits beschrieben wird.
Analyse
Die Analyse von Simons Algorithmus beginnt ähnlich wie beim Deutsch-Jozsa-Algorithmus. Nachdem die erste Schicht der Hadamard-Gates auf den oberen Qubits ausgeführt wurde, wird der Zustand zu
Wenn ausgeführt wird, wird die Ausgabe der Funktion mit dem Null-Zustand der unteren Qubits XOR-verknüpft, sodass der Zustand wird zu
Wenn die zweite Schicht der Hadamard-Gates ausgeführt wird, erhalten wir mit der gleichen Formel für die Wirkung einer Schicht von Hadamard-Gates wie zuvor den folgenden Zustand.
An diesem Punkt weicht die Analyse von derjenigen für die vorherigen Algorithmen in dieser Lektion ab.
Wir sind an der Wahrscheinlichkeit interessiert, dass die Messungen für jede mögliche Zeichenkette ein bestimmtes Ergebnis liefern. Mithilfe der Regeln für die Analyse von Messungen, die in der Lektion Mehrere Systeme des Kurses Grundlagen der Quanteninformation beschrieben wurden, stellen wir fest, dass die Wahrscheinlichkeit , die Zeichenkette zu erhalten, gleich
ist.
Um diese Wahrscheinlichkeiten besser zu verstehen, brauchen wir noch etwas mehr Notation und Terminologie. Erstens ist das Bild der Funktion die Menge aller Ausgabezeichenketten.
Zweitens können wir für jede Zeichenkette die Menge aller Eingabezeichenketten, die dazu führen, dass die Funktion diese Ausgabezeichenkette ergibt, als ausdrücken.
Die Menge ist als Urbild von unter bekannt. Wir können das Urbild unter einer beliebigen Menge anstelle von auf analoge Weise definieren – es ist die Menge aller Elemente, die auf diese Menge abbildet. (Diese Notation sollte nicht mit der Inversen der Funktion verwechselt werden, die möglicherweise nicht existiert. Die Tatsache, dass das Argument auf der linken Seite die Menge und nicht das Element ist, ist der Hinweis, der uns hilft, diese Verwechslung zu vermeiden.)
Mit dieser Notation können wir die Summe in unserem obigen Ausdruck für die Wahrscheinlichkeiten aufteilen und erhalten
Jede Zeichenkette wird genau einmal durch die beiden Summationen repräsentiert – wir legen diese Zeichenketten je nachdem, welche Ausgabezeichenkette sie erzeugen, wenn wir die Funktion auswerten, in separate Eimer und summieren dann separat über alle Eimer.
Wir können nun die euklidische Norm zum Quadrat auswerten und erhalten
Um diese Wahrscheinlichkeiten weiter zu vereinfachen, betrachten wir den Wert
für eine beliebige Wahl von .
Wenn gilt, dann ist eine injektive Funktion und es gibt immer genau ein Element , für jedes . Der Wert des Ausdrucks ist in diesem Fall .
Wenn hingegen gilt, dann gibt es genau zwei Zeichenketten in der Menge . Genauer gesagt, wenn wir als eine dieser zwei Zeichenketten wählen, dann muss die andere Zeichenkette sein, gemäß dem Versprechen in Simons Problem. Mit dieser Beobachtung können wir wie folgt vereinfachen.