Documente Academic
Documente Profesional
Documente Cultură
CONTENIDOS
1. Introduccin
6. Programacin 0-1
1. Introduccin
Todos son problemas de programacin 0-1 y han sido muy renombrados de-
bido a que su estructura aparece en diferentes tipos de aplicaciones
prcticas, habindose desarrollado mtodos especializados para su resolu-
cin que aprovechan la estructura matemtica inherente a estos problemas.
El problema de la mochila
X1 = {0, 1, 2, 3, 4, 5, 6},
X2 = {0, 1, 2, 3, 4, 5}
siendo el producto cartesiano X = {(0,0), (0,1),..., (6,5)}, formado por 42 puntos.
El punto factible que maximiza el valor de la funcin objetivo es xPE*=(2, 2), con
zPE*=6, siendo, por tanto, la solucin ptima del problema.
Tema 3. Programacin Lineal Entera Investigacin Operativa
Vamos a introducir algunas ideas previas del mtodo con un ejemplo. Dado
el problema de programacin entera.
(PE)
Sin embargo, como x2 (y tambin x1) tiene que ser un nmero entero para la
solucin ptima xPE*, dicha solucin, adems de pertenecer a F, deber veri-
ficar que x2 4 x2 5.
Con esta observacin vemos que se ha dividido la regin factible en tres
subconjuntos,
cuyos conjuntos factibles son el primer y tercer conjunto de los tres conside-
rados anteriormente.
Las soluciones ptimas para los problemas son xPL1* = (6, 4) con zPL1* =16
y xPL2* = (5.6, 5) con zPL2*=16.2.
Adems, el valor del objetivo para cualquier otra solucin entera del proble-
ma PL1 debe ser menor que 16, por lo que el valor 16 es una cota inferior
para el valor del objetivo de la solucin ptima del problema PE, ya que
cada solucin de S se va a obtener de PL1 o PL2, de manera que no se
pierden soluciones del PE.
Tema 3. Programacin Lineal Entera Investigacin Operativa
Ramificamos sobre la variable x1, lo que nos lleva a considerar los proble-
mas PL3 y PL4:
Tema 3. Programacin Lineal Entera Investigacin Operativa
Grficamente:
Tema 3. Programacin Lineal Entera Investigacin Operativa
Sea F la regin factible del problema lineal relajado (PR) asociado al PE.
Paso 0. Resolvemos el PR (mtodo del smplex) xPR*=(0, 8.2, 8.8), con zPR* =
42.2. Al tener esta solucin valores no enteros, dicha solucin no es ptima para el
PE y debemos continuar con el algoritmo.
Paso 3. Sondeamos estos subconjuntos para ver si son terminales. Notemos que
por (i) el subproblema PL3 es terminal, al ser infactible.
PL2 no es infactible (i), tiene zS = 41.37 > - = zI (ii), y la solucin ptima no se al-
canza en un punto con valores enteros (iii); por lo que no es terminal.
Tema 3. Programacin Lineal Entera Investigacin Operativa
con xPL4* = (0, 8, 8.67) con zPL4* = 41.33 y xPL5* = (1, 4.4, 4.6) con zPL5*=26.4.
Estos dos subproblemas no son terminales, ya que no son infactibles (i), para PL4
y PL5 es zS = 41.33 >- = zI y zS = 26.4 > - = zI, respectivamente (ii), y sus
valores ptimos no se alcanzan para un punto factible del PE (iii).
Tenemos ahora dos vrtices no terminales y aplicando la regla de la mejor cota to-
mamos para ramificar el subproblema PL4, hacindolo sobre la variable x3. Para
ello, aadimos las restricciones x3 8 y x3 9 para formar los subproblemas
Tema 3. Programacin Lineal Entera Investigacin Operativa
PL7 es terminal, al ser infactible, mientras que PL6 no lo es, ya que no cumple las
mismas condiciones (i), (ii) y (iii).
Aplicamos la regla de la mejor cota para elegir entre PL5 y PL6 sobre quin
ramificar. Tomando PL6, ramificamos sobre la variable x2 aadiendo las restriccio-
nes x2 7 y x2 8 para formar los subproblemas
Ambos problemas son terminales, el PL9 por ser infactible, y el PL8 por verificar
la condicin (iii), ya que su solucin ptima es factible para el PE y zS = 37 >- =
zI.
Hacemos zI = 37 (zS) y pasamos a sondear los subconjuntos que hasta este mo-
mento son no terminales. Si no es as, tendremos que ramificar a partir de ellos
para obtener nuevos subproblemas.
Aspectos computacionales
Puede ser til invertir algo de tiempo en buscar una solucin factible
entera que nos proporcione una cota inicial zI para el problema, a partir
de la cual podamos obtener subconjuntos terminales ms rpidamente
(de la condicin (ii)).
(zS - zI)/zS ,
con 0.003.
Tema 3. Programacin Lineal Entera Investigacin Operativa
6. Programacin 0-1
0 c1 c2 cn.
Adems, para PR3, zS = 4 > 0 = zI, pero el punto (0,0,1), que ha dado
lugar a la cota superior en este subproblema, es factible y, por tanto,
posible solucin del PE, siendo zI = 4 la nueva cota inferior y pasando
el subproblema a ser terminal.
x*=(0,0,1), con z* = 4.
Tema 3. Programacin Lineal Entera Investigacin Operativa
Algoritmo 0-1
Tema 3. Programacin Lineal Entera Investigacin Operativa
Algoritmo 0-1
Tema 3. Programacin Lineal Entera Investigacin Operativa
Ambos no son terminales, luego ramificamos sobre PR2, al tener mayor valor para
su cota superior, y obtenemos los subproblemas PR3 y PR4.
Tema 3. Programacin Lineal Entera Investigacin Operativa
La solucin ptima del problema relajado (PR) es x1*=0.85 y x2*=2.85, con z*=
6.67, que se corresponde con el punto P de la siguiente figura
Tema 3. Programacin Lineal Entera Investigacin Operativa
Como s1,s2 0, el primer entero posible es 1, y por ello deber ser (6/7)s1 +
(3/7)s2 1/7, que es la expresin del corte como funcin de s1 y s2.
Paso a paso se van aadiendo nuevos cortes hasta llegar a una solucin del
problema relajado asociado que sea entera y que, por tanto, ser la solucin
ptima del problema original.
Tema 3. Programacin Lineal Entera Investigacin Operativa
(6.1)
Este mtodo est basado en el algoritmo del smplex dual y toma como
corte asociado a una variable (bsica) xi, la desigualdad
y xi bsica (iB) en la tabla ptima del smplex para el PR, con xio
valor ptimo de xi (mediante Lx_I designamos la parte entera de x).
Tema 3. Programacin Lineal Entera Investigacin Operativa
Algoritmo
Tema 3. Programacin Lineal Entera Investigacin Operativa
Algoritmo
Tema 3. Programacin Lineal Entera Investigacin Operativa
Paso 2. Calculamos
y puesto que coinciden, tomamos arbitrariamente f2o, siendo, por tanto, p=2 la fila
fuente.
Paso 1. Como x11 = 3/2 no es entero, ir al Paso 2, siendo la fila fuente la primera.
Paso 1. Como xj2 es entera para j = 1,2, x* = (1, 2) es la solucin ptima con
z* = 5.
Tema 3. Programacin Lineal Entera Investigacin Operativa