Algoritmos GRAFOS Y Redes IO3

13
MÉTODO DE REDES 1 ALGORITMO DE LA RUTA MÁS CORTA 1.1 Ejercicio de Aplicación 2 ARBOL DE EXPANSIÓN MINIMA 2.1 Ejercicio de Aplicación 3 ALGORITMO DEL FLUJO MÁXIMO .3.1 Ejercicio de Aplicación CONCLUSIONES BIBLIOGRAFÍA

description

Algoritmos GRAFOS Y Redes IO3

Transcript of Algoritmos GRAFOS Y Redes IO3

Page 1: Algoritmos GRAFOS Y Redes IO3

MÉTODO DE REDES

1 ALGORITMO DE LA RUTA MÁS CORTA

1.1 Ejercicio de Aplicación

2 ARBOL DE EXPANSIÓN MINIMA

2.1 Ejercicio de Aplicación

3 ALGORITMO DEL FLUJO MÁXIMO

.3.1 Ejercicio de Aplicación

CONCLUSIONES

BIBLIOGRAFÍA

Page 2: Algoritmos GRAFOS Y Redes IO3

TEORIA DE GRAFOS O REDES

Aunque muchos de los problemas de optimización de redes pueden formularse como programas lineales o

enteros y resolverse con los algoritmos correspondientes, existen métodos específicos que aprovechan la

estructura especial de cada problema y su representación en una red, permitiendo procedimientos de solución

más eficientes.

Existen un gran número de situaciones en investigación de operaciones que se pueden modelar y resolver

adecuadamente como redes (nodos conectados por ramas). A manera de ilustración considere las siguientes

situaciones:

a) El diseño de una red de ductos de gas natural de Camisea, que conectan la fuente con los puntos de entrega en las principales ciudades del país. El objeto del modelo es minimizar el costo de construcción del ducto. b) La determinación de la ruta más corta entre dos ciudades en una red de carreteras existente.c) La determinación del programa de flujo de costo mínimo de los campos petroleros a las refinerías a través de una red de ductos.d) La determinación del programa de tiempo (fechas de inicio y de terminación) para las actividades de un proyecto de construcción.

La solución de estas situaciones y de otras semejantes se logran por medio de una variedad de algoritmos de

optimización de redes. Algunos de estos algoritmos son:

Algoritmo de la ruta mas corta.

Árbol de expansión mínima.

Algoritmo del flujo máximo.

Algoritmo de redes capacitadas de costo mínimo.

Algoritmo de la ruta crítica.

ALGORITMO DE LA RUTA MAS CORTA

Un problema de la ruta más corta involucra una red conexa con un costo no negativo asociado a cada rama. A

un nodo se le denomina fuente y a otro nodo se le denomina destino. El objetivo es determinar una ruta que

una a la fuente con el origen, de manera que la suma de los costos asociados con las ramas en la ruta sea

mínima.

Los problemas de la ruta más barata se resuelven mediante el siguiente algoritmo, en cuya aplicación todo

empate será resuelto arbitrariamente. Se le conoce también como el algoritmo de etiquetas.

Se han desarrollado dos tipos de algoritmos: el algoritmo de Dijkstra y el algoritmo de Floyd. Los cuales se

aplican para redes cíclicas y acíclicas

El algoritmo de Dijkstra tiene por objeto determinar las rutas mas cortas entre el nodo fuente y los demás

nodos de la Red o grafo. El algoritmo de Floyd es mas genérico, permite determinar la rutas mas corta entre

dos nodos cualquiera que forman parte del grafo o red.

El algoritmo de Dijkstra

Sea U la distancia mas corta del nodo fuente (nodo origen) al nodo i (mas próximo) , sea dij la longitud del

arco (i, j). Entonces el algoritmo define etiquetas Permanentes y Temporales:

Etiqueta permanente: [uj, i] y Etiqueta temporal (uj, i)

La etiqueta inicial estará dado por: [0, -]

Page 3: Algoritmos GRAFOS Y Redes IO3

Paso 1. Etiquetar el nodo inicial con etiqueta permanente:[0, -].

Paso 2. Etiquetar los nodos conectados con el nodo inicial con etiquetas temporales. El nodo con la menor

distancia: min [uj, i], se le debe asignar como etiqueta permanente.

Paso 3. Etiquetar ahora todo los nodos conectados con el nodo asignado como etiqueta permanente. Y

sumar las distancias dentro de las etiquetas temporales. [ui + dij ; i]. El nodo a elegir como etiqueta

permanente será: min [ui + dij ; i].

Paso 4. Repetir el paso3 hasta que todos los nodos del grafo tengan etiquetas permanentes, FIN.

Ejercicio de Aplicación.

Smart conduce diariamente a su trabajo. Debido a que acaba de terminar un curso en análisis de redes, él

puede determinar la ruta más corta al trabajo. Desafortunadamente, la ruta seleccionada está excesivamente

patrullada por la policía y con todas las multas pagadas por exceso de velocidad, la ruta más corta no es la

mejor elección. Por consiguiente, Smart ha decidido elegir una ruta que maximice la probabilidad de no ser

detenido por la policía.

La red en la figura muestra las posibles rutas entre su hogar y el trabajo y las probabilidades asociadas de que

no lo detengan en cada segmento. Por consiguiente, la probabilidad de que no lo detengan camino al trabajo

es el producto de las probabilidades asociadas con los segmentos sucesivos de la ruta seleccionada. Por

ejemplo, la probabilidad de que no lo multen en la ruta 1 3 5 7 es 0.9 * 0.3 * 0.25 = 0.0675. El

objetivo de Smart es seleccionar la ruta que maximice la probabilidad de que no lo multen.

El problema se puede formular como un modelo de la ruta más corta, utilizando una transformación

logarítmica que convertirá el producto probabilidad en la suma de los logaritmos de probabilidades, es decir,

si p1k = p 1 * p 2 * ..... * p k es la probabilidad de que no lo detengan, entonces

log p 1k = log p 1 + log p 2 + ….. + log p k

Matemáticamente la maximización de p 1k es equivalente a la maximización de log p 1k .

Debido a que log p 1k < = 0, la maximización de log p 1k , a su vez, es equivalente a la minimización de –

log p 1k . Utilizando ésta transformación, las probabilidades individuales p la figura anterior se reemplazan

con –log p, para todas las j en la red, por tanto da la red de la ruta más corta en la figura siguiente:

0.8

0.22 4

1

6

7

3 50.9

0.3

0.40.6

0.1

0.35

0.25

0.5

Page 4: Algoritmos GRAFOS Y Redes IO3

Utilizando TORA, la ruta más corta en la figura anterior, está definida por los nodos 1, 3, 5 y 7, con una “longitud” correspondiente de 1.1707 (= - log p 17 ) . Por tanto, la probabilidad máxima de que no lo detengan es p 17 = 0.0675.

2.1 ARBOL DE EXPANSIÓN MINIMA

Un problema de recorrido mínimo involucra a un conjunto de nodos y a un conjunto de ramas propuestas, ninguna de las cuales es orientada. Cada rama propuesta tiene un costo no negativo asociado a ella. El objetivo es construir una red conexa que contenga a todos los nodos y que sea tal que la suma de los costos asociados con las ramas realmente empleadas sea mínima. Debe suponerse que hay suficientes ramas propuestas para asegurar la existencia de una solución.

No es difícil ver un problema de recorrido mínimo se resuelve siempre mediante un árbol. (si dos nodos en una red conexa están unidos mediante dos rutas, una de estas rutas debe contener una rama cuya eliminación no desconecte a la red. El eliminar la rama puede solamente abatir el costo total). Un árbol de recorrido mínimo puede encontrarse al seleccionar inicialmente cualquier nodo y determinar cual de las ramas que coinciden con el nodo seleccionado tiene el menor costo. A esta rama se le acepta como parte de la red final. Después se completa la red iterativamente. En cada etapa del proceso iterativo, la atención se centra en aquellos nodos que ya se han eslabonado. Todas las ramas que conectan a estos nodos con nodos inconexos se consideran y se identifica a la más barata de las ramas. Los empates se resuelven arbitrariamente. A esta rama se le acepta como parte de la red final. El proceso iterativo termina cuando se han eslabonado todos los nodos.

Si todos los costos son diferentes (esto siempre se puede obtener mediante cambios infinitesimales), se puede probar que el árbol de recorrido mínimo es único y que es un producto del algoritmo anterior para cualquier selección de nodo inicial.

2.1.1 Ejercicio de Aplicación

El servicio de Parques Nacionales planea desarrollar una zona campestre para el turismo. Se han señalado

cuatro sitios en el área para llegar a ellos en automóviles. Estos sitios y las distancias ( en millas ) entre ellos, se presentan en la tabla.

  Entrada al parque Cascada Formación rocosa Mirador Pradera

Entrada al parque .... 7.1 19.5 19.1 25.7

Cascada 7.1 .... 8.3 16.2 13.2

Formación rocosa 19.5 8.3 .... 18.1 5.2

Mirador 19.1 16.2 18.1 .... 17.2

Pradera 25.7 13.2 5.2 17.2 ....

Para dañar lo menos posible al medio ambiente, el Servicio de Parques desea minimizar el número de millas de caminos necesario para proporcionar el acceso deseado. Determínese cómo deberán construirse los caminos para lograr este objetivo.

SOLUCION

0.52288

0.39794

0.09691

0.69897

2 4

1

6

7

3 5

0.04576

0.22185

1.

0.45593

0.60206

0.30103

Page 5: Algoritmos GRAFOS Y Redes IO3

Los nodos son los cuatro sitios que van a desarrollarse y la entrada del parque, mientras que las ramas propuestas son los posibles caminos para unir los sitios. Los costos son el número de millas. La red completa se muestra en la siguiente figura, en donde cada sitio está representado por la primera letra de su nombre.

Se selecciona arbitrariamente la entrada del parque como nodo inicial. Los costos de las ramas que llegan a este nodo se enlistan en el primer renglón de la tabla. Ya que el menor costo es 7.1, se agrega a la red la rama que va de la entrada del parque a la cascada. Se considerarán ahora todas las ramas que unen a la entrada del parque o a la cascada con un nuevo lugar. Estas son las ramas que van de la entrada del parque a la formación rocosa, al mirador y a la pradera; así como aquellas que van de la cascada a los mismos tres sitios. De estas, la rama más barata es aquella que va de la cascada a la formación rocosa así que se agrega a la red.Después se consideran todas aquellas ramas que vayan hacia el mirador o la pradera, desde la entrada del parque, la cascada o la formación rocosa. De estas, la rama que va de la formación rocosa a la pradera tiene el menor costo, así que se agrega a la red. En esta etapa, el único sitio no comunicado es el mirador. La rama más barata que une al mirador con cualquiera de los otros sitios, es la que corresponde a la cascada. Agregando esta rama a la red, se llega a la siguiente figura la cual tiene un costo mínimo de

Z* = 7.1 + 8.3 + 5.2 + 16.2 = 36.8 millas

2.2 ALGORITMO DE FLUJO MÁXIMOEl objetivo en un problema de flujo máximo es desarrollar un programa de embarque que maximice la cantidad de material enviado entre dos puntos. Al punto de origen se le denomina fuente; al punto final se le denomina destino. Existen varias vías de embarque que unen a la fuente con el destino, directamente o pasando por lugares intermedios denominados empalmes. Se considera que no es posible almacenar material en los empalmes, es decir, que cualquier material que llega a un empalme es embarcado inmediatamente a otro sitio.

Una red puede ser el modelo para un problema de flujo máximo. La fuente, el destino y los empalmes se representan mediante nodos, mientras que las ramas representan los conductos a través de las cuales se transportan materiales. Asociado a cada nodo N y a cada rama NM que salga de N, hay un número no negativo, o capacidad, que representa la cantidad máxima de material que puede embarcarse de N a través de NM.

5.2

18.125.7

13.2

19.517.2

8.3

19.17.1 16.2

C

ME

P F

5.2

8.3

7.1 16.2C

ME

P F

Page 6: Algoritmos GRAFOS Y Redes IO3

EJEMPLO:

La figura anterior es una red que tiene A como fuente, a D como destino y a B y C como empalmes. Cerca de los extremos de cada rama se indican las capacidades de flujo en ambas direcciones. Nótese que pueden embarcarse 7 unidades de A a C a lo largo de AC, pero en la dirección opuesta sólo pueden embarcarse 0 unidades, ésta asimetría permite, de desearse definir una orientación para AC. En contraste, los flujos a lo largo de BC pueden moverse en ambas direcciones, con una capacidad de 5 unidades en ambos sentidos.Los problemas de flujo máximo se resuelven mediante el siguiente algoritmo:Paso 1

Encuéntrese una ruta que permita el flujo positivo de material de la fuente al destino. Si no existe alguna, continúese en el paso 5.Paso 2

Determínese el flujo máximo que puede embarcarse a lo largo de esta ruta y denótese k.

Paso 3

Disminúyase la capacidad directa (es decir, la capacidad en la dirección de flujo de las k unidades) de cada rama de ésta ruta en k y auméntese la capacidad en sentido inverso en k. Agréguense k unidades a la cantidad enviada al destino.Paso 4

Continúese en el paso 1.

Paso 5

El flujo máximo es la cantidad de material entregada en el destino. El programa óptimo de embarque se determina comparando la red original con la red final. Cualquier reducción en capacidad significa un embarque.

2.2.1 Ejercicio de Aplicación

Determínese el flujo máximo de material que puede ser enviado de la fuente A al destino D, a través de la red planteada en el ejemplo anterior.

Una ruta que va de la fuente al destino es la rama AD, la cual une a estos nodos directamente. Puede permitir 8 unidades. Embarcando ésta cantidad, se envían 8 unidades a D, disminuyendo en 8 la capacidad de AD y aumentando en 8 la capacidad de DA. La red resultante se muestra en la figura siguiente:

5

DestinoFuente

10

0

100

5

A

B

D

C

8

7

4

0

0

4

5

10

0100

5

A

B

DC

0

7

4

8

0

4

Page 7: Algoritmos GRAFOS Y Redes IO3

Otra ruta de la fuente al destino que puede permitir el flujo positivo es {AC, CB, BD}. La cantidad máxima de material que puede ser enviado a lo largo de ésta ruta es de 4 unidades, es decir, la capacidad de BD. Haciendo este embarque, se incrementa en cuatro unidades el suministro en D, con lo cual se tiene 8+4 = 12. Simultáneamente, se disminuyen en 4 unidades las capacidades de AC, CB y BD y se incrementan en esta misma cantidad las capacidades de CA, BC y DB. Entonces, la figura anterior se convierte en la siguiente figura:

La ruta {AC, CD} de la figura anterior, puede permitir 3 unidades de A a D. Haciendo este embarque se aumenta en 3 unidades el suministro e D, teniéndose 12 + 3 = 15, y se disminuyen en 3 las capacidades de AC y CD. También se incrementas en 13 unidades las capacidades de CA y DC. La nueva red es la figura siguiente.

La ruta {AB, BC, CD } de la figura anterior, puede permitir 7 unidades de la fuente al destino. Haciendo este embarque se aumenta el suministro en 15 + 7 = 22 unidades y se disminuye en 7 las capacidades de AB, BC y CD. También se incrementan en 7 unidades las capacidades de BA, CB y DC. El resultado es la figura siguiente:

Destino (+8)

Fuente (-8)

1

Destino (+12)

Fuente (-12)

10

0

104

9

A

B

D

C

0

3

0

8

0

8

1

Destino (+15)

Fuente (-15)

10

3

77

9

A

B

D

C

0

0

0

8

0

8

8

Destino (+22)

Fuente (-22) 3

10072

A

B

DC0 0

0

8

7

8

Page 8: Algoritmos GRAFOS Y Redes IO3

2.3 ALGORITMO DE LA RUTA CRITICA (CMP)

El método de la ruta crítica fue diseñado para ayudar en la planificación, la programación y el control de proyectos. Un proyecto se define como una colección de actividades interrelacionadas, en la cual cada actividad requiere tiempo y recursos. El objetivo de este método es proporcionar medios analíticos para programar las actividades. Los pasos de ésta técnica son:

a) Definir las actividades del proyecto, sus relaciones de precedencia y sus requerimientos de tiempo.b) Después el proyecto se traduce a una red que muestra las relaciones de precedencia entre las actividades.c) El tercer paso indica hacer cálculos específicos de red que faciliten el desarrollo del programa de tiempo para el proyecto.

Esta técnica supone relaciones deterministas de la actividad.

2.3.1 Ejercicio de Aplicación

Cierto programa se compone de 12 subrutinas A, B, ..., L. La concepción del proyecto hace que su ejecución implique el siguiente cuadro de precedencia, costes en miles de pesetas y tiempos de compleción de las subrutinas en días.

Actividad PredecesorTiempo Tiempo Coste Coste

Normal Reducido Normal Reducido

A - 5 3 200 250

B - 4 4 300 300

C - 8 7 400 500

D A 3 2 120 150

E A 7 5 200 300

F C 5 5 300 300

G C 4 3 300 370

H B, D 3 3 800 800

I F, H 9 6 70 160

J F, H 11 7 150 200

K E, I 8 6 60 150

L G, J 10 9 100 105

a) Dibujar la red CPM.

b) Determinar el camino crítico y su duración.

c) Reducir la duración del proyecto en dos días en la forma más económica.

SOLUCION

Page 9: Algoritmos GRAFOS Y Redes IO3

a) La red CPM de ejecución de este proyecto con el criterio actividad – arco es:

CONCLUSIONES

El problema del árbol de extensión mínima consiste en encontrar las conexiones más

eficientes entre todos los nodos de la red, las que por definición no deben incluir ningún

lazo.

El problema de la ruta más corta tiene que ver con la determinación de las ramas

conectadas en una red de transporte que constituyen, en conjunto, la distancia más corta

entre una fuente y un destino.

La idea básica del algoritmo de flujo máximo es encontrar una trayectoria de

penetración que conecte el nodo fuente con el nodo destino en modo tal, que la

capacidad de cada rama en esta trayectoria sea positiva. El flujo máximo a lo largo de

esta rama debe ser igual a la capacidad mínima de todas las ramas que constituyen la

trayectoria.

D,3 I,9

F,5

H,3

K,8

L,10J,11

G,4C,8

B,4

E,7

A,5

1

6

8

4

753

2

Page 10: Algoritmos GRAFOS Y Redes IO3

BIBLIOGRAFÍA

Hillier Lieberman. INVESTIGACIÓN DE OPERACIONES. Ed. McGraw-Hill. México,

2005.

RÍOS, Sixto; INSUA, David y otros. PROGRAMACIÓN LINEAL Y APLICACIONES.

Ed. Alfaomega. Santafé de Bogotá, 1998. P. 193-320.

TAHA, Hamdy. INVESTIGACIÓN DE OPERACIONES: UNA INTRODUCCIÓN.

Sexta Edición. Ed. McGraw-Hill. México, 1998. P. 215-279.