Deutsch-Jozsa-Algorithmus

Quanten-Algorithmus

Der Algorithmus von Deutsch ist ein Quantenalgorithmus für Quantencomputer, mit dem man bestimmen kann, ob eine auf einem Bit operierende Funktion konstant oder balanciert ist. Diese Aufgabenstellung ist unter dem Namen Problem von Deutsch bekannt. Der Algorithmus von Deutsch ist zwar kaum von praktischem Nutzen, er war jedoch historisch der erste Quantenalgorithmus, der eine Aufgabenstellung nachweisbar schneller löst als ein klassischer Algorithmus und damit die theoretischen Möglichkeiten von Quantencomputern aufzeigt.

Eine Verallgemeinerung ist der Deutsch-Jozsa-Algorithmus. Dabei wird das Problem von Deutsch auf mehrere Bits übertragen.

Die Algorithmen wurden nach ihren Urhebern David Deutsch und Richard Jozsa benannt.

Geschichte

Bearbeiten

In einer Arbeit von 1985 beschäftigte sich David Deutsch mit dem Spezialfall des Problems (Problem von Deutsch, Anzahl der Eingabebits: 1).[1]

1992 wurde die Idee durch David Deutsch und Richard Jozsa verallgemeinert (Problem von Deutsch-Jozsa, beliebig viele Eingabebits).[2]

Der von Deutsch ursprünglich vorgeschlagene Algorithmus war de facto nicht deterministisch. Er war mit einer Wahrscheinlichkeit von 0,5 erfolgreich. Der originale Deutsch-Jozsa-Algorithmus war zwar deterministisch, benötigte jedoch im Gegensatz zum Algorithmus von Deutsch zwei Funktionsauswertungen statt nur einer.

Durch R. Cleve, A. Ekert, C. Macchiavello und M. Mosca wurden 1998 weitere Verbesserungen vorgenommen, so dass jetzt nur noch eine Funktionsauswertung benötigt wird und der Algorithmus dennoch deterministisch bleibt.[3]

Der Deutsch-Jozsa-Algorithmus diente als Inspiration für den Shor-Algorithmus und den Grover-Algorithmus, zwei der revolutionärsten Quantenalgorithmen.[4][5]

Das Problem von Deutsch

Bearbeiten

Problemformulierung

Bearbeiten

Gegeben sei eine Funktion  . Es gilt nun herauszufinden, ob die gegebene Funktion konstant ist ( ) oder balanciert/gleichgewichtet ( ). Dabei ist zu beachten, dass   nur als Black Box gegeben ist, die genaue Definition also unbekannt ist – es steht lediglich ein Bauteil zur Verfügung, welches zu einem Bit   den Wert   berechnet. Um die Bedeutung des Algorithmus von Deutsch zu unterstreichen, sollte davon ausgegangen werden, dass die Benutzung dieses Bauteils teuer ist.

Zur Veranschaulichung kann man sich vorstellen, dass man entscheiden soll, ob eine gegebene Münze fair (Kopf auf der einen Seite, Zahl auf der anderen) oder unfair (Kopf oder Zahl auf beiden Seiten der Münze) ist.

Klassische Lösung

Bearbeiten

Auf klassischem Wege bleibt nichts weiter übrig als die Funktion sowohl für   als auch   auszuwerten und zu vergleichen. Das entspricht dem Betrachten einer Münze auf beiden Seiten. Die Black Box (oder auch Orakel) wird also zweimal benötigt. Im Folgenden wird gezeigt, dass der Quantenalgorithmus von Deutsch mit nur einem Aufruf auskommt. Dies bringt einen Vorteil, wenn man bedenkt, dass nach der Annahme ein Aufruf sehr teuer ist (jedoch sind die Kosten asymptotisch gleich).

Der Quantenalgorithmus

Bearbeiten
 
Quantenschaltung, die den Algorithmus von Deutsch implementiert

Der Quantenalgorithmus wendet die gegebene Funktion auf eine Superposition der beiden möglichen Eingaben an. Durch geschickte Auswertung erhält er somit mit nur einmaliger Anwendung des Orakels ausreichend Information über   und  .

Da in der Quanteninformatik alle Rechenschritte umkehrbar sein müssen, wird hier eine spezielle Variante von   benötigt, unter Verwendung von   (Addition mit anschließendem Modulo 2) beschrieben durch die Abbildung

 

Der Algorithmus verwendet ein Register von zwei Qubits   (mit   dem Tensorprodukt, welches gewöhnlich mit   dargestellt wird) und besteht aus folgenden Schritten:

  1. Initialisiere wie folgt:
     
  2. Wende die Hadamard-Transformation   auf beide Qubits an:
     
  3. Werte   aus:
     
      ist im konstanten Fall   und sonst  
  4. Wende die Hadamard-Transformation   auf das erste Qubit an:
     
  5. Miss das erste Qubit:
    Hat   den Wert  , so ist   konstant, ansonsten balanciert.

Der Trick besteht also darin, dass wir die Funktionswerte in die Amplitude verlagern.

Realisierung

Bearbeiten

Über die erste experimentelle Realisierung wurde von S. Gulde in Nature 421, 48 (2003) berichtet. Die dafür benötigten Qubits wurden durch den elektronischen und vibratorischen Freiheitsgrad eines  -Ions in einer Falle implementiert.

Das Problem von Deutsch-Jozsa

Bearbeiten

Problemformulierung

Bearbeiten

Nun wird die Funktion   auf   Eingabebits verallgemeinert:   Es wird zugesichert, dass die Funktion entweder konstant (alle Eingaben werden auf ein und denselben Wert abgebildet) oder balanciert (die Hälfte der Eingaben wird auf   und die andere Hälfte auf   abgebildet) ist. Herauszufinden ist nun, welche der beiden Alternativen zutrifft. Erneut ist zu beachten, dass   nur als Black Box bzw. Orakel gegeben ist.

Klassische Lösung

Bearbeiten

Ein klassischer Computer müsste die Funktion im schlimmsten Fall für mehr als die Hälfte aller möglichen Eingaben auswerten, denn es kann passieren, dass selbst bei noch so geschickter Wahl die ersten   (halb so viel wie insgesamt möglich) getesteten Eingaben beispielsweise zum Wert   führen und somit noch nicht entscheidbar ist, welche Alternative gilt. Ergibt auch die nächste Auswertung  , so ist die Funktion konstant, ergibt sie hingegen  , ist sie balanciert.

Ein klassischer Algorithmus benötigt also im worst case   Auswertungen von  . Wie im Folgenden gezeigt wird, benötigt der Algorithmus von Deutsch-Jozsa nur eine einzige Auswertung. Dies stellt einen exponentiellen Laufzeitgewinn dar, was im Gegensatz zum Problem / Algorithmus von Deutsch eine echte Verbesserung der Komplexität ist.

Der Quantenalgorithmus

Bearbeiten
 
Quantenschaltung, die den Algorithmus von Deutsch-Jozsa implementiert

Der Quantenalgorithmus wendet die gegebene Funktion auf eine Superposition aller möglichen Eingaben an. Durch geschickte Auswertung erhält er somit mit nur einmaliger Anwendung des Orakels ausreichend Information über alle Funktionswerte.

Auf Grund der zu erhaltenden Umkehrbarkeit wird wieder eine spezielle Variante von   benötigt, beschrieben durch die Abbildung

 

wobei   die Eingabe der Länge   ist.

Der Algorithmus benutzt   Qubits und durchläuft folgende Schritte:

  1. Initialisierung: die ersten   Bits auf   und das letzte Bit auf   setzen:
     
  2. Wende die Hadamard-Transformation   (also   auf alle Qubits) an:
     
  3. Werte   aus:
     
  4. Wende die Hadamard-Transformation auf   an:
     
  5. Miss das Register  :
    Ist es  , so ist   konstant, ansonsten balanciert.

Die Interpretation des Messergebnisses ist folgendermaßen einzusehen: Ist   balanciert, so gleichen sich die Vorzeichen für   aus, so dass mit einer Wahrscheinlichkeit von   der Wert   gemessen wird. Im anderen Fall, also wenn   konstant ist, sind genau die Amplituden für   gleich  , da sich für solche   die   immer so einteilen lassen, dass die Hälfte skalarmultipliziert mit   einen geraden Wert ergibt, die andere Hälfte aber einen ungeraden.

Alternativ kann auch die Tatsache genutzt werden, dass   selbstadjungiert ist. Die Wahrscheinlichkeit   zu messen ist das Betragsquadrat des Skalarproduktes

 

wobei die Hadamard-Transformation nach links angewendet wurde. Ist   balanciert, so heben sich in der die positiven und negativen Beiträge weg, wohingegen sie sich im konstanten Fall aufsummieren.

Einzelnachweise

Bearbeiten
  1. David Deutsch: The Church-Turing principle and the universal quantum computer. In: Proceedings of the Royal Society of London A. 400. Jahrgang, 1985, S. 97, doi:10.1098/rspa.1985.0070 (royalsocietypublishing.org [PDF]).
  2. David Deutsch und Richard Jozsa: Rapid solutions of problems by quantum computation. In: Proceedings of the Royal Society of London A. 439. Jahrgang, 1992, S. 553, doi:10.1098/rspa.1992.0167 (royalsocietypublishing.org [PDF]).
  3. R. Cleve, A. Ekert, C. Macchiavello und M. Mosca: Quantum algorithms revisited. In: Proceedings of the Royal Society of London A. 454. Jahrgang, 1998, S. 339–354, doi:10.1098/rspa.1998.0164, arxiv:quant-ph/9708016 (royalsocietypublishing.org [PDF]).
  4. Lov K. Grover: A fast quantum mechanical algorithm for database search. In: Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing. 1996, S. 212–219, doi:10.1145/237814.237866, arxiv:quant-ph/9605043.
  5. Peter W. Shor: Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer. In: SIAM J. Sci. Statist. Comput. 26. Jahrgang, 1997, S. 1484, doi:10.1137/S0097539795293172, arxiv:quant-ph/9508027 (siam.org [PDF]).

Literatur

Bearbeiten
  • M. Homeister: Quantum Computing verstehen Springer Vieweg, Wiesbaden 2018, fünfte Auflage, ISBN 978-3-658-22883-5, S. 62ff.
  • B. Lenze: Mathematik und Quantum Computing Logos Verlag, Berlin 2020, zweite Auflage, ISBN 978-3-8325-4716-5, S. 51ff.
  • R.J. Lipton, K.W. Regan: Quantum Algorithms via Linear Algebra: A Primer MIT Press, Cambridge MA 2014, ISBN 978-0-262-02839-4, S. 77ff.
  • M.A. Nielsen, I.L. Chuang: Quantum Computation and Quantum Information Cambridge University Press, Cambridge MA 2010, ISBN 978-1-107-00217-3, S. 32ff.