Fausses croyances communes en informatique théorique


62

EDIT AU 10/12/08:

Je vais essayer de modifier la question pour que plus de personnes puissent partager leurs opinions. Nous avons besoin de vos contributions!

Ce billet est inspiré de celui de MO: Exemples de fausses croyances courantes en mathématiques . Les grandes listes génèrent parfois un nombre considérable de réponses dont il est difficile de contrôler les qualités, mais après le succès de l'article connexe sur MO, je suis convaincu qu'il serait utile d'énumérer un ensemble de fausses croyances communes dans TCS.

Néanmoins, comme le site est conçu pour répondre à des questions de recherche, des exemples tels que NP signifie «temps non polynomial» ne devraient pas figurer sur la liste. En attendant, nous voulons des exemples qui ne seront peut-être pas difficiles, mais sans penser aux détails, cela semble également raisonnable. Nous voulons que les exemples soient éducatifs et apparaissent généralement lorsque vous étudiez le sujet à la première fois.

Quels sont quelques exemples (non triviaux) de fausses croyances communes en informatique théorique qui apparaissent aux personnes qui étudient dans ce domaine?

Pour être précis, nous voulons des exemples différents des résultats surprenants et des résultats contre - intuitifs dans TCS; ce genre de résultats rend les gens difficiles à croire, mais ils sont VRAI. Ici, nous demandons des exemples surprenants que les gens peuvent penser au premier abord, mais après une réflexion plus approfondie, la faille est révélée.


Comme exemple de réponses correctes sur la liste, celle-ci vient du domaine des algorithmes et de la théorie des graphes:

Pour un n graphe -node G , un k séparateur -arête S est un sous - ensemble des bords de taille k , où les nœuds de GS peuvent être partition en deux parties non adjacentes, chacune se compose d'au plus 3n/4 nœuds . Nous avons le "lemme" suivant:

Un arbre a un séparateur 1 bord.

Droite?


Le poste a été marqué pour être demandé en tant que CW.
Hsien-Chih Chang 張顯 之

Réponses:


59

C’est l’un des problèmes communs à la géométrie algorithmique , mais il est endémique ailleurs: les algorithmes de la RAM réelle peuvent être transférés vers la RAM d’entier (pour les restrictions d’entier du problème) sans perte d’efficacité. Un exemple canonique est l’affirmation «L’élimination gaussienne s’exécute en temps». En fait, les ordres d’élimination négligents peuvent produire des entiers avec un nombre exponentiel de bits .O(n3)

Pire, mais malheureusement toujours commun: les algorithmes de la RAM réelle avec fonction de plancher peuvent être transférés à la RAM entière sans perte d'efficacité. En fait, un étage réel + RAM peut résoudre n’importe quel problème dans PSPACE ou dans #P en plusieurs étapes .


5
L'idée fausse d'élimination gaussienne est très répandue. Une partie du problème réside peut-être dans le fait que nous travaillons souvent sur des corps finis et que, puisqu'il n'y a pas de problème, nous oublions.
slimton

"Après avoir éliminé les nombres gaussiens, nous savons comment trouver une solution."
Albert Hendriks

40

Je viens d'avoir un autre mythe brisé, qui est alimenté par la réponse de @ XXYYXX à ce message :

  • Un problème X est dur s'il existe une réduction du temps polynomial (ou de l'espace journal) de tous les N P problèmes à X.NPNP
  • Dans l'hypothèse d'une exponentielle temporelle, 3-SAT n'a pas d'algorithme temporel sous-exponentiel. En outre, 3-SAT est en .NP
  • Donc , pas de problèmes de X ont des algorithmes de temps sous-exponentielle. Sinon, un algorithme temporel sous-exponentiel pour X + une réduction temporelle polynomiale = un algorithme temporel sous-exponentiel pour 3-SAT.NP

Mais nous avons des algorithmes temporels sous-exponentiels pour certains problèmes NP-difficiles.


J'ai eu la même impression.
Mohammad Al-Turkistany

Alors, qu'est-ce que cela nous dit sur l'hypothèse du temps exponentiel? Ou ai-je manqué une faille dans cette ligne de raisonnement?
Mikhail Glushenkov

2
Il y a une faille au point 3. C'est exactement ce que j'ai mal compris depuis longtemps :)
Hsien-Chih Chang 之

Je ne sais pas si je ne peux pas trouver la faute. Est-ce que depuis , la réduction ne doit pas nécessairement être polynomiale mais peut être exponentielle dans le temps, puisque les deux problèmes seraient dans EXPTIME (dû à ETH?)PNP
chazisop

43
Les réductions de temps polynomial peuvent modifier la taille de l'entrée d'une quantité polynomiale. Donc, si vous réduisez une instance de Q de taille n à une instance de P de taille n, un algorithme 2 pour la racine n pour P ne vous donne qu'un algorithme 2 pour le n pour Q.
Russell Impagliazzo

29

Une fausse croyance qui a été popularisée cette année et qui se répète souvent lorsque l’on essaie d’expliquer l’ensemble du problème de , puisque P s’explique comme efficace:PNPP

"Si , nous pouvons résoudre efficacement un grand nombre de problèmes. Sinon, nous ne pouvons pas"P=NP

Si peut être résolu en O ( n g o o g o l p l e x ) alors P = N P . Je ne pense pas que quiconque penserait même à exécuter cet algorithme.3SATO(ngoogolplex)P=NP

Si , nous pouvons toujours avoir un algorithme pour T S P qui s'exécute dans n log ( log n ) , qui est inférieur à n 5 pour n 2 32 . La plupart des gens seraient plus qu'heureux de pouvoir résoudre T S P pour 4 milliards de villes aussi rapidement.PNPTSPnlog(logn)n5n232TSP



6
«Pour chaque algorithme polynomial que vous avez, il existe un algorithme exponentiel que je préférerais utiliser» - Alan Perlis, via Lost Letter de Gödel et P = NP .
Pål GD

25

C’est vraiment une fausse croyance en maths, mais cela revient souvent dans les contextes du TCS: Si les variables aléatoires et Y sont indépendantes, alors conditionnées à Z, elles restent indépendantes. (faux même si Z est indépendant de X et de Y )XYZZXY


2
Avez-vous un exemple simple préféré que vous recommanderiez pour aider les gens à comprendre rapidement pourquoi il est faux?
DW

22
Disons que et Y sont des bits indépendants et uniformément aléatoires, et Z = X + Y (mod 2). Alors, Z est indépendant de X et est indépendant de Y , mais conditionné à Z , sachant que X révèle Y et vice versa. XYZ=X+YZXYZXY
HME

22

Informatique distribuée = informatique distribuée hautes performances (clusters, grilles, nuages, seti @ home, ...).

Algorithmes distribués = algorithmes pour ces systèmes.


Spoiler: Si cela ne ressemble pas vraiment à une "fausse croyance", je vous suggère de jeter un coup d'œil aux conférences telles que PODC et DISC et de voir le type de travail que font réellement les gens qui étudient les aspects théoriques de l'informatique répartie.

Un problème typique est le suivant: Nous avons un cycle avec nœuds; les noeuds sont étiquetés avec des identificateurs uniques à partir de l'ensemble { 1 , 2 , . . . , poly ( n ) } ; les nœuds sont déterministes et échangent des messages de manière synchrone. Combien de tours de communication synchrone (en fonction de n ) sont nécessaires pour trouver un ensemble maximal indépendant? Combien de tours sont nécessaires pour trouver un ensemble indépendant avec au moins n / 1000 noeuds? [La réponse à ces deux questions est exactement Θ ( log *n{1,2,...,poly(n)}nn/1000 , découverte en 1986–2008.]Θ(logn)

C'est-à-dire que les gens étudient souvent des problèmes complètement triviaux du point de vue des algorithmes centralisés et qui ont très peu de choses en commun avec un quelconque type de calcul intensif ou de calcul haute performance. Le problème n’est certainement pas d’accélérer le calcul centralisé en utilisant davantage de processeurs, ou quelque chose du genre.

Le but est de construire une théorie de la complexité en classant les problèmes de graphes fondamentaux en fonction de leur complexité de calcul (par exemple, combien de tours synchrones sont nécessaires, combien de bits sont transmis). Des problèmes tels que les ensembles indépendants en cycles peuvent sembler inutiles, mais ils remplissent un rôle similaire à celui de la technologie 3-SAT en informatique centralisée: un point de départ très utile pour les réductions. Pour les applications concrètes du monde réel, il est plus judicieux d’examiner les périphériques tels que les routeurs et les commutateurs des réseaux de communication plutôt que les ordinateurs des grilles et des clusters.

Cette fausse croyance n'est pas totalement inoffensive. En fait, il est assez difficile de vendre au grand public des travaux liés à la théorie des algorithmes distribués. J'ai reçu des rapports hilarants d'arbitres de conférences du SDC ...


1
En ce qui concerne l’informatique, je ne dirais pas que ce n’est pas une fausse croyance, mais plutôt une obsolète. Hormis les processeurs multicœurs, l’informatique distribuée à petite échelle était un cas trivial du modèle hautes performances (à ma connaissance, au moins). Les noyaux étant des "ordinateurs" mais sur une si petite distance, sans réseau entre eux, de nouveaux problèmes se posent. Je conviens toutefois que les algorithmes distribués devraient être utilisés pour m> = 2 nœuds.
chazisop

Vous dites donc simplement que les gens confondent l'informatique parallèle et l'informatique distribuée?
Sasho Nikolov

Je pense que votre affirmation ne s’applique pas aux informaticiens théoriques, bien qu’elle puisse s’appliquer à des praticiens n’ayant pas de formation théorique. Comme l'a souligné Sasho Nikolov, les personnes travaillant sur le terrain connaissent très bien les différences entre l'informatique parallèle et l'informatique distribuée. Le problème qui se pose dans les clusters, les grilles, les nuages, etc. dépend strictement du contexte. Par exemple, nous n'assumons pas les pannes lors de l'utilisation d'un cluster ou d'un nuage, nous le faisons pour les grilles. Etc.
Massimo Cafaro

De plus, pour cette communauté scientifique, les algorithmes distribués sont des algorithmes pour des problèmes tels que ceux que l'on trouve couramment dans les livres de Nancy Lynch, Hagit Attiya et Jennifer Welch, et Gerard Tel, pour n'en nommer que quelques-uns. Et, en tant que tels, ces algorithmes sont conçus pour un modèle informatique théorique théorique spécifique et analysés selon les besoins en termes de ressources utilisées (complexité temporelle, complexité du message, complexité en bits, nombre de tours, etc.).
Massimo Cafaro

@ Massimo Cafaro: Bien entendu, les personnes travaillant dans le domaine de l'informatique distribuée savent ce qu'est l'informatique distribuée. Cependant, mon expérience est que les informaticiens théoriques en général ne savent pas ce qu'est l'informatique distribuée.
Jukka Suomela

20

Un élémentaire, mais commun lorsque nous traitons pour la première fois avec des notations asymptotiques. Considérons la "preuve" suivante de la relation de récurrence et T ( 1 ) = 1 :T(n)=2T(n/2)+O(nlogn)T(1)=1

Nous prouvons par induction. Pour le cas de base, cela vaut pour . Supposons que la relation soit vraie pour tous les nombres inférieurs à n ,n=1n

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

QED (est-ce?)


16
J'ai vu des étudiants faire ça. Ceci est l' un des pièges de notation abuser et écrire au lieu de f ( x ) O ( g ( x ) ) . f(x)=O(g(x))f(x)O(g(x))
Aaron Roth

J'ai vu des chercheurs en informatique théorique faire des variantes de cette erreur aussi;)
Jeremy

12

Jusqu’à récemment, j’imaginais que chaque machine de Turing à bandes multiples fonctionnant dans le temps T ( n ) pouvait être simulée par une machinne de Turing à deux bandes oubliée M o dans le temps O ( T ( n ) log T ( n ) ) dans ce qui suit: sens:MT(n)MoO(T(n)logT(n))

  • le mouvement des têtes de dépend uniquement de la longueur saisieMo
  • pour toutes les entrées de la même longueur, arrête en même temps ( ce qui est Θ ( T ( n ) log T ( n ) ) ).MoΘ(T(n)logT(n))

(voir ce post de rjlipton par exemple)

De plus, la deuxième ligne ne tient pas , en général, si . Nous avons besoin d' une fonction entièrement de temps constructible de l' ordre Θ ( T ( n ) log T ( n ) ) (voir cette question pour la définition de (fonctions entièrement) constructible temps) ou nous devons permettre à M o de briguer un temps infini (nous permettons à M o de courir après avoir atteint l’état accepté enEXPTIMENEXPTIMEΘ(T(n)logT(n))MoMo temps). Le problème est que, pour T : NN, il est impossible de "mesurer" Θ ( T ( n ) log T ( n ) ) dans le temps O ( T ( n ) log T ( n ) ) à moins que E X P - T I M EO(T(n)logT(n))T:NNΘ(T(n)logT(n))O(T(n)logT(n)) .EXPTIME=NEXPTIME

La preuve de cette affirmation est très similaire à la preuve dans la réponse de Q1 ici , donc nous ne donnerons que les idées clés.

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

Voici mes deux cents:

RLRPM

  • M1/2
  • M1

De plus, la machine s’arrête toujours.

La définition est-elle correcte? (Non)


9

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

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

Eh bien, la hiérarchie ne donne en que . Nous aurions besoin par exemple de pour . Pour les fonctions telles que , est très commun. Mais à proprement parler, la hiérarchie temporelle non déterministe est souvent énoncée superficiellement.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)

Pour montrer que ne pas pour tous les éléments entièrement constructibles dans le temps st , définissons et . Il est facile de voir que et sont entièrement constructibles dans le temps et que . De la hiérarchie temporelle non déterministe, nous savons qu’il existe un langage sur . Définissez 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}.

Il en résulte que . Il est facile de voir que suit , ce qui n’est pas vrai. Par conséquent, .L1NTIME(f(n))L1NTIME(g(n))LNTIME((n+1)2)L1NTIME(f(n))NTIME(g(n))


9

J'ai souvent entendu dire que Valiant-Vazirani disait que réduit aléatoirement à , ou que , ou que . En particulier, cela impliquerait que si Valiant-Vazirani peut être dérandomisé, alors . Mais en fait, Valiant-Vazirani dit que .U P N PR P U P N PRU P N P = U P N P de R P P r o s m i s e U PNPUPNPRPUPNPRUPNP=UPNPRPPromiseUP

Fausse croyance étroitement liée: est la classe de langages avec un vérificateur poly-temps non déterministe tel que siff existe un témoin unique. La correction est que le vérificateur doit satisfaire à la propriété sémantique qui, dans toutes les instances, compte au plus un témoin. La définition ci-dessus, sans correction, est la définition de . Mais est très différent de : par exemple, . L x L U S U S U P c o N PU SUPLxLUSUSUPcoNPUS


que veut dire "propriété sémantique" dans toutes les instances?
T ....

1
@ 777: propriété sémantique signifie: ne peut pas être vérifié directement à partir de la structure (ou syntaxe) de la MT / algorithme lui-même. La phrase a plus de sens si vous continuez après la virgule, c'est-à-dire: la propriété qui: "dans tous les cas, il y a au plus un témoin"
Joshua Grochow,

-2

Si est la valeur attendue de , nous nous attendons à ce que se produise réellement.X { X = μ }μX{X=μ}


9
Ceci est certainement une fausse croyance répandue parmi les étudiants en informatique théorique, mais ce n’est pas le cas chez les chercheurs en informatique théorique .
Jeff
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.