Anda di halaman 1dari 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
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

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

x1 = Instalar una factora en Zaragoza


x2 = Instalar
I
l una factora
f
en Sevilla
S ill
x3 = Construir un almacn en Zaragoza

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 = Construir un almacn en Sevilla


Restricciones
16 x1 13 x2 15 x3 12 x4 39

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;

Solucin optima: construir una factora


en Zaragoza y el almacn tambin en
Zaragoza, con un beneficio estimado de
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
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

xi = minutos mensuales consumidos con Ci


1 si xi 0
yi
0 caso contrario
i 1, 2,3

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:

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

xi nmero de vehculos a construir del tipo Ti ,

i 1,2,3

yi variable binaria auxiliar para expresar la disyuncin


Restricciones

x1 2400 y1
1000 x1 2400(1 y1 )
x2 2400 y2
1000 x2 2400(1 y2 )

Siy1 = 0 entoncesx1 = 0,luegonose


fabricanvehculosdeltipoT1.
Igualocurreparai=2 y 3
Siy1 = 1 entoncesx1 >= 1000,luegose
fabricanvehculosdeltipoT1.
Igualocurreparai=2 y 3

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:

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


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

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

Los objetos introducidos no deben sobrepasar el volumen de la


Losobjetosintroducidosnodebensobrepasarelvolumendela
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 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

Determinar el envo de valor mximo q


que no exceda el p
peso total de 41 kilos ni el volumen de 100 cm3.
Solucin
Variablesdedecisin

1 si se incluye el objeto i en el envo


xi
0 caso contraio
i = 1,2,3, 4,5, 6, 7

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.

Maximizar z 56 x1 71x2 69 x3 91x4 70 x5 85 x6 65 x7

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

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
T1
T2
T3

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

xij instante de inicio de la tarea Ti en la mquina M j ;

i = 1,2,3;

j 1,2,3,4

El inicio de la tarea T1 en la mquina M3 tiene que


comenzar cuando haya finalizado en la mquina M1, es
decir, a partir de 4 minutos despus del inicio en M1.
Anlogamente para las dems tareas.

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

La tarea T1 no debe durar ms de 16


minutos, es decir, el inicio en la ltima
mquina (M4) ms la duracin en esta
mquina (5) debe ser <= que 16.
Anlogamente para las dems tareas.

14

x34 x32 7

x34 4 x32 14

14

15
J.J.RUZ,INTRODUCCINALAPROGRAMACINMATEMTICA,MSTERUNIVERSITARIOENINGENIERADESISTEMASYDECONTROL

Solucin(continuacin)
Restriccionesdeordenacindelastareasenlasmismasmquinas

x21 2 x11 Md1


x11 4 x21 M (1 d1 )
x23 1 x13 Md 2
x13 3 x23 M (1 d 2 )
x34 4 x14 Md3
x14 5 x34 M (1 d3 )
x32 7 x22 Md 4
x22 6 x32 M (1 d 4 )

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

Problema 7: modelo OPL y resultados


dvar
d
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar

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;

x14 >= x13 + 3;


x23 >= x22 + 6;

M1M3M4

T1

x14 + 5 x11 <= 16;


x23 + 1 x21 <= 14;
x34 + 4 x32 <= 14;
x21 + 2 - x11 <= 100*d1;
100 d1;
x11 + 4 - x21 <= 100*(1-d1);
x23 + 1 - x13 <= 100*d2;
x13 + 3 - x23 <= 100*(1-d2);

M1M2M3

T2
M2M4

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

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

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

1 si en el itinerario est el arco Ci C j


xij
0 caso contrario
R ti i
Restricciones

i = 1,2,3, 4;

j 1,2,3,4;

i j

Deunaciudadseparteunasolavez
p
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
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar
dvar

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

dvar int u2 in 0..100;


dvar int u3 in 0..100;
dvar int u4 in 0..100;

//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

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
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)

dvar int x1 in 0..100;


0 100;
dvar int x2 in 0..100;
ModeloOPL
maximize x1+2*x2;
(variablesenteras)
subject to
{
x1<= 5;
x1<
2*x1+3*x2<=30;
};

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

// solution (optimal) with objective 20


//solution(optimal)withobjective20
x1=0;
x2=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

b = 0 anulaestarestriccinporque x-u essiempre0onegativo

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

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

barcos

C11 1
C12 1

Puerto1

Gasoducto1

Puerto2

B3 5

B3

C1 1

Gasoducto2

C15 100

g1 p1

p2 g 2

F1

F2

d11d12 d13 d14 d15

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 :

Minimizar z Cij dij bk Ck Gl g l

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


dij gas suministrado por la factora i al punto de demanda j; i = 1,2; j = 1,2,3,4,5

i 1 j 1

p1 B1 y1 B2 y2 B3 y3

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
1
1
11
12
13
14
15
di variables continuas 0,1 que fija porcentajes de descarga del barco Bi ; i = 1,2, 3 g p d d d d d
yi variables continuas para formular el producto bi d i ; i = 1,2, 3

Seminimizalasumadetodosloscostes
2

k 1

l 1

Minimizar z Cij dij bk Ck Gl gl


i 1 j 1

d15 d 25 D5

23

24

25

d11 d 21 D1
d12 d 22 D2
d13 d 23 D3
d14 d 24 D4

Los productos bi d i se linealizarn introduciendo yi


yi
y
i
bi di
yi
yi

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

g1 p1 d11 d12 d13 d14 d15

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;

dvar float+ d1 in 0..1;


dvar float+ d2 in 0..1;
dvar float+ d3 in 0..1;
dvar float+ y1;
dvar float+ y2;
dvar float+ y3;
dvar
dvar
dvar
dvar
dvar

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;

dvar float+ g1 in 0..1;


dvar float+ g2 in 0..1;
dvar float+ p1;
dvar float+ p2;

//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

es una cota inferior de

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

e = umbral a partir del cual consideramos


n

b que no restringe nada porque M

a x b

es una cota superior de

i 1

i i

siendo M ai xi b
i 1

e = umbral a partir del cual consideramos

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 :

que se puede modelar como : A B 2 0

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.
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

Anda mungkin juga menyukai