You are on page 1of 329

Introduo

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

Heursticas computacionais para otimizao







Conceitos bsicos
Heursticas construtivas
Heursticas clssicas de refinamento
Metaheursticas





Simulated Annealing
Variable Neighborhood Search (VNS)
Iterated Local Search (ILS)
Algoritmos Genticos

Aplicaes de tcnicas de otimizao a processos produtivos:








Alocao dinmica de caminhes


Planejamento da produo,
Controle de Ptio de Minrios
Corte de Estoque (Cutting Stock)
Seleo de projetos

Otimizao


rea da Pesquisa Operacional que utiliza o mtodo cientfico


para apoiar a tomada de decises, procurando determinar como
melhor projetar e operar um sistema, usualmente sob condies
que requerem a alocao de recursos escassos.
Trabalha com modelos determinsticos
 As informaes relevantes so assumidas como conhecidas
(sem incertezas)
Aplicaes tpicas:
 Mistura de minrios
 Planejamento da produo
 Roteirizao
 Escala de pessoal

Problema de Roteamento de Veculos


(Vehicle Routing Problem)
(12)
2

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

Problema de Roteamento de Veculos


(Vehicle Routing Problem)
(12)
2

(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

Escala de Motoristas (Crew Scheduling)


1

Escala de Motoristas (Crew Scheduling)


1

Escala de Motoristas (Crew Scheduling)


1

Escala de Motoristas (Crew Scheduling)


1

Escala de Motoristas (Crew Scheduling)


1

10

Escala de Motoristas (Crew Scheduling)


1

Reduo de um tripulante!

11

Programao de jogos de competies


esportivas (Sports timetabling)
INTRODUO
Montar uma tabela de jogos entre os times participantes de uma
competio esportiva
 Satisfazer as restries da competio
 Minimizar os custos relativos ao deslocamento dos times


12

Programao de jogos de competies


esportivas (Sports timetabling)
INTRODUO

Vitria

(1)

3
1712Km

1372Km

1372Km

Atltico
586Km

3
Santos

Vitria

Atltico

(2)

3 586Km
Santos

1712Km

3090Km

1712Km

2
Grmio

Grmio

Vitria x Atltico | Grmio x Atltico | Atltico x Santos

Atltico x Vitria | Grmio x Atltico | Atltico x Santos

Distncia total percorrida: 6760 Km

Distncia total percorrida: 5382 Km

Economia = 1378 Km

13

Programao de jogos de competies


esportivas (Sports timetabling)
JUSTIFICATIVA DO TRABALHO





Gastos com deslocamento


Influncia no desempenho dos times
Enquadra-se na classe de problemas NP-difceis
Nmero de tabelas possveis para uma competio envolvendo n
times confrontando-se entre si em turnos completos (Conclio &
Zuben (2002)):

(n 1)!(n 3)!(n 5)!...(n (n 1))!2

( n 1)

n
2

Competio com 20 participantes: 2,9062x10130 tabelas


possveis (aprox. 10114 anos para analisar todas as tabelas em um
computador que analisa uma tabela em 10-8 segundos)


14

Programao de jogos de competies


esportivas (Sports timetabling)
PROBLEMA ABORDADO
1 Diviso do Campeonato Brasileiro de Futebol 2004, 2005 e 2006
 2 Diviso do Campeonato Brasileiro de Futebol 2006


Competies realizadas em dois turnos completos e espelhados

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

Programao de jogos de competies


esportivas (Sports timetabling)
RESULTADOS COMPUTACIONAIS


Melhores solues obtidas pelos mtodos


Instncias

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

Controle de Ptio de Minrios








Aplicao na mina Cau, Itabira (MG), da CVRD


3 ptios de estocagem de minrios
Minrios empilhados em balizas
Pilhas formadas por subprodutos com composio
qumica e granulomtrica diferentes
Objetivo compor um lote de vages ( 80),
atendendo s metas de qualidade e produo de um
dado produto
Exemplos de algumas restries operacionais:




Retomar uma pilha toda sempre que possvel


Concentrar retomada
Retomar minrio da esquerda para a direita e de cima para
baixo
17

Controle de Ptio de Minrios


Ptio de Estocagem Cau

18

Controle de Ptio de Minrios


Equipamentos de empilhamento e recuperao

Recuperadora (Bucket Wheel)

Recuperadora Tambor (Drum)

Empilhadeira (Stacker)

19

Controle de Ptio de Minrios


Silos de embarque

20

Controle de Ptio de Minrios


Programao/Simulao

21

Controle de Ptio de Minrios


Fe

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

Controle de Ptio de Minrios


PCCA

5,60

Teor de SiO2 (%)

5,40
5,20

LSE

5,00

Meta

4,80

Manual

4,60

Sistema

4,40
4,20
4,00
1

Lotes

23

Controle de Ptio de Minrios


PCCA

0,025

Teor de P (%)

0,020
LSE
0,015

Meta
Manual

0,010

Sistema
0,005
0,000
1

Lotes

24

Controle de Ptio de Minrios


PCCA

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

Controle de Ptio de Minrios


PCCA

0,300

Teor de Mn (%)

0,250
LSE

0,200

Meta

0,150

Manual

0,100

Sistema

0,050
0,000
1

Lotes

26

Controle de Ptio de Minrios


PCCA

12,00

Teor de H2O (%)

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


Turnos de 6 horas de trabalho:







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)

Terno: equipe de trabalho atuando em um


poro durante um turno

29

Carregamento de produtos em
Navios: Caractersticas do problema


Existe um certo nmero de mquinas


disponveis para fazer o carregamento
do navio: CN, CG e GB.
Cada mquina possui uma
produtividade diferente para cada tipo
de produto.

30

Carregamento de produtos em
Navios: Caractersticas do problema




Produtos carregados em uma ordem


preestabelecida.
As equipes so remuneradas de acordo
com a produo (ton.).
Os custos variam de acordo com o produto
carregado e o tipo do turno em que ocorre o
terno.
O custo total dado pelo somatrio dos
custos com docas, encarregados,
guincheiros, conferentes, estivadores e
equipamento utilizado.
31

Carregamento de produtos em
Navios: Caractersticas do problema



Custo do carregamento dado pelo


somatrio dos custos dos ternos
Carregamento concludo depois da data
prevista em contrato:


Carregamento concludo antes da data


prevista em contrato:


Demurrage (multa por dia de atraso)

Prmio (metade da multa)

Objetivo reduzir os custos com a mode-obra


32

Modelos de Otimizao


Programao matemtica:
 Fundamentados na matemtica
 Mtodos exatos: garantem a gerao da soluo tima
 Mtodo mais difundido: Programao Linear (PL)
 Desvantagens:



Modelagem mais complexa


Em problemas combinatrios, podem exigir um tempo proibitivo para
encontrar a soluo tima

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.

As restries representam limitaes de


recursos disponveis (mo-de-obra, capital,
recursos minerais ou fatores de produo)
ou ento, exigncias e condies que
devem ser cumpridas
xj uma varivel de deciso, que quantifica
o nvel de operao da atividade j
bi representa a quantidade do i-simo
recurso disponvel ou a exigncia que deve
ser cumprida
35

Modelos de Programao
Linear
4.

5.

6.

cj representa o custo associado j-sima


atividade
aij a quantidade do recurso i (exigido ou
disponvel) em uma unidade da atividade j
otimizar = maximizar ou minimizar

36

Terminologia


Soluo


Soluo vivel


Qualquer especificao de valores para as


variveis de deciso
Soluo que satisfaz a todas as restries

Soluo tima


Soluo vivel que tem o valor mais favorvel da


funo objetivo
37

Hipteses assumidas em um
modelo de programao linear


Proporcionalidade



Divisibilidade


As atividades podem ser divididas em qualquer nvel


fracionrio

Aditividade


O custo de cada atividade proporcional ao nvel de


operao da atividade
A quantidade de recursos consumidos por uma atividade
proporcional ao nvel dessa atividade

O custo total a soma das parcelas associadas a cada


atividade

Certeza


Assume-se que todos os parmetros do modelo so


constantes conhecidas
38

Problema da Mistura de
Minrios






H um conjunto de pilhas de minrio


Em cada pilha h uma composio qumica e
granulomtrica diferente (% de Fe, SiO2, Al2O3 etc.)
A cada pilha est associado um custo
necessrio formar uma mistura com uma certa
especificao
Dentre as possveis misturas que atendem a
especificao requerida, o objetivo encontrar aquela
que seja de custo mnimo

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

Ferro na mistura = 55%

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

Modelo de PL para o Problema


da Mistura de Minrios
Dados de entrada:
 Pilhas = Conjunto de pilhas
 Parametros = Conjunto dos parmetros de controle (Teores,
Granulometria)
 tij = % do parmetro de controle j em uma tonelada da pilha i
 tlj = % mnimo admissvel para o parmetro j
 tuj = % mximo admissvel para o parmetro j
 Qui = Quantidade mxima de minrio, em toneladas, existente
na pilha i
 ci = Custo, em $, de uma tonelada de minrio da pilha i
 p = quantidade, em toneladas, da mistura a ser formada
Variveis de deciso:
 xi = Quantidade de minrio a ser retirado da pilha i
41

Modelo de PL para o Problema da Mistura de


Minrios

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

Modelo de PL para o Problema da Mistura de


Minrios Linearizao das restries

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

Modelo de PL para o Problema


da Mistura de Minrios


Problemas dessa modelagem de


programao linear:




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

Programao linear por metas


(goal programming)





Permite trabalhar com restries relaxadas


mais flexvel
Cria varivel de desvio para cada restrio
que pode ser relaxada
Varivel de desvio mensura a distncia de
viabilidade e colocada na funo objetivo,
para ser minimizada
O valor mnimo da varivel de desvio
representa a meta a ser atingida
45

Programao linear por metas


(goal programming)


Restries do tipo

x1 + x2 10

Desvio positivo = desvio para cima

min dp
x1 + x2 dp 10
Desvio positivo (dp):
Mede o quanto se
ultrapassou de 1046

Programao linear por metas


(goal programming)


Restries do tipo

x1 + x2 10

Desvio negativo = desvio para baixo

min dn
x1 + x2 + dn 10
Desvio negativo (dn):
Mede o quanto faltou
para chegar a 1047

Programao linear por metas


(goal programming)


Restries do tipo =

x1 + x2 = 10

min dp + dn
x1 + x2 dp + dn = 10
Mede o que supera 10

Mede o que falta para chegar a 10


48

Programao linear por metas


(goal programming)


Dois mtodos de soluo so normalmente utilizados:





Mtodo dos pesos:





Mtodo dos pesos


Mtodo hierrquico
Forma-se uma nica funo objetivo com o somatrio ponderado das
variveis de desvio
A cada varivel de desvio associado um peso, que reflete a
importncia relativa da restrio relaxada

Mtodo hierrquico:




estabelecida, inicialmente, a hierarquia (prioridade) das metas


Resolve-se o problema com a meta de maior prioridade (isto , apenas
a varivel de desvio mais prioritria)
Resolve-se, a seguir, o problema tendo como funo objetivo uma
meta de prioridade mais baixa que a anterior, mas atribuindo o valor
timo da meta anterior varivel de desvio correspondente, isto ,
tratando a meta anterior como restrio do modelo
O procedimento executado de modo que a soluo obtida de uma
meta de prioridade mais baixa nunca degrade qualquer soluo de
prioridade mais alta
49

Modelo de PL para a Mistura de Minrios com


relaxao dos limites de especificao
Dados de entrada:

Pilhas = Conjunto de pilhas

Parametros = Conjunto dos parmetros de controle

tij = % do parmetro de controle j em uma tonelada da pilha i

tlj = % mnimo admissvel para o parmetro j

tuj = % mximo admissvel para o parmetro j

Qui = Quantidade mxima de minrio, em toneladas, existente na pilha i

p = quantidade, em toneladas, da mistura a ser formada

wnej = Peso para o desvio negativo de especificao do parmetro j na mistura

wpej = Peso para o desvio positivo de especificao do parmetro j na mistura
Variveis de deciso:

xi = Quantidade de minrio a ser retirado da pilha i

dnej = Desvio negativo de especificao, em toneladas, do parmetro j na mistura

dpej = Desvio positivo de especificao, em toneladas, do parmetro j na mistura

50

Modelo de PL para a Mistura de Minrios com


relaxao dos limites de especificao

wpe dpe

min

jParametros

(t

iPilhas

(t

iPilhas

ij

wne dne

jParametros

tu j )xi dpe j 0 j Parametros


Desvio positivo, em
toneladas

ij

tl j )xi + dne j 0 j Parametros


Desvio negativo,
em toneladas

xi Qui i Pilhas

iPilhas

=p

xi 0 i Pilhas
dne j , dpe j 0 j Parametros

Peso associado ao
desvio negativo

Admite-se que a quantidade do


parmetro j na mistura supere em dpej
toneladas a quantidade mxima admitida
Admite-se que a quantidade do
parmetro j na mistura esteja dnej
toneladas abaixo da quantidade mnima
permitida
A quantidade a ser retomada em cada
pilha i est limitada Qui
A mistura deve ter peso total p

No-negatividade
51

Problema da Mistura de Minrios com metas de qualidade


e relaxao dos limites de especificao









H um conjunto de 15 pilhas de minrio


Em cada pilha h uma composio qumica diferente (% de Fe, Al2O3 etc.)
necessrio formar 6000 toneladas de um produto com uma certa
especificao
Para cada parmetro de controle so dados os limites inferior e superior de
especificao, bem como as metas de qualidade para o produto formado
Cada parmetro de controle classificado em 5 critrios: irrelevante,
importante, muito importante, crtico e muito crtico
O peso de desvio de meta igual ao produto do peso critrio pelo peso de
comparao
O peso de comparao serve para colocar cada parmetro de controle em
uma mesma ordem de grandeza
Dentre as possveis misturas que atendem a especificao requerida, o
objetivo encontrar aquela que esteja o mais prximo possvel das metas
de qualidade

52

Mistura de Minrios com metas de qualidade e relaxao


dos limites de especificao: dados de entrada

53

Mistura de Minrios com metas de qualidade e relaxao


dos limites de especificao: modelo de PL
Dados de entrada:

Pilhas = Conjunto de pilhas

Parametros = Conjunto dos parmetros de controle

tij = % do parmetro de controle j em uma tonelada da pilha i

tlj = % mnimo admissvel para o parmetro j

tuj = % mximo admissvel para o parmetro j

trj = % recomendada para o parmetro j

Qui = Quantidade mxima de minrio, em toneladas, existente na pilha i

p = quantidade, em toneladas, da mistura a ser formada

wnmj = Peso para o desvio negativo (de meta) do parmetro j na mistura

wpmj = Peso para o desvio positivo (de meta) do parmetro j na mistura

wnej = Peso para o desvio negativo (de especificao) do parmetro j na mistura

wpej = Peso para o desvio positivo (de especificao) do parmetro j na mistura
Variveis de deciso:

xi = Quantidade de minrio a ser retirado da pilha i

dnmj = Desvio negativo (de meta), em toneladas, do parmetro j na mistura

dpmj = Desvio positivo (de meta), em toneladas, do parmetro j na mistura

dnej = Desvio negativo (de especificao), em toneladas, do parmetro j na mistura

dpej = Desvio positivo (de especificao), em toneladas, do parmetro j na mistura

54

Mistura de Minrios com metas de qualidade e relaxao


dos limites de especificao: modelo de PL

(wpe dpe

min

jParametros

tl j )xi + dne j 0 j Parametros

Admite-se que a quantidade do


parmetro j na mistura seja inferior
quantidade mnima permitida em dnj ton.

trj )xi + dnm j dpm j =0 j Parametros

Admite-se que haja excesso (dpmj) ou


falta (dnmj) no parmetro j na mistura
em relao quantidade recomendada

xi Qui i Pilhas

A quantidade a ser retomada em cada


pilha i est limitada Qui

(t

iPilhas

iPilhas

+ wne j dne j + wpm j dpm j + wnm j dnm j )

tu j )xi dpe j 0 j Parametros

iPilhas

ij

Admite-se que a quantidade do parmetro


j na mistura supere a quantidade mxima
permitida em dpj ton.

(t

(t

ij

ij

iPilhas

=p

A mistura total deve ter peso total p

xi 0 i Pilhas
dne j , dpe j , dnm j , dpm j 0 j Parametros

No-negatividade
55

Resoluo grfica de PPLs


Passos para resolver graficamente um PPL:


a)

b)

c)

Determinar o gradiente da funo objetivo


(Gradiente perpendicular reta definida pela
funo objetivo)
Caminhar no sentido e direo do gradiente da
funo objetivo at tangenciar a regio vivel
O ponto de tangncia representa a soluo tima x*

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*

nica soluo tima, a qual


vrtice

x*

y*

Infinidade de solues timas,


sendo duas vrtices

60

Teorema Fundamental da
Programao Linear
2)

M no vazio
b)

M ilimitado

x*

nica soluo tima, a qual


vrtice

x*

Infinidade de solues timas,


sendo uma vrtice

61

Teorema Fundamental da
Programao Linear
2)

M no vazio
b)

M ilimitado

x*

y*

Infinidade de solues timas,


sendo duas vrtices

No h solues timas
62

Forma-padro de um PPL


PPL est na forma-padro quando posto na forma:


n

(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

Reduo de um PPL qualquer


forma-padro


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

Reduo de um PPL qualquer


forma-padro


Existe bi < 0
Soluo: Basta multiplicar restrio i por -1

Existem variveis no-positivas:


Seja xk 0:
Soluo: Criar varivel xk tal que xk = - xk
Assim, modelo ter varivel xk 0
65

Reduo de um PPL qualquer


forma-padro


Existem variveis livres, isto , variveis xk que podem


assumir qualquer valor real (negativo, nulo ou positivo):

Soluo: Substituir xk por xk xk , com xk 0 e xk 0


xk > xk xk > 0
xk = xk xk = 0
xk < xk xk < 0


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


Em um ponto no interior do conjunto (no


pertencente a nenhuma aresta) no h
variveis nulas
Em uma aresta h, pelo menos, uma varivel
nula
Em um vrtice h, pelo menos, n-m variveis
nulas
n-m
m
R

m
69

Caracterizao de vrtice


Para gerar um vrtice:







Escolher uma matriz no-singular B tal que:


BxB + RxR = b
Fazer xR = 0
Se ao resolver o sistema BxB = b, for obtido xB 0,
ento x = (xB xR)t = (xB 0)t vrtice

Deste procedimento resulta uma Soluo


Bsica Vivel (SBV), com o significado
geomtrico de vrtice.
70

Definies



B = base
x = (xB xR)t



xB = vetor das variveis bsicas


xR = vetor das variveis no-bsicas

Soluo Bsica (SB): vetor x tal que


BxB=b e xR = 0
Soluo Bsica Vivel (SBV): vetor x tal que
BxB=b; xB 0 e xR = 0
Soluo Bsica Vivel Degenerada (SBVD): uma
SBV em que existe varivel bsica nula
71

Princpio de funcionamento do
Algoritmo SIMPLEX
SBV inicial

Esta SBV pode


ser melhorada?

No

Pare: Esta SBV


tima

Sim

Determine VNB que


deve entrar na base

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

PPL na forma cannica: Base a identidade e coeficientes


das VBs na funo objetivo so todos nulos.
74

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

Situao em que a origem no pode


ser soluo inicial:
Exemplo 2
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 x 2 2
0 1 0 1 0 x = 2

3
1 1 0 0 1 x4 3
x5

81

Mtodo das Duas Fases


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

=
=
=

82

2
2
3
0

Mtodo das Duas Fases




Primeira fase (Criar problema auxiliar P):







Introduzir variveis de folga e variveis artificiais


Variveis de folga: introduzidas quando h variveis do tipo ou
Variveis artificiais: introduzidas quando h restries do tipo ou =
Criar funo objetivo artificial:

z a = xia i
i




Variveis bsicas iniciais: variveis de folga associadas s


restries e variveis artificiais
Objetivo da primeira fase: minimizar a funo objetivo artificial
Caminhar de SBV em SBV de P at alcanar SBV do problema
original P (situao que ocorre quando todas as variveis artificiais
so nulas).
83

Mtodo das Duas Fases




Segunda fase:


A partir de uma SBV do problema original P, gerar SBV


cada vez melhores at se atingir a soluo tima.

Aplicando o mtodo das duas fases ao PPL dado,


tem-se:
min 0 x1
max x1

+ 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

Mtodo das Duas Fases


VB

x1

x2

x3

x4

x5

x 1a

(L1)

x3

(L2)

x4

(L3)

x 1a

-1

(L4)

za

(L5)

Reduo forma cannica: L4 -L3 + L4

85

Mtodo das Duas Fases


VB

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

Mtodo das Duas Fases


VB

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

Mtodo das Duas Fases


VB

x1

x2

x3

x4

x5

x 1a

(L1)

x1

(L2)

x4

-1

(L3)

x2

-1

-1

(L4)

za

(L5)

-2

z-4

Fim da primeira fase: za = 0

x = (2, 1); z = 4

88

Mtodo das Duas Fases


VB

x1

x2

x3

x4

x5

(L1)

x1

(L2)

x4

(L3)

x2

-1

-1

z-4

(L4)

L3 L2 + L3

L4 -2L2 + L4
89

Mtodo das Duas Fases


VB

x1

x2

x3

x4

x5

(L1)

x1

(L2)

x5

(L3)

x2

-1

-2

z-6

(L4)

Soluo tima: x* = (2,2);

z* = 6
90

Mtodo das Duas Fases:


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

=
=
=

91

2
2
3
0

Outro exemplo de aplicao do Mtodo


das Duas Fases:
Exemplo 3
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

92

Mtodo das Duas Fases:


Exemplo 3


Introduzindo variveis artificiais no PPL dado,


tem-se:

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

Mtodo das Duas Fases


VB

x1

x2

x3

x4

x5

x 1a

x 2a

(L1)

x 1a

-1

(L2)

x4

(L3)

x 2a

-1

(L4)

za

(L5)

Transf. para forma cannica:

L4 -L1 L3 + L4

94

Mtodo das Duas Fases


VB

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

Mtodo das Duas Fases


VB

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

Mtodo das Duas Fases


VB

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

Fim da primeira fase: za = 0

x = (2, 1); z = 4

97

Mtodo das Duas Fases


VB

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

Mtodo das Duas Fases


VB

x1

x2

x3

x4

x5

(L1)

x1

-1

(L2)

x5

-1

(L3)

x2

-2

z-6

(L4)

x3 pode entrar na base melhorando o valor de z


indefinidamente. Assim, no h soluo tima.

99

Mtodo das Duas Fases:


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

=
=
=

100

2
2
3
0

Dualidade


Seja o PPL, doravante chamado de PPL primal:

min c t x = f ( x)
s.a. : Ax b
x0

ou, na forma expandida:


n

min c j x j
j =1
n

s.a : aij x j bi i = 1,..., m


j =1

x j 0 j = 1,..., n

101

Dualidade


Associado a este PPL, existe um PPL, chamado


PPL dual:

max ub = f D ( x)
s.a. : At u t c
u0

ou, na forma expandida:

max bi ui
i =1
m

s.a : aij ui c j j = 1,..., n


i =1

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


Em situaes na qual a matriz de coeficientes


do primal tem maior nmero de linhas do que
de colunas:

Dual

A base no DUAL
menor!!!

104

Dualidade:
Vantagens


possvel cercar a soluo tima.


(Considere um PPL primal de minimizao)
f(x)

(valor do primal)

x* = u*

fD(x)

(valor do dual)
105

Dualidade:
Interpretao Econmica


Seja o par de PPLs:


n

max c j x j = f ( x)
j =1
n

s.a : aij x j bi i = 1,..., m


j =1

xj 0

min bi ui = f D (u )
i =1
m

s.a : aij ui c j j = 1,..., n


i =1

j = 1,..., n

PRIMAL

ui 0

i = 1,..., m

DUAL
106

Dualidade:
Interpretao Econmica


Sejam x* e u* solues timas desses PPLs e seja


B* a base relativa a essas solues. Ento:
m

f ( x ) = f D (u ) = u b = b u
*

i =1

*
i i

Supondo b varivel e derivando em relao a b,


temos:
*

f ( x )
*
=u
b

Ento u* a taxa de variao do valor timo da


funo objetivo f(x*) com b. Como u* 0, ento f(x*)
cresce medida que bi cresce
107

Dualidade:
Interpretao Econmica


Considere o primal um problema de alocao de


recursos, com m recursos disponveis nas
quantidades b1, b2, ..., bm com os quais desejamos
fabricar n produtos nas quantidades x1, x2, ..., xn a
serem determinadas.
Cada unidade do produto j consome aij unidades do
recurso i trazendo um retorno de cj unidades
monetrias.
Queremos determinar a quantidade a ser fabricada
de cada produto de modo a maximizar o retorno.
108

Dualidade:
Interpretao Econmica





Suponha, agora, aumentada em uma unidade a


quantidade disponvel do recurso k, isto , temos
(bk + 1) unidades.
Suponha que a base associada permanea a
mesma.
Neste caso, a nova soluo tima u** do dual
permanece a mesma, uma vez que:
u** = u* = (cB*)tB*-1.
A nova soluo tima x** ser:

109

Dualidade:
Interpretao Econmica
m

f ( x** ) = bi ui* + (bk + 1)uk*


i =1
ik
m

= b u + u = f (x ) + u
i =1

*
i i

*
k

*
k

Isto , f(x**) f(x*) = uk*, ou seja, uk* o incremento


no lucro trazido pelo aumento de uma unidade da
matria disponvel k.
uk* chamado shadow price, dual, valor incremental,
efficiency price, valor implcito, etc.
110

Anlise de Sensibilidade
(Ps-otimizao)


Seja o sistema Ax=b,com uma base B, e uma


funo objetivo f(x)
Seja o quadro genrico do Simplex em uma dada
iterao colocado na forma matricial no cannica
(xR)t (xB)t
(L1)
(L2)

xB

(cR)t (cB)t f(x)


111

Anlise de Sensibilidade
(Ps-otimizao)


Para colocar esse quadro na forma cannica


devemos efetuar as seguintes transformaes
elementares: L1 B-1L1

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

Sendo: f(x) = ctx = (cB)txB + (cR)txR =


= (cB)txB = (cB)tB-1b

114

Anlise de Sensibilidade:
Ex. 1 Carteira de Investimentos


Uma empresa gerencia recursos de terceiros atravs da escolha de carteiras de investimentos


para diversos clientes, baseados em bonds de diversas empresas. Um de seus clientes exige
que:




No mais de 25% do total aplicado deve ser investido em um nico investimento;


Um valor superior ou igual a 50% do total aplicado deve ser investido em ttulos de maturidade maiores
que 10 anos;
O total aplicado em ttulos de alto risco deve ser, no mximo, de 45% do total investido.

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

Carteira de Investimentos: Modelo


de Programao Matemtica
max

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

Anlise de sensibilidade: Carteira


de Investimentos - Questes
1.

2.

3.
4.

5.

Qual o melhor retorno que se pode obter? Quanto se deve


aplicar em cada ttulo para que se tenha o retorno timo?
Em qual percentual aumentaria o retorno se fosse permitido
aplicar 1% a mais no Ttulo 2? De quanto seria o retorno? Essa
regra vale at quanto?
A partir de qual percentual a aplicao no ttulo 3 vantajosa?
Se fosse imposto limitar a aplicao em cada ttulo em 24%
para um dentre os ttulos 2, 4 e 6, em qual ttulo deveria ser feita
a diminuio de aplicao? Justifique.
Quanto est influenciando a restrio de limitao de aplicao
em ttulo de alto risco? Qual seria o retorno se esta limitao
fosse de 49%?
117

Anlise de Sensibilidade:
Ex. 2 Produo de automveis


Uma empresa deve produzir 1000 automveis. Ela tem quatro


fbricas, as quais, devido a diferenas na mo-de-obra e avanos
tecnolgicos, as plantas diferem no custo de produo de cada
carro. Elas tambm utilizam diferentes quantidades de matriaprima e mo-de-obra. A tabela abaixo resume essas informaes:

Fbrica

Custo (R$ mil) Mo-de-Obra Mat. Prima

15

10

118

Anlise de Sensibilidade
Ex. 2 Produo de automveis


Um acordo trabalhista requer que pelo menos 400 carros sejam


produzidos na fbrica 3. Existem 3300 horas de mo-de-obra e
4000 unidades de material que podem ser alocadas s 4 fbricas. O
modelo de programao matemtica que otimiza a produo :

min

c x

j
jFabricas

MObra x TotMObra
MatPrima x TotMatPrima

jFabricas
jFabricas

j
jFabricas

= Producao

x j Acordo j j Fabricas | Acordo j 0


119

Anlise de sensibilidade:
Ex. 2 Produo de automveis
1.

2.

3.

4.
5.

6.

7.

Quais so as quantias timas de produo? Qual o custo da


produo?
Quanto custa produzir mais um veculo? Quanto economizamos
produzindo um veculo a menos?
Como mudaria a soluo se custasse somente R$8.000,00 para
produzir na fbrica 2? Como ficaria o custo?
Quanto estamos dispostos a pagar por uma hora de trabalho?
Quanto o acordo est custando? Qual seria a variao no custo
se o acordo fosse de 250 carros?
Quanto vale a matria-prima (conseguir mais uma unidade)?
Quantas unidades estamos dispostos a pagar por esse preo?
At que custo ainda vantajoso produzir na fbrica 2?
120

Resoluo de PPLs Inteiros


Seja resolver:

max

x1
x1

+ 19 x2
+ 20 x2

50

x1

x2

20

x1

x2

Z+

cuja soluo tima (contnua) :


x1 = 18,89
x2 = 1,58 z = 48,42

121

Resoluo de PPLs Inteiros


Aplicando a estratgia de arredondamento, uma vez que os valores
timos so fracionrios, e providenciando uma busca racional no
entorno do ponto timo, teramos:

x1

x2

Z=x1+19*x2

19

Invivel

19

38

18

Invivel

18

37

No entanto, a soluo tima inteira :


x1 = 10
x2 = 2 z = 48
isto , o erro de 21% no arredondamento.
Concluso: No uma boa estratgia resolver o PPL (contnuo) e
arredondar a soluo resultante

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






Resolva pelo mtodo Branch-and-Bound o PLI abaixo


Use a variante de Dank para decidir a varivel a ramificar
(Nessa variante, a varivel a ramificar aquela cujo valor est
mais prximo de um valor inteiro)
Em caso de empate, escolha a de menor ndice
Use busca em profundidade e analise primeiro o valor maior
da varivel ramificada, isto , o valor x j x j + 1

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




Problema proposto pelo Tales


Problema de transporte
Problema de alocao de pessoal (Staff Scheduling)



Problema de Corte de Estoque (Cutting Stock Problem)














Problema das bobinas


Problema da serralheria

Problema da Mochila (Knapsack Problema)




Sem hora-extra
Com hora-extra

Mochila 0-1
Mochila 0-1 Mltipla
Mochila Inteira
Mochila Inteira Mltipla

Alocao Dinmica de Caminhes


Determinao do Ritmo de Lavra
Controle de Ptio de Minrios
Programao da produo: dimensionamento de lotes
Seqenciamento em uma mquina com penalidades por antecipao e
atraso da produo e janelas de atendimento

131

Problema proposto pelo Tales


(1)
Dados de entrada:

Pilhas = Conjunto de pilhas

Parametros = Conjunto dos parmetros de controle

tij = % do parmetro de controle j em uma tonelada da pilha i

tlj = % mnimo admissvel para o parmetro j

tuj = % mximo admissvel para o parmetro j

trj = % recomendada para o parmetro j

Qui = Quantidade mxima de minrio, em toneladas, existente na pilha i

p = quantidade, em toneladas, da mistura a ser formada

wnmj = Peso para o desvio negativo (relativo meta) do parmetro j na mistura

wpmj = Peso para o desvio positivo (relativo meta) do parmetro j na mistura

wpej = Peso para o desvio positivo relativo especificao do parmetro j na mistura

wnpilhai = Peso para a quantidade de minrio que resta na pilha i (peso relativo ao
desvio negativo de pilha)

wpp = Peso para o desvio positivo de produo

wnp = Peso para o desvio negativo de produo

132

Problema proposto pelo Tales


(2)
Dados de entrada:

Para determinados parmetros de controle, o limite superior de especificao pode ser extrapolado,
isto , extrapolarj = 1 significa que o parmetro de controle j pode ter seu limite superior relaxado)

wpej = Peso para o desvio positivo (de limite superior) do parmetro j na mistura

Algumas pilhas no podem ser utilizadas (desconsiderari = 1 significa que a pilha i no pode ser
usada)

Se uma pilha for retomada, deve-se retomar no mnimo retmin toneladas

Deve-se tirar o mximo possvel de cada pilha i, isto , a quantidade que restar na pilha (dnpilhai)
deve ser minimizada

Algumas pilhas devem ser necessariamente retomadas, isto , retomari = 1 significa que a pilha i
deve ser totalmente usada
Variveis de deciso:

xi = Quantidade de minrio a ser retirado da pilha i

dnmj = Desvio negativo (relativo meta), em toneladas, do parmetro j na mistura

dpmj = Desvio positivo (relativo meta), em toneladas, do parmetro j na mistura

dpej = Desvio positivo (relativo ao lim. superior de especificao), em ton, do parmetro j na mistura

dnpilhai = Quantidade de minrio que sobra, em toneladas, na pilha i (Desvio negativo relativo
quantidade Qui disponvel na pilha i)

dpp = Desvio positivo de produo, em toneladas

dnp = Desvio negativo de produo, em toneladas

yi = 1 se a pilha i for retirada e zero, caso contrrio.

133

Problema da Mistura proposto pelo Tales (3)

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

A quantidade do parmetro j na mistura s pode


superar a mxima permitida quando extrapolarj = 1

A quantidade do parmetro j na mistura no pode


superar a mxima permitida

A quantidade do parmetro j na mistura no pode ser


inferior mnima permitida

trj )xi + dnm j dpm j =0 j Parametros

xi Qui i Pilhas

+ ( wnp dnp + wpp dpp )

tu j )xi 0 j Parametros | extrapolarj = 0

(t

(t

wnm dnm

tu j )xi dpe j 0 j Parametros | extrapolarj = 1

ij

(t

wnpilha dnpilha

iPilhas

(t

Admite-se que haja excesso (dpmj) ou falta (dnmj) do


parmetro j na mistura em relao quantidade
recomendada
A quantidade a ser retomada em cada pilha i est
limitada Qui
A mistura deve ter como meta um peso total p

dpe j , dpm j , dnm j 0 j Parametros134

Problema da Mistura proposto pelo Tales (4)


Uma pilha i ser retomada (total ou parcialmente) se yi = 1
x
yi i i Pilhas | Qui 0
Qui
Deve-se tentar retomar totalmente a pilha i (dnpilhai representa a sobra)

xi + dnpilhai Qui yi i Pilhas


Deve-se retomar no mnimo retmin toneladas de uma pilha, caso ela seja usada

xi retmin yi i Pilhas

xi = Qui i Pilhas | retomari = 1

Quando se deseja retomar totalmente uma pilha i


tem-se xi = Qui

xi = 0 i Pilhas | desconsiderari = 1

Para as pilhas i que no se deseja retomar, xi = 0

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)

10000 15400 13300

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.

Toda a demanda ser atendida

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)

A capacidade de produo das minas deve ser respeitada

jUsinas

b)

capi i Minas

ij

Toda a demanda atendida

iMinas

ij

= dem j j Usinas

140

Problema de Transporte:
modelo de PL
c)

Uma mina s pode ser usada se houver produo

yi
d)

jUsinas

capi

ij

i Minas

No negatividade e integralidade

yi {0,1} i Minas
xij 0 i Minas, j Usinas
141

Problema de Transporte: modelo


(Caso em que Oferta < Demanda)
min

iMinas jUsinas

cij xij +

iMinas

ij

= capi i Minas

Toda a produo ofertada

ij

dem j j Usinas

Nem toda a demanda atendida

jUsinas

iMinas

xij 0 i Minas, j Usinas

142

Alocao de Pessoal


Um hospital trabalha com


atendimento varivel em demanda
durante as 24 horas do dia. As
necessidades distribuem-se
segundo a tabela ao lado.
O horrio de trabalho de um
enfermeiro de 8 horas seguidas
e s pode ser iniciado no comeo
de cada turno, isto , s 8 ou 12
ou 16 ou 20 ou 24 ou 04 horas.
Considere que cada enfermeiro
recebe $100 por hora de trabalho
no perodo diurno (08 s 20 h) e
$125 no perodo noturno (20 s
08 h).
Elabore um modelo de PLI que
minimize o gasto com a mo-deobra.

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

Problema de Alocao de Pessoal


Funo objetivo
Minimizar o custo com as despesas com pessoal

1.

min

c x

iTurnos

i i

Restries

2.
a)

A demanda por enfermeiros em cada turno i deve ser


atendida

xi 1 + xi reqi i Turnos

b)

No-negatividade e integralidade

xi Z + i Turnos
145

Listas Circulares no LINGO




Listas circulares so usadas para ligar o ltimo elemento de um


conjunto ao primeiro, bem como o primeiro ao ltimo. No LINGO,
pode-se usar listas circulares por meio do comando @wrap
@wrap(index,Limit) = retorna o ndice J, dado por:
J = index + kLimit
onde k um nmero inteiro tal que J pertena ao intervalo [1, Limit]
Exemplos:







@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

Assim, se i pertence ao conjunto Turnos, isto , i Turnos, ento


xi-2 seria representado no LINGO por:
x(@wrap(i-2, @size(Turnos)))
146

Problema de Alocao de
Pessoal com hora-extra


Um hospital trabalha com atendimento


varivel em demanda durante as 24 horas
do dia. As necessidades distribuem-se
segundo a tabela ao lado.
O horrio de trabalho de um enfermeiro de
8 horas seguidas e s pode ser iniciado no
comeo de cada turno, isto , s 8 ou 12 ou
16 ou 20 ou 24 ou 04 horas.
Considere que cada enfermeiro recebe
$100 por hora de trabalho no perodo diurno
(08 s 20 h) e $125 no perodo noturno (20
s 08 h)
Suponha que cada enfermeiro possa
trabalhar mais quatro horas consecutivas
alm de sua jornada normal de trabalho e
que a hora-extra seja remunerada em 50%
a mais que a hora normal.
Considere, tambm, que em cada turno,
no mais de 20% dos enfermeiros possa
fazer hora-extra.
Elabore um modelo de PLI que minimize o
gasto com a mo-de-obra.

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

Problema de Alocao de Pessoal


Funo objetivo
Minimizar o custo com as despesas com pessoal

1.

min

csemhextra x + ccomhextra y

iTurnos

i i

iTurnos

Restries

2.
a)

A demanda por enfermeiros em cada turno i deve ser


atendida

xi + xi 1 + yi + yi 1 + yi 2 reqi i Turnos

b)

Em cada turno, no mais de phe (= 20%) dos enfermeiros


podem fazer hora-extra

yi 2 phe ( xi + xi 1 + yi + yi 1 + yi 2 ) i Turnos

c)

No-negatividade e integralidade

xi , yi Z + i Turnos
149

Problema de Corte de Estoque (1)


(Cutting Stock Problem)


Certa empresa trabalha com a produo de etiquetas


autocolantes. O papel usado para sua confeco encontra-se em
bobinas de mesmo comprimento, todas com largura de 50 cm.
H uma programao para a prxima semana de 32 bobinas de
15 cm, 17 bobinas de 17,5 cm e 21 bobinas de 20 cm.

150

Problema de Corte de Estoque (1)


(Cutting Stock Problem)


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?

Padro Largura da faixa


de
15 17,5
20
corte
cm cm
cm

Perda
(cm)

2,5

12,5

10
151

Problema de Corte de Estoque (1)


(Cutting Stock Problem)
Dados de entrada:
 Padroes = Conjunto dos padres de corte
 Bobinas = Conjunto dos tipos de bobinas
 perdai = perda, em cm, com o uso do padro de corte i
 demandaj = quantidade de bobinas do tipo j requeridas
 estmax = estoque mximo permitido de bobinas de cada tipo
 aij = nmero de bobinas de largura j existentes no padro i
Variveis de deciso:
 xi = Nmero de vezes em que se usa o padro de corte i

152

Problema de Corte de Estoque (1)


(Cutting Stock Problem)
min

perda x

iPadroes

a x

ij i
iPadroes

i i

Minimizar a perda com os cortes

demanda j j Bobinas

A demanda por bobinas do


tipo j deve ser atendida

x demanda j + estmax j Bobinas

ij i
iPadroes

O excesso de bobinas
do tipo j no pode
exceder a estmax

xi Z + i Padroes

153

Problema de Corte de Estoque (2)


(Cutting Stock Problem)


Relativamente ao problema anterior, suponha que se deseje minimizar,


alm da perda inerente ao processo de corte, tambm a perda com o
excesso de bobinas cortadas
Neste caso, o modelo anterior sofre a seguinte alterao:


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

Problema de Corte de Estoque (3)


(Cutting Stock Problem)



Uma serralheria dispe de barras de 7 metros de comprimento


necessrio cortar essas barras de forma a atender a uma
encomenda por barras menores nos seguintes comprimentos:




92 barras de 2 metros
59 barras de 3 metros
89 barras de 4 metros

Elaborar um modelo para atender ao pedido minimizando a perda


com o corte das barras e tambm com o excesso de barras cortadas

155

Problema de Corte de Estoque (3)


(Cutting Stock Problem)
Dados de entrada:
 Padroes = Conjunto dos padres de corte
 Barras = Conjunto dos tipos de barras a serem produzidas
 perdai = perda, em cm, com o uso do padro de corte i
 demandaj = quantidade de barras do tipo j requeridas
 aij = nmero de barras do tipo j existentes no padro i
 comprj = comprimento, em cm, da barra do tipo j
Variveis de deciso:
 xi = Nmero de vezes em que se usa o padro de corte i

156

Problema de Corte de Estoque (3)


(Cutting Stock Problem)
Primeiro passo: Estabelecimento dos padres de corte
Barras
Padro

2m

3m

4m

Perda

157

Problema de Corte de Estoque (3)


(Cutting Stock Problem)
Segundo passo: Modelagem do problema

min perdai xi + compr j aij xi demanda j


iPadroes
jBarras
iPadroes

Perda referente aos


padres de corte

a x

ij i
iPadroes

Perda referente ao excesso de barras


produzidas

demanda j j Barras

xi Z i Padroes
158

Problema da Mochila 0-1







dado um conjunto de objetos, uma unidade de cada


H uma mochila de capacidade cap para colocar os objetos
Cada objeto tem associado um peso wj e um valor de retorno pj se for
alocado mochila
Determinar quais objetos devem ser alocados mochila de forma que o valor
de retorno seja o maior possvel

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

Problema da Mochila 0-1: modelo


de programao linear
max

pjxj

Maximizar o benefcio pelo uso dos


objetos (Levar os objetos mais valiosos)

w j x j cap

A capacidade da mochila no pode ser


superada

jObjetos

jObjetos

x j {0,1} j Objetos

Apenas uma unidade de cada objeto


pode ser alocada mochila

160

Problema da Mochila 0-1 Mltipla


Dados de entrada:
 Objetos = Conjunto dos diferentes tipos de objeto
 Mochilas = Conjunto dos diferentes tipos de mochila
 capi = Capacidade da mochila i
 wj = peso (weight) do objeto j
 pj = benefcio (profit) proporcionado pelo uso do objeto j
Variveis de deciso:
 xij = 1 se o objeto j for alocado mochila i e zero, caso contrrio

161

Problema da Mochila 0-1 Mltipla:


modelo de programao linear
max

p x

iMochilas jObjetos

j ij

Maximizar o benefcio pelo uso dos


objetos (Levar os objetos mais valiosos)

w j xij capi i Mochilas

jObjetos

ij
iMochilas

1 j Objetos

xij {0,1} i Mochilas, j Objetos

A capacidade de cada mochila i no


pode ser superada

Cada objeto j, se for usado, deve ser


alocado uma nica mochila i

Apenas uma unidade do objeto j pode


ser alocada mochila i
162

Problema da Mochila Inteira Mltipla


Dados de entrada:
 Objetos = Conjunto dos diferentes tipos de objeto
 Mochilas = Conjunto dos diferentes tipos de mochila
 uj = quantidade de objetos j disponveis
 capi = Capacidade da mochila i
 wj = peso (weight) do objeto j
 pj = benefcio (profit) proporcionado pelo uso do objeto j
Variveis de deciso:
 xij = quantidade de objetos do tipo j alocados mochila i

163

Problema da Mochila Inteira Mltipla:


modelo de programao linear
max

p x

iMochilas jObjetos

j ij

w j xij capi i Mochilas

jObjetos

ij
iMochilas

u j j Objetos

xij Z + i Mochilas, j Objetos

Maximizar o benefcio pelo uso dos


objetos (Levar os objetos mais valiosos)

A capacidade de cada mochila i no


pode ser superada

Para cada objeto j s podem ser usados,


no mximo, uj unidades
A quantidade de objetos do tipo j a serem
alocados mochila do tipo i inteira

164

Alocao Dinmica de Caminhes


DESCRIO
carregadeiras

Caminho 1

Frente 1
Carregadeira 1

Caminho 2

Mistura

Frente 2

Desejada
Carregadeira 2

Caminho 3

Frente 3

frentes = minerio esteril

Caminho 4

ca min hoes

165

Alocao Dinmica de Caminhes


Funo Objetivo
Peso por desvio
negativo da
produo
Peso por desvio
negativo de meta
para o parmetro j

min

Peso por desvio


positivo de meta
para o parmetro j

j d j +

j parametros

Peso por desvio


positivo da
produo

+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

Alocao Dinmica de Caminhes


Restries da Mistura de Minrios
Teor mximo admissvel

(t

ij

- tu j )xi 0

j parametros

iminerio

Teor mnimo admissvel

(t

ij

- tl j )xi 0

j parametros

iminerio

Teor recomendado (meta de qualidade)

( tij - trj )xi + d j d +j = 0

j parametros

iminerio
167

Alocao Dinmica de Caminhes


Restries relativas ao Ritmo de Lavra
Ritmo de lavra mximo:

i
iminerio

Pl

Ritmo de lavra mnimo:

i
iminerio

Pu

Ritmo de lavra recomendado (meta de produo):

+
x
+
P

P
= Pr
i

iminerio

168

Alocao Dinmica de Caminhes


Restrio relativa Relao
Estril/Minrio

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

100 >= 100

169

Alocao Dinmica de Caminhes


Restries ligadas Alocao
das Carregadeiras (1)
Em uma frente s pode estar operando uma carregadeira, no mximo

ik
kcarregadeiras

y11 = 1

1k

F1

Cg1

=1

y12 = 0

Cg2

i frentes
y21 = 0
y22 = 1

2k

=1

F2

y13 = 0 Cg3 y23 = 0


170

Alocao Dinmica de Caminhes


Restries ligadas Alocao
das Carregadeiras (2)
Uma carregadeira pode ser alocada a uma frente, no mximo:

ik

k carregadeiras

y11 = 1

F1

i frentes

i1

=1

y12 = 0

i2

Cg1

=1

Cg2

y21 = 0

F2

y22 = 1

171

Alocao Dinmica de Caminhes


Restries relativas Produo das
Carregadeiras:
Respeito Capacidade mxima da carregadeira alocada cada frente

xi

Cu

k
kcarregadeiras

yik i frentes

Respeito Capacidade mnima da carregadeira alocada cada frente

xi

Cl y

k ik
kcarregadeiras

i frentes

172

Alocao Dinmica de Caminhes


O nmero de viagens que cada
caminho l faz cada frente i em uma
hora depende de seu tempo de ciclo:

nT

il il

60

l ca minhoes

i frentes

n11 = 3 e T11 = 10 min

n T

i1 i1

F1

n12 = 2 e T12 = 10 min

= 50 min

Ca1

n21 = 1 e T21 = 15 min

n31 = 1 e T31 = 5 min

F2

F3

n22 = 3 e T22 = 5 min

n T

i2 i2

= 55 min

Ca2

n32 = 1 e T32 = 20 min


173

Alocao Dinmica de Caminhes


Restries relativas
Compatibilidade dos Caminhes
nilTil 60

ik
kCarregadeiras |
compatibilidadelk =1

i frentes, l caminhoes

n21 = nv e T21 = 15 min

Ca1

Cgk

F2

y2k = 1

Se comp1k = 1 ento nv = 0 at 4 (60/15)


Se comp1k = 0 ento nv = 0

174

Alocao Dinmica de Caminhes


Restries relativas Produo
dos Caminhes

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

Alocao Dinmica de Caminhes


Restries de Integralidade e
No-negatividade
xi 0

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







Limites inferior, superior e meta dos parmetros de controle (Fe,


SiO2, Al2O3, P, etc);
Produo mnima, mxima e a meta de produo, em ton/h, para
atender a usina;
Frentes de lavra que podem ou no estar disponveis (ativadas),
com suas respectivas caractersticas qumicas, ritmos de lavra
desejados e mtodo de lavra (caminho ou correia);
Quantidade e modelos de carregadeiras disponveis;
Produtividade mnima e mxima das carregadeiras.
CA

CO

Cu (prod. max.)

fixo

varia com a DM da CAR a correia

Cl (prod. min.)

fixo

fixo

178

Determinao do Ritmo de
Lavra: Objetivos


Determinar o ritmo de lavra prximo da


meta de produo
Gerar um produto dentro de certas
especificaes e prximo s metas de
qualidade
Fazer a alocao dos equipamentos de
carga

179

Determinao do Ritmo de
Lavra: Funo MultiObjetivo
min fo =

( wdq j dnq j + wde j dne j ) +

( wdq j dpq j + wde j dpe j ) +

j parametros

j parametros

wp ( pn + pp ) + wdp ( dnp + dpp )


wdqj
wdej
dnqj
dpqj

: peso para o desvio da meta no parmetro j;


: peso para o desvio fora dos limites de especificao no parmetro j;
: desvio negativo da meta no parmetro j;
: desvio positivo da meta no parmetro j;

dnej
dpej
wp
pn

: desvio negativo abaixo do limite mnimo de especificao no parmetro j;


: desvio positivo acima do limite mximo de especificao no parmetro j;
: peso para o desvio da meta de produo;
: desvio negativo da meta de produo;

pp
wdp
dnp
dpp

: desvio positivo da meta de produo;


: peso para o desvio fora dos limites de produo;
: desvio negativo abaixo do limite mnimo de produo;
: desvio positivo acima do limite mximo de produo;

180

Determinao do Ritmo de Lavra:


Restries


Restries relativas aos limites e metas dos


parmetros de controle:
Teor do parmetro de controle j no pode superar o limite mximo de
especificao (tuj)

(( teoresij tu j ) xi ) dpe j 0 j parametros

i frentes

Teor do parmetro de controle j no pode ser menor que o limite mnimo de


especificao (tlj)

(( teoresij tl j ) xi ) + dne j 0 j parametros

i frentes

Teor do parmetro de controle j deve buscar a meta de qualidade (trj)

(( teoresij tr j ) xi ) + dnq j dpq j = 0 j parametros

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

Ritmo total de lavra deve buscar a meta de produo (pr)

x + pn pp = pr

i
iFrentes

182

Determinao do Ritmo de
Lavra: Restries


Restries de Produo Por Frente:


Ritmo de lavra na frente i no pode superar o limite mximo de produo da carregadeira
k na frente i (Cuik), o qual fixo se o mtodo de lavra for caminho, mas varivel de
acordo com a distncia da carregadeira correia, se o mtodo de lavra for correia
transportadora.

xi

Cu

ik
kCarregadeiras

yik i frentes

Ritmo de lavra na frente i no pode ser inferior ao limite mnimo de produo da


carregadeira k (Clk)

xi

Cl

k ik
kCarregadeiras

i frentes
183

Determinao do Ritmo de
Lavra: Restries


Restries relativas s Carregadeiras:


Em cada frente s pode haver uma carregadeira operando

ik
kCarregadeiras

1 i Frentes

O nmero de carregadeiras do modelo k utilizadas no pode ultrapassar o


nmero de carregadeiras disponveis desse modelo (carregdispk)

iFrentes

ik

CAR modelo 1

carregdispk k Carregadeiras
3 unid

y11+y21+y31+y41 <= 3

4 Frentes
184

Determinao do Ritmo de
Lavra: Restries


Restries relativas ao Ritmo de Lavra:


Quando for definido um ritmo de lavra mnimo (ritmini) para uma frente i e
ela estiver disponvel (dispfrentei), ento esse ritmo mnimo tem que ser
respeitado:

xi ritmin i dispfrentei i Frentes | ritmin i 0


Quando for definido um ritmo de lavra mximo (ritmaxi) para uma frente i
e ela estiver disponvel (dispfrentei), ento esse ritmo mximo tem que ser
respeitado:

xi ritmax i dispfrentei i Frentes | ritmin i 0

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

( x | carregador = l ) capcarregador l carregadores


i

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

(x | Mtodo de lavra da frente i caminho) caphopper

iFrentes

F4

F3
CA

Hopper
2000 t/h

CA

x3 + x4 <= 2000
186

COMPOSIO DE LOTES DE MINRIO DE FERRO DA


MINA CAU

Otimizar a coleta de minrio dos ptios de


estocagem:


Produzir solues que melhor se aproximem das


metas de qualidade estabelecidas
Ao utilizar minrio de uma pilha, tentar elimin-la,
sempre que possvel
Respeitar as restries operacionais dos ptios

187

COMPOSIO DE LOTES DE MINRIO DE FERRO DA


MINA CAU
O MODELO BASEADO EM PROGRAMA
PROGRAMAO POR METAS
Parmetros do modelo

Ptio: Conjunto de ptios, no caso, Ptio = {A, B, C};

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 ;

ElParcijk: Quantidade de minrio, em toneladas, a ser eliminado da parte j da baliza i do ptio k;

Quijk: Quantidade de minrio, em toneladas, existente na baliza i do ptio k, na parte j;

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;

S: Conjunto dos parmetros de qualidade analisados no minrio;

tijkl: Teor do parmetro l na parte j da pilha situada na baliza i do ptio k (%);

trl: Teor recomendado para o parmetro l no produto final (%);

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

COMPOSIO DE LOTES DE MINRIO DE FERRO DA


MINA CAU
O MODELO BASEADO EM PROGRAMA
PROGRAMAO POR METAS
Parmetros do modelo
Sejam os seguintes parmetros de entrada:


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;

+: Penalidade por desvio negativo na meta de produo;

-: Penalidade por desvio positivo na meta de produo;

Pm : meta de produo (t);

189

COMPOSIO DE LOTES DE MINRIO DE FERRO DA


MINA CAU
O MODELO BASEADO EM PROGRAMA
PROGRAMAO POR METAS
Vari
Variveis de deciso

xijk:quantidade de minrio, em toneladas, a ser retirado da parte j da baliza i do ptio k;

1 se a pilha que est na baliza i do ptio k, parte j, pode ser usada


yijk:
0 caso contrrio
1 se a pilha que est na baliza i do ptio k, parte j, ser usada
zijk:
0 caso contrrio
+
dgl : Desvio positivo do parmetro l no produto final (t) , em relao ao limite superior de garantia;

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;

drl+: Desvio positivo do parmetro l no produto final (t) , em relao meta;

drl-: Desvio negativo do parmetro l no produto final (t) , em relao meta;

P-: Desvio negativo em relao meta de produo (t);

P+: Desvio positivo em relao meta de produo (t);

dbalizaijk: Quantidade de minrio que resta na pilha localizada na baliza i, parte j do ptio k.

190

COMPOSIO DE LOTES DE MINRIO DE FERRO DA


MINA CAU
O MODELO BASEADO EM PROGRAMA
PROGRAMAO POR METAS
Funo objetivo

min

l s

+
l

dg l+ + l dg l + l+ de l+ + l de l + l+ drl + + l drl + P + + P + +
l s

dbaliza

i Baliza j Parte k Patio

l S

lS

l S

l S

ijk

Restries de Qualidade e Produo

(t
(t

kPatio iBaliza( k ) jParte

ijkl

lsg l )xijk dg l+ 0

l S

ijkl

lig l )xijk + dg l 0

l S

ijkl

lsel )xijk del+ 0

l S

ijkl

liel )xijk + del 0

l S

ijkl

trl )xijk + drl drl + = 0

l S

+ P P + = Pm

l S

kPatio iBaliza( k ) jParte

(t
(t

k Patio iBaliza( k ) jParte

k Patio iBaliza( k ) jParte

(t

k Patio iBaliza( k ) jParte

kPatio iBaliza( k ) jParte

ijk

191

COMPOSIO DE LOTES DE MINRIO DE FERRO DA


MINA CAU
O MODELO BASEADO EM PROGRAMA
PROGRAMAO POR METAS
Restries de Seqenciamento Horizontal

xi 1,j,k

yijk

y ijk

Qui 1,j,k
x ijk

Qu ijk

i Baliza(k), j Parte, k Patio | i 2 e Qui-1,j,k 0


i Baliza(k), j Parte, k Patio | Quijk 0

Restries de Seqenciamento Vertical

yi ,inf,k yi +1,sup,k

i Baliza( k ), k Ptio | i nb( k ) - 1

xi +1,sup, k

y i ,inf, k

i Baliza( k ), k Ptio | Qui +1,sup, k 0 e i nb( k ) 1

Qu i +1,sup, k

Restries Para Forar Retomada Concentrada

zijk xijk

zijk

i Baliza(k), j Parte, k Ptio

xijk

i Baliza(k), j Parte, k Ptio | Quijk 0

Quijk

tem

iBaliza ( k )

i ,sup, k i ,sup, k

tem

iBaliza ( k )

i ,inf, k i ,inf, k

ncpk

k Ptio
192

COMPOSIO DE LOTES DE MINRIO DE FERRO DA


MINA CAU
O MODELO BASEADO EM PROGRAMA
PROGRAMAO POR METAS
Restries Para Eliminar Parcial e Totalmente

xijk = ElParcijk
xijk = Quijk

i Baliza(k ), k Ptio, j Parte | ElParcijk 0 ,


Quijk 0 e Eliminarijk 1

i Baliza(k ), k Ptio, j Parte | Eliminarijk = 1

Restrio Para Tentar Limpar Pilha

xijk + dbalizaijk = zijk Quijk

i Baliza(k), j Parte, k Ptio

193

Programao da produo:
Dimensionamento de lotes





Empresas de manufatura fabricam diversos tipos de produtos


solicitados por diferentes clientes
Produtos devem estar prontos em datas previamente agendadas
Fbricas tm capacidade de produo limitada (mquinas, mo-deobra etc)
Necessrio se faz planejar a produo


Decidir o qu produzir, quanto produzir, isto , dimensionar os lotes de


produo, e quando produzir (em cada perodo do horizonte de
planejamento)

A necessidade de antecipao da fabricao de produtos (estocados


de um perodo para outro) acarreta custos de estocagem e algumas
dificuldades operacionais
No planejamento da produo deseja-se determinar o tamanho dos
lotes de produo para atender a demanda na data solicitada, de modo
que a soma dos custos de produo e estocagem seja mnima

194

Programao da produo:
Dimensionamento de lotes (um nico item)


Uma empresa recebe uma


encomenda para entregar
um produto ao longo de
um perodo de tempo. So
dadas para cada ms: a
demanda desse produto,
o custo de produo e o
custo de estocagem.
Considere que o estoque
no incio de 3 unidades.
Elabore um modelo de PLI
que minimize o custo total
de produo e estocagem.

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:







Mes = conjunto dos meses de produo


cprodt = custo de produo no ms t
cestt = custo de estoque no ms t
demandat = demanda no ms t
capt = capacidade de produo no ms t
estinicial = estoque inicial

Variveis de deciso:



xt = quantidade do produto a ser produzida no ms t


et = quantidade do produto a ser estocada no ms t
196

Programao da produo:
Dimensionamento de lotes (um nico item)


Funo objetivo: minimizar os custos de produo


e de estocagem

(cprod

tMes


xt + cestt et )

Restries: Conservao de fluxo no final


do ms 1:

e1 = estinicial + x1 demanda1
197

Programao da produo:
Dimensionamento de lotes (um nico item)


Restries: Conservao de fluxo em cada ms


t>1:

et = et 1 + xt demandat t Mes | t > 1

Restries: Respeito capacidade de


produo em cada ms t:

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:



dit: demanda do item i no perodo t (i = 1, ..., n; t = 1, ..., T)


dispt: disponibilidade de recursos (renovveis) no perodo t
ri: quantidade de recursos necessrios para a produo de uma unidade do item i
cit: custo de produzir uma unidade do item i no perodo t
hit: custo de estocar uma unidade do item i no perodo t
xit: nmero de itens do tipo i produzidos no perodo t
eit: nmero de itens do tipo i em estoque no final do perodo t

Estoques iniciais do horizonte de planejamento ei0 so dados


199

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:

min cit xit + hit eit


i =1 t =1

i =1 t =1

eit = ei ,t 1 + xit d it i = 1,..., n t = 1,..., T


n

r x
i =1

i it

dispt t = 1,..., T

Garantia de atendimento
demanda:

eit Z + i = 1,..., n t = 1,..., T

No-negatividade
integralidade:

xit Z + i = 1,..., n t = 1,..., T

200

Programao da produo:
Dimensionamento de lotes








Considere uma fbrica de pr-moldados


que produz dois tipos de vigas, cujas
demandas para as prximas 3 semanas
so conhecidas
Os produtos utilizam os mesmos tipos de
recursos, porm em quantidades diferentes
Suponha que apenas um centro de
trabalho esteja disponvel para a produo
dos dois itens, cuja disponibilidade de 40
horas por perodo e que a produo de
uma unidade do item 1 consuma 15
minutos (= 1/4 da hora) e uma unidade do
item 2 consuma 20 minutos (= 1/3 da hora)
Os custos de produo por perodo, bem
como os custos de estocagem so
conhecidos
Os estoques iniciais dos dois produtos so
nulos
Definir um plano de produo de modo que
os pedidos sejam atendidos ao menor
custo de produo e estocagem

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





Problema de seqenciamento em uma mquina


com penalidades por antecipao e atraso da
produo (PSUMAA).
Tempo de preparao de mquina dependente da
seqncia de produo;
Janelas de atendimento;
Os objetivos: reduo dos custos de manuteno
do estoque (quando a produo antecipada) e dos
custos por atraso na produo.
202

Programao da produo:
Seqenciamento em uma mquina
Caractersticas do PSUMAA:


Uma mquina deve processar um conjunto de n


jobs;

Cada job possui um tempo de processamento Pi,


uma data inicial Ei e uma data final Ti desejadas
para o trmino do processamento;

A mquina executa no mximo um job por vez e


uma vez iniciado o processamento de um job, o
mesmo deve ser finalizado, ou seja, no permitido
a interrupo do processamento;
203

Programao da produo:
Seqenciamento em uma mquina


Todos os jobs esto disponveis para


processamento na data 0;

Quando um job j seqenciado


imediatamente aps um job i, sendo estes
pertencentes a diferentes famlias de
produtos, necessrio um tempo Sij para a
preparao da mquina;

Assume-se, ainda, que a mquina no


necessita de tempo de preparao inicial;

204

Programao da produo:
Seqenciamento em uma mquina


permitido tempo ocioso entre a execuo de dois jobs consecutivos.

Os jobs devem ser finalizados dentro da janela de tempo [Ei, Ti],


denominada janela de entrega.



Se o job i for finalizado antes de Ei ento h um custo de manuteno de


estoque.
Caso o job seja finalizado aps Ti ento h associado um custo por atraso (que
pode ser uma multa imposta por contratos de prestao de servio), alm de
insatisfao do cliente.
Os jobs que forem finalizados dentro da janela de entrega no proporcionaro
nenhum custo para a empresa;

Os custos unitrios por antecipao e atraso da produo so


dependentes dos jobs.

Objetivo: minimizao do somatrio dos custos de antecipao e


atraso da produo.

205

Programao da produo:
Seqenciamento em uma mquina


Dados de Entrada:


n: nmero de jobs a serem processados;

Pi: tempo de processamento do job i;

Ei: data de incio do perodo de entrega do job i;

Ti: data de trmino do perodo de entrega do job i;

Sij: tempo de preparao da mquina necessrio para


processar job j depois do job i;

i: custos de antecipao da produo do job i por unidade


de tempo;

i: custos de atraso da produo do job i por unidade de


tempo.

206

Programao da produo:
Seqenciamento em uma mquina


Variveis de Deciso:




Jobs Fictcios:



si: a data de incio do processamento do job i;


ei: o tempo de antecipao do job i;
ti: o tempo de atraso do job i;
0: antecede imediatamente o primeiro job na
seqncia de produo;
n + 1: sucede imediatamente o ltimo job na
seqncia de produo;

Observao:



P0 e Pn+1 so iguais a zero,


S0i=0 e Si, n+1=0 i = 1,2,...,n.

207

Programao da produo:
Seqenciamento em uma mquina


Funo Objetivo


Minimizar o somatrio dos custos totais de


antecipao e atraso da produo(0)

208

Programao da produo:
Seqenciamento em uma mquina


Restries


Um job j s pode ser iniciado imediatamente


aps um job i, sem nenhum job intermedirio,
depois de preparar a mquina de i para j e
completado o processamento do job i:
(3)

onde:
M uma constante de valor suficientemente grande

209

Programao da produo:
Seqenciamento em uma mquina


Restries

(3)


Quando j sucede i (yij=1), tm-se:

Quando j no sucede i (yij=0), tm-se:

210

Programao da produo:
Seqenciamento em uma mquina


Restries:


Cada job j tem somente um job i imediatamente


antecessor:
(4)

Cada job i tem somente um job j imediatamente


sucessor:
(5)

211

Programao da produo:
Seqenciamento em uma mquina


Restries:
 O tempo de antecipao ei [0, (Ei Pi si)]
determinado pelas restries:
(6)
(7)

O tempo de atraso ti [0, (si + Pi Ti )]


determinado pelas restries:
(8)
(9)
212

Problema de Seleo de Projetos Mineiros


Concorrentes
Produo

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

Em cada mina apenas uma opo de projeto


pode ser escolhida;
O objetivo maximizar o VPL respeitando a
meta de produo.
Projeto 1

Projeto 2

Projeto 3 . . .

Projeto n
213

Problema de Seleo de Projetos Mineiros


Concorrentes Ex. de opes de projeto por mina

214

Exemplo de Problema de Seleo de


Projetos Mineiros Concorrentes
Exemplo de VPL ($x106):

...

16

884.42 929.56 922.04

...

897.42

177.28 149.92 199.85

...

247.04

...

...

...

126.67

...
7

...

...

...

111.63 106.84 103.42

Exemplo de Produo (Mt):

...

16

40

43

43

...

45

10

10

10

...

12.5

...

...

...

...

...

...

...

215

Modelo de Programao Matemtica para o


Problema de Seleo de Projetos


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.

1 caso a mina i opere com o projeto j


x =
ij 0 caso contrrio
216

Modelo de Programao Matemtica para o


Problema de Seleo de Projetos

max

VPL

ij

iMinas jProjetos

ij
jProjetos

xij Pfalta dnp Pexc dpp

= 1 i Minas

prod

iMinas jProjetos

ij

xij dpp + dnp = M

xij {0,1} i Minas, j Projetos


217

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

Problema do Caixeiro Viajante





Dado um conjunto de cidades e uma matriz de


distncias entre elas
PCV consiste em encontrar uma rota para um
Caixeiro Viajante tal que este:





parta de uma cidade origem


passe por todas as demais cidades uma nica vez
retorne cidade origem ao final do percurso
percorra a menor distncia possvel

Rota conhecida como ciclo hamiltoniano

219

Problema do Caixeiro Viajante

220

Problema do Caixeiro Viajante

221

Formulao Matemtica para o


Problema do Caixeiro Viajante

Dados de entrada:



Variveis de deciso:



Cidades: Conjunto de cidades


dij = distncia entre as cidades i e j
xij = 1 se a aresta (i,j) ser usada; 0, caso contrrio
fij = quantidade de fluxo de i para j

Funo objetivo:

min

ij ij
iCidades jCidades
222

Formulao Matemtica para o


Problema do Caixeiro Viajante
Restries:
1. De cada cidade i s sai uma aresta:

ij
jCidades

= 1 i Cidades

2. A cada cidade j s chega uma aresta:

ij
iCidades

= 1 j Cidades

223

Formulao Matemtica para o


Problema do Caixeiro Viajante
3. O fluxo que chega a uma cidade i menos o que sai igual a uma unidade:

jCidades

f ji

ij
jCidades

= 1 i Cidades | i 1

f-1

4. O fluxo mximo em cada aresta igual a n-1, onde n o nmero de cidades:

fij (n 1) xij i Cidades, j Cidades


5. Integralidade e no negatividade:

f ij 0 i Cidades, j Cidades
xij {0,1} i Cidades, j Cidades
224

Problema do Caixeiro Viajante


Complexidade



Considerando PCV simtrico (dij = dji), para n


cidades h (n-1)!/2 rotas possveis
Para n = 20 cidades, h 1016 rotas possveis. Um
computador que avalia uma rota em 10-8 segundos
gastaria cerca de 19 anos para encontrar a melhor
soluo por enumerao completa
Mtodos de enumerao implcita, tais como
branch-and-bound, embutidos em solvers, podem
reduzir significativamente este tempo
No h garantia de que isso sempre ocorra

225

Problema do Caixeiro Viajante


Complexidade






Para dimenses mais elevadas (> 50 cidades), a resoluo por


modelos de programao matemtica proibitiva em termos de
tempos computacionais
PCV da classe NP-difcil: ainda no existem algoritmos exatos
que o resolvam em tempo polinomial
medida que n cresce, o tempo de execuo cresce
exponencialmente
PCV resolvido por meio de heursticas:





Procedimentos que seguem uma intuio para resolver


o problema (forma humana de resolver o problema,
fenmenos naturais, processos biolgicos, etc.)
No garantem a otimalidade da soluo final
Em geral, produzem solues finais de boa qualidade
rapidamente
226

Heursticas


Construtivas


Consistem em construir uma soluo passo a


passo, elemento por elemento

De refinamento


Consistem em efetuar modificaes na soluo


construda, de forma a tentar melhor-la

227

Heurstica de construo gulosa




Funcionamento:





Constri uma soluo, elemento por elemento


A cada passo adicionado um nico elemento
candidato
O candidato escolhido o melhor segundo um
certo critrio
O mtodo se encerra quando todos os elementos
candidatos foram analisados

228

Heursticas construtivas para o


Problema do Caixeiro Viajante


Vizinho mais prximo




Idia central: Construir uma rota passo a passo,


adicionando soluo corrente a cidade mais prxima
(ainda no visitada) da ltima cidade inserida

Insero mais barata




Idia central: Construir uma rota passo a passo, partindo


de rota inicial envolvendo 3 cidades e adicionar a cada
passo, a cidade k (ainda no visitada) entre a ligao (i, j )
de cidades j visitadas, cujo custo de insero seja o mais
barato

229

PCV Vizinho mais Prximo


Exemplo - Passo 1
Cid.

dij

3


Distncia Total = 1

230

PCV Vizinho mais Prximo


Exemplo - Passo 2
Cid.

dij

3


Distncia Total = 1 + 1 = 2

231

PCV Vizinho mais Prximo


Exemplo - Passo 3
Cid.

dij

3
3

Distncia Total =

2+3=5

232

PCV Vizinho mais Prximo


Exemplo - Passo 4
Cid.

dij

3
3

Distncia Total = 5 + 2 = 7

233

PCV Vizinho mais Prximo


Exemplo - Passo 5
Cid.

dij

7
3

Distncia Total = 7 + 7 = 14

234

PCV Vizinho mais Prximo


Exemplo Passo final: Insero forada
Cid.

1
2

7
3

Distncia Total = 14 + 2 = 16

235

Heurstica da Insero Mais Barata


para o Problema do Caixeiro Viajante


Insero mais barata




Idia central: Construir uma rota passo a passo,


partindo de rota inicial envolvendo 3 cidades
(obtidas por um mtodo qualquer) e adicionar a
cada passo, a cidade k (ainda no visitada) entre
a ligao (i, j ) de cidades j visitadas, cujo custo
de insero seja o mais barato

236

Heurstica da Insero Mais Barata


para o Problema do Caixeiro Viajante

k
dij

Cid.

dir

dri

237

Heurstica da Insero Mais Barata


para o Problema do Caixeiro Viajante
Cid.

dkj

Custo da insero = dik + dkj - dij

dik
dij

dir

dri

238

PCV Insero mais Barata


Exemplo - Passo 1

Cid.

7
2

Distncia Total = 11

239

PCV Insero mais Barata


Exemplo - Passo 2
Cid.

dik + dkj dij

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

PCV Insero mais Barata


Exemplo - Passo 3
Cid.

dik + dkj dij

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

PCV Insero mais Barata


Exemplo Passo final
Cid.

dik + dkj dij

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

PCV Insero mais Barata


Exemplo Soluo final
Cid.

2
1

Distncia Total = 16 + 4 = 20

s = (6 1 3 2 4 5)
243

Heursticas de refinamento






Baseadas na noo de vizinhana


A cada soluo s est associado um
conjunto de vizinhos s definidos por um
determinado tipo de movimento m
s = s m
O tipo de movimento dependente do
problema

244

Heursticas de refinamento


No PCV, um movimento m pode ser a troca


da ordem de visita entre duas cidades
Exemplo:


Dada a soluo s = (6 1 3 2 4 5), so exemplos


de vizinhos de s:
s = (6 4 3 2 1 5)
 s = (6 1 4 2 3 5)


245

PCV - Ex: Vizinhos de uma soluo s


Cid.

2
1

Distncia Total s = 20

s = (6 1 3 2 4 5)
246

PCV - Ex: Vizinhos de uma soluo s


Cid.

2
5

6
3

Distncia Total s = 27

s = (6 4 3 2 1 5)
247

PCV - Ex: Vizinhos de uma soluo s


Cid.

2
4

5
9

2


Distncia Total s = 29

s = (6 1 4 2 3 5)
248

Exemplos de vizinhos no Problema de


Roteamento de Veculos
(Vehicle Routing Problem)
(12)
2

(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

Exemplos de vizinhos no Problema de


Roteamento de Veculos
(Vehicle Routing Problem)
(12)
2

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

Exemplos de vizinhos no Problema de


Roteamento de Veculos
(Vehicle Routing Problem)
(12)
2

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

Problema de Alocao de Salas


(Classroom Assignment Problem)




Diz respeito designao de salas para as aulas de


uma instituio de ensino
O horrio das aulas previamente conhecido
O PAS um subproblema do Problema de
Programao de Horrios (timetabling)
Pode ser tratado de forma isolada ou de forma
integrada programao de horrios

252

Problema de Alocao de Salas


(Classroom Assignment Problem)


Restries:



No pode haver sobreposio de turmas;


As salas tm que comportar as turmas etc.

Objetivos:


Manter as aulas de uma mesma turma em uma mesma


sala ao longo da semana;
Minimizar o fluxo de alunos mudando de sala aps uma
aula;
Sempre que possvel, alocar a uma mesma sala alunos de
um mesmo curso e perodo etc.
253

Problema de Alocao de Salas


(Classroom Assignment Problem)

Movimento de Realocao
254

Problema de Alocao de Salas


(Classroom Assignment Problem)

Movimento de Troca
255

Problema de Alocao de Salas


(Classroom Assignment Problem)
Algumas possveis estruturas de vizinhana:


N1(s) = {s | s s movimento de realocao}

N2(s) = {s | s s movimento de troca}

N(s) = {s | s s mov. de realocao ou troca}

256

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Representao de uma Soluo
CARGA

Cam1

Cam2

...

CamV

F1

(Car2, 0)

...

F2

(D, 0)

...

F3

(Car1, 1)

...

...

...

...

...

...

...

FF

(Car5, 1)

...

3
257

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes


Seis tipos de movimentos para explorar o espao de


solues:







Movimento Carga
Movimento Nmero de Viagens
Movimento Realocar Viagem de um Caminho
Movimento Realocar Viagem a uma Frente
Movimento Operao Caminho
Movimento Operao Frente

Cada movimento define um tipo de vizinhana

258

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Vizinhana NCG

Movimento Carga - NCG(s)


Carga

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

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Vizinhana NOF
Movimento Operao Frente - NOF(s)
Desativar operao de uma carregadeira alocada a uma frente

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)

Ativar operao de uma carregadeira alocada a uma frente

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

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Vizinhana NNV
Movimento Nmero de Viagens - NNV(s)
Decrscimo no nmero de viagens de um caminho a uma frente
Carga

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)

Acrscimo no nmero de viagens de um caminho a uma frente


Carga

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

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Vizinhana NVC
Movimento Realocar Viagem de um
Caminho - NVC(s)
Carga

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

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Vizinhana NVF
Movimento Realocar Viagem a uma
Frente - NVF(s)
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)

263

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Vizinhana NOC
Movimento Operao Caminho - NOC(s)

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

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Funo de avaliao de uma soluo s:


Feita por uma funo que penaliza o no atendimento s restries e objetivos

Restries (Requisitos essenciais):








Produo da mina dentro dos limites de especificao;


Parmetros de controle respeitam os limites de qualidade especificados;
Relao estril/minrio dentro dos limites de especificao;
Taxa de utilizao dos caminhes inferior ao mximo possvel;
Produo dos equipamentos de carga respeita as capacidades de produo
especificadas.

Objetivos (Requisitos no-essenciais):








Atendimento s metas de produo da mina


Atendimento s metas de qualidade dos parmetros de controle
Atendimento relao estril/minrio desejada
Taxa de utilizao de caminhes igual meta de utilizao
Utilizao do menor nmero possvel de caminhes.

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

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Avaliao da soluo s quanto produo:

f ( s ) = Pr P
p

P :
Pr :
p :

Produo de minrio (t/h);


Meta de produo de minrio (t/h);
Peso associado avaliao da produo.

266

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Avaliao da soluo s quanto qualidade:

f j q ( s ) = j q j q Qrj Q j

j S

Qj : Quantidade encontrada na mistura para o parmetro j (t/h);


Qrj : Quantidade recomendada para o parmetro j na mistura (t/h);
jq : Peso associado avaliao da qualidade do parmetro j;
jq : Multiplicador associado ao parmetro j.

267

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Avaliao da soluo s quanto relao estril /
minrio:

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

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Avaliao da soluo s quanto taxa de utilizao
dos caminhes:

f l ( s ) = Url U l l V
u

u
l

Ul : Carga transportada pelo caminho l (t/h);


Url : Meta de carga transportada pelo caminho l (t/h);
lu : Peso associado avaliao da utilizao do caminho l

269

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Avaliao da soluo s quanto produo dos
equipamentos de carga:

f i ( s ) = k Cuk xi i F
c

xi : Ritmo de lavra da frente i (t/h);


k : Equipamento de carga que est operando na frente i;
Cuk : Produo mxima do equipamento de carga k alocado frente i
(t/h);
kc : Peso associado avaliao da produo do equipamento de carga
k alocada frente i

270

Planejamento Operacional de Lavra com


Alocao Dinmica de Caminhes
Avaliao da soluo s quanto ao nmero de
caminhes utilizados:

f n (s) = n

TU
l

iF

TUl : Taxa de utilizao do caminho l , em %;


n : Peso associado avaliao do nmero total de caminhes
utilizados

271

Problema de Seleo de Projetos Mineiros


Concorrentes
Produo

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

Em cada mina apenas uma opo de projeto


pode ser escolhida;
O objetivo maximizar o VPL respeitando a
meta de produo.
Projeto 1

Projeto 2

Projeto 3 . . .

Projeto n
272

Modelagem Heurstica para o Problema de


Seleo de Projetos
Representao de uma soluo:

15

14

*Obs.: Com esta representao, a restrio de


que em cada mina um projeto tem que ser
implementado automaticamente satisfeita
273

Estrutura de Vizinhana para o Problema


de Seleo de Projetos
Explorao do espao de solues por meio do
Movimento Substituio da Opo

Soluo s:

15

14

Exemplo de vizinho s: gerado a partir de s, substituindo-se a opo


implementada em uma mina pela opo posterior

15

14

7
274

Avaliao da Soluo heurstica do


Problema da Seleo de Projetos
Feita por funo que procura maximizar o VPL e
penalizar a produo inferior ou superior meta
f (s) =

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

Pfalta = Penalidade por produo inferior meta;


Pexc = Penalidade por produo superior meta;
M = Meta de produo especificada.
275

Heursticas de refinamento
(Princpio de funcionamento)



Partir de uma soluo inicial qualquer


Caminhar, a cada iterao, de vizinho para
vizinho de acordo com a definio de
vizinhana adotada, tentando melhorar a
soluo construda

276

Mtodo da descida/subida
(Descent/Uphill Method)




Parte de uma soluo inicial qualquer


A cada passo analisa todos os possveis vizinhos
Move somente para o vizinho que representa uma
melhora no valor atual da funo de avaliao.


Em problemas de minimizao, um vizinho s melhor


que s quando f(s) < f(s)). Neste caso, s passa a ser a
nova soluo corrente

O mtodo pra quando um timo local (com


respeito definio de vizinhana) encontrado

277

Funcionamento da
Heurstica de Descida

278

Funcionamento da
Heurstica de Descida

279

Funcionamento da
Heurstica de Descida

280

Funcionamento da
Heurstica de Descida

Problema: Fica-se preso no primeiro timo local


281

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





Mtodos heursticos, de carter geral, dotados de mecanismos


para escapar das armadilhas dos timos locais
Princpio bsico: aceitar solues de piora
Podem ser baseados em Busca Local ou Busca Populacional.
Os mtodos baseados em Busca Local so fundamentados na
noo de vizinhana:
 Dada uma soluo s, diz-se que s um vizinho de s, se s
obtido de s a partir de um movimento m, isto : s s m
 A estrutura de vizinhana varia de acordo com o problema
tratado
Os mtodos baseados em Busca Populacional partem de um
conjunto de solues, aplicando sobre estes operadores que
visam melhoria desse conjunto.
283

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

 Proposto por Kirkpatrick et al. (1983)


 Simula o processo de recozimento de
metais;
 Resfriamento rpido conduz a produtos
meta-estveis, de maior energia interna;
 Resfriamento lento conduz a produtos mais
estveis, estruturalmente fortes, de menor
energia;
 Durante o recozimento o material passa por
vrios estados possveis
285

Simulated Annealing:
Fundamentao do mtodo

 Analogia com um problema combinatorial:


 Os estados possveis de um metal
correspondem a solues do espao de
busca;
 A energia em cada estado corresponde ao
valor da funo objetivo;
 A energia mnima corresponde ao valor de
uma soluo tima local, possivelmente
global.
286

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

onde k = constante de Boltzmann e T =


temperatura corrente;
 Este procedimento repetido at se atingir o equilbrio
trmico (passo de Metrpolis)

287

Simulated Annealing: Probabilidade de


aceitao de um movimento de piora

 Baseada na frmula: P(aceitao) = e-/T


 = variao de custo; T = temperatura

 Temperatura Probabilidade de aceitao


 Temperatura Probabilidade de aceitao

288

Simulated Annealing:
Fundamentao do mtodo

 No incio do processo, a temperatura


elevada e a probabilidade de se aceitar
solues de piora maior;
 As solues de piora so aceitas para
escapar de timos locais;
 A probabilidade de se aceitar uma soluo
de piora depende de um parmetro, chamado
temperatura;
 Quanto menor a temperatura, menor a
probabilidade de se aceitar solues de
piora;

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

Simulated Annealing: Prescries para


determinar a temperatura inicial

293

Determinao da temperatura
inicial por simulao

294

Simulated Annealing:
Consideraes Gerais

 Nmero mximo de iteraes em uma dada


temperatura calculado com base na
dimenso do problema;
 Temperatura de congelamento do sistema:
quando se atingir, p.ex., T = 0,001 ou quando
a taxa de aceitao de movimentos cair
abaixo de um valor predeterminado;
 Os parmetros mais adequados para uma
dada aplicao s podem ser obtidos por
experimentao.
295

Resultados Computacionais do Problema


de Seleo de Projetos


Parmetros do AG
Parmetro

Valor

Gerao de populaes

200

Nmero de indivduos em cada nova gerao

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

Resultados Computacionais do Problema


de Seleo de Projetos


Meta de produo e penalidades por


desvios de meta
Parmetro

Valor

meta de produo (M)

90 Mt

Pexc

$15,00/t

Pfalta

$3,00/t

297

Resultados Computacionais do Problema


de Seleo de Projetos
Microcomputador PC AMD Durom, 900 MHz, 128 MB RAM
LINGO verso 7.0
SA e SA+Subida desenvolvidos em Borland C++ 5.0
Algoritmos Genticos: linguagem e equipamento no especificados

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

Soluo tima: 2180 (obtida por enumerao completa, em 180 segundos)298

Variable Neighborhood
Descent (VND)






Proposto por Nenad Mladenovic & Pierre Hansen


em 1997
Mtodo de Descida em Vizinhana Varivel
Explora o espao de solues atravs de trocas
sistemticas de estruturas de vizinhana
Explora vizinhanas gradativamente mais
distantes
Sempre que h melhora em uma certa vizinhana,
retorna-se vizinhana menos distante

299

Variable Neighborhood
Descent (VND)


Princpios bsicos:





Um timo local com relao a uma vizinhana


no necessariamente corresponde a um timo
com relao a outra vizinhana
Um timo global corresponde a um timo local
para todas as estruturas de vizinhana
Para muitos problemas, timos locais com
relao a uma vizinhana so relativamente
prximos
300

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

Iterated Local Search (ILS)




Pressuposto:


Os timos locais de um problema de otimizao podem


ser gerados a partir de perturbaes na soluo tima
local corrente

A perturbao precisa ser suficientemente forte para


permitir que a busca local explore diferentes
solues e fraca o suficiente para evitar um reincio
aleatrio

302

Iterated Local Search (ILS)




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

Iterated Local Search (ILS)


procedimento ILS
s0 SolucaoInicial
s BuscaLocal(s0)
iter 0
enquanto (iter < itermax)
iter iter + 1
s perturbao(s, histrico)
s BuscaLocal(s)
s CriterioAceitacao(s, s, s )
se ( f(s) < f(s) ) faa
fim-enquanto
s s
retorne s
fim-se
304

Iterated Local Search (ILS)





Combina intensificao com diversificao


Intensificao:


obtida fazendo-se pequenas perturbaes na


soluo tima corrente

Diversificao:


obtida aplicando-se grandes perturbaes na


soluo tima corrente

305

ILS aplicado ao Planejamento


Operacional de Lavra com Alocao
Dinmica de Caminhes


Utiliza 20 nveis de pertubao;




Cada nvel n consiste em realizar n diferentes movimentos


de forma aleatria

Busca Local:
Mtodo VND (Variable Neighborhood Search)

Critrio de Parada:
Tempo de processamento pr-determinado

306

ILS aplicado ao Planejamento


Operacional de Lavra com Alocao
Dinmica de Caminhes
Problemas-teste:


Situaes reais em mineradoras;


No de
No De
Instncias
Parmetros
Frentes de Controles

No de
Carregadeiras

No de
Caminhes

POLAD1

17

10

30

POLAD2

17

10

30

POLAD3

32

10

30

POLAD4

32

10

30

307

ILS aplicado ao Planejamento Operacional de


Lavra com Alocao Dinmica de Caminhes
Desempenho do Algoritmo ILS:
Procedimento I
Instncia

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)

Melhor soluo em 15 minutos de processamento; (2) Melhor soluo em 240 minutos;


(3) Soluo tima, obtida em 80 minutos de processamento.

308

Algoritmos Genticos


Os AGs fundamentam-se em uma analogia com


processos naturais de evoluo, nos quais, dada uma
populao, os indivduos com caractersticas genticas
melhores tm maiores chances de sobrevivncia e de
produzirem filhos cada vez mais aptos, enquanto
indivduos menos aptos tendem a desaparecer
As caractersticas dos indivduos, registradas em seus
genes, so transmitidas para seus descendentes e
tendem a propagar-se por novas geraes
Caractersticas dos descendentes so parcialmente
herdadas de seus pais (Crossover) e parcialmente de
novos genes criados durante o processo de reproduo
(Mutao)
309

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

Representao de uma soluo

Gene

Parte da representao de uma


soluo
Alelos
Valores que uma varivel pode
assumir
Crossover / Mutao Operadores de busca

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

Feita pela funo de aptido (fitness)


Em um problema de maximizao pode ser a
prpria funo objetivo
Em um problema de minimizao pode ser o
inverso da funo objetivo

314

Fase de seleo

Binary tournament selection:

Selecionar dois indivduos aleatoriamente


O primeiro pai o indivduo com maior aptido
Selecionar, aleatoriamente, outros dois pais
O segundo pai o indivduo com maior aptido
nessa nova seleo

Aleatrio
Roleta russa

315

Fase de reproduo

Dois ou mais cromossomos passam por um


processo de mutao e/ou recombinao
para gerar novos cromossomos filhos
(offsprings)
Operador mutao clssico
p=(0101)

p=(0111)
316

Fase de reproduo

Operador crossover clssico (one point crossover):


Descendentes so formados a partir da reunio de
segmentos de cada pai
p1 = ( 0 1 1 | 1 0 0 )
p2 = ( 1 0 1 | 0 1 0 )

O1 = ( 0 1 1 | 0 1 0 )
O2 = ( 1 0 1 | 1 0 0 )

317

Operador crossover para o


PCV


Operador OX




Operador crossover de dois pontos de corte


Cruzamento entre os pais geram dois filhos
Filhos herdam a ordem de visita dos pais

318

Operador OX para o PCV





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

Operador OX para o PCV





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

Operador OX para o PCV





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

Operador OX para o PCV





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

Operador OX para o PCV





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

Operador OX para o PCV





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

Operador OX para o PCV





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

Operador OX para o PCV





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

Como selecionamos os cromossomos que


devem sobreviver?
Sobrevivem os que possuem os melhores
nveis de aptido?
importante permitir tambm a sobrevida de
cromossomos menos aptos, do contrrio o
mtodo ficaria preso em timos locais
Elitismo

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

You might also like