Otimizao:
Programao Linear
Marcone Jamilson Freitas Souza
Departamento de Computao
Programa de Ps-Graduao em Cincia da Computao
Universidade Federal de Ouro Preto
http://www.decom.ufop.br/prof/marcone
E-mail: marcone.freitas@yahoo.com.br
1
Roteiro
Otimizao
Introduo
Motivao
Modelagem em Programao Matemtica
Programao Linear: princpios bsicos
Programao Linear por Metas (Goal programming)
Programao Inteira: princpios bsicos
Softwares de Otimizao: LINGO / COIN-CLP / GLPK / CPLEX
Conceitos bsicos
Heursticas construtivas
Heursticas clssicas de refinamento
Metaheursticas
Simulated Annealing
Variable Neighborhood Search (VNS)
Iterated Local Search (ILS)
Algoritmos Genticos
Otimizao
(10)
12
16
(10)
3 (13)
[50]
(9)
(4)
(10)
7
5
6 (10)
10 (10)
9 (7)
13 (5)
(10)
11
8
(10)
15
14
(3)
(10)
(10)
12
16
(10)
3 (13)
[50]
(9)
(4)
(10)
7
5
6 (10)
(10)
10
9 (7)
13 (5)
(10)
11
8
(10)
15
14
(3)
(10)
Dentre todas
as possveis
roteirizaes,
determine
aquela que
minimiza a
distncia total
5
percorrida
10
Reduo de um tripulante!
11
12
Vitria
(1)
3
1712Km
1372Km
1372Km
Atltico
586Km
3
Santos
Vitria
Atltico
(2)
3 586Km
Santos
1712Km
3090Km
1712Km
2
Grmio
Grmio
Economia = 1378 Km
13
( n 1)
n
2
14
Restries do problema
1.
2.
3.
4.
5.
6.
Dois times jogam entre si duas vezes, uma no turno e a outra no returno,
alternando-se o mando de campo entre os mesmos
Nas duas primeiras rodadas de cada turno, cada time alternar seus jogos, sendo
um em casa e o outro na casa do adversrio. Por ex.: 1 fora, 2 em casa
As duas ltimas rodadas de cada turno devem ter a configurao inversa das duas
primeiras rodadas de cada turno com relao ao mando de campo. Ex.: Penltima
em casa, ltima fora
No pode haver jogos entre times do mesmo estado na ltima rodada
A diferena entre os jogos feitos em cada turno em casa e fora de casa de um time
no pode ser maior que uma unidade
Um time no pode jogar mais que duas vezes consecutivas dentro ou fora de casa
15
Biajoli et al . (2004)
CBF
ILS-MRD
DIST
DIF
DIST
DIF
DIST
DIF
%MDIST %MDIF
16,61
40,89
bssp2004
905316
86610
789480
53309
754935
51199
bssp2005
838464
70655
696800
46821
16,90
33,73
bssp2006-A
658195
50769
562886
37628
14,48
25,88
bssp2006-B
998675
61454
967374
23848
3,13
61,19
Economia possvel:
Considerando o custo do quilmetro areo a R$0,70
Delegao de 20 pessoas
Campeonatos 2004 e 2005, Srie A: Aprox. R$ 2 milhes
Campeonato 2006, Srie A: Aprox. R$ 1 milho
Campeonato 2006, Srie B: Aprox. R$ 500 mil
16
18
Empilhadeira (Stacker)
19
20
21
SiO2
Al2O3
Mn
MgO
H2O
+6,3
+1,0
-0,15
LSG
4,35
0,040
1,00
0,600
11,00
37,00
LSE
3,85
0,028
0,80
0,300
6,50
8,00
27,00
META
3,60
0,022
0,70
0,150
6,50
61,00
22,00
LIE
LIG
58,00
52,00
CRIT.
CR
CR
CR
CR
Fe
SiO2
Al2O3
Mn
MgO
H2O
+6,3
+1,0
-0,15
LSG
5,10
0,059
1,80
7,50
44,00
LSE
4,50
0,043
1,40
6,50
36,00
META
4,20
0,035
1,20
0,170
6,00
53,00
32,00
LIE
LIG
65,00
-
3,70
2,70
CRIT.
CR
MI
CR
MI
CR
SECA
SFCA
22
5,60
5,40
5,20
LSE
5,00
Meta
4,80
Manual
4,60
Sistema
4,40
4,20
4,00
1
Lotes
23
0,025
Teor de P (%)
0,020
LSE
0,015
Meta
Manual
0,010
Sistema
0,005
0,000
1
Lotes
24
0,80
Teor de Al2O3 (%)
0,70
0,60
LSE
0,50
Meta
0,40
Manual
0,30
Sistema
0,20
0,10
0,00
1
Lotes
25
0,300
Teor de Mn (%)
0,250
LSE
0,200
Meta
0,150
Manual
0,100
Sistema
0,050
0,000
1
Lotes
26
12,00
10,00
LSE
8,00
Meta
6,00
Manual
4,00
Sistema
2,00
0,00
1
Lotes
27
Carregamento de produtos em
Navios
Navio
Poro 1
Poro 2
...
Poro N
Produto 1
Produto 2
...
Produto m
28
Carregamento de produtos em
Navios: Caractersticas do problema
8 tipos de turnos:
7h-13h
13h-19h
19h-1h
1h-7h
Dia til (horrios normal e noturno)
Sbado (horrios normal e noturno)
Domingo (horrios normal e noturno)
Feriado (horrios normal e noturno)
29
Carregamento de produtos em
Navios: Caractersticas do problema
30
Carregamento de produtos em
Navios: Caractersticas do problema
Carregamento de produtos em
Navios: Caractersticas do problema
Modelos de Otimizao
Programao matemtica:
Fundamentados na matemtica
Mtodos exatos: garantem a gerao da soluo tima
Mtodo mais difundido: Programao Linear (PL)
Desvantagens:
Heursticos:
Fundamentados na Inteligncia Artificial
Mtodos aproximados: No garantem a otimalidade da soluo
final
Vantagens:
De fcil modelagem
Boas solues podem ser obtidas rapidamente
33
Modelos de Programao
Linear
Formulao algbrica:
n
otimizar
f ( x) = c j x j
j =1
funo objetivo
aij x j = bi i = 1,..., m
j =1
sujeito a
restries
x j 0 j = 1,..., n
condies de
no-negatividade
34
Modelos de Programao
Linear
1.
2.
3.
Modelos de Programao
Linear
4.
5.
6.
36
Terminologia
Soluo
Soluo vivel
Soluo tima
Hipteses assumidas em um
modelo de programao linear
Proporcionalidade
Divisibilidade
Aditividade
Certeza
Problema da Mistura de
Minrios
39
Problema da Mistura de
Minrios
Pilha
50% Fe
6 $/t
60% Fe
Pilha
10 $/t
Soluo 2:
1t. Pilha 1 + 1t. Pilha 2 = 2t.
Custo da mistura = $ 16
55% Fe
1t
Pilha
1t
Mistura
requerida:
2 t., 55%
Fe
9 $/t
2t
Soluo 1:
2t. Pilha 3 = 2t. minrio
Ferro na mistura = 55%
Custo da mistura = $ 18
40
min
c x
iPilhas
i i
ij i
iPilhas
m
iPilhas
tu j j Parametros
t x
x
ij i
iPilhas
iPilhas
tl j j Parametros
xi Qui i Pilhas
iPilhas
=p
xi 0 i Pilhas
% do parmetro j na mistura
no pode superar o valor
mximo permitido
% do parmetro j na mistura
no pode ser inferior ao
valor mnimo permitido
A quantidade a ser
retomada em cada pilha i
est limitada Qui
A mistura deve ter peso
total p
No-negatividade
42
c x
min
iPilhas
(t
i i
ij
tu j )xi 0 j Parametros
(t
tl j )xi 0 j Parametros
iPilhas
iPilhas
ij
xi Qui i Pilhas
iPilhas
=p
xi 0 i Pilhas
Valor do parmetro j na
mistura no pode superar o
valor mximo permitido
Valor do parmetro j na
mistura no pode ser inferior
ao valor mnimo permitido
A quantidade a ser
retomada em cada pilha i
est limitada Qui
A mistura deve ter peso
total p
No-negatividade
43
Restries so rgidas
Na prtica, pode no haver soluo
Nesse caso, otimizador aplicado ao modelo
retorna que no h soluo vivel
Qual a melhor soluo invivel?
44
Restries do tipo
x1 + x2 10
min dp
x1 + x2 dp 10
Desvio positivo (dp):
Mede o quanto se
ultrapassou de 1046
Restries do tipo
x1 + x2 10
min dn
x1 + x2 + dn 10
Desvio negativo (dn):
Mede o quanto faltou
para chegar a 1047
Restries do tipo =
x1 + x2 = 10
min dp + dn
x1 + x2 dp + dn = 10
Mede o que supera 10
Mtodo hierrquico:
50
wpe dpe
min
jParametros
(t
iPilhas
(t
iPilhas
ij
wne dne
jParametros
ij
xi Qui i Pilhas
iPilhas
=p
xi 0 i Pilhas
dne j , dpe j 0 j Parametros
Peso associado ao
desvio negativo
No-negatividade
51
52
53
54
(wpe dpe
min
jParametros
xi Qui i Pilhas
(t
iPilhas
iPilhas
iPilhas
ij
(t
(t
ij
ij
iPilhas
=p
xi 0 i Pilhas
dne j , dpe j , dnm j , dpm j 0 j Parametros
No-negatividade
55
a)
b)
c)
56
Fundamentao do Mtodo
SIMPLEX
Seja resolver o seguinte PPL:
max
x1
x1
x1
x1
+ 2 x2
+
,
x2
x2
x2
2
2
3
0
57
Fundamentao do Mtodo
SIMPLEX
max
x2
A = (0,0)
B = (2,0)
C = (2,1)
D = (1,2)
E = (0,2)
F = (0,3)
G = (2,2)
H = (3,0)
x1 2
F
x* = (1,2), z* = 5
E
z=
x1
x1
+ 2 x2
2
+
,
x2
x2
x2
3
0
x2 2
x1
x1
C
x2
x2
+2
x1
ma
xz
=x
x1
58
Teorema Fundamental da
Programao Linear
O timo de um PPL, se existir, ocorre em pelo
menos um vrtice do conjunto de solues
viveis.
Situaes que podem ocorrer com relao ao
conjunto M de solues viveis:
1)
M = {}
Neste caso no h soluo vivel => No h soluo
tima
59
Teorema Fundamental da
Programao Linear
2)
M no vazio
a)
M limitado
x*
x*
y*
60
Teorema Fundamental da
Programao Linear
2)
M no vazio
b)
M ilimitado
x*
x*
61
Teorema Fundamental da
Programao Linear
2)
M no vazio
b)
M ilimitado
x*
y*
No h solues timas
62
Forma-padro de um PPL
(min) ou (max) z = c j x j
j =1
a x
j =1
ij
= bi i = 1,..., m
x j 0 j = 1,..., n
sendo
bi 0 i = 1,..., m
63
Restries do tipo
2 x1 + 3 x2 5
2 x1 + 3 x2 + x3 = 5
x3 0
Restries do tipo
x1 + 6 x2 7
x1 + 6 x2 x4 = 7
x4 0
64
Existe bi < 0
Soluo: Basta multiplicar restrio i por -1
PPL de maximizao:
max f(x) = - min {-f(x)}
66
Caracterizao de vrtice
max
x1
+ 2 x2
max
2
x1
x1
x2
x2
x1
x2
2
3
0
x1
+ 2 x2
x1
x1
x1
+ 0 x3
+
,
x2
x2
x2
+ 0 x4
x3
+
+ 0 x5
x3
x4
x4
+
,
x1
1 0 1 0 0 x2 2
0 1 0 1 0 x = 2
3
1 1 0 0 1 x4 3
x5
A
b
x
x5
x5
=
=
=
67
2
2
3
0
Caracterizao de vrtice
x2
A = (0,0)
B = (2,0)
C = (2,1)
D = (1,2)
E = (0,2)
F = (0,3)
G = (2,2)
H = (3,0)
x1 2
max
x1
+ 2 x2
x1
C
x1
+
x2
x1
x1
+ 0 x3
+
,
x2
x2
x2
x2 2
+ 0 x4
x3
+
+ 0 x5
x3
x4
x4
+
,
x5
x5
x1
=
=
=
68
2
2
3
0
Caracterizao de vrtice
m
69
Caracterizao de vrtice
Definies
B = base
x = (xB xR)t
Princpio de funcionamento do
Algoritmo SIMPLEX
SBV inicial
No
Sim
Determine VB que
deve deixar a base
Encontre
nova SBV
72
Princpio de funcionamento do
Algoritmo SIMPLEX
max
x1
+ 2 x2
x1
x1
x2
x2
x1
x2
2
3
0
max
x1
+ 2 x2
x1
x1
x1
+ 0 x3
+
,
+ 0 x4
+
,
=
=
=
2
2
3
0
x3
+
x2
x2
x2
+ 0 x5
x3
x4
x4
x5
x5
x1
1 0 1 0 0 x2 2
0 1 0 1 0 x = 2
3
1 1 0 0 1 x4 3
x5
73
Princpio de funcionamento do
Algoritmo SIMPLEX
VB
x1
x2
x3
x4
x5
x3
x4
x5
Princpio de funcionamento do
Algoritmo SIMPLEX
VB
x1
x2
x3
x4
x5
x3
x4
x5
VB = {x3 = 2, x4 = 2, x5 = 3}
VNB = {x1 = 0, x2 = 0}
Soluo inicial:
x(0) = (0 0 2 2 3)t ; z = 0 75
Princpio de funcionamento do
Algoritmo SIMPLEX
VB
x1
x2
x3
x4
x5
(L1)
x3
(L2)
x4
(L3)
x5
(L4)
Transformaes
L3 -L2 + L3
elementares:
L4 -2L2 + L4
76
Princpio de funcionamento do
Algoritmo SIMPLEX
VB
x1
x2
x3
x4
x5
(L1)
x3
(L2)
x2
(L3)
x5
-1
-2
z-4
(L4)
VB = {x3 = 2, x2 = 2, x5 = 1}
VNB = {x1 = 0, x4 = 0}
Final da Iterao 1:
x(1) = (0 2 2 0 1)t ; z = 4 77
Princpio de funcionamento do
Algoritmo SIMPLEX
VB
x1
x2
x3
x4
x5
(L1)
x3
(L2)
x2
(L3)
x5
-1
-2
z-4
(L4)
L1 -L3 + L1
L4 -L3 + L4
78
Princpio de funcionamento do
Algoritmo SIMPLEX
VB
x1
x2
x3
x4
x5
(L1)
x3
-1
(L2)
x2
(L3)
x1
-1
-1
-1
z-5
(L4)
VB = {x1 = 1, x2 = 2, x3 = 1}
VNB = {x4 = 0, x5 = 0}
Final da Iterao 2:
x(2) = (1 2 1 0 0)t ; z = 5 79
Interpretao geomtrica
x2
A = (0,0)
B = (2,0)
C = (1,1)
D = (1,2)
E = (0,2)
F = (0,3)
G = (2,2)
H = (3,0)
x1 2
max
x1
+ 2 x2
x1
C
x1
+
x2
x1
x1
+ 0 x3
+
,
x2
x2
x2
x2 2
+ 0 x4
x3
+
+ 0 x5
x3
x4
x4
+
,
x5
x5
x1
=
=
=
80
2
2
3
0
x1
+ 2 x2
x1
x1
x2
x2
x1
x2
2
3
0
max
x1
+ 2 x2
x1
x1
x1
+ 0 x3
+
,
+ 0 x4
=
=
=
2
2
3
0
x3
+
x2
x2
x2
+ 0 x5
x3
x4
x4
x5
x5
x1
1 0 1 0 0 x 2 2
0 1 0 1 0 x = 2
3
1 1 0 0 1 x4 3
x5
81
x1 2
max
x1
+ 2 x2
x1
C
x1
+
x2
x1
x1
+ 0 x3
+
,
x2
x2
x2
x2 2
+ 0 x4
x3
+
+ 0 x5
x3
x4
x4
x5
x5
x1
=
=
=
82
2
2
3
0
z a = xia i
i
Segunda fase:
+ 0 x2 + 0 x3 + 0 x4 + 0 x5 + 1x1a = z a
+ 2 x2 + 0 x3 + 0 x4 + 0 x5 + 0 x1a = z
x1
x1
x2
x2
x1
x2
+
,
x5
x1a
= 2
= 2
= 3
x5
, x1a
x3
x3
x4
x4
84
x1
x2
x3
x4
x5
x 1a
(L1)
x3
(L2)
x4
(L3)
x 1a
-1
(L4)
za
(L5)
85
x1
x2
x3
x4
x5
x 1a
(L1)
x3
(L2)
x4
(L3)
x 1a
-1
(L4)
-1
-1
za -3
(L5)
L3 -L1 + L3
L4 L1 + L4
L5 -L1 + L5
86
x1
x2
x3
x4
x5
x 1a
(L1)
x1
(L2)
x4
(L3)
x 1a
-1
-1
(L4)
-1
za -1
(L5)
-1
z-2
L2 -L3 + L2
L4 L3 + L4
L5 -2L3 + L5
87
x1
x2
x3
x4
x5
x 1a
(L1)
x1
(L2)
x4
-1
(L3)
x2
-1
-1
(L4)
za
(L5)
-2
z-4
x = (2, 1); z = 4
88
x1
x2
x3
x4
x5
(L1)
x1
(L2)
x4
(L3)
x2
-1
-1
z-4
(L4)
L3 L2 + L3
L4 -2L2 + L4
89
x1
x2
x3
x4
x5
(L1)
x1
(L2)
x5
(L3)
x2
-1
-2
z-6
(L4)
z* = 6
90
x1 2
max
x1
+ 2 x2
x1
C
x1
+
x2
x1
x1
+ 0 x3
+
,
x2
x2
x2
x2 2
+ 0 x4
x3
+
+ 0 x5
x3
x4
x4
x5
x5
x1
=
=
=
91
2
2
3
0
x1
+ 2 x2
x1
x1
x2
x2
x1
x2
2
3
0
max
x1
+ 2 x2
x1
x1
x1
+ 0 x3
+
,
+ 0 x4
=
=
=
2
2
3
0
x3
+
x2
x2
x2
+ 0 x5
x3
x4
x4
x5
x5
x1
1 0 1 0 0 x2 2
0 1 0 1 0 x = 2
3
1 1 0 0 1 x4 3
x5
92
min 0 x1 + 0 x2 + 0 x3 + 0 x4
max x1 + 2 x2 + 0 x3 + 0 x4
x1
x1
x2
x2
x1
x2
x3
+
+ 0 x5 + 1x1a + 1x2a = z a
+ 0 x5 + 0 x1a + 0 x2a = z
x3
x2a
= 2
= 2
= 3
, x2a
x1a
x4
x4
x5
x5
+
, x1a
93
x1
x2
x3
x4
x5
x 1a
x 2a
(L1)
x 1a
-1
(L2)
x4
(L3)
x 2a
-1
(L4)
za
(L5)
L4 -L1 L3 + L4
94
x1
x2
x3
x4
x5
x 1a
x 2a
(L1)
x 1a
-1
(L2)
x4
(L3)
x 2a
-1
(L4)
-2
-1
za -5
(L5)
L3 -L1 + L3
L4 2L1 + L4
L5 -L1 + L5
95
x1
x2
x3
x4
x5
x 1a
x 2a
(L1)
x1
-1
(L2)
x4
(L3)
x 2a
-1
-1
(L4)
-1
-1
za -1
(L5)
-1
z-2
L2 -L3 + L2
L4 L3 + L4
L5 -2L3 + L5
96
x1
x2
x3
x4
x5
x 1a
x 2a
(L1)
x1
-1
(L2)
x4
-1
-1
(L3)
x2
-1
-1
(L4)
za
(L5)
-1
-2
z-4
x = (2, 1); z = 4
97
x1
x2
x3
x4
x5
(L1)
x1
-1
(L2)
x4
-1
(L3)
x2
-1
-1
z-4
(L4)
L3 L2 + L3
L4 -2L2 + L4
98
x1
x2
x3
x4
x5
(L1)
x1
-1
(L2)
x5
-1
(L3)
x2
-2
z-6
(L4)
99
x1 2
max
x1
+ 2 x2
x1
C
x1
+
x2
x1
x1
+ 0 x3
+
,
x2
x2
x2
x2 2
+ 0 x4
x3
+
+ 0 x5
x3
x4
x4
x5
x5
x1
=
=
=
100
2
2
3
0
Dualidade
min c t x = f ( x)
s.a. : Ax b
x0
min c j x j
j =1
n
x j 0 j = 1,..., n
101
Dualidade
max ub = f D ( x)
s.a. : At u t c
u0
max bi ui
i =1
m
ui 0 i = 1,..., m
102
Dualidade:
Regras de transformao
Primal
Dual
Restrio
qq.
Varivel
qq.
MIN
Dual
Varivel
MAX
Restrio
Primal
103
Dualidade:
Vantagens
Dual
A base no DUAL
menor!!!
104
Dualidade:
Vantagens
(valor do primal)
x* = u*
fD(x)
(valor do dual)
105
Dualidade:
Interpretao Econmica
max c j x j = f ( x)
j =1
n
xj 0
min bi ui = f D (u )
i =1
m
j = 1,..., n
PRIMAL
ui 0
i = 1,..., m
DUAL
106
Dualidade:
Interpretao Econmica
f ( x ) = f D (u ) = u b = b u
*
i =1
*
i i
f ( x )
*
=u
b
Dualidade:
Interpretao Econmica
Dualidade:
Interpretao Econmica
109
Dualidade:
Interpretao Econmica
m
= b u + u = f (x ) + u
i =1
*
i i
*
k
*
k
Anlise de Sensibilidade
(Ps-otimizao)
xB
Anlise de Sensibilidade
(Ps-otimizao)
(L1)
xB
(L2)
L2 -(cB)t L1+ L2
(xR)t
(xB)t
B-1R
B-1b
(cR)t
(cB)t
f(x)
112
Anlise de Sensibilidade
(Ps-otimizao)
(L1)
(xR)t
(xB)t
B-1R
B-1b
(cR)t - (cB)tB-1R
(0)t
f(x)-(cB)tB-1b
xB
(L2)
Seja: Y = B-1R
yj = B-1aj
xB = B-1b
z = (cB)tB-1R
zj = (cB)tB-1aj
113
Anlise de Sensibilidade
(Ps-otimizao)
(L1)
(L2)
xB
(xR)t
(xB)t
xB
(cR)t - z
(0)t
f(x)-f(x)
114
Anlise de Sensibilidade:
Ex. 1 Carteira de Investimentos
Considerando a tabela abaixo de retorno, risco e maturidade dos diversos ttulos, determine a
estratgia tima para o investidor de forma que a rentabilidade de sua aplicao seja mxima.
Ttulo
Retorno anual
(%)
Maturidade
(anos)
Risco
8,7
15
1 Muito baixo
9,5
12
3 Regular
12,0
4 Alto
9,0
2 Baixo
13,0
11
4 Alto
20,0
5 Muito alto
115
rendimento x
j
jTitulos
x j 0,25 j Titulos
0,50
0,45
j
jTitulos | maturidade j 10
j
jTitulos | risco j 4
jTitulos
=1
116
2.
3.
4.
5.
Anlise de Sensibilidade:
Ex. 2 Produo de automveis
Fbrica
15
10
118
Anlise de Sensibilidade
Ex. 2 Produo de automveis
min
c x
j
jFabricas
MObra x TotMObra
MatPrima x TotMatPrima
jFabricas
jFabricas
j
jFabricas
= Producao
Anlise de sensibilidade:
Ex. 2 Produo de automveis
1.
2.
3.
4.
5.
6.
7.
max
x1
x1
+ 19 x2
+ 20 x2
50
x1
x2
20
x1
x2
Z+
121
x1
x2
Z=x1+19*x2
19
Invivel
19
38
18
Invivel
18
37
Melhor
valor
122
Programao inteira:
Branch-and-Bound
Maximizar z = 5 x1 + 8 x2
sujeito a :
x1 + x2 6
5 x1 + 9 x2 45
Exemplo extrado de:
GOLDBARG & LUNA (2005), Otimizao
Combinatria, Editora Campus.
x1 , x2 Z
+
123
Programao inteira:
Branch-and-Bound
Soluo Contnua
9
x1 =
4
x2 =
15
4
Z= 41
1
4
Disjuntiva
15
15
x2 + 1 4 ou x2 3
4
4
124
Programao inteira:
Branch-and-Bound
x2
Solues Inteiras
z=5x1 +8x2
B
5x1 + 9x2 =45
x1 + x2 =6
x1
125
Programao inteira:
Branch-and-Bound
126
Programao inteira:
rvore de Branching
P0
x 1 =2,25 x 2 =3,75
z=41,25
x 2 3,0
x 2 4,0
P1
x 1 =3,0 x 2 =3,0
z=39
P2
x 1 =1,8 x 2 =4,0
z=41
x 1 1,0
x 1 2,0
P3
Invivel
P4
x 1 =1,0 x 2 =4,44
z=40,56
x 2 5,0
P5
x 1 =0 x 2 =5
z=40
x 1 4,0
P6
x 1 =1,0 x 2 =4,0
z=37
127
Programao inteira:
Branch-and-Bound
min z = 4 x1 + 3x2
8 x1 + 3x2 24
5 x1 + 6 x2 30
x1 + 2 x2 9
x1 , x2 +
128
Programao inteira:
rvore de Branching
129
Programao inteira:
rvore de Branch-and-Bound
130
Exerccios de modelagem em
programao matemtica
Sem hora-extra
Com hora-extra
Mochila 0-1
Mochila 0-1 Mltipla
Mochila Inteira
Mochila Inteira Mltipla
131
132
133
wpm dpm
min
jParametros
iPilhas
iPilhas
ij
iPilhas
iPilhas
jParametros
i
ij
ij
tl j )xi 0 j Parametros
x + dpp dnp = p
iPilhas
dnpilhai , xi 0 i Pilhas
wpe dpe
jParametros
xi Qui i Pilhas
(t
(t
wnm dnm
ij
(t
wnpilha dnpilha
iPilhas
(t
xi retmin yi i Pilhas
xi = 0 i Pilhas | desconsiderari = 1
yi {0,1} i Pilhas
135
Problema de Transporte
H um conjunto de minas
produtoras de minrio
H um conjunto de usinas
que processam os minrios
provenientes das minas
H um custo de transporte
de minrio de uma mina
para uma usina
Cada mina tem uma
capacidade de produo
mensal
Cada usina tem uma
demanda mensal
Cada mina tem um custo
fixo se for usada
Determinar a estratgia
tima de transporte
Usinas
Cap
Mina
Custo
(t/ms)
($/t)
10
13
11500 50000
14
14500 40000
6,5
10,8
12,4
13000 30000
8,5
12,7
9,8
12300 25500
Demanda
(t/ms)
136
Problema de Transporte
cap1
f1
c11
cap2
cap3
cap4
f2
f3
f4
Minas
dem1
c12
c13
dem2
dem3
Usinas
137
Problema de Transporte
Dados de entrada:
Minas = Conjunto de minas
Usinas = Conjunto de usinas
capi = capacidade de produo, em toneladas/ms, da mina i
demj = quantidade de minrio demandado pela usina j, em ton/ms
fi = custo fixo de uso da mina i, em $
cij = custo de transporte de minrio proveniente da mina i para
abastecer a usina j, em $/tonelada/ms
Variveis de deciso:
xij = Quantidade de minrio, em toneladas/ms, a ser transportado
da mina i para abastecer a usina j
yi = 1 se a mina i ser usada e 0, caso contrrio
138
Problema de Transporte
(Caso em que: Oferta > Demanda)
Como oferta (minas) > demanda (usinas):
1.
Funo objetivo
Minimizar o custo de transporte mais o custo fixo pelo uso
das minas usadas
min
iMinas jUsinas
cij xij +
fy
iMinas
139
Problema de Transporte:
modelo de PL
Restries:
2.
a)
jUsinas
b)
capi i Minas
ij
iMinas
ij
= dem j j Usinas
140
Problema de Transporte:
modelo de PL
c)
yi
d)
jUsinas
capi
ij
i Minas
No negatividade e integralidade
yi {0,1} i Minas
xij 0 i Minas, j Usinas
141
iMinas jUsinas
cij xij +
iMinas
ij
= capi i Minas
ij
dem j j Usinas
jUsinas
iMinas
142
Alocao de Pessoal
Turno
Horrio # enf.
08-12
51
12-16
58
16-20
62
20-24
41
24-04
32
04-08
19
143
Problema de Alocao de
Pessoal
Dados de entrada:
Turnos = Conjunto de turnos de trabalho
reqi = nmero de enfermeiros requeridos no turno i
ci = custo do enfermeiro que comea sua jornada no incio do
turno i, em $
Variveis de deciso:
xi = Nmero de enfermeiros que comeam sua jornada de trabalho
no incio do turno i
144
1.
min
c x
iTurnos
i i
Restries
2.
a)
xi 1 + xi reqi i Turnos
b)
No-negatividade e integralidade
xi Z + i Turnos
145
@wrap(4, 7) = 4 + k 7 = 4 + 0 7 = 4
@wrap(8, 7) = 8 + k 7 = 8 + (-1) 7 = 1
@wrap(9, 7) = 9 + k 7 = 9 + (-1) 7 = 2
@wrap(0, 7) = 0 + k 7 = 0 + (1) 7 = 7
@wrap(-1, 7) = -1 + k 7 = -1 + (1) 7 = 6
@wrap(-2, 7) = -2 + k 7 = -2 + (1) 7 = 5
Problema de Alocao de
Pessoal com hora-extra
Turno
Horrio # enf.
08-12
51
12-16
58
16-20
62
20-24
41
24-04
32
04-08
19
147
Problema de Alocao de
Pessoal com hora-extra
Dados de entrada:
Turnos = Conjunto de turnos de trabalho
reqi = nmero de enfermeiros requeridos no turno i
csemhextrai = custo do enfermeiro que comea sua jornada no incio
do turno i, em $, e no faz hora-extra
ccomhextrai = custo do enfermeiro que comea sua jornada no incio
do turno i, em $, e FAZ hora-extra
phe = percentual mximo de enfermeiros fazendo hora-extra em um
turno de trabalho
Variveis de deciso:
xi = Nmero de enfermeiros que comeam sua jornada de trabalho no
incio do turno i e NO FAZEM hora-extra
yi = Nmero de enfermeiros que comeam sua jornada de trabalho no
incio do turno i e FAZEM hora-extra
148
1.
min
csemhextra x + ccomhextra y
iTurnos
i i
iTurnos
Restries
2.
a)
xi + xi 1 + yi + yi 1 + yi 2 reqi i Turnos
b)
yi 2 phe ( xi + xi 1 + yi + yi 1 + yi 2 ) i Turnos
c)
No-negatividade e integralidade
xi , yi Z + i Turnos
149
150
poltica da empresa
estocar um mximo de
10 bobinas de cada tipo
(Esta ao evita a
imobilizao de capital,
uma vez que so
incertos os prximos
pedidos).
Os possveis padres
de corte estabelecidos
pelo setor tcnico so
especificados na tabela
ao lado.
Qual a programao de
corte a ser adotada que
minimiza o desperdcio
face necessidade de
produo?
Perda
(cm)
2,5
12,5
10
151
152
perda x
iPadroes
a x
ij i
iPadroes
i i
demanda j j Bobinas
ij i
iPadroes
O excesso de bobinas
do tipo j no pode
exceder a estmax
xi Z + i Padroes
153
A funo objetivo tem agora uma segunda parcela, que mede a perda
com o excesso de bobinas cortadas. Nessa parcela, para cada largura
de bobina requerida, o nmero de bobinas em excesso multiplicado
pela largura da bobina, resultando na perda em cm devido ao excesso
de bobinas cortadas.
min
perdai xi +
iPadroes
largura
a
x
demanda
j
ij i
j
jBobinas
iPadroes
154
92 barras de 2 metros
59 barras de 3 metros
89 barras de 4 metros
155
156
2m
3m
4m
Perda
157
a x
ij i
iPadroes
demanda j j Barras
xi Z i Padroes
158
Dados de entrada:
Objetos = Conjunto dos diferentes tipos de objeto
cap = Capacidade da mochila
wj = peso (weight) do objeto j
pj = benefcio (profit) proporcionado pelo uso do objeto j
Variveis de deciso:
xj = 1 se o objeto j for alocado mochila e zero, caso contrrio
159
pjxj
w j x j cap
jObjetos
jObjetos
x j {0,1} j Objetos
160
161
p x
iMochilas jObjetos
j ij
jObjetos
ij
iMochilas
1 j Objetos
163
p x
iMochilas jObjetos
j ij
jObjetos
ij
iMochilas
u j j Objetos
164
Caminho 1
Frente 1
Carregadeira 1
Caminho 2
Mistura
Frente 2
Desejada
Carregadeira 2
Caminho 3
Frente 3
Caminho 4
ca min hoes
165
min
j d j +
j parametros
+j d +j + P + + P+
jparametros
Desvio negativo de
meta do
parmetro j na
mistura (t/h)
Desvio positivo da
meta de produo (t/h)
Desvio positivo de
meta do
parmetro j na
Desvio negativo da
mistura (t/h) meta de produo (t/h)
166
(t
ij
- tu j )xi 0
j parametros
iminerio
(t
ij
- tl j )xi 0
j parametros
iminerio
j parametros
iminerio
167
i
iminerio
Pl
i
iminerio
Pu
+
x
+
P
P
= Pr
i
iminerio
168
rem
i
iminerio
iesteril
iesteril
xi
iminerio
rem
iesteril
rem
iminerio
90 (t/h)
1000 (t/h)
0,10
90 >= 100
100 (t/h)
1000 (t/h)
0,10
169
ik
kcarregadeiras
y11 = 1
1k
F1
Cg1
=1
y12 = 0
Cg2
i frentes
y21 = 0
y22 = 1
2k
=1
F2
ik
k carregadeiras
y11 = 1
F1
i frentes
i1
=1
y12 = 0
i2
Cg1
=1
Cg2
y21 = 0
F2
y22 = 1
171
xi
Cu
k
kcarregadeiras
yik i frentes
xi
Cl y
k ik
kcarregadeiras
i frentes
172
nT
il il
60
l ca minhoes
i frentes
n T
i1 i1
F1
= 50 min
Ca1
F2
F3
n T
i2 i2
= 55 min
Ca2
ik
kCarregadeiras |
compatibilidadelk =1
i frentes, l caminhoes
Ca1
Cgk
F2
y2k = 1
174
xi =
n cap
il
lcaminhoes
n11 = 3 e cap1 = 50 t
x1 =
n cap
1l
i frentes
Ca1
n11 = 2 e cap1 = 50 t
x2 =
= 330 t/h
F1
n21 = 2 e cap2 = 50 t
n31 = 1 e t31 = 80 t
Ca2
2l capl
= 260 t/h
F2
Ca3 n = 2 e cap = 80 t
11
1
175
i frentes
yik {0,1}
i frentes, k carregadeiras
nil +
i frentes,l ca minhoes
d j ,d +j 0
j parametros
P ,P+ 0
176
Determinao do Ritmo de
Lavra
Frente 1
CO
Frente 3
CA
Frente 2
Carregador 1
Carregadeira
CO
Frente 5
Hopper
Frente 4
CO
CA
Frente 6
Carregador 2
Correia Principal
USINA
- Produo
- Qualidade
CO
177
Determinao do Ritmo de
Lavra: Dados de Entrada
CO
Cu (prod. max.)
fixo
Cl (prod. min.)
fixo
fixo
178
Determinao do Ritmo de
Lavra: Objetivos
179
Determinao do Ritmo de
Lavra: Funo MultiObjetivo
min fo =
j parametros
j parametros
dnej
dpej
wp
pn
pp
wdp
dnp
dpp
180
i frentes
i frentes
i frentes
181
Determinao do Ritmo de
Lavra: Restries
Restries de Produo:
Ritmo total de lavra no pode superar o limite mximo de produo (pu)
x dpp pu
iFrentes
Ritmo total de lavra no pode ser menor que o limite mnimo de produo (pl)
x + dnp pl
i
iFrentes
x + pn pp = pr
i
iFrentes
182
Determinao do Ritmo de
Lavra: Restries
xi
Cu
ik
kCarregadeiras
yik i frentes
xi
Cl
k ik
kCarregadeiras
i frentes
183
Determinao do Ritmo de
Lavra: Restries
ik
kCarregadeiras
1 i Frentes
iFrentes
ik
CAR modelo 1
carregdispk k Carregadeiras
3 unid
y11+y21+y31+y41 <= 3
4 Frentes
184
Determinao do Ritmo de
Lavra: Restries
185
Determinao do Ritmo de
Lavra: Restries
Restries de Capacidade:
O ritmo de lavra total das frentes que operam com o carregador l no pode
ultrapassar a capacidade do carregador
iFrentes
F1
CO
F2
CO
x1 + x2 <= 1400
Carregador 1
1400 t/h
O ritmo de lavra total das frentes que operam com caminho no pode
ultrapassar a capacidade do Hopper
iFrentes
F4
F3
CA
Hopper
2000 t/h
CA
x3 + x4 <= 2000
186
187
Baliza(k): Conjunto de balizas do ptio k. Para cada ptio k o nmero de balizas nb varia no intervalo [1,
nb(k)]. Para o ptio A, tem-se: Baliza (A) = {-25, -20, -15, ...,330}, isto , nb(A) = 71;
Cada pilha situada em uma dada baliza i de um dado ptio k, dividido em duas partes: uma superior,
denotada por sup, outra inferior, denotada por inf.
Eliminarijk: Parmetro que assume o valor 1 se a pilha situada na baliza i, parte j do ptio k deve ser
completamente eliminada, como desejo do operador ;
temijl: Parmetro que assume valor 1 se h um conjunto de pilhas contguas iniciando na baliza i, parte j, do
ptio k. Para as demais balizas, o parmetro assume o valor zero;
ncpk: Nmero mximo de conjuntos de pilhas contguas a serem retiradas do ptio k nas posies inf e sup;
ligl: Limite inferior de garantia, isto , teor mnimo admissvel para o parmetro l no produto final (%);
lsgl: Limite superior de garantia, isto , teor mximo admissvel para o parmetro l no produto final (%);
188
liel: Limite inferior de especificao, isto , teor mnimo recomendvel para o parmetro l no produto final (%);
lsel: Limite superior de especificao, isto , teor mximo recomendvel para o parmetro l no produto final
(%);
l+: Penalidade por desvio positivo em relao ao limite superior de garantia do parmetro l no produto final;
l-: Penalidade por desvio negativo em relao ao limite inferior de garantia do parmetro l no produto final;
l+: Penalidade por desvio positivo em relao ao limite superior de especificao do parmetro l no produto
final;
l-: Penalidade por desvio negativo em relao ao limite inferior de especificao do parmetro l no produto
final;
l+: Penalidade por desvio negativo em relao meta de qualidade para o parmetro l no produto final;
l-: Penalidade por desvio positivo em relao meta de qualidade para o parmetro l no produto final;
189
dgl-: Desvio negativo do parmetro l no produto final (t), em relao ao limite inferior de garantia;
del+: Desvio positivo do parmetro l no produto final (t) , em relao ao seu limite superior de especificao;
del-: Desvio negativo do parmetro l no produto final (t) , em relao ao seu limite inferior de especificao;
dbalizaijk: Quantidade de minrio que resta na pilha localizada na baliza i, parte j do ptio k.
190
min
l s
+
l
dg l+ + l dg l + l+ de l+ + l de l + l+ drl + + l drl + P + + P + +
l s
dbaliza
l S
lS
l S
l S
ijk
(t
(t
ijkl
lsg l )xijk dg l+ 0
l S
ijkl
lig l )xijk + dg l 0
l S
ijkl
l S
ijkl
l S
ijkl
l S
+ P P + = Pm
l S
(t
(t
(t
ijk
191
xi 1,j,k
yijk
y ijk
Qui 1,j,k
x ijk
Qu ijk
yi ,inf,k yi +1,sup,k
xi +1,sup, k
y i ,inf, k
Qu i +1,sup, k
zijk xijk
zijk
xijk
Quijk
tem
iBaliza ( k )
i ,sup, k i ,sup, k
tem
iBaliza ( k )
i ,inf, k i ,inf, k
ncpk
k Ptio
192
xijk = ElParcijk
xijk = Quijk
193
Programao da produo:
Dimensionamento de lotes
194
Programao da produo:
Dimensionamento de lotes (um nico item)
Ms
Cap.
Produo
(unid)
Demanda
(unid.)
Custo
estocagem
(R$)
Custo
de
prod.
(R$)
10
9
195
Programao da produo:
Dimensionamento de lotes (um nico item)
Dados de entrada:
Variveis de deciso:
Programao da produo:
Dimensionamento de lotes (um nico item)
(cprod
tMes
xt + cestt et )
e1 = estinicial + x1 demanda1
197
Programao da produo:
Dimensionamento de lotes (um nico item)
xt capt t Mes
198
Programao da produo:
Dimensionamento de lotes
Considere uma empresa que fabrica n produtos e deseja programar sua produo nos
prximos T perodos de tempo (= horizonte de planejamento)
conhecida a demanda de cada produto em cada perodo do horizonte de planejamento
Em cada perodo, os recursos necessrios para a produo so limitados e renovveis,
isto , uma quantidade de recursos est disponvel e no depende de como foram
utilizados nos perodos anteriores.
Exemplos de recursos renovveis: mo-de-obra, energia eltrica, horas de mquina
Exemplo de recurso no renovvel: matria-prima que sobra em um perodo e pode ser
usada nos perodos seguintes
H a possibilidade de estocagem de produtos de um perodo para outro
Dados de entrada do problema:
Variveis de deciso:
Programao da produo:
Dimensionamento de lotes
Funo
objetivo:
(minimizar os custos de
produo e estocagem)
Equaes
de
conservao de estoque:
Restries
de
capacidade de produo:
i =1 t =1
r x
i =1
i it
dispt t = 1,..., T
Garantia de atendimento
demanda:
No-negatividade
integralidade:
200
Programao da produo:
Dimensionamento de lotes
Demanda
de vigas
Perodo 1
Perodo 2
Perodo 3
Item 1
15
90
120
Item 2
35
50
80
Custos de
produo
Perodo 1
Perodo 2
Perodo 3
Item 1
20
20
30
Item 2
20
20
30
Custos de
estocagem
Perodo 1
Perodo 2
Item 1
Item 2
2,5
3,5
201
Programao da produo:
Seqenciamento em uma mquina
Programao da produo:
Seqenciamento em uma mquina
Caractersticas do PSUMAA:
Programao da produo:
Seqenciamento em uma mquina
204
Programao da produo:
Seqenciamento em uma mquina
205
Programao da produo:
Seqenciamento em uma mquina
Dados de Entrada:
206
Programao da produo:
Seqenciamento em uma mquina
Variveis de Deciso:
Jobs Fictcios:
Observao:
207
Programao da produo:
Seqenciamento em uma mquina
Funo Objetivo
208
Programao da produo:
Seqenciamento em uma mquina
Restries
onde:
M uma constante de valor suficientemente grande
209
Programao da produo:
Seqenciamento em uma mquina
Restries
(3)
210
Programao da produo:
Seqenciamento em uma mquina
Restries:
211
Programao da produo:
Seqenciamento em uma mquina
Restries:
O tempo de antecipao ei [0, (Ei Pi si)]
determinado pelas restries:
(6)
(7)
Mina 1
Projeto 1
Projeto 2
Projeto 3 . . .
Projeto n
Projeto 2
Projeto 3 . . .
Projeto n
VPL
Mina 2
Mina 3
.
.
.
Mina m
Projeto 1
Projeto 1
Projeto 2
Projeto 3 . . .
Projeto n
Meta de
Produo
Projeto 2
Projeto 3 . . .
Projeto n
213
214
...
16
...
897.42
...
247.04
...
...
...
126.67
...
7
...
...
...
...
16
40
43
43
...
45
10
10
10
...
12.5
...
...
...
...
...
...
...
215
Considere:
Minas: conjunto de minas;
Opcoes: conjunto de opes de projeto em cada mina;
VPLij: Valor Presente Liquido do projeto j na mina i;
prodij: produo do projeto j na mina i;
M: meta de produo;
Pfalta: penalidade por produo inferior meta estabelecida;
Pexc: penalidade por produo superior meta estabelecida.
max
VPL
ij
iMinas jProjetos
ij
jProjetos
= 1 i Minas
prod
iMinas jProjetos
ij
Heursticas construtivas
e de refinamento:
Fundamentao e aplicaes
Marcone Jamilson Freitas Souza
Alexandre Xavier Martins
Tatiana Alves Costa
Jos Maria do Carmo Bento Alves
Frederico Augusto Coimbra Guimares
Tlio ngelo Machado Toffolo
Departamento de Computao
Homepage: http://www.decom.ufop.br/prof/marcone
E-mail: marcone.freitas@yahoo.com.br
218
219
220
221
Dados de entrada:
Variveis de deciso:
Funo objetivo:
min
ij ij
iCidades jCidades
222
ij
jCidades
= 1 i Cidades
ij
iCidades
= 1 j Cidades
223
jCidades
f ji
ij
jCidades
= 1 i Cidades | i 1
f-1
f ij 0 i Cidades, j Cidades
xij {0,1} i Cidades, j Cidades
224
225
Heursticas
Construtivas
De refinamento
227
Funcionamento:
228
229
dij
3
Distncia Total = 1
230
dij
3
Distncia Total = 1 + 1 = 2
231
dij
3
3
Distncia Total =
2+3=5
232
dij
3
3
Distncia Total = 5 + 2 = 7
233
dij
7
3
Distncia Total = 7 + 7 = 14
234
1
2
7
3
Distncia Total = 14 + 2 = 16
235
236
k
dij
Cid.
dir
dri
237
dkj
dik
dij
dir
dri
238
Cid.
7
2
Distncia Total = 11
239
1+22=1
6+52=9
6+92=3
2+97=4
5+87=6
9+27=4
9+12=8
8 + 6 2 = 12
2+62=6
1
2
7
2
Distncia Total = 11 + 1 = 12
240
6+11=6
6+41=9
1+52=4
4 + 9 2 = 11
5+87=6
9+27=4
8 + 6 2 = 12
2+62=6
2
1
7
2
Distncia Total = 12 + 4 = 16
241
6+41=9
4+31=6
3+95=7
9+27=4
2+62=6
2
1
5
7
9
Distncia Total = 16 + 4 = 20
242
2
1
Distncia Total = 16 + 4 = 20
s = (6 1 3 2 4 5)
243
Heursticas de refinamento
244
Heursticas de refinamento
245
2
1
Distncia Total s = 20
s = (6 1 3 2 4 5)
246
2
5
6
3
Distncia Total s = 27
s = (6 4 3 2 1 5)
247
2
4
5
9
2
Distncia Total s = 29
s = (6 1 4 2 3 5)
248
(10)
12
16
(10)
3 (13)
[50]
(9)
(4)
(10)
7
5
6 (10)
(10)
10
9 (7)
13 (5)
(10)
11
8
(10)
15
14
(3)
(10)
Soluo s
249
(10)
12
16
(10)
3 (13)
[50]
(9)
(4)
(10)
7
5
6 (10)
(10)
10
9 (7)
13 (5)
(10)
11
8
(10)
15
14
(3)
(10)
Soluo s
s obtida
pela
realocao
de um
cliente de
uma rota
para outra
rota
(realocao
250
inter-rota)
(10)
12
16
(10)
3 (13)
[50]
(9)
(4)
(10)
7
5
6 (10)
(10)
10
9 (7)
13 (5)
(10)
11
8
(10)
15
14
(3)
(10)
Soluo s
s obtida
pela troca
de clientes
entre rotas
(movimento
inter-rotas)
(Clientes 11
e 14
mudam251de
rota)
252
Restries:
Objetivos:
Movimento de Realocao
254
Movimento de Troca
255
256
Cam1
Cam2
...
CamV
F1
(Car2, 0)
...
F2
(D, 0)
...
F3
(Car1, 1)
...
...
...
...
...
...
...
FF
(Car5, 1)
...
3
257
Movimento Carga
Movimento Nmero de Viagens
Movimento Realocar Viagem de um Caminho
Movimento Realocar Viagem a uma Frente
Movimento Operao Caminho
Movimento Operao Frente
258
Carga
F1
(Car1,1)
F1
(Car1,1)
F2
(D,0)
F2
(Car4,1)
F3
(Car3,0)
F3
(Car3,0)
F4
(Car4,1)
F4
(D,0)
259
Carga
Carga
F1
(Car1,1)
F1
(Car1,0)
F2
(D,0)
F2
(D,0)
F3
(Car3,0)
F3
(Car3,0)
F4
(Car4,1)
F4
(Car4,1)
Carga
Carga
F1
(Car1,1)
F1
(Car1,0)
F2
(D,0)
F2
(D,0)
F3
(Car3,0)
F3
(Car3,1)
F4
(Car4,1)
F4
(Car4,1)
260
Cam1 Cam2
F1
F2
(Car1,1)
(D,0)
6
0
X
0
F3
(Car3,0)
F4
(Car4,1)
Carga
-1
Cam1 Cam2
F1
F2
(Car1,1)
(D,0)
5
0
X
0
F3
(Car3,0)
F4
(Car4,1)
Cam1 Cam2
F1
F2
(Car1,1)
(D,0)
6
0
X
0
F3
(Car3,0)
F4
(Car4,1)
Carga
+1
Cam1 Cam2
F1
F2
(Car1,1)
(D,0)
6
0
X
0
F3
(Car3,0)
F4
(Car4,1)
261
Cam1 Cam2
F1
(Car1,1)
F2
(D,0)
F3
(Car3,0)
F4
(Car4,1)
Carga
Cam1 Cam2
F1
(Car1,1)
F2
(D,0)
F3
(Car3,0)
F4
(Car4,1)
262
Cam1 Cam2
Carga
Cam1 Cam2
F1
(Car1,1)
F1
(Car1,1)
F2
(D,0)
F2
(D,0)
F3
(Car3,0)
F3
(Car3,0)
F4
(Car4,1)
F4
(Car4,1)
263
Carga
Cam1 Cam2
Carga
Cam1 Cam2
F1
(Car1,1)
F1
(Car1,1)
F2
(D,0)
F2
(D,0)
F3
(Car3,0)
F3
(Car3,0)
F4
(Car4,1)
F4
(Car4,1)
264
f ( s ) = f p ( s ) + f jq ( s ) + f r ( s ) + f l u ( s ) + f i c ( s ) + f n ( s )
jS
lV
iF
265
f ( s ) = Pr P
p
P :
Pr :
p :
266
f j q ( s ) = j q j q Qrj Q j
j S
267
f r ( s ) = r Rr R
R : Produo de estril na mistura (t/h);
Rr : Meta de Produo de estril na mistura (t/h);
r : Peso associado avaliao da relao estril/minrio
268
f l ( s ) = Url U l l V
u
u
l
269
f i ( s ) = k Cuk xi i F
c
270
f n (s) = n
TU
l
iF
271
Mina 1
Projeto 1
Projeto 2
Projeto 3 . . .
Projeto n
Projeto 2
Projeto 3 . . .
Projeto n
VPL
Mina 2
Mina 3
.
.
.
Mina m
Projeto 1
Projeto 1
Projeto 2
Projeto 3 . . .
Projeto n
Meta de
Produo
Projeto 2
Projeto 3 . . .
Projeto n
272
15
14
Soluo s:
15
14
15
14
7
274
VPL
iMinas jOpcoes
i , Si
Pfalta max{0, M
prod
iMinas
i , Si
} Pexc max{0,
prod
iMinas
i , Si
M}
em que:
Minas = conjunto de minas;
Opcoes = conjunto das opes de projeto em cada mina;
VPLi,Si = Valor Presente Lquido referente opo j da mina i;
prodi,S = Produo referente opo j da mina i;
i
Heursticas de refinamento
(Princpio de funcionamento)
276
Mtodo da descida/subida
(Descent/Uphill Method)
277
Funcionamento da
Heurstica de Descida
278
Funcionamento da
Heurstica de Descida
279
Funcionamento da
Heurstica de Descida
280
Funcionamento da
Heurstica de Descida
METAHEURSTICAS
Marcone Jamilson Freitas Souza
Alexandre Xavier Martins
Tatiana Alves Costa
Jos Maria do Carmo Bento Alves
Frederico Augusto Coimbra Guimares
Tlio ngelo Machado Toffolo
Departamento de Computao
Homepage: http://www.decom.ufop.br/prof/marcone
E-mail: marcone.freitas@yahoo.com.br
282
Metaheursticas
Metaheursticas
Exemplos de metaheursticas:
de busca local:
Busca Tabu
Simulated Annealing
Iterated Local Search (ILS)
Variable Neighborhood Search (VNS)
de busca populacional:
Algoritmos Genticos
Colnia de Formigas
284
Simulated Annealing:
Fundamentao do mtodo
Simulated Annealing:
Fundamentao do mtodo
Simulated Annealing:
Fundamentao do mtodo
A cada iterao do mtodo, um novo estado gerado a partir
do estado corrente por uma modificao aleatria neste;
Se o novo estado de energia menor que o estado corrente,
esse novo estado passa a ser o estado corrente;
Se o novo estado tem uma energia maior que o estado
corrente em unidades, a probabilidade de se mudar do
estado corrente para o novo estado :
e-/(kT),
287
288
Simulated Annealing:
Fundamentao do mtodo
289
Simulated Annealing:
Fundamentao do mtodo
Atingido o equilbrio trmico, a temperatura
diminuda;
A taxa de aceitao de movimentos de piora ,
portanto, diminuda com o decorrer das iteraes;
No final do processo, praticamente no se aceita
movimentos de piora e o mtodo se comporta como
o mtodo da descida/subida;
O final do processo se d quando a temperatura se
aproxima de zero e nenhuma soluo de piora mais
aceita, evidenciando o encontro de um timo local.
290
Algoritmo Simulated
Annealing
291
Simulated Annealing:
Prescries para o resfriamento
292
293
Determinao da temperatura
inicial por simulao
294
Simulated Annealing:
Consideraes Gerais
Parmetros do AG
Parmetro
Valor
Gerao de populaes
200
20
Probabilidade de Mutao
4%
Probabilidade de Crossover
50%
Parmetros do SA
Parmetro
SAmax
Temperatura inicial
(taxa de resfriamento)
Valor
500
Obtida por simulao
0.99
296
Valor
90 Mt
Pexc
$15,00/t
Pfalta
$3,00/t
297
Mtodo
Melhor VPL
($X106)
VPL Mdio
($X106)
Tempo Mdio
de execuo
(segundos)
AG
2015
2,03
SA
2167
2165
2,99
SA+Subida
2180
2180
2,99
Lingo
2148
0,00
Variable Neighborhood
Descent (VND)
299
Variable Neighborhood
Descent (VND)
Princpios bsicos:
Variable Neighborhood
Descent (VND)
1 Seja s0 uma soluo inicial e r o nmero de estruturas de
vizinhana;
2 s s0;
{Soluo corrente}
3 k 1;
{Tipo de estrutura de vizinhana}
4 enquanto (k r) faa
5
Encontre o melhor vizinho s N(k)(s);
6
se ( f(s) < f(s) )
7
ento s s; k 1;
8
seno k k + 1;
9
fim-se;
10 fim-enquanto;
11 Retorne s;
fim VND;
301
Pressuposto:
302
Componentes do ILS:
GeraSolucaoInicial:
BuscaLocal:
Retorna uma soluo melhorada
Perturbacao:
Modifica a soluo corrente guiando a uma soluo
intermediria
CriterioAceitacao:
Decide de qual soluo a prxima perturbao ser
aplicada
303
Diversificao:
305
Busca Local:
Mtodo VND (Variable Neighborhood Search)
Critrio de Parada:
Tempo de processamento pr-determinado
306
No de
Carregadeiras
No de
Caminhes
POLAD1
17
10
30
POLAD2
17
10
30
POLAD3
32
10
30
POLAD4
32
10
30
307
Procedimento II
f1PM (s*)
f1ILS (s*)
Dp (%)
f 2ILS (s*)
Dp (%)
Tempo
POLAD01
216,80(1)
216,80(2)
211,99
0,0
2638,83
0,2
789,2
POLAD02
2751,79(1)
2751,79(2)
2731,71
0,0
5248,99
0,1
822,1
POLAD03
1962,90(1)
1584,50(2)
585,30
80,6
3736,94
71,0
842,1
POLAD04
3021,83(1)
2706,45(3)
2706,45
3,6
59795,83
0,1
819,4
(1)
308
Algoritmos Genticos
Operadores genticos
CROSSOVER
MUTAO
310
Algoritmos Genticos
O objetivo de um AG o de tentar
melhorar as qualidades genticas de
uma populao atravs de um processo
de renovao iterativa das populaes
311
Relao entre AG e
Problema de Otimizao
AG
Problema de Otimizao
Indivduo
Soluo de um problema
Populao
Conjunto de solues
Cromossomo
Gene
312
Estrutura de um AG bsico
Gere uma
populao inicial
Avalie a
populao
Critrios de
parada
satisfeitos?
Sim
Liste os melhores
indivduos
No
Selecione os pais
Crossover
Mutao
Avalie a
populao
Defina a populao
sobrevivente
Gerao de uma nova populao
313
Avaliao de cromossomos
314
Fase de seleo
Aleatrio
Roleta russa
315
Fase de reproduo
p=(0111)
316
Fase de reproduo
O1 = ( 0 1 1 | 0 1 0 )
O2 = ( 1 0 1 | 1 0 0 )
317
Operador OX
318
p1 = (6 3 8 | 2 4 1 | 5 7 9)
p2 = (1 2 7 | 4 6 5 | 8 9 3)
f1
= (x x x | 2 4 1 | x x x)
Ordem de visita de p2 = {8,9,3,1,2,7,4,6,5}
319
p1 = (6 3 8 | 2 4 1 | 5 7 9)
p2 = (1 2 7 | 4 6 5 | 8 9 3)
f1
= (x x x | 2 4 1 | x x x)
Ordem de visita de p2 = {8,9,3,1,2,7,4,6,5}
320
p1 = (6 3 8 | 2 4 1 | 5 7 9)
p2 = (1 2 7 | 4 6 5 | 8 9 3)
f1
= (x x x | 2 4 1 | x x x)
Ordem de visita de p2 = {8,9,3,1,2,7,4,6,5}
f1 = (x x x | 2 4 1 | 8 x x)
321
p1 = (6 3 8 | 2 4 1 | 5 7 9)
p2 = (1 2 7 | 4 6 5 | 8 9 3)
f1
= (x x x | 2 4 1 | x x x)
Ordem de visita de p2 = {8,9,3,1,2,7,4,6,5}
f1 = (x x x | 2 4 1 | 8 9 x)
322
p1 = (6 3 8 | 2 4 1 | 5 7 9)
p2 = (1 2 7 | 4 6 5 | 8 9 3)
f1
= (x x x | 2 4 1 | x x x)
Ordem de visita de p2 = {8,9,3,1,2,7,4,6,5}
f1 = (x x x | 2 4 1 | 8 9 3)
323
p1 = (6 3 8 | 2 4 1 | 5 7 9)
p2 = (1 2 7 | 4 6 5 | 8 9 3)
f1
= (x x x | 2 4 1 | x x x)
Ordem de visita de p2 = {8,9,3,1,2,7,4,6,5}
f1 = (7 x x | 2 4 1 | 8 9 3)
324
p1 = (6 3 8 | 2 4 1 | 5 7 9)
p2 = (1 2 7 | 4 6 5 | 8 9 3)
f1
= (x x x | 2 4 1 | x x x)
Ordem de visita de p2 = {8,9,3,1,2,7,4,6,5}
f1 = (7 6 x | 2 4 1 | 8 9 3)
325
p1 = (6 3 8 | 2 4 1 | 5 7 9)
p2 = (1 2 7 | 4 6 5 | 8 9 3)
f1
= (x x x | 2 4 1 | x x x)
Ordem de visita de p2 = {8,9,3,1,2,7,4,6,5}
f1 = (7 6 5 | 2 4 1 | 8 9 3)
326
Sobrevivncia / morte de
cromossomos
327
Nveis de aptido
Seleo de cromossomos
sobreviventes
60
50
40
30
20
10
0
1
2
3
4
1
Cromossomos
328
Roleta russa:
mecanismo para selecionar os cromossomos
sobreviventes
1
2
3
4
329