Was sind einige Probleme, bei denen wir wissen, dass wir einen optimalen Algorithmus haben?


15

Was sind einige nicht-triviale Probleme, bei denen wir wissen, dass der derzeitige Algorithmus der asymptotisch optimale ist? (Für Turingmaschinen)

Und wie ist das bewiesen?


11
Eine Turingmaschine ist ein kniffliges Modell für Untergrenzen. Durch Ändern des Defn kann sich das Polynom in der Laufzeit ändern, daher müssen Sie etwas genauer vorgehen.
Suresh Venkat

Wie definieren Sie Nicht-Triviales?
Funkstar

1
Wie Suresh sagt, hat die Art von TM, die Sie verwenden, einen Einfluss. Ich vermute, dass wir für die Sprache der Palindrome (Wörter, die Sie rückwärts lesen können) ein optimales 1-Band-TM haben, das Schritte unternimmt , um die Sprache zu bestimmen. Und für 2-Band-TMs ist sie in linearer Zeit bestimmbar und daher auch ziemlich optimal. O(n2)
Bruno

Antworten:


18

Jeder Algorithmus, der eine lineare Zeit benötigt und seine gesamte Eingabe lesen muss, muss asymptotisch optimal sein. Ebenso ist, wie Raphael bemerkt, jeder Algorithmus, dessen Laufzeit in der gleichen Größenordnung wie die Ausgabegröße liegt, optimal.


10
Ebenso ist jeder Algorithmus optimal, dessen Laufzeit in der gleichen Größenordnung wie die Ausgabegröße liegt.
Raphael

9
Ich glaube, diese Antwort und der Kommentar, der darauf folgt, sind auf dem neuesten Stand der Technik.
Jeffs

9
Nun, das war enttäuschend
am

1
Der Kommentar von Jɛ ɛ E scheint sich auf die Antwort von Shir zu beziehen.
András Salamon

1
Ich bezog mich auf die Antwort von Max, nicht auf die von Shir, und auf Raphaels Kommentar zu Max 'Antwort.
Jeffs

8

Wenn die Komplexitätsmessung, die Sie in Betracht ziehen, die Abfragekomplexität ist, dh die Häufigkeit, mit der die Maschine die Eingabe prüfen muss, um ein bestimmtes Problem zu lösen, gibt es viele Probleme, für die wir optimale Algorithmen haben. Der Grund dafür ist, dass niedrigere Grenzen für die Komplexität von Abfragen dank einiger gängiger Techniken, einschließlich der Methode des Gegners, leichter zu erreichen sind als niedrigere Grenzen für die Komplexität von Zeit oder Raum .

Der Nachteil ist jedoch, dass dieses Komplexitätsmaß in der Quanteninformationsverarbeitung fast ausschließlich verwendet wird, da es eine einfache Möglichkeit bietet, eine Lücke zwischen der Quanten- und der klassischen Rechenleistung zu beweisen. Der bekannteste Quantenalgorithmus in diesem Framework ist der von Grover . Bei einer gegebenen Binärzeichenfolge für die es ein einzelnes so dass , müssen Sie finden . Klassisch (ohne Quantencomputer) ist der trivialste Algorithmus optimal: Sie müssen diesen String durchschnittlich mal abfragen , um zu finden . Grover stellte einen Quantenalgorithmus zur Verfügung, der dies in tut. i x i = n i n / 2 i O ( x1,,xnixi=nin/2iO(n)Abfragen an die Zeichenfolge. Dies hat sich auch als optimal erwiesen.


2
In der Tat ist die Komplexität von Abfragen die Grundlage für die Antwort von Max. Bei den meisten Problemen muss jeder Algorithmus nachweislich "die gesamte Eingabe lesen" oder zumindest einen konstanten Bruchteil der Eingabe.
Jeffs

6
  • Wenn Sie bereit sind, Ihr Modell zu ändern, sind einige untere Grenzen in Datenstrukturen eng. Siehe untere Schranken für Datenstrukturen für Zeiger auf gute Referenzen für untere Grenzen in Datenstrukturen.
  • Aus dem -Grenzwert für die Sortierung im Vergleichsmodell, den einige Leute hier erwähnt haben, können Sie einen ähnlichen Grenzwert für das Problem der konvexen Hülle erhalten, indem Sie den Fall betrachten, in dem die Eingabe aus Punkten entlang des Diagramms von a besteht zunehmende Funktion im ersten Quadranten der Ebene.Ω(nlogn)

2
+1 für die Erwähnung von Datenstrukturen. Ich glaube jedoch nicht, dass es möglich ist, eine nützliche Untergrenze für konvexe Hüllen über die Vergleichsuntergrenze für das Sortieren zu erhalten. Der Grund dafür ist, dass das Vergleichsmodell nicht leistungsfähig genug ist, um überhaupt konvexe Hüllen zu berechnen. Stattdessen funktioniert es, ein leistungsfähigeres Modell zu verwenden, z. B. algebraische Entscheidungsbäume, in denen Rümpfe berechnet werden können, und dann die untere Grenze für die Sortierung an dieses leistungsfähigere Modell anzupassen.
David Eppstein

Sinnvoll, danke für die Klarstellung!
Abel Molina

3
  1. Die Vergleichssortierung mit -Vergleichen (Sortierung zusammenfassen, um eins zu nennen) ist optimal, der Beweis besteht darin, einfach die Höhe eines Baumes mit n zu berechnen ! Blätter.O(nlogn)n!

  2. Unter der Annahme der Unique Games Conjecture zeigten Khot, Kindler, Mossel und O'donnell, dass es NP-vollständig ist, um Max-Cut besser zu approximieren als Goemans und Williamsons Algorithmus. In diesem Sinne ist G & W also optimal (vorausgesetzt auch, dass ).PNP

  3. Es kann sich herausstellen, dass einige verteilte Algorithmen in Bezug auf bestimmte Bedingungen (z. B. den Anteil der kontradiktorischen Prozessoren) optimal sind. Da Sie jedoch Turing-Maschinen erwähnt haben, ist dies vermutlich nicht die Art von Beispielen, die Sie suchen.


2
Ob Punkt 2 die Frage beantwortet oder nicht, hängt davon ab, was der Fragesteller mit „optimal“ meint, obwohl ich bezweifle, dass der Fragesteller in diesem Sinne fragt (ansonsten gibt es viele, viele enge Annäherungsergebnisse, die nicht einmal UGC erfordern). Darüber hinaus glaube ich nicht, dass Punkt 1 oder 3 die Frage beantworten.
Tsuyoshi Ito

@TsuyoshiIto, es ist schwer zu erraten, was genau der Fragesteller meinte. Deshalb habe ich versucht, Antworten in verschiedene Richtungen zu geben, in der Hoffnung, etwas Nützliches für ihn / sie zu finden. Was lässt Sie sagen, dass (1) keine gültige Antwort ist?
Shir

2
Der Fragesteller fragt speziell nach einem für die Turingmaschine optimalen Algorithmus .
Tsuyoshi Ito

6
Ist "Vergleichssortierung" eigentlich ein "Problem"? Oder ist es ein Problem und eine Einschränkung des Rechenmodells?
Jeffs

3

Angenommen , Sie Eingabe gegeben und werden gebeten , zu entscheiden , ob RAM Maschine M endet am Eingang x nach t Schritten. Nach dem Zeithierarchiesatz besteht der optimale Algorithmus, um dies zu entscheiden, darin, die Ausführung von M ( x ) für t Schritte zu simulieren , was in der Zeit O ( t ) erfolgen kann .w=M,x,tMxtM(x)tO(t)

(Hinweis: für Turing - Maschinen, die Ausführung der Simulation von nimmt O ( t log t ) Schritte, wir kennen nur eine untere Schranke von Ω ( t ) Also, das optimal ist nicht ganz für Turing - Maschinen speziell.).MO(tlogt)Ω(t)

Es gibt einige andere Probleme, die die Version des Halteproblems als Unterfall enthalten. Die Entscheidung, ob ein Satz eine Konsequenz des WS1S ist, erfordert beispielsweise die Zeit 2 O ( | θ | ), und dies ist optimal.θ2↑↑O(|θ|)


3

Ich bin mir nicht sicher, was Sie unter "nicht trivial" verstehen, aber wie steht es damit? . Diese Sprache ist nicht regulär, daher muss jedes TM, das entscheidet, dass es in Ω ( n log n ) läuft . Der einfache Algorithmus (Kreuzen jeder anderen 0) ist optimal.L={02k|k0}Ω(nlogn)


3

Wenn Sie dynamische Datenstrukturprobleme zulassen, kennen wir einige superlineare zeitoptimale Algorithmen. Dies ist im Zellsondenmodell so stark wie das Wort RAM, dh es ist kein eingeschränktes Modell wie algebraische Entscheidungsbäume.

Ein Beispiel ist das Beibehalten von Präfixsummen bei dynamischen Aktualisierungen. Wir beginnen mit einem Array von Zahlen , und das Ziel besteht darin, eine Datenstruktur beizubehalten, die die folgenden Operationen ermöglicht:A[1],,A[n]

  • Addiere zu A [ i ] , wenn i und Δ gegeben sindΔA[i]iΔ
  • Berechnen Sie die Präfixsumme mit ij=1iA[i]i

Sie können beide Operationen in problemlos mit einer Datenstruktur unterstützen, die auf einem erweiterten Binärbaum mit A [ i ] an den Blättern basiert . Patrascu und Demaine zeigten, dass dies optimal ist: Für jede Datenstruktur gibt es eine Folge von n Additionen und Präfixsummenabfragen, die insgesamt Ω ( n log n ) Zeit benötigen.O(logn)A[i]nΩ(nlogn)

{1,n}

  • ijij
  • ii

O(α(n))αnΩ(nα(n))


1

Bei vielen Streaming-Algorithmen stimmen die Obergrenzen mit den Untergrenzen überein.


0

Es gibt zwei etwas ähnliche Suchalgorithmen, die meines Wissens auf der Grundlage bestimmter Einschränkungen bei der Reihenfolge / Verteilung der Eingaben optimal sind. Präsentationen der Algorithmen betonen diese Optimalität jedoch normalerweise nicht.

  • Suche im Goldenen Schnitt nach dem Maximum oder Minimum (Extremum) einer unimodalen Funktion. geht davon aus, dass die Eingabe eine unimodale Funktion ist. findet es in logarithmischer Zeit im Durchschnitt. Wie ich mich erinnere, hat das Buch Structure & Interpretation of computer programs von abelson & sussman möglicherweise einen Beweis für die Optimalität erbracht.

  • Die binäre Suche findet einen Punkt in der logarithmischen Zeit im Durchschnitt in einer sortierten Liste, erfordert jedoch die Sortierung der Eingabe.

Ich zitiere Wikipedia oben, aber es gibt nicht die Beweise, dass sie optimal sind. Vielleicht kann das Publikum einige andere Referenzen finden, die die Optimalität beweisen.


-1

Bei vielen sublinearen Zeitalgorithmen stimmen die Obergrenzen mit den Untergrenzen überein.


3
Als Duplikat gekennzeichnet.
Jeffs

Sublinearer Zeitalgorithmus und Streaming-Algorithmus sind verschiedene Bereiche.
Bin Fu

1
Das stimmt, aber Sie sollten die Antworten in einer kombinieren.
Suresh Venkat

Einige Beispiele für optimale sublineare Zeitalgorithmen können sein
Bin Fu

1
Es ist auch nicht klar, warum dies kein Duplikat der Antwort auf die Fragekomplexität ist.
Artem Kaznatcheev
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.