Tema 7: Optimizacion sobre Redes
Muchos de los problemas de Investigacion Operativa pueden modelizar-
se y resolverse sobre un grafo: conjunto de vertices o nodos conectados
con arcos y/o aristas.
Disenar el trazado de una red de fibra optica de manera que se
cubran ciertos puntos de la manera mas economica posible. Arbol
generador de coste mınimo.
Determinar la ruta mas corta entre dos ciudades. Camino mas
corto.
Determinar la cantidad maxima de electricidad que se puede enviar
a traves de una red electrica. Problema de flujo maximo.
Decidir el programa de fechas en el que deben iniciarse y termi-
narse una serie de tareas para llevar a cabo un proyecto. Camino
crıtico (CPM).
1
Todos estos problemas se pueden modelizar como un Problema de
Programacion Lineal y resolverse con el Algoritmo del Simplex para
Redes (Bazaraa et al. 1990, Capıtulo 9)
El algoritmo realiza las operaciones del Simplex directamente sobre el
grafo lo que, en algunos casos, permite resolver problemas 200 o 300
veces mas rapido que el algoritmo del simplex normal.
7.1 Definiciones
Un grafo consta de un conjunto de vertices (nodos), V , de un conjunto
de aristas, E, y/o de un conjunto de arcos, A, que unen los vertices.
Si en el grafo solamente hay:
Aristas, se dice que es un grafo no dirigido.
Arcos, se dice que es un grafo dirigido.
En otro caso se trata de un grafo mixto.
2
Se denomina flujo a cualquier “bien” (tangible o no) que circule por las
conexiones del grafo (o red) (electricidad, vehıculo, mensaje, tiempo).
Una ruta es una secuencia de arcos y/o aristas que unen dos vertices.
Un ciclo es una ruta que une un vertice consigo mismo.
Un grafo es conexo si cualquier pareja de vertices puede unirse con una
ruta sobre el grafo.
Un arbol generador es un subconjunto de |V | − 1 arcos que conecta
todos los vertices del grafo y no contiene ciclos.
Una cortadura se define a partir de un subconjunto de vertices S ⊆ V ,
como el conjunto de arcos (S, V \ S).
3
7.2 Arbol generador de coste mınimo
ONO se esta planteando trazar una red de television por cable para
dar servicio a cinco nuevas areas recientemente urbanizadas. La si-
guiente figura representa los enlaces que podrıan establecerse entre las
cinco zonas. El coste asociado a cada arista indica los kilometros de
cable que serıan necesarios. La empresa desea encontrar el trazado de
red de coste mınimo.From \ To Node1 Node2 Node3 Node4 Node5 Node6
Node1 1 5 7 9
Node2 6 4 3
Node3 5 10
Node4 8 3
Node5
Node6
4
Se puede resolver utilizando un algoritmo greedy por lo que no es ne-
cesaria la Programacion Lineal.
1
4
3
2
6
51
5
7
9
3
6
4
5
10 8
3
(1, 2) −→ (2, 5) −→ (2, 4) −→ (4, 6) −→ (1, 3)
5
7.3 Problema de flujo de coste mınimo
Dado G = (V, A) un grafo dirigido,
V = {1, . . . , m} el conjunto de vertices y
A = {(i, j), . . . , i, j ∈ V }, su conjunto de arcos.
En el que,
Cada vertice tiene asociado un numero bi que representa la oferta o
demanda en ese vertice de un determinado bien.
Si bi > 0, se dice que i es un vertice origen
Si bi < 0, se dice que i es un vertice destino
Si bi = 0, se dice que i es un vertice de transbordo
Cada arco tiene asociada una variable xij ≥ 0 que indica el flujo en-
viado desde i hasta j, y una cantidad cij que indica el coste de enviar
una unidad desde i a j.
6
El Problema de Flujo de Coste Mınimo consiste en determinar
como enviar la oferta disponible a traves de la red a fin de satisfacer
la demanda con un coste mınimo.
Min∑m
i=1
∑m
j=1cijxij
sa:∑m
j=1xij −
∑m
k=1xki = bi, i = 1, 2, . . . , m
xij ≥ 0, ∀(i, j)
Se trata del Problema del Transbordo introducido en el tema anterior.
Hay situaciones en las que el flujo que puede pasar por cada arista
esta limitado, esto se traduce en cotas para las variables:
lij ≤ xij ≤ uij
7
7.4 Problema de flujo maximo
Determinar el flujo maximo que se puede enviar a traves de una red
dirigida desde un punto origen, 1, a un punto de destino, m, teniendo
en cuenta que cada arco tiene asociado un valor uij que indica el flujo
maximo que puede pasar por dicho segmento de la red.
Max f
sa:∑m
j=1xij −
∑m
k=1xki =
f i = 1
0 i 6= 1 o m
−f i = m
0 ≤ xij ≤ uij , ∀(i, j)
Encontrar una cortadura en el grafo de capacidad mınima.
8
Ejemplo: Tres refinerıas envıan gasolina a dos terminales de distribucion
a traves de la siguiente red de oleoductos. La gasolina fluye en la direccion
marcada por los arcos. La capacidad de cada segmento del oleoducto en
miles de barriles diarios se indica en el arco. Determinar el numero maximo
de barriles que pueden distribuirse diariamente y como se llevarıa a cabo la
distribucion.
3
2
1
5
4
6
8
7
20
10
50
20
15
20
10
10
30
30
50
20
9
7.5 Camino mas corto
El problema del camino mas corto consiste en encontrar sobre una red
la ruta mas corta entre un origen, 1, y un destino, m.
Se puede modelizar como un problema de flujo de coste mınimo en el
que el vertice asociado al origen oferta una unidad y la demanda el
vertice asociado al destino tambien es uno.
Min∑m
i=1
∑m
j=1cijxij
sa:∑m
j=1xij −
∑m
k=1xki =
1 i = 1
0 i 6= 1 o m
−1 i = m
xij ≥ 0, ∀(i, j)
Algoritmos: Simplex para Redes, Dijkstra, Floyd
10
Ejemplo: RentaCar quiere disenar un plan renove para su flota de
automoviles para los proximos cinco anos. Al principio de cada ano
debe decidirse si se reemplaza un automovil o si por el contrario con-
viene dejarlo en activo. Un automovil debe estar en servicio por lo
menos un ano, pero debe reemplazarse despues de tres anos. La si-
guiente tabla proporciona el coste en euros de reemplazar un vehıculo
en funcion del ano en el que se adquiere y del numero de anos que lleva
en funcionamiento.
Coste de reemplazamiento
Ano Compra 1 2 3
2003 4000 5400 9800
2004 4300 6200 8700
2005 4800 7100 -
2006 4900 - -
11
7.6 CPM, Metodo del Camino Crıtico
Proyecto: conjunto de actividades interrelacionadas, en el cual la
realizacion de cada actividad requiere tiempo y recursos.
CPM: metodo de ayuda en la planificacion, programacion y control de
proyectos, cuando se conoce con certeza la duracion de las actividades.
El objetivo suele ser llevar a cabo el proyecto en el menor tiempo
posible.
Procedimiento:
1. Definir las actividades del proyecto
2. Disenar la red que representa el proyecto
3. Resolver el problema
4. Traducir la solucion a un programa de tiempo
13
1. Elaborar una lista con todas las actividades del proyecto indicando
para cada una de ellas:
Las actividades predecesoras.
La duracion y cantidad de recursos (si los hay) necesarios para
su ejecucion.
2. Disenar la red que representa el proyecto:
Cada actividad se representa mediante un vertice.
Se anaden dos vertices ficticios que representan, respectivamen-
te, las actividades principio y final del proyecto.
Las relaciones de precedencia entre actividades se modelizan
mediante arcos. Cada arco (i, j) tiene asociado un coste que
indica el tiempo de ejecucion de la actividad i.
Cada vertice puede tener asociado un peso que representa la
cantidad de recursos que consume la actividad i.
14
Ejemplo: New Computer esta a punto de lanzar una oferta de nuevos
ordenadores. Cada ordenador consta de dos partes, una pantalla y un
pack formado por, la CPU, el teclado y el raton. Antes de producir
cualquiera de las componentes es necesario conseguir los materiales
y formar a los trabajadores que deben realizar el montaje. El pack
que incluye la CPU requiere pasar por un control de calidad antes de
ser embalado con la pantalla. La siguiente tabla indica la duracion de
cada actividad y sus predecesores. Disenar la red que permite describir
el proyecto.
15
Actividad Predecesores Duracion
A = Formacion de trabajadores No tiene 6
B = Conseguir materiales No tiene 9
C = Produccion de 1 pantalla A,B 8
D = Produccion de un Pack A,B 7
E = Control de calidad del Pack D 10
F = Embalado C,E 12
Inicio
B
A
D
C
E
F Final
0
0
6
69
9
7
10
8
12
16
Para cada actividad i definimos: xi = instante en el que comienza i
Min xFinal − xInicio
sa: xA ≥ xInicio
xB ≥ xInicio
xC ≥ xA + 6
xC ≥ xB + 9
xD ≥ xA + 6
xD ≥ xB + 9
xE ≥ xD + 7
xF ≥ xC + 8
xF ≥ xE + 10
xFinal ≥ xF + 12
xFinal − xInicio = duracion total del proyecto
17
Camino más corto
Algoritmo de Dijkstra: calcula los caminos más cortos desde un vértice origen a todos los demás vértices de la red