IntratabilidaD

Mateo Sanabria Ardila
ISIS1105: Diseño y análisis de algoritmos

Problemas NP

  • Longest simple path
  • Hamiltonian cycle
  • 3-CNF satisfiability

Problemas NP

  • Longest simple path
  • Hamiltonian cycle
  • 3-CNF satisfiability

Problemas NP

  • Longest simple path
  • Hamiltonian cycle
  • 3-CNF satisfiability
(x_1 \vee x_2 \vee x_3) \wedge \neg(x_1 \wedge x_2 \wedge x_3)

Euler tour

Dado un grafo conectado dirigido G, es un ciclo que recorre cada arco de G exactamente una sola vez, se puede visitar cada nodo mas de una vez.

Hamiltonian cycle

Dado un grafo dirigido G, es un ciclo simple que contiene todo los nodos de G.

P

NP

Shortest simple path

Longest simple path

P

NP

Objetivo

Entender a porque si cualquier Problema NPC puede ser resuelto en tiempo polinomial entonces cualquier problema NP tiene un algoritmo que corre en tiempo polinomial
La teoría de NPC se restringe a problemas de decision: problemas que tienen solución 1/0. 

Dado un algoritmo A que solucione un problema P se distinguen   
  • El lenguaje aceptado como el conjunto de las preguntas del problema (p) tales que: A(p) = 1 
  • Un algoritmo rechaza una pregunta cuando: A(p) = 0
  • Un lenguaje L es decido por un algoritmo A si cada pregunta en L no es rechazada por A. 
  • Un lenguaje L es aceptado en tiempo polinomial por un algoritmo A si:
    
    • Si L es aceptado por A
    • Si existe una constante k tal que para cualquier pregunta (en L) de tamaño n (|p|=n) el algoritmo A acepta a p en tiempo O(n^k)
Un problema P es decidido en tiempo polinomial por un algoritmo A si existe una constante k tal que para cualquier pregunta de tamaño n (|p| = n)  A decide en tiempo O(n^k) si la pregunta es aceptada o rechazada. 
La clase de complejidad P es el conjunto de problemas que pueden ser decididos (en una máquina de Turing) en tiempo polinomial

Clases de complejidad (P)

Suponga que se le da un Grafo G (pregunta del problema) y una lista de vertices que componen el camino Hamiltoniano del grafo G, certificado.
  • Es mas facial este problema que el problema original: Decidir si G tiene un camino Hamiltoniano. Why?
  • Cual es la complejidad de dicho algoritmo?

Hamiltonian cycle

Un algoritmo A de verificación es una algoritmo de dos parámetros. Donde uno de los parámetros es una pregunta del problema y el segundo es un certificado del problema. 

Un algoritmo A verifica una pregunta p si existe un certificado c tal que: A(p,c) = 1. 

Un lenguaje L es verificado por un algoritmo A sí
(\forall_{p \in L} : (\exists c: A(p,c)=1))
La clase de complejidad NP es el conjunto de problemas que pueden ser verificados en tiempo polinomial. Es decir un problema P pertenece a NP sii existe un algoritmo de dos parámetros A tal que verifique los problemas de P en tiempo O(n^k) para algun k.

Clases de complejidad (NP)

Se dice que un problema P1 problema es reducible en tiempo polinomial a un problema P2

reducciones

P_1 \leq_{\mathbb{P}} P_2
si existe una función f calculable en tiempo polinomial tal que:
p \in P_1 \equiv f(p) \in P_2
f es la función de reducción y cualquier algoritmo F que compute f en tiempo polinomial es es llamado algoritmo de reducción
p \in P_1 \equiv f(p) \in P_2
L_2 \in P \ \wedge \ L_1 \leq_P L_2 \rightarrow L_1 \in P
Un problema X es NP-Completo si:

Clases de complejidad (NPC)

1. \ \ X\in NP \\ 2. \ \ (\forall_{X' \in NP}: X' \leq_p X )
NP-Dificil

Problemas NP-DIFICILES que no sean NPC 

Problemas NP-DIFICILES que no sean NPC 

  • Halting problem (?)
  • Tower of Hanoi problem (?)
  • The traveling salesman optimization problem (?)
Si cualquier problema NPC es soluble en tiempo polinomial entonces: P = NP 

A little bit of history 

circuit sat

Cuando se pruebe que existe UN problema   NP-completo se pueden usar reducciones para probar otros problemas NP-completos.

circuit sat

Los circuitos booleanos están construidos por elementos booleanos conectados por cables.

Para circuit-sat se definen tres operadores booleanos (compuertas logicas) : NOT, AND y OR. Las compuertas AND y OR se generalizan para tomar mas de un parámetro de entrada:
  • AND : Si recibe 1 en todas sus entradas la salida es 1, e.o.c la salida es 0.
  • OR  : Si recibe 0 en todas sus entradas la salida es 0, e.o.c la salida es 1.

circuit sat

Formalización: Sea G = (V,E) un grafo directo con un nodo por cada compuerta del circuito y k conecciones con representando los k cables de salida de cada compuerta. Note que G no debe tener ciclos!

Circuit-Sat pertence a NP

  • Un programa es guardado en memoria como una secuencia de instrucciones.
  • Una instrucción codifica las operaciones sobre memoria que deben ser realizadas y en donde se guarda el resultado en memoria.
  • En cualquier punto de ejecución de un programa la memoria mantiene el estado de la computación.  
  • Un estado particular de computación se define como una configuración. 

Circuit-Sat pertence a NP-hard

Para cualquier problema L de NP, se debe describir una  función f tal que:
p \in L \ \ sii \ \ f(x) \in CIRCUIT-SAT
  • Como L es NP existe un algoritmo A que verifica a L en tiempo polinomial.
  • La idea de la prueba es representar la computación de A como un secuencia de computaciones.  
L' \in NPC \wedge L' \leq_P L \rightarrow L \in NPH
Para que sirve saber esto?
L' \in NPC \wedge L' \leq_P L \rightarrow L \in NPH
Cuando se reduce L' a L implicitamente se esta reduciendo todo problema en NP a L. Es decir se tiene un metodo para probar que L es NP-Completo:  
  • Probar que L es NP
  • Tomar un problema L' que se sabe que es NPC y econtras una reduccion polinimial de L' -> L. (Cualquier instacia de L' se puede llevar a una instancia de L en timpo polinomial manteniendo la decibilidad )

SAT

Una instancia de, SAT es una formula boolena compuesta de:
  1. n variables booleanas x1,x2,...xn
  2. m conectores booleanos, cualquier funcion booleana de uno o dos paremetros: AND,OR,NOT,->,<->.
  3. Parentesis
SAT = \{ <\phi>: \textrm{es una formula satisfacible} \}

SAT es NPC

\textrm{Cirtcuit-SAT} \leq_p \textrm{SAT}

3-CNF

  • Un literal en una formula booleana es una aparición de una variable o su negación
  • Una formula booleana es CNF si se puede expresar como un AND de clausulas, donde cana una de las clausulas es un OR de uno o mas literales.
  • Una formula booleana es 3-CNF si cada clausula tie exactamente tres literales distintos
EL problema 3-CNF-SAT se pregunta si una formula 3-CNF es satisfacible

3-CNF es NPC

\textrm{SAT} \leq_p \textrm{3-CNF}

Intratabilidad

By Mateo Sanabria Ardila

Intratabilidad

Intratabilidad

  • 110