Está en la página 1de 67

Modelado de problemas de

Modelado de problemas de
optimizaci
optimizaci

n lineales
n lineales
Alberto Campos Alberto Campos
Modelado en Programacin Lineal Entera Mixta - 1
Optimizacin y clasificacin de modelos
Problemas MILP caractersticos:
Dieta, transporte, trasbordo y asignacin (lineales continuos)
Mochila, recubrimiento, particin, empaquetado y viajante
(lineales enteros)
Modelado con variables enteras y binarias:
Modelado de restricciones especiales (disyunciones).
Modelado de implicaciones lgicas.
Modelado de dobles implicaciones.
Contenido
Contenido
Modelado en Programacin Lineal Entera Mixta - 2
Optimizaci
Optimizaci

n
n
Optimizaci Optimizaci n n: : Determinaci Determinaci n de una alternativa de decisi n de una alternativa de decisi n con la n con la
propiedad de ser mejor que cualquier otra en alg propiedad de ser mejor que cualquier otra en alg n sentido a n sentido a
precisar precisar
Elementos de un problema de optimizaci Elementos de un problema de optimizaci n: n:
Funcin objetivo: Medida cuantitativa del funcionamiento del
sistema que se desea optimizar (maximizar o minimizar)
Variables: Representan las decisiones que se pueden tomar
para afectar el valor de la funcin objetivo.
Restricciones: Representan el conjunto de relaciones
(ecuaciones e inecuaciones) que las variables estn obligadas
a cumplir
Resolver: Resolver: Encontrar valor de las variables que optimiza la funci Encontrar valor de las variables que optimiza la funci n n
objetivo y satisface todas las restricciones. objetivo y satisface todas las restricciones.
Modelado en Programacin Lineal Entera Mixta - 3
I. Investigaci
I. Investigaci

n operativa y optimizaci
n operativa y optimizaci

n
n
Clasificaci Clasificaci n de modelos de optimizaci n de modelos de optimizaci n n
PROGRAMACIN
LINEAL (CONTINUA)
(LINEAR
PROGRAMMING)
LP

PROGRAMACIN LINEAL
ENTERA MIXTA
(MIXED LINEAR INTEGER
PROGRAMMING)
MLIP
PROGRAMACIN
NO LINEAL
(NON LINEAR
PROGRAMMING)
NLP
min
0
,
,
T
x
n n
m n m
c x
Ax b
x
x c
A b






min
, 0
,
,
, ,
T T
x
n l
n l
m n m l m
c x d y
Ax By b
x y
x y Z
c d
A B b

+
+ =




min ( )
( ) 0
( ) 0
:
, :
x
n
n m
f x
g x
h x
l x u
f
g h
=





A analizar en este curso junto con PLIP y BLIP
(entero puro y entero binario)
Modelado en Programacin Lineal Entera Mixta - 4
Optimizacin y clasificacin de modelos
Problemas MILP caractersticos:
Dieta, transporte, trasbordo y asignacin (lineales continuos)
Mochila, recubrimiento, particin, empaquetado y viajante
(lineales enteros)
Modelado con variables enteras y binarias:
Modelado de restricciones especiales.
Modelado de implicaciones lgicas.
Modelado de dobles implicaciones.
Contenido
Contenido
Modelado en Programacin Lineal Entera Mixta - 5
Las necesidades mnimas en la alimentacin de una ternera son de
700 g de protenas, 28 g de calcio y 150 mg de vitaminas. Los
alimentos disponibles son pienso y forraje con un coste unitario de
0.30 y 0.35 /kg respectivamente. La composicin nutritiva por kg:
Se trata de determinar la cantidad diaria ptima de cada alimento
para minimizar el coste total de alimentacin.
Solucin:
ndices:
i indica el tipo de alimento {pienso,forraje}
Variables:
x
i
: kgsde alimento i
Problema de la dieta
Problema de la dieta
Protenas
(g)
Calcio
(g)
Vitaminas
(mg)
Pienso 30 2 10
Forraje 45 1 5

Modelado en Programacin Lineal Entera Mixta - 6
Problema de la dieta
Problema de la dieta
1 2
1 2
,
1 2
1 2
1 2
1 2
min 0.30 0.35
30 45 700
2 28
10 5 150
0, 0
x x
x x
x x
x x
x x
x x
+
+
+
+

min

0
i
i i
x
i
ij i j
i
i
cx
a x b j
x

general
Siendo en la formulacin general:
ndices:
j tipo de nutriente {protenas, calcio, vitaminas}
Parmetros (datos de partida, no variables):
a
ij
: g de nutriente j contenidos en 1 kgde alimento i
b
j
: g mnimos de nutriente j requeridos
c
i
: coste unitario/Kg de alimento i
NUNCA restricciones estrictas
Linealidad:
Multiplicar nmeros por
variables, NUNCA variables por
variables
Si se suma en i
las restricciones
se incluyen en j
Modelado en Programacin Lineal Entera Mixta - 7
Problema de transporte
Problema de transporte
Minimizar el coste total de transporte de un producto desde unos
orgenes a unos destinos, satisfaciendo la demanda de cada destino
sin superar la oferta disponible en cada origen.
Se supone todos los orgenes conectados con todos los destinos
Parmetros:
a
i
oferta en el origen i, b
j
demanda en el destino j
c
ij
coste unitario de transporte desde el origen i al destino j
Cmo satisfacer la demanda sin superar la oferta con mnimo coste?
1
1
a
2
a
m
a
1
b
2
b
n
b
2
m
1
2
n
Modelado en Programacin Lineal Entera Mixta - 8
Problema de transporte
Problema de transporte
Variables:
X
ij
: cantidad transportada de origen i al destino j
1 1
1
1
min
1, ,
1, ,
0 ,
ij
m n
ij ij
X
i j
n
ij i
j
m
ij j
i
ij
c X
X a i m
X b j n
X i j
= =
=
=
=
=

K
K
Modelado en Programacin Lineal Entera Mixta - 9
Problema de trasbordo
Problema de trasbordo
Llevar un producto desde orgenes a destinos con puntos intermedios
en una red de N nodos con mnimo coste
ndices: nodos i de la red
Parmetros: c
ij
coste unitario de transporte de nodo i a nodo j
Variables: X
ij
cantidad a transportar del nodo i al nodo j
1
2
3
4
5
7
8
b
1
=2
b
2
=3
b
3
=1
b
7
=-4
b
8
=-2
b
5
=0
b
4
=0
1 1
1 2 3
1 1 1
4 4 5 5
1 1 1 1
7 8
1 1
min
2; 3; 1
;
4; 2;
0 ,
ij
n n
ij ij
x
i j
n n n
j j j
j j j
n n n n
j i j i
j i j i
n n
i i
i i
ij
c X
X X X
X X X X
X X
X i j
= =
= = =
= = = =
= =
= = =
= =
= =




1 1
1 1
min
1, ,
0 ,
ij
n n
ij ij
x
i j
n n
ij ji i
j j
ij
c X
X X b i n
X i j
= =
= =
= =


K
general
b
i
>0 nodo origen
b
i
<0 nodo destino
b
i
=0nodo trasbordo (ni genera ni
consume)
Modelado en Programacin Lineal Entera Mixta - 10
Problema de asignaci
Problema de asignaci

n
n
Asignar la realizacin de N tareas a N personas.
ndices y parmetros: c
ij
coste de realizar la tarea i por la persona j
Objetivo: Minimizar el coste total de realizar las tareas sujeto a
cada tarea debe ser hecha por una sola persona
cada persona debe realizar una nica tarea.
1 si se asigna la tarea a la persona
,
0 en cualquier otro caso
ij
i j
X i j

{ }
1 1
1
1
min
1
1
0,1
ij
n n
ij ij
x
i j
n
ij
j
n
ij
i
ij
c X
X i
X j
X
= =
=
=
=
=

Modelado en Programacin Lineal Entera Mixta - 11


El uso de variables enteras o binarias aumenta
considerablemente las posibilidades de modelado
respecto a la programacin lineal:
Modelado de cantidades discretas (e.g. nmero de personas
que se asignan a una tarea).
Modelado de decisiones que implican un coste fijo o de
arranque:
Adquirir o no un activo (un edificio, una mquina, etc.)
Poner en marcha un proceso.
Modelado de decisiones que posibilitan la toma de otras
decisiones:
La compra de un determinado aparato (variable binaria) permite
despus tomar decisiones relativas a su operacin.
Modelado de restricciones no lineales y no convexas.
Modelado de implicaciones y de condiciones lgicas.
Modelado con variables enteras o
Modelado con variables enteras o
binarias
binarias
Modelado en Programacin Lineal Entera Mixta - 12
Supongamos una empresa que puede elegir entre n
proyectos.
Cada proyecto j (j=1,...,n) tiene un coste c
j
y supone un
beneficio r
j
.
La empresa tiene un presupuesto mximo de b.
El problema consiste en elegir aquellos proyectos que
maximizan el beneficio respetando la restriccin del
presupuesto.
Problema de la mochila
Problema de la mochila
(
(
Knapsack
Knapsack
)
)
Modelado en Programacin Lineal Entera Mixta - 13
Formulacin:
Aplicaciones:
Asignacin de presupuestos.
Organizacin de un almacn.
...
Problema de la mochila
Problema de la mochila
(
(
Knapsack
Knapsack
)
)
{ }
1
1
max
s.a: ,
0,1 , .
j
m
j j
x
j
m
j j
j
j
r x
c x b
x j
=
=

Restriccin de
presupuesto
Variables binarias
Beneficio de los
proyectos elegidos
Modelado en Programacin Lineal Entera Mixta - 14
Consideremos un conjunto S de personas:
Por ejemplo: S={1, 2, ..., 5}
Utilizamos el ndice i para representar las personas: i =1, ..., 5.
Supongamos que queremos organizar a estas
personas en varios equipos conocidos:
El conjunto de equipos posibles es S
Por ejemplo: S ={{1, 2}, {4, 5}, {1, 3, 5}, {2, 4, 5}, {1}, {3}}
Utilizamos el ndice j para representar los equipos: j =1, ..., 6.
Cada equipo j tiene un coste c
j
:
c
1
=1, c
2
=1, c
3
=1, c
4
=1, c
5
=1, c
6
=1.
Queremos elegir los equipos que permiten tener
ocupadas a todas las personas con coste mnimo.
No importa que una misma persona est en dos equipos.
Problema de recubrimiento
Problema de recubrimiento
(
(
Set
Set
covering
covering
)
)
Modelado en Programacin Lineal Entera Mixta - 15
Hay mltiples soluciones factibles, pero slo un ptimo:
Problema de recubrimiento
Problema de recubrimiento
(
(
Set
Set
covering
covering
)
)
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
Modelado en Programacin Lineal Entera Mixta - 16
Problema de recubrimiento
Problema de recubrimiento
(
(
Set
Set
covering
covering
)
)
Para formular el problema definimos una matriz cuyos
elementos a
ij
indican si la persona i est en el equipo j
deS. Son parmetros:
a
ij
=1si la persona i est en el equipo j.
a
ij
=0en caso contrario.
Sean ahora las variables:
La formulacin es:
{ }
1
1
min
s.a: 1, ,
0,1 , .
j
m
j j
x
j
m
ij j
j
j
c x
a x i
x j
=
=

Cada persona i en al
menos un equipo.
Variables binarias
Coste de los equipos
formados
si se elige el subconjunto 1
0 en cualquier otro caso
j
j
x

Modelado en Programacin Lineal Entera Mixta - 17


Consideremos un conjunto S de personas:
Por ejemplo: S={1, 2, ..., 5}
Utilizamos el ndice i para representar las personas: i =1, ..., 5.
Supongamos que queremos organizar a estas
personas en varios equipos:
El conjunto de equipos posibles es S
Por ejemplo: S ={{1, 2}, {4, 5}, {1, 3, 5}, {2, 4, 5}, {1}, {3}}
Utilizamos el ndice j para representar los equipos: j =1, ..., 6.
Cada equipo j tiene un beneficio c
j
:
c
1
=1, c
2
=1, c
3
=1, c
4
=1, c
5
=1, c
6
=1.
Queremos elegir los equipos que proporcionan
beneficio mximo de forma que cada persona est
en un equipo y slo un equipo.
Problema de partici
Problema de partici

n
n
(
(
Set
Set
partitioning
partitioning
)
)
Modelado en Programacin Lineal Entera Mixta - 18
Hay mltiples soluciones factibles, pero slo un ptimo:
Problema de partici
Problema de partici

n
n
(
(
Set
Set
partitioning
partitioning
)
)
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
Modelado en Programacin Lineal Entera Mixta - 19
Problema de partici
Problema de partici

n
n
(
(
Set
Set
partitioning
partitioning
)
)
La formulacin es:
{ }
1
1
max
s.a: 1, ,
0,1 , .
j
m
j j
x
j
m
ij j
j
j
c x
a x i
x j
=
=
=

Cada persona i en
uno y slo un
equipo.
Variables binarias
Beneficio de los
equipos formados
Modelado en Programacin Lineal Entera Mixta - 20
Consideremos un conjunto S de personas:
Por ejemplo: S={1, 2, ..., 5}
Utilizamos el ndice i para representar las personas: i =1, ..., 5.
Supongamos que queremos organizar a estas
personas en varios equipos:
El conjunto de equipos posibles es S
Por ejemplo: S ={{1, 2}, {4, 5}, {1, 3, 5}, {2, 4, 5}, {1}, {3}}
Utilizamos el ndice j para representar los equipos: j =1, ..., 6.
Cada equipo j tiene un beneficio c
j
:
c
1
=1, c
2
=1, c
3
=1, c
4
=1, c
5
=1, c
6
=1.
Queremos elegir los equipos que proporcionan
beneficio mximo sin que exista solape.
No importa que una persona no est en ningn equipo.
Problema de empaquetado
Problema de empaquetado
(
(
Set
Set
packing
packing
)
)
Modelado en Programacin Lineal Entera Mixta - 21
Hay mltiples soluciones factibles, pero slo un ptimo:
Problema de empaquetado
Problema de empaquetado
(
(
Set
Set
packing
packing
)
)
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
Modelado en Programacin Lineal Entera Mixta - 22
Problema de empaquetado
Problema de empaquetado
(
(
Set
Set
packing
packing
)
)
La formulacin es:
{ }
1
1
max
s.a: 1, ,
0,1 , .
j
m
j j
x
j
m
ij j
j
j
c x
a x i
x j
=
=

Cada persona i en
slo un equipo.
Variables binarias
Beneficio de los
equipos formados
Modelado en Programacin Lineal Entera Mixta - 23
Objetivo:
Hacer un recorrido que pase por n ciudades sin repetir
ninguna y volviendo a la ciudad de partida, de manera que la
distancia total recorrida sea mnima.
En este problema se tienen varias dificultades:
Cul es la variable de control?
Cmo se garantiza que por cada ciudad se pasa slo una
vez?
Cmo se impide que haya bucles incompletos?
Vamos a ir respondiendo a cada una de estas
preguntas.
Problema del viajante
Problema del viajante
(
(
Traveling
Traveling
salesman
salesman
)
)
Modelado en Programacin Lineal Entera Mixta - 24
Variable de control:
ndices: vamos a utilizar los ndices i y j para referirnos a las
ciudades.
i: ciudad origen.
j: ciudad destino.
Parmetro de entrada: la distancia entre dos ciudades i y j
viene dada por c
ij
.
La variable de control es x
ij
:
Problema del viajante
Problema del viajante
(
(
Traveling
Traveling
salesman
salesman
)
)
1
0
ij
i j
x

=

si se va de la ciudad a la ciudad
en otro caso
Modelado en Programacin Lineal Entera Mixta - 25
Formulacin incompleta del problema:
Problema del viajante
Problema del viajante
(
(
Traveling
Traveling
salesman
salesman
)
)
{ }
min
1, ,
1, ,
0,1 .
ij
ij ij
x
i j i
ij
i j
ij
j i
ij
c x
x j
x i
x

=
=

Cada ciudad j es destino


de uno y slo un tramo
Distancia recorrida
Cada ciudad i es origen
de uno y slo un tramo
Variables binarias
Modelado en Programacin Lineal Entera Mixta - 26
Es necesario aadir restricciones adicionales para
evitar soluciones formadas por dos o ms recorridos:
Problema del viajante
Problema del viajante
(
(
Traveling
Traveling
salesman
salesman
)
)
1
2
3
4
5
6 7
8
1
2
3
4
5
6 7
8
Modelado en Programacin Lineal Entera Mixta - 27
Formulacin 1:
Consideramos todos los subconjuntos U de ms de 1y de
menos de n-1ciudades.
Aadimos una restriccin para cada uno de estos subconjuntos
U que impida que en l se forme un bucle:
donde Card(U) es el cardinal del subconjunto U (nmero de
elementos de U). Notese que la restriccin no puede ser de
igualdad pues en la solucin puede haber subconjuntos U
cuyas variables sumen menos que card(U)-1:
Problema del viajante
Problema del viajante
(
(
Traveling
Traveling
salesman
salesman
)
)
{ }
,
Card( ) 1 1,..., 2 Card( ) 2
ij
i j U
x U U n U n

1
2
3
4
5
6 7
8
U
Modelado en Programacin Lineal Entera Mixta - 28
Formulacin 2:
Cambiamos la eleccin de la variable de control:
i: ciudad origen.
j: ciudad destino.
k: tramo de recorrido.
La variable de control es x
ijk
:
Problema del viajante
Problema del viajante
(
(
Traveling
Traveling
salesman
salesman
)
)
1
0
puede valer de 1 a 1
ijk
i j k
x
k n

si se va de la ciudad a la ciudad en el tramo de recorrido


en otro caso
Modelado en Programacin Lineal Entera Mixta - 29
( ) ( ) ( )
( ) ( ) ( )
1 1 1 2 1 3 1 4 2 1 2 2 2 3 2 4 3 1 3 2 3 3 3 4
11 12 13 14 21 22 23 24 31 32 33 34
12 13 14 21 23
min
1) 1, 4,
2) 1, i 4,
3)
ijk
ij ijk
x
i j i k
j j j j j j j j j j j j
i i i i i i i i i i i i
k k k k k
c x
x x x x x x x x x x x x j idem j
x x x x x x x x x x x x idem i
x x x x x

+ + + + + + + + + + + = =
+ + + + + + + + + + + = =
+ + + +

{ }
24 31 32 34 41 42 43
1 2 3 1 1 2 1 3 1
1,
4) , j=4, , ,(si k=4,sustituir k+1 por 1)
0,1 .
k k k k k k k
jk jk jk j k j k j k
ijk
x x x x x x x k
x x x x x x k idem j
x
+ + +
+ + + + + + + =
+ + = + +

Problema del viajante


Problema del viajante
(
(
Traveling
Traveling
salesman
salesman
)
)
Ejemplo formulacin 2:
{ }
, , 1,2,3,4 i j k
1
2
3
4
Mismas que formulacin 1 si
no se considera la ordenacin
de la secuencia de recorrido
Restriccin 1) impide:
tramo 1 tramo 2
1
2
3
4
Restriccin 2) impide:
tramo 1
tramo 2
1
2
3
4
Restriccin 3) impide:
tramo 1
tramo 1
1
2
3
4
Restriccin 4) impide:
tramo 1
tramo 3
tramo 2
tramo 4
Restriccin 4) impide los subciclos de la formulacin anterior.
Modelado en Programacin Lineal Entera Mixta - 30
Formulacin 2:
Problema del viajante
Problema del viajante
(
(
Traveling
Traveling
salesman
salesman
)
)
{ }
1
min
1, ,
1, ,
1, ,
, , ,
0,1 .
ijk
ij ijk
x
i j i k
ijk
i j k
ijk
j i k
ijk
i j i
ijk jrk
i j r j
ijk
c x
x j
x i
x k
x x j k
x

+

=
=
=
=


Cada ciudad j es destino slo
una vez y en uno y slo un
tramo
Distancia recorrida
Cada ciudad i es origen slo
una vez y en slo un tramo
Variables binarias
En cada tramo k slo un
recorrido
Si j es destino del tramo k
entonces es origen del k+1.
Modelado en Programacin Lineal Entera Mixta - 31
Optimizacin y clasificacin de modelos
Problemas MILP caractersticos:
Dieta, transporte, trasbordo y asignacin (lineales continuos)
Mochila, recubrimiento, particin, empaquetado y viajante
(lineales enteros)
Modelado con variables enteras y binarias:
Modelado de restricciones especiales.
Modelado de implicaciones lgicas.
Modelado de dobles implicaciones.
Contenido
Contenido
Modelado en Programacin Lineal Entera Mixta - 32
Modelado de restricciones especiales
Modelado de restricciones especiales
DISYUNCIN: de 2 restricciones al menos una debe
darse. Debe cumplirse una, no necesariamente las dos:
Modelo lineal:
Variable binaria
Restricciones:
Ejemplo:
{ } { }
( ) 0 o ( ) 0 f x g x
1 obliga a ( ) 0 y relaja la otra
0 obliga a ( ) 0 y relaja la otra
g x
f x

{ }
1
2
( )
0,1
( ) (1 )
f x M
g x M



1 2 1 2
3 2 18 0 4 16 0 x x o x x + +
{ }
1 2 1
1 2 2
3 2 18
0,1
4 16 (1 )
x x M y
y
x x M y
+

Modelado en Programacin Lineal Entera Mixta - 33


Cumplir k de N ecuaciones y seleccionar
Cumplir k de N ecuaciones y seleccionar
entre N valores
entre N valores
CUMPLIR K DE N ECUACIONES: de N ecuaciones se
han de cumplir al menos K, siendo K<N.
SELECCIONAR ENTRE N VALORES: Una ecuacin
con mltiples posibles valores.
1 1
2 1
1
( , , ) 0
( , , ) 0
( , , ) 0
n
n
N n
f x x
f x x
f x x

K
K
M
K
( )
( )
( )
{ }
1 1 1 1
2 1 2 2
1
1
( , , ) 1
( , , ) 1
0,1
( , , ) 1
n
N
n
i
i
i
N n N N
f x x M y
f x x M y
y k
y
f x x M y
=

1
2
1
( , , )
n
N
d
d
f x x
d

K
M
1
1
( , , )
N
n i i
i
f x x d y
=
=

K
1
1
N
i
i
y
=
=

{ }
0,1
i
y
1, , i N = K
Modelado en Programacin Lineal Entera Mixta - 34
Modelado de costes fijos
Modelado de costes fijos
Coste con un trmino fijo si la variable toma un valor
estrictamente positivo
Variable auxiliar binaria:
0 0
( )
0
j
j j
j j j j
x
f x
k c x x
=

=

+ >

1 0
0 0
j
j
j
x
y
x
>

=

=

( )
,
1 1
min ( )
j j
n n
j j j j j j
x y
j j
f x k y c x
= =
= +

( >0 grande)
j j
x My M
j
k
j
c
j
x
Los esquemas son SLO aclaratorios, NO son
restricciones: HAY QUE MODELAR!
Cualquier esquema es una DEFINICIN y por tanto una
DOBLE implicacin A MODELAR 1) y 2):
Yj=1 <=>Xj>0
1) Restriccin que modela:
Xj>0 Yj=1
(ver modelado implicaciones ms adelante)
2) La implicacin Xj=0Yj=0 es OBVIA por
minimizacin de costes
Costes
totales
Modelado en Programacin Lineal Entera Mixta - 35
Modelado de costes no lineales
Modelado de costes no lineales
Costes unitarios no lineales:
2
j
c
1
j
p
1
j
c
j
x
3
j
c
2
j
p
3
j
p
Costes
unitarios
Primera tentativa funcin objetivo:
(
1
1 si ,
0 en otro caso
k k
j j j k
j
x p p

Asociar una variable binaria para cada tramo k


,
k k
j j j
j k
c x

NO LINEAL!!!
Modelado en Programacin Lineal Entera Mixta - 36
Modelado de costes no lineales
Modelado de costes no lineales
k
j j
k
x x =

,
k k
j j
j k
c x

1
k
j
k
=

(
1
si ,
0 en otro caso
k k
j j j j k
j
x x p p
x

Asociar una variable continua a cada tramo para evitar la


no linealidad
Modelado lineal de la funcin objetivo:
Modelado de la definicin de las variables binarias y continuas:
( )
1 k k k k k
j j j j j
p x p

+
Definicin produccin
Activacin de un nico tramo
Definicin produccin del
tramo
Necesario al ser el inicio del tramo un extremo abierto (p
k-1
, p
k
]
Modelado en Programacin Lineal Entera Mixta - 37
Modelado de funciones
Modelado de funciones
minimax
minimax
1 1
c x d +
Modelado de la minimizacin del mximo coste:
min ( )
0
f x
Ax b
x
=

siendo
{ }
1 1 2 2
1 2 1 2
( ) max , , ,
, , , , , , , ,
T T T
p p
n
p p
f x c x d c x d c x d
x c c c d d d
= + + +


p p
c x d +
( ) f x
En 1 dimensin:
Modelado en Programacin Lineal Entera Mixta - 38
Modelado de funciones
Modelado de funciones
minimax
minimax
Modelado lineal:
1 1
2 2
min
..................
0
p p
z
z c x d
z c x d
z c x d
Ax b
x
+
+
+
=

x
Idempara maximizar el mnimo beneficio, pero esta tcnica no
puede emplearse para minimin o maximax
Sustituye a f(x)
Modelado en Programacin Lineal Entera Mixta - 39
Modelado
Modelado
del valor absoluto
del valor absoluto
( )
min
min
. .
. .
, 0
, 0
x
c x x
s a x X
s a x X
x x x
x x x
x x
x x
+
+
+
+
+


=
=




Modelado lineal:
min
. .
c x
s a x X
x libre

x
Ntese que por el criterio
de minimizacin, las dos
variables x
+
y x
-
no pueden
hacerse positivas a la vez
No lineal
Modelado en Programacin Lineal Entera Mixta - 40
Optimizacin y clasificacin de modelos
Problemas MILP caractersticos:
Dieta, transporte, trasbordo y asignacin (lineales continuos)
Mochila, recubrimiento, particin, empaquetado y viajante
(lineales enteros)
Modelado con variables enteras y binarias:
Modelado de restricciones especiales.
Modelado de implicaciones lgicas.
Modelado de dobles implicaciones.
Contenido
Contenido
Modelado en Programacin Lineal Entera Mixta - 41
Modelado de implicaciones
Modelado de implicaciones
Vamos a estudiar cinco implicaciones posibles con restricciones
lineales:
En lo que sigue supondremos que se conocen M y m tal que
siempre se verifican las siguientes condiciones:
j j
j
a x b

j j
j
a x b

j j
j
a x b M

j j
j
a x b m

Suponemos que M es un
valor muy grande.
Suponemos que m es un valor
muy pequeo(posiblemente
negativo).
j j
j
a x b =

Modelado en Programacin Lineal Entera Mixta - 42


Caso 1: De binarias a restricciones
Dicho de otra manera:
La formulacin es:
de modo que hay dos situaciones posibles:
Modelado de implicaciones
Modelado de implicaciones
1
j j
j
a x b =

( )
1
j j
j
a x b M

1
j j
j
a x b =

0
j j
j
a x b M = +

No pasa nada: se cumple siempre.


Forzamos el cumplimiento de la restriccin.
1
j j
j
a x b =

IF THEN
Modelado en Programacin Lineal Entera Mixta - 43
Como en los ejemplos anteriores, la formulacin
adems de modelar la implicacin
tambin modela la implicacin (contra recproca):
(pues AB equivale a NO BNO A)
Modelado de implicaciones
Modelado de implicaciones
( )
1
j j
j
a x b M

0
j j
j
a x b > =

IF THEN
1
j j
j
a x b =

IF THEN
Modelado en Programacin Lineal Entera Mixta - 44
A restricciones
La formulacin es:
de modo que hay dos situaciones posibles:
Modelado de implicaciones
Modelado de implicaciones
1
j j
j
a x b =

( )
1
j j
j
a x b m

1
j j
j
a x b =

0
j j
j
a x b m = +

No pasa nada: se cumple siempre.


Forzamos el cumplimiento de la restriccin.
Modelado en Programacin Lineal Entera Mixta - 45
Como en los ejemplos anteriores, la formulacin
adems de modelar la implicacin
tambin modela la implicacin:
Modelado de implicaciones
Modelado de implicaciones
0
j j
j
a x b < =

IF THEN
( )
1
j j
j
a x b m

1
j j
j
a x b =

IF THEN
Modelado en Programacin Lineal Entera Mixta - 46
Caso 2 De restricciones a binarias
Sabiendo que las dos expresiones siguientes son equivalentes:
convertimos la implicacin en la siguiente:
Modelado de implicaciones
Modelado de implicaciones
1 0
j j j j
j j
a x b a x b = = <

equivale a
0
j j
j
a x b =

1
j j
j
a x b =

Modelado en Programacin Lineal Entera Mixta - 47


Hemos llegado a una implicacin similar a la del Caso 1.
La diferencia es que en lugar de estamos
manejando la expresin
Por este motivo, en lugar de M hay que manejar M=M+.
La formulacin de esta implicacin es:
de modo que hay dos situaciones posibles:
Modelado de implicaciones
Modelado de implicaciones
'
j j
j
a x b M +

0
j j
j
a x b =

'
1
j j
j
a x b M = +

No pasa nada: se cumple siempre.


Forzamos el cumplimiento de la restriccin.
j j
j
a x b +

j j
j
a x b

Modelado en Programacin Lineal Entera Mixta - 48


Como en los ejemplos anteriores, la formulacin
adems de modelar la implicacin
tambin modela la implicacin:
Modelado de implicaciones
Modelado de implicaciones
0
j j
j
a x b = <

IF THEN
'
j j
j
a x b M +

1
j j
j
a x b =

IF THEN
Modelado en Programacin Lineal Entera Mixta - 49
Con restricciones
Sabiendo que las dos expresiones siguientes son equivalentes:
basta modelar:
Modelado de implicaciones
Modelado de implicaciones
1
j j
j
a x b =

1 0
j j j j
j j
a x b a x b = = >

equivale a
0
j j
j
a x b = +

Modelado en Programacin Lineal Entera Mixta - 50


Hemos llegado a una implicacin similar a la del Caso 1.
La diferencia es que en lugar de estamos
manejando la expresin
Por este motivo, en lugar de m hay que manejar m=m .
La formulacin de esta implicacin es:
de modo que hay dos situaciones posibles:
Modelado de implicaciones
Modelado de implicaciones
'
j j
j
a x b m

1
j j
j
a x b m = +

0
j j
j
a x b = +

No pasa nada: se cumple siempre.


Forzamos el cumplimiento de la restriccin.
j j
j
a x b

j j
j
a x b

Modelado en Programacin Lineal Entera Mixta - 51


Como en los ejemplos anteriores, la formulacin
adems de modelar la implicacin
tambin modela la implicacin:
Modelado de implicaciones
Modelado de implicaciones
'
j j
j
a x b m

1
j j
j
a x b =

IF THEN
0
j j
j
a x b = >

IF THEN
Modelado en Programacin Lineal Entera Mixta - 52
Modelado de implicaciones
Modelado de implicaciones
Caso 3 De binarias a restricciones de =
que es equivalente a
Este caso es una combinacin de dos casos tipo 1.
La formulacin es:
=1fuerza el cumplimiento de las dos restricciones
simultneamente.
1
j j
j
a x b = =

( )
( )
1
1
j j
j
j j
j
a x b M
a x b m

1
j j
j
j j
j
a x b
a x b

Modelado en Programacin Lineal Entera Mixta - 53


Modelado de implicaciones
Modelado de implicaciones
Caso 4 De restricciones = a binarias
dicho de otra manera:
Se resuelve pasando al contra recproco:
1
j j
j
j j
j
a x b
a x b

1
j j
j
a x b = =

0
j j
j
j j
j
a x b

a x b

<

>

Modelado en Programacin Lineal Entera Mixta - 54


Modelado de implicaciones
Modelado de implicaciones
Como existe una disyuncin en el consecuente es necesario
utilizar una variable
1
para detectar el cumplimiento de la
primera implicacin, y otra variable
2
para la segunda
El primer bloque es una par de casos tipo 2:
1
2
0
0
j j
j
j j
j
a x b
a x b

= <

= >

( )
( )
1
2
j j
j
j j
j
a x b M
a x b m


+ +

1
2
0
0
0

Adems deber
cumplirse
Modelado en Programacin Lineal Entera Mixta - 55
En el segundo bloque tenemos que hacer que si = 0 entonces

1
= 0
2
= 0, o lo que es lo mismo si
1
= 1 y
2
= 1 entonces
= 1
La formulacin completa es:
Modelado de implicaciones
Modelado de implicaciones
1 2
1 +
( )
( )
1
2
1 2
1
j j
j
j j
j
a x b M
a x b m



+ +

+

Estamos modelando la siguiente


proposicin lgica:
Si
1
=1y
2
=1 entonces =1
Modelado en Programacin Lineal Entera Mixta - 56
Modelado de implicaciones
Modelado de implicaciones
Caso 5 De restricciones a restricciones
siempre se ha de utilizar el hecho de que:
y luego modelar el resultado como disyuncin.
De restricciones > a restricciones :
Se resuelve con el modelado de la disyuncin equivalente (ver
modelado de restricciones especiales):
j j j j
j j
a x b c x d >

{ }
es equivalente a o no A B B A

j j j j
j j
c x d a x b





Modelado en Programacin Lineal Entera Mixta - 57
Modelado de implicaciones
Modelado de implicaciones
De restricciones a restricciones :
Se resuelve con el modelado de la disyuncin equivalente:
que a su vez puede considerarse equivalente a la disyuncin
(eliminacin de la restriccin estricta):
j j j j
j j
a x b c x d


j j j j
j j
c x d a x b

<




j j j j
j j
c x d a x b





Modelado en Programacin Lineal Entera Mixta - 58
Modelado de implicaciones
Modelado de implicaciones
De restricciones = a restricciones :
Se resuelve con el modelado de la disyuncin equivalente:
que a su vez puede considerarse equivalente a la disyuncin triple
(eliminacin de la restriccin estricta):
j j j j
j j
a x b c x d =


j j j j j j
j j j
c x d a x b a x b

> <




j j j j j j
j j j
c x d a x b a x b

+



Modelado en Programacin Lineal Entera Mixta - 59
Modelado de implicaciones
Modelado de implicaciones
De restricciones a restricciones =:
Se resuelve con el modelado de la disyuncin equivalente:
que a su vez puede considerarse equivalente a (eliminacin de la
restriccin estricta):
j j j j
j j
a x b c x d =


j j j j
j j
c x d a x b

= <



y
j j j j j j
j j j
c x d c x d a x b









Modelado en Programacin Lineal Entera Mixta - 60
Modelado de implicaciones
Modelado de implicaciones
Se trata como una disyuncin doble pero en donde una de sus
condiciones es el cumplimiento simultneo de dos restricciones:
( ) ( )
1
j j
j
j j
j
j j
j
c x d K
c x d k
a x b M




+ +

Siendo k y K cotas que cumplen:


j j
j
c x d M

j j
j
c x d m

Suponemos que K es un
valor muy grande.
Suponemos que k es un valor
muy pequeo(posiblemente
negativo).
Modelado en Programacin Lineal Entera Mixta - 61
Modelado de implicaciones: Resumen
Modelado de implicaciones: Resumen
1
j j
j
a x b =

IF THEN
1
j j
j
a x b =

IF THEN
1
j j
j
a x b =

IF THEN
1
j j
j
a x b =

IF THEN
1
j j
j
a x b = =

IF THEN
1
j j
j
a x b = =

IF THEN
( )
1
j j
j
a x b M

( )
1
j j
j
a x b m

( )
( )
1
1
j j
j
j j
j
a x b M
a x b m

( )
j j
j
a x b M + +

( )
j j
j
a x b m

( )
( )
1
2
1 2
1
j j
j
j j
j
a x b M
a x b m



+ +

+

Modelado en Programacin Lineal Entera Mixta - 62


Modelado de implicaciones: Resumen
Modelado de implicaciones: Resumen
IF THEN
j j j j
j j
a x b c x d >

( )
1
j j
j
j j
j
c x d K
a x b M

IF THEN
j j j j
j j
a x b c x d

( ) ( )
1
j j
j
j j
j
c x d K
a x b M



+ +

IF THEN
j j j j
j j
a x b c x d =

( )
( )
1
2
3
1 2 3
1
j j
j
j j
j
j j
j
c x d k
a x b m
a x b M






+ +
+ + =

IF THEN
j j j j
j j
a x b c x d =

( ) ( )
1
j j
j
j j
j
j j
j
c x d K
c x d k
a x b M




+ +

Modelado en Programacin Lineal Entera Mixta - 63


Optimizacin y clasificacin de modelos
Problemas MILP caractersticos:
Dieta, transporte, trasbordo y asignacin (lineales continuos)
Mochila, recubrimiento, particin, empaquetado, coste fijo y
viajante (lineales enteros)
Modelado con variables enteras y binarias:
Modelado de restricciones especiales (disyunciones).
Modelado de implicaciones lgicas.
Modelado de dobles implicaciones.
Contenido
Contenido
Modelado en Programacin Lineal Entera Mixta - 64
Modelar
Modelado de dobles implicaciones
Modelado de dobles implicaciones
1
j j
j
a x b =

IF THEN
1
j j
j
a x b =

IF THEN
( )
1
j j
j
a x b M

( )
j j
j
a x b m

j j
j
a x b M

0
j j
j
a x b

0 =
No pasa nada: se cumple siempre.
Equivale a lo
que queramos
1
j j
j
a x b =

0
j j
j
a x b

j j
j
a x b m

1 =
Lo que queramos.
No pasa nada: se cumple siempre.
1
j j
j
a x b =

Modelado en Programacin Lineal Entera Mixta - 65


Modelar
Modelado de dobles implicaciones
Modelado de dobles implicaciones
1
j j
j
a x b =

IF THEN
1
j j
j
a x b =

IF THEN
0
j j
j
a x b +

0 =
No pasa nada: se cumple siempre.
Equivale a lo
que queramos
1
j j
j
a x b =

0
j j
j
a x b

j j
j
a x b M

1 =
Lo que queramos.
No pasa nada: se cumple siempre.
1
j j
j
a x b =

( )
1
j j
j
a x b m

( )
j j
j
a x b M + +

j j
j
a x b m

Modelado en Programacin Lineal Entera Mixta - 66


Modelado de dobles implicaciones
Modelado de dobles implicaciones
Modelar
( ) ( ) 1
j j
j
j j
j
c x d K
a x b M



+ +

j j j j
j j
a x b c x d

IF THEN
j j j j
j j
c x d a x b

IF THEN
j j
j
a x b

Equivale a lo
que queramos
j j j j
j j
a x b c x d

0
j j
j
c x d

( ) ( )
1
j j
j
j j
j
a x b m
c x d k

( ) ( )
1
j j
j
a x b
M


+
+

0 =
0
j j
j
j j
j
a x b
c x d k

No pasa nada: se
cumple siempre.
j j
j
c x d

Equivale a lo
que queramos
0
j j
j
a x b

( ) ( )
1
j j
j
k
c x d



0 =
0
j j
j
j j
j
c x d
a x b M

No pasa nada: se
cumple siempre.

También podría gustarte