Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Formulacion Ruta Mas Corta
Formulacion Ruta Mas Corta
Las restricciones representan la conservacion de flujo en cada nodo. Por ejemplo, en el nodo 2 flujo que entra = flujo que sale es x12 + x42 = 1 + x23 .
Notese que una de las restricciones siempre es redundante. Por ejemplo, si se
suman las u
ltimas cuatro restricciones er forma simultanea se obtiene x12 +x13
= 1, que es igual que la restriccion 1.
La solucion optima es
z = 55, x13 = 1, x34 = 1, x42 = 1.
Esta solucion expresa la ruta mas corta del nodo 1 al nodo 2 como 1342,
y la distancia asociada es z = 55 (millas).
Para aplicar la formulacion 2, el problema dual asociado con el programa
lineal anterior es
Maximizar z = y2 y1
sujeta a
y2 y1
y3 y1
y3 y2
y4 y3
y5 y3
y2 y4
y5 y4
yk
R,
3
100
30
20
10
60
15
50
k.
1-2 1-3
0
1
4
2-3 3-4
0
1
3-5
0
4-2 4-5
1
0
Formulaci
on del problema de flujo m
aximo con programaci
on lineal
Se define xij como la cantidad de flujo en el arco (i, j) y sea cij la capacidad
del mismo arco. Se supone que s y t son los nodos inicial y terminal entre
los cuales se debe determinar el flujo maximo en la red capacitada (es decir,
con sus capacidades).
Las restricciones del problema conservan el flujo de entrada y salida en cada
nodo, con excepcion de los nodos inicial y terminal. La funcion objetivo maximiza el flujo total que sale del nodo inicial s, o el flujo total que entra
al nodo terminal t.
Ejemplo 6.4-3
En el modelo de flujo maximo de la figura 2, s = 1 y t = 5. La tabla siguiente
es un resumen del programa lineal correspondiente con dos funciones objetivo distintas, que dependen de si se maximiza la entrada del nodo 1 (= z1 ) o
la salida al nodo 5 (= z2 ).
x12
Maximizar z1 =
1
Maximizar z2 =
0
Nodo 2
1
Nodo 3
0
Nodo 4
0
Capacidad
20
Programaci
on lineal avanzada
En esta seccion veremos una version matricial de la programacion lineal que
permite el desarrollo de varios algoritmos computacionalmente eficientes: el
metodo smplex modificado, el algoritmo de Karmarkar, de punto interior,
totalmente distinto, que parece bastante eficiente al manejar programas lineales muy grandes.
Fundamentos del m
etodo simplex
En la programacion lineal, se dice que el espacio de soluciones factibles forma
un conjunto convexo si el segmento de recta que une dos puntos factibles
distintos cualquiera tambien esta en el conjunto. Un punto extremo del
conjunto convexo es un punto factible que no puede estar en un segmento de
recta que una a dos puntos factibles distintos en el conjunto. En realidad, los
puntos extremos son lo mismo que los puntos de esquina (vertices), nombre
mas adecuado desde el punto de vista geometrico que se uso anteriormente.
En la solucion grafica del programa lineal, demostramos que la solucion optima siempre se puede asociar con un punto extremo factible (vertice) del
espacio de soluciones. Este resultado tiene sentido, intuitivamente, porque
en programacion lineal todo punto factible se puede determinar como funcion de los puntos extremos. Por ejemplo, en el conjunto convexo (a) de la
figura 3, dados los puntos extremos X1 , X2 , X3 , X4 y X5 , un punto factible
X se puede expresar como combinaci
on convexa de los puntos extremos
mediante
X = 1 X1 + 2 X2 + 3 X3 + 4 X4 + 5 X5 ,
en donde
5
X
i 0 i.
i = 1,
i=1
Esta observacion demuestra que los puntos extremos contienen todo lo necesario para definir por completo el espacio de soluciones.
Ejemplo 7.1-1
Demostrar que el siguiente conjunto es convexo:
C = {(x1 , x2 )| x1 2, x2 3, x1 0, x2 0}
Sean X1 = (x11 , x12 ) y X2 = (x21 , x22 ) dos puntos distintos cualquiera en C. Si
C es convexo, entonces X = (x1 , x2 ) = 1 X1 + 2 X2 tambien debe estar en
C. Para demostrar que eso es cierto se necesita demostrar que se satisfacen
todas las restricciones de C en el segmento de recta X; esto es
x1 = 1 x11 + 2 x21 1 (2) + 2 (2) = 2,
x2 = 1 x12 + 2 x22 1 (3) + 2 (3) = 3.
Por consiguiente, x1 2 y x2 3 porque 1 + 2 = 1. Ademas, se satisfacen
las condiciones de no negatividad, porque 1 y 2 son no negativos.
Conviene expresar el problema lineal general en forma de ecuacion matricial.
Se define X como un n-vector que representa las variables; A como matriz de
(m n) que representa los coeficientes de restriccion, y C como un n-vector
que representa los coeficientes de la funcion objetivo. Entonces el programa
lineal se escribe como sigue:
Maximizar o minimizar z = CX
sujeta a
AX = b, X 0
Al usar el formato de la tabla simplex, siempre se puede hacer que las m
columnas de la extrema derecha de A representen la matriz identidad I mediante arreglos adecuados de las variables de holgura y artificiales asociadas
Pj x j = b
j=1
XB = B 1 b
9
1
3 1
2 2 2
x1
x2 = 4
2
x3
BXB = b
(P1 , P2 )
1
2
(P1 , P3 )
3
2
x1
x2
Soluci
on
4
2
x1
x2
1/4
1/4
3/8
1/8
1/4
1/4
1/8
3/8
Estado
4
2
4
2
7/4
3/4
Factible
No es base
(P2 , P2 )
3
2
1
2
x2
x3
4
2
x2
x3
3/4
7/4
No factible
1 C
O
A
z
X
=
0
b
z
XB
=
1 CB
O
B
1
0
b
=
1 CB B 1
O
B 1
0
b
=
CB B 1 b
B 1 b
1 CB B 1
O
B 1
1 C
O
A
z
X
=
1 CB B 1
O
B 1
0
b
xj
CB B 1 Pj cj
B 1 Pj
Solucion
CB B 1 b
B 1 b
11
Ejemplo 7.1-3
Se tiene la siguiente programacion lineal:
Maximizar z = x1 + 4x2 + 7x3 + 5x4
sujeta a:
2x1 + x2 + 2x3 + 4x4 =
10
3x1 x2 2x3 + 6x4 =
5
xk 0, k.
Se debe generar el tabla smplex asociada con la base B = (P1 , P2 ).
Dado B = (P1 , P2 ), entonces XB = (x1 , x2 )T y CB = (1, 4). As,
B
=
2
1
3 1
1
=
1/5
1/5
3/5 2/5
Entonces se obtiene
x1
1/5
1/5
10
3
1
XB =
=B b=
=
x2
3/5 2/5
5
4
Para calcular las columnas de restriccion en el cuerpo de la tabla,
B (P1 , P2 , P3 , P4 ) =
1/5
1/5
3/5 2/5
2
1
2 4
3 1 2 6
=
1 0 0 2
0 1 2 0
1 0 0 2
0 1 2 0
(1, 4, 7, 5) = (0, 0, 1, 3)
Por u
ltimo, se calcula el valor de la funcion objetivo como sigue:
3
1
z = CB B b = CB XB = (1, 4)
= 19
4
As, toda la tabla se puede resumir como sigue:
12
Basica x1 x2 x3 x4 Solucion
z
0 0 1 3
19
x1
1 0 2
0
3
x2
0 1 0
2
4
La conclusion principal de este ejemplo es que una vez conocida la inversa
B 1 , se puede generar toda la tabla smplex a partir de B 1 y los datos
originales del problema.
13