¿Existen pruebas de existencia de algoritmos no constructivos?


47

Recuerdo que podría haber encontrado referencias a problemas que han demostrado ser solucionables con una complejidad particular, pero sin un algoritmo conocido para alcanzar esta complejidad.

Me cuesta entender cómo puede ser este el caso; cómo se vería una prueba no constructiva de la existencia de un algoritmo.

¿Existen realmente tales problemas? ¿Tienen mucho valor práctico?


11
algoritmos basados ​​en el teorema de Robertson-Seymour ? O más simplemente, usando PEM para probar que existe un algoritmo en el que no sabemos cuál (detener el problema es trivialmente decidible para cada máquina de Turing fija, pero ¿cómo podemos encontrar un algoritmo que resuelva el problema correctamente sin resolver (la versión uniforme de) el problema de detención?) ps: ¿qué quieres decir con "valor práctico"?
Kaveh

66
Por qué, también hay ejemplos más simples .
Raphael

1
Raphael, me parece que tu comentario podría actualizarse a una respuesta. ¿Quizás usted (o alguien) podría intentar esto?
John Sidles


2
Esto está en Wikipedia ahora .
Raphael

Respuestas:


33

Considere la función (tomada de aquí )

F(norte)={10 0norte ocurre en la representación decimal de π0 0más

A pesar de la apariencia, es computable por el siguiente argumento. Ya seaF

  1. ocurre por cada n o0 0nortenorte
  2. hay una de modo que 0 k se produce pero 0 k + 1 no lo hace.k0 0k0 0k+1

No sabemos cuál es (todavía), pero sabemos que conFF={F,F0 0,F1,...}

  1. yF(norte)=1
  2. .Fk(norte)=[nortek]

Como , f es computable, pero no podemos decir qué es f .FRmiFF


2
Esta respuesta es buena, y también lo son las otras respuestas. Evidentemente, la pregunta de jkff tiene más de una respuesta, en el sentido de que existen múltiples tecnologías de prueba que pueden demostrar de manera no constructiva la existencia de algoritmos.
John Sidles

Sin embargo, estoy marcando este como "aceptado" porque es, con mucho, el más simple y demuestra la idea central de cómo puede surgir una prueba de existencia de algoritmo no constructivo.
jkff

@jkff Tan simple como es, es un gran ejercicio para los estudiantes en cursos de introducción de TCS. Me tomó semanas ajustar mi intuición / concepto de computabilidad a la luz de esta función.
Raphael

Estaría dispuesto a apostar un millón de dólares a que es la función constante 1. Y no tengo un millón de dólares. F
Daniel McLaury

26

Puede que esto no sea exactamente lo que quiere decir, pero el algoritmo óptimo de árbol de expansión mínimo de Seth Pettie y Vijaya Ramachandran es, en cierto sentido, no constructivo.

Es una pregunta abierta si existe un algoritmo determinista para calcular árboles de expansión mínima en tiempo lineal (es decir, ). Pettie y Ramachandran describen un algoritmo que calcula los MST en tiempo lineal si existe dicho algoritmo .O(norte+metro)

Intuitivamente, su algoritmo reduce cualquier instancia -vertex del problema MST a O ( n / k ) instancias más pequeñas con vértices O ( k ) en tiempo lineal, donde (por ejemplo) k = O ( log log log log log log log log n ) . Luego calculan el árbol de comparación óptimo que calcula el árbol de expansión mínimo de cualquier gráfico k- vértice por enumeración de fuerza bruta; incluso si esto toma un tiempo quintuplicamente exponencial en k , eso es solo OnorteO(norte/ /k)O(k)k=O(Iniciar sesiónIniciar sesiónIniciar sesiónIniciar sesiónIniciar sesiónIniciar sesiónIniciar sesiónnorte)kktiempo. Finalmente, resuelven las instancias pequeñas utilizando este árbol de decisión óptimo.O(Iniciar sesiónIniciar sesiónnorte)

En otras palabras, Pettie y Ramachandran construyen un algoritmo MST óptimo solo indirectamente, al construir un algoritmo que construye un algoritmo MST óptimo.


¡Eso es genial! Por cierto, su algoritmo coincide con el mejor tiempo de ejecución en un modelo de árbol de decisión, ¿verdad?
Sasho Nikolov

Sí, eso es correcto!
Jeff el

2
En cierto sentido, esto suena más como una función de orden superior (es una función que toma otra función, y la prueba de su complejidad temporal depende de la complejidad de la entrada) que una prueba no constructiva. Tomaría una prueba no constructiva para significar cualquier cosa que invoque de manera crucial la lógica clásica (LEM, DNE o Peirce) al construir su prueba de la existencia del algoritmo, sin proporcionarlo realmente. Sin embargo, todavía es genial.
copumpkin

13

Aquí hay dos ejemplos.

  1. Algunos algoritmos que usan el teorema de Robertson-Seymour . El teorema establece que existe una obstrucción finita para cada caso, pero no proporciona una manera de encontrar un conjunto tan finito. Por lo tanto, aunque podemos probar que el algoritmo existe, la declaración explícita del algoritmo dependerá del conjunto de obstrucción finita que no sabemos cómo encontrar. En otras palabras, sabemos que hay un algoritmo, pero no sabemos (todavía) cómo encontrar uno.

  2. Un ejemplo más fuerte, aunque menos natural, es esencialmente usar PEM o axiomas no constructivos similares. Esto es más fuerte en el sentido de que podemos demostrar que la existencia constructiva de un algoritmo implicaría un axioma no constructivo (similar a los contraejemplos débiles de Brouwer ). Tal ejemplo es más fuerte porque no solo dice que no conocemos en este momento ningún algoritmo explícito (o cualquier forma algorítmica de encontrar uno), sino también que no hay esperanza de hacerlo.

    Como ejemplo, podemos usar PEM para probar que existe un algoritmo, mientras que no sabemos cuál y una forma constructiva de encontrar uno implicaría un axioma no constructivo. Déjame darte un ejemplo simple:

    El problema de detención es trivialmente decidible para cada máquina de Turing fija (cada TM se detiene o no se detiene, y en cada caso hay una TM que genera la respuesta correcta), pero ¿cómo podemos encontrar un algoritmo que resuelva el problema correctamente sin resolver ( la versión uniforme de) el problema de detención?

    Más formalmente, no podemos probar de manera constructiva que le da un TM , hay una TM H T que decide el problema de la parada de M . Más formalmente, la siguiente declaración no puede ser probada constructivamente:MHTM

    eN fN [({f}( )=0{e})({f}( )=1{e})]

    Aquí es la TM con código e (en alguna representación fija de TM), { e } significa { e } se detiene, y { f } significa que { f } no se detiene.{e}e{e}{e}{f}{f}


1
¿Qué es la "obstrucción finita para cada caso"? Creo que significa "obstrucción finita conjunto para cada conjunto infinito de menor importancia gráficos cerrado " también queda no es bueno (he editado su respuesta a arreglarlo, pero parece rechazado, prefiero no repetir esto).
Saeed

8

Si.

En un punto en (1), el teorema de dicotomía de homomorfismo de gráfico de conteo ponderado complejo para cualquier tamaño de dominio finito, Cai, Chen y Lu solo prueban la existencia de una reducción de tiempo polinomial entre dos problemas de conteo a través de la interpolación polinómica. No sé de ningún valor práctico para tal algoritmo.

Consulte la Sección 4 de la versión arXiv. El lema en cuestión es el Lema 4.1, llamado "Primer lema de fijación".

Una forma de hacer que esta prueba sea constructiva es probar la versión compleja ponderada de un resultado de Lovasz , a saber:

Para todo , Z H ( G , w , i ) = Z H ( G , w , j ) si existe un automorfismo f de G tal que f ( i ) = j .GZH(G,w,i)=ZH(G,w,j)fGf(i)=j

Aquí, es un vértice en H , i y j son vértices en G , y Z H ( G , w , i ) es la suma sobre todas las homomorfismo de grafos complejos-ponderado de G a H con la restricción adicional de que i tiene que mapearse a w .wHijGZH(G,w,i)GHiw

(1) Jin-Yi Cai, Xi Chen y Pinyan Lu, Homomorfismos gráficos con valores complejos: un teorema de dicotomía ( arXiv ) ( ICALP 2010 )


7

Algunos resultados iniciales de finales de los 80:

Del resumen del segundo ítem:

Sin embargo, los recientes avances fundamentales en la teoría de grafos han puesto a disposición nuevas y poderosas herramientas no constructivas que pueden aplicarse para garantizar la membresía en P. Estas herramientas no son constructivas en dos niveles distintos: ni producen el algoritmo de decisión, estableciendo solo la finitud de un conjunto de obstrucción , ni revelan si tal algoritmo de decisión puede ser de alguna ayuda en la construcción de una solución. Revisamos e ilustramos brevemente el uso de estas herramientas, y discutimos la tarea aparentemente formidable de encontrar los algoritmos de decisión prometidos en tiempo polinómico cuando se aplican estas nuevas herramientas.


6

Un ejemplo de una familia infinita de problemas (de valor práctico cuestionable) para los cuales podemos mostrar:

  1. Que para cada problema existe un algoritmo para resolverlo.
  2. Que no hay forma de construir estos algoritmos (en general).

En otras palabras, una prueba demostrablemente no constructiva. Nuestra familia de problemas (de esta pregunta ) para cada máquina de Turing :METRO

LMETRO={METROEl |L(METRO)=L(METRO) y El |METROEl |El |METROEl |}

  1. Para cada este es un conjunto finito y, por lo tanto, decidible.METRO

  2. PAGSMETROPAGS(METRO)LMETROMETROMETROEl |METROEl |El |METROEl | . Una imposibilidad por el teorema de Rice; así, tal prueba constructiva P no existe.PAGS(METRO)(METRO)PAGS


2
Linda. Pero el valor práctico de esto puede ser menos cuestionable de lo que piensas: esta es una versión decisiva del problema de encontrar el programa más corto con un resultado dado, es decir, una compresión de datos óptima.
David Eppstein

1
Creo que el ejemplo es similar al que di. Tenga en cuenta que cuando decimos que no es constructivo, estamos interpretando la palabra constructivo como recursivo / computable, que es una de las escuelas en constructivismo.
Kaveh

2

De "La teoría de la bidimensionalidad y el gráfico algorítmico Notas de la teoría menor" para el Tutorial de Mohammad Taghi Hajiaghayi, por Mareike Massow, Jens Schmidt, Daria Schymura y Siamak Tazari.

Cada propiedad de gráfico cerrado menor puede caracterizarse por un conjunto finito de menores prohibidos.

Desafortunadamente, su resultado es "inherentemente" no constructivo, es decir, no existe un algoritmo que generalmente pueda determinar qué menores deben ser excluidos para una determinada propiedad de gráfico cerrado menor. Además, el número de menores prohibidos puede ser alto: por ejemplo, para gráficos incrustados en el toro se conocen más de 30,000 menores prohibidos, pero la lista está incompleta.

[...]

Cada propiedad de gráfico cerrado menor puede decidirse en tiempo polinómico (incluso en tiempo cúbico).


0

Lema local algorítmico de Lovász : "el lema algorítmico local de Lovász proporciona una forma algorítmica de construir objetos que obedecen a un sistema de restricciones con dependencia limitada ... Sin embargo, el lema no es constructivo ya que no proporciona ninguna idea de cómo para evitar los malos acontecimientos ". En algunos supuestos / limitaciones en la distribución, Moser / Tardos da un algoritmo construido [1]. el lema local de Lovasz parece tener varias conexiones profundas con la teoría de la complejidad, por ejemplo, ver [2]

[1] Una prueba constructiva del lema local general de Lovász por Moser, Tardos

[2] El lema local y la satisfacción de Lov´asz Gebauer, Moser, Scheder, Welzl


Es un sentido diferente de "constructivo". Algunas veces los teóricos de la complejidad (ab) usan la palabra "constructivo" para significar eficientemente algorítmico, y en ese contexto cualquier cosa que no sea eficientemente algorítmica se denomina no constructivo. Esto es diferente de la noción de prueba constructiva prevista en la pregunta.
Kaveh

Tu primera oración es engañosa. El algoritmo LLL es completamente constructivo, en el sentido de un algoritmo de tiempo polinómico. El LLL original tenía una prueba no constructiva en el sentido de ser un argumento inductivo sobre un espacio de probabilidad potencialmente enorme. El trabajo de seguimiento del documento de Moser y Tardos ha cerrado prácticamente todas las brechas entre el algoritmo LLL e incluso algo de fortalecimiento de LLL, ver doi.acm.org/10.1145/1993636.1993669
Sasho Nikolov

el lema original de 1975 era no constructivo y los investigadores posteriores (décadas más tarde) encontraron algoritmos constructivos para casos especiales, pero "prácticamente todos los vacíos" no son lo mismo que "todos los vacíos". es un ejemplo útil para demostrar que no se garantiza que una prueba de existencia no constructiva siempre se mantenga de esa manera, es decir, la no constructividad no siempre es absoluta y puede estar "sujeta a cambios", y que la investigación posterior / posterior puede cerrar brechas, y que incluso si Todas las brechas están cerradas por un algoritmo puede ser sutil / difícil de probar. Hay otros ejemplos de esto. Cité la solución Moser / Tardos.
vzn

1
Todo lo que digo es que la forma en que escribió su primera oración hace que parezca que el "algoritmo LLL" es "no constructivo". En esa cita había una referencia al LLL original, pero esa referencia se omite debido a dónde colocas las elipses. ¿podría editar para incluir más de la cita para que no sea confusa?
Sasho Nikolov

1
Creo que su respuesta solo se relaciona tangencialmente con el tema, pero es un buen punto que algunos teoremas con pruebas no constructivas también admiten pruebas constructivas (y algunas probablemente no, dependiendo de cómo defina "constructivo"). Por cierto, un problema para llevar el LLL constructivo aún más es que no está claro cómo definir un problema computacional razonable en todas las situaciones donde se aplica el LLL
Sasho Nikolov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.