Alguns casos particulares: implicação lógica de ligação entre variáveis discretas e variáveis
contínuas; escolha múltipla entre alternativas; decisões intrinsecamente discretas.
Métodos geral para modelação de condições lógicas: envolvendo apenas variáveis binárias; envolvendo variáveis binárias e contínuas.
Aplicações: formulação de uma mistura, síntese de processos químicos.
Engenharia de Processos e Sistemas
Modelação com variáveis
discretas
Fernando Bernardo Fev 2014 1 2 ~ 1 2 P P P P ⇒ ⇔ ∨min
min
. .
1
,
1
1
i i i x i i i i i i i i i ix C
s t
x V
V
x
x
My M
0
x
y
N
≥
=
≤
=
≤ ≤
≤
∑
∑
∑
∑
Problema de formulação de uma mistura: minimizar o custo de uma formulação, sujeito a um desempenho mínimo. M
ingredientes possíveis; limitar o número de ingredientes a N<=M.
i – ingrediente, i=1,…M
xi – fracção mássica do componente i Vi – valor nutritivo (unid./kg)
Ci – custo (EUR/kg) Técnica “big-M”:
0
i i ix
≤
My
∧ ≥
x
0 0 i i y = ⇒ x =Necessário modelar a condição lógica:
MILP Óptimo global
i i
x y
Modelação com variáveis discretas
Por agora, isto parece mais arte do que ciência.
Vamos primeiro abordar alguns casos particulares e depois apresentar uma teoria geral para a modelação de qualquer q condição lógica
envolvendo apenas variáveis discretas ou ligação entre variáveis discretas e variáveis contínuas.
Casos particulares:
1. Implicação lógica de ligação entre variáveis discretas e variáveis contínuas
2. Escolha múltipla entre alternativas 3. Decisões intrinsecamente discretas.
1. Implicação lógica de ligação y-x
(Restrição do tipo “big-M”)
x
≤
My
y binário = 0 fl x contínuo = 0 E também x œ [0;M]
Se y = 0, então função contínua associada f(x) = 0 Se y =1, a § f(x) § b
( )
ay
≤
f x
≤
by
Durante a optimização:
- se y = 0, tem-se x § 0; uma vez que x ¥ 0, isto resulta em x = 0. - se y = 1, tem-se x § M, o que funciona como restrição neutra.
Pode ser modelado como:
Caso mais geral
1. Implicação lógica de ligação y-x
Selecção de alternativas processuais
Se processo II não é
escolhido, então caudal BII é nulo.
0
≤
B
II≤
My
IIEvita-se assim termos não-lineares do tipo F.y, F – caudal.
Limites mínimos do tipo: se for necessário comprar B, deve ser em quantidade superior a 10
1. Implicação lógica de ligação y-x
Se reactor seleccionado com caudal x, então C = CF + CV.x Mas se reactor não seleccionado, C = 0
y codifica a selecção do reactor
Modelação “directa” (indesejável, pois NL):
(
F V)
C
=
C
+
C x y
Possível modelo linear, com a técnica big-M:
0
F VC
C y
C x
x
My
x
=
+
≤
∧ ≥
x C CFExemplo. Custo fixo + custo variável, associado a alternativa processual
( F V ), F é custo fixo, V é custo variável C = C +C x C C
1 M i i
y
N
=≤
∑
11
N i iy
==
∑
- Seleccionar um só item/alternativa: 1 2 32
y
+
y
+
y
≥
1
A By
+
y
=
- Seleccionar no máximo N itens de um conjunto com M: Encomendar um só produto de entre N possíveis
Mistura com no máximo N ingredientes
- Seleccionar pelo menos duas de entre 3 opções:
- Seleccionar ou a opção A ou a opção B (“ou” exclusivo):
,
1
i i i
V
=
∑
V y
∑
y
=
Optimizar o volume de um reactor de entre 5 dimensões específicas possíveis:
(trata-se no fundo de uma escolha múltipla)
3. Decisões intrinsecamente discretas
Num período de 6 meses, 3 máquinas (de um conjunto de 8) têm de parar para manutenção (cada uma durante 1 mês).
6 1
6 8 1 1
1, se máquina i pára para manutenção no mês j Cada máquina, se parar, pára uma só vez:
1, 1,...,6
No total dos 6 meses, páram exctamente 3 máquinas:
3 ij ij j ij j i y y j y = = = = ≤ = =
∑
∑∑
0 1 0 0 0 0 0 0 0 0 0 0 (...) 0 0 0 1 0 0 (...) 1 0 0 0 0 0 y = máquinas mês3. Decisões discretas
GAMS suporta variáveis inteiras:
0 1 2
NReactores
= +
2
y
+
2
y
+
4
y
INTEGER VARIABLE NReactores; NReactores.lo=2;
NReactores.up=7;
Internamente faz a decomposição:
Número de reactores em paralelo entre 2 e 7
0 0 1 2 0 1 2
2
7,
0
2
5
0
2
4
5, ,
,
{0,1}
N
N
N
y
y
y
y y y
+≤ ≤
∈
⇔ ≤ − ≤
→ ≤
+
+
≤
∈
ℕ
4. Modelação de condições lógicas
Exemplo. Problema de formulação de uma mistura a partir de vários ingredientes.
Pelo menos 2 de entre M ingredientes têm de ser incluídos:
1
2
M i iy
=≥
∑
Se o ingrediente 1 é incluído, então o ingrediente 5 também tem de ser incluído.
Proposição P1: ingrediente 1 é usado Proposição P5: ingrediente 5 é usado
1 5 ~ 1 5 P P P P ⇒ ⇔ ∨
Então, a condição lógica inicial é modelada por:
4.1 Condições lógicas envolvendo apenas variáveis binárias 4.1.1 Condições lógicas simples
Relação lógica Expressão lógica
(envolvendo proposições P)
Restrição linear equivalente (envolvendo variáveis binárias y) OR P1 ∨∨∨∨ P2 y1 + y2 ≥≥≥≥ 1 AND P1 ∧∧∧∧ P2 y1 ≥≥≥≥ 1, y2 ≥≥≥≥ 1 Implicação P1 ⇒⇒⇒⇒ P2 ⇔⇔⇔⇔ ~ P1 ∨∨∨∨ P2 1 −−−− y1 + y2 ≥≥≥≥ 1 Equivalência P1 ⇔⇔⇔⇔ P2 y1 = y2 OR (exclusivo) P1 ∨ɺ P2 y1 + y2 = 1
4.1.2 Condições lógicas compostas
Podem ser reduzidas à forma conjuntiva normal, aplicando
equivalências lógicas. A forma conjuntiva normal corresponde depois a um sistema de restrições lineares.
Forma conjuntiva normal: conjunção de várias disjunções
1 2 3 4 1 2 3 4
(
...)
(
...)
... 1
... 1
P
P
P
P
y
y
y
y
∨
∨
∧
∨
∨
+
+ ≥
⇔
+
+ ≥
4. Modelação de condições lógicas
Exemplo. Problema de formulação de uma mistura a partir de vários ingredientes. Se ingrediente 1 ou 2 estão presentes, então é necessário o ingrediente 5 (por exemplo, 5 é estabilizante de 1 e 2).
1 5 2 5
( 1
2)
5
~ ( 1
2)
5
(~ 1 ~ 2)
5
(~ 1
5)
(~ 2
5)
1
1
1
1
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
y
y
y
y
∨
⇒
∨
∨
∧
∨
∨
∧
∨
− +
≥
⇔
−
+
≥
4. Modelação de condições lógicas
( )
f(1
) ,
fé limite superior para
f x
≤
U
−
y
U
f
Então ( ( )f x ≤ 0⇒ y =1) é equivalente a (y = 0 ⇒ f x( ) > 0)
4.2. Condições envolvendo variáveis binárias e contínuas
Como conciliar esta teoria com variáveis e restrições contínuas?
A base está em associar uma variável binária y à verificação da restrição contínua f(x) § 0.
Caso 1:
Caso 2 (inverso):
Podemos usar a lógica para deduzir a restrição para este caso Restrição algébrica equivalente:
1 ( ) 0 y = ⇒ f x ≤
( )
0
1
f x
≤
⇒
y
=
4. Modelação de condições lógicas
Caso 3: Caso 4: 1 ( ) 0 y = ⇒ f x ≥( )
(1
)
ff x
≥
L
−
y
( )
0
1
g x
≥
⇒
y
=
( ( )
f x
≥
0
⇒
y
=
1) é equivalente a (
y
=
0
⇒
f x
( )
<
0)
( )
f x
≤
U y
f−
ε ε
, pequeno
Caso 5: y =1 ⇒ h x( ) = 0( )
0
( )
0
( )
0
h x
= ⇔
h x
≤ ∧
h x
≥
( )
h(1
)
( )
h(1
)
h x
≤
U
− ∧
y
h x
≥
L
−
y
A optimização discreta é um método sistemático de
explorar diferentes possibilidades processuais.
Define-se uma super-estrutura do processo, que codifica as
várias alternativas.
Formula-se um problema com variáveis binárias, cuja
solução selecciona a melhor alternativa (a menos de
óptimos locais).
Exemplo 1
O composto C pode ser produzido pelos processos II ou III, mas não por ambos, usando B como matéria-prima. B pode ser comprado ao
exterior ou fabricado internamente pelo processo I, usando A como
matéria-prima. Decidir a melhor estrutura de fabrico de C (processo II ou III; comprar B e/ou fabricá-lo a partir de A).
Decisões discretas:
yI: yI=1, se processo 1 existe; yI=0, caso contrário
idem para yII e yIII Decisões contínuas: A, B (qtds a comprar de A e B) Balanços (ton/h): BI = 0.9*A Restrições: A § 16, C § 10 (ton/h) Função objectivo: Lucro ($/h) = 1800*C – 500*A – 950*B – (1000 + 250*A)*yI – (1500 + 400*BII)*yII – (2000 + 550*BIII)*yIII
• (1000 + 250*A)*yI pode ser substituído por 1000*yI + 250*A se impusermos a condição lógica: yI = 0 fl A = 0
• Esta condição pode ser modelada por: A § 16yI (restrição big-M) • Faz-se de modo análogo para os caudais BII e BIII:
BII § 10/0.82*yII BIII § 10/0.95*yIII
Formulação final (MILP), com garantia de optimalidade global max Lucro ($/h) = 1800*C – 500*A – 950*B – (1000*yI + 250*A) – (1500*yII + 400*BII) – (2000*yIII + 550*BIII)
s.a. Função objectivo (NL): Lucro ($/h) = 1800*C – 500*A – 950*B – (1000 + 250*A)*yI – (1500 + 400*BII)*yII – (2000 + 550*BIII)*yIII BI = 0.9*A BI + B = BII + BIII CII = 0.82*BII CIII = 0.95*BIII C = CII + CIII yI + yII = 1 A § 16yI BII § 10/0.82*yII BIII § 10/0.95*yIII C § 10
max Lucro ($/h) = 1800*C – 500*A – 950*B – (1000*yI + 250*A) – (1500*yII + 400*BII) – (2000*yIII + 550*BIII)
s.a. BI = 0.9*A BI + B = BII + BIII CII = 0.82*BII CIII = 0.95*BIII C = CII + CIII yI + yII = 1 A § 16yI BII § 10/0.82*yII BIII § 10/0.95*yIII C § 10 Formulação em GAMS
$TITLE PROBLEMA COMPLEXO QUÍMICO BINARY VARIABLES yI,yII,yIII;
POSITIVE VARIABLES A,BI,B,BII,BIII,CII,CIII,C; C.up=10;
VARIABLE LUCRO;
EQUATIONS E1,E2,E3,E4,E5,E6,E7,E8,E9,OBJ; E1 .. yII + yIII =E= 1;
E2 .. BI =E= 0.9*A;
E3 .. BI + B =E= BII + BIII; E4 .. CII =E= 0.82*BII;
E5 .. CIII =E= 0.95*BIII; E6 .. C =E= CII + CIII; E7 .. A =L= 16*yI;
Estudo de sensibilidade
• Se PrB diminuir de 950 para 900 $/ton, nova solução:
apenas processo III, comprar 10.5 ton/hr de B, Lucro = 737 $/h • Se CinvII aumentar de 1500 para 2000 $/h, nova solução: processo I e III, não comprar B, Lucro = 439 $/h
Solução
processos I e II não comprar B Lucro = 459 $/h
Impôr restrição (lógica) adicional: caso seja favorável comprar B, a quantidade mínima deve ser de 12 ton/h.
• Nova decisão binária yBc (=1, se B for comprado)
Exemplo 2: super-estrutura de separação
Sistema de separação flash e/ou coluna com ou sem bypasses
Variáveis binárias:
yF – existência da separação flash yC – existência da coluna destilação
Variáveis contínuas
S1 a S4 – caudais de alimentação à coluna e tanque flash e caudais de bypasses
1
S
2S
3S
4S
Exemplo 2: super-estrutura de separação • Ponto de separação: 1
S
2S
3S
4S
1 2 3 41
S
+
S
+
S
+
S
=
40
≤
S
≤
yC
10
≤ ≤
S
yF
• Se coluna existe então tem diâmetro entre 2.2 e 5.5 m; se não existe, diâmetro é nulo e o respectivo custo também:
2 2.2 5.5 50 (0.3 2) C C C P yC D yC Custo y D N ≤ ≤ = + + (NP é parâmetro)
• De modo análogo para o tanque flash
3
S
4
1
S
2S
3S
4S
Conjunto de soluções para xAmin e xBmin crescentes 1 S 2 S 3 S S4
xAmin xBmin Profit DC DF S2 S3 xA xB
0.78 0.78 1793 0 3.305 0.0208 0 0.78 0.8013 0.79 0.79 1788 0 3.327 0.0078 0 0.79 0.8013 0.8 0.8 1693 2.2 3.214 0 0 0.8 0.8053 0.81 0.81 1651 3.006 2.854 0 0 0.81 0.8161 0.82 0.82 1468 5.501 0 0.0286 0.068 0.82 0.82 0.83 0.83 1524 4.735 2.2 0 0 0.83 0.8383 0.84 0.84 1456 5.358 2.2 0 0.0184 0.84 0.84 0.85 0.85 1444 5.751 0 0 0.0129 0.8462 0.85 UNF
6. Aplicação a gestão de stocks
Problema clássico de gestão de stocks:
Dada a necessidade de uma matéria-prima ao longo de N períodos, decidir quando e quanto encomendar, minimizando o custo total = custos de encomenda + custos de posse.
- Em cada período, pode ou não haver uma encomenda. No caso de haver, é feita no início do período i, tem tamanho Qi e fica desde logo disponível.
- Velocidade de procura contínua e constante durante o período i - Custo de posse: CP, em EUR/unidade/período
- Custo de encomenda: CE, em EUR/encomenda Quando e quanto encomendar?
Nível de existências em armazém
Q
• encomendas de tamanho variável Qi
6. Aplicação a gestão de stocks
Problema clássico de gestão de stocks:
Período Procura 1 31 2 14 3 7 4 0 5 87 6 44 7 10 8 51 9 8
Quando e quanto encomendar para satisfazer esta procura variável?
Solução simplista: encomendar em todos os períodos quantidade igual à procura, ou seja, Qi = Pi, i=1,…,N.
→ Custos de posse minimizados, mas custos de encomenda negligenciados.
Custo de posse CP = 4 EUR/un/período e custo de encomenda CE = 100 EUR.
Período Procura Encom. C enc C posse C total
1 31 31 100 62 162 2 14 14 100 28 128 3 7 7 100 14 114 4 0 0 0 0 0 5 87 87 100 174 274 6 44 44 100 88 188 7 10 10 100 20 120 8 51 51 100 102 202 9 8 8 100 16 116
6. Aplicação a gestão de stocks
1 1 1 1 CustoTotal 1 0 1 0 1 2 0 00 1 0 1 1 2 1 00 grande, 1 i i N i E i P Q ,y i i i i i i i i i i N i i i min ( y C Exm C ) s.t. Ex Ex P , i ,..., N Ex Ex Q , i ,..., N Ex Ex Q Exm ( Ex Ex ), i ,..., N Ex Ex Q My , M Q , i ,..., N = − = + = − = = + = = + = + = ≥ ≤ >> =∑
Q ,Exi 0i,Ex ,Exm1i i ≥ 0 , i =1,..., N
Existência ou não de encomenda:
0 0 1 0 i i i i y Q y Q = ⇒ = = ⇒ >
0
(restrição do tipo big-
)
i i
Q
My
M
≤
≤
Modelação algébrica destas condições lógicas:
Formulação na plataforma GAMS
$TITLE Gestão de stocks
* Dada procura Pi, i=1,...,N, decidir quando e quanto encomendar, * minimizando o custo total = custos de encomenda + custos de posse
SCALARS cE,cP,Ex00; cE=100;
cP=4; Ex00=0;
SET I/I1*I9/;
SET Isem1(I) /I2*I9/;
PARAMETER P(I) /I1 31,I2 14,I3 7,I4 0,I5 87,I6 44,I7 10,I8 51,I9 8/;
BINARY VARIABLES y(I);
EQUATIONS E1,E2(I),E3(I),E4(I),E5(I);
E1 .. Ex0('I1') =E= Ex00 + Q('I1');
E2(I)$Isem1(I) .. Ex0(I) =E= Ex1(I-1) + Q(I); E3(I) .. Ex1(I) =E= Ex0(I) - P(I);
E4(I) .. Exm(I) =E= 1/2*(Ex0(I) + Ex1(I)); E5(I) .. Q(I) =L= 1000*y(I);
VARIABLE CustoTotal;
EQUATION OBJ;
OBJ .. CustoTotal =E= SUM(I, y(I)*cE + Exm(I)*cP);
MODEL PLAN/ALL/
*OPTION MIP=OSL;
OPTION optcr=0.001;
---- VAR Q
LOWER LEVEL UPPER MARGINAL
I1 . 52.000 +INF . I2 . . +INF . I3 . . +INF . I4 . . +INF 4.000 I5 . 87.000 +INF . I6 . 54.000 +INF . I7 . . +INF . I8 . 59.000 +INF . I9 . . +INF .
Custo total mínimo = 1088 EUR
Extensões possíveis do problema 1. Vários produtos
Basta alargar o conjunto de variáveis de decisão para Qji e yji, j=1,…, P, sendo P o nº de produtos, e escrever as restrições correspondentes.
2. Coordenação de encomendas
- Se há encomenda de A, então deve também haver de B.
- A encomenda conjunta de A e B traz um desconto (A e B em separado, 100 EUR cada, A e B em conjunto, 150 EUR).
- (…)
3. Descontos de quantidade
- Para quantidades acima de X, há desconto de 5% no preço de A - (…)
2. Coordenação de encomendas
- Se há encomenda de A, então deve também haver de B.
6. Aplicação a gestão de stocks
~
Equivalente algébrico, para cada período :
1
1,
1,...,
A B A B Ai BiY
Y
Y
Y
j
y
y
j
J
⇒
⇔
∨
−
+
≥
=
6. Aplicação a gestão de stocks
3. Descontos de quantidade
- Para quantidades acima de 50, há desconto de 5% no preço de A. O preço base é 100 EUR/un.
3. Descontos de quantidade
- Para quantidades acima de 50, há desconto de 5% no preço de A. O preço base é 100 EUR/un.
Necessário incluir custo de compra na função objectivo:
6. Aplicação a gestão de stocks
1
CustoTotal
: custo de compra da quantidade no mês
i i N i E i P i Q ,y i i i min ( y C Exm C CC ) CC Q i = =
∑
+ + Custo de compra CC:- CC=0, se não houver encomenda - CC=100Q, se Q<=50
6. Aplicação a gestão de stocks
Formulação com duas quantidades Q1 e Q2 (omitindo o índice i):
1 2 1 2 100 95 CC Q Q Q Q Q = + = + 1 2 1 2 0 0 50 0 1 0 50 z Q Q z Q Q = ⇒ ≤ ≤ ∧ = = ⇒ = ∧ >
Introdução da variável binária z:
1