1 / 10

Tratabilidad y NP-Completitud

Tratabilidad y NP-Completitud. Clases de problemas. Muchos problemas se resuelven con algoritmos polinómicos (O(n k )): problemas tratables Hay problemas que no se pueden resolver: problema de la parada.

Download Presentation

Tratabilidad y NP-Completitud

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tratabilidad y NP-Completitud

  2. Clases de problemas • Muchos problemas se resuelven con algoritmos polinómicos (O(nk)): problemas tratables • Hay problemas que no se pueden resolver: problema de la parada. • Hay problemas que no se pueden resolver en tiempo polinónico ((nk)): problemas intratables Antonio Fernández, GSyC

  3. Problema de la parada • No existe ningún algoritmo que diga si un programa va a parar en tiempo finito con una entrada dada: • Supongamos que hay una función H(P,I) que lo resuelve. • Construimos D(P): If H(P,P) then loop forever else stop • ¿Qué debe hacer D(D)? Antonio Fernández, GSyC

  4. Problemas NP-completos • Hay una clase de problemas que no se sabe si son tratables: problemas NP-completos • Nadie ha encontrado algoritmos polinómicos para ninguno de ellos. • Algunos muy parecidos a problemas tratables: • Ciclos eulerianos y hamiltonianos. • Satisfabilidad de 2-FNC y 3-FNC Antonio Fernández, GSyC

  5. Clases P, NP y NPC • La clase P contiene todos los problemas tratables. • La clase NP contiene todos los problemas que se pueden “verificar” en tiempo polinómico. Claramente PNP. • La clase NPC contiene todos los problemas NP-completos Antonio Fernández, GSyC

  6. Definicion NPC • Un problema es NP-Completo si: • Pertenece a NP. • Es tan “duro” como cualquier otro problema en NP (es NP-duro). • Un problema es NP-duro si el que haya un algoritmo polimómico para él implica que lo hay para todos los problemas en NP. Antonio Fernández, GSyC

  7. P=NP? • Observa que si hubiera un algoritmo polinómico para cualquier problema en NPC entonces P=NP. • La hipótesis más aceptada es que P≠NP. • En general, si os encontráis un problema NPC mejor buscáis alternativas (simplificaciones, aproximaciones, etc.). Antonio Fernández, GSyC

  8. Demostraciones de NPC • Se suelen usar problemas de decisión, cuya respuesta en SI o NO. • Se demuestra que el problema están en NP. • Se “reduce” un problema que se sabe está en NPC a este problema. Antonio Fernández, GSyC

  9. Reducción polinómica • Demuestra que un problema en NP-duro. • Se parte de un problema p conocido en NPC. • Se construye un algoritmo polinómico que transforma p en nuestro problema. • Se concluye que si podemos resolver el nuestro en tiempo polinómico, p se resuelve en tiempo polinómico. Antonio Fernández, GSyC

  10. Consejo • Si te encuentras con un problema que no eres capaz de resolver de manera eficiente, sospecha que puede ser NP-duro. • Intenta demostrar que lo es. • Si lo es, busca alternativas, porque mucha gente inteligente ha intentado diseñar algoritmos eficientes y no lo ha logrado. Antonio Fernández, GSyC

More Related