P, NP y máquinas especializadas de Turing


13

Soy un poco nuevo, pero estoy muy interesado en el campo de la informática y la teoría de la complejidad, y quiero aclarar mi comprensión sobre cómo clasificar los problemas, y qué tan fuertemente se relacionan los problemas con la máquina que se está utilizando para resolverlos.

Mi punto de vista

  • Máquina de Turing estándar: una máquina de Turing que tiene un alfabeto finito, un número finito de estados y una sola cinta derecha-infinita
  • Máquina de Turing-Equivalente: una máquina de Turing que puede emular y ser emulada por una máquina de Turing estándar (muy a menudo con un equilibrio entre el espacio y el tiempo logrado por la emulación)
  • P - la clase de problemas que se pueden resolver en tiempo polinómico usando una máquina de Turing estándar (definida anteriormente)
  • NP - la clase de problemas que pueden verificarse en tiempo polinómico usando una máquina estándar de Turing
  • NP-complete- los problemas más difíciles que aún existen NP, a los que todos los NPproblemas se pueden convertir en tiempo polinómico

Mi pregunta

Son las clases de complejidad ( P, NP, NP-complete, etc.) relacionados con el algoritmo, o el algoritmo y la máquina?

Dicho de otra manera, si pudiera crear una máquina equivalente de Turing (que pueda resolver todos los problemas que puede tener una TM estándar, pero en una cantidad de tiempo / espacio diferente) y esta nueva máquina podría resolver un NP-completeproblema en el tiempo que crece como polinomio con respecto a la entrada, ¿eso implicaría P=NP?

¿O debe NP-completeresolverse el problema en todas las Máquinas de Turing posibles en tiempo polinómico para ser considerado P?

¿O entiendo mal algo fundamental arriba?

He echado un vistazo (tal vez no con los términos de búsqueda correctos, no conozco toda la jerga), pero parece que la mayoría de las conferencias / notas, etc. se centran en máquinas estándar, pero dicen que las máquinas personalizadas a menudo tienen algo de velocidad de tiempo / espacio a expensas del espacio / tiempo, sin decir cómo afecta eso a las clases de complejidad. Todavía no estoy lo suficientemente familiarizado con la jerga en este campo como para encontrar documentos que expliquen esto.


Creo que su respuesta es muy similar a la respuesta de esta publicación: en términos básicos, ¿cuál es la definición de P, NP, NP-Complete y NP-Hard? Échale un vistazo.
Reza

Respuestas:


9

Los algoritmos y las máquinas no están definidos en su pregunta y no creo que sean necesarios para preguntar lo que desea preguntar.

Las clases de complejidad se definen utilizando máquinas de Turing. Esa es su definición. Si quiere probar algo, debe usar estas definiciones. Cualquier cosa sobre cualquier otro modelo no está relacionada a menos que demuestre cierta correspondencia entre ese modelo y las máquinas de Turing.

PAGnortePAGPAG

siPAGPAG

siPAGPAG=PAG

siQPAGPAGPAG


PAGnortePAGnortePAG


Entonces, si su máquina personalizada puede resolver problemas de manera eficiente, pero no puede ser emulada eficientemente por una máquina de Turing estándar, ¿este resultado no es relevante para P? = NP (incluso si puedo construir esta máquina en la vida real)?
Bingo

Si, eso es correcto.
Kaveh

¿Y entonces esto violaría la tesis extendida de Church-Turing?
Bingo

No necesariamente.
Kaveh

6

Solo una nota trivial para subrayar que la simulación eficiente de una máquina de Turing significa no solo que puede simular el cálculo de una máquina de Turing y viceversa de manera eficiente (desaceleración del tiempo polinomial); pero también que su entrada / salida debe convertirse eficientemente de un modelo a otro.

Un ejemplo trivial: si encuentra un dispositivo equivalente de Turing que puede resolver un problema SAT en tiempo constante, pero utiliza como entrada un montón de canicas (unario), entonces no puede concluir nada. Lo mismo si su dispositivo usa una entrada binaria pero requiere un número exponencial de pasos para convertir una instancia de SAT al formato de entrada utilizado por él.


3

¡Tu comprensión es muy buena! También puede encontrar más información en un texto si está interesado, por ejemplo, Introducción de Sipser a la teoría de la computación.

Existe esta idea llamada la Tesis de la Iglesia de Turing que dice que cualquier cosa que se pueda calcular de alguna manera, se puede calcular utilizando una máquina de Turing. (No es demostrable, sino solo una idea, o una especie de ley de la naturaleza que creemos que es cierta).

Menciono esto porque también existe la "Tesis de Turing de la Iglesia Extendida" que dice que cualquier cosa que pueda calcularse en tiempo polinomial de alguna manera, puede calcularse en tiempo polinomial usando una máquina de Turing.

Hay buenas razones para dudar de esta conjetura porque conocemos algoritmos de computación cuántica que obtienen una aceleración mejor que la polinómica sobre los algoritmos clásicos más conocidos. Sin embargo, aparte de eso, se cree que cualquier máquina clásica que pueda construir (ciertamente cualquier variante en una máquina de Turing) no puede ser exponencialmente más rápida que una máquina de Turing. Entonces, si su "Máquina equivalente a Turing" podría ejecutar un algoritmo que resolviera un problema NP-Complete en tiempo polinomial, entonces P = NP porque podría convertirlo en un algoritmo de tiempo polinomial para el mismo problema en una TM.

Pero si pensaste en una especie de máquina equivalente a Turing, probablemente una de las primeras cosas que harías es descubrir cómo simularla con una TM clásica, y eso te diría si tienes una conversión de tiempo polinomial o no. Y la respuesta casi seguro sería sí, excepto que quizás podría ser exponencialmente más lento (pero no más rápido, pensamos, a menos que sea cuántico, entonces tal vez).

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.