Vous êtes sur la page 1sur 46

Problemas NP-completos, Ejemplos: coloreo de grafos, el problema del vendedor viajero, el problema de morral

Complejidad de un algoritmo
Todo algoritmo tiene una serie de caractersticas, entre otras que requiere de recursos, algo que es fundamental considerar a la hora de implementarlos en una maquina. Estos recursos son principalmente:
El tiempo: perodo transcurrido entre el inicio la finali!aci"n del algoritmo. #a memoria: la cantidad $la medida vara seg%n la m&quina' que necesita el algoritmo para su ejecuci"n.

(omplejidad de un algoritmo
#os modelos de complejidad son normalmente usados para
)ostrar que un algoritmo dado es optimo o *eterminar la complejidad mnima de un problema $establecer el limite superior del numero de operaciones necesarias para resolver un problema dado'.

Complejidad Computacional: considera globalmente todos los posibles algoritmos para resolver un problema planteado

Complejidad Computacional,
La complejidad de la ordenacin (ual es el n%mero mnimo de comparaciones necesarias para ordenar n elementos. Tomaremos en cuenta los algoritmos de ordenaci"n basados en comparaciones. #a pregunta en si seria: (u&l es el numero mnimo de comparaciones en cualquier algoritmo para ordenar n elementos por comparaci"n+ Para ello se recurre a los &rboles de decisi"n

Complejidad Computacional,
,lgoritmo para ordenar - elementos Procedimiento ordenacioninsitu-$T./..-0' , 1- T./02 3 1- T.402 ( 1- T.-0 si , 1 3 entonces si 3 1 ( entonces 5 a est&n ordenados 6 sino si , 1 ( entonces T 1- ,, (, 3 sino T 1- (, ,, 3 sino si 3 1 ( entonces 7i , 1 ( entonces T 1- 3, ,, ( sino T 1- 3, (, , sino T 1- (, 3, ,

Complejidad Computacional,
Todo rbol de decisin para ordenar tres elementos son de altura 3 C<A si si BAC C<B CBA BCA BC<A B<A C C<A ACB CAB C<A B A C<B A B<C ABC B<A si No

C<B

C<B<A

cada rbol de decisin valido para ordenar n elementos debe contener al menos n! hojas, as como tener una altura que sea mnimo [lg2 n!] y una altura media que sea como mnimo lg2 n!.

Problemas NP-completos,
P es la clase de problemas de decisi"n que se pueden resolver mediante un algoritmo de tiempo polinomico. 8n algoritmo en tiempo polin"mico es eficiente si e9iste un polinomio p$n' tal que el algoritmo puede resolver cualquier caso de tama:o n en un tiempo ;$p$n'' <=u> es un algoritmo eficiente+ ;$nlgn', ;$n4'+
,lgoritmo eficiente: p$n' ? >l puede resolver cualquier caso de tama:o n en tiempo O(p(n)) ,lgoritmo de tiempo polin"mico.

Problemas NP-completos,
Teora de la NP-(ompletitud: Problemas sin algoritmo eficiente, de dificultad intrnseca que en algunos casos a%n no ha sido demostrada. 7e cree que algoritmos eficientes para ellos no e9isten. #o que s es eficiente es la validaci"n de una supuesta soluci"n.

Problemas NP-completos,
T7P @,) )ochila (iclos eulerianos 3uscaminas, Tetris Aactori!aci"n (obertura de v>rtices

Problemas de optimizacin combinatoria


maximizan o minimizan funciones de varias variables sujeto a restricciones de integridad sobre todas o algunas variables.
Un pastor tiene que pasar un lobo, un conejo y una col de una orilla de un ro a la otra orilla. Dispone de una barca en la que slo caben l y una de las tres cosas anteriores. Si deja solos al conejo y al lobo, ste se come a aqul; si deja al conejo con la col, aqul se la come. Cmo debe proceder para llevar las tres cosas a la orilla opuesta?

Circuito eulerianos
Un circuito es un recorrido con el mismo origen y final. Un circuito euleriano de un multi - grafo conexo G es un circuito que contiene todas las aristas de G. Un grafo G con un circuito euleriano se denomina un grafo euleriano.
u1 u2u8-u9-u2-u3-u4-u2-u7-u4-u5-u6-u7-u1 u9 u2 u3 u4 u5 u1 u7 u6 Otra posibilidad: u1-u2-u7-u4-u2-u8-u9-u2-u3-u4-u5-u6-u7-u1 u7 u6 u5 u4 u7 u2 u8 u1 u2 u8 u9 u2 u3 u4

Circuito eulerianos
Un recorrido es una cadena sin aristas repetidas (se pueden repetir vrtices). Un recorrido euleriano de un multi - grafo conexo G es un recorrido que contiene todas las aristas de G.
v1 v2 v6 v3 Otra opcin: v1-v2-v3-v4-v2-v6-v5-v4 v5 v4 v1v2-v4-v3-v2-v6-v5-v4

Teorema: Un multigrafo conexo G es euleriano si y solo si el grado de cada vrtice es par.

Entonces contiene un circuito euleriano que empieza y acaba en un vrtice v.

si todos los vrtices tienen grado par entonces G es euleriano.

1. Elegimos un vrtice v y empezamos un recorrido T hasta que llegamos a un vrtice que ya no tiene aristas que no hayamos usado. Entonces cuando esto pasa, este vrtice es v. 2. Si T ha usado todas las aristas es un circuito euleriano. Si no se han usado todas las aristas y como G es conexo, existe algn vrtice v de T que tiene aristas que no han sido usadas

Circuito eulerianos
3. Sea H el grafo que se obtiene de G eliminando las aristas del circuito T. Por el mismo razonamiento anterior, podemos encontrar un circuito T que comience en v. Este circuito se puede insertar en T de forma que tengamos un circuito T1 que contiene las aristas de ambos circuitos.

4. Si este circuito ha usado todas las aristas de G seria un circuito euleriano. Si no vamos repitiendo el proceso hasta que en algn momento se hayan usado todas las aristas.

Circuito eulerianos
Ejemplo: -Es conexo. -Todos los vrtices tienen grado par. Entonces existe un circuito euleriano. v2 v6 v4 v3 v7 v5 v1

Circuito eulerianos
Ejemplo:

v1-v4-v6-v2-v5-v1 v2 v6 v4 v3 v7 v5 v1

Circuito eulerianos
Ejemplo:

v1-v4-v6-v2-v5-v1 v2 v6 v4 v3 v7 v5 v1

Circuito eulerianos
Ejemplo:

v1-v4-v6-v2-v5-v1 v2 v6 v4 v2-v7-v6-v5-v7-v3-v4-v2 v3 v7 v5 v1

v1-v4-v6-v2-v7-v6-v5-v7-v3-v4-v2- v5-v1

Aplicacin de grafos eulerianos: El problema del cartero chino.


Un cartero quiere repartir las cartas con el menor coste posible. Debe recorrer todas las calles que tiene asignadas Debe empezar en la oficina de correos y acabar en la oficina de correos.

Objetivo: Encontrar la cadena cerrada mas corta posible que recorre todas las aristas. Esta cadena se denomina cadena euleriana.
Las calles pueden ser representadas por aristas. Las intersecciones son los vrtices. El problema tiene solucin porque si doblamos las aristas para crear un multigrafo Todos los vrtices tendran grado par.

Grafos Hamiltonianos
Definicin: Un grafo G se dice que es Hamiltoniano si tiene un ciclo recubridor. Es decir, un ciclo que pasa por cada vrtice una sola vez.

Aplicacin de los grficos Hamiltonianos: El problema del Vendedor.

Un vendedor quiere vender su producto en varias ciudades. Las ciudades estn representadas por vrtices. El coste para ir de una ciudad a otra por las aristas. Se puede suponer que el grafo es completo.

El Agente Viajero
Dadas N ciudades, el viajero de comercio debe visitar cada ciudad una vez teniendo en cuenta que el costo total del recorrido debe ser mnimo.
G=(N, A) N={1, ...,n}: conjunto de n nodos (vrtices) A={aij}: matriz de adyacencia. Si aij = 0 dij = { Lij Si aij = 1 Lij: distancia entre las ciudades i y j.
22

El Agente Viajero
Suponiendo que las ciudades son numeradas desde 1 hasta n, una solucin al problema puede expresarse a travs de una matriz de estado E
eij = { 1 Si la ciudad j fue la iesima ciudad visitada 0 En otro caso

La matriz E permite definir un arreglo unidimensional V de dimensin n;


vj = i Si la ciudad i fue la jesima ciudad visitada

El Agente Viajero
Funcin objetivo
F1=Likeijekj+1
i= 1 k= 1 j= 1 n n n

n n n n n n F2=C ( eij n) +( eij 1) +( eij 1) i= 1 j= 1 j= 1 i= 1 i=1 j=1

FC = F1 + F2

C = n * Max(Lik) factor de penalizacin.

J. Aguilar

24

Algoritmo que encuentra una solucin de bajo coste (no necesariamente la mnima)

1.- p=1 2.- Selecciona cualquier vrtice v de G. C1=v v Mientras p< n - Encuentra un vrtice vp que no este en Cp y que upvp sea mnimo siendo up pertenece a Cp -Adjuntar vp inmediatamente antes que up -p=p+1

Algoritmo que encuentra una solucin de bajo coste (no necesariamente la mnima)
Ejemplo: 0 3 3 2 7 3 3 0 3 4 5 5 3 3 0 1 4 4 2 4 1 0 5 5 7 5 4 5 0 4 3 5 4 5 4 0 inicio: v1 v1 Primera iteracin: v1 v4 v1 Segunda iteracin: v1 v3 v4 v1 Tercera iteracin: v1 v3 v4 v2 v1 Cuarta iteracin: v1 v5 v3 v4 v2 v6 v1

Coste 26 (El mnimo que se poda encontrar inicializando con otro vrtice seria 21)

Problema de B-partici"n de grafos


- ;bjetivo:
asignar los v>rtices tal que se minimice los arcos en diferentes sub-grafos se repartan los v>rtices equitativamente entre los diferentes sub-grafos.
2 a 1 b d 2 1 d f 3 2 c 3 e 1 b 2 a d 2 1 d f 3 2 3 c e

Proc 1

Proc 2 a)

Proc 3

Proc 1

Proc 2 b)

Proc 3

K=3

Problema de partici"n de grafos


*efinici"n de una Aunci"n de (osto Ceneral
Costo de Comunicacin Costo por el Desequilibrio de la Carga A D ,/(( E ,4(* ;bjetivo: )FN$F'

Algoritmo de ernighan!Lin
Este algoritmo de partici"n, es un algoritmo determinista e iterativos, fue publicado en el a:o /GHI. El objetivo de este algoritmo es dividir el grafo en dos partes $BD4', de modo que se minimice el n%mero de arcos que conectan nodos pertenecientes a particiones distintas. El m>todo comien!a asignando aleatoriamente los nodos a dos grupos , 3. Posteriormente, se van intercambiando nodos entre las dos particiones. Estos intercambios, implican un incremento o decremento del n%mero de corte, que se representa mediante la ganancia g.

Algoritmo de ernighan!Lin
#a ganancia g, asociada al intercambio de dos nodos, se obtiene a partir del par&metro D. *icho par&metro, se define como la diferencia entre el n%mero de intercone9iones de la celda que atraviesan la separaci"n entre particiones, el n%mero de intercone9iones que no atraviesan dicha frontera. *$ai'D inedge(ai)-outedge(ai)
outedge(ai), es el n%mero de intercone9iones entre la celda ai otras celdas que no pertenecen a la misma partici"n. inedge(ai), es el n%mero de intercone9iones entre la celda ai otras celdas pertenecientes a la misma partici"n.

8na ganancia gi, definida com

Algoritmo de ernighan!Lin
El primer paso es seleccionar dos nodos, a1 b1, pertenecientes, respectivamente, a los grupos , 3, de modo que la ganancia g1 asociada al intercambio de estos dos elementos sea mnima. , continuaci"n, se intercambian los nodos , durante las iteraciones restantes, se impiden nuevos despla!amientos de las mismas. El siguiente paso es seleccionar dos nuevos nodos, a2 b2, cu o intercambio ha de suponer un incremento mnimo, g2, del n%mero de corte. 8na ve! reali!ado el intercambio, se bloquean nuevos despla!amientos de estos dos elementos. Esta serie de pasos contin%a hasta que todos los elementos del circuito han sido bloqueados. #a clave del algoritmo de Jernighan-#in pues es encontrar aquel valor de p que minimi!a: i=1 p gi

Problema de aparejamiento ("matching) bipartito mximo


Dado un grafo no dirigido G = (N, A), un "matching" es un subconjunto de aristas M A, tal que para todos los nodos v N, a lo sumo una arista de M incide en v. s1 s1 t1 t1
Asignacin de cardinalidad 2

Un "matching" M es mximo si tiene una cardinalidad mxima tal que para cualquier M' se tiene | M' | | M |.

s2

s2

s3

t2

s3

t2

s4 t3 s5 Grafo bipartido

s4 t3 s5
Asignacin de cardinalidad 3

Problema del "acimo #$nimo


7ea CD1N,,K, un grafo no dirigido sea c: , L ME una funci"n de coste. (onsidere tres sub conjuntos N/, N4, N-, que se llaman racimos, de tal manera que cada nodo N, pertene!ca e9actamente a uno de los racimos adem&s de ser las aristas internas aquellas que enla!an nodos de un mismo racimo " las aristas cru!adas aquellas que enla!an nodos de racimos distintos, el problema esta en seleccionar N/, N4, N-, de tal manera que el coste de las aristas cru!adas sea m&9imo o equivalente de la forma que minimice el coste total la aristas internas. Por tanto este problema tiene dificultad NP

Problema del "acimo #$nimo


Crafo donde la soluci"n "ptima consiste en seleccionar N/D5a,b6, N4D5c,d6 N-D5e6, de tal manera que el coste total de las aristas internas es N de las aristas cru!adas es -/.

1 a 3 2 d 3 3 c 4 b 2 8 e 3 6

Problema del "acimo #$nimo


Es equivalente ma9imi!ar el coste total de las aristas cru!adas o minimi!ar el coste total de las aristas internas, por tanto se consideran dos problemas de optimi!aci"n siguientes: ),O-(;MT,M: ma9imi!a el coste total de las aristas cru!adas, para todas las particiones de N. )FN-M,(F);: minimi!a el coste total de las aristas internas, para todas las particiones de N.

Problema del "acimo #$nimo


Versin 1.0

),O-(;MT,MPapro9$CD1N,,K, c: , L ME' pre$c: , L ME' pos$N/, N4, N- Q' R coste aristas cru!adas 1 N/,N4,N- S -N/,N4,N-: conjuntos donde se 2 racimo, suma S I formaran una parici"n de N 3 para todo u # $acer cuando conclu a el algoritmo. costemin S T para i S / hasta - hacer 4 -suma: acumula el coste total coste S I de todas las aristas de C. para todo % #i $acer 5 -racimo: acumula el coste de si 5u %& ' entonces todas las aristas internas en coste S coste E c$5u %&) fsi la soluci"n apro9imada que frp 7eleccionamos suma S suma E coste
si coste 1 costemin entonces costemin S coste BSi fsi frp NB S NB 5u& Macimo S racimo E costemin frp devolver suma U racimo

Problema de la mochila
Se tienen n objetos y 1 morral. Cada objeto i tiene un peso wi y un valor positivo vi. Capacidad mxima del morral W. Objetivo: llenar el morral para maximizar el valor de los objetos transportados, respetando la limitacin de capacidad. Sea xi igual a 0 si no se toma el objeto i, o 1 si se incluye el objeto.

Problema de la mochila
El objeto i contribuye en xiwi al peso total del morral y en xivi al valor total de la carga. Maximizar (i xivi) con la restriccin de xiwi < W, donde v y w son positivos y los X son enteros positivos. Donde vi > 0, wi >0 y xi{0,1} para 1 i n

Problema de la mochila
Versin 1.0

mochila %Arreglo&'..n(de Entero): *+ Entero): ,+ Arreglo&'..n(de Entero): v-: #atriz&'..n+...,(de Entero: / 01uncin 2ue crea la tabla con los valores m3ximos4 0pre: n5.+ ,5.4 0pos: matriz con los valores m3ximos 4 1 &6i%*&'(7,- entonces v:Arreglo&'..n(de /&'+j(8*&i( Entero). Contiene los valores de cada uno sino /&'+j(8. de los objetos. fsi *: Arreglo&'..n(de (j8.+, Entero). Contiene los pesos de cada uno &&6i%*&i(5j- entonces 2 6i%/&i!'+j(5v&i(- entonces de los objetos. /&i+j(8 /&i!'+j( /: #atriz&'..n+...,(de Entero. Contiene los sino valores m3ximos /&i+j(8 v&i(
fsi sino 6i%/&i!'+j(5/&i!'+j!*&i(()v&i(- entonces /&i+j(8 /&i!'+j( sino /&i+j(8 /&i!'+j!*&i(()v&i( fsi (j8'+, (i8'+n "egrese /AinPara

()nimo gra*o +-coloreado


Encontrar el mnimo conjunto de colores necesarios para colorear los arcos, tal que dos arcos con el mismo color no compartan un v>rtice
Considerar el problema de encontrar un k-coloreo para un grafo G(V, E), para k fijo.

mnimo grafo B-coloreado

Problema de Enrutamiento de Vehculos


Grafo G = (V, A), donde el vrtice v0 es el depsito desde el cual construyo las rutas, y los dems vrtices son ciudades En el depsito hay m vehculos idnticos Cada arco tiene asociada una distancia no negativa Para simplificar: costo = tiempo = distancia El objetivo es construir un conjunto de costo mnimo de rutas tales que
(a) Todas las rutas comienzan y terminan en el depsito (b) Cada ciudad es visitada exactamente una vez por exactamente un vehculo (d) Cada ciudad tiene asociada una demanda qi. La demanda total asociada a un vehculo no puede exceder la capacidad Q del vehculo. (e) Cada ciudad requiere ser atendida en un tiempo mximo Di, y el tiempo total de cada ruta (incluyendo los servicios) no puede superar un cierto valor L

Problema de Enrutamiento de Vehculos


(1.6, 14) 3 (8.3, 10) (0.0, -) 4 3 (2.7, 3) (2.6, 11) 2 4 3 Depsito 2 3 3 5 (0.0, -) 4 (1.4, 3) (demanda, tiempo) (6.1, 4) 3 2 5 (1.6, 9)

Constantes:
m = 5 (cantidad de vehculos) Q = 11.5 (capacidad de un vehculo) L = 25 (duracin mxima de una ruta)

3 (0.4, 3) 3 (3.7, 9)

Problema 9!puzzle Estado inicial


5 8 7 2 3 6

Estado final
1 4 7 2 5 8 3 6

1 4

S = Conjunto de todas las secuencias de movimientos que conducen del estado inicial al estado final. f = Nmero de movimientos en la secuencia.

NN

Problema 9!puzzle
5 1 4 8 7 2 3 6
Arriba

5 8

2 3 6
Arriba

1 4

5 8 7

2 3 6
Izqda.

1 4 7

5 8

2 3 6
Abajo

1 4 7

2 3

Estado inicial
Abajo

1 4 7

2 5 8

3 6

Arriba

1 4 7

2 5 8

Arriba

1 4

2 5 8 3 6

Izqda.

1 4 7 5 8

2 3 6

Estado final

l$9': Aunci"n de b%squeda. (oste de llegar del estado inicial al estado final pasando por el estado 9. h$9': Aunci"n heurstica. (oste estimado de llegar desde 9 al estado final. g$9': (oste de llegar desde el estado inicial al estado 9. l$9' D g$9' E h$9'

Problema :!"einas
El problema de las N-Meinas consiste en colocar n reinas en un tablero de ajedre! de tama:o nVn de forma la reinas no se amenacen seg%n las normas del ajedre!. 7e busca encontrar una soluci"n o todas las soluciones posibles. (ualquier soluci"n del problema estar& formada por una ntupla $9/,94,W,9n', d"nde cada 9i indica la columna donde la reina de la fila i->sima es colocada. #as restricciones para este problema consisten en que dos reinas no pueden colocarse en la misma fila, ni en la misma columna ni en la misma diagonal. Por ejemplo, el problema de las N-Meinas tiene dos posibles soluciones: .4,N,/,-0 .-,/,N,40.