Академический Документы
Профессиональный Документы
Культура Документы
Curso 2008-2009
1.2. Ejemplos..............................................................................................................2
2. Optimizacion en redes 25
2.4.1. Definiciones.......................................................................................... 30
1.1. Introduccion
embargo, en los ultimos quince anos han podido resolverse problemas bastante
mas difciles y grandes gracias a una combinacion de:
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 1 2 3 4 5 6 7
Peso 2.5 1.2 2.1 3.2 4.3 0.5 0.6
Utilidad 3 2 5 4 6 3 8
i = 1, . . . , 7.
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 s
olo 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
xj = .1 si el j-esimo artculo se toma,
0 en caso contrario,
entonces el problema a resolver
es el siguiente:
.n
.nj=1 cj xj
Max.
s.a
j=1 aj xj b,
x
B n.
Este resultado es trivial, pues toda solucion factible entera es factible para
la relajacion lineal. Sin embargo, no toda solucion factible de la relajacion
lineal es factible del problema entero original. Mas adelante, esta propiedad nos ser
a muy util a la hora de resolver problemas enteros.
Definicion 8
La envolvente convexa de un conjunto A es el menor conjunto convexo que
contiene a dicho conjunto A.
Como la region factible del problema entero es mucho mas pequena 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.
L = 100,
(x, xz) = (1.9, 100)
1 2
El redondeo a (2,100)
50
no es factible.
zE)==0(1, 0)
(x, x
1 2
Definicion 10 (Formulacion)
1,0 1,5 2,0 2,5
Un poliedro P R es una formulacion para el subconjunto X de Z R
n p np
si
. p .
X = P Z Rnp .
Observese que un mismo conjunto admite formulaciones distintas.
Ejemplo 11
En la figura 1.1 se muestra dos formulaciones distintas para el conjunto
X = {(1, 1), (2, 1), (3, 1), (1, 2), (2, 2), (3, 2), (2, 3)}.
P1
P2
P1
P2
P3
Lo deseable sera que todos los puntos extremos del poliedro que se usa como
formulacion fuesen enteros.
Definicion 12 (Poliedro entero)
Un poliedro se dice que es entero si todos sus puntos extremos son enteros.
Definicion 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 ,
Definicion 16 (Corte)
Una desigualdad tx 0 se dice que es un corte para un problema entero (PE)
si, ademas de ser desigualdad valida, existe algun punto de la relajacion
lineal (P EL ) de este problema que no la satisface. En ese caso, se dice que la
desigualdad corta dichos puntos.
x3
S0 = {x S : x1 = 0}
y despu S1 = {x S : x1 = 1};
es, S00 = {x S0 : x2 =
0}, S01 = {x S0 : x2
= 1},
10 Investigacion
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. Obs
ervese que, por convenio, el arbol se dibuja de arriba a abajo con la raz en lo m
as alto.
25 25
15 15
26
21
S 20 S2 As pues, las siguientes razones permiten podar una rama del arbol de busqueda:
S11 S2
20
El nodo raz es el nodo del que parte el arbol. Cuando se ramifica, se elige una
variable de ramificacion que esta restringida de distinto modo segun la rama
del
arbol de ramificacion en la que estemos. De cada nodo, salen dos o mas nodos
hijos. El nodo del que se originan se denomina nodo padre.
En el proceso, la mejor solucion entera almacenada se denomina solucion
incum- bente. Su valor objetivo es el valor incumbente.
x1 = 0 x1 = 1
S0 S1
x2 = 0
=0
algoritmo.
Ejemplo 22
Resuelve el siguiente
problema:
Max. 3x1 + 2x2 5x3 2x4 + 3x5
s.a x1 +x2 +x3 +2x4 +x5 4,
(P ) 7x1 +3x3 4x4 +3x5 8,
11x1 6x2 +3x4 3x5
3, x1, x2, x3, x4, x5
{0, 1}.
Soluci
on:
Comenzamos por resolver la relajacion lineal. Para ello, reemplazamos las
res- tricciones 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
ramifica- cion.
N1 7
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.
7
N1
x4 = 0 x4 = 1
N2 N3
. .
x2 = (0.94, 1, 0, 0, 0.46), x3 = (1, 0, 0, 1, 1),
(P2) (P3)
z2 = 6.22, z3 = 4.
xI = (1, 0, 0, 1, 1), zI = 4.
7
N1
x4 = 0 x4 = 1
6 4
N2 N3
4
x5
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]
Ahora anadimos 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.
20
27
S
S 18
13
20
S1 S2
18
2. El lado derecho vale fk, por lo que es estrictamente negativo.
Introduciendo xk [x
k] + 1
Al introducir la restriccion xk [x
k ] + 1, anadimos la variable de holgura x
para
obtener
xk x = [x ] + 1.
k
Equivalentemente,
xk + x = [x
k ]
1.
Iteracion 1:
x3 0 -1 -4 1 0 -5
x4 0 -3 -2 0 1 -7
zj cj -4 -5 0 0 0
Iteracion 2:
x3 0 0 - 10
3
1 - -
1 8
2 7
x1 4 1 3
0 31 3
28
zj cj 0 37 0 34 3
Iteracion 3:
1 4
x2 5 0 1 3
10 10 5
1 9
x1 4 1 0 5 52 5
56
zj cj 0 0 7
10 11
10 5
Como la solucion optima de este problema relajado es fraccional, hay que rami-
ficar. Para ello, elegimos la variable mas fraccional. Al haber empate, tomamos una
cualquiera de ellas. Por ejemplo, x1.
N1 56
5
x1 1 x1 2
N2 N3
Resolvemos (P2):
1 4
x2 5 0 1 3
10 10 0 5
1 9
x1 4 1 0 5 52 0 5
2
x5 0 0 0 - 51 5 1 -
4
56
zj cj 0 0 7
-10 11 0
10 5
x2 5 0 1 0 - 21 - 23 2
x1 4 1 0 0 0 1 1
x3 0 0 0 1 -2 -5 4
zj cj 0 0 0 - 25 - 27 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.
14
N2 N3
14
Resolvemos (P3):
1 4
x2 5 0 1 3
10 10
0 5
1 9
x1 4 1 0 5 52 0 5
1
x5 0 0 0 5 - 52 1 -
1
56
zj cj 0 0 7
-10 11
10 0 5
1 3
x2 5 0 1 - 0 4 4
1
x1 4 1 0 0 0 -1 2
1
x4 0 0 0 - 1 - 25 2
1
47
zj cj 0 0 - 0 - 11
4 4
5
14
N2 N3
14
x2 = 0 x2 1
N4 N5
Para resolver (P4 ), en lugar de anadir el corte x2 0, nos vamos a la
formulacion original. Como el problema tiene unicamente dos variables, ahora es
un problema de una variable. Es inmediato resolverlo por inspeccion.
Min. 4x1
s.a x1 5,
3x1
7,
x1 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.
14
N2 N3
14
x2 1
N4 N5
1 3
x2 5 0 1 - 41 0 4
0 4
x1 4 1 0 0 0 -1 0 2
1
x4 0 0 0 - 21 1 - 25 0 2
1
x6 0 0 0 - 41 0 4
1 -
1
47
zj cj 0 0 - 45 0 - 11
4
0 4
x2 5 0 1 0 0 0 -1 1
x1 4 1 0 0 0 -1 0 2
x4 0 0 0 0 1 -3 -2 1
x3 0 0 0 1 0 -1 -4 1
zj cj 0 0 0 0 -4 -5 13
20 Investigacion
Operativa
Esta tabla es optima, con solucion entera y mejor valor que la incumbente. Ac-
tualizamos la incumbente y podamos el nodo.
todas las soluciones enteras del problema satisfacen las condiciones impuestas
por el hiperplano.
Estos cortes fueron introducidos por Ralph Gomory hacia 1960. A pesar de ser
bastante simples, a nivel teorico tienen una gran ventaja: es posible demostrar
que un algoritmo de hiperplanos de corte de Gomory converge siempre en un
numero finito de pasos.
Por otro lado, puesto que 0 < fk < 1 y fkj 0, podemos deducir que
.
fk fkj xj fk < 1.
Tema 1. Programacion Lineal 21
Entera jN
Luego, necesariamente, ser .
a fk fkj xj 0.
jN
.
fkj xj fk .
jN
Iteracion 1:
x3 0 3 1 1 0 6
x4 0 2 3 0 1 9
zj cj -3 -4 0 0 0
Iteracion 2:
7
x3 0 3
0 1 - 3
1
2 1
x2 4 3
1 0 3
3
4
zj cj - 0 0 3 12
1
Iteracion 3:
3 9
x1 3 1 0 7 - 7
1
3 15
x2 4 0 1 - 7 7
2
1 9 87
zj cj 0 0 7 7 7
3 9
x1 3 1 0 7 - 0 7
1
3 15
x2 4 0 1 - 72 7
0 7
x5 0 0 0 - 73 - 1 -
6 2
1 9 87
zj cj 0 0 7 7
0 7
x1 3 1 0 0 -1 1 1
7
x2 4 0 1 0 1 - 32 3
2
x3 0 0 0 1 2 - 37 3
1 37
zj cj 0 0 0 1 3 3
x1 3 1 0 0 -1 1 0 1
7
x2 4 0 1 0 1 - 32 0 3
2
x3 0 0 0 1 2 - 37 0 3
x6 0 0 0 0 0 - 31 1 -
1
1 37
zj cj 0 0 0 1 3
0 3
x1 3 1 0 0 -1 0 3 0
x2 4 0 1 0 1 0 -2 3
x3 0 0 0 1 2 0 -7 3
x5 0 0 0 0 0 1 -3 1
zj cj 0 0 0 1 0 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
Optimizacion en redes
Definicion 25
Se dice que una matriz A de orden m n es totalmente unimodular si para toda
submatriz cuadrada B de A se tiene que |B| {1, 0, 1}.
Sabemos que existe un vertice del poliedro asociado a (P= ) que es solucion
optima. Ademas, tambien sabemos que cualquier vertice x se puede
representar como x = (xB , xN ), siendo xB las coordenadas basicas y xN las
no basicas para una matriz basica B.
26 Investigacion
Operativa
Proposicion 26
Si A y b tienen todas sus componentes enteras y la matriz A es totalmente
unimo- dular, entonces los vertices del poliedro asociado P= tienen todas sus
componentes enteras.
Proposicion 27
Si A y b tienen todas sus componentes enteras y la matriz A es totalmente
unimo- dular, 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 polie- dro,
podemos determinar facilmente si la matriz de las desigualdades es totalmente
unimodular? La respuesta es afirmativa y viene dada por el siguiente resultado:
Proposicion 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
corres- pondientes filas estan en conjuntos distintos.
Como hay que servir todo lo que se demanda a coste mnimo, la funcion
objetivo a minimizar es
. . cij xij .
iI jJ
Esto, junto con el hecho de que las variables son enteras, nos da la siguiente
formulacion para el
problema del
.transporte:
.
Min. cij xij
jJ
iI
.
s.a xij = dj j J,
iI
=
. xij i I,
jJ
ai
xij Z+ i I, j J.
. ... . ..
.
1 0 ... 0 1 0 ... 0 1 0 ... 0 ... 1 0 ... 0 .. =
d1
m1
x
0 1 ... 0 0 1 ... 0 0 1 ... 0 ... 0 1 ... 0 ..
. .
. .. . . .. .. . . . .. .. . . . . . . .. . . . .. . d
. . . . .. . . . .. . .. . . . .
. .
0 0 ... 1 0 0 ... 1 0 0 ... 1 ... 0 0 ... 1 xmn n
Hay que destacar que nada se dice de los costes cij ; estos pueden ser fraccionales
y el resultado sigue siendo cierto.
Ejemplo 29
Una empresa de televisores tiene tres fabricas en Madrid, Barcelona y Sevilla.
Dada un partida de 100, 120 y 60 aparatos, debe enviarlos a cuatro distribuidores
ubicados en Fuenlabrada, Mataro, E cija y Vigo, con demandas 70, 90, 50 y 70,
respectivamente. La tabla de costes de transporte para cada unidad de producto
(en euros) es la siguiente:
Destinos
Orgenes Fuenlabrada Mataro E Vigo
Madrid 1 6 cija
4 7
Barcelona 7 1 12 14
Sevilla 5 11 2 13
Encuentra como deben enviarse los televisores para que el coste de transporte total
sea mnimo.
Solucion:
En este caso, tenemos un problema de transporte con 3 orgenes (i = 1, 2, 3)
y 4 destinos (j = 1, 2, 3, 4).
x11 + 6x12 + 4x13 + 7x14 + 7x21 + x22 + 12x2314x24 + 5x31 + 11x32 + 2x33 +
13x34.
x34 = 70.
x34.
n n
Max. . . xij
ij
i=1 j=1
r
.n
s.a xij = 1 j = 1, . . . , n,
.
i=1
n
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.1. Definiciones
Dados dos vertices i y j, representaremos el eje que los une como (i, j).
1 2
3 4
O1
D1
O2 ...
...
Om Dn
2
1 4
1 4
EB = {(i, j) E / i, j B}.
Un grafo completo presenta al menos un eje o arco para cada par de vertices.
Un grafo se dice conexo si para todo par de vertices existe una cadena
que los une.
N1
N2 N3
N4 N5
Ejemplo 30
Consideremos el siguiente grafo:
1 2
3 4
Definamos los ejes e1 = (1, 2), e2 = (1, 3), e3 = (2, 3), e4 = (2, 4) y e5 = (3, 4).
1 4
Definamos los ejes e1 = (1, 2), e2 = (1, 3), e3 = (2, 3), e4 = (2, 4) y e5 = (3, 4).
Proposicion 32
La matriz de incidencia vertice-arco es totalmente unimodular.
Proposicion 33
La matriz de incidencia vertice-eje es totalmente unimodular si, y solo si, el grafo es
bipartito.
Dada una red conexa R = (V, E, ), definimos el peso del arbol P = (V, E ) como
.
(P ) = (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.
3. Eljase el eje (r, s) de menor longitud de entre aquellos que unen V1 con V2.
Ejemplo 36
La compana 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?
Solucion:
Aplicamos el metodo de Prim.
6
2
El eje de1menor longitud es (1,2). Hacemos V1 = {1, 2} y V2 = {3, 4, 5, 6}.
Vamos repitiendo el proceso hasta tener cinco ejes.
8
1 3
7
5
4
2
6
4 6
8
1 3
7
5
6
4 6
8
1 3
7
5
8
24
6
6
8
1 3 3
5
8
4
El arbol final tiene longitud mnima: 16.
1 3
Dada una red conexa R = (V, A, ) e identificando los costes de los nodos
como distancias, se trata de encontrar el recorrido de menor longitud desde un
nodo origen hasta un nodo destino.
Nos centramos en el caso en que todos los arcos tienen longitud positiva. Cuando
este es el caso, podemos usar un metodo especfico denominado algoritmo de
Dijsktra.
5
Algoritmo 37 (Algoritmo de Dijsktra)
4 1: Se hace
Paso
dr = 0,
di = ri , i (r), i = r,
di = +, i /
(r).
Ademas, definimos los siguientes predecesores:
.
pi = r, i (r),
pi = 0, i / (r).
Solucion:
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}.
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}.
P3: (6) T = .
6 p6 = 4 p4 = 2 p2 = 1,
es decir 1 2 4 6.
40 Investigacion
Operativa
Si quisiesemos determinar las distancias entre todos los pares de vertices, podr
amos aplicar el algoritmo de Dijkstra tantas veces como nodos tiene el grafo. No
obstan- te, 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.
Para un determinado producto, cada nodo i ofrece o requiere una cierta cantidad
del producto (flujo) bi , i = 1, . . . , n. As, podemos distinguir tres tipos de nodos:
si bi = 0, es un nodo de transbordo;
2
el arco (i, j) tiene una capacidad maxima uij ;
. .
xij xji = bi i N.
{j / (i,j)A} {j /
(j,i)A}
3
2 4 Min. .
3 2 cij xij
(i,j)A
. xji = bi i N,
6 s.a . xij
1 6 1 {j /
{j / (i,j)A} (j,i)A}
5 7 lij xij uij (i, j)
35 A, xij 0 (i, j)
A.
Ejemplo 39
Resuelve el problema del flujo de coste mnimo sobre el siguiente grafo:
2
2 4
3 4 3 5
2
1 5 7
5 6 2 3
6
3 6
La solucion del problema es la siguiente: x12 = 90, x13 = 60, x24 = 50, x25 =
20,
36 = 30, x56 = 30, x57 = 30. El coste de esta solucion es 1080.
x
Casos particulares
En este caso, tenemos que los orgenes actuan como nodos que ofrecen producto
y los destinos son nodos que demandan producto.
3.1. Introduccion
(PLM ) s.a Ax b,
x 0.
ct t
i x c i y i {1, . . . , p};
j {1, . . . , p} / ct x < ct
y.
j j
F = {x / Ax b, /x 0}
y el espacio de objetivos como
Z = {(z1(x), . . . , zp(x))}xF .
Hay que tener claro que, puesto que un problema multiobjetivo consta de varios
problemas lineales, son mas complejos de resolver que la simple resolucion
de los problemas individuales. No obstante, en problemas biobjetivo (solo dos
objetivos), podemos usar la propiedad anterior que relaciona vertices y aristas
la region de soluciones con vertices y aristas de la region de objetivos.
Ejemplo 41
Min. z = (z1, z2) = (x1 2x2, 5x1 + 3x2)
s.a 3x1 +x2 200,
2x1 +3x2 300,
x1 +x2 80,
x1 , x2 0.
Solucion:
A C
b
z(C
)
b
z(D)
z(B)
z(A)
Proposicion 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
s.a 3x1 +x2 200,
2x1 +3x2 300,
x1 +x2 80,
x1 , x2 0.
Si ahora consideramos otros pesos, podemos tratar de obtener otros puntos efi-
cientes. Por ejemplo, w = (2, 1) da lugar a la solucion eficiente (0,100).
Proposicion 44
Si x es la unica solucion optima de (P Lk ), entonces es solucion eficiente de
(P LM ).
Ejemplo 45
Para el ejemplo 41, vamos a buscar una solucion eficiente cuyo valor para la
segunda funcion objetivo sea, a lo sumo, 270.
Dados varios objetivos, establecemos una medida que nos indica lo lejos que
estamos de cumplirlos. Buscaremos minimizar la desviacion total respecto de estas
expectativas.
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 hect
area de hojiblanca necesita 3. La cooperativa estima que dispondra cada ano de
44 m3 de agua. Ademas, se ha fijado las siguientes metas:
50 Investigacion
Operativa
1. Inversion inicial:
2. Litros de aceite:
Picual: 6 t/h.
Hojiblanca: 8 t/h.