Falsas creencias comunes en informática teórica

62

EDITAR EL 10/12/08:

Trataré de modificar la pregunta para que pueda interesar a más personas compartir sus opiniones. ¡NECESITAMOS sus contribuciones!

Esta publicación está inspirada en la de MO: ejemplos de creencias falsas comunes en matemáticas . Las listas grandes a veces generan una gran cantidad de respuestas cuyas cualidades son difíciles de controlar, pero después del éxito de la publicación relacionada en MO, estoy convencido de que sería útil enumerar un grupo de creencias falsas comunes en TCS.

Aún así, dado que el sitio está diseñado para responder preguntas de nivel de investigación, ejemplos como significa tiempo no polinómico no deberían estar en la lista. Mientras tanto, queremos algunos ejemplos que pueden no ser difíciles, pero sin pensar en detalles también parece razonable. Queremos que los ejemplos sean educativos, y generalmente aparecen cuando se estudia el tema por primera vez.NP

¿Cuáles son algunos ejemplos (no triviales) de creencias falsas comunes en informática teórica que les parecen a las personas que estudian en esta área?

Para ser precisos, queremos ejemplos diferentes de resultados sorprendentes y resultados contraintuitivos en TCS; Este tipo de resultados hace que las personas sean difíciles de creer, pero son VERDADEROS. Aquí estamos pidiendo ejemplos sorprendentes de que las personas puedan pensar que es cierto a primera vista, pero después de un pensamiento más profundo, la falla interna queda expuesta.


Como ejemplo de respuestas adecuadas en la lista, esta proviene del campo de los algoritmos y la teoría de gráficos:

Para un gráfico de nodos , un separador de bordes es un subconjunto de bordes de tamaño , donde los nodos de pueden dividirse en dos partes no adyacentes, cada una de las cuales consta de nodos como máximo . Tenemos el siguiente lema":G k S k G S 3 n / 4nGkSkGS3n/4

Un árbol tiene un separador de 1 borde.

¿Derecho?

Hsien-Chih Chang 張顯 之
fuente
La publicación se ha marcado para solicitarse como CW.
Hsien-Chih Chang 張顯 之

Respuestas:

59

Este es uno común a la geometría computacional, pero endémico en otros lugares: los algoritmos para la RAM real se pueden transferir a la RAM entera (para restricciones enteras del problema) sin pérdida de eficiencia. Un ejemplo canónico es la afirmación "La eliminación gaussiana se ejecuta en tiempo ". De hecho, las órdenes de eliminación descuidadas pueden producir enteros con exponencialmente muchos bits .O(n3)

Peor aún, pero desafortunadamente común: los algoritmos para la RAM real con función de piso se pueden transferir a la RAM entera sin pérdida de eficiencia. De hecho, un piso real RAM + puede resolver cualquier problema en PSPACE o en #P en un número polinómico de pasos .

Jeffε
fuente
55
El concepto erróneo de eliminación gaussiana está muy extendido. Quizás parte del problema es que a menudo trabajamos en campos finitos y, dado que no hay ningún problema allí, lo olvidamos.
slimton
"Después de que hicimos la eliminación gaussiana entera, sabemos cómo encontrar una solución".
Albert Hendriks
40

Acabo de descubrir otro mito, que es contribuido por la respuesta de @ XXYYXX a esta publicación :

  • Un problema X es -hard si hay una reducción de tiempo polinomial (o espacio de registro) de todos los problemas a X.N PNPNP
  • Suponga la hipótesis del tiempo exponencial, 3-SAT no tiene un algoritmo de tiempo sub-exponencial. Además, 3-SAT está en .NP
  • Entonces, no -duros problemas X tienen algoritmos de tiempo sub-exponenciales. De lo contrario, un algoritmo de tiempo sub-exponencial para X + una reducción de tiempo polinomial = un algoritmo de tiempo sub-exponencial para 3-SAT.NP

Pero sí tenemos algoritmos de tiempo sub-exponenciales para algunos problemas NP-hard.

Hsien-Chih Chang 張顯 之
fuente
Tuve la misma impresión.
Mohammad Al-Turkistany
Entonces, ¿qué nos dice esto sobre la hipótesis del tiempo exponencial? ¿O extrañé algún defecto en esta línea de razonamiento?
Mikhail Glushenkov
2
Hay una falla en el punto 3. Eso es exactamente lo que he entendido mal durante mucho tiempo :)
Hsien-Chih Chang 張顯 之
No estoy seguro si no puedo encontrar la falla. ¿Es que desde , la reducción no debe ser necesariamente polinómica sino que puede ser exponencial en el tiempo, ya que ambos problemas serían EXPTIME (debido a ETH?)PNP
chazisop
43
Las reducciones de tiempo polinomial pueden cambiar el tamaño de entrada por una cantidad polinómica. Entonces, si reduce una instancia de Q de tamaño n a una instancia de P de tamaño n al cuadrado, un algoritmo 2 a la raíz n para P solo le da un algoritmo 2 a n para Q.
Russell Impagliazzo
29

Una falsa creencia que se popularizó este año y se dice muchas veces cuando se trata de explicar todo el problema , ya que P se explica como eficiente:PNPP

"Si , entonces podemos resolver una gran cantidad de problemas de manera eficiente. Si no, no podemos"P=NP

Si puede ser resuelto en O ( n g o o g o l p l e x ) entonces P = N P . No creo que a nadie se le ocurra ejecutar este algoritmo.3SATO(ngoogolplex)P=NP

Si , todavía podemos tener un algoritmo para T S P que se ejecuta en n log ( log n ) , que es menor que n 5 para n 2 32 . La mayoría de la gente estaría más que feliz de poder resolver T S P para 4 mil millones de ciudades tan rápido.PNPTSPnlog(logn)n5n232TSP

chazisop
fuente
55
La publicación de blog de Lipton es agradable: rjlipton.wordpress.com/2009/07/03/is-pnp-an-ill-posed-problem
Hsien-Chih Chang 張顯 之
66
"Para cada algoritmo de tiempo polinomial que tenga, hay un algoritmo exponencial que preferiría ejecutar" - Alan Perlis, a través de Lost Letter de Gödel y P = NP .
Pål GD
24

Esto es realmente una falsa creencia en las matemáticas, pero surge a menudo en contextos de TCS: si las variables aleatorias e Y son independientes, entonces condicionadas por Z permanecen independientes. (falso incluso si Z es independiente de X e Y ).XYZZXY

MCH
fuente
2
¿Tiene un ejemplo simple favorito de esto que recomendaría para ayudar a las personas a reconocer rápidamente por qué es falso?
DW
21
Digamos que e Y son bits independientes y uniformemente aleatorios, y Z = X + Y (mod 2). Entonces, Z es independiente de X y es independiente de Y , pero condicionado por Z , sabiendo que X revela Y y viceversa. XYZ=X+YZXYZXY
MCH
22

Computación distribuida = computación distribuida de alto rendimiento (clusters, cuadrículas, nubes, seti @ home, ...).

Algoritmos distribuidos = algoritmos para estos sistemas.


Spoiler: Si esto no suena como una "falsa creencia", sugiero que eche un vistazo a conferencias como PODC y DISC, y vea qué tipo de trabajo están haciendo realmente las personas cuando estudian aspectos teóricos de la computación distribuida.

La configuración típica de un problema es la siguiente: tenemos un ciclo con nodos; los nodos se etiquetan con identificadores únicos del conjunto { 1 , 2 , . . . , poli ( n ) } ; los nodos son deterministas e intercambian mensajes entre sí de manera sincrónica. ¿Cuántas rondas de comunicación síncrona (en función de n ) se necesitan para encontrar un conjunto independiente máximo? ¿Cuántas rondas se necesitan para encontrar un conjunto independiente con al menos n / 1000 nodos? [La respuesta a estas dos preguntas es exactamente Θ ( log n{1,2,...,poly(n)}nn/1000 , descubierto en 1986–2008.]Θ(logn)

Es decir, las personas a menudo estudian problemas que son completamente triviales desde la perspectiva de los algoritmos centralizados y que tienen muy poco en común con cualquier tipo de supercomputación o computación de alto rendimiento. El punto ciertamente no es acelerar la computación centralizada mediante el uso de más procesadores, ni nada de eso.

El objetivo es construir una teoría de la complejidad clasificando los problemas fundamentales de los gráficos de acuerdo con su complejidad computacional (por ejemplo, cuántas rondas sincrónicas se necesitan; cuántos bits se transmiten). Problemas como conjuntos independientes en ciclos pueden parecer inútiles, pero cumplen un papel similar al 3-SAT en la informática centralizada: un punto de partida muy útil en las reducciones. Para aplicaciones concretas del mundo real, tiene más sentido echar un vistazo a dispositivos como enrutadores y conmutadores en redes de comunicación, en lugar de computadoras en redes y clústeres.

Esta falsa creencia no es del todo inofensiva. En realidad, hace que sea bastante difícil vender trabajos relacionados con la teoría de algoritmos distribuidos a la audiencia general de TCS. He recibido divertidos informes de árbitros de las conferencias de TCS ...

revs Jukka Suomela
fuente
1
Con respecto a la informática, no diría que esto no es una creencia falsa, sino más bien obsoleta. Además de los procesadores multinúcleo, la informática distribuida a pequeña escala era un caso trivial del de alto rendimiento (al menos por lo que sé). Como los núcleos son "computadoras" pero en una distancia tan pequeña, sin una red entre ellos, surgen nuevos problemas. Sin embargo, estoy de acuerdo en que los algoritmos distribuidos deben usarse para m> = 2 nodos.
chazisop
Entonces, ¿solo estás diciendo que la gente confunde la computación paralela con la computación distribuida?
Sasho Nikolov
Creo que su afirmación no se aplica a los informáticos teóricos, aunque puede aplicarse a los practicantes sin antecedentes teóricos. Como señaló Sasho Nikolov, las personas que trabajan en el campo conocen muy bien las diferencias entre la computación paralela y distribuida. El problema que surge en grupos, cuadrículas, nubes, etc. depende estrictamente del contexto. Por ejemplo, no asumimos fallas cuando usamos un clúster o una nube, pero lo hacemos para las cuadrículas. Y así.
Massimo Cafaro
Además, para esta comunidad científica, los algoritmos distribuidos son algoritmos para problemas como los que se encuentran comúnmente en los libros de Nancy Lynch, Hagit Attiya y Jennifer Welch, y Gerard Tel, por nombrar algunos. Y, como tal, estos algoritmos están diseñados para un modelo informático distribuido teórico específico, y se analizan según sea necesario en términos de los recursos utilizados (complejidad de tiempo, complejidad de mensajes, complejidad de bits, número de rondas, etc.).
Massimo Cafaro
@MassimoCafaro: Por supuesto, las personas que trabajan en el campo de la computación distribuida saben qué es la computación distribuida. Sin embargo, mi experiencia es que los informáticos teóricos en general no saben qué es la computación distribuida.
Jukka Suomela
20

Una primaria, pero común cuando tratamos por primera vez con anotaciones asintóticas. Considere la siguiente "prueba" de la relación de recurrencia y T ( 1 ) = 1 :T(n)=2T(n/2)+O(nlogn)T(1)=1

Probamos por inducción. Para el caso base se cumple para . Suponga que la relación se cumple para todos los números menores que n ,n=1n

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

QED (¿lo es?)

Hsien-Chih Chang 張顯 之
fuente
16
He visto a estudiantes hacer esto. Esta es una de las trampas de abusar de la notación y escribir lugar de f ( x ) O ( g ( x ) ) . f(x)=O(g(x))f(x)O(g(x))
Aaron Roth
También he visto a investigadores en informática teórica hacer variantes de este error;)
Jeremy
12

Hasta hace poco pensaba que todos los multi-cinta máquina de Turing que se ejecuta en el tiempo T ( n ) puede ser simulado por una de dos cintas ajeno Turing machinne M o en el tiempo O ( T ( n ) log T ( n ) ) en el siguiente sentido:MT(n)MoO(T(n)logT(n))

  • el movimiento de las cabezas de depende solo de la longitud de entradaMo
  • para todas las entradas de la misma longitud, detiene al mismo tiempo (que es Θ ( T ( n ) log T ( n ) ) ).MoΘ(T(n)logT(n))

(ver este post de rjlipton por ejemplo)

Bueno, la segunda línea no se sostiene en general, si . Necesitamos una función de orden completamente construible en el tiempo Θ ( T ( n ) log T ( n ) ) (vea esta pregunta para la definición de funciones (completamente) construibles en el tiempo) o necesitamos permitir que M o se ejecute por tiempo infinito (permitimos que M o se ejecute después de que alcanza el estado de aceptación enEXPTIMENEXPTIMEΘ(T(n)logT(n))MoMo tiempo). El problema es que para T : NN construible en tiempo general,no podemos "medir" Θ ( T ( n ) log T ( n ) ) pasos en el tiempo O ( T ( n ) log T ( n ) ) a menos 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 prueba de esta afirmación es muy similar a la prueba en la respuesta de Q1 aquí , por lo tanto, solo daremos las ideas clave.

Tome un problema arbitrario , L { 0 , 1 } . Entonces existe un k N , st L puede ser resuelto por un NDTM M en 2 n k pasos. Podemos suponer que en cada paso M entra como máximo en dos estados diferentes por simplicidad. A continuación, defina la función f ( n ) = { ( 8 n + 2LNEXPTIMEL{0,1}kNLM2nkM Se puede demostrar quefes construible en el tiempo.

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

Ahora suponga que una máquina de Turing ajena se ejecuta en el tiempo . Entonces g es completamente construible en el tiempo.g(n)=Θ(f(n)logf(n))g

Ahora el siguiente algoritmo resuelve :L

  • en la entrada , sea n el número con representación binaria x 00 ... 0 ( | x | k - 1 ceros). Se deduce que x = ( primero k xnx000|x|k1.x=(first logn+1k bits of bin(n))
  • g(n)g(n)g(n)xLxLng

LLNEXPTIMEEXPTIME=NEXPTIME

David G
fuente
11

Aquí están mis dos centavos:

RLRPM

  • M1/2
  • M1

Además, la máquina siempre se detiene.

¿Es correcta la definición? (No)

Hsien-Chih Chang 張顯 之
fuente
9

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

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

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)

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

L1NTIME(f(n))L1NTIME(g(n))LNTIME((n+1)2)L1NTIME(f(n))NTIME(g(n))

David G
fuente
9

NPUPNPRPUPNPRUPNP=UPNPRPPromiseUP

UPLxLUSUSUPcoNPUS

Joshua Grochow
fuente
¿Qué significa 'la propiedad semántica que en todos los casos' significa?
T ....
1
@ 777: propiedad semántica significa: no se puede verificar directamente desde la estructura (también conocida como sintaxis) del propio algoritmo / TM. La frase tiene más sentido si continúa más allá de la coma, es decir: la propiedad que: "en todos los casos hay como máximo un testigo"
Joshua Grochow
-2

μX{X=μ}

usuario1596990
fuente
99
Esta es ciertamente una creencia falsa común entre los estudiantes de informática teórica, pero no es tan común entre los investigadores teóricos de informática .
Jeffε