IntratabilidaD

In a nutshell

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

Un problema X  se define como un conjunto de parejas (p,r), donde p es una pregunta y r una respuesta. PX  es el conjunto de preguntas de X.
P_X = \{\ p \ | \ (p,r) \in X \ \}
Clasificación de problemas en base al carácter de las preguntas y las respuestas:
  • Funcional: Para cada p en Px existe un único r tal que (p,r) está en X.
  • Decision: Las únicas respuestas son True o False
  • Conteo: Las respuestas son números naturales
  • Busqueda: las preguntas plantean búsquedas en espacio determinados.

 

Un algoritmo A soluciona un problema X sii
(\forall p \in P_X \ | \ A(p) = r \ : \ (p,r) \in X )

ORDEN DE COMPLEJIDAD

Ejemplo de problemas

  • Verificación de primalidad: Dado un entero positivo n, decidir si n es primo o no. 
  • Coloración de grafos: Dados un grafo G y un entero positivo k, decidir si G es k-coloreable, i.e, si se puede colorear con k o menos colores.
  • Clique: Dado un grafo G, con n vértices, y un número natural k, decidir si existe un subgrafo completo de G, con k vértices
  • ...
Problemas 'dificiles'
No se han encontrado algoritmos polinomiales para resolverlos, pero tampoco se ha podido probar que no los  haya! 
Existen algoritmos que  dan respuesta 
-> Pero en tiempo exponencial 
Existen algoritmos que dan 'respuesta' en tiempo polinomial -> Pero es una respuesta aproximada o 'poco confiable'

NP-completitud: overview

Los problemas NP-Completos se pueden caracterizar, informalmente, como: 
  • Si se encuentra un algoritmo que resuelva un problema NP-Completo en tiempo polinomial entonces se tiene un algoritmo para resolver cualquier problema NP-completo.
  • Si se prueba que un problema NP-Completo no se puede solucionar en tiempo polinomial. Entonces no existe solución polinomial para cualquier problem NP-Completo.

DECISIÓN vs

Optimización-Búsqueda

Normalmente la intratabilidad está relacionada con problemas de decisión. Sin embargo,para algunos problemas es más 'interesante' conocer si se tiene la respuesta correcta.
Para algunos problemas es lo mismo!

problema del viajero

Dadas n ciudades en un plano, encontrar la longitud minima de tour (camino cerrado que no repite nodos)  que visita las n ciudades  
\small m = (\uparrow _{u,v} | u,v \in ciudades : dist(u,v))
  • Cualquier tour está acotado superiormente por n*m
  • Se tiene un algoritmo que decide AV 
    con el grafo G y la cota d:
     
          AV-decision-problem(G,d) 
def AV-optimization-problem(G,d):
  _min, _max = 0, n*m
  while max-min >= 1:
    d = (max + min) // 2
    if AV-decision-problem(G,d):
      max = d
    else:
      min = d+1
  return d
    
Este algoritmo resuelve el problema de optimización del problema del viajero
Luego si el problema de decisión se logra solucionar en tiempo polinomial el problema de optimización también!  

Why!?

SPOILER

Si los problema de decisión y optimización  se logran solucionar en tiempo polinomial el problema de busqueda también!

Clases de complejidad

Clase P: Está compuesta de todos los problemas de decisión que tienen solución sobre una MTD, cuyo tiempo de ejecución es de orden polinomial.
  • Recubrimiento de arcos (MST)
  • Camino de Euler
  • Solución ecuación diofántica
  • ...

reducciones

Supóngase que un problema X se puede resolver en tiempo polinomial en una MTO que usa un oráculo que soluciona un problema Y. 
Si Y es soluble en una MTD en tiempo polinomial, entonces X también debe ser soluble en una MTD en tiempo polinomial

turing-reduccion

Una reducción de X a Y es una MTO que resuelve X, usando un oraculo para Y
X es reducible a Y

turing-reduccion

Si X y Y son problemas de decisión una transformación de X a Y es una función, calculable en una MTD, tal que 
\small (x,r) \in X \equiv (f(x),r') \in Y
Una transformación corresponde a una reducción en la que el oráculo solo es consultado una vez, y su respuesta debe coincidir con la respuesta del primer problema
\small X \leq_R Y := \text{Hay una reduccion en } R \text{ de } X \text{ a } Y
Sean X,Y problemas C una clase de  problemas y R una clase de reducciones
Sean X,Y problemas C una clase de  problemas y R una clase de reducciones, R es C-compatible si para cualquier par de problemas X,Y se cumple:
X \leq_R Y \ \wedge \ Y \in C \rightarrow X \in C
Sean X,Y,Z problemas y R una clase de reducciones, R es transitiva si para cualquier X,Y,Z se cumple:
X \leq_R Y \ \wedge \ Y \leq_R Z \rightarrow X \leq_R Z
La clase de las reducciones polinomiales , son las que obedecen cotas de tiempo polinomiales. En términos de la definición, la MTO resuelve X en tiempo polinomial.

Las reducciones polinomiales son transitivas y, además, P-compatibles.

completitud

\small X \ \text{es R-dificil para C := } \forall_{y \in C} \ Y \leq_R X

Sean X un problema, C una clase de problemas y R una clase de reducciones

\small X \ \text{es R-completo para C := } \\ X \ \text{es R-dificil para C} \wedge X\in C

Clases de complejidad

Clase NP: A la clase NP pertenecen los problemas de decisión  que tienen una solución sobre una MTND, cuyo tiempo de ejecución es de orden polinomial.
Si una MTND se enfrenta en dos ocasiones a una misma configuración, la secuencia de operaciones efectuadas puede diferir de una a otra ejecución
Un problema X es NP-completo si pertenece a la clase NP y cualquier problema Y de NP es reducible a X.
Si llamamos RP a la clase de las reducciones polinomiales un problema es NP-completo si es RP-completo para NP. 

Intratabilidad

By Mateo Sanabria Ardila

Intratabilidad

Intratabilidad

  • 304