Der Deutsch-Jozsa-Algorithmus
Deutschs Algorithmus übertrifft alle klassischen Algorithmen für ein Abfrageproblem, der Vorteil ist jedoch recht bescheiden: eine Abfrage gegenüber zwei. Der Deutsch-Jozsa-Algorithmus erweitert diesen Vorteil – und kann tatsächlich zur Lösung zweier verschiedener Abfrageprobleme eingesetzt werden.
Hier ist eine Quantenschaltkreisbeschreibung des Deutsch-Jozsa-Algorithmus. Ein zusätzlicher klassischer Nachverarbeitungsschritt, der in der Abbildung nicht gezeigt wird, kann je nach dem zu lösenden Problem ebenfalls erforderlich sein.
Natürlich haben wir noch nicht besprochen, welche Probleme dieser Algorithmus löst; das geschieht in den beiden folgenden Abschnitten.
Das Deutsch-Jozsa-Problem
Beginnen wir mit dem Abfrageproblem, für das der Deutsch-Jozsa-Algorithmus ursprünglich entwickelt wurde, dem sogenannten Deutsch-Jozsa-Problem.
Die Eingabefunktion für dieses Problem hat die Form für eine beliebige positive ganze Zahl . Wie bei Deutschs Problem besteht die Aufgabe darin, auszugeben, wenn konstant ist, und , wenn balanciert ist, wobei letzteres wieder bedeutet, dass die Anzahl der Eingabezeichenketten, für die die Funktion den Wert annimmt, gleich der Anzahl der Eingabezeichenketten ist, für die sie den Wert annimmt.
Beachte, dass es bei größer als Funktionen der Form gibt, die weder konstant noch balanciert sind. Zum Beispiel fällt die Funktion , definiert als
in keine dieser beiden Kategorien. Beim Deutsch-Jozsa-Problem kümmern wir uns einfach nicht um solche Funktionen – sie gelten als „Don't-care"-Eingaben. Das heißt, für dieses Problem haben wir ein Versprechen, dass entweder konstant oder balanciert ist.
Der Deutsch-Jozsa-Algorithmus löst dieses Problem mit einer einzigen Abfrage in folgendem Sinne: Wenn jedes der Messergebnisse ist, dann ist die Funktion konstant; wenn hingegen mindestens eines der Messergebnisse ist, dann ist die Funktion balanciert. Anders ausgedrückt: Auf den oben beschriebenen Schaltkreis folgt ein klassischer Nachverarbeitungsschritt, in dem das ODER der Messergebnisse berechnet wird, um die Ausgabe zu erzeugen.
Algorithmusanalyse
Um die Leistung des Deutsch-Jozsa-Algorithmus für das Deutsch-Jozsa-Problem zu analysieren, ist es hilfreich, zunächst über die Wirkung einer einzelnen Schicht von Hadamard-Gates nachzudenken. Eine Hadamard-Operation kann wie üblich als Matrix ausgedrückt werden:
aber wir können diese Operation auch über ihre Wirkung auf Standardbasiszustände beschreiben:
Diese beiden Gleichungen lassen sich zu einer einzigen Formel zusammenfassen:
die für beide Wahlen gilt.
Angenommen, wir haben nicht nur ein einzelnes Qubit, sondern Qubits, und auf jedes wird eine Hadamard-Operation angewendet. Die kombinierte Operation auf den Qubits wird durch das Tensorprodukt (-mal) beschrieben, das wir zur Kürze und Klarheit als schreiben. Mithilfe der obigen Formel, gefolgt von Expansion und Vereinfachung, können wir die Wirkung dieser kombinierten Operation auf die Standardbasiszustände von Qubits wie folgt ausdrücken: