¿Sería más difícil probar P ≠ NP que probar P = NP?


20

Considere dos posibilidades para el problema P vs. NP: P = NP y P NP.

Sea Q uno de los problemas NP-hard conocidos. Para probar P = NP, necesitamos diseñar un solo algoritmo de tiempo polinomial A para Q y demostrar que A resuelve correctamente Q.

Para probar P NP, debemos demostrar que ningún algoritmo de tiempo polinómico resuelve Q. En otras palabras, tenemos que descartar todos los algoritmos de tiempo polinomiales.

He escuchado a gente decir que esto hace que la segunda tarea sea más difícil (suponiendo que sea realmente cierto).

¿Hay alguna razón para pensar que probar P = NP (suponiendo que P = NP) sería más fácil que probar P NP (suponiendo que P NP)?


31
Esta pregunta está mal planteada. Como solo una de las afirmaciones puede ser verdadera, una es imposible de probar. El otro puede ser posible probar, y si es así que sería fácil de probar que el falso. Ergo, no tengo idea de qué tipo de respuesta estás buscando. ¡Votos de la comunidad, por favor! ¿Se puede responder esto?
Raphael

10
@ Raphael, estoy en desacuerdo. Podrías interpretar la pregunta de OP como "Si P = NP fuera cierto, ¿sería más fácil probar que probar P ≠ NP si P ≠ NP fuera cierto?" No creo que OP haya pensado seriamente que se interprete como una sugerencia de que ambas deben ser ciertas.
The Anathema

3
FWIW, me parece que a) la interpretación de @Anathema de la pregunta es correcta yb) es una pregunta significativa. En otras palabras: si P = NP, y se encuentra una prueba, esa prueba probablemente tendrá la forma de un algoritmo de tiempo polinómico para un problema de NP completo. Por otro lado, si comenzamos con el supuesto de que P ≠ NP, ¿qué tipo de técnicas podríamos utilizar para encontrar una prueba, y qué forma tomaría tal prueba?
JohannesD


Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Gilles 'SO- deja de ser malvado'

Respuestas:


25

Como explica Raphael, esta pregunta está mal planteada, ya que a lo sumo uno de P = NP y P ≠ NP debería ser demostrable. Sin embargo, una cuestión similar surge en la informática teórica en varias formas, la más notable de las cuales es en el campo de los algoritmos de aproximación .

Dado un problema de optimización NP-hard (por ejemplo, maximización), podemos preguntar qué tan bien podemos aproximarlo. Probar un límite superior en la posible aproximación es similar a P = NP, mientras que probar un límite inferior en la posible aproximación es similar a P ≠ NP. El primero es mucho más fácil que el segundo. De hecho, para probar un límite superior, todo lo que uno tiene que hacer es crear un algoritmo de aproximación y analizarlo. Por el contrario, todos los límites inferiores conocidos son condicionales: son válidos solo si P ≠ NP (de hecho, si P = NP, entonces cada problema de optimización NP-hard sería solucionable). Para probar estos límites inferiores, mostramos que si pudiéramos aproximarnos demasiado bien al problema, obtendríamos un algoritmo de tiempo polinómico para algún problema NP-difícil. Por lo general, esto se hace a través de la compleja maquinaria técnica del teorema de PCP. Este campo, conocido como la dureza de la aproximación , solo puede ser abordado por especialistas, y es técnicamente más desafiante que la mayoría de los algoritmos de aproximación. Entonces, al menos en este caso, P = NP es más fácil que P ≠ NP.


14
Podrías interpretar la pregunta de OP como "Si P = NP fuera cierto, ¿sería más fácil probar que probar P ≠ NP si P ≠ NP fuera cierto?" No creo que OP haya tenido la intención de que se interprete como algo verdadero.
The Anathema

66
@TheAnathema Supongo que uno tiene que interpretar la pregunta de esa manera. Pero todavía está bastante mal planteado porque una de las opciones es necesariamente contrafáctica. ¿Cómo puedes comparar ese contrafactual con la dificultad de probar algo que es verdad?
David Richerby

@David, la afirmación sobre la dificultad de probar P NP en comparación con P = NP es algo que tengo de los expertos varias veces. Preguntar si es un reclamo razonable es una pregunta válida. En realidad, evaluar la dificultad de las situaciones contrafactuales (cuando no se sabe que son así) es común. Tomemos, por ejemplo, a alguien que pregunta sobre la dificultad de probar P NP. Si P NP, entonces es contrafactual. ==
Kaveh

9

No hemos descartado la posibilidad de una prueba simple de que P = NP. Si mañana alguien presenta un algoritmo que resuelve un problema de NP completo en tiempo P, el mundo cambia.

Por otro lado, nos hemos descartado la posibilidad de una prueba sencilla que P! = NP. Nuestras técnicas de prueba típicas para demostrar que dos clases de complejidad diferentes han demostrado formalmente ser insuficientes. Tres de estas técnicas se conocen como "aritmetización", "prueba natural" y la categoría de pruebas llamadas "relativizantes" (las que no les importan los oráculos que están en uso). Se puede demostrar que cualquier técnica de prueba que se encuentre en 3 de esas categorías no puede probar P! = NP.

En efecto, existe una fuerte evidencia de que probar P! = NP requiere nuevos tipos de prueba (nuevas técnicas con diferentes propiedades), no solo la aplicación novedosa de técnicas de prueba bien conocidas.


Ahora, podría resultar que P = NP, mientras que no hay un algoritmo simple de verificar en P que resuelva un problema de NP completo, y que se requieren nuevas técnicas de prueba para probar P = NP. (Si P = NP, ya conocemos algoritmos que están técnicamente en P que resuelven los problemas difíciles de NP, de manera divertida. No son prácticos de ejecutar, ya que su factor constante es grande).

Básicamente, sabemos mucho sobre lo que no podemos usar para probar P! = NP, mientras que aparentemente sabemos poco sobre lo que no podemos usar para probar P = NP.


Todas las barreras a las pruebas simples de aplican a las pruebas de con la misma fuerza. Si tuviera un algoritmo, entonces la prueba de que sería la prueba de que el algoritmo era (i) correcto y (ii) de tiempo polinómico, y esa prueba todavía tendría que discutir qué hecho sobre el no determinismo es el algoritmo utilizando para su simulación determinista eficiente que no es cierto en relación con un oráculo (algebraico), y cómo derrota la barrera de las pruebas naturales. P = N P P = N PPNPP=NPP=NP
Lieuwe Vinkhuijzen

8

Bueno, básicamente tienes la idea. En general, pensamos que P! = NP, pero no tenemos idea de cómo probaríamos que estas cosas no son iguales.

Por el contrario, si P = NP, pensaría que ya habríamos encontrado un algoritmo para resolver una de las docenas de problemas NP-completos.

Estos son argumentos muy manuales, pero en un par de oraciones describen la cultura entre los informáticos.

Sin embargo, si probar que P! = NP es "más difícil" depende de cuál es la verdad (¿excluyendo resultados metamatemáticos?), Y eso, por supuesto, no lo sabemos.


5

¬n 1.9mod6compuertas que no pueden resolver SAT (en términos simples, es posible que exista un algoritmo paralelo de tiempo constante con un número polinómico de procesadores que resuelve SAT y cada proceso computa solo una de estas compuertas). Los mejores límites inferiores que tenemos para las máquinas de Turing que resuelven SAT ni siquiera pueden mostrar que no hay un algoritmo cuyo tiempo de ejecución multiplicado por el espacio que usa es . Puedo continuar un poco sobre el estado bastante vergonzoso de probar los límites inferiores (pero tenga en cuenta que también tenemos resultados de barrera que explican por qué es tan difícil probar los límites inferiores). Algunos expertos creen que el programa GCT de Ketan Mulmuley es el más probable para resolver P vs. NP y el propio Mulmuley ha dicho repetidamente que cree que probablemente tomará más de cien años llegar allí.n1.9

Sin embargo, ha habido algunos trabajos recientes de Ryan Williams y otros que muestran que existen vínculos intrínsecos entre probar los límites inferiores y encontrar algoritmos. Por ejemplo, demostró que un algoritmo ligeramente mejor que el algoritmo de fuerza bruta para un problema SAT restringido en particular implica límites inferiores del circuito y luego diseñó dicho algoritmo. Así que creo que las personas son un poco menos pesimistas y tampoco parecen desarrollar algoritmos y probar límites inferiores tan separados como solían pensar que son.

Ahora volvamos a la pregunta y tratemos de verla un poco más religiosamente. Para responder a la pregunta necesitamos formalizar lo que queremos decir con dificultad de probar una declaración. Para esto, podemos usar la teoría de la prueba y la complejidad de la prueba que examina exactamente varias formas de definir la dureza de probar una declaración. Permítanme dar una breve explicación de qué trata la complejidad de la prueba. Un sistema de prueba es esencialmente un algoritmo verificador para pruebas. Le damos una cadena y una cadena y preguntamos si es una prueba deφ π φπφπφy el algoritmo devuelve sí o no. Puede pensar en cualquier comprobador de pruebas de esta manera. También puede pensar en pruebas en un sistema matemático como ZFC como tal. El proceso de verificación en sí se puede realizar en tiempo polinómico en el tamaño de la prueba porque es una tarea sintáctica.

Ahora considere una fórmula . ¿Qué significa que sea ​​difícil de probar? Una posibilidad es que la prueba más corta de sea ​​muy grande. Si es demasiado grande, digamos que el número de bits necesarios para representarlo es mayor que entonces ni siquiera podemos establecer la prueba. Una segunda posibilidad es que la prueba no es demasiado grande pero es difícil de encontrar. Déjame explicarte esto un poco: piensa en un algoritmo de búsqueda de pruebas. La mayoría de las reglas son deterministas en un sistema como LKφ φ 2 65536φφφ265536en el sentido de que puede determinar las líneas anteriores de la línea actual en la prueba y la regla. Una excepción importante a esto es la regla de corte. Es importante porque, aunque no necesitamos la regla de corte para probar declaraciones, puede reducir considerablemente el tamaño de la prueba más corta. Sin embargo, la regla de corte no es determinista: hay una fórmula de corte que debemos adivinar. Puedes pensar en la regla de corte como probar lemas y usarlas. La fórmula de corte es como un lema. Pero, ¿qué lema deberíamos demostrar que nos ayudará? Esa es la parte difícil. A menudo, un resultado se prueba en matemáticas al encontrar un buen lema. Además, cuando usa resultados probados previamente, esencialmente está usando la regla de corte. Otro componente importante en las declaraciones de prueba son las definiciones. A menudo definimos un nuevo concepto, luego probamos declaraciones al respecto, y finalmente aplicarlo en nuestro caso particular. El uso de definiciones reduce el tamaño de las fórmulas (intente expandir alguna fórmula matemática al lenguaje teórico de conjunto puro expandiendo las definiciones para tener una idea de cuán importantes son las definiciones). Nuevamente, ¿qué nuevas definiciones debemos usar? No lo sabemos Esto me lleva al tercer significado de una declaración que es difícil de probar. Una declaración puede ser difícil de probar porque necesita axiomas fuertes. Tomar eg Una declaración puede ser difícil de probar porque necesita axiomas fuertes. Tomar eg Una declaración puede ser difícil de probar porque necesita axiomas fuertes. Tomar egCH . No se puede probar en ZFC ni se puede refutar en ZFC. Este es un caso extremo, pero ocurre con más frecuencia de lo que piensas. Por ejemplo, ¿necesitamos grandes axiomas cardinales (para poder trabajar en los universos de Grothendieck ) para probar FLT o podemos probarlo en una teoría mucho más débil como la AP ? Este es otro concepto con respecto a la dificultad de probar declaraciones.

Ahora volvamos a P vs. NP. No tenemos resultados que indiquen que el problema no puede resolverse de una forma u otra en teorías aritméticas más bien débiles. Alexander Razborov escribió un artículo en 1995 titulado "Imposibilidad de límites más bajos en el tamaño del circuito en ciertos fragmentos de aritmética limitada" que mostró que no es posible probarlo en alguna teoría débil, pero la teoría es realmente muy débil. Que yo sepa, no ha habido mucho progreso en extender eso a teorías considerablemente más fuertes como las teorías aritméticas limitadas de Sam Buss e incluso si el resultado se extiende a ellos, todavía están muy lejos de algo como PA o ZFC. En resumen, no solo no podemos probar que SAT no está en clases de complejidad muy pequeñas, ni siquiera podemos probar que no podemos probar PNP en teorías muy débiles. La razón formal que tenemos acerca de por qué es difícil probar P NP son los resultados de barrera que indican que tales y tales técnicas no pueden probar por sí mismas que P NP. Son buenos resultados, pero ni siquiera descartan la posibilidad de combinar esas técnicas para mostrar P NP.


Cuando habla de definir la pregunta "más religiosamente", supongo que quiere decir "más rigurosamente" :-)
David Richerby

2
@David, sí, la corrección automática a veces hace eso. :)
Kaveh

4

Creo que la pregunta puede reducirse a: ¿es más fácil demostrar que algo existe o demostrar que algo no existe?

El argumento a favor de probar que algo existe es que es fácil construir cosas que puedan satisfacer los requisitos y también es fácil verificar si realmente los satisfacen.

En algunos casos esto es cierto: si desea encontrar la raíz de un polinomio, es fácil construir números y es fácil verificar si son raíces.

El problema, por supuesto, es que tienes que tener suerte. Es posible que pueda reducir el espacio de búsqueda, por ejemplo, demostrando que debe ser un múltiplo de 5 o entre 1 y 10; pero, a menos que lo limite a un conjunto finito de números (en cuyo caso realmente no está utilizando el método "adivinar y validar"), no tiene un método para resolver el problema: solo tiene un método que, suponiendo eres extremadamente afortunado, podrías generar una solución.

Pero si quieres eso, ¡es igualmente fácil demostrar que algo no existe! Genere textos que podrían ser posibles soluciones y verifique si realmente lo son.

Por lo tanto, tener un método que pueda dar la solución por pura suerte no significa que probar que algo existe sea más fácil.

Ahora, ¿es generalmente más fácil demostrar que algo existe con algún otro método? Depende del problema real porque, de lo contrario, probar que algo no existe se reduciría a demostrar que existe una prueba de que no existe. Y me temo que no podemos medir eso, ya que nunca hubo algo que haya demostrado que existe y que no existe, por lo que podemos (intentar) medir la dificultad de la prueba.


1
Si ese "algo" existe, es más fácil demostrar que existe (trivialmente, no se puede demostrar que no existe; eso no significa que no sea endiabladamente difícil encontrar dicha prueba). El mismo razonamiento al revés. Como dicen los comentarios, la pregunta en sí no tiene sentido.
vonbrand

@vonbrand No estoy diciendo for any X: is it easier to prove that X exists or to prove that X does not exist, estoy diciendo que for any X,Y: is it easier to prove that X exists or to prove that Y does not exist.es decir, si E el conjunto de pruebas que prueban oraciones de la forma 'X existe' y NE el conjunto de pruebas que prueban oraciones de la forma 'Y no existe', y d ( P) la dificultad de la prueba, es cierto que d (X) <d (Y) donde X en E e Y en NE.
Thanos Tintinidis

d(X)XXX

@vonbrand sí; Además, estoy argumentando que no puede usar el método de OP (siga generando soluciones potenciales hasta que encuentre una) como argumento para sugerir que probar la existencia es más fácil que probar la no existencia, ya que puede transformar la transformación de la declaración S1 de inexistencia a una declaración S2 de la existencia de la prueba de la declaración S1. Aunque estoy empezando a dudar del valor de esto
Thanos Tintinidis


-2

Creo que es imposible probar P <> NP, porque tendrías que descartar todos los algoritmos que podrían probar P = NP. Podría haber un número infinito de estos posibles. No hay forma de refutar el infinito, por lo tanto, no es posible. Por otro lado, todo lo que se necesitaría es un algoritmo único para probar P = NP, si es así. Por lo tanto, o P = NP que alguien probará, o nunca lo sabremos.


¡Bienvenido a Computer Science ! ¿Crees o puedes demostrar que no es demostrable? Creo que la respuesta de Yakk arroja algo de luz sobre el tema.
Mal

2
"No hay forma de refutar el infinito" La gente descarta infinitas posibilidades todo el tiempo en matemáticas; no necesariamente tenemos que revisar cada uno a mano para saber que ninguno funciona. Su "argumento" implicaría que nunca podemos separar las clases de complejidad, lo cual no tiene sentido.
Noah Schweber
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.