1
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Introduccin
En muchos problemas de programacin lineal slo tienen sentido aquellas soluciones de la regin factible en las que todas o algunas de
las variables de decisin toman valores enteros. Este tipo de problema se denominan en general de programacin lineal entera. Si
todas las variables del problema deben ser enteras se habla de programacin entera pura, pero si slo algunas deben ser enteras y las
restantes continuas se habla de programacin lineal enteramixta. Cuando las variables enteras estn restringidas a los dos valores 01,
se denominan variables binarias, y el problema correspondiente problema binario.
Como veremos en el tema 6 de la asignatura, la resolucin de los problemas enteros resulta ms compleja que los continuos. En este
caso la solucin ptima no necesariamente tiene que coincidir con un vrtice de la regin factible del problema continuo, sino que
puede estar en el interior o en las aristas de dicha regin, pero siempre en puntos con valor entero de sus coordenadas.
Por ejemplo,
ejemplo el siguiente modelo lineal entero puro tiene la solucin ptima en el punto (3,
(3 2),
2) bastante alejado del punto extremo
donde tiene su valor ptimo el problema continuo.
x2
Minimizar -6x1 5 x2
x1 2 x2 5
Solucinptimadel
problemacontinuo
subject to
3 x1 x2 11
Solucinptimadel
problemaentero
p
x1 2 x2 5
x1 , x2 0, integer
3x1 x2 11
x1
La utilizacin de variables enteras en general y binarias en particular ampla notablemente las posibilidades de modelado de la
programacin lineal, haciendo posible la disyuncin de restricciones, la implicacin lgica entre restricciones y en general la
incorporacin al modelo de ciertos comportamientos no lineales de la realidad.
En este tema exploraremos algunas de las nuevas posibilidades que introducen las variables enteras desde el punto de vista del
modelado de problemas. Tambin veremos su expresin en el leguaje OPL. En el tema 6 estudiaremos los mtodos algortmicos que se
utilizan para resolverlos.
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Aplicacionesconrelacioneslgicasentrevariablesorestricciones
Ocurre en bastantes ocasiones reales que es necesario establecer relaciones lgicas entre las restricciones que se deben imponer.
Por ejemplo, .si se abre una fbrica en Zaragoza, se puede abrir tambin un almacn. Este tipo de relaciones lgicas se pueden
modelar introduciendo nuevas variables binarias.
Aplicacionesdeoptimizacincombinatoria
Muchos problemas prcticos de optimizacin tienen como caracterstica bsica la existencia de un nmero extremadamente
grande de soluciones factibles. Dichas soluciones aparecen como consecuencia de diferentes mtodos de ordenar actividades y
asignar recursos. Este tipo de problemas se denominan combinatorios.
Linealizacin deproblemasNolineales
Como veremos en el tema 9 muchos problemas nolineales se pueden aproximar utilizando modelos de programacin entera
binaria.
3
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema1
Se estn considerando cuatro posibles inversiones. La primera de ellas se prev que proporcione unos beneficios netos de
16.000 euros, la segunda, 22.000 euros, la tercera 12.000 euros, y la cuarta 8.000 euros. Cada una de las inversiones
requiere una cantidad de dinero en efectivo: 5.000, 7.000, 4.000 y 3.000 euros, respectivamente. Si solo se dispone de
14.000 euros para invertir. Qu modelo de programacin lineal entera permite obtener la combinacin de inversiones que
prevea los mximos beneficios?
Solucin
NUEVO
LadeclaracindevariablesenterasenOPLserealizaconlapalabraclaveint seguida
delnombredelavariableydeladefinicindelrangodevariacin.Elrangoes
obligatorio y se compone de la palabra clave in seguidadelintervalodevariacin:
obligatorioysecomponedelapalabraclavein
seguida del intervalo de variacin:
extremoinferior..extremosuperior
Variablesdedecisin
Modelo OPL
1 si se elige la inversin i
xi
0 si no se elije
Restricciones
1234
i = 1,2,3,4
Lasumadeloscostesdelasinversionesnodebe
rebasarlacantidadtotaldisponible.
5 x1 7 x2 4 x3 3x4 14
xi 0,1 ,
i 1, 2,3, 4
dvar
dvar
dvar
dvar
int
int
int
int
x1
x2
x3
x4
in
in
in
in
0..1;
0..1;
0..1;
0..1;
maximize 16*x1+22*x2+12*x3+8*x4;
subject to
{
5*x1+7*x2+4*x3+3*x4 <= 14;
}
Funcinobjetivo
Hayquemaximizarelbeneficiototaldetodaslas
inversiones
Maximizar z 16 x1 22 x2 12 x3 8 x4
//solution(optimal)withobjective42
x1=0;
Luegolasinversionessegunda,tercera
x2=1;
ycuartaproducenelmximobeneficio
x3=1;
de42.000euros
x4=1;
4
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 2
Se desea ampliar una compaa con la instalacin de una nueva factora en Zaragoza o Sevilla o en ambas ciudades.
ciudades Tambin se piensa
construir a lo sumo un almacn en una ciudad donde se instale alguna factora. En la siguiente tabla aparecen los beneficios estimados
de instalar una factora y construir un almacn en Zaragoza y Sevilla, y el capital requerido para ello. Se dispone de un capital total para
la inversin de 39 M euros. El objetivo es tomar las decisiones que optimicen el beneficio de la inversin.
Decisiones
Instalar una factora en Zaragoza
Instalar una factora en Sevilla
Construir un almacn en Zaragoza
Construir un almacn en Sevilla
Beneficio estimado
19 M euros
15 M euros
16 M euros
14 M euros
Capital requerido
16 M euros
13 M euros
15 M euros
12 M euros
Solucin
dvar
dvar
dvar
dvar
Variablesdedecisin
l decisin
d i i i es s
1 sii la
xi =
0 si la decisin i es no
int
int
int
int
x1
x2
x3
x4
in
in
in
in
0..1;
0..1;
0..1;
0..1;
ModeloOPL
maximize 19*x1+15*x2+16*x3+14*x4;
x3 x4 1
Sedebeconstruiralosumounalmacn
subject to
{
16*x1+13*x2+15*x3+12*x4 <= 29;
x3+x4 <= 1;
x3 <= x1;
x4 <= x2;
}
x3 x1
ElalmacnenZaragozaslosepuedeconstruirsi
seinstalaunafactoraenZaragoza
//solution(optimal)withobjective35
x4 x2
Funcinobjetivo
Elconjuntodedecisionesqueseadoptenodebe
El
conjunto de decisiones que se adopte no debe
rebasarelpresupuestodeinversindisponible
ElalmacnenSevillaslosepuedeconstruirsise
instalaunafactoraenSevilla
Hayquemaximizarelbeneficiototaldetodaslas
decisionesdeinversin
x1=1;
x2=0;
x3=1;
x4=0;
Maximizar Z 19 x1 15
1 x2 16 x3 14 x4
5
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Variablesindicadoras:controldelvalordeunavariablecontinua
Esposibleestablecerrelacioneslgicasentrerestriccioneslinealesusandovariablesenterasbinariasymanteniendolalinealidad.Eneste
apartadovamosautilizarestasvariablescomoindicadorasdequesecumpleunacondicinenunavariablecontinua.Porejemplo,la
variable binaria d podemosutilizarlaparaindicarconvalor1quelavariablecontinuax
variablebinariad
podemos utilizarla para indicar con valor 1 que la variable continua x esmayorquecero,esdecir:
es mayor que cero, es decir:
x 0 d 1
Estaimplicacinlgicalapodemosmodelarconlasiguienterestriccin:
x M d 0
Siendo M una cota superior del valor de x. En efecto, cuando x es mayor que 0 necesariamente d tendr que valer 1 para que el lado
izquierdo de la restriccin sea efectivamente menor o igual que 0.
La restriccin anterior nos asegura que d tomar el valor 1 siempre que x >0, pero no el sentido opuesto de esta implicacin, es decir, que
siempre que d = 1 se cumpla que x > 0. Para modelar en la prctica el sentido opuesto de esta implicacin ser necesario la definicin de
un cierto umbral m para x a partir del cual se considere que x deja de ser cero y toma un valor positivo, es decir:
d 1 x m
Esta implicacin lgica la podemos modelar con la siguiente restriccin:
x md 0
Enalgunasocasionesnoesnecesarioimponerexplcitamenteestasegundarestriccinporquelacondicindeptimolaimpone
l
l
d
l
d d
l
implcitamente,comoocurreenelmodeladodeunafuncinobjetivodecostefijoqueanalizamosacontinuacin.
6
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Costes fijos
Las variables indicadoras se puede utilizar para modelar funciones de coste en las que aparece una componente de coste fijo. Se trata de
casos en los que el coste total de una actividad es la suma de un coste variable, casi siempre proporcional al nivel de la actividad, y un
coste fijo necesario para iniciarla (set-up). Si C1 es el coste por unidad de producto y C2 el coste de inicializacin , el coste total vendr
por:
dado p
Costetotal
C1
Si x 0 coste total 0
Si x 0 coste total C1 x C2
La grfica de la derecha recoge el comportamiento de estas funciones de coste.
C2
01234
El modelo utilizar una variable indicadora d y las restricciones que aseguran las dos condiciones anteriores sobre el valor de x:
Minimizar z C1 x C2
sujeto a : x M d 0
x md 0
En este caso podemos eliminar la segunda restriccin ya que al tratarse de un problema de minimizacin, queda asegura por la
condicin
di i de
d ptimo:
i
Minimizar z C1 x C2
suejeto a : x M d 0
7
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema3:costefijo
Tres compaas de telfonos ofrecen su servicio de larga distancia con Estados Unidos en las siguientes condiciones:
La compaa C1 cobra una tarifa fija de 16 euros al mes, ms 0,25 cntimos por minuto.
La compaa C2 cobra 25 euros al mes de tarifa fija, pero reduce el coste por minuto a 0,21 cntimos.
La compaa C3 ofrece una tarifa fija mensual de 18 euros y un coste por minuto de 0,22 cntimos.
Las compaas slo cobran la tarifa fija si se realiza alguna llamada a travs de su operador. Teniendo en cuenta que un usuario
consume un promedio mensual de 200 minutos en llamadas a Estados Unidos,
Unidos y que puede repartir dichas llamadas entre las tres
compaas, qu servicios debe utilizar para que la factura mensual de telfono sea lo ms econmica posible?
Solucin
Variablesdedecisin
x1 200 y1 0
x2 200 y2 0
x3 200 y3 0
x1 , x2 , x3 0
y1 , y2 , y3 0,1
Funcinobjetivo
float+
float+
float+
int y1
int y2
int y3
x1;
x2;
x3;
in 0..1;
in 0..1;
in 0..1;
ModeloOPL
minimize
i i i
0.25*x1+0.21*x2+0.22*x3+
0
25* 1 0 21* 2 0 22* 3
16*y1+25*y2+18*y3;
200esunacotasuperiordelastresvariablesde
decisincontinuasxi
Restricciones
dvar
dvar
dvar
dvar
dvar
dvar
Hayqueminimizarelcostetotaldelafactura
Minimizar z 0,
0 25 x1 00, 21x2 00, 22 x3 16 y1 25 y2 18 y3
subject to
{
x1+x2+x3==200;
x1-200*y1 <= 0;
x2-200*y2 <= 0;
x3-200*y3 <= 0;
}
//solution(optimal)withobjective62
//
solution (optimal) with objective 62
x1=0;
x2=0;
Solucin optima: contratar con la
x3=200;
compaa C3, resultando una
y1=0;
factura mensual de 62 euros.
y2=0;
y3=1;
8
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema4:recubrimiento
Se desea construir el menor nmero de estaciones de bomberos que cubra un territorio de 6 ciudades C1, C2, C3, C4, C5, y C6. Las
estaciones se podran construir en cualquiera de las ciudades pero garantizando siempre que todas las ciudades dispongan al menos de
una estacin a una de distancia mxima de 15 minutos. En la siguiente tabla se dan los tiempos en minutos para ir de una ciudad a otra:
C1
C2
C3
C4
C5
C6
C1
0
10
20
30
30
20
C2
10
0
25
35
20
10
C3
20
25
0
15
30
20
C4
30
35
15
0
15
25
C5
30
20
30
15
0
14
C6
20
10
20
25
14
0
Sedebeaveriguarelnmerodeestacionesdebomberosaconstruirylaciudaddondedebenconstruirse.
dvar
d
dvar
dvar
dvar
dvar
dvar
S l i
Solucin
Variablesdedecisin
1 si se elige la ciudad i
xi
0 si no se elije
i = 1,2,3,4,5,6
x1
1
x2
x3
x4
x5
x6
in
i
in
in
in
in
in
0..1;
0
1
0..1;
0..1;
0..1;
0..1;
0..1;
ModeloOPL
minimize x1+x2+x3+x4+x5+x6;
Restricciones
x1 x2 1
x1 x2 x6 1
x3 x4 1
C1
C2
C3
C4
C5
C6
C1
10
20
30
30
20
C2
10
25
35
20
10
C3
20
25
15
30
20
x3 x4 x5 1
C4
30
35
15
15
25
x4 x5 x6 1
C5
30
20
30
15
14
x2 x5 x6 1
C6
20
10
20
25
14
Paracadaciudadhayqueimponerelrecubrimientoconel
restodeciudadesqueseencuentrana15omenosminutos
deella(coloreadasyenlamismafiladelatabla)
Funcindecoste
i t
int
int
int
int
int
int
Elnmerodeestacionesdebomberosdebesermnimo
Minimizarz x1 x2 x3 x4 x5 x6
subject to
{
x1+x2 >=1;
x1+x2+x6 >=1;
;
x3+x4 >=1;
x3+x4+x5 >=1;
x4+x5+x6 >=1;
x2+x5+x6 >=1;
}
//solution(optimal)withobjective2
x1=0;
x2=1;
Solucin optima: construir
x3=0;
dos estaciones de bomberos
x4=1;
en las ciudades C2 y C4
x5=0;
x6=0;
9
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Modeladodeladisyuncinentredosrestriccioneslinealesutilizandovariablesbinarias
Se trata de imponer el cumplimiento de una restriccin entre dos restricciones es decir que se cumpla:
Setratadeimponerelcumplimientodeunarestriccinentredosrestricciones,esdecir,quesecumpla:
x1 2 x2 2 x3 30
x1 , x2 , x3 0
2 x1 x2 2 x3 45
Paraellotenemosencuentalosiguiente:
se cumple x1 , x2 , x3
En realidad la restriccin anterior no impone ningn valor a sus variables fuera de su rango de variacin, es decir, al sumarle la cota
M al lado derecho anulamos la restriccin. Por tanto introduciendo una variable binaria y, el siguiente programa hace que slo se
imponga una de las restricciones:
x1 2 x2 2 x3 30 My
2 x1 x2 2 x3 45 M ' (1 y )
x1 , x2 , x3 0
y 0,1
Si y = 1 seanulaestarestriccin,siy
Siy
se anula esta restriccin, si y = 0 seimpone
se impone
Siy = 1 seimponeestarestriccin,siy = 0 seanula
Como y debetomarunodelosvalores0o1,se
impone necesariamente una de las dos restricciones
imponenecesariamenteunadelasdosrestricciones
Elmismocomportamientoseconsigueintroduciendodosvariablesbinariaseimponiendoquesusumavalga1:
x1 2 x2 2 x3 30 My1
2 x1 x2 2 x3 45 M ' y2
y1 y2 1
x1 , x2 , x3 0
y1 , y2 0,1
10
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Loscasosanterioresmodelanladisyuncinexclusivadeladosrestricciones,porqueforzosamenteseimponeunayslouna
de las dos En cambio si imponemos que la suma de las dos variables binarias pueda ser menor que 1 es decir 0 admitimos
delasdos.Encambio,siimponemosquelasumadelasdosvariablesbinariaspuedasermenorque1,esdecir0,admitimos
laposibilidaddequenoseimponganingunadelasdos,esdecir,quecomomximosecumpleunadeellas:
x1 2 x2 2 x3 30 My1
2 x1 x2 2 x3 45 My2
y1 y2 1
x1 , x2 , x3 0
y1 , y2 0,1
ElcasoanteriorpodemosgeneralizarloalcasodeN restriccioneslinealesdelascualesseimponenK<N:
f1 ( x1 , x2 ,..., xn ) b1
f 2 ( x1 , x2 ,..., xn ) b2
.....
f N ( x1 , x2 ,..., xn ) bN
ParaellointroducimosNvariablesbinariasyexigimosquesusumaseaigualaN K:
f1 ( x1 , x2 ,..., xn ) b1 M 1 y1
f 2 ( x1 , x2 ,..., xn ) b2 M 2 y2
.....
f N ( x1 , x2 ,..., xn ) bN M N yN
N
y
i 1
N -K
yi 0,1 ; i 1,...N
M i cota superior
p
de f i ( x1 , x2 ,,...,, xn ) bi
11
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 5
Una compaa est considerando la fabricacin de tres tipos nuevos de vehculos: T1,
T1 T2,
T2 y T3.
T3 Los recursos necesarios para su fabricacin,
fabricacin
los recursos disponibles, y los beneficios esperados, para cada tipo de vehculo, se dan en la siguiente tabla:
Tipos
Material
Trabajo
Beneficios
T1
1500kilos
30horas
2000 euros
2000euros
T2
3000kilos
25horas
3000 euros
T3
5000kilos
40horas
4000 euros
4000euros
Disponibilidad
6000000kilos
60000horas
La empresa quiere conocer qu tipo de vehculos debe fabricar y cuntos para maximizar los beneficios, teniendo en cuenta que un nuevo
modelo solo resulta econmicamente viable si se fabrican al menos 1000 unidades.
2.400esunacotadelnmerodevehculosquesepueden
d l
d
h l
d
construirimpuestaporlashorasdisponibles:60.000/25=2.400.
Loskilosdisponiblesimponenunacotamenosrestrictiva,4.000
Solucin
Variablesdedecisin
i 1,2,3
x1 2400 y1
1000 x1 2400(1 y1 )
x2 2400 y2
1000 x2 2400(1 y2 )
x3 2400 y3
1000 x3 2400(1 y3 )
1,5 x1 3 x2 5 x3 6000
30 x1 25 x2 40 x3 60000
Loskilosdematerialconsumidonodebe
sobrepasar los kilos disponibles
sobrepasarloskilosdisponibles
Lashorasdetrabajoconsumidasnodebe
sobrepasarloshorasdisponibles
Hayquemaximizarelbeneficiototal
Funcindecoste
Maximizar z 2 x1 3x2 4 x3
dvar
dvar
dvar
dvar
dvar
dvar
float+
float+
float+
int y1
int y2
int y3
x1;
x2;
x3;
in 0..1;
in 0..1;
in 0..1;
ModeloOPL
Sepodanhaber
usadovariables
int
maximize 2*x1+3*x2+4*x3;
subject to
{
x1 <= 2400 * y1;
1000 - x1 <= 2400 * (1 - y1);
x2 <= 2400 * y2;
1000 - x2 <= 2400 * (1 - y2);
x3 <= 2400 * y3;
1000 - x3 <= 2400 * (1 - y3);
1.5*x1+3*x2+5*x3 <= 6000;
30*x1+25*x2+40*x3 <= 60000;
}
//solution(optimal)withobjective6000
x1=0;
x2=2000;
x3=0;
Solucin optima: construir 2000
y1 =0;
y1
0;
vehculos
h l
d tipo
de
ti
T2 con un
y2=1;
beneficio de 6.000.000
y3=0;
12
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema de la mochila
Problemadelamochila
El problema de la mochila es un problema clsico que puede formularse slo con variables binarias 01. Toma su nombre de la versin que
plantea la decisin que debe tomar un excursionista para preparar su mochila introduciendo una serie de objetos de utilidad, pero
teniendo en cuenta que en la misma slo caben un nmero limitado de ellos. Debe elegir un subconjunto de los objetos que maximice la
que obtiene,, p
pero sin rebasar la capacidad
p
de la mochila.
utilidad total q
Si n es el nmero de objetos posibles, vi el volumen que ocupa el objeto i, ui el valor de utilidad que el excursionista da al objeto i, y b el
volumen de la mochila, el problema se plantea de la siguiente forma:
ui xi
Semaximizalautilidadtotaldelosobjetosintroducidosenla
Se
maximiza la utilidad total de los objetos introducidos en la
mochila,queeslasumadelasutilidadesdecadaobjeto
i 1
sujeto a :
n
v x
i 1
i i
xi 0,1
Podran
P
d existir
i i ms
dimensiones
di
i
que limiten
li i
l objetos
los
bj
que se pueden
d introducir
i
d i en la
l mochila,
hil por ejemplo,
j
l ell peso. Si pi es ell peso del
d l
objeto i, y p el peso total que puede soportar la mochila, habra que aadir en este caso la siguiente restriccin;
n
px
i 1
i i
13
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 6: mochila
Se debe realizar un envo de 7 objetos distintos.
distintos El valor,
valor peso y volumen aparecen en la siguiente tabla:
Objeto
1
2
3
4
5
6
7
Valor(euros)
56
71
69
91
70
85
65
Peso(kilos)
7
11
4
14
9
2
12
Volumen(cm3)
21
16
17
28
12
31
19
Restricciones
Losobjetosintroducidosnodeben
sobrepasarelpesodelamochila
Losobjetosintroducidosnodeben
sobrepasarelvolumendelamochila
7 x1 11x2 4 x3 14 x4 9 x5 2 x6 12 x7 41
21x1 16 x2 17 x3 28 x4 12 x5 31x6 19 x7 100
Funcindecoste
Semaximizaelvalortotaldelos
objetosintroducidosenlamochila.
dvar
dvar
dvar
dvar
dvar
dvar
dvar
int
int
int
int
int
int
int
x1
x2
x3
x4
x5
x6
x7
in
in
in
in
in
in
in
0..1;
0..1;
0..1;
0..1;
0..1;
0..1;
0..1;
ModeloOPL
maximize 56*x1+71*x2+69*x3+91*x4+70*x5+85*x6+65*x7;
subject
j
to
{
7*x1+11*x2+4*x3+14*x4+9*x5+2*x6+12*x7 <=41;
21*x1+16*x2+17*x3+28*x4+12*x5+31*x6+19*x7 <=100;
}
//solution(optimal)withobjective360
//
solution (optimal) with objective 360
x1=0;
x2=1;
x3=1;
Solucin optima: el envo estar constituido
x4=0;
por los objetos 2, 3, 5, 6 y 7; con un valor de
x5=1;
360 euros
x6=1;
x7=1;
14
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Sucesin demquinas(tiempodeocupacindelamquina)
M1(4)M3(3)M4(5)
M1(2)M2(6)M3(1)
M2(7)M4(4)
Tiempomximoportarea
16
14
14
Se trata de disear un modelo lineal de programacin de las 3 tareas sobre las 4 mquinas para que se realicen en el menor tiempo posible.
Solucin
Variablesdedecisin
i = 1,2,3;
j 1,2,3,4
Restriccionesdesecuenciacindecadatareaenlasmquinas
M1
4
T1
x1 1
M3
3
x1 3
M1
2
T2
x1 4
M2
6
M2
7
x32
x 23
M4
4
x34
x13 x11 4
x14 x13 3
x14 5 x11 16
x22 x21 2
x23 x22 6
x23 1 x21 14
16
M3
1
x 22
x 21
T3
M4
5
14
x34 x32 7
x34 4 x32 14
14
15
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Solucin(continuacin)
Restriccionesdeordenacindelastareasenlasmismasmquinas
Las tareas T1 y T2 utilizan la mquina M1, por tanto hay que imponer la disyuncin
exclusiva del inicio de ambas tareas en esta mquina. Para ello utilizamos la variable
binaria d1.
Las tareas T1 y T2 utilizan la mquina M3, por tanto hay que imponer la disyuncin
exclusiva del inicio de ambas tareas en esta mquina. Para ello utilizamos la variable
binaria d2.
Las tareas T1 y T3 utilizan la mquina M4, por tanto hay que imponer la disyuncin
exclusiva del inicio de ambas tareas en esta mquina. Para ello utilizamos la variable
binaria d3.
Las tareas T3 y T2 utilizan la mquina M2, por tanto hay que imponer la disyuncin
exclusiva del inicio de ambas tareas en esta mquina. Para ello utilizamos la variable
bi i d4.
binaria
Funcinobjetivo
Mi i i
Minimizar
x14 5 t
x23 1 t
Para expresar la funcin de coste que minimiza el tiempo de finalizacin de todas las
tareas introducimos una nueva variable t y le imponemos que sea mayor que el tiempo
de finalizacin de las tres tareas (tiempo de inicio en la ltima mquina utilizada +
duracin en esa mquina). Despus minimizamos t.
x34 4 t
16
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
int
i
int
int
int
int
int
int
int
int
int
int
int
int
x11 in 0..100;
x13
13 in
i 0..100;
0 100
x14 in 0..100;
x21 in 0..100;
x22 in 0..100;
x23 in 0..100;
x32 in 0..100;
x34 in 0..100;
d1 in 0..1;
d2 in 0..1;
d3 in 0..1;
d4 in 0..1;
t in 0..100;
0 100;
M d l OPL
ModeloOPL
//solution(optimal)withobjective16
t=16;
x13=8;
x11=2;
x14=11;
x22 = 7;
x22=7;
x21=0;
x23=13;
x34=7;
x32=0;
d1=0;
d2=1;
d3=0;
d4=0;
minimize t;
subject to
{
x13 >= x11 + 4;
x22 >= x21 + 2;
x34 >= x32 + 7;
M1M3M4
T1
M1M2M3
T2
M2M4
T3
012345678910111213141516
x14 + 5 <= t;
x23 + 1 <= t;
x34 + 4 <=
< t;
}
17
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
C1
Ci
Variables de decisin :
1 si en el itinerario est el arco Ci C j
xij
j 1,..., n;
i = 1,..., n;
0 caso contrario
ui variables auxiliares para evitar sub itinerarios; i 2,3,..., n
i j
Cn
Deunaciudadseparteunasolavez
n
sujeto a :
x =1
i 1
ij
Aunaciudadsellegaunasolavez
x =1
j 1
i = 1,...n; i j
ij
j = 1,...n;
1 n; i j
Evitasubitinerariosdesconectados
Si xij 1 ui u j n n 1 ui 1 u j ui u j x ji 0
ui u j n xij n 1; i, j 2,3,..., n; i j
Minimizaladistanciadearuta
n
Minimizar L
i 1
d
j 1
x;
ij ij
i j
18
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
C1
C4
C2
C3
d12 2
d 23 4
d 21 3
d32 5
d13 6
d 24 2
d31 4
d 42 3
d14 4
d34 5
d 41 2
d 43 3
Solucin
Variables de decisin
i = 1,2,3, 4;
j 1,2,3,4;
i j
Deunaciudadseparteunasolavez
p
Aunaciudadsellegaunasolavez
Evitasubitinerariosdesconectados
u2 u3 4 x23 3
u3 u4 4 x34 3
u2 u4 4 x24 3
u4 u2 4 x42 3
u3 u2 4 x32 3
u4 u3 4 x43 3
Minimizaladistanciadearuta
Funcin objetivo
Minimizar z 2 x12 3x21 6 x13 4 x31 4 x14 2 x41 4 x23 5 x32 2 x24 3x42 5 x34 3x43
19
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
int
int
int
int
int
int
int
int
int
int
int
int
x12
x13
x14
x21
x31
x41
x23
x24
x32
x42
x34
x43
in
in
in
in
in
in
in
in
in
in
in
in
0..1;
0..1;
0..1;
0..1;
0..1;
0..1;
;
0..1;
0..1;
0..1;
0..1;
0..1;
0 1;
0..1;
ModeloOPL
//solution(optimal)withobjective11
x12=1;
x21=0;
x13=0;
x31=1;
x14=0;;
x41=0;
x23=0;
x32=0;
x24=1;
x42=0;
x34 0;
x34=0;
x43=1;
u2=0;
u3=2;
u4=1;
minimize
2*x12+3*x21+6*x13+4*x31+4*x14+2*x41+4*x23+
5*x32+2*x24+3*x42+5*x34+3*x43;
subject to
{
x12+x13+x14
x21+x23+x24
x31+x32+x34
x41+x42+x43
==
==
==
==
1;
1;
1;
1;
u2
2 <
<= u3
3 -4*x23+3;
4* 23+3
u2 <= u4 -4*x24+3;
u3 <= u2 -4*x32+3;
}
x21+x31+x41
x12+x32+x42
x13+x23+x43
x14+x24+x34
==
==
==
==
C1
C2
C4
C3
1;
1;
1;
1;
u3
3 <
<= u4
4 -4*x34+3;
4* 34+3
u4 <= u2 -4*x42+3;
u4 <= u3 -4*x43+3;
20
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
FuncionesconNvaloresposibles
Unafuncinquedebatomarunvalorvi entreN valoresposiblessepuedemodelarconlaayudadeN variablesbinariasyi.Enefecto,si
lafuncines:
f ( x1 , x2 ,..., xn ) v1
v2
... vN
Semodelaconelsiguienteconjuntoderestricciones:
N
f ( x1 , x2 ,..., xn ) vi yi
i 1
y
i 1
yi 0,1 ; i 1,...N
21
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Si 0 x u; con x, u Z
podemos
d
poner 2 N u 2 N 1 ; con N Z
N
Ejemplo
Maximizar z=x1 2 x2
sujeto a
x1 5
2 x1 3 x2 30
con x1 , x2 Z
x1 5
cota superior de x1 5 22 5 23 N 2 x1 y0 2 y1 4 y2
2 x1 3 x2 30
cota superior de x2 10 23 10 24 N 3 x2 y3 2 y4 4 y5 8 y6
Maximizar z=y0 2 y1 4 y2 y3 4 y4 8 y5 16 y6
sujeto a
y0 2 y1 4 y2 5
2y0 4 y1 8 y2 3 y3 6 y4 12 y5 24 y6 30
con yi 0,1
22
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema:
dvar
dvar
dvar
dvar
dvar
dvar
dvar
int
int
int
int
int
int
int
y0
y1
y2
y3
y4
y5
y6
in
in
in
in
in
in
in
0 1;
0..1;
0..1;
0..1;
0..1;
0..1;
0..1;
0..1;
ModeloOPL
(variablesbinarias)
maximize y0+2*y1+4*y2+y3+4*y4+8*y5+16*y6;
subject
j
to
{
y0+2*y1+4*y2<=5;
2*y0+4*y1+8*y2+3*y3+6*y4+12*y5+24*y6<=30;
};
//solution(optimal)withobjective20
y0=0;
y1=0;
1 0
y2=0;
y3=0;
y4=1;
y5=0;
y6=1;
x1 y0 2 y1 4 y2 0 2 0 4 0 0
x2 y3 2 y4 4 y5 8 y6 0 2 1 4 0 8 1 10
Paradeterminarlosvaloresenterosdelasvariables
dedecisinoriginalestenemosqueutilizarsus
expresionesentrminosdelasvariablesbinarias:
x1 y0 2 y1 4 y2
x2 y3 2 y4 4 y5 8 y6
23
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Expresindelproductodedosvariablesbinarias
Elproductodedosvariablesbinariasesuntrminonolinealyportantonosepuedeutilizardirectamenteenel
b1 b2
modeladodeun
problemadeprogramacinlineal.Sinembargopodemosexpresareseproductoentrminosderestriccioneslineales,sustituyendoel
y
productoporlavariablebinariajuntoalsiguienteconjuntoderestriccioneslineales:
y b1
b1 b2 y b2
y b b 1
1
2
b1 , b2 , y 0,1
Enefecto,lavariableintroducidadebecumplirlasiguientetablaenfuncindelasvariablesoriginales:
b1 b2
0
0
1
1
0
0
0
1
0
1
0
1
Tablacuyocumplimientovieneaseguradoporlasrestriccionesintroducidas:
y b1 Si b1 0 y 0
Aseguraelcumplimientodelasentradas1y2delatabla
y b2 Si b2 0 y 0
Aseguraelcumplimientodelasentradas1y3delatabla
y b1 b2 1 Si b1 1 b2 1 y 1 y 1
Aseguraelcumplimientodelasentradas4delatabla
24
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Expresindelproductodeunavariablebinariaporotracontinuanonegativa
Si una de las variables del producto es continua, tambin podemos expresarlo en trminos de restricciones lineales con variables binarias:
Siunadelasvariablesdelproductoescontinua,tambinpodemosexpresarloentrminosderestriccioneslinealesconvariables
b variable binaria
x variable continua con 0 x u cota superior de x
y
Podemossustituirelproductoporlavariablejuntoalsiguienteconjuntoderestricciones:
y ub
y x
b x
y x u (1 b)
y 0
con y variable continua
Enefecto,lavariableintroducidadebecumplirlasiguientetablaenfuncindelasvariablesoriginales:
b
0
1
x
x
0
x
Tablacuyocumplimientovieneaseguradoporlasrestriccionesintroducidas:
Aseguraelcumplimientodelaentrada1delatabla
y ub Si b 0 y 0
y 0;
y 0
y x u (1 b) y x u
Aseguraelcumplimientodelaentrada2delatabla
y x u (1 b) Si b 1 y x
y x;
y x
y ub y u
b = 1 anulaestarestriccinporqueyesmenorquelacotadex
25
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
barcos
C11 1
C12 1
Puerto1
Gasoducto1
Puerto2
B3 5
B3
C1 1
Gasoducto2
C15 100
g1 p1
p2 g 2
F1
F2
D1 1
C2 1
C3 1
G1 100
G2 100
d 21d 22 d 23 d 24 d 25
D2 1,5
C21 100
C22 100
C23 1
D3 1
C24 1
D4 1
D5 1
B2 4
B2
C13 100
C14 100
B1 3
D1
D2
D3
D4
D5
C25 1
26
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Modelo lineal
k 1
l 1
Variables de decisin :
sujeto a :
i 1 j 1
p1 B1 y1 B2 y2 B3 y3
Seminimizalasumadetodosloscostes
2
k 1
l 1
d15 d 25 D5
23
24
25
d11 d 21 D1
d12 d 22 D2
d13 d 23 D3
d14 d 24 D4
y1 d1 (1 b1 )
y1 0
y2 b2
g 2 p2 d 21 d 22 d 23 d 24 d 25
d14 d 24 D4
22
y1 d1
d13 d 23 D3
21
y1 b1
p2 b1 B1 (1 d1 ) b2 B2 (1 d 2 ) b3 B3 (1 d3 )
d12 d 22 D2
d15 d 25 D5
sujeto a :
p1 b1 B1d1 b2 B2 d 2 b3 B3 d3
d11 d 21 D1
b
di
di (1 bi )
0
y2 d 2
y2 d 2 (1 b2 )
y2 0
y3 b3
y3 d3
y3 d3 (1 b3 )
y3 0
27
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
M d l OPL
Modelo
//Variables
dvar int b1
dvar int b2
dvar int b3
de
in
in
in
decisin
0..1;
0 1;
0..1;
0..1;
float+
float+
float+
float+
float+
d11;
d12;
d13;
d14;
1
d15;
dvar
dvar
dvar
dvar
dvar
float+
float+
float+
float+
float+
d21;
d22;
d23;
d24;
d25;
//Funcin objetivo
minimize 1*d11 + 1*d12 +100*d13 +100*d14 +100*d15 +
100*d21 + 100*d22 +1*d23 +1*d24 +1*d25 +
1*b1 + 1*b2 +1*b3 +100*g1 +100*g2;
//Restricciones
subject to
{
p1==3*y1+4*y2+5*y3;
p1
3 y1+4 y2+5 y3;
p2==3*(b1-y1)+4*(b2-y2)+5*(b3-y3);
g1+p1==d11+d12+d13+d14+d15;
g2+p2==d21+d22+d23+d24+d25;
d11+d21==1;
d12+d22==1.5;
d13+d23==1;
d14+d24==1;
d15+d25==1;
y1<=b1;
y1<=d1;
y1>=d1-(1-b1);
y2<=b2;
y2<=d2;
y2>=d2-(1-b2);
y3<=b3;
y3<=d3;
y3>=d3-(1-b3);
}
//solution(optimal)withobjective
56.5
d11=1;
LaFactora1
suministraalas
d12=1.5;
demandas1y2
d13=0;
d14=0;
d15=0;
d21 =0;
d21
0;
d22=0;
d23=1;
LaFactora2
d24=1;
suministraalas
demandas3,4y5
d25=1;
b1=0;
b2 0
b2=0;
SeleccionabarcoB3
b3=1;
g1=0.5;
g2=0;
p1=2;
y1=0;
40% de B3 descarga
40%deB
descarga
y2=0;
enPuerto1,el60%
y3=0.4;
enPuerto2
p2=3;
d1=0;
d2=0;
d3 = 0 4;
d3=0.4;
28
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Variablesindicadoras:controldelaimposicindeunarestriccinlineal
De la misma manera que hemos utilizado variables binarias indicadoras del valor de una variable continua, podemos utilizarlas como
indicadoras del cumplimiento de una restriccin lineal. En efecto, veamos las 4 alternativas que se presentan segn el sentido de la
implicacin y del operador relacional de la restriccin:
n
d 1 ai xi b
i 1
a x Md M b
i 1
a x b
Si d = 1 nos queda
i i
siendo M ai xi b
i 1
a x
i 1
i i
b d 1
Si d = 0 nos queda
a xn M
i
i 1
ai xi (m e)d b e;
i 1
siendo m ai xi b
i 1
a x
ai xi m d m b
i 1
i 1
a x b
Si d = 1 nos queda
i 1
siendo m ai xi b
i 1
Si d = 0 nos queda
d
a xn m b
i 1
a x
i 1
i i
b d 1
a x (M e) d b e;
i 1
i i
que no restringe
ti
nada
d porque m
a x b
i 1
i i
i 1
d 1 ai xi b
i i
i 1
a x b
i 1
i i
siendo M ai xi b
i 1
a x
i 1
i i
29
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Representacindeoperadoreslgicos
Silarestriccinsecumplesiysolosi,esdecir,entoncespodemosescribirlassiguientesequivalenciasentrelas
Si
la restriccin Ri se cumple si y solo si i 1 , es decir Ri i 1 , entonces podemos escribir las siguientes equivalencias entre las
relacioneslgicasentrerestriccionesylasoperacionesalgebraicasentrelasvariablesindicadoras:
R1 R2 1 2 1
R1 R2 1 1 y 2 1
R1 1 0
R1 R2 1 2 0
1.
Utilizando las relaciones de la lgica proposicional podemos obtener la expresin algebraica de las
variables indicadoras correspondiente a cualquier expresin lgica entre restricciones.
2
2.
Se supone que las variables indicadoras ya han sido introducidas con las restricciones analizadas en el
punto anterior.
X 1 X 2 1 2 0
Ejemplo:conversindeunarelacinlgicaenrestriccin
Supongaquesequieregarantizarquesiyentonces.Siendox,
y, z variablesenteras,esdecir:
y z 1
x b y 1
( x b) ( x 1) ( y z 1)
( x b) ( x 1) ( 1) ( y z 1)
( x b) ( 1)
x M b
( x 1) ( 1)
x M 1
( 1) ( 1) ( 1)
( 1) ( y z 1)
1
y z m m 1
y z M M 1
( 1) ( y z 1)
donde : m y z 1; M y z 1
Ejemplo
Enuncasodeprogramacindeproduccin,sicualquieradelosproductosA
d
d
d
l
d l
d
A o B sefabrican,entonceshayquefabricarC,
f b
h
f b
C D,
D E
E.
( x A xB ) ( xC xD xE )
Sea i 1 se fabrica el producto i
Introducimos tal que : A B 1 1,
Adems :
Ejercicio
Una compaa est planificando la apertura de varias tiendas en una ciudad dividida en 7 distritos. Despus de un estudio se determinaron los 5
emplazamientos posibles para las tiendas. La siguiente tabla muestra : a) los distritos cubiertos por cada emplazamiento, b) los beneficios
esperados por cada tienda en los 5 emplazamientos, c) los costes de alquiler de los locales correspondientes a los 5 emplazamientos.
Distrito
1
2
3
4
5
6
7
Beneficio(*104 euros)
Costealquiler(*104 euros)
36
14
Emplazamiento
3
4
39
17
44
21
41
15
38
18
Determinar:
1) El emplazamiento de las tiendas que produce mayor beneficio de manera que cada distrito se cubra a lo sumo por una tienda.
2) El emplazamiento de las tiendas que minimice el coste de los alquileres aunque un distrito pueda cubrirse por ms de una tienda.
Ejercicio alternativo
Al igual que hicimos en el tema 1, los alumnos pueden optar por definir su propio problema de programacin entera con las siguientes fases:
1. Especificacin
ifi i de
d un problema
bl
reall que pueda
d resolverse
l
con un modelo
d l de
d programacin
i lineal
li
l entera (pura
(
o mixta).
i )
2. Diseo del modelo lineal entero correspondiente al problema especificado.
3. Expresin del modelo en OPL y ejecucin en el entorno de desarrollo.
31
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL