You are on page 1of 31

Tema2:Modeloslinealesdeoptimizacinconvariablesenteras.

Objetivos del tema:

Introducir la programacin lineal entera y los dominios de aplicacin.

Aprender a formular el modelo de un problema de programacin lineal entera.

Modelar relaciones lgicas entre restricciones con variables binarias

Expresar un problema entero general como un problema binario

Modelar matemticamente y resolver en OPL varios problemas tpicos de programacin lineal entera

Expresar algunos comportamientos no lineales como problemas enteros

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
x1 2 x2 5 problemaentero
p

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
2
Dominios de aplicacin de la Programacin Entera
DominiosdeaplicacindelaProgramacinEntera

Laprogramacinenteraresultadeintersenelmodeladodelossiguientesdominiosdeaplicacin:

Aplicacionesconentradaysalidadedatosdiscretos

Se trata de las aplicaciones en las que la programacin entera se hace ms evidente. Surgen cuando se quieren modelar plantas
que fabrican productos con valor aadido muy alto y en un nmero de unidades entero y relativamente pequeo, por ejemplo,
vehculos de transporte, equipos electrnicos de alta tecnologa, etc. Por el contrario, si los valores enteros que se manejan en
estos problemas son elevados, podran resolverse como si fuesen de programacin lineal continua y posteriormente redondear la
solucin.

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 dvar int x1 in 0..1;


xi i = 1,2,3,4
1234 dvar int x2 in 0..1;
0 si no se elije dvar int x3 in 0..1;
dvar int x4 in 0..1;
Restricciones Lasumadeloscostesdelasinversionesnodebe
rebasarlacantidadtotaldisponible.
maximize 16*x1+22*x2+12*x3+8*x4;

5 x1 7 x2 4 x3 3x4 14 subject to
xi 0,1 ,
{
i 1, 2,3, 4 5*x1+7*x2+4*x3+3*x4 <= 14;
}
Funcinobjetivo
//solution(optimal)withobjective42
Hayquemaximizarelbeneficiototaldetodaslas
x1=0;
inversiones Luegolasinversionessegunda,tercera
x2=1;
x3=1; ycuartaproducenelmximobeneficio
de42.000euros
Maximizar z 16 x1 22 x2 12 x3 8 x4 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 Beneficio estimado Capital requerido
Instalar una factora en Zaragoza 19 M euros 16 M euros
Instalar una factora en Sevilla 15 M euros 13 M euros
Construir un almacn en Zaragoza 16 M euros 15 M euros
Construir un almacn en Sevilla 14 M euros 12 M euros

Solucin
dvar int x1 in 0..1;
ModeloOPL
dvar int x2 in 0..1;
Variablesdedecisin dvar int x3 in 0..1;
x1 = Instalar una factora en Zaragoza dvar int x4 in 0..1;

x2 = Instalar
I l una factora
f en Sevilla
S ill 1 sii la
l decisin
d i i i es s maximize 19*x1+15*x2+16*x3+14*x4;
xi =
x3 = Construir un almacn en Zaragoza 0 si la decisin i es no
subject to
x4 = Construir un almacn en Sevilla {
16*x1+13*x2+15*x3+12*x4 <= 29;
Restricciones Elconjuntodedecisionesqueseadoptenodebe
El conjunto de decisiones que se adopte no debe x3+x4 <= 1;
rebasarelpresupuestodeinversindisponible x3 <= x1;
16 x1 13 x2 15 x3 12 x4 39 x4 <= x2;
Sedebeconstruiralosumounalmacn
x3 x4 1 }
ElalmacnenZaragozaslosepuedeconstruirsi
x3 x1 seinstalaunafactoraenZaragoza //solution(optimal)withobjective35
x4 x2 ElalmacnenSevillaslosepuedeconstruirsise
x1=1; Solucin optima: construir una factora
instalaunafactoraenSevilla
x2=0; en Zaragoza y el almacn tambin en
Hayquemaximizarelbeneficiototaldetodaslas x3=1; Zaragoza, con un beneficio estimado de
Funcinobjetivo decisionesdeinversin x4=0; 35 M euros.

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
dado ppor: Costetotal

C1
Si x 0 coste total 0
Si x 0 coste total C1 x C2

C2
La grfica de la derecha recoge el comportamiento de estas funciones de coste.
x
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 dvar float+ x1;


ModeloOPL
dvar float+ x2;
Variablesdedecisin dvar float+ x3;
dvar int y1 in 0..1;
xi = minutos mensuales consumidos con Ci dvar int y2 in 0..1;
1 si xi 0 dvar int y3 in 0..1;
yi
0 caso contrario minimize
i i i 0.25*x1+0.21*x2+0.22*x3+
0 25* 1 0 21* 2 0 22* 3
i 1, 2,3 16*y1+25*y2+18*y3;

subject to
200esunacotasuperiordelastresvariablesde
{
Restricciones decisincontinuasxi
x1+x2+x3==200;
x1 200 y1 0 x1-200*y1 <= 0;
x2-200*y2 <= 0;
x2 200 y2 0 x3-200*y3 <= 0;
x3 200 y3 0 }

x1 , x2 , x3 0 //solution(optimal)withobjective62
// solution (optimal) with objective 62
y1 , y2 , y3 0,1 x1=0;
x2=0;
Solucin optima: contratar con la
Hayqueminimizarelcostetotaldelafactura x3=200;
Funcinobjetivo compaa C3, resultando una
y1=0; factura mensual de 62 euros.
y2=0;
Minimizar z 0,
0 25 x1 00, 21x2 00, 22 x3 16 y1 25 y2 18 y3 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.

S l i
Solucin dvar
d i t
int x1
1 in
i 0..1;
0 1
dvar int x2 in 0..1; ModeloOPL
Variablesdedecisin dvar int x3 in 0..1;
dvar int x4 in 0..1;
1 si se elige la ciudad i
xi i = 1,2,3,4,5,6 dvar int x5 in 0..1;
0 si no se elije dvar int x6 in 0..1;
minimize x1+x2+x3+x4+x5+x6;
Restricciones
subject to
x1 x2 1 C1 C2 C3 C4 C5 C6
{
C1 0 10 20 30 30 20
x1 x2 x6 1 x1+x2 >=1;
C2 10 0 25 35 20 10 x1+x2+x6 >=1;
;
x3 x4 1 C3 20 25 0 15 30 20 x3+x4 >=1;
x3+x4+x5 >=1;
x3 x4 x5 1 C4 30 35 15 0 15 25
x4+x5+x6 >=1;
x4 x5 x6 1 C5 30 20 30 15 0 14 x2+x5+x6 >=1;
}
x2 x5 x6 1 C6 20 10 20 25 14 0

Paracadaciudadhayqueimponerelrecubrimientoconel //solution(optimal)withobjective2
restodeciudadesqueseencuentrana15omenosminutos x1=0;
deella(coloreadasyenlamismafiladelatabla) x2=1;
x3=0; Solucin optima: construir
Funcindecoste Elnmerodeestacionesdebomberosdebesermnimo x4=1; dos estaciones de bomberos
x5=0; en las ciudades C2 y C4
Minimizarz x1 x2 x3 x4 x5 x6 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:
Si M es una cota superior de x1 2 x2 2 x3 -30
entonces x1 2 x2 2 x3 30+M 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 Si y = 1 seanulaestarestriccin,siy
Siy se anula esta restriccin, si y = 0 seimpone
se impone

2 x1 x2 2 x3 45 M ' (1 y ) Siy = 1 seimponeestarestriccin,siy = 0 seanula


x1 , x2 , x3 0
y 0,1 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
i 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 T1 T2 T3 Disponibilidad
Material 1500kilos 3000kilos 5000kilos 6000000kilos
Trabajo 30horas 25horas 40horas 60000horas
Beneficios 2000 euros
2000euros 3000 euros 4000 euros
4000euros

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.

Solucin 2.400esunacotadelnmerodevehculosquesepueden
d l d h l d
dvar float+ x1;
construirimpuestaporlashorasdisponibles:60.000/25=2.400. ModeloOPL
Variablesdedecisin dvar float+ x2;
Loskilosdisponiblesimponenunacotamenosrestrictiva,4.000
dvar float+ x3;
Sepodanhaber
xi nmero de vehculos a construir del tipo Ti , i 1,2,3 dvar int y1 in 0..1;
usadovariables
dvar int y2 in 0..1;
yi variable binaria auxiliar para expresar la disyuncin dvar int y3 in 0..1; int
Restricciones maximize 2*x1+3*x2+4*x3;
Siy1 = 0 entoncesx1 = 0,luegonose
fabricanvehculosdeltipoT1. subject to
x1 2400 y1 Igualocurreparai=2 y 3 {
1000 x1 2400(1 y1 ) x1 <= 2400 * y1;
1000 - x1 <= 2400 * (1 - y1);
Siy1 = 1 entoncesx1 >= 1000,luegose
x2 2400 y2 fabricanvehculosdeltipoT1. x2 <= 2400 * y2;
1000 - x2 <= 2400 * (1 - y2);
1000 x2 2400(1 y2 ) Igualocurreparai=2 y 3
x3 <= 2400 * y3;
x3 2400 y3 1000 - x3 <= 2400 * (1 - y3);
1.5*x1+3*x2+5*x3 <= 6000;
1000 x3 2400(1 y3 ) Loskilosdematerialconsumidonodebe 30*x1+25*x2+40*x3 <= 60000;
sobrepasar los kilos disponibles
sobrepasarloskilosdisponibles }
1,5 x1 3 x2 5 x3 6000
30 x1 25 x2 40 x3 60000 Lashorasdetrabajoconsumidasnodebe
//solution(optimal)withobjective6000
sobrepasarloshorasdisponibles x1=0;
x2=2000;
Funcindecoste Hayquemaximizarelbeneficiototal x3=0; Solucin optima: construir 2000
y1 =0;
y1 0;
vehculos
h l d tipo
de ti T2 con un
Maximizar z 2 x1 3x2 4 x3 y2=1;
y3=0; beneficio de 6.000.000

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
utilidad total q
que obtiene,, p
pero sin rebasar la capacidad
p de la mochila.

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:

1 si se elige el objeto i para introducir en la mochila


Variablesdedecisin : xi
0 caso contraio
i = 1,2,...,n

n Semaximizalautilidadtotaldelosobjetosintroducidosenla
Se maximiza la utilidad total de los objetos introducidos en la
Maximizar z ui xi
i 1
mochila,queeslasumadelasutilidadesdecadaobjeto

sujeto a :
n
Los objetos introducidos no deben sobrepasar el volumen de la
Losobjetosintroducidosnodebensobrepasarelvolumendela

v x
i 1
i i b mochila

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 lal 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 p

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 Valor(euros) Peso(kilos) Volumen(cm3)


1 56 7 21
2 71 11 16
3 69 4 17
4 91 14 28
5 70 9 12
6 85 2 31
7 65 12 19

Determinar el envo de valor mximo q peso total de 41 kilos ni el volumen de 100 cm3.
que no exceda el p

Solucin dvar int x1 in 0..1;


dvar int x2 in 0..1; ModeloOPL
Variablesdedecisin
dvar int x3 in 0..1;
1 si se incluye el objeto i en el envo dvar int x4 in 0..1;
xi dvar int x5 in 0..1;
0 caso contraio dvar int x6 in 0..1;
i = 1,2,3, 4,5, 6, 7 dvar int x7 in 0..1;
Losobjetosintroducidosnodeben
sobrepasarelpesodelamochila maximize 56*x1+71*x2+69*x3+91*x4+70*x5+85*x6+65*x7;
subject
j to
Losobjetosintroducidosnodeben {
Restricciones sobrepasarelvolumendelamochila
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;
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 //solution(optimal)withobjective360


// solution (optimal) with objective 360
x1=0;
Semaximizaelvalortotaldelos x2=1;
objetosintroducidosenlamochila. x3=1;
Funcindecoste 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
Maximizar z 56 x1 71x2 69 x3 91x4 70 x5 85 x6 65 x7 x6=1;
x7=1;

14
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 7: asignacin de tareas a mquinas
Una fbrica realiza 3 tareas diferentes asociadas a la elaboracin de otros tantos productos.
productos La fbrica dispone de 4 mquinas que son
utilizadas para la realizacin de las tareas. En la siguiente tabla aparece la secuencia de mquinas que utiliza cada tarea y el tiempo en
minutos que la tarea ocupa en la correspondiente mquina. Tambin aparece en la ltima columna el tiempo mximo que puede durar una
tarea, desde que empieza hasta que termina. Cada mquina slo puede realizar una tarea simultneamente.
Tarea Sucesin demquinas(tiempodeocupacindelamquina) Tiempomximoportarea
T1 M1(4)M3(3)M4(5) 16
T2 M1(2)M2(6)M3(1) 14
T3 M2(7)M4(4) 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 El inicio de la tarea T1 en la mquina M3 tiene que


Variablesdedecisin comenzar cuando haya finalizado en la mquina M1, es
decir, a partir de 4 minutos despus del inicio en M1.
xij instante de inicio de la tarea Ti en la mquina M j ; i = 1,2,3; j 1,2,3,4 Anlogamente para las dems tareas.

La tarea T1 no debe durar ms de 16


Restriccionesdesecuenciacindecadatareaenlasmquinas minutos, es decir, el inicio en la ltima
mquina (M4) ms la duracin en esta
mquina (5) debe ser <= que 16.
M1
4
M3
3
M4
5 x13 x11 4 x14 x13 3 x14 5 x11 16 Anlogamente para las dems tareas.
T1

x1 1 x1 3 x1 4 16

M1 M2 M3
T2 2 6 1 x22 x21 2 x23 x22 6 x23 1 x21 14
x 21 x 22 x 23 14

M2 M4
T3 7 4
x34 x32 7 x34 4 x32 14
x32 x34 14

15
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Solucin(continuacin)
Restriccionesdeordenacindelastareasenlasmismasmquinas

x21 2 x11 Md1 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
x11 4 x21 M (1 d1 ) binaria d1.

x23 1 x13 Md 2 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
x13 3 x23 M (1 d 2 ) binaria d2.

Las tareas T1 y T3 utilizan la mquina M4, por tanto hay que imponer la disyuncin
x34 4 x14 Md3 exclusiva del inicio de ambas tareas en esta mquina. Para ello utilizamos la variable
x14 5 x34 M (1 d3 ) binaria d3.

Las tareas T3 y T2 utilizan la mquina M2, por tanto hay que imponer la disyuncin
x32 7 x22 Md 4 exclusiva del inicio de ambas tareas en esta mquina. Para ello utilizamos la variable
bi i d4.
binaria
x22 6 x32 M (1 d 4 )

Funcinobjetivo

Mi i i
Minimizar 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
x14 5 t de finalizacin de las tres tareas (tiempo de inicio en la ltima mquina utilizada +
duracin en esa mquina). Despus minimizamos t.
x23 1 t
x34 4 t

16
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 7: modelo OPL y resultados
dvar int x11 in 0..100;
d
dvar i
int x13
13 in
i 0..100;
0 100 M d l OPL
ModeloOPL
//solution(optimal)withobjective16
dvar int x14 in 0..100;
t=16;
dvar int x21 in 0..100;
x13=8;
dvar int x22 in 0..100;
x11=2;
dvar int x23 in 0..100;
x14=11;
dvar int x32 in 0..100;
x22 = 7;
x22=7;
dvar int x34 in 0..100;
x21=0;
dvar int d1 in 0..1;
x23=13;
dvar int d2 in 0..1;
x34=7;
dvar int d3 in 0..1;
x32=0;
dvar int d4 in 0..1;
d1=0;
dvar int t in 0..100;
0 100;
d2=1;
minimize t; d3=0;
subject to d4=0;
{
x13 >= x11 + 4; x14 >= x13 + 3;
x22 >= x21 + 2; x23 >= x22 + 6; M1M3M4
x34 >= x32 + 7; T1
x14 + 5 x11 <= 16;
x23 + 1 x21 <= 14;
x34 + 4 x32 <= 14; M1M2M3
x21 + 2 - x11 <= 100*d1;
100 d1; T2
x11 + 4 - x21 <= 100*(1-d1);
x23 + 1 - x13 <= 100*d2; M2M4
x13 + 3 - x23 <= 100*(1-d2);
T3
x34 + 4 - x14 <= 100*d3;
x14 + 5 - x34 <=
< 100*(1-d3);
100 (1 d3);
x32 + 7 - x22 <= 100*d4;
x22 + 6 - x32 <= 100*(1-d4); 012345678910111213141516
x14 + 5 <= t;
x23 + 1 <= t;
x34 + 4 <=
< t;
}

17
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema del viajante

Sobre una red de carreteras que conecta n ciudades C1, ,Ci, , Cn hay que determinar el itinerario de mnima distancia que partiendo
de una ciudad pasa una sola vez por todas y cada una de las ciudades volviendo a la ciudad inicial.

C1 Ci Variables de decisin :

1 si en el itinerario est el arco Ci C j


xij i = 1,..., n; j 1,..., n; i j
0 caso contrario
ui variables auxiliares para evitar sub itinerarios; i 2,3,..., n

Cn

Deunaciudadseparteunasolavez
n
sujeto a : x =1
i 1
ij i = 1,...n; i j
Aunaciudadsellegaunasolavez

x =1
j 1
ij 1 n; i j
j = 1,...n;
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 n
Minimizar L d x;
ij ij i j
i 1 j 1

18
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema 8: recorrido del viajante
Sobre una red de carreteras que conecta varias ciudades hay que determinar el itinerario de mnima distancia que partiendo de una ciudad
pasa una sola vez por todas y cada una de ciudades volviendo a la ciudad inicial. Las distancias entre ciudades son las siguientes:

C1 C2
d12 2 d 23 4
d 21 3 d32 5
d13 6 d 24 2
d31 4 d 42 3
C4 C3 d14 4 d34 5
d 41 2 d 43 3

Solucin
Variables de decisin

1 si en el itinerario est el arco Ci C j
xij i = 1,2,3, 4; j 1,2,3,4; i j
0 caso contrario
Deunaciudadseparteunasolavez
p
R ti i
Restricciones
Aunaciudadsellegaunasolavez Evitasubitinerariosdesconectados

x12 x13 x14 1 x21 x31 x41 1


x21 x23 x24 1 x12 x32 x42 1 u2 u3 4 x23 3 u3 u4 4 x34 3
x31 x32 x34 1 x13 x23 x43 1 u2 u4 4 x24 3 u4 u2 4 x42 3
x41 x42 x43 1 x14 x24 x34 1 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
Problema 8: modelo OPL
dvar int x12 in 0..1; //solution(optimal)withobjective11
dvar int x13 in 0..1; ModeloOPL x12=1;
dvar int x14 in 0..1; x21=0;
dvar int x21 in 0..1; x13=0;
dvar int x31 in 0..1; x31=1;
dvar int x41 in 0..1;
; x14=0;;
dvar int x23 in 0..1; x41=0;
dvar int x24 in 0..1; x23=0;
dvar int x32 in 0..1; x32=0;
dvar int x42 in 0..1; x24=1;
dvar int x34 in 0..1; x42=0;
dvar int x43 in 0 1;
0..1; x34 0;
x34=0;
x43=1;
dvar int u2 in 0..100; u2=0;
dvar int u3 in 0..100; u3=2;
dvar int u4 in 0..100; 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;
C1 C2
subject to
{
x12+x13+x14 == 1; x21+x31+x41 == 1;
x21+x23+x24 == 1; x12+x32+x42 == 1;
x31+x32+x34 == 1; x13+x23+x43 == 1;
x41+x42+x43 == 1; x14+x24+x34 == 1;
C4 C3

u2
2 <
<= u3
3 -4*x23+3;
4* 23+3 u3
3 <
<= u4
4 -4*x34+3;
4* 34+3
u2 <= u4 -4*x24+3; u4 <= u2 -4*x42+3;
u3 <= u2 -4*x32+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
N

y
i 1
i 1

yi 0,1 ; i 1,...N

21
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Conversin de variables enteras en binarias
Como tendremos ocasin de estudiar en el tema 6 los algoritmos que resuelven problemas enteros binarios puros son ms
eficientes que los que involucran variables enteras en general. Por ello resulta interesante convertir variables enteras acotadas en
variables binarias.
Si 0 x u; con x, u Z
podemos
d poner 2 N u 2 N 1 ; con N Z
N
y la representacin binaria de x ser: x 2i yi ; con yi variables binarias
i 0

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 int y0 in 0 1;
0..1; dvar int x1 in 0..100;
0 100;
dvar int y1 in 0..1; dvar int x2 in 0..100;
dvar int y2 in 0..1; ModeloOPL maximize x1+2*x2; ModeloOPL
dvar int y3 in 0..1; (variablesbinarias) subject to (variablesenteras)
dvar int y4 in 0..1; {
dvar int y5 in 0..1; x1<= 5;
x1<
dvar int y6 in 0..1; 2*x1+3*x2<=30;
};
maximize y0+2*y1+4*y2+y3+4*y4+8*y5+16*y6;

subject
j to // solution (optimal) with objective 20
//solution(optimal)withobjective20
{
y0+2*y1+4*y2<=5;
x1=0;
2*y0+4*y1+8*y2+3*y3+6*y4+12*y5+24*y6<=30;
}; x2=10;

//solution(optimal)withobjective20 Paradeterminarlosvaloresenterosdelasvariables
dedecisinoriginalestenemosqueutilizarsus
y0=0; expresionesentrminosdelasvariablesbinarias:

y1=0;
1 0 x1 y0 2 y1 4 y2
y2=0; x1 y0 2 y1 4 y2 0 2 0 4 0 0 x2 y3 2 y4 4 y5 8 y6
y3=0;
x2 y3 2 y4 4 y5 8 y6 0 2 1 4 0 8 1 10
y4=1;
y5=0;
y6=1;

23
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Expresindelproductodedosvariablesbinarias

b1 b2
Elproductodedosvariablesbinariasesuntrminonolinealyportantonosepuedeutilizardirectamenteenel 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 y
0 0 0
0 1 0
1 0 0
1 1 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 x y
0 x 0
1 x x

Tablacuyocumplimientovieneaseguradoporlasrestriccionesintroducidas:
Aseguraelcumplimientodelaentrada1delatabla

y ub Si b 0 y 0 b = 0 anulaestarestriccinporque x-u essiempre0onegativo


y 0; y x u (1 b) y x u
y 0
Aseguraelcumplimientodelaentrada2delatabla

y x u (1 b) Si b 1 y x
y x; y ub y u b = 1 anulaestarestriccinporqueyesmenorquelacotadex
y x

25
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Problema: barcos a doble puerto
Dos factoras de gas F1 y F2 son suministradas desde gasoductos y barcos. Para un mes determinado existen tres barcos alternativos para
suministrar gas con capacidades B1, B2, B3 y costes respectivos del gas y transporte C1, C2, C3. Los barcos pueden descargar a doble
puerto, es decir, dejar parte de la carga en el Puerto1 y el resto en el Puerto2. Las factoras suministran gas a cinco puntos con demandas
D1,D2,D3,D4,D5 respectivamente, siendo Cij el coste de suministrar desde la factora i la demanda j. El coste unitario del gas procedente de
gasoductos es G1 y G2 respectivamente. Se trata de determinar la cantidad de gas suministrada por gasoducto y barco a las factoras as
como las cantidades transportadas desde las factoras a los puntos de demanda de manera que el coste total de suministro sea mnimo. En
la siguiente figura aparecen los valores de las demandas, coste de transporte unitario de factoras a puntos de demanda, el coste unitario
del gas procedente de gasoductos, y el coste de los barcos y sus capacidades. En el caso de suministro con barco a doble puerto habr que
determinar tambin la cantidad que descarga en cada puerto.
B1 3
B1
B2 4
barcos
B2 B3 5

C11 1 B3 C1 1
C12 1 C2 1
Gasoducto1 Puerto1 Puerto2 Gasoducto2
C13 100 C3 1
C14 100 G1 100
g1 p1 p2 g 2
C15 100 G2 100
F1 F2
C21 100
D1 1 d11d12 d13 d14 d15 d 21d 22 d 23 d 24 d 25
C22 100
D2 1,5
C23 1
D3 1
C24 1
D4 1
C25 1
D5 1 D1 D2 D3 D4 D5

26
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Modelo lineal 2 5 3 2

Variables de decisin : Minimizar z Cij dij bk Ck Gl g l


i 1 j 1 k 1 l 1
gi cantidad de gas suministrado por el gasoducto i; i = 1,2
sujeto a :
pi cantidad de gas suministrado por el puerto i; i = 1,2
p1 B1 y1 B2 y2 B3 y3
dij gas suministrado por la factora i al punto de demanda j; i = 1,2; j = 1,2,3,4,5
p2 B1 (b1 y1 ) B2 (b2 y2 ) B3 (b3 y3 )
bi variables binarias que determinan con valor 1 la seleccin del barco Bi ; i = 1,2, 3 g p d d d d d
di variables continuas 0,1 que fija porcentajes de descarga del barco Bi ; i = 1,2, 3 g p d d d d d
1 1 11 12 13 14 15

2 2 21 22 23 24 25
yi variables continuas para formular el producto bi d i ; i = 1,2, 3 d11 d 21 D1
d12 d 22 D2
Seminimizalasumadetodosloscostes
2 5 3 2 d13 d 23 D3
Minimizar z Cij dij bk Ck Gl gl d14 d 24 D4
i 1 j 1 k 1 l 1
d15 d 25 D5

sujeto a : y1 b1
p1 b1 B1d1 b2 B2 d 2 b3 B3 d3 y1 d1
p2 b1 B1 (1 d1 ) b2 B2 (1 d 2 ) b3 B3 (1 d3 ) y1 d1 (1 b1 )
g1 p1 d11 d12 d13 d14 d15 y1 0

g 2 p2 d 21 d 22 d 23 d 24 d 25 y2 b2

d11 d 21 D1 y2 d 2
Los productos bi d i se linealizarn introduciendo yi y2 d 2 (1 b2 )
d12 d 22 D2
d13 d 23 D3 y2 0
yi b y3 b3
d14 d 24 D4 y
i di y3 d3
d15 d 25 D5 bi di
yi di (1 bi ) y3 d3 (1 b3 )
yi 0 y3 0

27
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
M d l OPL
Modelo

//Variables de decisin //Funcin objetivo //solution(optimal)withobjective


dvar int b1 in 0..1; minimize 1*d11 + 1*d12 +100*d13 +100*d14 +100*d15 + 56.5
dvar int b2 in 0 1;
0..1; 100*d21 + 100*d22 +1*d23 +1*d24 +1*d25 + d11=1; LaFactora1
dvar int b3 in 0..1; 1*b1 + 1*b2 +1*b3 +100*g1 +100*g2;
d12=1.5; suministraalas
dvar float+ d1 in 0..1; d13=0; demandas1y2
//Restricciones
dvar float+ d2 in 0..1;
subject to d14=0;
dvar float+ d3 in 0..1; d15=0;
{
dvar float+ y1; p1==3*y1+4*y2+5*y3;
p1 3 y1+4 y2+5 y3; d21 =0;
d21 0;
dvar float+ y2; p2==3*(b1-y1)+4*(b2-y2)+5*(b3-y3); d22=0;
dvar float+ y3; g1+p1==d11+d12+d13+d14+d15; d23=1; LaFactora2
g2+p2==d21+d22+d23+d24+d25; d24=1; suministraalas
dvar float+ d11; d11+d21==1;
dvar float+ d12; d25=1; demandas3,4y5
d12+d22==1.5;
dvar float+ d13; b1=0;
d13+d23==1;
dvar float+ d14;
1 d14+d24==1;
b2 0
b2=0; SeleccionabarcoB3
dvar float+ d15; d15+d25==1; b3=1;
dvar float+ d21; y1<=b1; g1=0.5;
dvar float+ d22; y1<=d1; g2=0;
dvar float+ d23; y1>=d1-(1-b1); p1=2;
dvar float+ d24; y2<=b2; y1=0;
y2<=d2; 40% de B3 descarga
40%deB descarga
dvar float+ d25; y2=0;
y2>=d2-(1-b2); enPuerto1,el60%
dvar float+ g1 in 0..1;
y3=0.4; enPuerto2
y3<=b3;
dvar float+ g2 in 0..1; p2=3;
y3<=d3;
y3>=d3-(1-b3);
d1=0;
dvar float+ p1; d2=0;
dvar float+ p2;
} 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:

Si d = 1 nos queda
n a x b
a x Md M b
i i
i 1
n i i

d 1 ai xi b
n

a xn M
i 1
Si d = 0 nos queda i i b que no restringe nada porque M
n
siendo M ai xi b
i 1 i 1

i 1
es una cota superior de a x b
i 1
i i

n n

n ai xi (m e)d b e; siendo m ai xi b
a x i i b d 1
i 1 i 1
n
i 1
e = umbral a partir del cual consideramos a x
i 1
i i b

n n

ai xi m d m b Si d = 1 nos queda
a x b i i
i 1
i 1
n n

d 1 ai xi b
n
siendo m ai xi b
Si d = 0 nos queda
d a xn m b
i 1
i i
que no restringe
ti nada
d porque m
i 1
i 1 es una cota inferior de a x b
i 1
i i

n n
n a x (M e) d b e; siendo M ai xi b
a x
i i
i i b d 1 i 1 i 1
i 1 n
e = umbral a partir del cual consideramos a x
i 1
i i b

29
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
Representacindeoperadoreslgicos

la restriccin Ri se cumple si y solo si i 1 , es decir Ri i 1 , entonces podemos escribir las siguientes equivalencias entre las
Silarestriccinsecumplesiysolosi,esdecir,entoncespodemosescribirlassiguientesequivalenciasentrelas
Si
relacioneslgicasentrerestriccionesylasoperacionesalgebraicasentrelasvariablesindicadoras:
R1 R2 1 2 1
1. Utilizando las relaciones de la lgica proposicional podemos obtener la expresin algebraica de las
R1 R2 1 1 y 2 1 variables indicadoras correspondiente a cualquier expresin lgica entre restricciones.

R1 1 0 2
2. Se supone que las variables indicadoras ya han sido introducidas con las restricciones analizadas en el
R1 R2 1 2 0 punto anterior.

X 1 X 2 1 2 0
Ejemplo:conversindeunarelacinlgicaenrestriccin

x b y 1 y z 1
Supongaquesequieregarantizarquesiyentonces.Siendox, y, z variablesenteras,esdecir:
( x b) ( y 1) ( y z 1)

( x b) ( y 1) ( 1) ( y z 1)

( x b) ( 1) x M b
( y 1) ( 1) y M 1 donde : m y z 1; M y z 1
( 1) ( 1) ( 1) 1
( 1) ( y z 1) y z m m 1
( 1) ( y z 1) y z M M 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, que se puede modelar como : A B 2 0
Adems : 1 C D E 1, que se puede modelar como : C D E 0

30
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL
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.

Emplazamiento
Distrito
1 2 3 4 5
1
2
3
4
5
6
7
Beneficio(*104 euros) 36 39 44 41 38
Costealquiler(*104 euros) 14 17 21 15 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

You might also like