Anda di halaman 1dari 22

MODELO DE FLUJO MAXIMO

1. GENERALIDADES

En este apartado se har la explicacin de la teora funda-mental necesaria para entender la

situacin estudiada.

2. OBJETIVOS

Definir conceptos bsicos referente al modelo de flujo mximo

Implementacin de ejercicios prcticos del modelo flujo mximo.

Descripcin de un problema de flujo mximo.

Aplicacin en soffares del modelo de flujo mximo

3. FLUJO MXIMO

Conceptos:

Existe un flujo que viaja desde un nico lugar de origen hacia un nico lugar de destino a travs de

arcos que conectan nodos intermediarios. Los arcos tienen una capacidad mxima de flujo y se trata de

enviar desde la fuente al destina la mayor cantidad posible de flujo.

Definiciones bsicas
Flujo: Circulacin de unidades homogneas de un lugar a otro.

Capacidad de flujo: es la capacidad de unidades que pueden entrar por el nodo fuente y

salir por el nodo destino.

Origen o fuente de flujo: nodo por el cual el flujo ingresa.

Destino o Sumidero de flujo: nodo por el cual el flujo sale.

Capacidades residuales: capacidades restantes unas vez que el flujo pasa el arco. ([1]

Bello, 2004)

Flujo mximo es la cantidad de flujo que puede circular desde el nodo de inicio, hasta el nodo final.

Es decir si se quiere llevar maz del lugar de origen al destino, lo que se busca es trasladar la mayor

cantidad de maz, hasta el punto final o destino. (M.Alonso., 2008)

Existe un flujo que viaja desde un nico lugar de origen hacia un nico lugar de destino a travs de

arcos que conectan nodos intermediarios. Los arcos tienen una capacidad mxima de flujo y se trata de

enviar desde la fuente al destina la mayor cantidad posible de flujo.(R., 1993)

En algunas redes circula por los arcos un flujo (envo o circulacin de unidades homogneas de

algn producto: automviles en una red de carreteras, litros de petrleo en un oleoducto, bits por un

cable de fibra ptica) desde el origen o fuente al destino, tambin denominado sumidero o vertedero.

Los arcos tienen una capacidad mxima de flujo, y se trata de enviar desde la fuente al sumidero la

mayor cantidad posible de flujo (Mercado, 2016)


Hay problemas donde lo importante es la cantidad de flujo que pasa a travs de la red como por

ejemplo: en las lneas de oleoductos, redes elctricas o de transmisin de datos. Por esta razn en

dichos problemas se determina el flujo mximo que pasa a travs de una red.

3.1 CARACTERISTICAS:

Tiene solo un nodo fuente y terminal

Es entero y puro

El objetivo es maximizar la cantidad total de flujo de la fuente al destino

Los nodos restantes son de transbordo

El flujo es en un slo sentido indicado por las flechas

El flujo es siempre positivo y con unidades enteras.

El flujo a travs de un arco es menor o igual que la capacidad.

El flujo que entra en un nodo es igual al que sale de l.


En el caso de que el origen o el destino no existan en el problema, se aaden ficticiamente

utilizando arcos unidireccionales de capacidad infinita, como en grafo mostrado a continuacin:

Corte: Un corte define una serie de arcos cuya supresin de la red causa una interrupcin

completa del flujo entre el origen y el destino. La capacidad de corte es igual a la suma de las

capacidades de los arcos asociados. Entre todos los cortes posibles en la red , el corte con

la menor capacidad proporciona el flujo mximo en la red.

El siguiente grafo ilustra 3 cortes: el Corte 1 con capacidad 60, el Corte 2 con capacidad 110 y

el Corte 3 con capacidad 70. Todo lo que podemos obtener de los 3 cortes es que el flujo

mximo en la red no excede de 60 unidades. No podemos saber cual es el flujo mximo hasta

que se hayan enumerado todos los cortes en la red:

Las capacidades se identifican como sigue: por ejemplo, para el arco (3,4), el lmite de flujo es

de 10 unidades de 3 a 4 y de 5unidades de 4 a 3.
Algoritmo de Ford-Fulkerson: El algoritmo de Ford-Fulkerson propone buscar caminos en

los que se pueda aumentar el flujo, hasta que se alcance el flujo mximo.La idea es encontrar

una ruta de penetracin con un flujo positivo neto que una los nodos origen y destino.

Consideraremos las capacidades iniciales del arco que une el nodo i y el nodo j como Cij y Cji.

Estas capacidades iniciales irn variando a medida que avanza el algoritmo,

denominaremos capacidades residuales a las capacidades restantes del arco una vez pasa algn

flujo por l, las representaremos como cij y cji.

Para un nodo j que recibe el flujo del nodo i, definimos una clasificacin [aj,i] donde aj es el

flujo del nodo i al nodo j.

Los pasos del algoritmo se definen como sigue:

Paso 1: Inicializamos las capacidades residuales a las capacidades iniciales,

hacemos (cij,cji)=(Cij,Cji) para todo arco de la red. Suponiendo el nodo 1 como el nodo

origen, hacemos a1= y clasificamos el nodo origen con [,-]. Tomamos i=1 y vamos

al paso 2.

Paso 2: Determinamos Si como un conjunto que contendr los nodos a los que podemos

acceder directamente desde i por medio de un arco con capacidad positiva, y que no

formen parte del camino en curso. Si Si contiene algn nodo vamos al paso 3, en el caso

de que el conjunto sea vaco saltamos al paso 4.

Paso 3: Obtenemos kSi como el nodo destino del arco de mayor capacidad que salga

de i hacia un nodo perteneciente a Si. Es decir, cik = Max {cij} con jSi.

Hacemos ak=cik y clasificamos el nodo k con [ak,i]. Si k es igual al nodo destino o

sumidero, entonces hemos encontrado una ruta de penetracin, vamos al paso 5. En caso

contrario continuamos con el camino, hacemosi=k y volvemos al paso 2.

Paso 4 (retroceso): Si i=1, estamos en el nodo origen, y como Si es vaco, entonces no

podemos acceder a ningn nodo, ni encontrar algn nuevo camino, hemos terminado,

vamos al paso 6.
En caso contrario, i1, le damos al valor i el del nodo que se ha clasificado

inmediatamente antes, eliminamos i del conjunto Siactual y volvemos al paso 2.

Paso 5: Llegados a este paso tenemos un nuevo camino: Np={1,k1,k2,...,n}, esta ser

la p-sima ruta de penetracin desde el nodo origen al nodo destino. El flujo mximo a lo

largo de esta ruta ser la capacidad mnima de las capacidades residuales de los arcos que

forman el camino, es decir: fp=min{a1,ak1,ak2,...,an}.

La capacidad residual de cada arco a lo largo de la ruta de penetracin se disminuye

por fp en direccin del flujo y se incrementa por fp en direccin inversa, es decir, para los

nodos i y j en la ruta, el flujo residual se cambia de la (cij,cji) actual a (cij-fp,cji+fp)si el

flujo es de i a j, o (cij+fp,cji-fp) si el flujo es de j a i

Inicializamos i=1 y volvemos al paso 2 para intentar una nueva ruta de penetracin.

Paso 6 (solucin): Una vez aqu, hemos determinado m rutas de penetracin. El flujo

mximo en la red ser la suma de los flujos mximos en cada ruta obtenida, es

decir: F=f1+f2+...+fm. Teniendo en cuenta que las capacidades residuales inicial y final

del arco (i, j) las dan (Cij,Cji) y (cij,cji) respectivamente, el flujo mximo para cada arco

se calcula como sigue: sea (, )=(Cij-cij, Cji-cji), si >0, el flujo ptimo de i a j es , de

lo contrario, si >0, el flujo ptimo de j a i es . Es imposible lograr que

tanto como sean positivas.

4. APLICACIN

Ejemplo: Determinar el flujo mximo en la red siguiente:


Iteracin 1:

Determinamos las residuales iniciales (cij, cji) iguales a las capacidades iniciales (Cij, Cji).

Paso 1: Hacemos ai=, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.

Paso 2: S1= {2, 3,4} (no vaco).

Paso 3: k=3 ya que c13=Max {c12, c13, c14}= {20, 30,10}=30. Hacemos a3=c13=30 y

clasificamos el nodo 3 con [30,1]. Tomamos i=3 y repetimos el paso 2.

Paso 2: S3={4,5}

Paso 3: k=5 y a5=c35=Max {10,20}=20. Clasificamos el nodo 5 con [20,3]. Logramos la

penetracin, vamos al paso 5.


Paso 5: La ruta de la penetracin se determina de las clasificaciones empezando en el nodo 5 y

terminando en el nodo 1, es decir, 5[20,3]3[30,1]1.Entonces la ruta

es N1={1,3,5} y f1=min{a1,a3,a5}={,30,20}=20. Las capacidades residuales a lo largo de esta

ruta son:

(c13, c31)= (30-20, 0+20)= (10,20)

(c35, c53)= (20-20, 0+20)= (0,20)

Iteracin 2:

Paso 1: Hacemos ai=, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.

Paso 2: S1= {2, 3,4}.

Paso 3: k=2 y a2=c12=Max {20, 10,10}=20. Clasificamos el nodo 2 con [20,1]. Tomamos i=2 y

repetimos el paso 2.

Paso 2: S2={3,5}

Paso 3: k=3 y a3=c23=Max {30,40}=40. Clasificamos el nodo 3 con [40,2]. Tomamos i=3 y

repetimos el paso 2.

Paso 2: S3= {4} (c35=0, el nodo 1 ya ha sido clasificado y el nodo 2 cumple ambas condiciones,

por tanto los nodos 1, 2 y 5 no pueden ser incluidos en S3).

Paso 3: k=4 y a4=c34=10. Clasificamos el nodo 4 con [10,3]. Tomamos i=4 y repetimos el paso

2.
Paso 2: S4={5}

Paso 3: k=5 y a5=c45=20. Clasificamos el nodo 5 con [20,4]. Logramos la penetracin, vamos

al paso 5.

Paso 5: La ruta de la penetracin

es: 5[20,4]4[10,3]3[40,2]2[20,1]1.Entonces la ruta

es N2={1,2,3,4,5} y f2=min{,20,40,10,20}=10. Las capacidades residuales a lo largo de esta

ruta son:

(c12, c21)= (20-10, 0+10)= (10,10)

(c23, c32)= (40-10, 0+10)= (30,10)

(c34, c43)= (10-10, 5+10)= (0,15)

(c45, c54)= (20-10, 0+10)= (10,10)

Iteracin 3:

Paso 1: Hacemos ai=, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.

Paso 2: S1={2,3,4}.

Paso 3: k=2 y a2=c12=max{10,10,10}=10, rompemos el empate arbitrariamente. Clasificamos

el nodo 2 con [10,1]. Tomamos i=2 y repetimos el paso 2.

Paso 2: S2={3,5}
Paso 3: k=3 y a3=c23=max{30,30}=30. Clasificamos el nodo 3 con [30,2]. Tomamos i=3 y

repetimos el paso 2.

Paso 2: S3 vaco ya que c34=c35=0. Vamos al paso 4 para retroceder.

Paso 4: La clasificacin [30,2] nos dice que el nodo inmediatamente precedente es el 2.

Eliminamos el nodo 3 de una consideracin posterior en esta iteracin. Tomamos i=2 y

repetimos el paso 2.

Paso 2: S2={5}

Paso 3: k=5 y a5=c25=30. Clasificamos el nodo 5 con [30,2]. Logramos la penetracin, vamos

al paso 5.

Paso 5: La ruta de la penetracin es: 5[30,2]2[10,1]1.Entonces la ruta

es N2={1,2,5} y f3=min{,10,30}=10. Las capacidades residuales a lo largo de esta ruta son:

(c12, c21)= (10-10, 10+10)= (0,20)

(c25, c52)= (30-10, 0+10)= (20,10)

Iteracin 4:

Paso 1: Hacemos ai=, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.

Paso 2: S1= {3,4}.


Paso 3: k=3 y a3=c13=Max {10,10}=10. Clasificamos el nodo 3 con [10,1]. Tomamos i=3 y

repetimos el paso 2.

Paso 2: S3={2}

Paso 3: k=2 y a2=c32=10. Clasificamos el nodo 2 con [10,3]. Tomamos i=2 y repetimos el paso

2.

Paso 2: S2={5}

Paso 3: k=5 y a5=c25=20. Clasificamos el nodo 5 con [20,2]. Logramos la penetracin, vamos

al paso 5.

Paso 5: La ruta de la penetracin es: 5[20,2]2[10,3]3[10,1]1.Entonces la ruta

es N4={1,3,2,5} y f4=min{,10,10,20}=10. Las capacidades residuales a lo largo de esta ruta

son:

(c13,c31)= (10-10, 20+10)= (0,30)

(c32, c23)= (10-10, 30+10)= (0,40)

(c25, c52)= (20-10, 10+10)=(10,20)

Iteracin 5:
Paso 1: Hacemos ai=, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.

Paso 2: S1= {4}.

Paso 3: k=4 y a4=c14=10. Clasificamos el nodo 4 con [10,1]. Tomamos i=4 y repetimos el paso

2.

Paso 2: S4={3,5}

Paso 3: k=3 y a3=c23=Max {15,10}=15. Clasificamos el nodo 3 con [15,4]. Tomamos i=3 y

repetimos el paso 2.

Paso 2: S3 vaco ya que c32=c34=c35=0. Vamos al paso 4 para retroceder.

Paso 4: La clasificacin [15,4] nos dice que el nodo inmediatamente precedente es el 4.

Eliminamos el nodo 3 de una consideracin posterior en esta iteracin. Tomamos i=4 y

repetimos el paso 2.

Paso 2: S4={5}

Paso 3: k=5 y a5=c45=10. Clasificamos el nodo 5 con [10,4]. Logramos la penetracin, vamos

al paso 5.

Paso 5: La ruta de la penetracin es: 5[10,4]4[10,1]1.Entonces la ruta

es N2={1,4,5} y f3=min{,10,10}=10. Las capacidades residuales a lo largo de esta ruta son:

(c14, c41)= (10-10, 0+10)= (0,10)

(c45, c54)= (10-10, 10+10)= (0,20)

Iteracin 6:
No son posibles ms penetraciones, debido a que todos los arcos fuera del nodo 1 tienen

residuales cero. Vayamos al paso 6 para determinar la solucin.

Paso 6: El flujo mximo en la red es F=f1+f2+...+f5=60 unidades. El flujo en los diferentes

arcos se calcula restando las ltimas residuales obtenidas en la ltima iteracin de las

Capacidades iniciales:

Cantidad de
Arco (Cij, Cji) - (cij, cji)en it. 6 Direccin
flujo
(1,2) (20, 0) - (0, 20) = (20, -20) 20 12
(1,3) (30, 0) - (0, 30) = (30, -30) 30 13
(1,4) (10, 0) - (0, 10) = (10, -10) 10 14
(2,3) (40, 0) - (40, 0) = (0, 0) 0 -
(2,5) (30, 0) - (10, 20) = (20, -20) 20 25
(3,4) (10, 5) - (0, 15) = (10, -10) 10 34
(3,5) (20, 0) - (0, 20) = (20, -20) 20 35
45
(4,5) (20, 0) - (0, 20) = (20, -20) 20

5. APLICACIONES EN SORFTWARE

5.1 Aplicaciones similares existentes


A continuacin, se describen algunas aplicaciones similares al software que se est desarrollando, ya

existentes en el mercado global; para luego hacer un anlisis comparativo entre las mismas.

5.1.1 Descripcin de las aplicaciones

En esta apartado se presenta una lista de algunas de las aplicaciones encontradas que resuelven el

problema del flujo mximo.

5.1.1.1 Grafos y Rutas

Grafos y Rutas forman parte de un proyecto de investigacin y desarrollo de aplicaciones

informticas orientadas hacia la docencia, investigacin y labores profesionales en ingeniera y

optimizacin. [10] Desarrollado por un grupo de investigacin en ingeniera y optimizacin a cargo

Alejandro Rodrguez Villalobos, profesor de la Universidad Politcnica de Valencia..

La filosofa de grafos bsicamente consiste en dibujar, modelar, resolver y analizar, por ello busca

que el usuario tenga la absoluta libertad para tratar y abordar los problemas de grafos. Grafos

permite dibujar libremente la red antes de preocuparse del problema que se va a resolver o el

algoritmo que se necesitar para ello. Adems, el software reconoce alguna condicin no factible o

algn requerimiento faltante para la solucin de algn problema, notificando al usuario de este

hecho.

5.1.1.2 Graphing Calculator

Es un software comercial que permite analizar problemas matemticos grficamente. Ha sido

desarrollado por la empresa PacificTec.


Es un programa que permite visualizar objetos matemticos en dos y tres dimensiones. Adems,

permite crear grficos animados, resolver ecuaciones grficamente y escoger la perspectiva de

observacin de los objetos dibujados. Adicionalmente, el software permite graficar funciones que

estn dadas de manera explcita, implcita o parame-trizada, tanto en dos o tres dimensiones. [14]

Ejemplo: Apndice 3.

5.1.1.3 Mathematica y Mapple

Mathematica es un software utilizado con fines cientficos, de ingeniera, matemticos y

computacionales. Original-mente concebida por el cientfico ingls Stephen Wolfram, quien contina

liderando el grupo investigador dedicado al desarrollo de dicho software en su compaa Wolfram

Research. [15]

Es un poderoso software que permite visualizar grficas en dos y tres dimensiones, manejar matrices,

solucionar sistemas de ecuaciones; adems brinda herramientas para el procesamiento de imgenes,

estadstica multivariable, minera de datos entre otras. Adems, ofrece un lenguaje de programacin

para desarrollar soluciones a problemas complejos. [16] Ejemplo: Apndice 4.

Mapple por otro lado fue desarrollado originalmente por el Grupo de Clculo Simblico en la

Universidad de Wa-terloo en Waterloo, Ontario, Canad. Es un programa orientado a la resolucin de

problemas matemticos, capaz de realizar clculos simblicos, algebraicos y de lgebra

computacional. Se basa en un pequeo ncleo escrito en C, que proporciona el lenguaje Maple.

Maple es un lenguaje de programacin interpretado. Las expresiones simblicas son almacenadas en

memoria como grafos dirigidos sin ciclos. [17] Ejemplo: Apndice 5.


5.1.1.4 Invop

Este software pretende integrar los temas asociados a los modelos de redes, tanto en la

teora como en la prctica. Desarrollado por la profesora Beatriz Loubet, docente de la

Universidad Nacional de Cuyo en Argentina.

El software tiene propsito netamente acadmico, es decir la enseanza de la investigacin

de operaciones. Dentro de esta rea el programa maneja los problemas de asignacin,

transporte, recorridos de redes y flujos. Bsicamente, se elige el tipo de problema que se

desea resolver, luego se ingresa los datos de la red a travs de una matriz de datos; para

luego solicitar el clculo del resultado deseado. [18] Ejemplo: Apndice 6.

5.1.1.5 WinQSB

Es un software interactivo de ayuda a la toma de decisiones que contiene herramientas muy

tiles para resolver distintos tipos de problemas en el campo de la investigacin operativa,

con distintos mdulos para tipo o modelo de problema dado. [19] Es propiedad intelectual

del Dr. Yih-Long Chang, experto en investigacin de operaciones y profesor del Georgia

Tech en Estados Unidos.

Es un paquete de herramientas desarrollado para encontrar soluciones automatizadas a

problemas complejos. El software incluye mdulos para el anlisis de muestreos,

programacin dinmica, elaboracin de pronsticos, inventarios, procesos y cadenas de

Markov, planificacin de recursos, modelados de redes, programacin no lineal, PERT,

CPM, programacin cuadrtica, y otros problemas similares.


5.1.1.6 Lingo

Lingo es una completa herramienta diseada para la construccin y resolucin de modelos

de optimizacin lineal, no lineal y entera de manera fcil rpida y eficiente. Desarrollado

por la empresa Lindo Systems Inc, la cual se ha caracterizado por proveer soluciones

informticas rpidas y fciles de usar en el campo de la optimizacin matemtica durante

ms de 21 aos.

LINGO (Linear, Interactive and General Optimizer) es un lenguaje de modelacin

matemtica que provee un en-torno en el cual se puede desarrollar, ejecutar y modificar

modelos matemticos. El resultado que LINGO proporciona es una optimizacin que ayuda

a encontrar la mejor solucin: la de mayor ganancia o la de menor costo, problemas que

generalmente involucran el uso eficiente de re-cursos.

A1. EJEMPLO DE GRAFOS Y RUTAS

Captura de la app de Grafos


Captura de las funcionalidades de Rutas

A2. EJEMPLO DE GRAPHING CALCULATOR

Captura de las funcionalidades de Graphing Calculator para MAC


A3. EJEMPLO DE MATHEMATICA Y MAPPLE A5. EJEMPLO DE WINQSB

Captura de las funcionalidades de WinQSB

Captura de las funcionalidades de Mathematica

A6. Ejemplo de Lingo

Captura de las funcionalidades de Maple


A4. EJEMPLO DE INVOP

Captura de las funcionalidades de Invop


Bibliografa
[1] Bello, J. y. (2004). Investigaciones de Operaciones. Caracas: pearson educacion.
M.Alonso., J. (2008). Flujo en Redes y Gestin de Proyectos. Espaa: Editorial Netbiblo.
Mercado, I. Y. (2016). Programacion lineal. Mexico: UNAM.
R., B. (1993). investigacion de operaciones . Mexico: McGraw-Hill.

Flujo Mximo

Anda mungkin juga menyukai