problemas redes

36
EL PROBLEMA DEL ARBOL DE EXPANSIÓN MÍNIMA EL PROBLEMA DE LA RUTA MÁS CORTA EL PROBLEMA DE FLUJO MÁXIMO EL PROBLEMA DE FLUJO A COSTO MÍNIMO Investigación de Operaciones II Ing. César Canelo Sotelo

Upload: dariojara1306

Post on 21-Jul-2015

185 views

Category:

Education


0 download

TRANSCRIPT

EL PROBLEMA DEL ARBOL DE EXPANSIÓN MÍNIMAEL PROBLEMA DE LA RUTA MÁS CORTA

EL PROBLEMA DE FLUJO MÁXIMOEL PROBLEMA DE FLUJO A COSTO MÍNIMO

Investigación de Operaciones IIIng. César Canelo Sotelo

EL PROBLEMA DEL ÁRBOL DE EXPANSIÓN MÍNIMA

• Este problema trata de encontrar un árbol queconecte o comunique a todos los nodos de unared, con una longitud total mínima de conexión.

• El problema de Árbol de Expansión Mínimaconsiste en determinar el conjunto de aristas deuna red que conecta todos los nodos, tal que seminimiza la suma de la longitud de las aristas. Esevidente que este conjunto de aristas no debecontener ciclos.

• Este problema también se conoce como el“Problema de Árbol Mínimo de MáximoAlcance”.

EL PROBLEMA DEL ÁRBOL DE EXPANSIÓN MÍNIMA

DEFINICIÓN

Para una red con n nodos, un árbol deexpansión es un conjunto de n-1 aristas queconectan los nodos de la red y no contieneciclos.

Un árbol de expansión de longitud mínima enuna red es un Árbol de Expansión Mínima.

EL PROBLEMA DEL ÁRBOL DE EXPANSIÓN MÍNIMA

12

4 7

(1,2)-(2,3)-(3,1) es un ciclo.

(1,3)-(1,2) es un árbol de expansión.

(1,2)-(2,3) es un árbol de expansión.

(1,3)-(3,2) es el árbol de expansión mínima.

1

3

2

ALGORITMO PRIM

• Inicialmente consideramos al conjunto de nodos de la red como nodos no conectados o aislados y lo denotamos: U = {1, 2, 3, … , n}, y denotamos por S el árbol que es el conjunto de nodos conectados, que inicialmente es vacío.

• Comenzamos eligiendo arbitrariamente cualquier nodo de U, por ejemplo el nodo 2 y lo incluimos dentro de Sexcluyéndolo de U, es decir S={2} y U={1, 3, … , n}.

• Identificamos el nodo no conectado más próximo al árbol S, y lo incluimos en S.

• Se repite el procedimiento, determinando el nodo no conectado más próximo a cualquiera de los nodos conectados, es decir el nodo de U más próximo a cualquiera de los nodos del árbol S, hasta incorporar a S todos los nodos de la red.

EJEMPLO

El campus de una universidad tiene 5microcomputadoras. La distancia entre cadapar de computadoras (en 100 mts) se indicaen la figura. Las computadoras deben estarinterconectadas mediante un cablesubterráneo.

Determine cómo deben conectarse lascomputadoras para que la longitud total decable requerido sea mínimo.

4

1 2

35

1

3

6

4

2

2

45

2

Las aristas (1, 2), (2, 5), (5, 3) y (5, 4)forman el árbol de expansión mínima

Iteración Conjunto de nodos conectados

Longitud de la arista

Par de nodos conectados

Inicial1234

{ 5 }{5, 2}

{5, 2, 1}{5, 2, 1, 3}

{5, 2, 1, 3, 4}

--2124

--5 – 22 – 15 – 35 – 4

Σ = 9

EL PROBLEMA DE LA RUTA MÁS CORTA

• Este problema trata de encontrar la ruta más corta(trayectoria de longitud mínima) de un nodo origen acualquier otro nodo de la red.

• Sea el grafo G=(X, A), en el cual cada arco tiene unaetiqueta no negativa, y donde un nodo se especificacomo origen. El problema es determinar el costo delcamino más corto desde el origen a todos los demásnodos de X, donde la longitud de un camino es la sumade los costos de los arcos del camino.

• El costo de un camino puede indicar un costo, tiempo,distancia o algún recurso que tiene un valor.

EL PROBLEMA DE LA RUTA MÁS CORTA

Si Cij >= 0 es el costo unitario del arco Aij que va del nodo i al nodo j, entonces, Cij no satisface la propiedad geométrica:

“La distancia más corta y por ende más económica entre dos puntos, es la que emplea la recta que une a esos dos puntos”.

EL PROBLEMA DE LA RUTA MÁS CORTA

En la siguiente figura se tiene que no se cumplenecesariamente la siguiente desigualdad:

Cij + Cjk >= Cik (1)

Cik

Cij Cjk

En una red se puede cumplir cualquiera de las siguientes relaciones:

Cik >= Cij + Cjk o bien Cik <= Cij + Cjk (2)

Si se cumpliera siempre la desigualdad (1), entonces los problemas de redes ya tendrían soluciones, pero ese no es el caso en la redes de optimización.

i k

j

ALGORITMO DE DIJKSTRA• Es un algoritmo ávido que opera a partir de un conjunto S

de nodos, cuya distancia más corta desde el origen ya esconocida.

• En principio, S contiene sólo el nodo origen.• En cada iteración, se agrega algún nodo restante de X a S,

cuya distancia desde el origen es la más corta posible.• Suponiendo que todos los arcos tienen costo no negativo,

siempre es posible encontrar un camino más corto entre elorigen y el nodo de X que pasa solo a través de los nodosde S.

• En cada iteración, se utiliza un arreglo D[ ] para registrar lalongitud del camino más corto a cada nodo.

• Una vez que S incluya a todos los nodos, D[ ] contendrá ladistancia más corta del origen a cada nodo.

1

52

43

PROBLEMAEn la siguiente red, encontrar los caminos más cortos desde el nodo 1 a todosLos demás nodos de la red.

10 100

50

30

6010

20

1

52

43

10 100

6050 10

20

30

Iteración S j D[2] D[3] D[4] D[5]

Inicial1234

{1}{1, 2}

{1, 2, 4}{1,2,4,3}

{1,2,4,3,5}

-- 10 ∞ 30 1002 -- 60 30 1004 -- 50 -- 903 -- -- -- 605 -- -- -- --

1

5

3 4

2

10

30

20

10Caminos más cortos desde el nodo 1 a cada uno de los demás nodos de la red.

EL PROBLEMA DE REEMPLAZO

• Este problema consiste en determinar una política óptima dereemplazo de una maquina o equipo para un período de tiempo.

• El período de tiempo se puede dividir en unidades de tiempo, ypara cada unidad de tiempo se debe determinar si la máquina esreemplazada por otra nueva o se continúa con la misma máquina.

• Con todas las alternativas de reemplazo que hay entre las unidadesde tiempo contenidas dentro del período de reemplazo, se puedemodelar una red, en donde los nodos indican el inicio o fin de unaunidad de tiempo, y los arcos indican el transcurrir de una unidadde tiempo.

• En cada arco (i, j) se determina el costo que significa comprar unamáquina a inicio de la unidad de tiempo i y operarlo hasta el fin dela unidad de tiempo i (equivalente al inicio de la unidad de tiempoj).

• El problema se reduce a un problema de la ruta más corta, pues setrata de hallar la ruta de costo mínimo entre el inicio y el fin delperíodo de reemplazo. Se aplica el algoritmo de Dijkstra.

EL PROBLEMA DE REEMPLAZO

0 n-11 n2 . . .

C0,2

C2,n

C1,n-1

C0,1 C1,2 Cn-1,n

C0,n-1

C1,n

C0,n

PROBLEMA

Se compra una máquina en el año 1 y se planea una política de reemplazo para los próximos 5 años. Sea Cij (i<j) el costo total (adquisición, operación, mantenimiento y valor residual).

C12 = 50 C1,3 = 80 C2,3 = 20

C2,4 = 35 C3,4 = 37 C3,5 = 40

C4,5 = 23 C4,6 = 33 C5,6 = 18

La máquina no puede ser usada por más de dos años. Determine la política óptima de reemplazo.

CADENAS MÚLTIPLES ECONÓMICAS EN UNA RED

• Este problema trata de determinar la ruta más económica entre cualquier par de nodos de una red.

• El conjunto de todas estas rutas, se llaman “Cadenas Múltiples Económicas”.

• Este problema puede resolverse con el algoritmo de Dijkstra, tomando por turno cada vértice como vértice origen. Una forma más directa de solución es el algoritmo de Floyd.

ALGORITMO DE FLOYD

Se trabajará sobre un grafo G=(X,A) en el cual cada arco (ij) tiene un costo no negativo Cij. El problema es encontrar el camino mas corto entre i y j para cada par de vértices (i,j).Por conveniencia, se supone que los nodos en X están numerados 1, 2, … , n. El algoritmo de Floyd usa una matriz A de nxn en la que se calculan las longitudes de los caminos más cortos.

• Inicialmente se hace A0[i,j]=C[i,j] para toda i≠j. Si no existe un arco que vaya de i a j, se supone que C[i,j]= ∞. Cada elemento de la diagonal se hace igual a cero.

• Después se hacen n iteraciones en la matriz A, en cada iteración A se transforma.

ALGORITMO DE FLOYD

• Al final de la k-ésima iteracion, A[i,j] tendrá por valor la longitud más pequeña de cualquier camino que vaya desde el nodo i hasta el nodo j y que no pase por un nodo con un número mayor que k. Esto es, i y j, los vértices extremos del camino, pueden ser cualquier vértice, pero todo vértice intermedio debe ser menor o igual que k.

• En la k-ésima iteración, se aplica la sgte. fórmula para calcular A:

Ak-1[i,j]

Ak[i,j] = min Ak-1[i,k]+ Ak-1[k,j]

PROBLEMAPara el grafo dirigido de la figura, determine los caminos más cortosentre todos los pares de nodos.

1 2 3

8

2

3

5

EL PROBLEMA DE FLUJO MÁXIMO

• Mucha situaciones se modelan mediante una reden la que se podrían considerar que los arcostienen una capacidad que limita la cantidad de unproducto que se podría enviar a través del arco.En estas situaciones, a menudo se deseatransportar la cantidad máxima de flujo desde unpunto de partida (conocido como fuente) haciaun punto terminal (llamado destino).

• Esta clase de problemas se llaman problemas deflujo máximo.

EL PROBLEMA DE FLUJO MÁXIMO

El flujo que pasa a través de una red debesatisfacer las siguientes restricciones:

a) El flujo entra a la red únicamente por el nodofuente. Matemáticamente se representa por:

Σ Xij - Σ Xjk = - v , si j = s

Donde v >= 0 es el flujo total que entra a lared y s es el nodo fuente. Por convención, elflujo que sale de un nodo es negativo (eflujo)y el flujo que entra a un nodo es positivo(influjo).

EL PROBLEMA DE FLUJO MÁXIMO

b) Hay conservación de flujo en un nodointermedio, es decir el total del flujo que entra encierto nodo es igual al total del flujo que sale delmismo. Matemáticamente se tiene:

Σ Xij - Σ Xjk = 0 , para toda j ≠ s ≠ t.

c) El flujo sale de la red únicamente por el nododestino. Matemáticamente se escribe como:

Σ Xij - Σ Xjk = v , si j = t.

d) El flujo en un arco debe conformar lorequerimientos mínimos y las capacidadesmáximas del arco, es decir:

0 <= lij <= xij <= uij para toda Aij.

EL PROBLEMA DE FLUJO MÁXIMO

Modelo de programación lineal:

Xij = cantidad de flujo que pasa del nodo i al nodo j.

Max v = Σ Xsj

s. a. :

- v , si j = s

Σ Xij - Σ Xjk = 0 , si j ≠ s ≠ t

v , si j = t

0 <= lij <= xij <= uij

TEOREMA DE MINIMO CORTE-MÁXIMO FLUJO

En una red de transporte dada, el valormáximo de un flujo es igual a la capacidadmínima de un corte, esto es:

Max Ø(xn) = Min C W¯ (Y)

Esto quiere decir, que si se logra encontrar unflujo igual a la capacidad de un corte, se estaráseguro de que dicho flujo es máximo.

El corte mínimo puede no ser único.

TEOREMA DE MÍNIMO CORTE-MÁXIMO FLUJO

s t

1

2

13

1

2 2

Y = 1, 2, t

Min C W¯ (Y) = 1 + 2 = 3 Ømax = 3

ALGORITMO DE FORD Y FULKERSON

Es un algoritmo iterativo, consiste en el aumentopaulatino del flujo (Xo) hasta que éste llegue a sermáximo.

La búsqueda del flujo máximo se realiza en dosfases:

1ra Fase: Etiquetado

Se identifica un camino de Xs a Xt, y se coloca unaetiqueta a cada nodo del camino.

2da Fase: Asignación de flujo

Se asigna flujo al camino etiquetado.

NOMENCLATURA EMPLEADAXij >= 0 Flujo del nodo i al nodo j.Xji >= 0 Flujo ficticio que va del nodo j al nodo i.uij >= 0 Capacidad máximo de flujo del arco Aij (u Є Z).

s: Nodo fuente.t: Nodo destino.gij = uij – xij Capacidad no saturada del arco Aij,

(gij=0 arco saturado).[s⁺, ∞ ] : Etiqueta del nodo fuente.[i⁺ , δj ] : Etiqueta de un nodo vecino del nodo i. i⁺: Nodode donde proviene el flujo. δj: Cantidad de flujo que aúnpuede pasar por el arco Aij.

[k¯, δj] : Etiqueta para un nodo j vecino del nodo k, para elcual es posible un flujo ficticio ( k j). δj = min(δj , Xkj)

PROBLEMA

Una empresa multinacional tiene un programaanual de distribución de un determinadoproducto. Estos productos se producen en dosfábricas. La fábrica 1 con una capacidad máximade producción de 10 tons. al año y la fábrica 2con capacidad máxima de producción de 7 tons.al año. Los excedentes de la fábrica 3 puedentransferirse a la fábrica 2, para esto existe unadisponibilidad de transporte de un máximo de 8tons. al año. Hay tres distribuidores mayoristas, lasiguiente matriz indica la capacidad máxima detransporte anual desde las fábricas hacia losdistribuidores mayoristas.

PROBLEMA

DistribuidoresFábricas

3 4 5

1 8 4 -

2 2 3 3

Los excedentes de 3 y 5 pueden transferirse a 4. La capacidadmáxima de transporte es de 3 tons. y 4 tons. respectivamente .De los distribuidores mayoristas se entregan los productos almercado consumidor. Los requerimientos de los distribuidoresson de 4, 7 y 5 toneladas respectivamente.Determine el flujo máximo anual que puede circular por elsistema.

EL PROBLEMA DE FLUJO MÁXIMO A COSTO MÍNIMO

• Este problema es una combinación de dos problemas: Flujo máximo y costo mínimo.

• Un problema de flujo máximo puede tener soluciones óptimas alternativas, cuando se incluye costos en la red, al menos una solución tiene el costo mínimo.

EL PROBLEMA DE FLUJO MÁXIMO A COSTO MÍNIMO

El problema de flujo máximo a costo mínimo puede representarse matemáticamente como:

Min Z = ΣCijXij

s.a. : - v, si j=s

ΣXij - ΣXjk = 0, si j≠ s ≠ t

v, si j=t

0 <= lij <= Xij < uij

En esta formulación, las variables de decisión son Xij y el flujo total v.

ALGORITMO DE BUSACKER Y GOWEN

1) Xij=0 para todos los arcos Aij y v=0.

2) Construir nuevos costos Ĉij en el arco Aijbasado en lo siguiente:

• Ĉij= Cij, si Xij=0, cuando no hay flujo en elarco Aij.

• Ĉij=∞, si Xij=Uij, cuando el arco Aij estásaturado.

• Ĉji=-Cij, si Xij>0, arco en reversa para posiblereducción de flujo.

ALGORITMO DE BUSACKER Y GOWEN

3) Encuéntrese la ruta más económica del nodo s al nodo t, basado en los costos Ĉij, utilizando cualquier algoritmo disponible.

4) Envíese la mayor cantidad de flujo por la ruta más económica, es decir una cantidad de flujo con el cual uno o varios arcos que componen esa ruta se saturen.

5) Añádase al flujo actual en toda la red, el flujo adicional que se encuentre en el paso anterior. Si todas las rutas que conducen al destino están saturadas, la solución óptima ha sido encontrada. De otra manera, regrese al paso 2.

PROB.En la red de la figura, los números en los arcos representan respectivamentela capacidad mínima, la capacidad máxima y el costo unitario . Determine el flujo máximo a costo mínimo.

s 1

3

4

2 t

(0,1,1) (0,1,1)

(0,1,1) (0,1,2) (0,1,1)

(0,2,2)(0,2,2)

G R A C I A S