BEARBEITEN AM 12.10.08:
Ich werde versuchen, die Frage so zu ändern, dass möglicherweise mehr Menschen daran interessiert sind, ihre Meinung mitzuteilen. Wir brauchen Ihre Beiträge!
Dieser Beitrag ist inspiriert von dem Beitrag in MO: Beispiele für verbreitete falsche Vorstellungen in der Mathematik . Große Listen generieren manchmal eine enorme Anzahl von Antworten, deren Qualität schwer zu kontrollieren ist, aber nach dem Erfolg des entsprechenden Postings auf MO bin ich davon überzeugt, dass es hilfreich wäre, eine Reihe allgemeiner falscher Überzeugungen in Bezug auf TCS aufzulisten.
Da die Site für die Beantwortung von Fragen auf Forschungsebene vorgesehen ist, sollten Beispiele wie für nichtpolynomielle Zeit nicht auf der Liste stehen. In der Zwischenzeit wollen wir einige Beispiele, die vielleicht nicht schwer sind, aber ohne über Einzelheiten nachzudenken, sieht es auch vernünftig aus. Wir möchten, dass die Beispiele lehrreich sind und in der Regel erscheinen, wenn Sie das Thema zum ersten Mal studieren.
Was sind einige (nicht triviale) Beispiele für verbreitete Irrglauben in der theoretischen Informatik, die Menschen vorkommen, die in diesem Bereich studieren?
Um genau zu sein, wollen wir Beispiele, die sich von überraschenden Ergebnissen und kontraproduktiven Ergebnissen bei TCS unterscheiden. Diese Art von Ergebnissen macht es Leuten schwer zu glauben, aber sie sind WAHR. Hier fragen wir nach überraschenden Beispielen, die die Leute auf den ersten Blick für wahr halten, aber nach einem tieferen Gedanken wird der Fehler im Inneren aufgedeckt.
Als Beispiel für die richtigen Antworten auf der Liste stammt diese aus dem Bereich der Algorithmen und der Graphentheorie:
Für einen Knoten-Graphen ist ein Kanten-Separator eine Teilmenge von Kanten der Größe , wobei die Knoten von in zwei nicht benachbarte Teile unterteilt werden können, die jeweils aus höchstens Knoten bestehen . Wir haben das folgende "Lemma":G k S k G ≤ S 3 n / 4
Ein Baum hat einen 1-Kantentrenner.
Richtig?
Antworten:
Dies ist eines, das in der Berechnungsgeometrie häufig vorkommt, aber an anderer Stelle endemisch ist: Algorithmen für das reale RAM können ohne Effizienzverlust auf das ganzzahlige RAM (für ganzzahlige Einschränkungen des Problems) übertragen werden. Ein kanonisches Beispiel ist die Behauptung, dass die Gaußsche Eliminierung in -Zeit abläuft . In der Tat können nachlässige Eliminierungsbefehle ganze Zahlen mit exponentiell vielen Bits erzeugen .O(n3)
Noch schlimmer, aber leider immer noch üblich: Algorithmen für das reale RAM mit Floor-Funktion können ohne Effizienzverlust auf das Integer-RAM übertragen werden. Tatsächlich kann ein Real-RAM + -Boden jedes Problem in PSPACE oder in #P in einer polynomiellen Anzahl von Schritten lösen .
quelle
Ich habe gerade einen weiteren Mythos geknackt, der durch die Antwort von @ XXYYXX auf diesen Beitrag beigesteuert wird :
Aber wir haben Unter exponentiellen Algorithmen für einige NP-schwere Probleme.
quelle
Ein falscher Glaube, der in diesem Jahr populär gemacht wurde und oft gesagt wird, wenn versucht wird, das gesamte Problem zu erklären , da als effizient erklärt wird:PP≠NP P
"Wenn , können wir eine Vielzahl von Problemen effizient lösen. Wenn nicht, können wir nicht"P=NP
Wenn kann gelöst werden , in O ( n g o o g o l p l e x ) , dann P = N P . Ich glaube nicht, dass irgendjemand daran denken würde, diesen Algorithmus auszuführen.3SAT O(ngoogolplex) P=NP
Wenn , können wir immer noch einen Algorithmus für T S P haben , der in n log ( log n ) läuft , der für n ≤ 2 32 kleiner als n 5 ist . Die meisten Menschen wären mehr als glücklich, T S P für 4 Milliarden Städte so schnell lösen zu können .P≠NP TSP nlog(logn) n5 n≤232 TSP
quelle
Dies ist wirklich ein falscher Glaube an Mathematik, kommt aber häufig in TCS-Kontexten vor: Wenn die Zufallsvariablen und Y unabhängig sind, bleiben sie abhängig von Z unabhängig. (false, auch wenn Z unabhängig von X und Y ist .)X Y Z Z X Y
quelle
Distributed Computing = verteiltes Hochleistungsrechnen (Cluster, Grids, Clouds, seti @ home, ...).
Verteilte Algorithmen = Algorithmen für diese Systeme.
Spoiler: Wenn dies nicht so sehr nach einer "falschen Überzeugung" klingt, schlage ich vor, dass Sie sich Konferenzen wie PODC und DISC ansehen und herausfinden, welche Art von Arbeit die Menschen tatsächlich leisten, wenn sie sich mit theoretischen Aspekten des verteilten Rechnens befassen.
Eine typische Problemeinstellung ist die folgende: Wir haben einen Zyklus mit Knoten; die Knoten sind mit eindeutigen Kennungen aus dem Satz markierten { 1 , 2 , . . . , Poly ( n ) } ; Die Knoten sind deterministisch und tauschen Nachrichten synchron miteinander aus. Wie viele synchrone Kommunikationsrunden (als Funktion von n ) werden benötigt, um eine maximale unabhängige Menge zu finden? Wie viele Runden sind erforderlich, um eine unabhängige Menge mit mindestens n / 1000 Knoten zu finden? [Die Antwort auf beide Fragen lautet genau Θ ( log ∗n {1,2,...,poly(n)} n n/1000 , 1986–2008 entdeckt.]Θ(log∗n)
Das heißt, Menschen untersuchen häufig Probleme, die aus der Sicht zentralisierter Algorithmen völlig trivial sind und mit jeder Art von Supercomputing oder Hochleistungsrechnen nur sehr wenig zu tun haben. Es geht sicherlich nicht darum, die zentralisierte Berechnung durch die Verwendung von mehr Prozessoren oder Ähnlichem zu beschleunigen.
Das Ziel besteht darin, eine Komplexitätstheorie zu erstellen, indem grundlegende Graphprobleme nach ihrer rechnerischen Komplexität klassifiziert werden (z. B. wie viele synchrone Runden benötigt werden, wie viele Bits übertragen werden). Probleme wie unabhängige Mengen in Zyklen mögen sinnlos erscheinen, aber sie spielen eine ähnliche Rolle wie 3-SAT in der zentralen Datenverarbeitung: ein sehr nützlicher Ausgangspunkt für Reduktionen. Für konkrete reale Anwendungen ist es sinnvoller, Geräte wie Router und Switches in Kommunikationsnetzwerken anstelle von Computern in Grids und Clustern zu betrachten.
Dieser falsche Glaube ist nicht ganz harmlos. Tatsächlich ist es ziemlich schwierig, theoretische Arbeiten zu verteilten Algorithmen an das allgemeine TCS-Publikum zu verkaufen. Ich habe lustige Schiedsrichterberichte von TCS-Konferenzen erhalten ...
quelle
QED (ist es?)
quelle
(Siehe diesen Beitrag von rjlipton zum Beispiel)
Der Beweis dieser Behauptung ist dem Beweis in der Antwort von Q1 hier sehr ähnlich , deshalb werden wir nur die Schlüsselideen geben.
quelle
Hier sind meine zwei Cent:
Außerdem bleibt die Maschine immer stehen.
Ist die Definition korrekt? (Nein)
quelle
Nun, die Hierarchie gibt tatsächlich nur . Wir brauchen zB für . Für Funktionen , so dass , , ist sehr verbreitet. Genau genommen wird die nicht deterministische Zeithierarchie jedoch oft oberflächlich angegeben.NTIME(g(n))−NTIME(f(n))≠∅ f(n)≤g(n) NTIME(f(n))⊊NTIME(g(n)) f,g f(n+1)=o(g(n)) f(n)≤g(n)
Um zu zeigen , dass nicht gilt für alle vollzeit konstruierbar st definieren und . Es ist leicht zu erkennen, dass und vollständig sind und . Aus der nicht deterministischen Zeithierarchie wissen wir, dass es eine Sprache über . DefiniereNTIME(f(n))⊆NTIME(g(n)) f,g f(n+1)=o(g(n))
Daraus folgt . Es ist leicht zu erkennen, dass aus folgt , was nicht wahr ist. Daher .L1∈NTIME(f(n)) L1∈NTIME(g(n)) L∈NTIME((n+1)2) L1∈NTIME(f(n))−NTIME(g(n))
quelle
Ich habe oft gehört, dass Valiant-Vazirani sagt, dass zufällig auf reduziert wird , oder dass , oder dass . Dies würde insbesondere bedeuten, dass wenn Valiant-Vazirani derandomisiert werden könnte, . Aber tatsächlich sagt Valiant-Vazirani, dass .U P N P ⊆ R P U P N P ⊆ R ⋅ U P N P = U P N P ⊆ R P P r o m i s e U PNP UP NP⊆RPUP NP⊆R⋅UP NP=UP NP⊆RPPromiseUP
Eng verwandter falscher Glaube: ist die Klasse der Sprachen mit einem nichtdeterministischen Polyzeitprüfer, so dass wenn es einen eindeutigen Zeugen gibt. Die Korrektur besteht darin, dass der Prüfer die semantische Eigenschaft erfüllen muss, dass es in allen Fällen höchstens einen Zeugen gibt. Die obige Definition ohne die Korrektur ist die Definition von . Aber sich stark von : Zum Beispiel . L x ∈ L U S U S U P C O N P ⊆ U SUP L x∈L US US UP coNP⊆US
quelle
quelle