• Nenhum resultado encontrado

PLI1

N/A
N/A
Protected

Academic year: 2021

Share "PLI1"

Copied!
49
0
0

Texto

(1)
(2)

Definição

● A Programação Linear Inteira (PLI) é um caso

particular da Programação Linear (PL)

● As variáveis devem assumir valores inteiros (ou

pelo menos uma parte delas)

(3)

Aplicações

● As aplicações decorrem quando variáveis com

valores reais não possuem um significado razoável

● Ex: Se x representa o número de funcionários a

serem contratados o valor 4.16 não representa um valor praticável. Decisões do tipo sim ou

(4)

Características

● Espaço de busca discreto

● Em muitos casos práticos o conjunto de

soluções é finito

● Difícil tratamento: NP-Difícil ou NP-Completo

(5)

Exemplo

● Seja um conjunto de 50 cidades

● Um indivíduo precisa passar por todas elas

vendendo produtos e depois retornar a cidade origem

● O objetivo é encontrar a rota que minimiza a

distância percorrida

● Este é o Problema do Caixeiro Viajante ou

(6)

Enumeração

● Enumerar todas as soluções e encontrar a

melhor é possível, mas inviável na maioria dos casos

● Alguns problemas não possuem um poliedro

bem formado, com um lado ilimitado, logo o número de soluções é infinito

● Em alguns casos exitem soluções demais para

(7)

Enumeração - TSP

● Existem (n-1)!/2 soluções ● 49! =

6082818640342675608722521633212953768875528313 79210240000000000 ~ 6X1062

● Os computadores modernos realizam 4x109 instruções por segundo aproximadamente

● Supondo que uma solução tivesse sua qualidade avaliada em uma única instrução (o que não é verdade)

● São necessários aproximadamente 2X1045 anos para analisar todas as soluções

(8)

Simplex

● O Algoritmo Simplex pode ser usado como

aproximação

● Ignora-se as restrições de integralidade e

resolve-se o problema como se ele fosse contínuo

(9)

Exemplo

● Uma determinada empresa produz dois

produtos, chamados p1 e p2, e quer determinar a quantidade de produtos a serem feitos de

forma a maximizar o seu lucro

● O produto p1 dá uma unidade de lucro; o

(10)

Exemplo

● Ambos os produtos requerem os mesmos dois

tipos de matéria-prima

● O produto p1 consume uma unidade de cada

matéria-prima; já o produto p2 consome 20 unidades da primeira matéria-prima e uma unidade da segunda matéria-prima

(11)

Exemplo

● A produção está limitada ao estoque de cada

matéria-prima que é de 50 unidades da primeira e 20 unidades da segunda

(12)

Formulação Matemática

● Seja x

i a variável que determina a quantidade a

ser produzida do produto i

● A quantidade produzida deve ser um número

inteiro

● A quantidade produzida não pode ser inferior a

(13)

Formulação Matemática

max x1+19x2 s. a. x1+20x2≤50 x1+ x2≤20 x1, x2∈ℤ x1, x2≥0

(14)

Exemplo

max x1+19x2 s. a. x1+20x2≤50 x1+ x2≤20 x1, x2∈ℤ x1, x2≥0 Lucro Matéria-prima 1 Matéria-prima 2 integralidade Não negatividade

(15)

Exemplo

max x1+19x2 s. a. x1+20x2≤50 x1+ x2≤20 x1, x2≥0

Removendo a restrição de integralidade temos uma solução linear

x1=18,42 x2=1,58

fo(X)= 48,42 O que fazer?

(16)

Exemplo

Analisando as soluções Inteiras próximas a solução ótima temos

X1=18 x2=1 → fo(x) = 37

X1=19 x2=1 é a solução ótima? X1=18 x2=2 → inviável

X1=19 x2=1 → fo(x) = 38 X1=19 x2=2 → inviável

(17)

Exemplo

● A solução ótima deste problema é x1=10, x2=2

● A função objetivo neste caso é 48, longe do 38

da solução anterior

● A solução pode ser obtida através do algoritmo

(18)

Branch-and-Bound Inicialização

● Seja o conjunto L o conjunto de problemas a ser

resolvido. Seja z o valor da melhor solução inteira encontrado no processo de solução

● No início L é um conjunto vazio e z indeterminado ● Retira-se as restrições de integralidade do

problema original

(19)

Branch-and-Bound

X1=? X2=? Z=?

(20)

Branch-and-Bound

● Retira-se um problema de L, referenciado por p

(21)

Branch-and-Bound

● Retira-se um problema de L, referenciado por p

● Caso a solução de p seja inteira atualiza-se o

valor de z caso necessário

(22)

Branch-and-Bound

● Retira-se um problema de L, referenciado por p

● Caso a solução de p seja inteira atualiza-se o

valor de z caso necessário

● Caso a solução de p seja inviável p é

(23)

Branch-and-Bound

(24)

Branch-and-Bound

● Caso a solução seja contínua e pior que z p

deve ser descartado

(25)

Branch-and-Bound

● Caso a solução seja contínua e pior que z p

deve ser descartado

● Caso a solução seja contínua e melhor que z,

deve-se escolher uma variável qualquer do problema, com valor contínuo, e realizar a operação de ramificação

(26)

Branch-and-Bound

● Seja s a solução de p. Escolhe-se uma variável

qualquer referenciada por y. Seja sy o valor da variável y em s.

● Na ramificação são criados dois novos

problemas: p’ e p’’

● Em p’ é inserida a restrição y >= teto(s

y)

● Em P’’ é inserida a restrição y <= piso(s

(27)

Branch-and-Bound

● No exemplo, podemos tomar a variável

x1=18,42

● Em p’ acrescenta-se a restrição x1>=19

(28)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=? X2=? fo(X)=? x1>=19 X1=? X2=? fo(X)=? x1<=18 Z=?

(29)

Branch-and-Bound

● O algoritmo realiza as operações de

ramificação e descarte enquanto houver problemas no conjunto L

● Melhor caso: a cada passo um problema é

descartado

● Pior caso: a cada passo um problema é

(30)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 Z=?

(31)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 Z=?

(32)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 Z=38 Solução Inteira

(33)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=? X2=? fo(X)=? x1<=18 Z=38 Descartado Em análise Solução Inteira

(34)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=? X2=? fo(X)=? x1<=18 Z=38

(35)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=18 X2=1,6 fo(X)=48,4 x1<=18 Z=38 Descartado Em análise

(36)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=18 X2=1,6 fo(X)=48,4 x1<=18 X1=? X2=? fo(X)=? x2>=2 X1=? X2=? fo(X)=? x2<=1 Z=38

(37)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=18 X2=1,6 fo(X)=48,4 x1<=18 X1=10 X2=2 fo(X)=48 x2>=2 X1=? X2=? fo(X)=? x2<=1 Z=38 Descartado Em análise Solução Inteira

(38)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=18 X2=1,6 fo(X)=48,4 x1<=18 X1=10 X2=2 fo(X)=48 x2>=2 X1=? X2=? fo(X)=? x2<=1 Z=48

(39)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=18 X2=1,6 fo(X)=48,4 x1<=18 X1=10 X2=2 fo(X)=48 x2>=2 X1=18 X2=1 fo(X)=37 x2<=1 Z=48 Descartado Em análise

(40)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=18 X2=1,6 fo(X)=48,4 x1<=18 X1=10 X2=2 fo(X)=48 x2>=2 X1=18 X2=1 fo(X)=37 x2<=1 Z=48

(41)

Branch-and-Bound

X1=18,42 X2=1,58 fo(X)=48,42 X1=19 X2=1 fo(X)=38 x1>=19 X1=18 X2=1,6 fo(X)=48,4 x1<=18 X1=10 X2=2 fo(X)=48 x2>=2 X1=18 X2=1 fo(X)=37 x2<=1 Z=48 Descartado Em análise

(42)

Branch-and-Bound

● Seja L um Conjunto de subproblemas

● Seja fo(s) a função objetivo de uma solução s

● Seja s* a melhor solução inteira encontrada ao

longo da busca

(43)

Branch-and-Bound

Algoritmo branchAndBound( PPL p ) Início

Seja s a solução de p Se (s for inteira) Então Retorne s

(44)

Branch-and-Bound

L = {}, z = null, s*=null

Seja x uma das variáveis fracionarias de s PPL p1=p, p2=p Adicione em p1 a restrição Adicione em p2 a restrição Inserir p1 em L Inserir p2 em L x≤ piso( x) x≥teto( x)

(45)

Branch-and-Bound

Enquanto (L não estiver vazia) Faça Remova um elemento r de L

Seja sr a solução de r

Se (Inviável(sr) | z != null & fo(sr) pior que z) Então Descarte r

(46)

Branch-and-Bound

Se (sr for inteira ) então

Se(z==null | fo(sr) melhor que z ) Então z=fo(sr)

s* = sr Fim Se

(47)

Branch-and-Bound

PPL paux1=r, paux2=r

Seja x’ uma variável fracionária de sr Adicione em paux1 a restrição

Adicione em paux2 a restrição Inserir paux1 em L

Inserir paux2 em L

Fim Se // solução de r é fracionária Fim Enquanto

x '≤ piso( x ' )

(48)

Branch-and-Bound

retorne s*

Fim Se //solução Fracionária Fim

(49)

Fim

Referências

Documentos relacionados

ARTIGO 2 Antioxidant and antimicrobial activities of carotenoids produced by Rhodotorula mucilaginosa CCMA 0156 in submerged fermentation using coffee processing waste ..... A

de um plano (folha) condutor infinito aterrado como sendo a mais simples aplica¸c˜ ao do.. met´ odo

Após cada aula, entra em cena o momento de avaliar, coletivamente quando possível, as ações realizadas, refletir e rever o que não deu certo, replanejar ações futuras visando sempre

PRECAUÇÕES ESPECIAIS DE ELIMINAÇÃO DO MEDICAMENTO NÃO UTILIZADO OU DOS SEUS DESPERDÍCIOS, SE FOR CASO DISSO. Os medicamentos não devem ser eliminados nos cursos de água nem

Após a escolha do tema, assim como Gil (2002) sugere, foi feito um levantamento bibliográfico preliminar, com o intuito de selecionar textos para leitura que

(2006) e Cruz Jr (2009) mostram que variáveis associadas ao comportamento do produtor são imprescindíveis na explicação do uso ou não de instrumentos de gestão de risco. No que

Como exemplo, pode-se mencionar o estudo da distribuição espacial das espécies de cigarrinhas Dilobopterus costalimai, Acrogonia citrina e Oncometopia facialis, vetoras da

[r]