Documentos de Académico
Documentos de Profesional
Documentos de Cultura
on Operativa
Licenciatura en Ciencias Estadsticas
Curso 2008-2009
Indice general
1. Programaci
on Lineal Entera
1.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
15
20
2. Optimizaci
on en redes
25
25
27
29
30
2.4.1. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
. . . . . . . . . . . . . . .
32
34
Investigaci
on Operativa
37
40
3. Programaci
on Lineal Multiobjetivo
45
3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
48
48
48
49
Tema 1
Programaci
on Lineal Entera
1.1. Introducci
on
La Programacion u Optimizaci
on (Lineal) Entera o Discreta es la parte de la Programacion Lineal en la que algunas (o la totalidad) de las variables que intervienen
en los problemas tienen restricciones de integridad.
Los problemas de variables enteras aparecen en problemas cotidianos con mucha facilidad: dise
no de horarios para compa
nas de transporte (son de particular
importancia y poseen una tremenda complejidad los horarios de compa
nas aereas),
planificacion de la produccion, localizacion de centros de servicio. . . No solo aparecen ligados a aspectos economicos o industriales, sino tambien a ambitos estadsticos
(analisis de datos), fsicos (determinacion de estados mnimos de energa) o criptograficos (dise
no de codigos seguros), por citar solo unos pocos.
Las variables enteras aparecen en estos problemas de manera natural a la hora de
modelar elementos indivisibles (n
umero de productos a fabricar, plantas industriales
a localizar, ciudades a visitar. . . ). De especial interes son las variables binarias, denominadas tambien variables 0-1, que reflejan decisiones logicas (s/no) en compras,
inversiones, asignaciones, etc.
Hasta finales de la decada de los ochenta, la resolucion de problemas enteros
estaba muy limitada: el tama
no de los problemas que podan resolverse era bastante
peque
no pese a poderse resolver problemas lineales (sin restricciones de integridad)
de tama
no mucho mayor. Esto es consecuencia del gran incremento en la dificultad
de resolucion que supone el (aparentemente simple) hecho de exigir que las variables
tomen sus valores sobre un conjunto discreto en lugar de sobre uno continuo. Sin
Investigaci
on Operativa
embargo, en los u
ltimos quince a
nos han podido resolverse problemas bastante mas
difciles y grandes gracias a una combinacion de:
- mejores modelizaciones de los problemas,
- ordenadores mas potentes,
- mejores programas informaticos de Programacion Lineal,
- nuevos algoritmos y teoras de planos de corte,
- algoritmos de ramificacion y corte y de descomposicion de problemas enteros.
En esta primera parte de la asignatura nos centraremos en familiarizarnos con
los conceptos basicos de los planos de corte.
1.2. Ejemplos
Desde el momento que nos planteamos resolver un problema real, vemos que las
variables restringidas a tomar valores enteros aparecen de un modo natural.
Ejemplo 1
Ante la proximidad de un viaje, estamos preparando la maleta de mano y decidiendo
que vamos a llevar. Tenemos los siguientes 7 objetos, i = 1, . . . , 7, cada uno con su
peso wi (en kilogramos) y su utilidad ui (en unidades de beneficio esperado):
Objeto
Peso
Utilidad
1
2.5
3
2
1.2
2
3
2.1
5
4
3.2
4
5
4.3
6
6
0.5
3
7
0.6
8
Sabiendo que no estamos dispuestos a cargar con mas de 8 kilos, cual es la mejor
seleccion de objetos?
Soluci
on:
Comenzamos definiendo la variable
(
1, si llevamos el objeto i,
xi =
0, en caso contrario,
i = 1, . . . , 7.
La funcion a maximizar es 3x1 + 2x2 + 5x3 + 4x4 + 6x5 + 3x6 + 8x7 .
Tema 1. Programaci
on Lineal Entera
Por otra parte, como no podemos exceder un cierto peso lmite, debe cumplirse
la siguiente desigualdad:
2.5x1 + 1.2x2 + 2.1x3 + 3.2x4 + 4.3x5 + 0.5x6 + 0.6x7 8.
Ademas, las variables xi deben ser binarias: xi {0, 1}, i = 1, . . . , 7.
En consecuencia, nuestra problema puede representarse mediante el siguiente
modelo:
x1 , x2 , x3 , x4 , x5 , x6 , x7 {0, 1}.
El ejemplo que acabamos de ver es un caso particular con datos concretos del
siguiente problema:
Ejemplo 2 (El problema de la mochila)
En el Problema de la Mochila (Knapsack Problem) hay n artculos o bienes y se
debe decidir cuales tomar. El j-esimo bien tiene un peso aj y un valor cj en caso de
tomarse. Cada bien, o se coge entero o se deja, pero no es posible tomar solo una
fraccion del mismo. Ademas, tampoco se puede exceder una capacidad b disponible
para guardar los objetos tomados (como puede ser una mochila). Si definimos las
variables
(
1 si el j-esimo artculo se toma,
xj =
0 en caso contrario,
entonces el problema a resolver es el siguiente:
Pn
Max. Pj=1 cj xj
n
s.a
j=1 aj xj b,
x Bn .
Investigaci
on Operativa
n
umero de unidades que sirve la planta i al cliente j,
(
1 si la planta i esta abierta,
=
0 en caso contrario,
Pm
Pm Pn
Min.
f
y
+
i
i
j=1 cij xij
i=1
Pi=1
m
s.a
x
=
d
,
j = 1, . . . , n,
j
i=1 ij
yi {0, 1}, i = 1, . . . , m,
xij
Z+ , i = 1, . . . , m, j = 1, . . . , n.
Min. ct x
Ax b,
(P L) s.a
x 0,
Tema 1. Programaci
on Lineal Entera
- si una variable xt es libre (es decir, puede tomar valores tanto positivos como
negativos), se puede hacer el cambio de variable xt = xt xt , con xt , xt 0.
Definici
on 5 (Problema lineal entero mixto)
Un problema de la forma
Min.
ct x
s.a
Ax b,
(P LEM )
x 0,
xj Z+ , j J,
Investigaci
on Operativa
que buscamos: optimizar la funcion objetivo sobre conv( PL Zn+ ). Sin embargo,
obtener explcitamente este conjunto es a su vez una tarea realmente compleja.
Como la region factible del problema entero es mucho mas peque
na que la de su
contrapartida continua, cabra esperar que los problemas enteros fuesen mucho mas
faciles de resolver. Sin embargo, la realidad es diametralmente opuesta: son bastante
mas difciles. Esto es consecuencia del caracter discreto del conjunto de soluciones.
Cabe ahora preguntarse si redondear es o no una buena alternativa para pasar
de una solucion optima continua a una solucion optima discreta. La respuesta es que
no, pues las soluciones optimas del problema entero y de la relajacion lineal pueden
distar mucho entre s, como muestra el siguiente ejemplo.
Ejemplo 9
Resuelve graficamente el siguiente problema:
Max.
x2
s.a
x1 0.9x2
1,
x1
1.9,
x1 , x2
Z2+ .
Soluci
on:
La solucion optima de la relajacion lineal, (x1 , x2 ) = (1.9, 100), tiene valor optimo zL = 100.
Si redondeamos al valor entero mas cercano, (2,100), estamos en un punto infactible.
De hecho, la solucion optima se encuentra muy lejos: es el punto (1,0), con
valor optimo zE = 0.
100
zL
(x1 , x2 )
= 100,
= (1.9, 100)
El redondeo a (2,100)
50
no es factible.
zE = 0
(x1 , x2 ) = (1, 0)
1,0
1,5
2,0
2,5
Definici
on 10 (Formulaci
on)
n
Un poliedro P R es una formulacion para el subconjunto X de Zp Rnp si
X = P Zp Rnp .
Tema 1. Programaci
on Lineal Entera
P1
bc
bc
bc
bc
bc
P2
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
P2
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
bc
P3
Investigaci
on Operativa
Definici
on 12 (Poliedro entero)
Un poliedro se dice que es entero si todos sus puntos extremos son enteros.
Sin embargo, pocas veces sucede que la formulacion de la que se parte sea la
formulacion ideal. Ademas, tratar de encontrar todas las restricciones de esta formulacion ideal no es posible en la practica, pues normalmente es necesario un n
umero
exponencial de restricciones. Esto motiva la siguiente definicion:
Definici
on 13 (Mejor formulaci
on)
Dadas dos formulaciones P1 y P2 de un conjunto X Rn , se dice que P1 es mejor
formulacion que P2 si P1 P2 .
Para lograr una buena formulacion, habra que ir a
nadiendo al problema original
desigualdades que delimiten la region factible entera lo mejor posible.
Definici
on 14 (Desigualdad v
alida)
Una desigualdad t x 0 se dice que es una desigualdad valida para un problema (P ) si es satisfecha por todos los puntos factibles del problema.
Definici
on 15 (Dominancia)
Dadas dos desigualdades validas t x 0 y
t x 0 para un mismo problema, se
dice que la primera desigualdad domina a la segunda si existe un valor > 0 tal que
y 0
0 ,
1.4. La t
ecnica de ramificaci
on y acotaci
on
Hemos visto que si somos capaces de encontrar la formulacion de la envolvente
convexa de nuestro problema original, basta optimizar sobre esa nueva formulacion
para obtener la solucion de nuestro problema entero inicial. Sin embargo, hallar dicha
descripcion de la region factible entera, en el mejor de los casos, es tan difcil como
resolver el problema. Por lo tanto, es necesario recurrir a otras tecnicas de resolucion.
Una, cuya idea es simple, pero que es muy eficaz, consiste en dividir el problema en
subproblemas mas peque
nos y mas sencillos de resolver. Despues, nos quedaremos
con la mejor de las soluciones de esos subproblemas.
Tema 1. Programaci
on Lineal Entera
K
entonces z = mn z k k=1 .
x1 = 1
S0
S1
x2 = 0
S00
S01
S10
S11
x3 = 0
S000
S001
S010
S011
S100
S101
S110
S111
10
Investigaci
on Operativa
S10 = {x S1 : x2 = 0},
S11 = {x S1 : x2 = 1};
y as sucesivamente. De este modo, las hojas del arbol son precisamente los puntos
de B3 que uno examinara si hiciese una enumeracion completa. Observese que, por
convenio, el arbol se dibuja de arriba a abajo con la raz en lo mas alto.
Para la mayora de los problemas es totalmente imposible una enumeracion completa de todas las soluciones factibles. Por lo tanto, es necesario hacer algo mas que
dividir hasta tener enumerados todos los puntos. Como se pueden utilizar cotas de
los valores {z k }k de modo inteligente? Primero, como puede unificarse la informacion sobre las cotas?
Proposici
on 18
Sea S = S1 . . . SK una descomposicion de S, y sean z k = mn {ct x : x Sk }, zk
una cota superior de z k y zk una cota inferior para cada k. Se verifica:
K
i) z = mn zk k=1 es una cota superior de z;
K
ii) z = mn zk k=1 es una cota inferior de z.
S1
20
20
27
13
S2
25
15
S1
20
15
S2
25
15
Tema 1. Programaci
on Lineal Entera
S1
20
18
11
27
13
S2
26
21
S1
20
18
20
18
S2
12
Investigaci
on Operativa
Selecci
on de nodo y variable
A la hora de trabajar en un algoritmo de ramificacion cabe preguntarse como se
elige en que variable ramificar y que nodo analizar (sondear).
En general, para elegir la variable de ramificacion, escogeremos aquella que sea
mas fraccional, esto es, cuya parte decimal este mas cerca de 0.5.
Para elegir el siguiente nodo activo a analizar, hay varias alternativas:
1. B
usqueda en horizontal (breadth-first search): se elige el nodo de menor profundidad.
2. B
usqueda en profundidad (depth-first search): se elige el nodo de mayor profundidad.
3. B
usqueda en calidad (best-first search): se elige el nodo con mejor relajacion
lineal. En el caso de un problema de minimizacion, el de menor relajacion
lineal; equivalentemente, el de menor cota inferior. En el caso de un problema
de maximizacion, el de mayor relajacion lineal; equivalentemente, el de mayor
cota superior.
El tercer criterio suele ser el mas popular.
Veamos como aplicar el algoritmo.
Ejemplo 22
Resuelve el siguiente problema:
Max.
3x1 + 2x2 5x3 2x4 + 3x5
11x1 6x2
+3x4 3x5
3,
x1 , x2 , x3 , x4 , x5 {0, 1}.
Soluci
on:
Comenzamos por resolver la relajacion lineal. Para ello, reemplazamos las restricciones de binaridad por 0 xi 1, i = 1, . . . , 5.
Como solucion optima, obtenemos el punto (0.97, 1, 0, 0.45, 1), que tiene valor
optimo zL = 7.02. Al no ser entera la solucion, debemos crear un arbol de ramificacion.
N1
Tema 1. Programaci
on Lineal Entera
13
Observemos que, como el valor optimo debe ser entero (pues la funcion objetivo
tiene coeficientes enteros y variables binarias), la cota superior inicial de 7.02 puede
refinarse inmediatamente a z = 7.
Ahora, para ramificar, elegimos las variable x4 , que es la mas fraccional.
N1
x4 = 0
7
x4 = 1
N2
N3
(P2 )
x2 = (0.94, 1, 0, 0, 0.46),
z 2 = 6.22,
(P3 )
x3 = (1, 0, 0, 1, 1),
z 3 = 4.
Al resolver el nodo N2 , vemos que la solucion es fraccional y el valor de la relajacion lineal no mejora la cota superior que ya se tiene en la raz. Sin embargo,
por el mismo razonamiento que antes, para este nodo, la cota superior de 6.22 puede
refinarse a 6.
Cuando solucionamos el nodo N3 , obtenemos una solucion entera (la primera que
encontramos). Este punto pasar a ser la solucion incumbente xI = (1, 0, 0, 1, 1) y su
valor optimo pasa a ser el valor incumbente z I = 4, que es una cota inferior de la
solucion optima.
N1
x4 = 0
N2
xI = (1, 0, 0, 1, 1),
z I = 4.
7
x4 = 1
N3
4
4
14
Investigaci
on Operativa
xI = (1, 0, 0, 1, 1),
z I = 4.
7
N1
4
x4 = 0
N2
x4 = 1
6
N3
Nos situamos en el nodo N2 y recordamos que la solucion relajada era (0.94, 1, 0, 0, 0.46).
Ramificamos en x5 y resolvemos los problemas asociados:
(P4 )
x4 = (1, 1, 0, 0, 0),
z 4 = 5,
(P5 )
7
N1
4
x4 = 1
x4 = 0
N2
x5 = 0
N4
N3
x5 = 1
5
5
N5
Como ya no nos quedan nodos por explorar, hemos acabado: la solucion optima
es x = (1, 1, 0, 0, 0) y el valor optimo z = 5.
1.5. Generaci
on de cortes
Como se ha dicho anteriormente, un corte es una desigualdad valida que elimina
una solucion fraccional del problema, pero que no modifica el conjunto de soluciones
del problema entero.
Tema 1. Programaci
on Lineal Entera
15
1.5.1. M
etodo de Dakin
En la seccion anterior, hemos visto como se trabaja con un arbol de ramificacion,
pero no hemos abordado de modo especfico como se trabaja con esas desigualdades
que aparecen cuando se crean las distintas ramas.
Supongamos que la variable xk tiene un valor optimo fraccional xk . En los nodos
hijos obtenidos al ramificar mediante las desigualdades
xk [xk ] y xk [xk ] + 1,
los problemas que queremos resolver tienen las mismas desigualdades que el nodo
con una salvedad: aparece una desigualdad adicional.
Resolver estos problemas desde cero no sera eficiente. Vamos a ver que, gracias
al metodo dual del smplex, es posible usar la base optima del nodo padre para
aprovechar el trabajo ya hecho.
Introduciendo xk [xk]
Como xk es una variable basica, su fila asociada de la base optima es de la forma
X
xk +
ykj xj = xk .
jN
ykj xj + x = fk .
jN
Ahora a
nadimos esta nueva igualdad como una fila adicional a la tabla optima
de la que hemos partido y observamos que:
1. La tabla sigue siendo optima: puesto que la variable de holgura x tiene coste
reducido nulo, los costes reducidos no varan.
16
Investigaci
on Operativa
Introduciendo xk [xk] + 1
De modo analogo, puesto que xk es una variable basica, su fila asociada de la
base optima es de la forma
X
xk +
ykj xj = xk .
jN
ykj xj + x = fk 1.
jN
Al a
nadir esta nueva igualdad como una fila adicional a la tabla optima de la que
hemos partido, nuevamente sucede que tenemos una tabla optima pero no factible
primal. Por lo tanto, es necesario aplicar el metodo dual del smplex para obtener
factibilidad.
Ejemplo 23
Min.
4x1 + 5x2
s.a
x1 4x2 5,
(P1 )
3x1 2x2 7,
x 1 , x 2 Z+ .
Tema 1. Programaci
on Lineal Entera
x3 0
x4 0
zj cj
-1
-3
-4
17
-4 1
-2 0
-5 0
0
1
0
-5
-7
0
Iteracion 2:
0
0 - 10
3
zj cj
2
3
37
x3
x1
- 13
- 83
13
43
7
3
28
3
Iteracion 3:
x2
3
0 1 10
x1
1 0
zj cj
0 0
1
10
52
11
10
1
5
7
10
4
5
9
5
56
5
Como la solucion optima de este problema relajado es fraccional, hay que ramificar. Para ello, elegimos la variable mas fraccional. Al haber empate, tomamos una
cualquiera de ellas. Por ejemplo, x1 .
Ramificamos y obtenemos los problemas
(
(
(P1 ),
(P1 ),
(P2 )
(P3 )
x1 1,
x1 2.
N1
x1 1
56
5
x1 2
N2
N3
Resolvemos (P2 ):
x2
3
1 10
x1
x5
zj cj
1
5
1
-5
7
- 10
1
10
52
2
5
11
10
0
0
1
0
4
5
9
5
- 45
56
5
18
Investigaci
on Operativa
x2 5
x1 4
x3 0
zj cj
0
1
0
0
1
0
0
0
- 21 - 23
0 1
-2 -5
- 25 - 27
0
0
1
0
2
1
4
14
Esta tabla es optima y tiene solucion entera. Como es la primera, pasa a ser la
incumbente. Actualizamos las cotas del arbol y podamos este nodo.
xI = (1, 2),
z I = 14.
14
N1
56
5
x1 2
N2
14
14
x2
3
1 10
x1
x5
zj cj
N3
Resolvemos (P3 ):
1
5
1
5
7
- 10
1
10
52
- 52
11
10
0
0
1
0
4
5
9
5
- 15
56
5
5
4
0
0
1
0
1 - 14 0
0 0 0
0 - 12 1
zj cj
0 - 45
x2
x1
x4
1
4
3
4
-1
- 52
- 11
4
1
2
47
4
N1
xI = (1, 2),
z I = 14.
14
47
4
x1 2
N2
14
14
x2 = 0
N4
N3
x2 1
N5
Tema 1. Programaci
on Lineal Entera
19
Min.
4x1
s.a
x1 5,
3x
1 7,
x 1 Z+ .
El optimo de este problema es x = (5, 0), con valor optimo z = 20. Como esta
solucion es peor que la incumbente, podemos podar el nodo.
N1
xI = (1, 2),
z I = 14.
14
47
4
x1 2
N2
14
14
N3
x2 1
N4
N5
x2
x1
x4
5
4
0
0 1
1 0
0 0
x6
0 0 - 41
zj cj
- 45
0 0
1
4
0
-1 0
- 25 0
1
4
11
-4
1
0
3
4
2
1
2
1
-4
47
4
x2 5
x1 4
x4 0
x3 0
zj cj
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0 -1
-1 0
-3 -2
-1 -4
-4 -5
1
2
1
1
13
20
Investigaci
on Operativa
Esta tabla es optima, con solucion entera y mejor valor que la incumbente. Actualizamos la incumbente y podamos el nodo.
Al no quedar nodos por explorar, ya tenemos resuelto el problema: su solucion
optima es x = (2, 1) y su valor optimo es z = 13.
xk +
[ykj ]xj [
xk ] = fk
jN
fkj xj .
jN
Tema 1. Programaci
on Lineal Entera
21
fkj xj 0.
jN
fkj xj fk .
jN
fkj xj fk .
jN
En segundo lugar, veamos que, si x es una solucion factible entera del problema,
entonces esta solucion satisface la desigualdad de corte.
Puesto que todas las coordenadas de x son enteras, entonces
fkj xj 0 = fk .
jN
fkj xj fk ,
jN
se a
nade una variable de holgura entera x con coste cero:
fkj xj + x = fk .
jN
22
Investigaci
on Operativa
Ejemplo 24
Max.
3x1 + 4x2
s.a
3x1 +x2
6,
2x1 +3x2
9,
+
x1 , x2 Z .
3 1 1 0
2 3 0 1
-3 -4 0 0
6
9
0
Iteracion 2:
x3
7
3
2
3
- 13
x2 4
zj cj
- 31
1
0
0
0
1
3
4
3
3
12
Iteracion 3:
x1
x2
zj cj
3
7
- 27
1
7
- 71
3
7
9
7
9
7
15
7
87
7
x2
x5
zj cj
3
7
- 27
- 37
1
7
- 71
3
7
- 67
9
7
0
1
0
9
7
15
7
- 27
87
7
Tema 1. Programaci
on Lineal Entera
23
x1
x2
3
4
1
0
0
1
0 -1
0 1
x3
zj cj
- 23
- 73
1
3
7
3
2
3
37
3
Como x2 es fraccional, a
nadimos un nuevo corte para esta variable:
1
1
x5 .
3
3
Resolvemos el nuevo problema:
x1
x2
3
4
1 0
0 1
0
0
-1
1
x3
0 0
- 73
- 13
1
3
x6
0 0
zj cj
0 0
1 0
- 23 0
1
7
3
2
3
- 13
37
3
x1 3
x2 4
x3 0
x5 0
zj cj
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
-1
1
2
0
1
0
0
0
1
0
3
-2
-7
-3
1
0
3
3
1
12
Esta tabla es optima y tiene solucion entera. Por lo tanto, ya hemos resuelto el
problema: x = (0, 3) y z = 12.
Tema 2
Optimizaci
on en redes
ct x
Min.
Ax = b,
(P= ) s.a
x 0.
26
Investigaci
on Operativa
ct x
Min.
Ax b,
(P ) s.a
x 0.
Proposici
on 27
Si A y b tienen todas sus componentes enteras y la matriz A es totalmente unimodular, entonces los vertices del poliedro asociado P tienen todas sus componentes
enteras.
Ahora bien, a la vista de una serie de restricciones que nos definen un poliedro, podemos determinar facilmente si la matriz de las desigualdades es totalmente
unimodular? La respuesta es afirmativa y viene dada por el siguiente resultado:
Proposici
on 28
Sea A = (aij ) tal que aij {1, 0}. Supongamos que en cada columna de la matriz A
hay un maximo de dos elementos no nulos y que las filas de dicha matriz admiten
una particion en dos subconjuntos de ndices I1 e I2 tales que:
1. Si los elementos no nulos de una columna tiene igual signo, entones las correspondientes filas estan en conjuntos distintos.
2. Si los elementos de una columna tienen distinto signo, entonces las correspondientes filas pertenecen al mismo conjunto.
Tema 2. Optimizaci
on en redes
27
O1
c11
c1
c21
O2
..
.
..
.
c2n
c m1
D1
cmn
Dn
Om
jJ
Para cada arco (i, j), i I, j J, tenemos asociado un coste unitario de transporte cij y una variable xij que representa cuantas unidades se transportan desde el
origen i hasta el destino j.
Como hay que servir todo lo que se demanda a coste mnimo, la funcion objetivo
a minimizar es
XX
cij xij .
iI jJ
28
Investigaci
on Operativa
Esto, junto con el hecho de que las variables son enteras, nos da la siguiente
formulacion para el problema del transporte:
XX
Min.
cij xij
iI
jJ
s.a
xij = dj j J,
iI
X
xij = ai i I,
jJ
xij Z+ i I, j J.
0
0
..
.
0
1
0
..
.
1
1
0
..
.
0
0
1
..
.
...
...
...
...
0
0
0
..
.
0
1
0
..
.
0
0
1
..
.
...
...
...
...
0
0
0
..
.
0
1
0
..
.
0
0
1
..
.
...
...
...
...
0
0
0
..
.
...
...
...
...
0 ... 0
0 ... 0
.. . . ..
. .
.
1 ... 1
0 ... 0
1 ... 0
.. . . ..
. .
.
x11
.
..
x1n
..
=
xm1
..
.
xmn
a1
..
.
am
d1
..
.
dn
Orgenes
Madrid
Barcelona
Sevilla
Destinos
Vigo
7
14
13
Tema 2. Optimizaci
on en redes
29
Encuentra como deben enviarse los televisores para que el coste de transporte total
sea mnimo.
Soluci
on:
En este caso, tenemos un problema de transporte con 3 orgenes (i = 1, 2, 3) y
4 destinos (j = 1, 2, 3, 4).
La funcion objetivo a minimizar es
x11 + 6x12 + 4x13 + 7x14 + 7x21 + x22 + 12x23 14x24 + 5x31 + 11x32 + 2x33 + 13x34 .
Las restricciones que imponen que se satisfagan las demandas son:
x11 + x21 + x31 = 70,
x12 + x22 + x32 = 90,
x13 + x23 + x33 = 50,
x14 + x24 + x34 = 70.
Las siguientes restricciones impiden enviar mas de lo disponible:
x11 + x12 + x13 + x14 100,
x21 + x22 + x23 + x24 120,
x31 + x32 + x33 + x34 .
Ademas, todas variables xij deben ser enteras.
Cuando juntamos las distintas condiciones que hemos establecido y resolvemos
la relajacion lineal del problema, obtenemos un valor optimo de 970 para la solucion
optima dada por x11 = 30, x14 = 70, x21 = 30, x22 = 90, x31 = 10 y x33 = 50.
30
Investigaci
on Operativa
n
n X
X
rij xij
Max.
j=1
i=1
s.a
xij =
1 j = 1, . . . , n,
i=1
xij =
1 i = 1, . . . , n,
j=1
xij {0, 1} i, j = 1, . . . , n.
Ahora bien, es inmediato ver que se trata de un caso particular del problema del
transporte: tenemos n orgenes, n destinos y demandas y ofertas todas iguales a la
unidad.
2.4. Conceptos b
asicos de grafos
2.4.1. Definiciones
Un grafo G es un par (V, E) donde V es el conjunto de vertices y E V V
es el conjunto de ejes. Los vertices tambien se conocen como nodos. Usualmente, N
representa el conjunto de nodos del grafo.
Dados dos vertices i y j, representaremos el eje que los une como (i, j).
Si (i, j) = (j, i) para todo (i, j) E, se dice que es un grafo no dirigido. En caso
contrario, se trata de un grafo dirigido. En los grafos dirigidos no se habla de ejes
sino de arcos. El conjunto de arcos de un grafo se suele representar mediante A.
Tema 2. Optimizaci
on en redes
31
2
1
4
3
2
1
4
3
32
Investigaci
on Operativa
(i V2 , j V1 ).
Un grafo se dice conexo si para todo par de vertices existe una cadena que los
une.
Dado un grafo dirigido, un vertice j se alcanzable desde otro vertice i si existe
un camino desde i hasta j. En ese caso, se dice que j es descendiente de i.
Dado un grafo, un arbol es un subgrafo conexo sin ciclos. Un arbol de union es
un subgrafo parcial conexo sin ciclos (es decir, un arbol en el que aparecen todos los
vertices del grafo).
N1
N2
N4
N3
N5
2.4.2. Representaci
on matricial de grafos
Dado un grafo no dirigido (V, E), se define la matriz de incidencia vertice-eje
como aquella que tiene tantas filas como vertices y tantas columnas como ejes. En
cada columna, todos los elementos son nulos excepto los dos que se corresponden con
extremos del eje de la misma; estos tiene valor uno.
Ejemplo 30
Consideremos el siguiente grafo:
Tema 2. Optimizaci
on en redes
33
Definamos los ejes e1 = (1, 2), e2 = (1, 3), e3 = (2, 3), e4 = (2, 4) y e5 = (3, 4).
La matriz de incidencia vertice-eje es:
1 1 0
1 0 1
0 1 1
0 0 0
0
1
0
1
0
0
.
1
1
Dado un grafo dirigido (V, A), se define la matriz de incidencia vertice-arco como
aquella que tiene tantas filas como vertices y tantas columnas como arcos. En cada
columna, todos los elementos son nulos excepto los dos que se corresponden con
extremos del arco de la misma; estos tienen valor uno si se trata del vertice inicial y
valor menos uno si se trata del vertice final.
Ejemplo 31
Consideremos el siguiente grafo:
2
1
4
3
Definamos los ejes e1 = (1, 2), e2 = (1, 3), e3 = (2, 3), e4 = (2, 4) y e5 = (3, 4).
La matriz de incidencia vertice-arco es la siguiente:
1
1
0
0
0
1
0
1
1
0
.
0 1 1
0
1
0
0
0 1 1
Proposici
on 32
La matriz de incidencia vertice-arco es totalmente unimodular.
34
Investigaci
on Operativa
Proposici
on 33
La matriz de incidencia vertice-eje es totalmente unimodular si, y solo si, el grafo es
bipartito.
(e).
eE
Nuestro problema es encontrar dentro del grafo un arbol de union cuyo peso total
sea mnimo, es decir, resolver el problema
Min. (P )
s.a
P es arbol de union en G.
Para resolver el problemas, disponemos de dos algoritmos muy populares: el algoritmo de Kruskal y el algoritmo de Prim.
Algoritmo 34 (Algoritmo de Kruskal)
1. Ordenense de forma creciente los ejes.
2. Eljanse en ese orden hasta tener n 1 vertices (n es el n
umero de nodos), pero
omitiendo aquellos que produzcan ciclos.
Algoritmo 35 (Algoritmo de Prim)
1. Eljase arbitrariamente un vertice r V .
2. Sean V1 = {r} y V2 = V \{r}.
3. Eljase el eje (r, s) de menor longitud de entre aquellos que unen V1 con V2 .
4. A
nadase el vertice s a V1 y elimnese de V2 . Si se tiene menos de n 1 ejes,
reptase el paso anterior. En caso contrario, finalcese el algoritmo.
Ejemplo 36
La compa
na MCC TV se encuentra en proceso de proporcionar el servicio de cable
a cinco nuevas areas urbanizadas. La figura representa los enlaces potenciales de
television entre las cinco areas y los kilometros de cable necesarios para unirlas.
Cual es el cableado mas corto?
Tema 2. Optimizaci
on en redes
35
10
3
9
3
5
5
8
4
Soluci
on:
Aplicamos el metodo de Prim.
Comenzamos seleccionando un nodo al azar: el nodo 1. Hacemos V1 = {1} y
V2 = {2, 3, 4, 5, 6}. A continuacion, consideramos los ejes que unen elementos de V1
con los de V2 y elegimos el de menor longitud:
2
1
1
6
8
3
9
5
4
36
Investigaci
on Operativa
3
6
4
1
9
7
5
4
2
6
4
1
8
4
2
6
8
6
3
8
9
5
4
2
6
8
Tema 2. Optimizaci
on en redes
37
3
5
4
38
Investigaci
on Operativa
dr = 0,
di = ri , i (r), i 6= r,
di = +, i
/ (r).
Ademas, definimos los siguientes predecesores:
(
pi = r, i (r),
pi = 0, i
/ (r).
3
1
6
5
Soluci
on:
Usaremos el algoritmo de Dijkstra fijando r = 1.
P1: d1 = 0, d2 = 3, d3 = 5, d4 = +, d5 = +, d6 = +;
p2 = 1, p3 = 1, p4 = 0, p5 = 0, p6 = 0; T = {2, 3, 4, 5, 6}.
P2: mn {d2 , d3 , d4 , d5 , d6 } = d2 . T = {3, 4, 5, 6}.
P3: (2) T = {3, 4}.
t3 = d2 + 23 = 3 + 6 = 9;
t4 = d2 + 24 = 3 + 3 = 6.
Actualizamos: d4 = 6, p4 = 2.
Tema 2. Optimizaci
on en redes
39
As:
d1 = 0, d2 = 3, d3 = 5, d4 = 6, d5 = +, d6 = +;
p2 = 1, p3 = 1, p4 = 2, p5 = 0, p6 = 0; T = {3, 4, 5, 6}.
P4: Como T 6= , repetimos el paso 2.
P2: mn {d3 , d4 , d5 , d6 } = d3 . T = {4, 5, 6}.
P3: (3) T = {5}.
t5 = d3 + 35 = 5 + 2 = 7.
Actualizamos: d5 = 7, p5 = 3.
As:
d1 = 0, d2 = 3, d3 = 5, d4 = 6, d5 = 7, d6 = +;
p2 = 1, p3 = 1, p4 = 2, p5 = 3, p6 = 0; T = {4, 5, 6}.
P4: Como T 6= , repetimos el paso 2.
P2: mn {d4 , d5 , d6 } = d4 . T = {5, 6}.
P3: (4) T = {5, 6}.
t5 = d4 + 45 = 6 + 1 = 7.
t6 = d4 + 46 = 6 + 2 = 8.
Actualizamos: d6 = 8, p6 = 4.
As:
d1 = 0, d2 = 3, d3 = 5, d4 = 6, d5 = 7, d6 = 8;
p2 = 1, p3 = 1, p4 = 2, p5 = 3, p6 = 6; T = {5, 6}.
P4: Como T 6= , repetimos el paso 2.
P2: mn {d5 , d6 } = d5 . T = {6}.
P3: (5) T = .
P4: Como T 6= , repetimos el paso 2.
P2: mn {d6 } = d6 . T = .
P3: (6) T = .
P4: Como T = , finalizamos el algoritmo.
Por lo tanto, el camino mas corto desde 1 hasta 6 tiene longitud d= 86 y es
6 p6 = 4 p4 = 2 p2 = 1,
es decir 1 2 4 6.
40
Investigaci
on Operativa
Si quisiesemos determinar las distancias entre todos los pares de vertices, podramos
aplicar el algoritmo de Dijkstra tantas veces como nodos tiene el grafo. No obstante, existe un algoritmo especializado que lo hace simultaneamente: el algoritmo de
Floyd. No obstante, dicho la descripcion del mismo queda fuera de los objetivos de
este curso.
bi = 0.
iN
En cuanto a las restricciones, por una parte, no deben excederse los lmites de
capacidad de los arcos:
xij uij (i, j) A,
xij lij (i, j) A.
Tema 2. Optimizaci
on en redes
41
Por otra, debe haber un equilibrio entre lo que llega al nodo, lo que el nodo
oferta/demanda y lo que sale del nodo:
xij
{j / (i,j)A}
xji = bi i N.
{j / (j,i)A}
Min.
s.a
cij xij
(i,j)A
xij
{j / (i,j)A}
xji = bi i N,
{j / (j,i)A}
Ejemplo 39
Resuelve el problema del flujo de coste mnimo sobre el siguiente grafo:
2
3
5
5
2
6
7
3
42
Investigaci
on Operativa
Min. 3x12 + 5x13 + 2x24 + 4x25 + 6x35 + 7x36 + 5x47 + 3x54 + 2x56 + 2x57 + 3x67
s.a
x12 + x13 =
150,
x
=
60,
67
36
56
x
30,
47
57
67 =
x12
90,
90,
13
xij 0 (i, j) A.
La solucion del problema es la siguiente: x12 = 90, x13 = 60, x24 = 50, x25 = 20,
x36 = 30, x56 = 30, x57 = 30. El coste de esta solucion es 1080.
Casos particulares
Ahora veremos que algunos de los problemas previamente estudiados son, en
realidad, casos particulares del problema del flujo de coste mnimo.
Tema 2. Optimizaci
on en redes
43
si i = s,
1
bi = 1 si i = t,
0
si i =
6 s, t.
Prescindiendo de restricciones sobre las capacidades de los arcos, se trata de un
problema de flujo de coste mnimo con unos costes muy especficos. Ademas, las
variables de decision se pueden reinterpretar del siguiente modo:
(
1 si se usa el arco (i, j) en la ruta,
xij =
0 en caso contrario.
Tema 3
Programaci
on Lineal Multiobjetivo
En la Programacion Lineal clasica, buscamos optimizar una funcion lineal de varias variables sujeta a un conjunto de restricciones lineales. Sin embargo, es habitual
que, para esas mismas restricciones, haya que optimizar simultaneamente varias funciones, pudiendo incluso ser conflictivas entre s. Es entonces cuando aparecen los
problemas de Programacion Lineal Multiobjetivo.
3.1. Introducci
on
Un problema lineal multiobjetivo es de la forma
x 0.
46
Investigaci
on Operativa
x1 +x2 80,
x1 , x2 0.
Tema 3. Programaci
on Lineal Multiobjetivo
47
Soluci
on:
Si representamos la region factible, vemos que es el poliedro de vertices A = (0, 80),
B = (0, 100), C = (300/7, 500/7) y D = (60, 20).
B
A
b
b
(z1 , z2 )
(160, 240)
(200, 300)
(1300/7, 3000/7)
(100, 360)
z(C)
b
z(B)
z(D)
z(A)
48
Investigaci
on Operativa
3.2. M
etodos de resoluci
on
3.2.1. M
etodo de las ponderaciones
Dado un vector de pesos w = (w1 , . . . , wp ), wi > 0 i, consideramos el siguiente
problema:
x 0.
Proposici
on 42
Un punto x es solucion eficiente de (P LM ) si, y solo si, existe un vector w > 0 tal
que x es solucion optima de (P Lw ).
Ejemplo 43
Para el ejemplo anterior, vamos a calcular un punto eficiente. Consideramos pesos
w1 = w2 = 1. El problema que tenemos que resolver es:
Min.
4x1 + x2
x1 +x2 80,
x1 , x2
0.
Su optimo es x = (0, 80). Este punto es solucion eficiente del problema multiobjetivo.
Si ahora consideramos otros pesos, podemos tratar de obtener otros puntos eficientes. Por ejemplo, w = (2, 1) da lugar a la solucion eficiente (0,100).
3.2.2. M
etodo de las restricciones
Se selecciona un objetivo y el resto pasan a ser restricciones acotadas inferiormente por unas exigencias mnimas:
Max. ctk x
x M,
(P Lk ) s.a
ctj x Lj , j 6= k.
Proposici
on 44
Si x es la u
nica solucion optima de (P Lk ), entonces es solucion eficiente de (P LM ).
Tema 3. Programaci
on Lineal Multiobjetivo
49
Ejemplo 45
Para el ejemplo 41, vamos a buscar una solucion eficiente cuyo valor para la segunda
funcion objetivo sea, a lo sumo, 270.
Para ello, planteamos el problema:
Min.
4x1 + x2
s.a
3x1 +x2 200,
x1 , x2
0.
Como optimo, obtenemos x = (0, 90). Es una solucion eficiente del problema multiobjetivo que cumple las exigencias impuestas.
3.2.3. M
etodo de programaci
on por metas
Dados varios objetivos, establecemos una medida que nos indica lo lejos que
estamos de cumplirlos. Buscaremos minimizar la desviacion total respecto de estas
expectativas.
Para cada objetivo:
se tiene un valor ti que representa su nivel de aspiracion y una meta (menor o
igual, mayor o igual, igual);
se definen las variables pi y/o ni de desviacion positiva y negativa, respectivamente.
Dada la restriccion cti x ? ti , la transformamos en cti x + ni pi ? ti . Si k:
? = , interesa minimizar ni ;
? = , interesa minimizar pi ;
? = = , interesa minimizar tanto ni como pi .
Ejemplo 46
Una cooperativa posee un terreno de 13 hectareas en el que pretende cultivar dos
tipos de olivos: picual y hojiblanca. Por normas legislativas, no puede cultivar mas
de 8 hectareas del primero ni mas de 10 del segundo. Se estima que cada hectarea
cultivada con olivo picual necesita 4 m3 de agua anuales y cada hectarea de hojiblanca
necesita 3. La cooperativa estima que dispondra cada a
no de 44 m3 de agua. Ademas,
se ha fijado las siguientes metas:
50
Investigaci
on Operativa
1. Inversion inicial:
Picual: 250 um/h.
Hojiblanca: 125 um/h.
Se desea que la inversion inicial no supere las 2000 um.
2. Litros de aceite:
Picual: 500 l/a
no.
Hojiblanca: 300 l/a
no.
Se desea un mnimo de 5000 l.
3. Produccion de desechos (posteriormente pueden utilizarse para fines varios):
Picual: 6 t/h.
Hojiblanca: 8 t/h.
Habra que obtener, por lo menos, 48 t.
4. Contratacion de operarios: son necesarios 3 por hectarea. Se desea usar exclusivamente los 30 que ya hay con contrato en vigor (y no tener a ninguno
ocioso).
Min.
Max.
Max.
s.a
Tema 3. Programaci
on Lineal Multiobjetivo
51
Min.
p 1 + n2 + n3 + p 4 + n4
s.a
250x
+
125x2 + n1 p1 = 2000,
6x
=
48,
1 + 8x2 + n3 p3
3x1 + 3x2 + n4 p4
=
30,
x1 + x2
13,
8,
x2
10,
4x
+
3x
44,
1
2
x1 , x2
0.
La solucion optima es x = (6, 20/3), n = (0, 0, 0, 0), p = (1000/3, 0, 124/3, 8). Por
lo tanto:
Se excede el nivel de inversion deseado.
Se produce exactamente el mnimo de aceite.
Se producen mas desechos de los mnimamente requeridos.
Hace falta contratar mas empleados.