Ich habe versucht zu verstehen, was der Vorteil der Verwendung des Grover-Algorithmus für die Suche in einer beliebigen ungeordneten Datenbank D (Schlüssel, Wert) mit N Werten anstelle einer klassischen Suche sein könnte.
Ich nahm an, dass die Orakelfunktion eine Funktion f (Taste) = y ist, wobei y der Index des entsprechenden Werts in der klassischen Datenbank ist.
Mein Problem hängt mit dem Orakel zusammen. Die Orakelschaltung muss für jede Suche in der Datenbank geändert werden, da der Schlüssel im Orakel angegeben ist. Nehmen wir an, dies ist der Einfachheit halber eine vernachlässigbare Operation.
Angenommen, die Orakelschaltung muss klassisch berechnet werden, müsste eine Schaltung erzeugt werden, die sich wie die Funktion f (Taste) = y verhält. Diese Funktion würde in mindestens O (N) Schritten erhalten (mit Ausnahme einiger Sonderfälle). Die Orakelfunktionsschaltung muss jedes Mal neu berechnet werden, wenn ein Datenbankeintrag geändert / hinzugefügt / entfernt wird, was O (N) kostet.
Viele Artikel wie Quantenalgorithmus-Implementierungen für Anfänger , Quantenalgorithmen für Matching und Netzwerkflüsse scheinen das Orakel überhaupt nicht zu berücksichtigen.
Ich weiß nicht, ob ich eine Quantendatenbank in Betracht ziehen muss, um einen echten Vorteil zu erzielen oder nicht ( dies und die Unzuverlässigkeit der Quantenergebnisse haben mich überzeugt, dass dies keine sehr gute Idee ist, aber es ist nur eine Vermutung).
Wo wird also die Komplexität für den Bau des Orakels betrachtet? Habe ich etwas falsch verstanden?
Ist "Die Orakelfunktionsschaltung muss jedes Mal neu berechnet werden, wenn ein Datenbankeintrag geändert / hinzugefügt / entfernt wird, mit Kosten von O (N)" eine falsche Annahme?