5.3 Suchen mit Grover
Nachdem Hila und Iman wieder sicher auf der Erde gelandet sind, wurden sie gute Freunde von Alice und Bob. Die vier entscheiden sich, Silvester zusammen zu verbringen. Zufällig ist am selben Tag auch die Ziehung des jährlichen Quanten-Lottos! Sie wissen, dass nur eine Person der vier den großen Gewinn absahnen kann, aber wer wird es sein? Wenn wir unsere vier Hauptfiguren mit Bitstrings benennen, zum Beispiel so,
dann können wir die Lotterie durch eine Funktion modellieren, die nur für die gewinnende Person 1 ergibt. Wenn zum Beispiel ist, dann hat Hila dieses Jahr gewonnen.
Wie können unsere Freunde herausfinden, wer gewonnen hat? Mit einem klassischen Algorithmus müssen sie die Funktion bis zu drei mal ausführen um herauszufinden, wer ausgelost wurde. Angenommen, sie wüssten, dass und – dann ist immer noch nicht klar ob Alice oder Iman gewonnen haben! Aus längst vergessenen Gründen besagen die Regeln der Lotterie aber, dass die Funktion nur einmal ausgewertet werden darf.
Die vier setzen sich zusammen und fangen an zu überlegen. Nach einer Weile wird Bob ungeduldig und schlägt vor: “Lasst uns doch einfach den ersten Schritten des Deutsch-Jozsa- und Bernstein-Vazirani-Algorithmus folgen – bestimmt klappt der selbe Trick nochmal…” Da die anderen keine bessere Idee haben, bereiten sie den folgenden Zustand vor
Anschließend geben sie diesen Zustand der Quanten-Lotterie, welche das Phasen-Orakel anwendet und den Zustand zurück gibt. Seien und die beiden Bits, die die gewinnende Person festlegen, also und alle anderen Funktionswerte sind Null. Dann erhalten sie von der Quanten-Lotterie den folgenden Zwei-Qubit-Zustand:
wobei die in der ersten Zeile eins der Plus-Zeichen durch ein Minus ersetzt. Nach dem anwenden einer Hadamard-Transformation erhalten sie den folgenden Zustand:
Jetzt sind sie verwirrt und wissen nicht ganz weiter. Hila hat eine Idee: “Mich stört das Minuszeichen vor . Warum wenden wir nicht eine Quantenoperation an, die so funktioniert?”
Iman fällt ein: “Ich glaube ich weiß wie wir diese Operation mit einer kontrollierten-Z-Operation und ein paar NOT-Operationen bauen könnenn…” Nach kurzer Zeit erhält die Gruppe also den folgenden Zustand:
Nach einem kurzen Moment bemerkt Alice: “Den Zwei-Qubit-Zustand können wir als Tensorprodukt schreiben!”
Bob freut sich riesig: “Aha! Wir müssen nur noch eine weitere Hadamard-Transformation anwenden und können dann beide Qubits messen…” Kannst du herausfinden, wer die diesjährige Quanten-Lotterie gewinnen wird?
Hausaufgabe 5.5 (Quanten-Lotterie).
-
1.
Schreibe die Quantenoperation aus Gl. 5.16 mit einer kontrollierten-Z-Operation und ein paar NOT-Operationen.
Hinweis: Erinnere dich, dass die kontrollierte-Z-Operation auf einem Basiszustand sich wie folgt verhält: Wenn tut sie nichts. Wenn , verhält sie sich wie auf dem zweiten Qubit. Letzte Woche hast du gelernt, sie in Quirky zu bauen.
-
2.
Baue den Quantenalgorithmus, den Alice, Bob, Hila und Iman sich ausgedacht haben in Quirky und finde heraus, wer dieses Jahr die Quanten-Lotterie gewinnt.
Hack.
-
1.
Wir können die Quantenoperation aus Gl. 5.16 schreiben als
Das funktioniert, weil wie folgt funktioniert (aufgrund der Funktion von sowie des Hinweises)
Das entspricht fast dem, was wir wollen, wenn wir nur die Rollen von und in allen Ein- und Ausgabebits tauschen könnten. Aber das ist genau was tut! Also wenden wir auf alle Bits vor und nach dem an.
- 2.
Der Quantenalgorithmus, den die Gruppe entdeckt haben ist ein Spezialfall von Grovers Algorithmus. Grovers Algorithmus löst das folgende Problem: Gegeben eines Orakels für die Funktion findet er , sodass . Wir können uns das Problem vorstellen wie das finden einer gewinnenden Person aus Teilnehmenden, oder anders gesagt, ein Element, welches eine bestimmte Eigenschaft besitzt aus einer ungeordneten Datenbank (womit wir meinen, dass die Elemente in der Datenbank nicht sortiert sind) zu finden . Mit dem selben Argument wie zuvor, muss jeder klassische Algorithmus schlimmstenfalls alle bis auf einen der Einträge anschauen, bevor er fertig ist (durchschnittlich muss die Hälfte der Einträge angeschaut werden). Im Gegensatz dazu braucht Grovers Algorithmus nur proportional zu viele Abfragen, was langsamer wächst in ! Grovers Algorithmus ist ein sehr vielseitiges Werkzeug, welches ein Quadratwurzel-Speedup für viele Berechnungsprobleme liefert.