Deutsch-Jozsa-Algorithmus
Der Algorithmus von Deutsch ist ein Algorithmus 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
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
Problemformulierung
Gegeben sei eine Funktion
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
Auf klassischem Wege bleibt nichts weiter übrig als die Funktion sowohl für
Der Quantenalgorithmus
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
Da in der Quanteninformatik alle Rechenschritte umkehrbar sein müssen, wird hier eine spezielle Variante von
Der Algorithmus verwendet ein Register von zwei Qubits
- Initialisiere wie folgt:
- Wende die Hadamard-Transformation
auf beide Qubits an: - Werte
aus: ist im konstanten Fall und sonst - Wende die Hadamard-Transformation
auf das erste Qubit an: - Messe 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
Ü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
Das Problem von Deutsch-Jozsa
Problemformulierung
Nun die Funktion
Klassische Lösung
Ein klassischer Computer müsste die Funktion im schlimmsten Fall für mehr als die Hälfte aller möglichen Eingaben auswerten. So kann es beispielsweise passieren, dass selbst bei noch so geschickter Wahl die ersten
Ein klassischer Algorithmus benötigt also im worst case
Der Quantenalgorithmus
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
wobei
Der Algorithmus durchläuft folgende Schritte:
- Initialisierung: die ersten
Bits auf und das letzte Bit auf setzen: - Wende die Hadamard-Transformation
(also auf alle Qubits) an: - Werte
aus: - Wende die Hadamard-Transformation auf
an: - Messe das Register
:
Ist es , so ist konstant, ansonsten balanciert.
Die Interpretation des Messergebnisses ist folgendermaßen einzusehen: Ist
Einzelnachweise
- ↑ David Deutsch: The Church-Turing principle and the universal quantum computer. (PDF) In: Proceedings of the Royal Society of London A. 400, 1985, S. 97.
- ↑ David Deutsch und Richard Jozsa: Rapid solutions of problems by quantum computation. In: Proceedings of the Royal Society of London A. 439, 1992, S. 553.
- ↑ R. Cleve, A. Ekert, C. Macchiavello und M. Mosca: Quantum algorithms revisited. (PDF) In: Proceedings of the Royal Society of London A. 454, 1998, S. 339-354.
- ↑ Lov K. Grover: A fast quantum mechanical algorithm for database search. (PDF) In: Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing. 1996, S. 212-219.
- ↑ Peter W. Shor: Algorithms for Quantum Computation: Discrete Logarithms and Factoring. (PDF) In: IEEE Symposium on Foundations of Computer Science. 1994, S. 124-134.
Literatur
- Matthias Homeister: Quantum computing verstehen. Vieweg, Wiesbaden 2005, ISBN 3-528-05921-4, S. 33–37, 62–65