Zur allgemeinen Hilfsbereitschaft bei der Berechnung
Ohne es vielleicht zu bemerken, stellen Sie eine Version einer der schwierigsten Fragen, die Sie möglicherweise über theoretische Informatik stellen können. Sie können dieselbe Frage zu klassischen Computern stellen, nur anstatt zu fragen, ob das Hinzufügen von 'Quantumness' hilfreich ist, können Sie Folgendes fragen:
Gibt es eine präzise Aussage darüber, wo randomisierte Algorithmen helfen können?
Es ist möglich, hier etwas sehr vages zu sagen - wenn Sie denken, dass es viele Lösungen gibt (oder dass es viele Lösungen für ein Unterproblem gibt), es jedoch schwierig sein könnte, eine systematisch zu konstruieren, ist es hilfreich, wenn Sie in der Lage sind, Lösungen zu finden zufällige Auswahl, um das Problem der systematischen Konstruktion zu überwinden. Aber Vorsicht, manchmal ist der Grund, warum Sie wissen, dass es zahlreiche Lösungen für ein Teilproblem gibt, der, dass es einen Beweis unter Verwendung der probabilistischen Methode gibt . Wenn dies der Fall ist, wissen Sie, dass die Anzahl der Lösungen durch die Reduktion auf einen hilfreichen randomisierten Algorithmus reichlich ist!
Es gibt keine einfache Beschreibung, wann ein randomisierter Algorithmus hilfreich sein kann, es sei denn, Sie haben eine andere Möglichkeit, die Tatsache zu rechtfertigen, dass die Anzahl der Lösungen für diese Fälle reichlich ist. Und wenn Sie genügend Hilfsbereitschaft verlangen (ein superpolynomischer Vorteil), fragen Sie sich, ob , was ein ungelöstes Problem in der Komplexitätstheorie ist. P ≠ B P P
Gibt es eine kurze Aussage darüber, wo parallelisierte Algorithmen helfen können?
Hier ist es vielleicht etwas besser. Wenn ein Problem so aussieht, als ob es in viele unabhängige Unterprobleme zerlegt werden kann, kann es parallelisiert werden - obwohl dies ein vages Kriterium ist, dass Sie es erkennen, wenn Sie es sehen. Die wichtigste Frage ist, werden Sie es wissen , wenn Sie es sehen? Hätten Sie gedacht, dass die Machbarkeitsprüfung von linearen Gleichungssystemen über die Rationalen nicht nur parallelisierbar ist, sondern auch mit -Tiefenschaltungen gelöst werden kann [vgl. Comput. Komplex. 8 (S. 99-126), 1999 ]?O(log2n)
Eine Art und Weise, wie Menschen versuchen, ein Gesamtbild dafür zu zeichnen, besteht darin, sich der Frage aus der entgegengesetzten Richtung zu nähern und zu sagen, wann bekannt ist, dass ein parallelisierter Algorithmus nicht hilft. Insbesondere hilft es nicht, wenn das Problem einen von Natur aus sequenziellen Aspekt hat. Dies ist jedoch kreisförmig, da "sequentiell" nur bedeutet, dass die Struktur, die Sie für das Problem sehen können, nicht parallelisiert ist.
Auch hier gibt es keine einfache, umfassende Beschreibung, wann ein parallelisierter Algorithmus Abhilfe schaffen kann. Und wenn Sie genügend Hilfsbereitschaftsansprüche haben (eine polylogarithmische Obergrenze für die Zeitdauer unter der Annahme einer polynomiellen Parallelisierung), dann fragen Sie sich, ob P≠NC , was wiederum ein ungelöstes Problem in der Komplexitätstheorie ist .
Die Aussichten für "präzise und korrekte Beschreibungen, wann [X] hilfreich ist" sehen zu diesem Zeitpunkt nicht allzu gut aus. Auch wenn Sie protestieren könnten, dass wir hier zu streng sind: Aus Gründen der Forderung nach mehr als einem Polynomvorteil konnten wir nicht einmal behaupten, dass nicht deterministische Turing-Maschinen "hilfreich" waren (was eindeutig absurd ist). Wir sollten keine so hohe Messlatte fordern - da es keine Techniken gibt, um die Erfüllbarkeit effizient zu lösen, sollten wir zumindest akzeptieren, dass wir eine nicht deterministische Turing-Maschine in der Tat sehr hilfreich finden , wenn wir sie irgendwie erhalten könnten . Dies unterscheidet sich jedoch davon, genau zu charakterisieren , für welche Probleme wir es hilfreich finden würden.
Zur Hilfsbereitschaft von Quantencomputern
Gibt es etwas , was wir sagen können, wenn Quantencomputer hilfreich sind?
Wir können dies sagen: Ein Quantencomputer kann nur etwas Interessantes tun, wenn er die Struktur eines Problems ausnutzt, die für einen klassischen Computer nicht verfügbar ist. (Dies wird durch die von Ihnen erwähnten Bemerkungen zu einer "globalen Eigenschaft" eines Problems angedeutet.) Aber wir können mehr als das sagen: Probleme, die von Quantencomputern im Einheitsschaltungsmodell gelöst werden, werden einige Merkmale dieses Problems als Einheitsoperatoren hervorrufen . Die Merkmale des Problems, die für klassische Computer nicht verfügbar sind, sind alle, die keine (nachweislich) statistisch signifikante Beziehung zur Standardbasis haben.
- Im Fall von Shors Algorithmus sind dies die Eigenwerte eines Permutationsoperators, der als Multiplikation über einen Ring definiert ist.
- ±1
Es ist nicht besonders überraschend zu sehen, dass sich die Informationen in beiden Fällen auf Eigenwerte und Eigenvektoren beziehen. Dies ist ein hervorragendes Beispiel für eine Eigenschaft eines Betreibers, die keine sinnvolle Beziehung zur Standardbasis haben muss. Es gibt jedoch keinen besonderen Grund, warum die Information ein Eigenwert sein muss. Alles, was benötigt wird, ist, in der Lage zu sein, einen einheitlichen Operator zu beschreiben, der ein relevantes Merkmal des Problems codiert, das aus der Inspektion der Standardbasis nicht ersichtlich ist, aber auf eine andere leicht zu beschreibende Weise zugänglich ist .
Letztendlich besagt dies nur, dass ein Quantencomputer nützlich ist, wenn Sie einen Quantenalgorithmus zur Lösung eines Problems finden können. Zumindest handelt es sich jedoch um einen groben Überblick über eine Strategie zum Auffinden von Quantenalgorithmen, der nicht schlechter ist als der grobe Überblick über Strategien, die ich oben für randomisierte oder parallelisierte Algorithmen beschrieben habe.
Anmerkungen, wann ein Quantencomputer "hilfreich" ist
Wie andere hier angemerkt haben, hängt "wo Quantencomputer helfen können" davon ab, was Sie mit "Hilfe" meinen.
Shors Algorithmus wird in solchen Diskussionen oft auf den Prüfstand gestellt, und hin und wieder wird darauf hingewiesen, dass wir nicht wissen, dass die Faktorisierung in der Polynomzeit nicht lösbar ist. Wissen wir also eigentlich, dass "Quantencomputing hilfreich wäre, um Zahlen zu faktorisieren"?
Abgesehen von den Schwierigkeiten bei der Realisierung von Quantencomputern, denke ich, lautet die vernünftige Antwort hier "Ja". nicht, weil wir wissen, dass Sie mit herkömmlichen Computern nicht effizient arbeiten können, sondern weil wir nicht wissen, wie Sie dies mit herkömmlichen Computern tun würden. Wenn Ihnen Quantencomputer dabei helfen, etwas zu tun, für das Sie keinen besseren Ansatz haben, scheint mir dies "hilfreich" zu sein.
O(20.386n)
Vielleicht ist der Algorithmus von Grover als solcher nicht besonders hilfreich. Es kann jedoch hilfreich sein, wenn Sie damit cleverere klassische Strategien erarbeiten, die über die Brute-Force-Suche hinausgehen: Durch Amplitudenverstärkung , die natürliche Verallgemeinerung des Grover-Algorithmus auf allgemeinere Einstellungen, können wir die Leistung vieler nicht-trivialer Algorithmen für verbessern SAT (siehe z. B. [ACM SIGACT News 36 (S. 103–108), 2005 - kostenloser PDF-Link ]; Tipp an Martin Schwarz, der mich in den Kommentaren auf diesen Verweis hingewiesen hat).
Wie bei Grovers Algorithmus führt die Amplitudenverstärkung nur zu einer Beschleunigung des Polynoms. In der Praxis kann jedoch auch eine Beschleunigung des Polynoms interessant sein, wenn sie nicht durch den mit dem Schutz der Quanteninformationen vor Rauschen verbundenen Overhead verschlechtert wird.