Cómo demostrar que el problema del vendedor de viajes es NP-hard

¿Cómo demuestras que un problema es NP-hard? Reduce otro problema al problema que desea probar la dureza NP. Este proceso se llama reducción .

En una reducción , tomamos un problema que sabemos que es NP-duro, y demostramos que cualquier instancia de ese problema puede escribirse como una instancia del problema que deseamos probar la dureza de NP.

Sin embargo, tenga en cuenta que el TSP es NP-competir, es decir, pertenecer a los problemas NP-hard “más fáciles”. O bien, se podría decir que es un problema al mismo tiempo NP y NP-hard. Vale la pena señalar que todos los problemas de NP completo también son “equivalentes”.

Entonces, primero, lo reduce para probar la dureza NP, luego muestra que es NP. Para demostrar que es un problema de NP, simplemente tome una solución y pregúntese: “Oye, si tengo una solución óptima, ¿puedo estar seguro de que es una solución óptima?”. En otros términos, ¿puede saber si una solución es óptima o no, simplemente mirándola (o realizando algunos cálculos rápidos. “Rápido” aquí significa que su algoritmo para la verificación debe ejecutarse en tiempo polinómico).

Ahora, si desea probar que el TSP es NP completo (implica la dureza NP), puede echar un vistazo a esta pregunta ¿Por qué el problema del vendedor ambulante NP está completo? La respuesta dada por Luke Benning es detallada y bien explicada.

EDITAR: Olvidé mencionar en el cuarto párrafo que si no puede saber si la solución dada es óptima o no, entonces es NP.

Reducir del ciclo hamiltoniano. Puede probarlo de la manera que se proporciona aquí http://stanford.edu/~rezab/discr … (parte inferior de la página 1).

Las dos ideas clave en la reducción son asignar las aristas en la instancia del Ciclo Hamiltoniano con peso 1, luego agregar aristas con peso suficientemente grande donde no exista arista en el gráfico original (llamada terminación de arista , esto completa la gráfica). Su prueba utiliza que estos bordes tienen un peso 2, lo que debería funcionar como la idea clave es demostrar que hay un Ciclo Hamiltoniano si y solo si hay un recorrido TSP con un costo como máximo el número de vértices.

No es muy difícil ver que ninguna instancia habrá costado más que el número de vértices (en el gráfico original) porque el costo de cualquier borde que no esté en el gráfico original es 2, y dado que el recorrido TSP pasa por todos los vértices, la suma debe exceder el número original de vértices (al menos en 1). Es decir, debe usar un borde que no está en el gráfico original. Si existiera un ciclo hamiltoniano en el gráfico original, usaría aristas con peso 1 solamente.

Una cosa que debo tener en cuenta es que la versión de decisión de TSP es NP-complete.