MuchosdelosproblemasdeInvestigacio ... · El algoritmo realiza las operaciones del Simplex...

22
Tema 7: Optimizaci ´ on sobre Redes Muchos de los problemas de Investigaci´ on Operativa pueden modelizar- se y resolverse sobre un grafo: conjunto de ertices o nodos conectados con arcos y/o aristas. Dise˜ nar el trazado de una red de fibra ´ optica de manera que se cubran ciertos puntos de la manera m´ as econ´ omica posible. ´ Arbol generador de coste m´ ınimo. Determinar la ruta m´ as corta entre dos ciudades. Camino m´ as corto. Determinar la cantidad m´ axima de electricidad que se puede enviar a trav´ es de una red el´ ectrica. Problema de flujo m´ aximo. 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

Transcript of MuchosdelosproblemasdeInvestigacio ... · El algoritmo realiza las operaciones del Simplex...

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

2003

2004

2005

2006

2007

4000

4300 4800

4900

5400

9800

6200

8700

7100

12

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

Árbol Generador de Coste Mínimo

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

Flujo máximo

Método del Camino Crítico