Está en la página 1de 30

Análisis de algoritmos

P , N P , ¾P ̸= N P ?

Leonardo Flórez-Valencia

Facultad de Ingeniería
Departamento de Ingeniería de Sistemas

Semana 12

L. Flórez-Valencia Análisis de algoritmos


Denición de un problema
Problema abstracto
Un problema abstracto Q se dene como:
I (Q) S

donde I es un conjunto de instancias (entradas) y S es un conjunto


de soluciones (salidas). El problema abstracto representa la relación
entre esos dos conjuntos.

L. Flórez-Valencia Análisis de algoritmos


Denición de un problema
Problema abstracto
Un problema abstracto Q se dene como:
I (Q) S

donde I es un conjunto de instancias (entradas) y S es un conjunto


de soluciones (salidas). El problema abstracto representa la relación
entre esos dos conjuntos.
¾Qué tipos de problemas abstractos existen?
... Que se puedan pensar en resolver con un computador.

L. Flórez-Valencia Análisis de algoritmos


Denición de un problema
Problema abstracto
Un problema abstracto Q se dene como:
I (Q) S

donde I es un conjunto de instancias (entradas) y S es un conjunto


de soluciones (salidas). El problema abstracto representa la relación
entre esos dos conjuntos.
¾Qué tipos de problemas abstractos existen?
... Que se puedan pensar en resolver con un computador.
Cálculo: I ←→ f (I)
Optimización: I → max / min {I}
Σ Σ
Decisión:I → {0, 1}

L. Flórez-Valencia Análisis de algoritmos


Clases de problemas

¾Cálculo, optimización, decisión?

L. Flórez-Valencia Análisis de algoritmos


Clases de problemas

¾Cálculo, optimización, decisión?


½Son tipos de problemas!

L. Flórez-Valencia Análisis de algoritmos


Clases de problemas

¾Cálculo, optimización, decisión?


½Son tipos de problemas!
¾Qué tan difíciles son de programar (echar código)?
¾Qué tan complejos son?

L. Flórez-Valencia Análisis de algoritmos


Clases de problemas

¾Cálculo, optimización, decisión?


½Son tipos de problemas!
¾Qué tan difíciles son de programar (echar código)?
¾Qué tan complejos son?
≤ O nk , para la mayoría de algoritmos que hemos discutido


hasta el momento.
Informar secuencias de Fibonacci y similares son O (kn ).

L. Flórez-Valencia Análisis de algoritmos


Un ejemplo: ciclos de Hamilton

L. Flórez-Valencia Análisis de algoritmos


Un ejemplo: ciclos de Hamilton

¾Fuerza bruta?

L. Flórez-Valencia Análisis de algoritmos


Un ejemplo: ciclos de Hamilton

¾Fuerza bruta?
O (n!), ¾es polinomial?
¾Reducción de la complejidad?

L. Flórez-Valencia Análisis de algoritmos


Un ejemplo: ciclos de Hamilton

¾Fuerza bruta?
O (n!), ¾es polinomial?
¾Reducción de la complejidad?
¾Cálculo?
¾Optimización?

L. Flórez-Valencia Análisis de algoritmos


Un ejemplo: ciclos de Hamilton

¾Fuerza bruta?
O (n!), ¾es polinomial?
¾Reducción de la complejidad?
¾Cálculo?
¾Optimización?
¾Decisión?

L. Flórez-Valencia Análisis de algoritmos


Un ejemplo: ciclos de Hamilton

¾Fuerza bruta?
O (n!), ¾es polinomial?
¾Reducción de la complejidad?
¾Cálculo?
¾Optimización?
¾Decisión?

Es un problema de decisión
La pregunta que motiva el problema es trivial (i.e. losócamente,
tiene un si o un no como respuesta), pero la relación (el
problema) entre las instancias y sus soluciones no lo es.

L. Flórez-Valencia Análisis de algoritmos


Intuiciones de tratabilidad
Un problema de cálculo depende de la buena formulación
de la ecuación a calcular.
Un problema de optimización depende de la estructura
óptima
Programación dinámica.
Algoritmos voraces.
Programación lineal.
Bajando (o subiendo) por el gradiente.
Montecarlo.
Bayes.
...
Un problema de decisión depende de...

L. Flórez-Valencia Análisis de algoritmos


Intuiciones de tratabilidad
Un problema de cálculo depende de la buena formulación
de la ecuación a calcular.
Un problema de optimización depende de la estructura
óptima
Programación dinámica.
Algoritmos voraces.
Programación lineal.
Bajando (o subiendo) por el gradiente.
Montecarlo.
Bayes.
...
Un problema de decisión depende de...
¾Qué tan fácil se puede decidir si una decisión es correcta?
¾Qué tan parecido es a un problema de cálculo o de
optimización?

L. Flórez-Valencia Análisis de algoritmos


Intuiciones de tratabilidad
Un problema de cálculo depende de la buena formulación
de la ecuación a calcular.
Un problema de optimización depende de la estructura
óptima
Programación dinámica.
Algoritmos voraces.
Programación lineal.
Bajando (o subiendo) por el gradiente.
Montecarlo.
Bayes.
...
Un problema de decisión depende de...
¾Qué tan fácil se puede decidir si una decisión es correcta?
¾Qué tan parecido es a un problema de cálculo o de
optimización?
Respuesta: DE AMBAS.

L. Flórez-Valencia Análisis de algoritmos


Clases de problemas
Problemas P : Algoritmos de tiempo polinomial.
Problemas N P : Algoritmos de tiempo polinomial
no-determinístico, vericables en P .
Problemas N P -completos: un problema que es tan difícil
como cualquier problema en N P .
Es un hecho: P ⊂ N P .

L. Flórez-Valencia Análisis de algoritmos


Clases de problemas
Problemas P : Algoritmos de tiempo polinomial.
Problemas N P : Algoritmos de tiempo polinomial
no-determinístico, vericables en P .
Problemas N P -completos: un problema que es tan difícil
como cualquier problema en N P .
Es un hecho: P ⊂ N P .
Es un tema de investigación activo: P ⊆ N P
Tiene implicaciones:
Vericación en tiempo polinomial.
Optimización vs decisión.
Reductibilidad de problemas.
Existencia de un primer problema N P .

L. Flórez-Valencia Análisis de algoritmos


Vericación en tiempo polinomial

¾Qué se necesita para saber si es


una decisión correcta?

L. Flórez-Valencia Análisis de algoritmos


Vericación en tiempo polinomial

¾Qué se necesita para saber si es


una decisión correcta?
I ≡ G = {V, E}
S ≡ P = ⟨pi : pi ∈ V ⟩
Un algoritmo A que decida si la
solución S satisface el problema
Q, dada la instancia I .

L. Flórez-Valencia Análisis de algoritmos


Optimización vs. decisión
(y reductibilidad)

Ejemplo: Problema Camino_Mas_Corto (G, u, v) vs.


Hay_Camino (G, u, v, k)

¾Se puede expresar un problema en términos del otro?

Tomado de: http://stackoverflow.com/questions/10254542/


1

dijkstras-algorithm-does-not-generate-shortest-path
L. Flórez-Valencia Análisis de algoritmos
Optimización vs. decisión
(y reductibilidad)

Ejemplo: Problema Camino_Mas_Corto (G, u, v) vs.


Hay_Camino (G, u, v, k)

¾Se puede expresar un problema en términos del otro?


Hay_Camino (G, u, v, k) se puede expresar en terminos de
Camino_Mas_Corto (G, u, v): entonces, el problema de
decisión Hay_Camino (G, u, v, k) es P .

Tomado de: http://stackoverflow.com/questions/10254542/


1

dijkstras-algorithm-does-not-generate-shortest-path
L. Flórez-Valencia Análisis de algoritmos
Ejemplos de problemas N P

Caminos simples más largos en un grafo.


Ciclos hamiltonianos.
Circuitos lógicos satisfacibles.
Cliques.
Covertura de vértices en un grafo.
Suma de subcojuntos.
k-coloreo.
...

L. Flórez-Valencia Análisis de algoritmos


Problema del agente viajero

Agente viajero
Calcular un ciclo de Hamilton a partir de un grafo G = ⟨V, E⟩.
Este problema está inspirado en la pregunta logística: ¾Cómo
proponer una ruta a un agente viajero que lo lleve por todas las
ciudades (vértices) una única vez?

L. Flórez-Valencia Análisis de algoritmos


Problema del agente viajero

Agente viajero
Calcular un ciclo de Hamilton a partir de un grafo G = ⟨V, E⟩.
Este problema está inspirado en la pregunta logística: ¾Cómo
proponer una ruta a un agente viajero que lo lleve por todas las
ciudades (vértices) una única vez?

Para grafos en general, es un problema NP-completo


¾Es un problema de decisión?
¾Cuántas combinaciones debe explorar un algoritmo de fuerza
bruta?
¾Una solución dada se puede vericar en P?

L. Flórez-Valencia Análisis de algoritmos


Problema del agente viajero
En la práctica:
Las situaciones de viaje pueden ser modeladas con grafos
no-dirigidos fuertemente conexos (o completos)
Los costos c (u, v), asociados a las aristas ⟨u, v⟩ ∈ E , cumplen
con la desigualdad del triángulo:
c (u, v) ≤ c (u, w) + c (w, v)

L. Flórez-Valencia Análisis de algoritmos


Problema del agente viajero
En la práctica:
Las situaciones de viaje pueden ser modeladas con grafos
no-dirigidos fuertemente conexos (o completos)
Los costos c (u, v), asociados a las aristas ⟨u, v⟩ ∈ E , cumplen
con la desigualdad del triángulo:
c (u, v) ≤ c (u, w) + c (w, v)

Pero sigue siendo un problema NP-completo


½Con una estructura particular!

L. Flórez-Valencia Análisis de algoritmos


Algoritmo de 2-aproximación

Approx_TSP(G ≡ ⟨V, E⟩ , c)
1: procedure
2: r ← Random (V )
3: MST ← ComputeMST (G, c, r)
4: H ← PreOrder (MST )
5: return H

L. Flórez-Valencia Análisis de algoritmos


Algoritmo de 2-aproximación

Approx_TSP(G ≡ ⟨V, E⟩ , c)
1: procedure
2: r ← Random (V )
3: MST ← ComputeMST (G, c, r)
4: H ← PreOrder (MST )
5: return H

L. Flórez-Valencia Análisis de algoritmos

También podría gustarte