Gemeinsame falsche Überzeugungen in der theoretischen Informatik


62

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.NP

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 / 4nGkSkGS3n/4

Ein Baum hat einen 1-Kantentrenner.

Richtig?


Der Beitrag wurde markiert, um als CW angefordert zu werden.
Hsien-Chih Chang 張顯 張顯

Antworten:


59

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 .


5
Das Missverständnis der Gaußschen Eliminierung ist weit verbreitet. Vielleicht liegt ein Teil des Problems darin, dass wir oft an endlichen Feldern arbeiten und, da es dort kein Problem gibt, vergessen wir es.
Slimton

"Nachdem wir die ganzzahlige Gaußsche Elimination durchgeführt haben, wissen wir, wie wir eine Lösung finden können."
Albert Hendriks

40

Ich habe gerade einen weiteren Mythos geknackt, der durch die Antwort von @ XXYYXX auf diesen Beitrag beigesteuert wird :

  • Ein Problem X ist -hart, wenn es eine Reduzierung der Polynomzeit (oder des Lograums) von allen -Problemen auf X gibt.N PNPNP
  • Angenommen, die Exponentialzeithypothese, 3-SAT hat keinen subexponentiellen Zeitalgorithmus. Außerdem befindet sich 3-SAT in .NP
  • Also haben keine -harten Probleme X Zeitalgorithmen. Ansonsten ein subexponentieller Zeitalgorithmus für X + eine Polynomzeitreduktion = ein subexponentieller Zeitalgorithmus für 3-SAT.NP

Aber wir haben Unter exponentiellen Algorithmen für einige NP-schwere Probleme.


Ich hatte den gleichen Eindruck.
Mohammad Al-Turkistany

Was sagt uns das über die Exponentialzeithypothese? Oder habe ich einen Fehler in dieser Argumentation übersehen?
Mikhail Glushenkov

2
Punkt 3 ist fehlerhaft. Genau das habe ich lange missverstanden :)
Hsien-Chih Chang Chang 張顯

Ich bin nicht sicher, ob ich den Fehler nicht finden kann. Ist es so, dass die Reduktion seit nicht notwendigerweise polynomisch sein muss, sondern dass sie zeitlich exponentiell sein kann, da beide Probleme in EXPTIME (aufgrund der ETH?)PNP
chazisop

43
Durch Reduzierungen der Polynomzeit kann die Eingabegröße um einen Polynombetrag geändert werden. Wenn Sie also eine Instanz von Q mit der Größe n auf eine Instanz von P mit der Größe n im Quadrat reduzieren, erhalten Sie mit einem 2-zu-Wurzel-n-Algorithmus für P nur eine 2-zu-n-Algorithmus für Q.
Russell Impagliazzo

29

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:PPNPP

"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.3SATO(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 .PNPTSPnlog(logn)n5n232TSP



6
"Für jeden Polynom-Zeit-Algorithmus, den Sie haben, gibt es einen Exponential-Algorithmus, den ich lieber ausführen würde" - Alan Perlis, über Gödels Lost Letter und P = NP .
Pål GD

24

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 .)XYZZXY


2
Haben Sie ein einfaches Lieblingsbeispiel dafür, das Sie empfehlen würden, damit die Leute schnell erkennen, warum es falsch ist?
DW

21
Angenommen, und Y sind unabhängige und gleichmäßig zufällige Bits, und Z = X + Y (mod 2). Dann ist Z unabhängig von X und ist unabhängig von Y , aber abhängig von Z , wenn man weiß, dass X Y enthüllt und umgekehrt. XYZ=X+YZXYZXY
MCH

22

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)}nn/1000 , 1986–2008 entdeckt.]Θ(logn)

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 ...


1
In Bezug auf Computer würde ich nicht sagen, dass dies kein falscher Glaube ist, sondern ein veralteter. Anders als bei Multicore-Prozessoren war Small-Scale-Distributed-Computing ein trivialer Fall von High-Performance-Computing (soweit ich zumindest weiß). Wenn die Kerne "Computer" sind, sich aber in einer so geringen Entfernung befinden und kein Netzwerk zwischen ihnen besteht, entstehen neue Probleme. Ich stimme jedoch zu, dass verteilte Algorithmen für m> = 2 Knoten verwendet werden sollten.
Chazisop

Sie sagen also nur, dass die Leute Parallel-Computing mit verteiltem Computing verwechseln?
Sasho Nikolov

Ich denke, Ihre Behauptung trifft nicht auf theoretische Informatiker zu, obwohl sie möglicherweise auf Pratictioner ohne theoretischen Hintergrund zutrifft. Wie Sasho Nikolov betonte, kennen die Fachleute die Unterschiede zwischen parallelem und verteiltem Computing sehr gut. Das Problem, das in Clustern, Gittern, Wolken usw. auftritt, hängt streng vom Kontext ab. Beispielsweise gehen wir bei der Verwendung eines Clusters oder einer Cloud nicht von Ausfällen aus, sondern von Grids. Und so weiter.
Massimo Cafaro

Darüber hinaus sind verteilte Algorithmen für diese wissenschaftliche Gemeinschaft Algorithmen für Probleme, wie sie beispielsweise in den Büchern von Nancy Lynch, Hagit Attiya und Jennifer Welch sowie von Gerard Tel zu finden sind, um nur einige zu nennen. Daher sind diese Algorithmen für ein bestimmtes theoretisches verteiltes Rechenmodell konzipiert und werden nach Bedarf in Bezug auf die verwendeten Ressourcen (Zeitkomplexität, Nachrichtenkomplexität, Bitkomplexität, Anzahl der Runden usw.) analysiert.
Massimo Cafaro

@MassimoCafaro: Natürlich wissen Leute, die auf dem Gebiet des verteilten Rechnens arbeiten, was verteiltes Rechnen ist. Ich habe jedoch die Erfahrung gemacht, dass theoretische Informatiker im Allgemeinen nicht wissen, was verteiltes Rechnen ist.
Jukka Suomela

20

T(n)=2T(n/2)+O(nlogn)T(1)=1

n=1n

T(n)=2T(n/2)+O(nlogn)=2O(n/2logn/2)+O(nlogn)=O(nlogn/2)+O(nlogn)=O(nlogn)

QED (ist es?)


16
f(x)=O(g(x))f(x)O(g(x))

Ich habe Forscher in der theoretischen Informatik auch Varianten dieses Fehlers gesehen;)
Jeremy

12

MT(n)MoO(T(n)logT(n))

  • Mo
  • MoΘ(T(n)logT(n))

(Siehe diesen Beitrag von rjlipton zum Beispiel)

EXPTIMENEXPTIMEΘ(T(n)logT(n))MoMoO(T(n)logT(n))T:NNΘ(T(n)logT(n))O(T(n)logT(n))EXPTIME=NEXPTIME

Der Beweis dieser Behauptung ist dem Beweis in der Antwort von Q1 hier sehr ähnlich , deshalb werden wir nur die Schlüsselideen geben.

LNEXPTIMEL{0,1}kNLM2nkM

f(n)={(8n+2)2if (first logn+1k bits of bin(n))L8n+1else
f

g(n)=Θ(f(n)logf(n))g

L

  • xnx000|x|k1x=(first logn+1k bits of bin(n))
  • g(n)g(n)g(n)xLxLng

LLNEXPTIMEEXPTIME=NEXPTIME


11

Hier sind meine zwei Cent:

RLRPM

  • M1/2
  • M1

Außerdem bleibt die Maschine immer stehen.

Ist die Definition korrekt? (Nein)


9

fg1nf(n)g(n)f(n+1)=o(g(n))

NTIME(f(n))NTIME(g(n))

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,gf(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 . Definiere NTIME(f(n))NTIME(g(n))f,gf(n+1)=o(g(n))

f(n)={n+1n odd(n+1)3else
g(n)=f(n+1)2fgf(n+1)=o(g(n))LNTIME((n+1)3)NTIME((n+1)2){0,1}
L1={0x10x20xn;  x1x2xnL}.

Daraus folgt . Es ist leicht zu erkennen, dass aus folgt , was nicht wahr ist. Daher .L1NTIME(f(n))L1NTIME(g(n))LNTIME((n+1)2)L1NTIME(f(n))NTIME(g(n))


9

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 PR P U P N PRU P N P = U P N PR P P r o m i s e U PNPUPNPRPUPNPRUPNP=UPNPRPPromiseUP

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 PU SUPLxLUSUSUPcoNPUS


Was bedeutet "die semantische Eigenschaft, die in allen Fällen"?
T ....

1
@ 777: Semantische Eigenschaft bedeutet: Kann nicht direkt anhand der Struktur (auch als Syntax bezeichnet) des TM / -Algorithmus selbst überprüft werden. Der Satz ist sinnvoller, wenn Sie ihn hinter dem Komma fortsetzen, dh die Eigenschaft, dass "in allen Fällen höchstens ein Zeuge vorhanden ist"
Joshua Grochow

-2

μX{X=μ}


9
Dies ist sicherlich ein weit verbreiteter Irrglaube bei Studenten der theoretischen Informatik, aber bei Forschern der theoretischen Informatik nicht so weit verbreitet .
Jeffs
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.