¿Cómo verificamos la inexistencia de un camino hamiltoniano?

“Informalmente, NP es el conjunto de todos los problemas de decisión para los cuales las instancias donde la respuesta es” sí “tienen pruebas verificables de manera eficiente”.

Es decir, no puede verificar la inexistencia en tiempo polinomial.


Prueba por contradicción de que es poco probable que sea posible verificar la inexistencia en el tiempo polinómico.

Supongamos que tiene un algoritmo X que puede verificar la inexistencia de una ruta hamiltoniana en tiempo polinómico.

Dado un gráfico G, simplemente declaramos “sin solución” y dejamos que el algoritmo X lo verifique en tiempo polinómico. Si X verifica la respuesta, ha determinado que G no tiene una ruta hamiltoniana en el tiempo polinomial, si X rechaza la respuesta, entonces ha determinado que G tiene una ruta hamiltoniana en el tiempo polinomial.

Sabemos que el problema de decisión es NP-complete => NP-hard. Todos los problemas NP-hard pueden reducirse entre sí, por lo que para cualquier otro problema NP NP-hard simplemente podemos generar un gráfico equivalente G en tiempo polinómico al que si conocemos la existencia / no existencia de una solución garantiza una existencia similar / inexistencia de una solución en P.

Por lo tanto, el algoritmo X resuelve efectivamente el problema de decisión de NP completo y finalmente dejaría de lado la pregunta de $ 1,000,000 de P = NP. Además, el algoritmo X será una prueba constructiva.

(A) Dado un gráfico, no hay camino hamiltoniano (es decir, dado un gráfico, ¿no hay caminos hamiltonianos en G?).

(B): Ruta Hamiltoniana : Dada una gráfica, existe una ruta Hamiltoniana (es decir, dada una gráfica G, ¿hay una ruta Hamiltoniana en G?)

(A) reduce de (B): resuelva (B), diga NO si devuelve SÍ, devuelva SÍ si devuelve NO. Claramente, esta es una reducción de poli-tiempo para (A).

Su problema de verificación es NP-complete ya que (B) es NP-complete. A menos que P = NP, no puede resolver su problema de verificación en tiempo polinómico.

Ahora, esto no debe confundirse con la entrega de un certificado (una instancia del problema con una posible solución) para el problema del Camino Hamiltoniano y decir que no es un camino Hamiltoniano. Eso se puede hacer en tiempo polinómico.

Estás malentendido lo que significa verificable en este contexto. No es “el resultado del problema de decisión es verificable en tiempo polinomial”, sino “Una solución dada es verificable en tiempo polinomial”.

El problema de decisión aquí es “Decidir si este gráfico contiene una ruta hamiltoniana”.

El problema de verificación es “¿Es esta ruta dada realmente una ruta hamiltoniana?”. Se trata de probar que una solución determinada funciona (o no), y “Vacío” no es una solución al problema. O bien, podría llamar a “Vacío” un camino vacío, uno sin nodos y sin vértices, en cuyo caso es trivial decir que no es un camino hamiltoniano a través del gráfico.

Entonces, para verificar una solución al problema de decisión, le entregaría un camino, y con mucho gusto podría verificar que es hamiltoniano en tiempo polinómico: el método de verificación sería O (n), y funcionaría por contando el número de veces que cada nodo se incluye en la ruta y que los enlaces son válidos, donde n es el número de nodos.

Para verificar la inexistencia de una ruta hamiltoniana, debe realizar una búsqueda completa del gráfico (en el caso general), que no es tiempo polinómico.

Por fuerza bruta, busque una solución, a menos que P = NP.

El problema del camino hamiltoniano es un problema de decisión. Dado un gráfico, hace la pregunta de si hay un camino que atraviese todos los vértices exactamente una vez y regrese al inicio. Eso es equivalente a la pregunta que está haciendo.

More Interesting

¿Qué matemática se requiere para entender el cálculo lambda?

¿Qué habilidades matemáticas te ayudarán a prepararte para obtener un título en ciencias de la computación?

¿Es cierto que al menos uno de los dos términos en [math] Rad (p) - 1, Rad (p) + 1 [/ math] es un número primo, donde [math] Rad (p) [/ math] es el producto de todos los números primos menores o iguales que [math] p [/ math]?

¿Cómo se puede aplicar la lógica modal a las matemáticas?

Cómo escribir un programa para encontrar el MCD entre dos números en C ++

¿Es el operador de módulo (%) adecuado para el muestreo?

En la clasificación de texto, ¿hay alguna manera de evitar los mismos resultados para 'hacer adición' y adición?

¿Cuál es la salida de un filtro Gabor?

¿Cuál es el beneficio de estudiar lógica y teoría de conjuntos para matemática o informática?

Cómo probar [matemáticas] p (a \ cup b \ cup c) \ leq p (a) + p (b) + p (c) [/ math]

¿Cuáles son algunos problemas realmente fáciles de explicar que en realidad son increíblemente difíciles de resolver?

Cómo usar plantillas y vectores en C ++

Hice un programa en C que nos da la tabla de distribución normal, pero debo hacer un archivo Excel desde C. ¿Cómo puedo hacer esto?

Se nos dan probabilidades [matemáticas] P (A) = P (B) = P (C) \ geq 2/3 [/ matemáticas] y sabemos que [matemáticas] P (A \ cap B \ cap C) = 0 [/ mates]. ¿Qué podemos decir sobre [matemáticas] P (A) [/ matemáticas]?

¿Cuál es la complejidad computacional de un problema de clasificación? ¿Es P o NP?