Faculta de ingeniería y arquitectura Escuela académica profesional de ingeniería sistemas e informática
CURSO: PROGRAMACIÓN LINEAL
Tema: PROGRAMACIÓN LINEAL ENTERA
INTEGRANTE: JHOYSER JHOYSER MICHAEL CRUZADO RODAS RODAS
2016 1
INTRODUCCIÓN Este tema se presenta un tipo de problemas formalmente similares a los problemas de programación lineal, ya que en su descripción solo se establecen expresiones lineales. Sin embargo, no responden a problemas lineales ya que algunas (o todas) las variables del problema toman valores que no están en un conjunto continuo. or ejemplo, pueden ser variables que toman valores ! o " (binarias), o variables que toman valores enteros no negativos (!,", #...), etc. $ras introducir el tipo de problemas se dedica un importante apartado para presentar las posibilidades de modelado que esta %erramienta proporciona& problemas binarios, problemas de carga fija, problemas con restricciones condicionales o con dicotom'as, etc. on el trmino rogramación lineal entera, (*E), nos referiremos al siguiente tipo de problemas& problemas que formalmente son problemas de programación lineal, máx +m'n - x - b, x / ! pero en los que algunas variables están restringidas a tomar valores enteros. or ejemplo, x" / !, x# / ! y entera, 01 ∈ 2!, "3, x" una variable como las que %emos manejado %asta a%ora, x# una variable entera no negativa y x1 una variable binaria, que toma 4nicamente dos valores, ! ó ". *os problemas de programación lineal entera nos van a permitir modelar muc%as más situaciones que la programación lineal, pero a cambio la resolución de los problemas será muc%o más costosa, presentaran, en general, un costo computacional muc%o más elevado que el de la programación lineal.
2
DEDICATORIA mi madre, por estar conmigo, por ense5arme a crecer y a que si caigo debo levantarme, por apoyarme y guiarme, por ser la base que me ayuda a no darme por vencido.
3
¿QUÉ ES LA PROGRAMACIÓN LINEAL ENTERA? rogramación lineal& %ipótesis de perfecta divisibilidad. s' pues, decimos que un problema es de programación lineal entera, cuando prescindiendo de las condiciones de integridad, el problema resultante es un problema de programación lineal.
CLASIFICACIÓN DE LOS PROBLEMAS LINEALES ENTEROS. tendiendo al tipo de variables&
Enteros pros& son aquellos en que todas las variables 4nicamente pueden tomar valores enteros. tambin se distinguen dentro de estos los problemas totalmente enteros como aquellos en que tanto las variables como todos los coeficientes que intervienen en el problema %an de ser enteros.
M!"tos# son aquellos en los que %ay al mismo tiempo variables continuas y variables que sólo pueden tomar valores enteros.
B!n$r!os# las variables sólo pueden tomar los valores cero o uno.
tendiendo al criterio del tipo de problema&
D!re%to& Si el problema de decisión involucra variables enteras.
Co&!'!%$&o& uando se trata de un problema que contiene además de aspectos cuantitativos, alguna consideración de tipo cualitativos, y por ello para tratar este tipo de aspectos se requiere el uso de variable enteras o binarias.
Tr$ns'or($&o& uando el problema no incluye variables enteras, pero para ser tratado anal'ticamente requiere el uso de variable enteras 6artificiales7.
MÉTODOS DE RESOLUCIÓN unque en un principio pueda parecer que los problemas lineales enteros son más fáciles de resolver que los continuos, dado que el n4mero de soluciones factibles a anali8ar, cuando el conjunto de oportunidades está acotado, es finito, ste n4mero suele ser lo suficientemente grande (en un problema binario con n variables el n4mero de soluciones factibles a estudiar es # n) como para que resulte imposible su comparación.
4
COMPLE)IDAD 9:;<*ES
S=*>;=?ES " # A C "!
;?:E@E?$= #
A "B 1# ".!#A
"C
1#.BF
#!
".!AF.CB
#C
11.CCA.A1#
C! "!! #!!
","#CDEG"C
C!!
1,#1AEG"C!
"!!!
",!"CEG1!"
",#BEG1! ",B!BDEGB!
# "# "B DD# 1".AA ".!"C.F!F 1#.C!C.FCB ","#CDEG"C ",#BEG1! ",B!BDEGB! 1,#1AEG"C! ",!"CEG1!"
ORDENADOR CON *+,,,+,,,+,,,+,,, DE OPERACIONES POR SEGUNDO " SEH>?I= " @;?>$= " J=: " IK " @ES " L= " S;H*= "!! S;H*=S "!!! S;H*=S @;**=? IE S;H*=S "!! @;**=?ES S;H*=S "!!! @;**=?ES S;H*=S
" B! B! #A 1! "# "!! "!! "! "!!! "!! "!
roblema con "!! variables
",#BEG1!
"EG"# BEG"1 1,BEG"C F,BAEG"B #,CD#EG"F 1,""!AEG"D 1,""!AEG#" 1,""!AEG#1 1,""!AEG#A 1,""!AEG# 1,""!AEG#D 1,""!AEG1! "EG"#
",#BCEG1!
-, M!//ones &e s!0/os
s' pues, la mayor'a de los mtodos de resolución comien8an su ejecución con la resolución del problema lineal asociado (en adelante *) consistente en eliminar las condiciones de integridad, obtenindose en consecuencia un problema de programación lineal que puede ser resuelto mediante el algoritmo del simplex.
5
*a resolución del * en primer lugar, tiene una ventaja y es que, si la solución a dic%o problema verifica las condiciones de integridad de las variables, esta será la solución al problema entero, con lo cual no será necesario aplicar ninguna tcnica especial para resolverlo. Si la solución al * no verifica las condiciones de integridad, lo que ocurre la mayor'a de las veces, entonces %abrá que utili8ar alg4n mtodo que nos permita resolver el problema entero. lgo que no debemos %acer, es caer en la tentación de redondear la solución obtenida al * a valores enteros y tomarla como válida, pues si bien esto puede ser aceptable en aquellos problemas en el que los valores de las variables son muy grandes y en consecuencia el error puede ser m'nimo, en general nos puede generar dos graves problemas que son& a) *a solución obtenida por redondeo no es la óptima e incluso puede ser muy diferente de ella, como ocurre con el siguiente problema
@ax M(0) - Ax" G 1x#
x"
s.a.
#x" G x#
≤#
1x" G Ax#
≤B
≥ ! , x# ≥ ! x , x ∈ 2!,"3 " #
@ax M(0) - Ax " G 1x# s.a.
#x" G x#
≤#
1x" G Ax#
≤B
"≥ x"
≥ ! , "≥ x# ≥ !
'e o(tiene la soluci)n*
x" - !,A , x# - ",# y M(0) - C,#.
:edondeo& x" - !, x# - ", M(0) - 1, Solución óptima& x" - ", x# - ! , M(0) - A
!"1# F$3
%&4"1&2# F$5"2
6 1"!# F$4
b) @ax M(0) - Fx" G "!x#
s.a.
Ax" G Bx#
≤ #A
Fx" G 1x#
≤ #A
G x"≥!, x#≥!, x", x#∈ :esolviendo el * asociado @ax M(0) - Fx" G "!x# s.a.
Ax" G Bx#
≤ #A
Fx" G 1x# ≤ #A x"≥!, x#≥!
Solución x"-#, x#-F+1, M(0)- "#F+1 :edondeo al punto x "-#, x#-1, infactible :edondeo al punto x "-#, x#-# M(0)-1B Solución óptima& x"-!, x#-A, M(0)-A!.
!"4# F$ 4!
4+1,6+2 $24
!"3# F$3!
1"3# F$32"-.3# F$ 12-.3
F+# $ -+1,1!+2 !"2# F$2!
1"2# F$2-
1"3# F$3-
-+1,3+2$24 !"1# F$1!
!"!# F$!
1"1# F$1-
1"!# F$-
2"1# F$26
2"!# F$16
3"!# F$24
s' pues, si queremos obtener la solución óptima al problema entero, necesariamente %abremos de utili8ar alg4n mtodo de resolución para problemas enteros.
Nnicamente se tratarán los dos mtodos, que consideramos más representativos y además pioneros en la resolución de problemas enteros, como son los métodos de corte (algoritmo fraccional de Gomory)
y el de ramificación y acotación (Branch and Bound).
MÉTODO DE RAMIFICACIÓN 1 ACOTACIÓN 2Br$n%3 $n& Bon&4. El mtodo de ramificación y acotación, más conocido por su nombre en ingls
2*4
@ax M(x) - Ax" G Cx# s.a.
#x" G x#
≤F
x#
≤C
x", x# ≥ ! y enteras
la solución al *, prescindiendo de la condición de que las variables %an de ser enteras es
x" - ",C, x# -C y M(x) - 1" como dic%a solución no verifica las condiciones de integridad se elige la variable x" que no es entera y a partir de ella se generan dos restricciones
x"
≤
"
x"
y
≥
#
que a5adidas cada una de ellas al problema original dan lugar a dos nuevos subproblemas que ser'an los siguientes&
@ax M(x) - Ax" G Cx# s.a.
#x" G x# x#
≤
2*.*4
F
s.a.
#x" G x#
≤*
x", x#
≥!
≤
F
x#
≤C
"*
2*.54
@ax M(x) - Ax" G Cx#
"*
x",x#
≥5 ≥
!
de este modo se %an eliminado todas las posibles soluciones no enteras del conjunto de oportunidades tales que "P x" P #. El proceso se repite con cada uno de los dos subproblemas obtenidos, los cuales darán lugar a otros dos subproblemas cada uno de ellos y as' sucesivamente %asta que en todos los subproblemas tengan solución entera o infactible. >tili8ando 4nicamente la ramificación, el n4mero de subproblemas a resolver crece exponencialmente, por este motivo para evitar el tener que resolver todos los subproblemas, la ramificación se combina con la acotación. *a acotación se basa en el %ec%o de que dado que los conjuntos de oportunidades del subproblema ".". (S"") y del subproblema ".# (S"#) son a su ve8 subconjuntos del conjunto de oportunidades del problema " (S") la solución óptima de los dos subproblemas siempre será inferior (problema de máximo o superior para problemas de m'nimo) que la solución óptima del problema " por ser los conjuntos de elección menores. s' pues, el proceso de acotación consiste, para problemas de máximo, en tomar como cota inferior aquella solución entera con mayor valor de la función objetivo obtenida y dado que cualquier otro subproblema con solución no entera sabemos que al ramificarlo nos dará como resultado valores de la función objetivo menores o iguales, nos permite descartar como subproblemas a ramificar todos aquellos que tengan como solución óptima un valor de la función inferior a la cota establecida.
Ie este modo se reduce el n4mero de subproblemas a ramificar y por lo tanto el tiempo necesario para la resolución de los problemas enteros.
El proceso a seguir en la resolución de problemas enteros mediante el mtodo de ramificación y acotación se resume en el siguiente esquema algor'tmico&
Es6e($ &e/ $/0or!t(o &e r$(!'!%$%!7n 8 $%ot$%!7n.
Ejemplo
@ax M(0) - Fx " G "!x# s.a.
Ax" G Bx#
≤ #A
Fx" G 1x#
≤ #A
x"≥!, x#≥!, x", x#∈
G
:esolviendo en primer lugar el *, es decir
@ax M(0) - Fx " G "!x# s.a.
Ax" G Bx#
≤ #A
Fx" G 1x#
≤ #A
x"≥!, x#≥!
se obtiene la solución x" - #, x# - F+1, f(x) - "#F+1, dado que sta solución no es entera se ramifica a partir de la variable x# del siguiente modo
subproblema 1
@ax M(0) - Fx " G "!x# s.a.
Ax" G Bx#
≤ #A
Fx" G 1x#
≤ #A
"5 x"≥!, x#≥! solución x"-",C, x#-1, M(x)-A#
subproblema 2
.
@ax M(0) - Fx " G "!x# s.a.
Ax" G Bx# Fx" G 1x#
"5 x"≥!,x#≥! solución x"-#,C, x#-#, M(x)-1F
como la solución del subproblema ", tiene el mayor valor de la función objetivo y no es entera ramificaremos este subproblema a partir de la variable x", del siguiente modo& subproblema 1.1
subproblema 1.2
@ax M(0) - Fx " G "!x# s.a.
.
Ax" G Bx# ≤ #A Fx" G 1x#
@ax M(0) - Fx " G "!x# s.a.
≤ #A
x#
≥1
Ax" G Bx#
≤ #A
Fx" G 1x#
≤ #A
x#
"*≤ *
≥1
"*≥ 5
x"≥!, x#≥!
x"≥!, x#≥!
solución x"-", x#-"!+1,M(x)-"#A+1
solución !n'$%t!:/e.
!"4# F$ 4!
4+1,6+2 $24
+1/2
su(p
1&11"1!.3#
F+#i$n1f2a4c.t3i(le
su(p 1&2
!"3# F$3! 1"3# F$3-
+2/3
+101
Iado que de todos los subproblemas todav'a no ramificados (subproblemas #, "." y ".#) el que tiene una mayor solución factible no entera es el subproblema ".", ramificaremos este subproblema a partir de la variable x#, es decir&
subproblema 1.1.1
subproblema 1.1.2
@ax M(0) - Fx " G "!x# s.a.
Ax" G Bx#
≤ #A
Fx" G 1x#
≤ #A
@ax M(0) - Fx " G "!x#
.
s.a.
Ax" G Bx# Fx" G 1x#
x# x"
x# x"
≤"
"5
"5
x"≥!,x#≥!
x"≥!,x#≥!
solución x"-", x#-1,M(x)-1F
solución x"-!, x#-A,M(x)-A!
Iado que ya conocemos una solución entera x"-!, x#-A, M(x)-A!, sta solución actuará como cota inferior y solamente deberán ser ramificados aquellos subproblemas con soluciones factible no enteras que tengan un valor para la función objetivo que A!. omo el 4nico subproblema por ramificar es el subproblema # y la función objetivo vale 1F, el proceso se dá por terminado, siendo por tanto la solución óptima al problema entero
"* ; ,+ "5 ; -+ F2"4 ; -, el árbol del problema resuelto es el siguiente&
2
1$2"5"2$2"F$3
1&1&1 203
202
1$1"2$3"F$3
1$2"2$-.3"F$12-.3
1&1
2/3
1$1"2$1!.3"F$124.
2/4
10
1
1$1"5"2$3"F$4
1&1&2
1/2
1&2
F789E
1$!"2$4"F$4