12 Completitud NP - eafranco.com

21
Tema 12: Completitud NP 1 Análisis de algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Transcript of 12 Completitud NP - eafranco.com

Page 1: 12 Completitud NP - eafranco.com

Tema 12: Completitud NP

1

Análisis de algoritmos

M. en C. Edgardo Adrián Franco Martínez http://[email protected]@edfrancom edgardoadrianfrancom

Page 2: 12 Completitud NP - eafranco.com

• Introducción

• P y NP

• La clase P (Polinómicamente acotado)

• La clase NP (No determinista Polinómicamenteacotado)

• P ⊆ NP

• P vs NP

• NP-completo

• Problemas NP

Contenido

2

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 3: 12 Completitud NP - eafranco.com

Introducción

3

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez• La mayoría de los algoritmos revisados hasta el momentono rebasan un orden de complejidad temporal 𝑂(𝑛3).

• Podemos considerar que todos los algoritmos que sonmenores ha este orden tienen un tiempo de ejecuciónrelativamente corto.

.

Page 4: 12 Completitud NP - eafranco.com

4

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• Es posible observar que los algoritmos cuyacomplejidad se describe con funciones polinómicassimples se pueden ejecutar con entradasrelativamente grandes en un tiempo razonable.

• Si la complejidad es 2𝑛, el algoritmo de nada sirve amenos que las entradas sean muy pequeñas.

• Existen problemas cuya complejidad podría describirsecon funciones exponenciales, problemas cuyaresolución incluso con los mejores algoritmosconocidos requeriría muchos años o siglos de tiempode computadora con entradas moderadamentegrandes. Por lo que se requiere distinguir de estosproblemas a los problemas dóciles (es decir, “no tandifíciles”) y los renuentes (es decir, “difíciles” o muytardados).

Page 5: 12 Completitud NP - eafranco.com

5

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• También existen una clase de problemas que tienenuna propiedad irritante: ni siquiera sabemos si sepueden resolver de manera eficiente o no; no se handescubierto algoritmos razonablemente rápidos paraestos problemas, pero tampoco se ha podidodemostrar que los problemas requieren muchotiempo. Dado que muchos de estos problemas sonproblemas de optimización que se presentan confrecuencia en aplicaciones, la falta de algoritmoseficientes tiene importancia real.

• .

Page 6: 12 Completitud NP - eafranco.com

P y NP

6

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez• Los problemas computacionales los podemos dividir en dosconjuntos• Tratables: Problemas para los cuales existe un algoritmo de

complejidad polinomial.

• Intratables: Problemas para los que no se conoce ningúnalgoritmo de complejidad polinomial.

• A los problemas tratables se les conoce también comoproblemas P (de orden polinomial). Asimismo a losproblemas no tratables se les llama también NP (de ordenno determinístico polinomial).

• Ejemplos de problemas NP• Agente Viajero• Caminos Hamiltonianos• Caminos Eulerianos

Page 7: 12 Completitud NP - eafranco.com

La clase P (Polinómicamente acotado)

7

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez• Decimos que un algoritmo está polinómicamenteacotado si su complejidad de peor caso estáacotada por una función polinómica del tamañode las entradas (es decir, si existe un polinomio ptal que, para toda entrada de tamaño n, elalgoritmo termine después de cuando más p(n)pasos).

• Decimos que un problema está polinómicamenteacotado si existe un algoritmo polinómicamenteacotado para resolverlo.

• P es la clase de problemas de decisión que estánpolinómicamente acotados.

Page 8: 12 Completitud NP - eafranco.com

8

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• Podría parecer un tanto extravagante utilizarla existencia de una cota de tiempopolinómica como criterio para definir la clasede problemas más o menos razonables: lospolinomios pueden ser muy grandes. Noobstante, hay varias razones de peso parahacerlo.

• Si bien no es verdad que todos los problemasen P tengan un algoritmo de eficienciaaceptable, sí podemos asegurar que, si unproblema no está en P, será extremadamentecostoso y probablemente imposible de resolveren la práctica.

Page 9: 12 Completitud NP - eafranco.com

9

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• Un motivo para usar una cota polinómica paradefinir P es que los polinomios tienenpropiedades de “cierre”. Podríamos obtener unalgoritmo para un problema complejocombinando varios algoritmos para problemasmás sencillos. La complejidad del algoritmocompuesto podría estar acotada por la suma,multiplicación y composición de lascomplejidades de sus algoritmos componentes.

• Puesto que los polinomios están cerrados bajoestas operaciones, cualquier algoritmo que seconstruya de diversas formas naturales a partirde varios algoritmos polinómicamente acotadostambién estará polinómicamente acotado.

Page 10: 12 Completitud NP - eafranco.com

10

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• Un motivo más para emplear una cotapolinómica es que hace a P independiente delmodelo de cómputo formal específico que seuse.

• Los modelos difieren en cuanto al tipo deoperaciones permitidas, los recursos de memoriadisponibles y los costos asignados a diferentesoperaciones.

• Un problema que requiere Θ(f(n)) pasos con unmodelo podría requerir más de Θ(f(n)) pasos conotro, pero en el caso de prácticamente todos losmodelos realistas, si un problema está acotadopolinómicamente con uno, estará acotadopolinómicamente con los demás.

Page 11: 12 Completitud NP - eafranco.com

La clase NP (No determinista Polinómicamente acotado)

11

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez• Es el conjunto de problemas que pueden serresueltos en tiempo polinómico por una máquinade Turing no determinista.

• NP es la clase de problemas de decisión para lacual existe un algoritmo no deterministapolinómicamente acotado.

• NP es la clase de problemas de decisión para losque una solución propuesta dada con unaentrada dada se puede verificar rápidamente (entiempo polinómico) para determinar si realmentees una solución (es decir, si satisface losrequisitos del problema)

Page 12: 12 Completitud NP - eafranco.com

12

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• La importancia de esta clase de problemas dedecisión es que contiene muchos problemas debúsqueda y de optimización para los que sedesea saber si existe una cierta solución o siexiste una mejor solución que las conocidas.

• En esta clase están el problema del agenteviajero donde se quiere saber si existe una rutaóptima que pasa por todos los nodos en uncierto grafo y el problema de satisfacibilidadbooleana en donde se desea saber si una ciertafórmula de lógica proposicional puede ser ciertapara algún conjunto de valores booleanos paralas variables.

Page 13: 12 Completitud NP - eafranco.com

13

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• Dada su importancia, se han hecho muchosesfuerzos para encontrar algoritmos que decidanalgún problema de NP en tiempo polinómico. Sinembargo, pareciera que para algunos problemas deNP (los del conjunto NP-completo) no es posibleencontrar un algoritmo mejor que simplementerealizar una búsqueda exhaustiva.

Page 14: 12 Completitud NP - eafranco.com

P ⊆NP

14

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez• Un algoritmo determinista para resolver un problema dedecisión es, con una modificación menor, un caso especialde un algoritmo no determinista. Si A es un algoritmodeterminista para resolver un problema de decisión, bastacon hacer que A sea un algoritmo no determinista.

• La pregunta importante es, ¿P = NP o es P un subconjuntopropio de NP? Dicho de otro modo, ¿es el nodeterminismo más potente que el determinismo en elsentido de que algunos problemas se pueden resolver entiempo polinómico con un “conjeturador” no deterministapero no se pueden resolver en tiempo polinómico con unalgoritmo determinista?.

• Ver en http://www.claymath.org/prizeproblems/index.htmcómo ganar un millón de dólares resolviendo la pregunta ¿P vs NP?

Page 15: 12 Completitud NP - eafranco.com

P vs NP

15

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ezCómo resolver la pregunta ¿P vs NP?

• Para intentar P ≠ NP:• Demostrar que hay un problema que está en NP

pero no en P.

• Para intentar P=NP:• Demostrar que todos los problemas de NP se pueden

resolver en tiempo polinómico, así que NP ⊆ P.

Con los NP-completos, esto se simplifica.

• Para intentar P=NP:• Demostrar que hay un problema NP-completo que se

puede resolver en tiempo polinómico.

Page 16: 12 Completitud NP - eafranco.com

16

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• P ≠ NP es equivalente a “existe un problema NP-completo que no está en P”

• P = NP es equivalente a “existe un problema NP-completo que está en P”

• Existe una larga lista de NP-completos (ver GareyJohnson).

• Añadir un problema a la vista quiere decir que elproblema es tan difícil como cualquiera de los que yaestán (puedes decirle al jefe “No puedo encontrar unalgoritmo eficiente, pero tampoco pueden un montón decientíficos famosos”).

Page 17: 12 Completitud NP - eafranco.com

Convención de nombres que incluyen las siglas NP

17

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Los nombres de familias de problemas con las siglas NPes algo confusa. Los problemas NP-hard no son todosNP, a pesar de que estas siglas aparecen es el nombre dela familia. Sin embargo, los nombres están actualmentemuy arraigados y plantear un cambio de nomenclaturaresulta poco realista. Por otra parte, las familias deproblemas con las siglas NP son todas definidastomando como referencia la familia NP:

• NP-completo — Problemas que son completos en NP,es decir, los más difíciles de resolver en NP;

• NP-hard — (NP-difícil) quiere decir al menos tancomplejo como NP (pero no necesariamente en NP);

• NP-easy — (NP-fácil) quiere decir como mucho tandifícil como NP (pero no necesariamente en NP);

• NP-equivalente — significa igualmente difícil que NP,(pero no necesariamente en NP).

Page 18: 12 Completitud NP - eafranco.com

NP-completo

18

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• La clase de complejidad NP-completo es el subconjunto delos problemas de decisión en NP tal que todo problemaen NP se puede reducir en cada uno de los problemas deNP-completo. Se puede decir que los problemas de NP-completo son los problemas más difíciles de NP y muyprobablemente no formen parte de la clase decomplejidad P.

• La razón es que de tenerse una solución polinómica paraun problema NP-completo, todos los problemas de NPtendrían también una solución en tiempo polinómico. Si sedemostrase que un problema NP-completo, llamémoslo A,no se pudiese resolver en tiempo polinómico, el resto delos problemas NP-completos tampoco se podrían resolveren tiempo polinómico. Esto se debe a que si uno de losproblemas NP-completos distintos de A, digamos X, sepudiese resolver en tiempo polinómico, entonces A sepodría resolver en tiempo polinómico, por definición deNP-completo.

Page 19: 12 Completitud NP - eafranco.com

19

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

NP-Completo en otras palabras

• Supón que tu jefe te pide que escribas unalgoritmo eficiente para un problemaextremadamente importante para tu empresa.• Después de horas de romperte la cabeza sólo se te

ocurre un algoritmo de “fuerza bruta”, queanalizándolo ves que cuesta tiempo exponencial.

• Te encuentras en una situación muy embarazosa:

• “No puedo encontrar un algoritmo eficiente, metemo que no estoy a la altura”.

• Te gustaría poder decirle al jefe: “No puedoencontrar un algoritmo eficiente, ¡porque noexiste!”.

Page 20: 12 Completitud NP - eafranco.com

20

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

• Para la mayoría de los problemas, es muydifícil demostrar que son intratables, porquela mayoría de los problemas interesantes queno se saben resolver son NP- completos.

• Los NP-completos parecen intratables.

• Nadie ha sabido demostrar que los NP-completos son intratables.

Page 21: 12 Completitud NP - eafranco.com

Lista de 21 problemas NP-completos de Karp

An

ális

is d

e al

gori

tmo

s1

2 C

om

ple

titu

d N

PP

rof.

Edga

rdo

Ad

rián

Fra

nco

M

artí

nez

21

• SAT (Problema de satisfacibilidad booleana, para fórmulas en forma normalconjuntiva)• 0-1 INTEGER PROGRAMMING (Problema de la programación lineal entera)• CLIQUE (Problema del clique, véase también Problema del conjunto independiente)

• SET PACKING (Problema del empaquetamiento de conjuntos)• VERTEX COVER (Problema de la cobertura de vértices)

• SET COVERING (Problema del conjunto de cobertura)• FEEDBACK NODE SET• FEEDBACK ARC SET• DIRECTED HAMILTONIAN CIRCUIT (Problema del circuito hamiltoniano dirigido)

• UNDIRECTED HAMILTONIAN CIRCUIT (Problema del circuito hamiltoniano no dirigido)

• 3-SAT (Problema de satisfacibilidad booleana de 3 variables por cláusula)• CHROMATIC NUMBER (Problema de la coloración de grafos)

• CLIQUE COVER (Problema de la cobertura de cliques)• EXACT COVER (Problema de la cobertura exacta)

• HITTING SET• STEINER TREE• 3-DIMENSIONAL MATCHING (Problema del matching tridimensional)• KNAPSACK (Problema de la mochila)

• JOB SEQUENCING (Problema de las secuencias de trabajo)• PARTITION (Problema de la partición)

• MAX-CUT (Problema del corte máximo)

https://es.wikipedia.org/wiki/Lista_de_21_problemas_NP-completos_de_Karp