Teoría de redes y
optimización en redes
Pedro Sánchez Martín
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 2
Contenidos
• Definiciones básicas
• Árbol generador mínimo de expansión
• Camino mínimo
– Algoritmo Dijkstra
– Algoritmo Bellman-Ford
• Flujo máximo
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 3
Universidad Pontificia Comillas de Madrid
Definiciones básicas (I)
Red Nodo
s Vértices Nudos
Grafo Arcos Aristas Rama
s N = {1, 2, 3, 4}
A = {(1, 2), (1, 3), (1, 4), (3, 4)}
1
2
3
4
Camino que une un nodo con él mismo Circuito
Cadena que une un nodo con él mismo Ciclo
Secuencia de arcos dirigidos que unen dos nodos Camino
Secuencia de arcos no dirigidos que unen dos nodos Cadena
Conjunto de nodos unidos por arcos dirigidos Red dirigida
Par orientado de vértices Arco dirigido
Definiciones básicas (II)
1
3
2
5
4
Circuito (5, 3) (3, 4) (4, 5)(1, 2) (2, 5) (5, 3) (3, 1) Ciclo
(1, 2) (2, 5) (5, 3) (3, 4) Camino dirigido (camino)
(1, 2) (2, 5) (5, 4) Camino NO dirigido (cadena)
Nodos conexos: dos nodos son conexos si la red contiene al menos una cadena entre ellos Red conexa: red donde cada pareja de nodos es conexa
Árbol: red conexa sin ciclos
Árbol generador: red conexa sin ciclos que tiene exactamente n-1 arcos para recorrer todos los n nodos Capacidad de un arco: máximo flujo por un arco
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 5
Universidad Pontificia Comillas de Madrid
Definiciones básicas (III)
Matriz de incidencia: filas nodos, columnas aristas,
elementos
Grafo dirigido: -1 nodo inicial, +1 nodo final. Dos elementos por columna. Matriz unimodular.
Matriz de adyacencia: filas nodos, columnas nodos,
elementos
Matriz simétrica.
1 si el nodo pertenece a la arista 0 otro caso
ij
i j
b = ⎨⎧
⎩
1 si existe un arco (arista) del nodo al 0 otro caso
ij
i j a = ⎨⎧
⎩
Matrices
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 6
Definiciones básicas (IV)
1 0 0 1 0
1 1 0 0 1
0 1 1 0 0
0 0 1 1 1
B
⎛ ⎞
⎜ ⎟
⎜ ⎟
=
⎜ ⎟
⎜ ⎟
⎝ ⎠
0 1 0 1
1 0 1 1
0 1 0 1
1 1 1 0
A
⎛ ⎞
⎜ ⎟
⎜ ⎟
=
⎜ ⎟
⎜ ⎟
⎝ ⎠
1
2
3
4
Matriz de incidencia
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 7
Universidad Pontificia Comillas de Madrid
Definiciones básicas (IV)
1
2
3
4
Matriz de incidencia
Matriz de adyacencia
1 0 0 1 0
1 1 0 0 1
0 1 1 0 0
0 0 1 1 1
B
−
⎛ ⎞
⎜ − ⎟
⎜ ⎟
=
⎜ − ⎟
⎜ − − ⎟
⎝ ⎠
0 1 0 0
0 0 1 0
0 0 0 1
1 1 0 0
A
⎛ ⎞
⎜ ⎟
⎜ ⎟
=
⎜ ⎟
⎜ ⎟
⎝ ⎠
Árbol generador mínimo
Aplicaciones:
Redes de telecomunicación, de distribución o de transporte
Hipótesis:
Red conexa no dirigida
Distancia no negativa en cada arco
Objetivo:
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 9
Universidad Pontificia Comillas de Madrid
Árbol generador mínimo (Algoritmo de Prim)
Notación
: número de nodos del grafo G ( =card (V)) : árbol construido
: conjunto de nodos conectados hasta la iteración
: conjunto de nodos todavía no conectados hasta la iteración
n
n
T
k
kC
k
kC
AlgoritmoPaso 1: Selección de un vértice inicial cualquiera
Hacer , . Elegir un vértice cualquiera y hacer , . Sea y .
Paso 2: Selección del vértice más cercano a los conectados y que todavía no haya sido conectado, añadir la arista al árbol generador
Seleccionar , un nodo no conectado tal que se une a algún vértice ya conectado (de ) con la arista de menor peso .
Hacer , y
Si , parar. Si no, poner y repetir el paso 2.
0
C = ∅ C0 =V i V∈ C1 ={ }i
{ }
1
C =V − i k = 2 T = ∅
*
1 k j ∈C −
1 k
C − ek−1
{ }
* 1k k
C =C − ∪ j
{ }
*1
k k
C =C − − j T =T ∪
{
ek−1}
k = n k = +k 1
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 10
Árbol generador mínimo (Ejemplo)
1
2
5
3
4
6
. 1 5 7 9
1 . 6 4 3
5 6 . 5 10
7 4 5 . 8 3
9 3 8 .
10 3 .
⎛ ∞⎞⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ∞⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ∞ ⎟⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎟ ⎜ ⎟ ⎜ ∞ ∞⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜∞ ∞ ∞ ⎟ ⎜⎝ ⎠ Paso 1: , .
Sea por ejemplo : , . Sea y
Paso 2:
Paso 3:
0
C = ∅ C0 =V ={1,2, 3, 4, 5, 6}
1
i = C1 ={ }1 C1 ={2, 3, 4, 5, 6} k =2 T = ∅
* 2
j = e1={ }1,2 C2 ={ }1,2 C2 ={3, 4, 5, 6} T ={ }e1 k <6 k =3
* 5
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 11
Universidad Pontificia Comillas de Madrid
Árbol generador mínimo (Ejemplo cont.)
1
2
5
3
4
6
. 1 5 7 9
1 . 6 4 3
5 6 . 5 10
7 4 5 . 8 3
9 3 8 .
10 3 .
⎛ ∞⎞⎟
⎜ ⎟
⎜ ⎟
⎜ ∞⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜ ∞ ⎟⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟⎟
⎜ ⎟
⎜ ∞ ∞⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜∞ ∞ ∞ ⎟
⎜⎝ ⎠
Paso 4:
Paso 5:
Paso 6:
parar
* 4
j = e3 ={2, 4} C4 ={1,2, 5, 4} C4 ={3, 6} T ={e e e1, ,2 3} k <6 k =5
* 6
j = e4={4, 6} C5 ={1,2, 5, 4, 6} C5 ={ }3 T ={e e e e1, , ,2 3 4} k <6 k=6
* 3
j = e5 ={1, 3} C6 ={1,2, 5, 4, 6, 3} C6 = ∅ T ={e e e e e1, , , ,2 3 4 5} k =6
Camino mínimo
Hipótesis:
• Red conexa dirigida o no dirigida
• Dos nodos especiales:
origen y destino
• Cada arco lleva asociado una distancia:
- No negativa: Algoritmo Djikstra
- Positiva o negativa: Algoritmo Bellman-Ford
Otras posibilidades:
• Restricciones en los caminos
Objetivo:
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 13
Universidad Pontificia Comillas de Madrid
Camino mínimo (Algoritmo Dijkstra)
- Es más eficiente que el algoritmo Bellman-Ford si no hay distancias negativas - Se basa en el principio de Bellman de que el óptimo está formado por subóptimos
Este algoritmo no es válido para arcos de longitud negativa
1
3
5
2
154
50
60 10 20
30 100
• Se etiquetan los nodos cuando se determina su camino mínimo al origen • En cada paso se obtiene el camino mínimo al nodo origen de los nodos
no etiquetados
• La evaluación del camino mínimo de los nodos no etiquetados se hace comparando la distancia previa al último nodo etiquetado y la distancia considerando el último nodo etiquetado
• El nodo con camino mínimo de los no etiquetados se etiqueta
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 14
Camino mínimo (Algoritmo Dijkstra)
Paso 0: Inicio, se etiquetan los nodos con la longitud del arco que los une con el origen
1 0
u = uj =d1j j=2,...,n P=
{ }
1 T ={
2,..,n}
pred j( ) 1,= j=2,...,nPaso 1: Designar la etiqueta permanente de la iteración: vértice con menor valor de la etiqueta transitoria
Buscar tal que . Hacer yk∈T k min
{ }
j j Tu u
∈
= P= ∪P
{ }
k T = −T{ }
kSi , parar.T = ∅
Paso 2: Revisar las etiquetas transitorias
calcular , si se modifica poner . Volver al Paso 1.
j T
∀ ∈ uj =min
{
u uj, k +dkj}
pred j( )=k: Conjunto de nodos etiquetados : Conjunto de nodos NO etiquetados
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 15
Universidad Pontificia Comillas de Madrid
Camino mínimo (Ejemplo)
1 3 5
2 15 4
50
60 10 20
30 100 Paso 0:
1 0
u = u2 =100 u3 = 30 u4 = ∞ u5 = ∞ P ={ }1 {2, 3, 4, 5}
T = pred j( )=1, j =2, 3, 4,5
Paso 1:
30
k
u
=
k = 3 P ={1, 3} T ={2, 4, 5}≠ ∅ Paso 2:{ } { }
2 min 2, 3 32 min 100, 30 100
u = u u +d = + ∞ =
{
}
{ }4 min 4, 3 34 min , 30 10 40
u = u u +d = ∞ + = pred(4)= 3
{ } { }
5 min 5, 3 35 min , 30 60 90
u = u u +d = ∞ + = pred(5)= 3
Paso 1:
40
k
u = k = 4 P ={1, 3, 4}T ={2,5}≠ ∅
Paso 2:
{ } { }
2 min 2, 4 42 min 100, 40 15 55
u = u u +d = + = pred(2)=4
{ } { }
5 min 5, 4 45 min 90, 40 50 90
u = u u +d = + = pred(5)=4
Camino mínimo (Ejemplo cont.)
1 3 5
2 15 4
50 10
30 Paso 1:
Paso 2:
Paso 1:
55
k
u = k =2 P ={1, 3, 4,2} T ={ }5 ≠ ∅
{
}
{ }5 min 5, 2 25 min 90, 55 90
u = u u +d = + ∞ =
90
k
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 17
Universidad Pontificia Comillas de Madrid
Camino mínimo (Algoritmo de Bellman-Ford)
:longitud del camino mínimo del vértice 1 al vértice usando a lo sumo arcos
Algoritmo:
Paso 1: Iniciar con longitudes de los arcos del nodo 1 a los demás nodos
Poner
Paso 2: Calcular las distancias mínimas usando a lo sumo arcos
Calcular .
Si , parar. Si no, poner y volver al paso 2.
m j
u
j
m1
1 0
u = u1j =d1j j=2,...,n m=1
1 m+
{
}
{
}
1
min , min
m m m
j j k j k kj
u + u u d
≠
= +
1
m m
j j
u + =u ∀j m= +m 1
• Se utiliza sólo para el caso de arcos con distancia negativa
• No se aplica si existe un circuito con recorrido negativo, es decir, la suma de pesos de los arcos del circuito suma menos de cero
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 18
Camino mínimo (Ejemplo de Bellman-Ford)
Paso 1:
pred(j)=1 j=2,3,4.
Paso 2:
Como , pred(4)=3, poner y volver al paso 2.
1 1 0
u = 1
2 5
u = 1 3 2 u = 1
4
u = ∞ m =1
{ }
{
}
{ { }}2 1 1 1
2 min 2, min 3 32, 4 42 min 5, min 2 , 3 5
u = u u +d u +d = + ∞ ∞ − =
{ }
{
}
{ { }}2 1 1 1
3 min 3, min 2 23, 4 43 min 2, min 5 3, 6 2
u = u u +d u +d = + ∞ + =
{ }
{
}
{ { }}2 1 1 1
4 min 4, min 2 24, 3 34 min , min 5 4, 2 1 3
u = u u +d u +d = ∞ + + =
2 1
4 4
u ≠u m =2
1
2
4
3
5 -3
4 6
1 3
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 19
Universidad Pontificia Comillas de Madrid
Camino mínimo (Ejemplo de Bellman-Ford)
3 2
2 2
u ≠u m =3
1 4 1 3
m = − = − =n
4 3
j j
u =u ∀j
Paso 2:
Como , pred(2)=4, poner y volver al paso 2 (aunque ya se sabe que se ha acabado por ser .
Paso 2:
Como , parar.
{
}
{
}
{ { }}3 2 2 2
2 min 2, min 3 32, 4 42 min 5, min 2 , 3 3 0
u = u u +d u +d = + ∞ − =
{
}
{
}
{ { }}3 2 2 2
3 min 3, min 2 23, 4 43 min 2, min 5 3, 3 6 2
u = u u +d u +d = + + =
{
}
{
}
{ { }}3 2 2 2
4 min 4, min 2 24, 3 34 min 3, min 5 4, 2 1 3
u = u u +d u +d = + + =
{ }
{
}
{ { }}4 3 3 3
2 min 2, min 3 32, 4 42 min 0, min 2 , 3 3 0
u = u u +d u +d = + ∞ − =
{ }
{
}
{ { }}4 3 3 3
3 min 3, min 2 23, 4 43 min 2, min 0 3, 3 6 2
u = u u +d u +d = + + =
{
}
{
}
{ { }}4 3 3 3
4 min 4, min 2 24, 3 34 min 3, min 0 4, 2 1 3
u = u u +d u +d = + + =
1
2
4
3
-3
1 2
Problema del flujo máximo
Hipótesis:
•
Red conexa dirigida sin bucles
•
Nodos
origen
y
destino
, el resto son de transbordo
•
Cada arco tiene una capacidad asociada
Objetivo:
•
Maximizar el flujo total desde el origen al destino
Métodos de resolución:
•
Programación lineal
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 21
Universidad Pontificia Comillas de Madrid
Conceptos del problema de flujo máximo
Red de transporte:
• Una única fuente
• Un único sumidero
• Cada arco tiene una capacidad asociada
• Cada vértice es alcanzable desde la fuente y el sumidero es alcanzable desde todos los vértices
Flujo compatible:
• Es un vector de dimensión igual al número de arcos con dos propiedades: 1. El flujo no supera la capacidad de ningún arco ( )
2. Verifica ley de conservación de flujo
El flujo que sale de la fuente coincide con el que llega al sumidero. Dicho valor se denomina valor del flujo
s
t
ϕ
( ),
ij cij i j
ϕ ≤ ∀
/( , ) /( , )
, ji ij 0
j j i U j i j U
i s t ϕ ϕ
∈ ∈
∀ ≠
∑
−∑
=TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 22
Conceptos del problema de flujo máximo
Corte:
• Conjunto de arcos cuya eliminación desconecta la fuente del sumidero
• Da lugar a dos componentes: uno incluye la fuente y el otro el sumidero
1
2
4
3
s
t
(5)
(4)
(5)
(6) (2) (6)
(5) (5)
(7)
Los arcos (1,2), (1,4) y (3,4) forman un corte obteniendo los componentes {s,1,3} y {2,4,t}
Capacidad de corte:
• Suma de las capacidades de los arcos que forman el corte
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 23
Universidad Pontificia Comillas de Madrid
Conceptos del problema de flujo máximo
Corte de mínima capacidad:
• Consiste en encontrar el corte cuya capacidad sea mínima
Dado un flujo compatible , su capacidad es siempre menor que cualquier capacidad de corte. Por ello se puede asegurar que:
“El máximo flujo que se puede enviar de la fuente al sumidero coincide con la mínima capacidad de un corte”
La aplicación de esta afirmación da lugar al Algoritmo de Ford-Fulkerson
o también conocido como del camino de aumento
ϕ
Algoritmo de Ford-Fulkerson
Capacidad residual de un arco:
· Es la diferencia entre la capacidad de un arco y el flujo asignado a éste
Camino de aumento:
· Es un camino de la fuente al sumidero tal que el mínimo de las capacidades residuales de los arcos que lo forman es positivo, denominando a este valor
capacidad residual del camino de aumento
Algoritmo:
Paso 1:Comenzar con un flujo compatible y obtener las capacidades residuales de los arcos
Poner flujo 0 y capacidades residuales . Etiquetar
0 ( , ) ij i j U
ϕ = ∀ ∈ *
( , ) ij ij
c =c ∀ i j ∈U ( , )
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 25
Universidad Pontificia Comillas de Madrid
Algoritmo de Ford-Fulkerson (cont.)
Algoritmo (continuación):
Paso 2:Obtener un camino de aumento, incluso redireccionando flujo anteriormente asignado
Sea un nodo ya etiquetado y sea un nodo sin etiquetar tal que existe el arco o el arco . Hacer según el caso:
a) Si y la capacidad residual no es 0 ( ) puede aumentar flujo, calcular el mínimo de la capacidad residual de los arcos anteriores y este arco y etiquetar el nodo, es decir, calcular y etiquetar el nodo con
b) Si y se está enviando flujo por ese arco ( ) se puede redireccionar parte de ese flujo (se puede disminuir en ese arco), entonces calcular y etiquetar el nodo con
i V∈ j V∈
( , )i j ( , )j i
( , )i j ∈V
c
ij*>
0
{ }
*min ,
j i cij
δ = δ
j j→ +(i ,δj)
( , )j i ∈V ϕji >0
{
}
min ,
j i ji
δ = δ ϕ j j→ −( ,i δj)
Repetir hasta que el sumidero esté etiquetado e ir al paso 3 o hasta que no sea posible etiquetar más nodos e ir al paso 4
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 26
Algoritmo de Ford-Fulkerson (cont.)
Algoritmo (continuación):
Paso 3:Aumentar el flujo en el camino obtenido y recalcular las capacidades residuales
Recorrer el camino de nodos etiquetados aumentando el flujo en los arcos etiquetados positivamente y disminuyéndolo en los etiquetados negativamente en la cantidad con que se etiquetó el sumidero
(capacidad residual del camino). Recalcular las capacidades residuales (disminuir en los arcos positivos y aumentar en los negativos). Borrar las etiquetas, excepto la de la fuente, y volver al paso 2.
Paso 4: Parar, no es posible aumentar el flujo
El flujo obtenido es máximo y el corte de capacidad mínima viene dado por los nodos etiquetados en una componente y los no etiquetados en otra (es decir, el corte son los arcos que vayan de una componente a otra).
t
TEORIA DE REDES Y OPTIMIZACIÓN EN REDES. 27
Universidad Pontificia Comillas de Madrid
Flujo compatible con coste mínimo
• En este problema se incorpora un nuevo elemento en la red, el coste . • Se supone asociado a cada arco un coste unitario de envío de flujo
• El problema consiste en enviar una cantidad de flujo conocida, , a través de la red desde la fuente (origen) al sumidero (destino), con coste total mínimo.
ij
d
θ
( , )
/( , )
/( , )
/( , ) /( , ) min
0 ,
0 ( , )
ij ij i j U
ij i s i U
ij i i t U
ji ij
i j i U i i j U
ij ij d
j s t
c i j U
ϕ
ϕ
θ
ϕ
θ
ϕ
ϕ
ϕ
∈
∈
∈
∈ ∈
=
= −
− = ∀ ≠
≤ ≤ ∀ ∈