Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIN ENTERA
105
106
Investigacin Operativa
107
4.2. Restricciones
A menudo, cuando tenemos que plantear un problema de programacin
matemtica, se nos presentan enunciados en los que figura la condicin:
i) o bien (una o la otra).
Esto supone una formulacin del tipo
f(x1, x2,, xn) 0
108
Investigacin Operativa
f(x1, x2,, xn) M,
se cumple
se cumple
109
66.00000
VALOR
6.000000
0.000000
COSTE REDUCIDO
-11.000000
-10.000000
HOLGURA O EXCEDENTE
0.000000
5.000000
110
Investigacin Operativa
Max z = cj Xj
st xj 30
x1 + x2 + x3 - 10y 0
x1 + x2 + x3 - 10y 10
y = 0, 1; Xj 0 (j=1, 2, ..., 6)
24.00000
VARIABLE
X1
X2
X3
X4
FILA
2)
VALOR
0.000000
1.000000
0.000000
1.000000
HOLGURA O EXCEDENTE
0.000000
N. DE ITERACIONES = 8
COSTE REDUCIDO
-11.000000
-9.000000
-8.000000
-15.000000
PRECIOS DUALES
0.000000
111
i1
j1
z = ci yi + cj wj
(4.1)
Las variables bsicas yi (i=1, 2, ..., m) de cualquier tabla del simplex se pueden
escribir en la forma:
n
xk = yk +
k j wj
j1
yk = xk -
k j wj
(4.2)
j1
xk = [xk] + fk ,
i j = [i j] + fij
112
Investigacin Operativa
donde [a], parte entera, es el mayor entero menor o igual que a y fa verifica 0fa<1.
Si xk no es entero y aplicamos la descomposicin anterior a la ecuacin (4.2),
tenemos:
n
yk = ([xk] + fk)-
([k j] + fkj ) wj
j1
de donde
n
j1
j1
fk - fkj wj = yk - [xk] - [k j] wj
Teniendo en cuenta que todas las variables wj e yk deben ser enteras, el
segundo miembro de la igualdad ha de ser un nmero entero y, por tanto, el
primero tambin lo ser.
Operando, vemos que
n
fk -
fkj wj fk
j1
ya que fkj 0, wj 0.
n
fk - fkj wj 0 fk
j1
fkj wj
j1
fk + hk = fkj wj
j1
-fk = - fkj wj + hk
j1
113
X1
0.000
1.000
0.000
0.000
X2
0.000
0.000
0.000
1.000
SLK 2
0.500
1.5
-2.000
-0.500
SLK 3
0.000
0.000
1.000
0.000
SLK 4
0.250
-0.25
0.500
0.250
7.750
2.250
0.500
2.750
Solucin: -1/4=0.25=hx1-1/5h1-3/4h3
9/4=2+1/4; f1=1/4
3/2=1+1/2; fa12=1/2
-1/4=-1+3/4; fa14=3/4
xk = y k +
k j wj
j1
yk = xk -
k j wj
(4.3)
j1
xk
kj
wj
j 1
n
114
Investigacin Operativa
Teniendo en cuenta que todo nmero real puede expresarse como suma de su
parte entera y su parte fraccionaria
a = [a]+ fa,
xk = [xk] + fk ,
i j = [i j] + fij
kj
1
x
f1 / y k k f kj w j
j 1
operando
n
kj
xk
1
k
w j
j 1
Teniendo en cuenta que todas las variables wj e yk deben ser enteras, el primer
miembro de la igualdad ha de ser un nmero entero y, por tanto,
n
kj
xk
1
y
k w j
j 1
(4.4.)
1
Multiplicando la expresin (4.3) por tenemos
n
1
1
1
k
kj
j
xk
j 1
(4.5)
j 1
kj
kj
xk
1
w j xk
1
Tomando > 1, =0, e introduciendo una variable de holgura, hk, se tiene
la restriccin
kj
xk
w j hk
j 1
n
115
Podemos observar que, tal como hemos construido el plano de corte, toda
solucin entera del problema verifica dicha restriccin.
z 12
116
Investigacin Operativa
z 12
117
xj < [x*j ] + 1 (donde [a] define al mayor entero a), creando dos subproblemas SP
que correspondan a las dos siguientes restricciones mutuamente excluyentes:
xj < [x*j] y xj > [x*j] + 1 Volver al paso 2.
Resulta ms conveniente explicar los fundamentos del algoritmo de ramificar y
acotar mediante un ejemplo numrico.
Considere el siguiente problema de programacin lineal entera:
z = 5x1 + 4x2
st
x1 + x2 5
10x1 + 6x2 45
x1, x2 0 y enteras
El espacio de soluciones de PL asociado, SP0, se define por cancelacin de las
restricciones enteras. La solucin ptima SP0 da
x1 = 3.75, x2 = 1.25 y z = 23.75
El procedimiento ramificar y acotar se basa en tratar slo con el problema PL.
Como la solucin ptima no satisface la necesidad de valores enteros, el algoritmo
de ramificar y acotar exige ''modificar'' el espacio de soluciones PL en forma tal
que nos permita identificar, finalmente, la solucin ptima del problema de
programacin lineal entera. Primero, seleccionamos una de las variables cuyo
valor corriente en la solucin ptima SP0 infringe el requisito de valor entero.
Seleccionando x1 = 3.75 arbitrariamente, observamos que la regin (3 < x1 < 4) del
espacio de soluciones SP0 no puede, por definicin, incluir ninguna solucin
factible del problema de programacin lineal entera. Entonces, podemos modificar
el espacio de soluciones de PL eliminando esta regin no prometedora, lo que, en
realidad, es equivalente a reemplazar el espacio original SP0 por dos subproblemas
de programacin lineal, los SP1 y SP2, definidos de la manera siguiente:
1. Espacio SP1 = espacio SP0 + (x1 3)
2. Espacio SP2 = espacio SP0 + (x1 4)
Los dos espacios contienen los mismos puntos enteros factibles del modelo
programacin lineal entera. Esto significa que, desde el punto de vista del
problema original de programacin lineal entera, tratar con SP1 y SP2 es igual que
tratar con el subproblema original SP0. La diferencia principal es que la seleccin
de las nuevas restricciones de acotamiento (x1 3 y x1 4) mejorarn la
118
Investigacin Operativa
119
SP2. En este caso se dice que el SP2 est agotado porque no puede dar una mejor
solucin entera.
Del anlisis anterior vemos que un subproblema est agotado si se satisface una
de las siguientes condiciones:
i) El subproblema da una solucin factible entera del problema programacin
lineal entera.
ii) El subproblema no puede dar una mejor solucin que la mejor cota inferior
disponible (valor de z) del problema programacin lineal entera. (Un caso
especial de esta condicin es que el subproblema no tendr ninguna solucin
factible)
Si la funcin objetivo ha de minimizarse, el procedimiento es el mismo,
excepto que se emplean cotas superiores. As, el valor de la primera solucin entera
se vuelve una cota superior para el problema y se eliminan los SPi cuando sus
valores z de primera aproximacin son mayores que la cota superior actual.
120
Investigacin Operativa
SP0:
Max 8x1 + 5x2
st
x1 + x2 6
9x1 + 5x2 45
z= 41.25
x1 =3.75
x2 =2.25
x14
x1 3
SP1=SP0+ x14
x22
x21
SP3=SP1+ x22
NO FACTIBLE
------
SP4=SP1+ x21
Max 8x1 + 5x2
st
x1 + x2 6
9x1 + 5x2 45
x2 1
z= 40,555
x1 =4,444
x2 =1
x15
x14
SP5=SP4+ x1 5
SP6=SP1+ x1 4
121
x1 4
x= 37
x1 =4
x2 =1
dejando a un lado el requerimiento de que las variables sean enteras, se obtiene x1=
3.75, x2 =2.25, con z = 41.25, como la solucin al problema de programacin lineal
asociado. Dado que x1 est ms alejada de un valor entero que x2, la empleamos
para generar los subproblemas SP1 y SP2: x1 4 y x1 3. Seguiremos ramificando
los subproblamas que nos han dado soluciones no enteras hasta agotar las posibles
ramificaciones. Todos aquellos subproblemas que nos den soluciones enteras
entrarn a formar parte del conjunto de soluciones candidatas a la solucin ptima,
en nuestro caso las soluciones candidatas nos las ofrecen los subproblemas: SP2
(z=39, x1=3, x2=3), SP5 (z=40, x1=5, x2=0) y SP6 (z=37, x1=4, x2=1); de todas
ellas tomaremos la que mayor valor tenga en la funcin objetivo SP5 (z=40, x1=5,
x2=0).
Resuelto el ejercicio anterior mediante LINDO, tenemos:
Max 8x1 + 5x2
st
x1 + x2 <= 6
9x1 + 5x2 <= 45
END
GIN 2
LP OPTIMUM FOUND AT STEP
2
OBJECTIVE VALUE = 41.2500000
SET
SET
SET
X1 TO >=
X2 TO <=
X1 TO >=
4 AT
1 AT
5 AT
1, BND= 41.00
2, BND= 40.56
3, BND= 40.00
TWIN= 39.00
7
TWIN=-0.1000E+31 9 (no factible)
TWIN= 37.00 12
AT BRANCH
3 PIVOTS=
40.00000
3 PIVOT
12
12
122
Investigacin Operativa
VARIABLE
X1
X2
VALUE
5.000000
0.000000
REDUCED COST
-8.000000
-5.000000
Las expresiones:
SET X1 TO >= 4 AT 1, BND= 41.00 TWIN= 39.00 7 significa que la
mejor solucin para x1 4 es 41 y de 39 para x1 3.
NEW INTEGER SOLUTION OF 40.00 AT BRANCH 3 PIVOT
12, nos
indica que encontr la solucin optima en la tercera ramificacin (SET X1 TO
>= 5 AT 3, BND= 40.00 TWIN= 37.00 12).
Veamos otro ejemplo:
Max z = 3x1 + 4x2
st 2x1 + x2 <= 6
2x1 + 3x2 <= 9
x1, x2 no negativas y enteras
LP OPTIMUM FOUND AT STEP
12.75000
VARIABLE
VALUE
REDUCED COST
X1
2.250000
0.000000
X2
1.500000
0.000000
ROW SLACK OR SURPLUS DUAL PRICES
2)
0.000000
0.250000
3)
0.000000
1.250000
Planteando ahora los subproblemas, por el mtodo de ramificar y acotar,
tenemos:
123
SP1
SP2
2
OBJECTIVE FUNCTION VALUE
12.50000
11.50000
VARIABLE
VALUE
REDUCED COST
X1
2.500000
0.000000
X2
1.000000
0.000000
VARIABLE
VALUE
REDUCED COST
X1
1.500000
0.000000
X2
2.000000
0.000000
NO. ITERATIONS=
2
SP3
SP4
1)
1)
VARIABLE
X1
X2
10.00000
VALUE
2.000000
1.000000
REDUCED COST
0.000000
0.000000
VARIABLE
X1
X2
12.50000
VALUE
1.500000
2.000000
REDUCED COST
0.000000
0.000000
124
Investigacin Operativa
SP5
Max z = 3x1 + 4x2
st 2x1 + x2 < 6
2x1 + 3x2 < 9
x2 < = 1
x1 >= 3
x1 y x2 no negativas y enteras
SP6
Max z = 3x1 + 4x2
st 2x1 + x2 < 6
2x1 + 3x2 < 9
x2 < = 2
x1 >= 3
x1 y x2 no negativas y enteras
9.000000
1)
12.50000
VARIABLE
VALUE
REDUCED COST
X1
3.000000
0.000000
X2
0.000000
0.000000
VARIABLE
VALUE
REDUCED COST
X1
1.500000
0.000000
X2
2.000000
0.000000
NO. ITERATIONS=
NO. ITERATIONS=
x1
x2
x3
Supongamos que una funcin lineal a trozos, f(x), tiene n puntos de ruptura x1,
x2,, xn. Para algn k (k=1, 2, ..., n-1), xk x xk+1, podemos formar una
combinacin lineal
125
x = k xk + (1- k ) xk+1
f(x) = k f(xk )+ (1- k ) f(xk+1 )
n
f(x) = i f(xi) = z
i1
x=
i xi f(x) =
i1
st
i f(xi)
i1
i =1
i1
yi =1
i1
1 y1
2 y1 + y2
3 y2 + y3
i1
i 2
n1
i1
yi
126
Investigacin Operativa
127
Origen (ai)
a1
a2
.
.
am
b1
c11 /x11
c21 /x21
.
.
cm1 /xm1
Destino (bj)
b2
.
c12 /x12
c22 /x22
cm2 /xm2
bn
c1n /x1n
c2n /x2n
.
.
cmn /xmn
Min z =
i1
cij xij
j1
st
n
oferta i :
xij ai
j1
demanda j :
xi j bj
i1
xij 0
i, j (i = 1, 2, ..., m; j = 1, 2, ...., n)
128
Investigacin Operativa
ai =
ai
i1
m
bj = A
j1
i1
bj
j1
ai
i1
bj
j1
i1
ai bj
j1
xij + xi0
j 1
La oferta total es A= ai =
i 1
i 1
xij +
j 1
xi0
i 1
i 1
xi0 = b0 =
ai -
i 1
bj
j 1
donde xi0 es el nmero de unidades que deseamos transportar desde el origen isimo (oferta) al destino ficticio, b0.
m
i1
ai
j1
129
m
xij + x0j
i 1
j 1
bj =
j 1
xi j + x0j
j 1
i 1
x0j = a0 =
j 1
bj -
j 1
ai
i 1
Oferta i-sima :
j 1
ai b j
A
m
Demanda j-sima :
i 1
ai b j
A
=
ai
A
ai b j
A
ai
A = ai
A
bj =
j 1
bj
A
i 1
ai =
bj
A
A = bj
Por tanto, admite una solucin factible que est acotada, xi j min { ai , bj }.
130
Investigacin Operativa
1. Se selecciona la siguiente variable bsica (asignacin) entre los renglones
y columnas en que todava se puede hacer una asignacin de acuerdo a
algn criterio.
2. Se hace una asignacin lo suficientemente grande como para que use el
resto de los recursos en ese rengln o la demanda restante en esa columna
(cualquiera que sea la cantidad ms pequea).
3. Se elimina ese rengln o columna (la que tena la cantidad ms pequea
en los recursos o demanda restantes) para las nuevas asignaciones. (Si la
fila y la columna tienen la misma cantidad de recursos y demanda
restante, entonces arbitrariamente se elimina el rengln. La columna se
usar despus para proporcionar una variable bsica degenerada, es
decir, una asignacin con cero unidades.)
4. Si slo queda un rengln o una columna dentro de las posibilidades,
entonces el procedimiento termina eligiendo como bsicas cada una de las
variables restantes (es decir, aquellas variables que no se han elegido ni se
han eliminado al quitar su rengln o columna) asociadas con ese rengln o
columna que tiene la nica asignacin posible. De otra manera se regresa
al paso 1.
131
Existen m+n1 variables bsicas y, por tanto, hay m+n1 ecuaciones de este
tipo. Como el nmero de incgnitas (las ui y vj) es m+n, se puede asignar un valor
arbitrario a cualquiera de estas variables sin violar las ecuaciones. La eleccin de
esta variable y su valor no afecta al valor de ningn cijuivj, aun cuando xij sea no
bsica, por lo que la nica diferencia (menor) estriba en la facilidad para resolver
estas ecuaciones. Una eleccin conveniente para lograr esto es seleccionar la ui que
tiene el mayor nmero de asignaciones en su rengln (los empates se rompen de
manera arbitraria) y asignarle un valor de cero. Gracias a la sencilla estructura de
estas ecuaciones, resulta muy fcil obtener algebraicamente los valores del resto de
las variables.
Con el uso del ordenador, todos estos problemas se resuelven mediante el
software apropiado.
132
Investigacin Operativa
Supuesto 1: m = n.
m
Min z =
i1
cij xij
j1
s.t.
m
sujeto i-simo :
xij = 1
j1
m
puesto j-simo :
xi j = 1
i1
xij 0 i j
Supuesto 2: Asignacin mltiple
Sea ai = nmero de tareas, como mximo, que puede desarrollar el i-simo
individuo
m
Min z =
i1
cij xij
j1
s.t.
m
sujeto i :
xij ai
j1
m
puesto j :
xi j = 1
i1
xij 0 , i j
Min z =
i1
cij xij
j 1
s.t.
n
sujeto i :
xij 1, (i=1,2,..., m)
j 1
puesto j :
xi j = 1, (j=1,2,..., n)
i1
xij 0 , i j
Para m < n
Min z =
i1
133
cij xij
j 1
s.t.
n
sujeto i :
xij = 1, (i=1,2,..., m)
j 1
puesto j :
xi j 1, (j=1,2,..., n)
i1
xij 0 , i j
Veamos unos ejemplos que ilustren lo anterior.
Un buffet de abogados ha aceptado 5 nuevos casos, cada uno de los cuales
puede ser llevado adecuadamente por cualquiera de los cinco asociados ms
recientes. Debido a la diferencia de experiencia y prctica, los abogados emplearon
distintos tiempos en los casos. Uno de los asociados ms experimentados ha
estimado las necesidades de tiempo en horas como sigue:
Abogados
1
2
3
4
5
Caso 1
145
80
121
118
97
Caso 2
122
63
107
83
75
Caso 3
130
85
93
116
120
Caso 4
95
48
69
80
80
Caso 5
115
78
85
105
111
Determine la forma ptima de asignar los casos a los abogados de manera que
cada uno de ellos se dedique a un caso diferente y que el tiempo total de los
empleados sea mnimo.
1 si al abogado i se le asigna el caso j
Definimos la variable xij =
en caso contrario
0
134
Investigacin Operativa
x11 + x21 + x31 + x41 + x51 = 1
x12 + x22 + x32 + x42 + x52 = 1
x13 + x23 + x33 + x43 + x53 = 1
x14 + x24 + x34 + x44 + x54 = 1
x15 + x25 + x35 + x45 + x55 = 1
xij binarias (i, j=1, 2, ..., 5)
16)
WITH RC >
2.00000
443.0000
VALUE
0.000000
0.000000
1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1.000000
0.000000
1.000000
0.000000
0.000000
0.000000
1.000000
0.000000
0.000000
0.000000
0.000000
REDUCED COST
145.000000
122.000000
130.000000
95.000000
130.000000
80.000000
63.000000
85.000000
48.000000
78.000000
121.000000
107.000000
93.000000
69.000000
85.000000
118.000000
83.000000
116.000000
80.000000
105.000000
97.000000
75.000000
120.000000
80.000000
111.000000
0 PIVOT
16
135
45.00000
VALUE
6.000000
14.000000
0.000000
20.000000
4.000000
1.000000
SLACK OR SURPLUS
0.000000
0.000000
0.000000
14.000000
0.000000
0.000000
REDUCED COST
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
DUAL PRICES
-1.000000
0.000000
-1.000000
0.000000
-1.000000
0.000000
136
Investigacin Operativa
Periodo
Hora del da
N Mnimo
1
3-7
6
2
7-11
14
3
11-15
0
4
15-19
20
5
19-23
4
6
23-3
1
j 1 i 1
st
orgenes:
xij - xij ai
transbordo: xij - xij = 0
destinos: xij - xij bj
Max z = vi xi
i 1
st
n
wi xi W
i 1