Sie sind auf Seite 1von 67

Optimizacin Combinatoria y en Redes o

Problema de ujo de coste m nimo. Problema de ujo mximo. a Problema de la mochila. Problema de emparejamiento. Arbol de expansin de coste m o nimo. Problema del viajante.

Problema de ujo de coste m nimo


Hay muchos problemas que, a pesar de admitir modelos de programacin entera, tienen estructuras especiales o recomendable no usar herramientas estndar. a Problemas de ujos en redes. Variables ujos en arcos de una red. Las herramientas de PL nos proporcionarn soluciones enteras. a Problemas combinatorios. Modelos enormes pero muy estructurados.

Optimizacin en Redes: Terminolog o a

Arcos: Grafo oriantado o red


D

Aristas: Grafo no orientado


G E

Grafos mixtos G = (V, A)

G = (N, A) o

Optimizacin en Redes: Terminolog o a

A D

E F

Un camino es una sucesin de arcos adyacentes o que parten de un nodo (A) y llegan a otro (G), y un ciclo es un camino de un nodo a l mismo. Un grae fo conexo y sin ciclos se denomina rbol. a

Optimizacin en Redes: Elementos bsicos o a


Variables xij asociadas a los arcos: xij = ujo en (i, j). Costes cij = coste por unidad de ujo en (i, j). Capacidades lij /uij = ujo m nimo/mximo permitido en a (i, j). Restriciones de conservacin de ujo; para cada nodo i: o
ujo saliente ujo entrante

xik
kN jN

xji

= bi =

produccin(i) o demanda(i) 0

si i genera ujo, si i absorve ujo, en otro caso.

Flujos en redes: Programacin Matemtica o a


Flujo factible: viene dado por vector x tal que: Ax = b l x u donde A es la matriz de incidencia nodos-arcos:
B

A D

0 B B B B A=B B B B @

E F

1 -1 0 0 0 0 0

1 0 -1 0 0 0 0

1 0 0 0 0 -1 0

0 1 0 -1 0 0 0

0 0 1 -1 0 0 0

0 0 1 0 0 0 -1

0 0 0 1 0 0 -1

0 0 -1 0 1 0 0

0 0 0 0 -1 1 0

0 0 0 0 0 1 -1

0 0 0 0 -1 0 1

1 C C C C C C C C A

Flujos en redes: Programacin Matemtica o a

Factibilidad Para que un problema de ujos en redes tenga buenas propiedades es necesario que sea equilibrado: oferta =
i:bi>0

bi =
i:bi<0

bi = demanda.

Si no, el problema puede ser infactible. Si no lo es, podemos equilibrar el problema aadiendo un nodo articial. n

Flujos en redes: Programacin Matemtica o a

Propiedad de integridad: Si todos los elementos de b, l y Ax = b u son enteros, los vrtices de e tienen compol x u nentes enteras. Podemos encontrar ujos enteros utilizando el mtodo del e S mplex! Adaptaciones del S mplex a problemas en redes.

Problema de ujo de coste m nimo


m n{c x|Ax = b; l
[12, (2, 5)] B [10, (1, 8)] 5

u}
B 5

10

A [15,(3, 10 )] C [ 9, (1, 5)] D

10

A 3 2 D

[11, (0, 15)] C [12, (0, 20)] [ 20, ( 0, 10 )] [5, (0, 10)] [8,(1,12)] [3, (0,5)] 8 F [17, (0, 15)] [c, (l, u)] E 8 F 0 10 E G 1 11 2 1 2

11 G

coste = 420

Flujo de coste m nimo: casos particulares


Podemos ver el problema de transporte como un problema de ujo de coste m nimo si consideramos la red adecuada:
325 [25, (0 , inf)] 350 1 ... 600 2 [14, (0 , inf)] B [18, (0 , inf)] 275 C 50 300 A

25 17 18 350 25 18 14 600 325 300 275

[0, (0 , inf)]

aux

El problema de transporte
El S mplex permite resolver el problema de transporte, incluso con unidades indivisibles. Si queremos que se requieran pocas iteraciones, necesitaremos una buena solucin inicial. Para hallarla, podemos o usar mtodos heur e sticos Para inicializar el mtodo del S e mplex no nos sirve cualquier heur stica. Por qu? e Porque necesitamos una heur stica que proporcione siempre soluciones bsicas. a

El problema de transporte
En el caso del problema de transporte, tenemos varias heur sticas con esa propiedad. Veremos la ms simple: La esquina noroeste a La veremos sobre el ejemplo: Destinos A B C produccin o 1 25 17 18 350 Or genes 2 25 18 14 600 demanda 325 300 275

Problema de transporte: N-W corner


25 ? 25 325 25 325 25 325 18 300 17 ? 14 275 0 600 50 18 300 18 14 275 0 0 600 50 350 25 17 18 0 350

Problema de transporte: N-W corner


25 325 25 18 ? 0 300 275 25 325 25 0 18 275 275 17 25 14 ? 275 0 50 18 17 25 14 275 0 0 600 325 0 600 50 18 0 25

Problema de transporte: N-W corner


25 325 25 0 25 325 25 0 18 275 275 17 25 14 275 275 0 50 50 50 18 275 0 18 17 25 14 275 275 0 0 0 ? 50 18 0 0 325 50

Flujo de coste m nimo: casos particulares

Dada una red con costes en los arcos y con dos nodos distinguidos s y t el problema de caminos m nimos consiste en encontrar el camino de coste total m nimo entre todos los que unen s y t. Esto es equivalente a resolver el problema de ujo de coste m nimo en la red con produccin 1 en el nodo s, demanda 1 o en el nodo t, capacidades m nimas igual a 0 y capacidades mximas innitas. a

Problema de caminos m nimos


B

12 [12, (0, inf)]

10 [10, (0, inf)]

s 15 [15,(0, inf)] C 12 [12, (0, inf)] [20 ( 0, inf )] 20, [5, 5 inf)] (0, 8 [8,(0, inf)] F [3, (0, inf)] E 3 17 [17, (0, inf)] t G 1 9 [ 9, (0,inf)] D 11 [11, (0, inf)]

Problema de caminos m nimos


Un propiedad crucial de este problema es que las secciones de un camino m nimo son a su vez caminos m nimos:

s u

Esta propiedad es la base de la mayoria de los algoritmos que se han diseado para resolver este problema. n

Problema de caminos m nimos: costes


Cuando una red tiene algunos arcos con costes negativos, debemos tener mucho cuidado:
-12 B 10

s 15 C 20 -6 5

-9

D -11 12 t 8 E 17

-3

Ciclo de coste negativo Problema no acotado

Problema de caminos m nimos


Arbol de caminos desde s al resto de nodos Algoritmo de Dijkstra (Greedy).
Edsger W. Dijkstra (1930-2002), publicado en el 59

Slo para grafos con pesos/costes positivos. o Coincide con el s mplex para redes. Algoritmo de Bellman-Ford (Programacin Dinmica) o a Si hay ciclos de coste negativo, los detecta.

Problema de caminos m nimos


Conjunto de caminos entre todos los pares de nodos Algoritmo de Floyd-Warshall (1962) (Programacin Dinmica) o a Algoritmo muy parecido al de Bellman-Ford. Se basan en el hecho que, dados 3 nodos cualesquiera i, j, k, el coste del camino m nimo desde i hasta j no puede superar a la suma de los costes del camino desde i hasta k ms el del camino desde k hasta j. a

Caminos m nimos: Algoritmo de Dijkstra


Lo veremos sobre un ejemplo:

3 C 6

1 s 5 6

7 4 E

3 B 0 D

Algoritmo de Dijkstra: Ejemplo

(2, s) 2 A 3 (inf,0) C 6 2

(2, s) A 3 (5, A) C 6

1 s 5 6

7 4

1 (inf,0) E s 5 6

7 4

(inf,0) E

3 B (3, s ) 0 D (inf,0)

3 B (3, s ) 0 D (inf,0)

Algoritmo de Dijkstra: Ejemplo

(2, s) 2 A 3 (4, B) C 6 2

(2, s) A 3 (4, B) C 6

1 s 5 6

7 4

1 (inf,0) E s 5 6

7 4

(inf,0) E

3 B (3, s ) 0 D (3, B)

3 B (3, s ) 0 D (3, B)

Algoritmo de Dijkstra: Ejemplo

(2, s) 2 A 3 (4, B) C 6 2

(2, s) A 3 (4, B) C 6

1 s 5 6

7 4

1 (10, C) E s 5 6

7 4

(10, C) E

3 B (3, s ) 0 D (3, B)

3 B (3, s ) 0 D (3, B)

El algoritmo de Dijkstra: Resumen

Paso 0 Inicializar S = , S = N . Para i N , inicializamos etiquetas d(i) = , salvo la del nodo origen, d(s)=0. Predecesor p(s)=0. Paso 1 Si S = , seleccionar i S con d(i) = m n{d(j) : j S}. Mover i de S a S. en caso contrario, FIN. Para cada nodo i, d(i) es la longitud del camino m nimo de s a i. Paso 2 Actualizar las etiquetas de los nodos adyacentes a i. Para cada arco (i, j), si d(j) > d(i) + cij , entonces d(j) = d(i) + cij y p(j) = i. Ir al Paso 1.

Problema de ujo mximo a

El problema de ujo mximo se dene sobre una red a con capacidades en los arcos, y dos nodos selectos; el nodo fuente (s) y el nodo terminal (t). El problema consiste en encontrar la mayor cantidad de ujo que se puede mandar desde s hasta t respetando las capacidades de los arcos. El problema de ujo mximo tambin tiene la propiedad de a e integridad.

El problema de ujo mximo a

Existen distintos algoritmos para resolver este problema. La mayoria se basan en la idea de camino aumentativo. Un camino aumentativo es un camino en la red, que permite aumentar la cantidad de ujo desde s hasta t: mandndolo directamente a o redirigiendo el ujo existente

Problema de ujo mximo a


1 A 2 A

s 1 B 2 C

3 1

B 2 C

Problema de ujo mximo a


A A

Problema de ujo mximo a


A A

Problema de ujo mximo a


A A

Optimizacin Combinatoria o
Los problemas combinatorios consisten en identicar subconjuntos de un conjunto dado que, satisfaciendo algunas propiedades preestablecidas, minimicen/maximicen su coste asociado. Formalmente: Dado un conjunto S y una familia de subconjuntos de S, I P(S), encontrar el conjunto I I con el menor coste (resp. mayor benecio) asociado. En general, coste(I) =
eI

ce

El problema de la mochila (knapsack problem)

Dado un conjunto de objetos, cada uno con un volumen y un benecio asociados, determinar cul es el conjunto de a objetos ms provechoso que cabe en una mochila de una a capacidad determinada.
Programacin matemtica o a xi : tomo el objeto i restriccin: i vixi cap. o objetivo: max i cixi Optimizacin Combinatoria o S = conjunto de objetos I: conjuntos de obj. que caben objetivo:arg mx{c(I) : I I} a

Problema de la mochila: Ejemplos


Escoger asignaturas de libre conguracin para alcanzar o los 14 crditos con el menor esfuerzo posible. e Decidir entre las inversiones ms prometedoras con un a presupuesto limitado. Tambin se conoce como problema de la mochila la e versin con una restriccin de igualdad. (Min Set Sum). o o Este es la base de toda una fam de sistemas de lia criptograa de clave pblica. Entre ellos el de Merkle y u Hellman (1978) que fue uno de los primeros.

Problema de la mochila: Resolucin o

Habitualmente, mediante mtodos enumerativos: e programacin dinmica, ramicacin y acotacin. o a o o Algunos autores recurren a mtodos heur e sticos. Por ejemplo, tomar preferentemente art culos con valores altos de cj /vj (greedy). Muchos trabajos estudian la estructura de la envolvente convexa de las soluciones factibles.

Problema de emparejamiento
Dado un grafo G=(N,A), B A es un emparejamiento (perfecto), si cada nodo de N es incidente, como mucho (exactamente), con una arista de B. Objetivo: Encontrar el emparejamiento de cardinal mximo (EM) a mximo/perfecto de peso m a nimo (EPM)

Problema de emparejamiento: ejemplos

Emparejamiento no perfecto

Emparejamiento perfecto

Problema de emparejamiento: ejemplos


B B

s D

s D

E F F

Existen grafos sin un emparejamiento perfecto. El emparejamiento mximo no tiene por qu ser unico. a e

Problema de emparejamiento: ejemplos


En la segunda guerra mundial la Royal Air Force (RAF) inglesa estaba compuesta por varios pilotos procedentes de distintos paises, que hablaban diferentes idiomas y tenian distintos niveles de entrenamiento. La RAF tenia que asignar dos pilotos a cada avin, siempre asignando pilotos con o idiomas y niveles de entrenamiento compatibles al mismo avin. A la RAF le interesaba hacer volar el mximo nmero o a u de aviones posible.

Problema de emparejamiento: ejemplos


El grafo siguiente representa las calles de un barrio de cierta ciudad. Un polic ubicado en el centro de una calle puede a vigilar los cruces de los dos extremos. Es posible vigilar todos los cruces del barrio con 6 polic as?
3 4 2 5 9

10

11

12

Emparejamiento de cardinal mximo: a enfoque OC


Conjuto de elementos S: Aristas del grafo Subconjuntos vlidos I I: a conj. de aristas disjuntas 2 a 2 Costes: maximizar cardinal (coste 1 en cada arista)

Emparejamiento de cardinal mximo: a enfoque PM


Variables: a A, xa = 1 0 si a est en el emparejamiento a si no

Restricciones: v N ,
a(v) xa

Objetivo mx a
aA xa

Problema de emparejamiento: resolucin o


La mayor de los algoritmos espec a cos para encontrar el EM son algoritmos iterativos que aumentan el cardinal de un emparejamiento factible a cada iteracin. Las especiao lizaciones de estos algoritmos para grafos bipartidos son bastante ms ecientes. a Cuando se resuelven problemas de emparejamiento desde la PM, se usan algoritmos de tipo branch and cut, ya que se conoce la descripcin completa de la envolvente convexa o de las soluciones factibles.

Arbol de expansin de coste m o nimo


Minimum spanning tree (MST)

Dado un grafo G=(N,A), T A es un rbol de expansin a o si G=(N,T) es un rbol;es decir: a


B

no contiene subcircuitos
D

es conexo
G E

En grafos dirigidos ignoraremos el sentido de los arcos.

Arboles de expansin: (contra)ejemplos o


B B A D A D

E F F

A D C

G E F

Arboles de expansin o
Qu pasa si a un rbol de expansin le quitamos un e a o arco? Qu pasa si a un rbol de expansin le aadimos un e a o n arco? Cuntos arcos tiene un rbol de expansin? a a o

Arbol de expansin de coste m o nimo

Dado un grafo G=(N,A), con costes c asociados a los arcos, el problema del rbol de expansin de coste a o m nimo consiste en encontrar el rbol de expansin de G a o con el menor coste total, donde coste(T ) =
aT

ca

MST: Ejemplos
El primer trabajo sobre el MST es debido a Dijkstra, que desarroll un algoritmo para este problema, para minimizar o la cantidad de cobre que necesitaba para las conexiones en el panel su ordenador X1. En realidad, este algoritmo fue publicado en el mismo art culo donde Dijkstra presentaba su algoritmo para el problema de caminos m nimos.

MST: Ejemplos
Compa de reforestacin quiere sembrar rboles en ocho zonas en na o a la misma rea. Debe desarrollar un sistema de caminos de tierra para a tener acceso a cualquier zona desde cualquier otra. Las distancias entre cada par de zonas son:
1 2 3 4 5 6 7 8 1 2 13 3 21 9 4 9 18 26 5 7 12 17 7 6 18 26 25 16 9 7 20 23 19 15 11 6 8 15 11 10 9 8 10 5 -

Entre qu pares de zonas construir caminos? e ais 2-3, 2-4, 4-5, 1-5, 5-8, 6-7, 7-8

MST: Resolucin o
Uno de los algoritmos ms conocidos para resolver este a problema es el algoritmo de Kruskal. Se trata de un algoritmo tipo Greedy. A pesar de esto, la estructura de este problema garantiza que este algoritmo proporcione la solucin ptima. o o

MST: El algoritmo de Kruskal

Es un algoritmo iterativo. En cada iteracin del algoritmo, se aade al conjunto de o n arcos seleccionados el arco disponible de coste menor que no forme circuito con los tomados anteriormente. Finaliza cuando el subgrafo generado es conexo.

Algoritmo de Kruskal: ejemplo


A 2 7 E 5 5 B 4 C 4 D 8 1 3 1 B 4 5 C 4 D 8 1 3 1 2 A 2 7 E 5 2

6 F G F

6 G

Algoritmo de Kruskal: ejemplo


A 2 7 E 5 5 B 4 C 4 D 8 1 3 1 B 4 5 C 4 D 8 1 3 1 2 A 2 7 E 5 2

6 F G F

6 G

Algoritmo de Kruskal: ejemplo


A 2 7 E 5 5 B 4 C 4 D 8 1 3 1 B 4 5 C 4 D 8 1 3 1 2 A 2 7 E 5 2

6 F G F

6 G

Algoritmo de Kruskal: ejemplo


A 2 7 E 5 5 B 4 C 4 D 8 1 3 1 B 4 1 3 1 5 C 4 D 8 2 A 2 7 E 5 2

6 F G F

6 G

Algoritmo de Kruskal: ejemplo


A 2 7 E 5 5 B 4 1 3 1 C 4 D 8 B 4 1 3 1 5 C 4 D 8 2 A 2 7 E 5 2

6 F G F

6 G

El algoritmo de Kruskal: Resumen

Paso 0 Inicializar L =, conjunto de arcos ordenados. T = Paso 1 Si G = (N, T ) es conexo, FIN. T dene el rbol ptimo. a o en caso contrario sacar el siguiente elemento de L, a. Paso 2 Si a no forma un circuito con los arcos de T , actualizar T = T {a}. Volver a Paso 1

MST: Extensiones
Una extensin del MST es el problema del rbol de Steiner o a de coste m nimo. En este problema se pretende conectar un nodo fuente a todo un conjunto de nodos sumideros, utilizando eventualmente otros nodos auxiliares de la red a un coste m nimo. Este problema aparece, por ejemplo, en el diseo de circuin tos integrados.

Problema del viajante


Travelling Salesman Problem

(TSP)

Un viajante de comercio tiene que visitar un conjunto de clientes y regresar despus al punto de partida. Antes de e salir, debe decidir en qu orden visitar a sus clientes para e a minimizar la distancia total recorrida.

Ms formalmente ... a

El problema del viajante

Dado un grafo G = (N, A), un circuito Hamiltoniano en G es es un circuito que pasa exactamente una vez por cada nodo v N . El problema del viajante de comercio se dene sobre un grafo (generalmente completo) con costes asociados a los arcos y consiste en encontrar el circuito Hamiltoniano de coste m nimo.

TSP desde la programacin matemtica o a


Variables: Para cada par de nodos i, j N denimos 1 si se visita el nodo j despus de i e xij = 0 en otro caso Objetivo: Minimizar Restricciones: Cada nodo debe preceder a otro:
i i=j cij xij

xij = 1 xij = 1
j

Cada nodo debe tener un predecesor:

TSP desde la programacin matemtica o a


Con este modelo podemos obtener:

. Qu falta? e

El problema del viajante


Restricciones de ruptura de subcircuito

Para cada conjunto S

N con |S|

n/2 :
a(S)

xa

donde (S) es el conjunto de arcos con un extremo en S y otro fuera

El problema del viajante


Restricciones de ruptura de subcircuito

Cuntas de estas restricciones aparecen si tenemos a 5 nodos? 16 10 nodos? 638 25 nodos? 16777216 !! No se puede aplicar branch and bound al modelo completo. Se relajan estas restricciones y se van aadiendo a medida n que hacen falta branch and cut

El problema del viajante


Mtodos heur e sticos

Resolver el problema del viajante de comercio de forma exacta es muy caro. Cuando no sea imprescindible encontrar el ptimo recurriremos a mtodos heur o e sticos. Se han desarrollado muchos mtodos heur e sticos para este problema, dadas sus extensas aplicaciones. Algunas heur sticas son constructivas y otras de mejora.

TSP: Mtodos heur e sticos


Heur. constructivas El vecino ms prximo a o Mtodos de insercin e o Heur stica de Christodes Heur. de mejora Bsqueda local (problema: optimos locales) u 2-intercambios, etc. Mtodos avanzados/ Metaheur e sticas Bsqueda tab , Algoritmos genticos, Sistemas de u u e colonias de hormigas, simulated annealing. . .

Das könnte Ihnen auch gefallen