Einleitung :
Das Kollisionsproblem bezieht sich meist auf die 2-zu-1-Version, die Scott Aaronson in seiner Doktorarbeit beschrieben hat. Da gerade ist und eine Funktion f : { 1 , . . . , N } → { 1 , . . . , n } wir wissen vorher, dass entweder f 1-zu-1 oder 2-zu-1 ist. Wir sind nur zu machen , Anfragen über den Wert der erlaubten f ( i ) für jedes i ∈ { 1 , 2 ,nf:{1,...,n}→{1,...,n}ff(i) . Das Problem fragt dann, wie viele Abfragen wir machen müssen, um mit Sicherheit zu bestimmen, ob f 1-zu-1 oder 2-zu-1 ist.i ∈ { 1 , 2 , . . . , N }f
Das deterministische Lösen der 2-zu-1-Version erfordert Abfragen, und im Allgemeinen erfordert das Unterscheiden von r-zu-1-Funktionen von 1-zu-1-Funktionen n / r + 1- Abfragen.n / 2 + 1n/r+1
Deterministische klassische Lösung :
Dies ist eine einfache Anwendung des Pigeonhole-Prinzips: Wenn eine Funktion r-to-1 ist, dann ist nach Abfragen garantiert, dass wir eine Kollision gefunden haben. Wenn eine Funktion 1 zu 1 ist, liegt keine Kollision vor. Wenn wir Pech haben, können n / r Anfragen unterschiedliche Antworten liefern. Es sind also n / r + 1 Abfragen erforderlich.n/r+1n/rn/r+1
Randomisierte klassische Lösung :
Wenn wir Zufälligkeit zulassen, ist das Problem einfacher. Nach dem Geburtstagsparadoxon finden wir mit hoher Wahrscheinlichkeit eine Kollision in einer festen 2-zu-1-Funktion nach Θ ( √ ), wenn wir zufällig (verschiedene) Abfragen auswählen
Abfragen.Θ(n−−√)
Quantum BHT Lösung :
Intuitiv kombiniert der Algorithmus die Quadratwurzel-Beschleunigung aus dem
Geburtstagsparadoxon unter
Verwendung der (klassischen) Zufälligkeit mit der Quadratwurzel-Beschleunigung aus dem (Quanten-) Algorithmus von Grover.
Erstens Eingaben f werden zufällig ausgewählt , und f bei allen von ihnen abgefragt. Wenn es eine Kollision zwischen diesen Eingaben gibt, geben wir das kollidierende Paar von Eingaben zurück. Andernfalls werden alle diese Eingaben unterschiedlichen Werten durch f zugeordnet . Dann wird der Algorithmus von Grover verwendet, um eine neue Eingabe für f zu finden , die kollidiert. Da es nur ist
n 2 / 3 solche Eingaben f kann Grover-Algorithmus nur einen finden , indem sie (falls vorhanden)
O ( √n1/3ffffn2/3fO(n2/3−−−−√)=O(n1/3)f
Grover's algorithm is used extensively in quantum cryptography as well. It can be used to solve problems such as the Transcendental Logarithm Problem, Polynomial Root Finding Problem etc.
quelle
Der Algorithmus von Grover kann verwendet werden, um jedes numerische Optimierungsproblem schneller als bei der Brute-Force-Suche zu lösen, da jedes Optimierungsproblem als Suchproblem formuliert werden kann (bei dem Sie nach einer Funktionsausgabe suchen, die größer / kleiner als eine festgelegte istM Innerhalb jedes Laufs wiederholen Sie diesen Vorgang für eine logarithmische Anzahl von Läufen mit der binären Suche, um das Optimum zu ermitteln M ): https://epubs.siam.org/doi/abs/10.1137/040605072?journalCode=sjope8 .
Tatsächlich ist der Algorithmus von Grover der bekannteste Quantenalgorithmus für viele schwierige Optimierungsprobleme (z. B. NP-vollständige), bei denen die Struktur eines klassischen Algorithmus, der klüger als die Brute-Force-Suche ist, nicht besonders gut ist: https: // link.springer.com/chapter/10.1007/978-3-540-78773-0_67 .
quelle