You are on page 1of 44

1

1 2 3 4 5
1 0 1 1 0 0
2 0 0 1 0 0
3 0 0 0 0 1
4 1 0 1 0 0
5 0 0 0 1 0
4 REDES
4.1 Conceptos y definiciones

Una red o grafo es un conjunto de puntos llamados nodos, que estn unidos entre s por lneas
que se denominan arcos.
Algunos problemas que se presentan en la realidad, sobre todo, en las ciudades; se pueden
modelar como una red, por ejemplo:

Sistemas de transporte
Sistemas de distribucin
Sistemas de comunicacin
Una red se puede describir numerando los nodos y los arcos que la constituyen. As, los nodos se
numeran o se indican con letras del alfabeto, y el arco se denota por los nodos o puntos que
conecta.
Adems de la representacin grfica, una red tambin puede representarse como una matriz
booleana (formada por ceros y unos), en donde los i renglones y las j columnas sern los nodos
de la red. Un cero en el elemento (i,j) de la matriz indica que no hay arco uniendo al nodo i con
el nodo j. Si el elemento (i,j) de la matriz es uno, indica que s hay un arco uniendo al nodo i con
el nodo j.






Figura 4.1 Matriz booleana de una red

Un arco puede ser dirigido, si tiene asociado un sentido o no dirigido, en el caso de que no lo
tenga.
Si la red slo tiene arcos dirigidos, se trata de una red dirigida.
Una cadena es un conjunto ordenado de arcos que conectan a dos nodos por medio de
nodos intermedios.
Una red conexa es una red para la cual existe una cadena entre cualquier par de nodos.
Un anillo o ciclo es una cadena que conecta a un nodo con l mismo.
Un rbol es una red conexa que no tiene anillos.
1
2
3
5 4
2
Estudio de redes

Tabla 4.1 Tipos de red y algoritmos
Conceptos Tipo de red Algoritmos

Cadena


Dirigida

Flujo mximo (Ford y Fulkerson) Grfico
Flujo mximo (Labeling Technique)
Numrico (matriz)
Red conexa
Grfico
Flujo mximo Grfico

Anillo

No dirigida
Caminos de valor ptimo
Mximo
Mnimo
rbol
Mxima expansin
rbol
Mnima expansin
El cartero chino Grfico


4.2 Flujo mximo, red de transporte
Definicin
Se llama red de transporte a una grfica finita sin anillos tal que:
a. Cada arco u tiene asociado un nmero c(u) 0 llamado capacidad del arco.
b. Existe un vrtice x0 y uno solo tal que w
+
(x0)= este vrtice se llama fuente de la red.
c. Existe un vrtice xn y uno solo tal que w
-
(xn)= este vrtice se llama sumidero de la red.

Flujo
Sean w
-
(xi) el conjunto de los arcos incidentes al vrtice xi hacia el interior y w
+
(xi) el conjunto de
arcos incidentes al vrtice xi hacia el exterior. Se dice que una funcin entera +(u) definida
sobre el conjunto A de los arcos ui es un flujo para una red de transporte si:

0 ) u ( + A u Q _ (4.1)
+ + +
) x ( w u ) x ( w u
i i
) u ( ) u ( xi wx0 (4.2)
xi wxn

) u ( c ) u ( + A u Q _ (4.3)
3
Puede pensarse que ) u ( + es un gasto que fluye por el arco u y que nunca puede exceder la
capacidad c(u) de dicho arco. An ms, si xi no es ni la fuente ni el sumidero, entonces (4.2)
significa que el gasto que llega a xi es igual al gasto que sale de xi , que es la llamada
propiedad conservativa del flujo.
De acuerdo con lo anterior se deber tener:
+ + + + ) x ( ) u ( ) u (
n
) x ( w u ) x ( w u
n 0
(4.4)
A ) x (
n
se le llama el valor del flujo. Se tratar el problema de calcular el valor ptimo del flujo
correspondiente a una red de transporte. La determinacin del valor ptimo del flujo conduce
a un problema de programacin lineal entera.

Arco saturado, flujo completo
Se dice que un arco ui QA est saturado si se tiene:
) u ( c ) u (
i
+ + (4.5)
Un flujo es completo si todo camino que va de la fuente al sumidero contiene al menos un arco
saturado.

En la figura 4.2, se muestra una red de transporte y en la figura 4.3 un flujo asociado a esta red.
Obsrvese que los arcos (x0x4), (x1x6), (x1x7), (x2x7), (x5x9), (x6,x9) y (x7x9) estn saturados y que el
flujo no es completo ya que al menos existe el camino (x0x3x8x9) que no posee ningn arco
saturado.

Corte, capacidad de un corte
Sea un conjunto Y wX de vrtices que contienen al sumidero xn y no contienen a la fuente x0. El
conjunto w
-
(Y) de los arcos incidentes a Y hacia el interior es un corte de la red.
Por ejemplo, si en la figura 5.2 se tiene Y={x7,x9} entonces el corte correspondiente a Y est dado
por:
w
-
(Y)={(x1,x7),(x2,x7),(x3,x7),(x4,x7),(x5,x9),(x6,x9),(x8,x9)}
A la expresin:
C[w
-
(Y)] +
) Y ( w u
) u ( c (4.6)
Se le llama capacidad del corte w
-
(Y). As en el ejemplo se tiene:
c[w
-
(Y)]=2+1+4+4+10+8+15=44



4
Teorema del mnimo corte-mximo flujo
Refirindose al inciso anterior, como Y contiene al sumidero, toda unidad de gasto que va de x0
a xn , pasa al menos una vez por un arco de w
-
(Y) y, consecuentemente, cualquiera que sea un
flujo (xn) y un corte w
-
(Y), se tendr:

(xn) c[w
-
(Y0)]

Luego, si existe un flujo ) x (
n 0
y un corte w
-
(Y0) tales que:


)] Y ( w [ c ) x (
0 n 0
+

Entonces el flujo ) x (
n 0
tiene un valor mximo y el corte w
-
(Y0) tiene una capacidad mnima.
Lo anterior origina el siguiente teorema:

Teorema
En una red de transporte dada, el valor mximo de un flujo es igual a la capacidad mnima de
un corte, esto es:
Mx (xn)=mn c[w
-
(Y)] (4.7)

En otras palabras, si se logra encontrar un flujo igual a la capacidad de un corte, se estar
seguro de que dicho flujo es mximo. En esta idea est basado el algoritmo de Ford y Fulkerson,
el cual permite calcular el flujo mximo asociado a una red de transporte.

Ejemplo 4.1 Flujo mximo en una red de transporte
Una empresa constructora dispone de cuatro bancos de prstamo x1 a x4 y puede explotar 120
000 m
3
en x1 y 100 000 m
3
en cada uno de los restantes. Por otra parte el material debe
transportarse a los sitios x5 a x8 en donde se requieren respectivamente 100 000m
3
, 80 000 m
3
, 90
000 m
3
y 150 000 m
3
. Este hecho se muestra en la tabla, en donde las cantidades estn
expresadas en decenas de miles de m
3
.

X1 X2 X3 X4 X5 X6 X7 X8
Bancos 12 10 10 10
Sitios de descarga 10 8 9 15

5
Debido a las restricciones en la flotilla de camiones, en el equipo de explotacin de los bancos
y en los caminos de acceso; las capacidades de transporte de cada uno de los bancos a los
sitios de descarga resulta como se muestra en la tabla siguiente:
Destino
O
r
i
g
e
n

x5 x6 x7 x8
x1 7 3 2 0
x2 5 4 1 0
x3 0 2 4 8
x4 0 2 4 8

Observar que las capacidades de transporte con destino a los diferentes sitios de descarga
exceden a las demandas y que las capacidades de salida de cada banco de prstamo
exceden a su disponibilidad.
Haciendo abstraccin de los costos de transporte, interesa satisfacer las demandas al mximo.

Planteamiento de una red de transporte:

1. Cada uno de los bancos y de los sitios de descarga est representado por un vrtice de la
red.
2. Cada banco est ligado mediante una flecha orientada o arco a los sitios de descarga y
este arco lleva un nmero que representa su capacidad; es decir, el tonelaje que puede
transportarse por el camino correspondiente. No se trazar por supuesto ningn arco entre
origen y destino si no hay un camin que siga esa ruta o bien si en ella existe un camin con
capacidad disponible nula.
3. Un vrtice auxiliar x0 (la fuente) est ligado a cada banco mediante un arco que lleva como
capacidad la disponibilidad en ese banco.
4. Cada sitio de descarga est ligado a un vrtice auxiliar x9 (el sumidero) mediante un arco
que tiene como capacidad la demanda correspondiente.

De esta manera se obtiene la red que se muestra en la figura 4.2, en la cual el nmero asociado
a cada arco es su capacidad. En este caso la fuente es el vrtice x0 y el sumidero es el vrtice
x9.



6
x1
x4
x3
x5
x2 x6
x7
x8
x9 x0
12
10
10
10
7
3
2
5
4
1
2
4
8
2
4
8
10
8
9
15
Y
x1
x4
x3
x5
x2 x6
x7
x8
x9 x0
12
10
10
10
7
3
5
4
1
2
4
8
2
4
8
10
8
9
15
11
8
2
9
10
6
4
3
1
1
6
2
10
8
9
11
3
3
3
5
1









Figura 4.2 Capacidades en los arcos

4.3 Algoritmo de Ford y Fulkerson

1. Hacer pasar un flujo cualquiera inicial
Se hace salir de la fuente un cierto flujo que se propagar de vrtice a vrtice en forma tal que
se verifique la propiedad conservativa del flujo dada en la ecuacin 4.2. Si debido a las
capacidades el flujo supuesto es muy grande, se le disminuye hasta lograr un flujo compatible
con las capacidades de los arcos. De esta manera se obtiene el flujo mostrado en la figura 4.3:










Figura 4.3 Un flujo inicial

2. Investigar un flujo completo
Si el flujo no es completo existe en la red un camino que va de la fuente al sumidero y tal que
ninguno de sus arcos est saturado. Se aumenta sucesivamente el flujo de este camino en una
unidad hasta lograr que al menos se sature uno de sus arcos. Se repite esta operacin cuantas
veces sea necesario hasta lograr un flujo completo. En la Figura 4.3 se han indicado con trazo
7
x1
x4
x3
x5
x2 x6
x7
x8
x9 x0
12
10
10
10
7
3
5
4
1
2
4
8
2
4
8
10
8
9
15
11
8
2
10
10
6
4
3
1
1
6
2
10
8
9
12
3
3
3
6
1
x1
x4
x3
x5
x2 x6
x7
x8
x9 x0
12
10
10
10
7
3
5
4
1
2
4
8
2
4
8
10
8
9
15
11
8
2
10
10
6
4
3
1
1
6
2
10
8
9
12
3
3
3
6
1
(+)
(+x0) (+x1)
(+x0) (+x2)
(-x6)
(+x3)
(-x6) (+x4)
(+x8)
grueso los arcos saturados. Observar que el camino x0x3x8x9 no posee ningn arco saturado. Se
aumenta en una unidad el flujo que pasa por cada uno de los arcos de este camino lo cual
conduce a la saturacin del arco (x0x3) y al logro de un flujo completo, ya que como se observa
en la figura 4.4, todos los caminos que van de la fuente al sumidero tienen al menos un arco
saturado.










Figura 4.4 Un flujo completo

3. A partir de un flujo completo, marcar los vrtices de la red como sigue:
i. Marcar la fuente con el signo (+). Si el vrtice xi est marcado y el xj no, entonces:
ii. Marcar el vrtice xj con el smbolo (+xi) si existe un arco (xixj) no saturado
iii. Marcar el vrtice xj con el smbolo (-xi) si existe un arco (xjxi) con flujo no nulo

La aplicacin de este proceso se ilustra en la figura 4.5:










Figura 4.5 Marcas en la red

8
x1
x4
x3
x5
x2 x6
x7
x8
x9 x0
12
10
10
10
7
3
5
4
1
2
4
8
2
4
8
10
8
9
15
11
9
2
10
10
6
4
3
1
0
7
2
10
8
9
13
3
4
3
6
1
(+)
(+x0) (+x2)
(-x6) (+x4)
(+x8)
x1
x4
x3
x5
x2 x6
x7
x8
x9 x0
12
10
10
10
7
3
5
4
1
2
4
8
2
4
8
10
8
9
15
11
9
2
10
10
6
4
3
1
0
7
2
10
8
9
13
3
4
3
6
1
(+)
(+x0)
(+x2) (-x5)
4. Si por este procedimiento se llega a marcar el sumidero, entonces se considera la cadena
que pasa por los vrtices marcados con (+) o con (-) y que va de la fuente al sumidero. Si un
arco de esta cadena est orientado en el orden indicado por la secuencia de los vrtices
que forman la cadena, entonces el flujo de dicho arco se aumenta en una unidad y en
caso contrario se disminuye tambin en una unidad. De esta manera se obtendr un nuevo
flujo, mayor que el inicial, y para el cual se sigue satisfaciendo la propiedad conservativa.
En el ejemplo, se tiene la cadena x0 x2 x6 x4 x8 x9 de vrtices marcados, y consecuentemente
el flujo del arco (x0x2) se aumentar de 8 a 9, el de (x2x6) de 3 a 4, el de (x6x4) se disminuir
de 1 a 0, el de (x4x8) se aumentar de 6 a 7 y el de (x8x9) de 12 a 13; as, se obtiene la figura
4.6:










Figura 4.6 Aumento de flujo en la red

5. Se repiten los pasos 3 y 4 hasta lograr que no aparezca ninguna cadena de vrtices
marcados. Esta etapa se ilustra con la figura 4.7:










Figura 4.7
9
x1
x4
x3
x5
x2 x6
x7
x8
x9 x0
12
10
10
10
7
3
5
4
1
2
4
8
2
4
8
10
8
9
15
11
9
2
10
10
6
4
3
1
0
7
2
10
8
9
13
3
4
3
6
1
(+)
(+x0)
(+x2) (-x5)
Y
0
Es fcil ver que cuando se llega a la situacin descrita en el paso 5, entonces el flujo ) x (
n
ha
alcanzado su valor mximo.
En efecto, sea Y0 el conjunto de los vrtices no marcados (figura 4.8):











Figura 4.8 Flujo mximo

Como x0 Y0, xn Q Y0, el conjunto Y0 define un corte w
-
(Y0) de la red y si se representa con
) x (
n 0
el flujo asociado a dicha red, se puede escribir:
+ ( + +
) Y ( w u ) Y ( w u
n 0
0 0
) u ( ) u ( ) x (
+ ( ) Y ( w [ c 0 ) u ( c
0
) Y ( w u
0

Por el teorema del mnimo corte-mximo flujo, resulta que ) x (
n 0
es el valor mximo del flujo.
De esta manera, en el ejemplo se tiene que:
+ ) x (
9
10+8+9+13 = 40 (flujo)
c[w
-
(Y0)]= 10+10+1+2+4+3+10 = 40 (corte)

Entonces, el flujo mximo que se puede llevar en la red es de 400 000 m
3
en las cantidades
indicadas con los nmeros grandes en cada uno de los arcos y se puede indicar en la siguiente
tabla:


10
0
1
2
3
5
4
6
Cactus,
Chiapas
Reynosa,
Tamaulipas
5
8
7
1 6
3
6
6
8
2
6
0
1
2
3
5
4
6
5
8
7
1
6
3
6
6
8
2
6
4
0
0
0
0
0
0
0
0
0
0
0
0
Destino
X5 X6 X7 X8
O
r
i
g
e
n

X1 6 3 2 0
X2 4 4 1 0
X3 0 1 3 6
X4 0 0 3 7

4.4 Algoritmo de flujo mximo
El problema de flujo mximo se presenta cuando se quiere determinar cul es la mayor
cantidad de un bien que se puede enviar de un nodo (nodo origen), a otro cualquiera de la
red (nodo final), desde luego que deben existir una o ms cadenas entre stos nodos, y los
arcos que las constituyen tienen restricciones en cuanto a la cantidad, de ese bien, que puede
fluir.
Ejemplo 4.2 Flujo mximo
El gasoducto que une a la ciudad de Reynosa, Tamaulipas, con el campo productor de gas
natural en Cactus, Chiapas, ha sufrido un desperfecto. Para cubrir las necesidades de la ciudad
de Reynosa, se requiere determinar cul es la mxima cantidad de gas que se puede enviar
usando estaciones compresoras y gasoductos alternativos.
La capacidad de los gasoductos se muestra en cada arco de la red (en millones de metros
cbicos por da). Los nodos representan a las estaciones compresoras:








Esta red se puede representar de la siguiente forma:






11
i j
Ci Cj
0 6
4 1
5
0
6
8 0
0
0 6
4 1
2
3
5
5
0
6
0
1
0
3
0
6 0
8
0
6
2
0
6
0
8 0
4
0
0
7 0
Flujo
neto
Flujo
neto
Donde cada arco dirigido que une al nodo i con el nodo j, se representa ahora como:



Siendo Ci la cantidad del bien que puede fluir como mximo, del nodo i al nodo j, y Cj sera la
mxima cantidad del bien que puede fluir del nodo j al nodo i.

Con la red en esta forma, se puede aplicar el siguiente algoritmo para determinar el flujo
mximo:
1. Encontrar una cadena del nodo origen al nodo final. Si no existe ninguna, el flujo neto
asignado es el flujo ptimo.
2. Encontrar en esta cadena el arco con la menor capacidad de flujo (mayor que cero).
Denotar a esta capacidad como C*. Aumentar C* al flujo neto del origen al final.
3. Restar C* a la cantidad Ci de cada arco en la cadena. Sumar C* a la cantidad Cj de cada
arco en la cadena. Regresar al punto 1.

Para el ejemplo, inicialmente el flujo asignado es cero. Este flujo se denota con una flecha que
entra al nodo de origen y una flecha que sale del nodo final:








1. Una cadena es un conjunto ordenado de arcos, que en este caso conectan al nodo de
origen con el nodo final. Por ejemplo:





2. En esta cadena, el arco con menor capacidad es el arco (0,1), con capacidad igual a 5, o
sea, que C*=5. El flujo neto es ahora 0+C*=0+5=5.
12
0 6
2 5
6
0
6
8
0
0
0 6
2 5
0
6
0
2
6
6
0 6
4 1
0
5
1
3 5
5
0 6
4 1
2
3
5
0
5
6
0
1
0
3
0
6 0
8
0
1
2
0
6
0
3 5
4
0
5
7 0
5
5
3. Sobre esta cadena, se resta C* de las cantidades Ci.
C0-C*=5-5=0
C1-C*=8-5=3
C4-C*=6-5=1
Se suma C* a las cantidades Cj, 0+5 en todos los casos, quedando la cadena ahora como:





La nueva red es ahora:







Esta nueva red indica que ya no es posible ir del nodo 0 al nodo 1, ya que la capacidad de flujo
en este sentido es cero, pero si es posible ir del nodo 1 al nodo 0.

1. Una cadena de 0 a 6 es:





2. Los arcos con la menor capacidad de flujo son el (0,2) y (2,5) con una capacidad de 6, de
manera que C*=6. El flujo neto ser ahora 5+6=11.
3. Restando C* de la cantidad Ci y sumndoselo a las Cj, queda la cadena como:





13
0 6
4 1
2
3
5
0
5
0
6
1
0
3
0
0 6
2
6
1
2
0
6
0
3 5
4
0
5
7 0
11
11
0 3
4
6
7 0
6
0 1
5
0 3
4
6
6 1
5
1 0
6
0
1
2
4
5
6 3
0
5
6
1
1
0
3 5
5
1
0
6
0 6
3
0
4
0
2
0
0
6
2
6
12 12
0
5
6 3
6 1
4
0 2
6
La nueva red es ahora:








1. Una cadena de 0 a 6 es:





2. El arco de menor capacidad de flujo es el (4,6) con C*=1. El flujo neto es ahora 11+1=12.
3. Restando C* de Ci y sumndola a la Cj, queda la cadena como:





La nueva red es ahora:







1. Una cadena de 0 a 6 es:




14
0
5
6 3
4 3
2
2 0
8
0
1
2
4
5
6 3
0
5
4
3
1
0
3 5
5
1
0
6
0 6
3
0
2
2
2
0
0
6
0
8
14 14
2. El arco de menor capacidad es el (5,6) con capacidad 2, de manera que C*=2. El flujo neto
es ahora 12+2=14.
3. Restando C* de Ci y sumando a Cj la cadena queda como:





La nueva red es:








En esta red ya no es posible encontrar una cadena de 0 a 6, ya que no hay flujo posible de 4 a
6 o de 5 a 6, que es la nica forma en la que se puede llegar al nodo final. De manera que el
flujo neto asignado es el flujo mximo. Es decir, se pueden enviar como mximo 14 millones de
m
3
de gas al da, de Cactus a Reynosa.
Comparando la red original con la red final, se puede determinar la forma en que se efecta
este envo:
Se mandan 5 unidades (millones de m
3
al da) del nodo 0 al nodo 1, 5 unidades del nodo 3 al 4,
6 unidades del nodo 4 al 6, 6 unidades del nodo 0 al 2, 6 unidades del nodo 2 al 5, 2 unidades
del nodo 3 al 5, y 8 unidades del nodo 5 al 6. Si se definen las variables xij=flujo del nodo i al nodo
j, el resultado queda como:
x01=5 x02=6 x03=3
x13=0 x14=5
x23=0 x25=6
x34=1 x35=2
x46=6
x54=0 x56=8

15
0
1
2
3
4
5
6
Cactus,
Chiapas
Reynosa,
Tamaulipas
5
7
8
6

3
6
8

6
4
2
1
6
El dual de este problema da como resultado los arcos que se saturan al enviar el flujo ptimo, es
decir, aquellos que estn funcionando a su mxima capacidad. En algunos problemas como: el
flujo de vehculos al desalojar un estacionamiento, o el flujo de distribucin de plagas en un
territorio, el dual es de mayor utilidad que el primal.

En el problema, los arcos que se saturan son : (0,1), (0,2), (2,5), (4,6) y (5,6).

Ejemplo 4.3 Flujo mximo. Etiquetado en la red
El gasoducto que une a la ciudad de Reynosa, Tamaulipas, con el campo productor de gas
natural en Cactus, Chiapas, ha sufrido un desperfecto. Para cubrir las necesidades de la ciudad
de Reynosa, se requiere determinar cul es la mxima cantidad de gas que se puede enviar
usando estaciones compresoras y gasoductos alternativos.
La capacidad de los gasoductos se muestra en cada arco de la red ( en millones de metros
cbicos por da). Los nodos representan a las estaciones compresoras.







Se puede ilustrar la tcnica de etiquetado en la red mostrada. Como se muestra en la figura 4.8,
se etiqueta el nodo 0 con (-, ). Luego, el nodo 1 se etiqueta con (0,5), en la cual el 0 se refiere
a que el nodo precedente es el 0 y 5 es la capacidad ms pequea de todos los arcos que
preceden al nodo 1; la etiqueta en el nodo 2 es (0,6). Cuando se llega al nodo 3 se etiqueta
con (0,7), pero se ha verificado que el flujo que se asigna a la etiqueta proceda de un arco que
a la vez est etiquetado. En forma general, el flujo que se asigna en la etiqueta resulta de
seleccionar el menor del flujo en el arco y el flujo en la etiqueta que precede al arco y de entre
stos, el mayor posible. As, se logra etiquetar el nodo final; si sucede esto, significa que el flujo
final no es el ptimo. En el ejemplo, se llega con f1=6. Para saber por qu arcos es transportado
este flujo, basta con observar la etiqueta final; ella dice por qu arco se lleg y ese flujo se resta
de la capacidad en cada arco de ese camino, hasta llegar al nodo inicial; el resultado es la red
de la figura 5.9 en la cual se ha etiquetado de nuevo repitiendo el proceso. De la misma
manera se procede etiquetando y almacenado el flujo hasta que se llega a la situacin en que
ya no es posible etiquetar el nodo final (figura 4.10).
16
0
1
2
3
4
5
6
5
7
8
6

3
6
8

6
4
2
1
6
0,5 3,6
5,6
0,7
0,6 2,6
-,
_
0
1
2
3
4
5
6
5
7
8
6

3
0
2

6
4
2
1
0
0,5 3,6
4,6
0,7
3,4
-,
_
f=6
0
1
2
3
4
5
6
5
1
8
0

3
0
2

0
4
2
1
0
0,5 1,5
5,1
0,1
3,1
-,
_
f=6+6
0
1
2
3
4
5
6
5
0
8
0

3
0
1

0
3
2
1
0
0,5 1,5
5,1
1,1
3,1
-,
_
f=6+6+1









Figura 4.8









Figura 4.9
















17
0
1
2
3
4
5
6
4
0
8
0

3
0
0

0
2
2
0
0
0,4 1,4
-,
_
f=6+6+1+1=14
0
1
2
3
4
5
6
1
7
6

8

6
2

1
6
6
14 14
0
1
20
22
8
16
7
12
5
18
4
5
10
16
0
25
3
4
8
4
9 4
6
0
3
5
7
14
6
2
8
4
22
8
3 6
2
5
0
1
6
2
8
8
15
7
3
10
1
8
14
12
4
22
9
30 3
18
22
10
2
3
4
5
6
7
8
9
10
11
12
13
14








Figura 4.10

Cuando se llega a la situacin en que ya no es posible etiquetar el nodo final, se ha llegado al
flujo ptimo que es posible transportar del nodo 0 al nodo 6. Finalmente, se debe indicar por
dnde ser llevado este flujo, para lo cual es necesario establecer la diferencia entre los valores
en los arcos de la red original y los valores que adquirieron en el ltimo flujo asignado; tambin
es importante observar que se debe cumplir la propiedad conservativa del flujo en todos los
nodos de la red; para el ejemplo, en la red siguiente se muestran los resultados:






Figura 4.11

Ejemplo 4.4 Flujo mximo. Etiquetado en una matriz
Determinar el flujo mximo que puede transportarse en la red siguiente, en que se muestran las
capacidades de los arcos:







18
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 20,17 18,7 12 16,11
1 4 6 18,15 0,20 0,20 0,20 0,20 0,17
2 5 6 8 0 30,2625,18 0,18 0,11 0,11 0,7 0,7
3 7 2 16 0,12 0,12 0,12 0,12 0,12
4 8 22,17 14 0,16 0,16 0,11 0,11 0,11
5 8 3 3 4,1 1,18 1,18 1,18 1,18 1,15
6 10 0 5 8,4 5,0 2,18 4,16 2,11 4,11 4,11
7 14 3 7,0 4 2,18 2,11 2,11 2,7 2,7
8 10 5 4 6 4,14 4,14 3,12 3,12 3,12
9 1 6 15,12 8,4 6,8 6,8 6,8 5,4 6,4
10 2 0 1 10 12,0 7,7 6,5
11 4 9 8 7 8,6 8,6 8,6 8,6 8,6
12 8 9 3,0 9,8 9,8 9,8 9,4 9,4
13 2 3 4,0 9,8 9,8 9,8 11,6 11,6
14 22 22 22 10,7 10,5 13,4 12,3
7 5 4 3 19
0
1
20
22
8
16
5
18
4
0
25
7
14
8
4
22
8
2
5
0
1
6
8
8
15
12
4
22
30 3
18
22
10
2
4
5
6
7
9
10
12
13
14
3
4
3
5
11
7
5
3
4
5
7
3
4
12
3
4
19
19
En la primera columna adyacente a la matriz, se colocan las etiquetas; sta consta de dos
dgitos, el primero corresponde a la cantidad de flujo que es posible transportar y el otro ser el
nmero del nodo de donde procede el flujo; as, la etiqueta correspondiente al nodo 0, es (-,)
ya que al ser el nodo inicial el flujo se puede considerar infinito y no proviene de ningn nodo.
Para etiquetar los dems, se deben de considerar las reglas siguientes:

1. El flujo a considerar ser el mayor posible de comparar el valor de flujo de la columna
correspondiente al nodo y el flujo que tenga la etiqueta del nodo de donde procede.
2. El flujo con que se llega al ltimo nodo de la red, se descontar en la matriz con el criterio
siguiente: la celda en que se descontar el flujo es la columna del nodo correspondiente y
el rengln que corresponde al nodo de donde procede el flujo.












Cuando ya no es posible incrementar el flujo en la red, se dice que se alcanza el flujo mximo.
En este caso, el flujo mximo = 7 + 5 + 4 + 3 = 19 unidades de flujo. Es necesario especificar por
dnde se va a llevar este flujo en la red; para ello basta con considerar aquellos arcos en que se
observa que ha habido cambios y se establece una diferencia entre este valor y el valor original
del arco; as, el flujo se transportar en la red del ejemplo, de la siguiente manera:







19
Se observa que se cumple la ley conservativa del flujo en todos los nodos de la red.

Solucin empleando TORA:
Del men principal elegir Network models y maximal flow.















Figura 4.12 Men principal de TORA.
















Figura 4.13 Ingresar los coeficientes del problema.
20















Figura 4.14 Matriz de solucin de flujo mximo.


4.5 rbol de mnima y mxima expansin
rbol de mnima expansin

Un rbol es una red conexa que no tiene ciclos. Es decir, es un conjunto de arcos unidos, que
dan una cadena desde cualquier otro nodo de ella misma, sin caer en un ciclo. El rbol de
mnima expansin es el rbol con el menor costo, distancia o tiempo, segn lo que indique la
cantidad sobre los arcos.
Considerar el siguiente ejemplo:

Ejemplo 4.5 rbol de mnima expansin
Se desea establecer comunicacin entre todos los nodos mostrados en la red, de manera que
se minimice la distancia total que tiene que viajar la seal. La distancia en kilmetros se muestra
en cada arco. Por cules arcos debe viajar la seal para unir a todos los nodos? Cul ser la
distancia mnima que viajar una seal para cubrir todos los nodos?



21
1
2
3
7
5
6 4
5
7
6
8 17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
6
8 17
9
9
1
2
3
7
5
6 4
7
6
17
10
13
7








Se puede observar que en esta red hay varios rboles, dos de ellos son:


Valor = 54 Valor= 60






Para esto se puede aplicar cualquiera de los dos algoritmos que se discuten, que son
bsicamente uno solo, el primero trabaja directamente sobre la red y el segundo sobre una
matriz booleana en la cual se sustituyen los unos por las distancias.

Algoritmo para obtener el rbol de mnima expansin en la red

1. Seleccionar en la red original el arco con el menor valor (el cual queda en el rbol de
mnima expansin).
2. Encontrar un arco, que tenga el menor valor, que una un nodo del arco original con
cualquier otro nodo que no se encuentre en el arco original.
3. Estos dos arcos se encuentran ahora en el rbol de mnima expansin.
4. Continuar con ste proceso, aadiendo al rbol el arco con el menor valor que lo conecte
con algn nodo que no est dentro del rbol.




22
1
2
3
7
5
6 4
5
7
6
8 17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
7
6
8 17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
7
6
8 17
10
9
13
7
8
9
Por ejemplo, en la red:







El arco con menor valor es el (1,2) con longitud igual a 5. Este arco y sus nodos quedan dentro
del rbol de mnima expansin.
El arco de menor valor que une a algn nodo en el arco original (1 2), con algn nodo que no
est en el arco original (3,4,5,6 7), es el (2,3) con longitud 6, de manera que ste arco y stos
nodos quedan dentro del rbol de mnima expansin.









El arco de menor valor que une a los nodos en el rbol con los que no estn en l es el (3,5) con
longitud 7, y as sucesivamente.











23
1
2
3
7
5
6 4
5
7
6
8 17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
7
6
8
17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
7
6
8
17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
7
6
8
17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
7
6
8
17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
7
6
8
17
10
9
13
7
8
9
1
2
3
7
5
6 4
5
6
10
9
7
8
1
2
3
7
5
6 4
5
6
10
9
7
8
























De manera que ste problema tiene dos rboles que dan el mismo valor de mnima longitud:







Valor = 45 Valor = 45

Los arcos de cada rbol indican sobre qu nodos se debe establecer comunicacin.
24
1 2 3 4 5 6 7
1 5 7
2 5 6 8
3 7 6 8 7
4 8 8 9 10 17
5 7 9 13
6 10 13 9
7 17 9
1 2 3 4 5 6 7
1 5 7 X
2 5 6 8 X
3 7 6 8 7
4 8 8 9 10 17
5 7 9 13
6 10 13 9
7 17 9
1 2 3 4 5 6 7
1 5 7 X
2 5 6 8 X
3 7 6 8 7 X
4 8 8 9 10 17
5 7 9 13
6 10 13 9
7 17 9
1 2 3 4 5 6 7
1 5 7 X
2 5 6 8 X
3 7 6 8 7 X
4 8 8 9 10 17
5 7 9 13 X
6 10 13 9
7 17 9
Algoritmo para obtener el rbol de mnima expansin en una matriz
1. Construir la matriz booleana de la red, y substituir los unos por la distancia existente entre
nodo y nodo. Esta matriz tiene en los renglones y en las columnas los nodos que forman la
red. El elemento aij de la matriz indica la distancia entre el nodo i y el nodo j. Si no estn
unidos se pone un guin en lugar de otro.
2. Seleccionar el menor elemento de la matriz. Si hay empate se escoge en forma arbitraria.
Sea este elemento el aij.
3. Eliminar la columna i y la columna j, ya que estos nodos quedan incluidos en el rbol de
mnima expansin.
4. Marcar los renglones i y j con una X.
5. Buscar en los renglones marcados con X el menor elemento. Sea ste el aXk. Eliminar la
columna k y marcar con X el rengln k.
6. Repetir desde el paso 5 hasta que se hayan eliminado todas las columnas.

Ejemplo 4.6 rbol de mnima expansin
1. La matriz booleana modificada del ejemplo anterior es:







2. El menor elemento de la matriz es el a12, que es igual al a21, ya que la matriz es simtrica. Se
puede tomar cualquiera de los dos. En este ejemplo se elegir el a12.
3. Se eliminan las columnas 1 y 2, lo cual significa que los nodos 1 y 2 se encuentran ya dentro
del rbol mnimo.
4. Se marcan con una X los renglones 1 y 2.







25
6 4
5 3
1
2 7
5
7
6
8
8
17
10
9
7
13
9
1 2 3 4 5 6 7
1 5 7 X
2 5 6 8 X
3 7 6 8 7 X
4 8 8 9 10 17 X
5 7 9 13 X
6 10 13 9
7 17 9
1 2 3 4 5 6 7
1 5 7 X
2 5 6 8 X
3 7 6 8 7 X
4 8 8 9 10 17 X
5 7 9 13 X
6 10 13 9 X
7 17 9 X
1 2 3 4 5 6 7
1 5 7 X
2 5 6 8 X
3 7 6 8 7 X
4 8 8 9 10 17 X
5 7 9 13 X
6 10 13 9 X
7 17 9









5. En los renglones marcados con X, el menor elemento es a23=6.
Se elimina la columna 3 y se marca con X el rengln 3. El menor elemento en los renglones
marcados es el a35=7.
Se elimina la columna 5 y se marca el rengln 5 con X. El menor elemento en los renglones
marcados es el a24 y el a34, ambos con valor de 8. Se puede seleccionar cualquiera, y esto
puede indicar que existe ms de un rbol mnimo. Se seleccionar el a24.
Se elimina la columna 4 y se marca el rengln 4 con X. El menor elemento de los renglones
marcados es el a46=10.
Se elimina la columna 6 y se marca el rengln 6 con X. El menor elemento de los renglones
marcados es el a67=9. Al eliminar la columna 7, ya no quedan ms en la matriz, lo que significa
que ya se obtuvo el rbol de mnima expansin.
La forma de determinar el rbol es la siguiente: estn marcados con un cuadro los elementos
a12, a23, a24, a35, a46 y a67. De manera que el rbol est formado por los arcos (1,2), (2,3), (2,4),
(3,5), (4,6) y (6,7). Sobre estos arcos se establece la comunicacin.









El valor del rbol se obtiene sumando los elementos marcados en la matriz final:
5 + 6 + 8 + 7 + 10 + 9 = 45

26
Solucin empleando TORA:
Del men principal elegir Network models y minimal spanning tree.















Figura 4.15 Men principal de TORA.






















Figura 4.16 Ingresar la matriz boleana modificada.
27
















Figura 4.17 Solucin del rbol de mnima expansin.


4.6 Caminos de valor ptimo
Algoritmo para determinar el camino de valor mnimo
Primera parte:
1. Elegir un vrtice inicial y marcarlo con un cero.
2. Todos aquellos vrtices que estn en arcos incidentes al exterior del vrtice inicial se deben
marcar con el valor asociado a su arco correspondiente.
3. Todo vrtice que sea extremo final de un arco cuyo extremo inicial tenga una marca
deber marcarse con la suma de sta ms el valor asociado a dicho arco.
4. Si un arco es marcado ms de una vez se elegir la marca de menor valor.
5. Los pasos 3 y 4 se repetirn hasta que todos los vrtices de la grfica estn marcados.
6. La marca sobre un vrtice cualquiera representa el valor del camino mnimo que va del
vrtice inicial a se vrtice.

La primera parte del algoritmo slo sirve para indicar cul es el valor del camino mnimo entre
un vrtice inicio y todos los dems de la grfica, en la siguiente se determinan los arcos que
forman esos caminos.
28
1
2
3
5
6
4
7
6
8
3
1
2
9
4
7
4
9
3
3
6
Segunda parte:
1. Elegir un vrtice como final del camino mnimo y marcarlo con el valor de ste.
2. Todos aquellos vrtices que se encuentran en arcos incidentes al interior del vrtice final se
deben marcar con la diferencia entre la marca del vrtice final del camino y el valor
asociado a dicho arco.
3. Todo vrtice que sea extremo inicial de un arco cuyo extremo final tenga una marca
deber marcarse con la diferencia de sta menos el valor asociado a dicho arco.
4. Si un arco es marcado ms de una vez se elegir la marca de mayor valor.
5. Los pasos 3 y 4 se repetirn hasta que se marque el vrtice inicial del camino. Esta marca
debe coincidir con la que se le dio en la primera parte del algoritmo.
6. El camino de valor mnimo entre los dos vrtices llamados inicial y final est formado por
todos aquellos vrtices que tengan marcas iguales debido a la aplicacin de las dos partes
del algoritmo.

Ejemplo 4.7 Caminos de valor mnimo

En la siguiente grfica, determinar el camino de valor mnimo entre el nodo 1 y el nodo 7.








La aplicacin del algoritmo en su primera parte determina la siguiente red con las marcas
indicadas con flechas hacia la derecha:








1
2
3
5
6
4
7
6
8
3
1
2
9
4
7
4
9
3
3
0
6 7
8
10
8
14
6
29
1
2
3
5
6
4
7
6
8
3
1
2
9
4
7
4
9
3
3
0
6 7
8
10
8
14
6
0
6 5
14
1 7
10
El camino de valor mnimo es de 14 unidades; con la aplicacin de la segunda parte del
algoritmo se marcan los nodos con una flecha hacia la izquierda:











El valor asociado a cada flecha hacia la derecha en cada nodo, indica el valor del camino
mnimo entre el nodo inicial y cada nodo.
Finalmente, se localizan los nodos con marcas iguales y que representarn al camino de valor
mnimo; en el ejemplo, ste est dado por los nodos 1, 2, 5 y 7:










Algoritmo para determinar el camino de valor mximo
Para investigar un camino de valor mximo la grfica no debe contener anillos, pues de lo
contrario se podran tener caminos de longitud no finita y consecuentemente el valor de estos
caminos sera ilimitado.
Algoritmo para determinar si una grfica no tiene anillos (Berge):
1. Se marca todo vrtice i que no tiene sucesor.
2. Se marca todo vrtice j tal que todos sus sucesores estn marcados.
Si de esta manera se llegan a marcar todos los vrtices, entonces la grfica no tiene anillos.
1
2
3
5
6
4
7
6 4
4
0
6
10
14
0 14
6
10
30
1
2
3
5
6
4
7
6
8
3
1
2
9
4
7
4
9
3
3
6
1
2
3
5
6
4
7
6
8
3
1
2
9
4
7
4
9
3
3
6
I
II
III
IV V
VI
VII
Ejemplo 4.8 Investigar si la grfica tiene anillos
En la grfica siguiente se quiere determinar el camino de valor mximo, por lo que es necesario
investigar si la grfica no tiene anillos:










Se comienza con el nodo 7 que es el nico al principio, que no tiene sucesor y se prosigue con
el algoritmo, logrndose marcar toda la red (en el orden marcado por los nmeros romanos);
por lo que se puede asegurar que la red no tiene anillos:











El algoritmo para determinar caminos de valor mximo es idntico al descrito para determinar
el camino de valor mnimo, salvo en el paso 4 de la primera y segunda parte, donde debe
decir:
Primera parte:
4. Si un arco es marcado ms de una vez se elegir la marca de mayor valor.
Segunda parte:
4. Si un arco es marcado ms de una vez se elegir la marca de menor valor.

31
1
2
3
5
6
4
7
6
8
3
1
2
9
4
7
4
9
3
3
6
1
2
3
5
6
4
7
6
8
3
1
2
9
4
7
4
9
3
3
6
0
6 18
21
9 15
27
1
2
3
5
6
4
7
6
8
3
1
2
9
4
7
4
9
3
3
6
0
6 18
21
9 15
27
0
6
18
9 20
23
27
Ejemplo 4.9 Camino de valor mximo
Determinar el camino de valor mximo entre el nodo 1 y el nodo 7 de la red siguiente (ya se
determin que la grfica no tiene anillos):









La aplicacin del algoritmo en su primera parte determina la siguiente red con las marcas
indicadas con flechas hacia la derecha:










El camino de valor mximo es de 27 unidades; con la aplicacin de la segunda parte del
algoritmo, se marcan los nodos con una flecha hacia la izquierda:








32
1
2
3
5
6
4
7
3
9
9
0
6 18
9
27
0
6
18
9
27
6
El valor asociado a cada flecha hacia la derecha en cada nodo, indica el valor del camino
mximo entre el nodo inicial y cada nodo.
Finalmente, se localizan los nodos con marcas iguales y que representarn al camino de valor
mximo; en el ejemplo, ste est dado por los nodos 1, 2, 3, 4 y 7:











4.7 Ruta ms corta
Consiste en encontrar cul es el camino de menor valor en distancia, tiempo o costo (segn lo
que indiquen los valores de los arcos), entre dos nodos cualesquiera de una red de arcos
dirigidos.
Algunos ejemplos en los cuales se puede aplicar ste algoritmo son:
1. Dos ciudades estn comunicadas por varias carreteras, se requiere determinar por cul se
ocupa el mnimo tiempo para ir de una ciudad a otra.
2. Algunos problemas de reemplazo de equipo se pueden modelar como una red. Por el
algoritmo de la ruta ms corta se determina cul es el plan de reemplazo ms econmico.
3. En una ciudad se requiere determinar cul es la forma de ir de un punto A a un punto B por
el camino ms corto.

El algoritmo requiere que todos los valores sobre los arcos sean positivos, y consiste bsicamente
en ir etiquetando todos los nodos de la red. Estas etiquetas informan cul es la ruta ms corta
desde el nodo inicial hasta ese nodo, y desde qu nodo se lleg a l. El algoritmo termina
cuando se ha etiquetado el nodo final. Se identifican tres conjuntos:
1. El de los nodos totales de la red, N
2. El de los nodos etiquetados, X
3. El de los nodos no etiquetados, X

33
6
1 5
3
4
2
3
7
4
4
9
6
10
2 3
d1=0
Algoritmo para calcular la ruta ms corta
1. Etiquetar el nodo inicial con d1=0, definir el conjunto de nodos etiquetadas, X
2. Definir el conjunto de nodos no etiquetados X , como el complemento de los que ya estn
etiquetados X =N-X
3. (X, X )={(i,j) | i X y j X }
y calcular
di + Cij
4. Calcular dp + Cpq = mnimo {di + Cij}
(i,j) (X, X )
que ser la etiqueta del nodo q, o sea
dq = dp + Cpq

5. Colocar a q en X
6. Si ya est el nodo final en X, alto. Si no, ir al paso dos

Ejemplo 4.10 Ruta ms corta
En la siguiente red se requiere determinar la ruta ms corta para ir del nodo 1 al nodo 6, donde
los elementos sobre los arcos (Cij ) denotan distancias expresadas en metros.

1. Se etiqueta el nodo 1 con d1=0 y se incluye a ste nodo en el conjunto X.








2. Se definen los conjuntos X y X

X={1} , X ={2,3,4,5,6}


3. El conjunto (X, X ) es el de todos los arcos con origen en el nodo 1 y terminacin en alguno
de los nodos 2, 3, 4, 5 6, que en este ejemplo son: (1,2), (1,3) y (1,4).
34
6 3
5 4
2
1

3
7
4
6
3
9
4
10
2
d1=0
6 3
5 4
2
1

3
7
4
6
3
9
4
10
2
d1=0
d2=3







Se calculan para stos arcos (i,j) el valor di+Cij.
(1,2) : d1 + C12 = 0 + 3 = 3
(1,3) : d1 + C13 = 0 + 4 = 4
(1,4) : d1 + C14 = 0 + 7 = 7
4. El valor mnimo corresponde a d1+C12=dp+Cpq=dq; dq=3=d2.
5. El nodo q=2 se incluye en el conjunto X, etiquetado con d2=3.
6. X={1,2} X ={3,4,5,6}
7. Los arcos en (X, X ) son: (1,3), (1,4), (2,4), (2,5).








Se calcula para estos arcos (i,j) el valor di+Cij.
(1,3) : d1 + C13 = 0 + 4 = 4
(1,4) : d1 + C14 = 0 + 7 = 7
(2,4) : d2 + C24 = 3 + 6 = 9
(2,5) : d2 + C25 = 3 + 9 = 12


1. El valor mnimo corresponde a d1+C13=dp+Cpq=dq; dq=4=d3.
2. El nodo q=3 se incluye en el conjunto X, etiquetado con d3=4.
3. X={1,2,3} X ={4,5,6}
4. los arcos en (X, X ) son: (1,4), (2,4), (2,5), (3,4), (3,6).

35
6 3
5 4
2
1

3
7
4
6
3
9
4
10
2
d1=0
d2=3
d3=4
6 3
5 4
2
1

3
7
4
6
3
9
4
10
2
d1=0
d2=3
d3=4
d4=7









Se calcula para stos arcos (i,j) el valor di+Cij.
(1,4) : d1 + C14 = 0 + 7 = 7
(2,4) : d2 + C24 = 3 + 6 = 9
(2,5) : d2 + C25 = 3 + 9 = 12
(3,4) : d3 + C34 = 4 + 3 = 7
(3,6) : d3 + C36 = 4 + 10 = 14
1. Existen dos valores mnimos correspondientes a d1+C14=dp+Cpq=dq; dq=7 y a
d3+C34=dp+Cpq=dq; dq=7; se selecciona cualquiera de ellos.
2. El nodo q=4 se incluye en el conjunto X, etiquetado con d4=7.
3. X={1,2,3,4} X ={5,6}
4. Los arcos en (X, X ) son: (2,5), (4,5), (3,6).









Se calcula para stos arcos el valor di+Cij.
(2,5) : d2 + C25 = 3 + 9 = 12
(4,5) : d4 + C45 = 7 + 4 = 11
(3,6) : d3 + C36 = 4 + 10 = 14
1. El valor mnimo corresponde a d4+C45=dp+Cpq=dq; dq=11=d5.
2. El nodo q=5 se incluye en el conjunto X, etiquetado con d5=11.
36
6 3
5 4
2
1

3
7
4
6
3
9
4
10
2
d1=0
d2=3
d3=4
d4=7 d4=7 d4=7 d4=7 d4=7
d5=11
6 3
5 4
2
1

3
7
4
6
3
9
4
10
2
d1=0
d2=3
d3=4
d4=7 d4=7 d4=7 d4=7 d4=7
d5=11
d6=13
6 3
5 4
2
1
4
2
7
6 3
5 4
2
1
4
2
4
3
3. X={1,2,3,4,5} X ={6}
4. Los arcos en (X, X ) son: (3,6), (5,6).









Se calcula di+Cij.
(3,6) : d3 + C36 = 4 + 10 = 14
(5,6) : d5 + C56 = 11 + 2 = 13
1. El valor mnimo es d5+C56=13=dp+Cpq=dq=13=d6.
2. Se etiqueta el nodo q=6 con d6=13.









X={1,2,3,4,5,6} X ={0}. Como ya se etiquet el nodo 6, se tiene la ruta ms corta del nodo 1 al
nodo 6, que vale 13.
Hay dos posibles rutas, las cuales son:







37

El nodo predecesor para ir a uno cualquiera es el nodo p; esto se observa al etiquetar
dq=dp+Cpq. Por ejemplo, en la ltima red d6=d5+C56, es decir, se llega a q=6 a travs del nodo
p=5. En la penltima red se tiene que d5=d4+C45, o sea que se llega al nodo q=5 desde P=4 y as
sucesivamente.

Solucin empleando TORA:

Del men principal elegir Network models y shortest route.

















Figura 4.18 Men principal de TORA.









38










Figura 4.19 Ingresar los coeficientes del problema.












Figura 4.20 Solucin del problema.
39

C


A B


D
A
C
B
D
4.8 El problema del cartero chino
El problema
Un cartero est buscando la ruta ms corta (tiempo, distancia) para completar su ruta
asignada de calles. Cada calle debe ser atravesada al menos una vez y el cartero deb terminar
en el mismo lugar en que parti.
Antecedentes
En 1730. El matemtico suizo Leonhard Euler decidi estudiar a la ciudad de Kningsberg en
Prusia. Kningsberg fue construida en las orillas de un ro y tiene siete puentes conectados a dos
islas a las orillas del ro. Lo que Euler pretenda era descubrir si era posible cruzar todos los
puentes en un tipo de tour sin cruzar el mismo puente dos veces.






Hay varias diferencias entre el problema de los puentes de Kningsberg (PPK) y el problema del
cartero chino (PCC). Primero, no requera que el punto inicial y final fuera el mismo. Segundo,
Euler no estaba intentando minimizar la distancia de viaje. El nombre de Cartero Chino se debe
a que fue propuesto por el matemtico chino (Mei-ko Kwan) en 1962. Es tambin conocido con
el nombre alternativo de Problema de la Ruta de Inspeccin. El PCC tiene muchas aplicaciones
prcticas como la planeacin de rutas de autobs, recoleccin de basura, barrido de calles,
arado de tierras de cultivo e inspeccin de lneas de transmisin.
Formulacin matemtica
Se pueden convertir ambos problemas a modelos de redes. Por ejemplo, en el PPK, dejando las
cuatro regiones representadas por nodos y los siete puentes por los arcos. Entonces se tiene el
multgrafo que se muestra:





40
G1
G2
G3
G4
Definicin: Un multgrafo es una grfica donde arcos mltiples (entre dos nodos distintos) y anillos
(un arco junta un nodo a s mismo) son permitidos. Una grfica que no permite arcos mltiples o
anillos es llamada grfica simple.
Definicin: Sea G una grfica. Un camino en G que atraviesa a cada arco exactamente una
vez, es llamado un camino Euleriano. En adicin, si el camino inicia y termina en el mismo
vrtice, es llamado un circuito Euleriano (o tour Euleriano). Si G tiene un tour Euleriano, se dice
que G es una grfica Euleriana.
Se puede observar que el PPK es el problema de encontrar un camino Euleriano en una grfica.
El PCC puede ser convertido al problema de encontrar un tour Euleriano en una grfica que
tiene el mnimo costo.
Definicin: Sea un vrtice en G. El grado de , es el nmero de arcos que inciden en . Si el
grado es impar, se dice que es un vrtice impar; si el grado es par, se dice que es un vrtice
par.
Teorema: siempre hay un nmero par de vrtices impares en una grfica.
Definicin: Sea G una grfica. Un componente no trivial de G es una sub grfica que contiene
al menos dos vrtices distintos y al menos una trayectoria entre cualquier par de vrtices en una
grfica.
Teorema: Sea G una grfica. G es una grfica Euleriana si todos los vrtices son pares y todos
los arcos pertenecen a un componente simple.
Ejemplo





G1 y G2 son grficas Eulerianas pero G3 y G4 no lo son. G3 no es Euleriana porque contiene
vrtices impares. G4 no es Euleriana porque est compuesta de de dos componentes no
triviales.
Teorema: Sea G una grfica. G tiene un camino Euleriano si todos los arcos pertenecen a un
componente simple y hay cuando ms dos vrtices impares.
Observacin 1: el camino Euleriano podra necesariamente iniciar y terminar en los nodos
impares.
41
a
b
c d
e
f
j
h
g
Observacin 2: El PPK no tiene un camino Euleriano ya que los cuatro vrtices tienen grado
impar. Luego, no hay manera de atravesar los siete puentes exactamente una vez.
Observacin 3: Si G es una grfica con slo vrtices pares y un componente no trivial, entonces
la solucin de PCC utiliza a cada arco en G EXACTAMENTE una vez y el costo total del viaje es
la suma de todos los valores en los arcos.
Algoritmo de Fleury
Si G es una grfica con slo vrtices pares y un componente no trivial, entonces se puede
identificar un camino Euleriano como sigue:
1. Comenzar con cualquier vrtice.
2. Desde los vrtices actuales, atravesar cualquier arco no seleccionado cuya supresin podra
no resultar en una grfica con dos componentes no triviales.
3. Borrar el arco seleccionado de la grfica. Si no hay arcos faltantes PARAR; de otra manera,
regresar al PASO 2.
Si G es una grfica con cuando ms dos vrtices impares y un componente no trivial, entonces
se puede identificar un camino Euleriano como sigue:
4. Comenzar con cualquier vrtice impar. (si todos los vrtices son pares, comenzar con el que
sea).
5. Desde los vrtices actuales, atravesar cualquier arco no seleccionado cuya supresin podra
no resultar en una grfica con dos componentes no triviales.
6. Borrar el arco seleccionado de la grfica. Si no hay arcos faltantes PARAR; de otra manera,
regresar al PASO 2.
Ejemplo 4.11 Un camino Euleriano
En la grfica mostrada, el grado (a) = 3 y el grado (h) = 3. Todos los dems son pares. Luego, la
grfica no tiene un circuito Euleriano pero tiene un camino Euleriano iniciando en a y
terminando en h.





Comenzando en a, se tiene a b c a j h c d. En estos puntos se tiene
la grfica que se muestra (con los arcos borrados que ya han sido recorridos):


42
a
b
c d
e
f
j
h
g
a
b
c d
e
f
j
h
g
a
f e
d b
c
6
4
4
4
4
5
6
8
4
5
12
a
f e
d b
c
6
4
4
4
4
5
6
8
4
5
12
4
4
4





No se puede visitar g como el prximo porque borrando dg se podra dejar a la grfica con dos
componentes no triviales





As que se visita e como prximo, termina el camino con e f d g h.
Resolviendo el PCC:
PREGUNTA: Qu podra hacer el cartero si la grfica subyacente no tiene slo vrtices pares?
RESPUESTA: l empareja los vrtices impares e intenta encontrar la ruta ms corta entre los dos
vrtices en cada par.
Ejemplo 4.12 Un camino Euleriano
En la grfica de abajo, hay dos vrtices impares, b y f. Si se quiere un camino Euleriano, se
puede usar el algoritmo de Fleury. Pero si se quiere resolver el PCC en esta grfica, se necesita
encontrar la ruta ms corta entre b y f y aumentar la grfica con los arcos en la ruta ms corta.







43
La nueva grfica es Euleriana y ahora se puede usar el algoritmo de Fleury para encontrar un
camino Euleriano.
Algoritmo para el problema del cartero chino (PCC)
1. Listar todos los vrtices impares en la red. Si no hay vrtices impares, ir a PASO 5.
2. Encontrar todos los posibles CONJUNTOS de parejas de los vrtices impares.
3. Para cada CONJUNTO, encontrar la ruta ms corta entre los dos vrtices en cada par.
Calcular el costo total del CONJUNTO de parejas adicionando los costos de las rutas ms
cortas.
4. Seleccionar el CONJUNTO de parejas con el valor mnimo y repetir estos arcos en la
grfica.
5. Usar el algoritmo de Fleury para encontrar un camino Euleriano en la grfica resultante.
Lo que se tiene que hacer en los PASOS 2 a travs de 4 es convertir una grfica no Euleriana en
una grfica Euleriana agregando arcos a la grfica. Esto es equivalente a hacer que el cartero
camine de arriba abajo en la misma calle.
Ejemplo 4.13 Problema del cartero chino
En la grfica que se muestra, hay cuatro vrtices impares, b, e, f, y g. Hay tres CONJUNTOS de
parejas: {b & e, f & g}; {b & f, e & g}; y {b & g, f & e}.

Par Ruta ms corta Costo
b & e b, g, e 10
f & g f, g 8
b & f b, a, f 9
e & g e, g 4
b & g b, g 6
f & e f, e 12

Conjuntos de pares Costo
b & e, f & g 10 + 8 = 18
b & f, e & g 9 +4 = 13
b & g, f & e 6 + 12 = 18

El CONJUNTO ms barato de pares es {b & f, e & g} por lo que se repiten los arcos ba, af, y eg
en la grfica.
La nueva grfica es Euleriana y ahora se puede usar el algoritmo de Fleury para encontrar un
camino Euleriano en la red.


44
a
c
d
e
f g
b
4
6
7
8
2
12
9
5
4
7
a
c
d
e
f g
b
4
6
7
8
2
12
9
5
4
7
2
4
7

You might also like