Problemas Ecológicos Resueltos a Través de Análisis de Redes. Problemas de Flujo Máximo
- Resumen
- Desarrollo
- Algoritmo de la trayectoria de
aumento para el problema del flujo
máximo - Ejemplo
Propuesto - Conclusiones
- Materiales y
Métodos - Bibliografía y
Referencias
Apoyado en el análisis de redes como una
técnica de modelación matemática
se muestra una forma
que no por ser muy simple deja de ser muy sumamente útil
para resolver problemas ecológicos de flujo máximo
como el que se expone. Se hace uso de un ejemplo
hipotético que nos llevará a conocer el uso de la
técnica de una forma muy fácil y compresible. Se
debe decir que esta ha sido aplicada en problemas
prácticos con excelentes resultados.
Problema:
El Parque "Cristóbal Colón" tiene la
misión
de crear y comercializar los productos
turísticos extrahoteleros sobre la base de
conservación, recuperación, enriquecimiento y uso
sostenible de los recursos
naturales, históricos y socioculturales en el polo
turístico de Holguín. Sin embargo, existe una gran
preocupación en la explotación del Sendero
Ecológico "Las Guanas" en temporada pico, puesto la gran
fluidez de turistas por la red de sus senderos puede
traer cierto desequilibrio en la vida silvestre y
autóctona del lugar. Por tal razón se ha impuesto
restricciones estrictas en el número de excursiones que
fluyen por sus senderos en busca de sus disímiles
atracciones, estas restricciones difieren de una ruta del sendero
a otra. Así durante las excursiones se pueden tomar rutas
diferentes por donde podrán disfrutar de las
peculiaridades del ecosistema y
al finalizar la excursión los guías
conducirán a los visitantes a un restauran donde
podrán disfrutar de un almuerzo tradicional
cubano.
Ahora, como podríamos planear las rutas para los
diferentes grupos de
excursiones de manera que se maximice el número total de
excursiones que se pueden hacer al día sin violar los
límites
impuestos en
cada ruta?. La respuesta a este problema la veremos en los
resultados de este trabajo.
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Figura 1. Sendero Ecológico
"Las Guanas"
- E: Entrada
- I : Representación aborigen
- A: Museo Arqueológico
- B: Bohío campesino B:
Bohío campesino - M: Mirador
- T : Trapiche azucarero
- O: Restos arquelójicos
- Z: Minizoológico de fauna
autóctona - R: Restauran
Como podemos apreciar estamos delante de un problema de
flujo máximo y para adentrarnos en él, es necesario
hacer referencia a un aspecto que es su razón de ser, me
refiero al Análisis de Redes. Los problemas de Redes
surgen en una gran variedad de situaciones, por ejemplo en redes
de transporte,
redes eléctricas, y de comunicaciones, por citar algunos
ejemplos.
Al analizar cada uno de estos ejemplos podemos
distinguir características que como en el caso del Sendero
Ecológico "Las Guanas" los identifica como redes, es
decir: cada uno está formado por un conjunto de puntos o
estaciones (E, B, I, A, etc.) y un conjunto líneas que
unen ciertos pares de puntos. Que en el caso de este parque
serían los caminos que unen cada
estación
Los puntos se llaman nodos (o
vértices).
Las líneas se llaman arcos (o
ligaduras, aristas o ramas)
Los arcos se etiquetan dando nombre a los nodos en sus
puntos terminales; por ejemplo EA es el arco entre los nodos E yA
de la figura 1
Los arcos de una red pueden tener un
flujo de algún tipo que pasa por ellos, por ejemplo, los
grupos de excursiones sobre los caminos del sendero, información en los cables coaxiales de una
línea telefónica, etc.
Si el flujo a través de un arco solo se permite
en una dirección (como en las calles de un solo
sentido), se dice que el arco es un arco dirigido.
La dirección se indica con una cabeza de flecha al final
de la línea que representa el arco.
Si el flujo se permite en ambas direcciones (como en una
tubería que se puede bombear el fluido en ambas
direcciones) se dice que es un arco no dirigido o
ligadura.
Este caso donde el problema será determinar
durante la temporada pico el número de algunas excursiones
por rutas desde la entrada al sendero (estación E) al
restauran (estación R) de manera que se maximice el
número total de excursiones que se puedan hacer al
día sin violar las limitaciones impuestas o límites
superiores estrictos sobre el número de excursiones
permitidos para cada camino individual en la dirección del
nodo fuente (el nodo E ) y el nodo destino (el nodo R), donde el
resto son nodos de trasbordo.
El número que aparece en la base de la flecha da
el límite superior para ese camino en la dirección
de salida de la estación.
Nuestro objetivo es
determinar el patrón factible de flujos a través de
la red que maximiza el flujo total, desde el nodo fuente hasta el
nodo destino.
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
El problema de flujo máximo se puede formular
como un problema de programación
lineal, se puede resolver con el método
símplex. En este caso dispondremos de un algoritmo de
trayectorias aumentadas mucho más
eficiente.
Este algoritmo se
basa en dos conceptos intuitivos,
- El de una red residual
- El de una trayectoria aumentada.
Una ves que se han asignado flujos a los arcos de la red
original, la red residual muestra las capacidades
restantes (llamadas capacidades residuales) para asignar
flujos adicionales. Por ejemplo consideramos el arco E →A en
la figura anterior, que tiene una capacidad de arco de 90. Ahora
suponga que los flujos asignados incluyen un flujo de 60 a
través de este arco, lo que deja una capacidad residual
90-60=30 para cualquier asignación de flujo adicional a
través de E →A. este estado se
describe en la red de la siguiente manera:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
El número sobre el arco junto a un nodo da la
capacidad residual para el flujo desde ese nodo hasta el otro.
Por lo tanto, además de la capacidad residual de 30 para
el flujo de E a A, el 60 de la derecha indica una capacidad
residual de 60 para asignar un flujo desde A hasta E (es decir,
para cancelar algún flujo previamente asignado de E a
A).
En principio, antes de asignar cualquier flujo, la red
residual tiene la apariencia mostrada en la figura 3
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Figura 3.
Cada arco en la red original (Fig.2) se
cambió de un arco dirigido a un arco
no dirigido. No obstante, las capacidades en la
dirección original son las mismas y las capacidades en la
dirección opuesta son cero. De manera que las
restricciones sobre los flujos no cambian.
Subsecuentemente, siempre que se asigne alguna cantidad
de flujo a un arco, esa cantidad se resta de la capacidad
residual en la misma dirección y se suma a la capacidad
residual en la dirección opuesta.
Una trayectoria de aumento es una trayectoria
dirigida del nodo fuente al nodo destino en la red residual, tal
que todos los arcos en esta trayectoria tienen la capacidad
residual estrictamente positiva. El mínimo de estas
capacidades residuales se llama capacidad residual de la
trayectoria de aumento porque representa la cantidad de flujo que
es factible agregar en toda la trayectoria. Por tanto, cada
trayectoria de aumento proporciona una oportunidad de aumentar
más el flujo a través de la red
original.
El algoritmo de la trayectoria de aumento selecciona
repetidamente alguna trayectoria de aumento y agrega un flujo
igual a la capacidad residual de esa trayectoria en la red
original. Este proceso
continúa hasta que ya no hay trayectorias de aumento, con
lo que el flujo del nodo fuente al nodo destino no puede crecer.
La clave para asegurar que la solución final es
necesariamente óptima es el hecho de que las trayectorias
de aumento pueden cancelar flujos asignados con anterioridad en
la red original; así, una selección
indiscriminada de trayectorias para asignar flujos no puede
evitar el uso de una combinación mejor de asignaciones de
flujos.
Para resumir, cada iteración del algoritmo
consiste en los tres pasos siguientes:
Algoritmo de la
trayectoria de aumento para el problema del flujo
máximo.
- Se identifica una trayectoria de aumento encontrando
alguna trayectoria dirigida del nodo de origen al nodo destino
en la red residual tal que cada arco sobre esta trayectoria
tiene la capacidad residual estrictamente positiva. (Si no
existe una, los flujos netos ya asignados constituyen un
patrón de flujo óptimo.) - Se identifica la capacidad residual c* de esta
trayectoria de aumento encontrando el mínimo de las
capacidades residuales de los arcos sobre esta trayectoria. Se
aumenta en c* el flujo de esta trayectoria. - Se disminuye en c* la capacidad residual de cada arco
en esta trayectoria de aumento. Se aumenta en c* la capacidad
residual de cada arco en la dirección opuesta en esta
trayectoria. Se regresa al paso 1.
Al realizar el paso 1, con frecuencia habrá
varias alternativas de trayectorias de aumento entre las cuales
se podrá escoger. Aunque la estrategia
algorítmica para elegir es importante para la eficiencia en
las aplicaciones a gran escala, no se
profundizará en este tema relativamente especializado.
(más adelante se describe un procedimiento
sistemático para encontrar una trayectoria aumentada.)
Entonces, para el siguiente ejemplo la selección se
hará de forma arbitraria.
Viendo la red original (Fig.2) y comenzando con la red
residual inicial dada en la Fig.3, se da la nueva red residual
después de una o dos iteraciones, donde la cantidad
total de flujo de E a R logrado hasta el momento
Iteración 1:
En la figura 2, una de las trayectorias de aumento es
E→B→Z→R que tiene la capacidad residual igual
{80, 40, 60} = 40. Si se asigna un flujo de 40 a esta
trayectoria, la red residual que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Iteración 2: Se asigna un flujo de 60 a la
trayectoria de aumento E→A→Z→R. La red residual
que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Iteración 3: se asigna un flujo de 25 a la
trayectoria de aumento E→B→M→R. La red residual
que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Iteración 4: Se asigna un flujo de 35 a la
trayectoria de aumento E→B→T→R. La red residual
que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Iteración 5: Se asigna un flujo de 20 a la
trayectoria de aumento E→B→T→O→R. La red
residual que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Iteración 6: Se asigna un flujo de 30 a la
trayectoria de aumento E→I→T→R. La red residual
que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Iteración 7: Se asigna un flujo de 30 a la
trayectoria de aumento E→I→0 →R. La red residual
que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Iteración 8: Se asigna un flujo de 45 a
la trayectoria de aumento E→I→T →R. La red
residual que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Iteración 9: Se asigna un flujo de 45 a la
trayectoria de aumento E→I→M →R. La red residual
que resulta es:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
Como podemos ver no existen trayectorias de aumento
por lo que el patrón de flujo actual es
óptimo.
Solución del Problema:
Para ver el
gráfico seleccione la opción "Descargar" del
menú superior
También hemos resuelto este problema haciendo
uso del paquete matemático WindQSB. Primeramente, luego
de activar la opción de flujo máximo, entrar el
nombre del problema y la cantidad de nodos a analizar, entramos
los datos en la
tabla que a continuación se muestra, luego hicimos
correr el programa y
obtuvimos los siguientes resultados:
Maximal Flow Problem Sendero
Ecológico "Las Guanas"
From/to | Nodo1 | Nodo2 | Nodo3 | Nodo4 | Nodo5 | Nodo6 | Nodo7 | Nodo8 | Nodo9 |
Nodo1 |
| 135 | 90 | 120 |
|
|
|
|
|
Nodo2 |
|
|
|
| 50 | 50 | 30 |
|
|
Nodo3 |
|
|
|
|
| 35 |
| 65 |
|
Nodo4 |
|
|
|
| 25 | 35 | 20 | 40 |
|
Nodo5 |
|
|
|
|
|
|
|
| 70 |
Nodo6 |
|
|
|
|
|
|
|
| 110 |
Nodo7 |
|
|
|
|
|
|
|
| 50 |
Nodo8 |
|
|
|
|
|
|
|
| 100 |
Nodo9 |
|
|
|
|
|
|
|
|
|
Solution for Maximal Flow Problem
Sendero Ecológico "Las Guanas"
Graphic Solution for Maximal Flow
Problem Sendero Ecológico "Las Guanas"
Final Solution: Objetive
Value=330
Como hemos podido apreciar los resultados del
ejercicio por ambos métodos
son los mismos por lo que hemos comprobado la garantía
de ambos en la solución de problemas de flujo
máximo. Comprobamos además que aunque los
problemas de flujo máximo se pueden formular como
problemas de programación lineal y se puedan resolver
con el método
simplex , la solución por el algoritmo de
trayectorias aumentadas es mucho mas fácil y eficiente,
solo basta tomar lápiz y hojas y manos a la obra, claro,
que si se cuenta con un paquete como el que hemos utilizado en
este ejercicio nos ahorraremos un inmenso tiempo y
trabajo. Nos pareció interesante como los problemas de
redes surgen en una gran variedad de situaciones y como una
representación de las mismas nos proporciona un panorama
general tan poderoso y una ayuda conceptual para visualizar las
relaciones entre las componentes de los sistemas que se
usa en casi todas las áreas científicas, sociales
y económicas. Ahora podemos contar con una herramienta
más que sin duda nos serán de gran utilidad en
nuestra vida profesional.
Análisis de Redes.Metodo de Flujo
Máximo.
-Algoritmo de la trayectoria de aumento.
-WindQSB.Flujo Máximo
Pedro Sánchez. Colección de
Artículos, Universidad
de Holguín, Cuba,
2003
Autor
Roberto Pinto O´Reilly
Estudiante de 5to año de Ingeniería Industrial de la Universidad
de Holguín, Cuba.
Curso 2004-2005