Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação Inteira
Conteúdos da Seção
w Programação Inteira
n Problema Relaxado
n Solução Gráfica
n Solução por Enumeração
n Algoritmo de Branch-And-Bound
n Solução Excel
n Solução no Lindo
w Caso LCL Tecnologia S.A.
w Variáveis Binárias e Condições Lógicas
w Caso LCL Equipamentos S.A.
2
Programação Inteira
w São problemas de programação matemática em
que a função-objetivo, bem como as restrições, são
lineares, porém uma ou mais variáveis de decisão
podem apenas assumir valores inteiros
w É uma das ferramentas comumente usada para
resolver problemas de otimização combinatória.
w Tipos básicos:
Programação Inteira Total - onde todas as
n
Problema Relaxado
w A todo problema de programação inteira está
associado um Problema Relaxado:
w Mesma função objetivo e as mesmas
restrições, com exceção da condição de
variáveis inteiras.
Max 18 x1 + 6 x2 (4)
x2 Solução Aproximada do
LP Relaxado Ótimo
(5 ; 5)
Limitantes
w Em um problema de MAXIMIZAÇÃO, o valor
ótimo da função objetivo, do Problema Relaxado,
sempre representa um limite superior ao respectivo
Problema Inteiro.
w Em um problema de MINIMIZAÇÃO, o valor
ótimo da função objetivo, do Problema Relaxado,
sempre representa um limite inferior ao respectivo
Problema Inteiro.
w Nenhum ponto inteiro
vizinho ao ponto ótimo x2 Solução
Ótima para
do problema relaxado é LP Relaxado
necessariamente viável.
Solução
w Mesmo que um dos Ótima para
Prog.Inteira
vizinhos seja viável.
n Não é necessariamente
o ponto ótimo inteiro.
n Não é obrigatoriamente
uma solução aceitável. x1
5
16 29 Z=29
X3 =1 X4 =0
X3 =0 X4 =0
7 17 30 Z=17
X 2=1
X1 =1 X 2=0 X3 =0 X4 =1
3 8 18 31 Z=21
X 3=1 X 4=0
10 20 33 Z=22
X 2=1 X 4=1
X 3=1 21 34 Z=26
X 3=2 X 4=0
23 36 Z=24
X 2=2 X 4=0
12 24 37 Z=20
X 3=0
X 3=1 X 4=0
26 39 Z=26
X 2=1
14 27 40 Z=24
X 3=0 X 4=0
7
Algoritmo de Branch-And-Bound
w Algoritmo bastante popular em P.I.
w É uma metodologia geral para solução de ILP e
MILP, e diversas variantes existem para tratar
diversos tipos de problemas específicos.
w A idéia geral é a de se particionar o conjunto de
soluções viáveis em subconjuntos sem interseções
entre si;
w Calcula-se os limites superior e inferior para cada
subconjunto;
w Elimina-se certos subconjuntos de acordo com
regras pré-estabelecidas;
root node Level 0
child nodes
... Level 2
...
Cada nó é uma solução parcial
8
Algoritmo de Branch-and-Bound
• Cada nó possui limitantes inferior e superior
• Upper bound (limite superior)
• Obtido através de uma solução viável
• Lower bound (limite inferior)
• Estimado
• Eliminação de nós:
• quando LB >= UB
• Estratégia de ramificação:
• Como particionar o espaço de busca
• Seleção de nós: seqüência de exploração de nós
• Profundidade: tenta obter logo uma solução
• Largura: tenta obter a melhor solução
(?,?,?,?) Level 0
Algoritmo de Branch-And-Bound
(?,?,?,?) Level 0
LB=5 LB=7*
(1,?,?,?) =UB (2,?,?,?) (3,?,?,?) (4,?,?,?) Level 1
LB=6* LB=5*=UB
=UB
(1,2,?,?) (1,3,?,?) (1,3,4,2)
(1,2,4,3) DONE
(1,2,4,3) (1,3,4,2)
• Profundidade x Largura
• Heurísticas para selecionar as melhores subárvores
• LB pode considerar heurísticas específicas
• Não determinar o LB não limita a eficiência do
método
• O maior problema do BB é que ele ainda explora
uma árvore onde as ramificações podem explodir
exponencialmente
• Dependendo da heurística usada ou solução inicial
encontrada, o algoritmo ainda pode ser muito
lento para problemas grandes.
10
LP solution: x1 = 0.8,
x 2 = 2 .4
x2 6
x1 ≤ 0 x1 ≥ 1
5
x1 = 0 , x1 = 1,
4
x2 = 3 x2 = 2 x1 + x2 = Z
obj: 3 obj: 3 3 (objective)
2
1
x2 ≤ 2 x2 ≥ 3
x1 = 1, x1 = 0 ,
0 1 2 3 4 5 6
x2 = 2 x2 = 3 x1
obj: 3 obj: 3
11
x2 x2
Soluções Inteiras
(P1 )
A
A z=5x1 +8x2
B
B
(P2 )
5x1 + 9x2 =45
x1 + x2 =6 O C x1
O C x1
P0
x1 =2,25 x2 =3,75
z=41,25
x 2 ≥4,0 x 2≤3,0
P2 P1
x1 =1,8 x2 =4,0 x1 =3,0 x2 =3,0
z=41 z=39
x1 ≥2,0 x 1≤1,0
P3 P4
Inviável x1 =1,0 x2 =4,25
z=40,4
x2 ≥5,0 x 1≤4,0
P5 P6
x1 =0 x2 =5 x1 =1,0 x2 =4,0
z=40 z=37
12
Optimal
(2,2)
0
(4.1,0.3667) 45.03
(4,0.44) 44.88 X<4 X> 5
Inviável
1 2
(4, 0) 40
3 Y<0 Y >1
4 (3.29,1) 43.9
5 X<3 X> 4 6
(3, 1.22) 43.4
Inviável
Y<1 Y>2
(3,1) 41 7 8 (2,2) 42
13
2 X 1 + 3 X 2 + 2,5 X 3 ≤ 600
w Restrições: 3 X + 2 X + 2,5 X ≤ 500
1 2 3
X 1 ≤ 600Y1
X 2 ≤ 600Y2
X 3 ≤ 600Y3
Obs : 600 é um nº que é grande o suficiente.
16
Teoria da computação
o Um algoritmo A é dito polinomial se existe algum
polinômio p tal que A sempre termina
(corretamente) depois de no máximo p(n)
operações elementares, para quaisquer dados com
tamanho total n.
o ordenação ruim p(n) = cn2 + d
o algoritmo que conta de 1 em 1, n bits, até um
limite: q(n) = 2n
o não existe nenhum polinômio p(n) que seja
maior que q(n) para todo n.
o A classe de problemas P representa o conjunto de
todas as funções ("problemas") para as quais
existem (foram descobertos) algoritmos
polinomiais.
o A classe NP representa o conjunto de todas as
funções que podem ser verificadas por algoritmos
polinomiais.
o Classe de problemas NP-Completos subconjunto
de NP onde um problema pode ser “transformado”
(reduzido) em outro através de um algoritmo
polinomial.
17
o Redução de problemas
o P(x) = ax + b ≤p Q(x) = 0x2 + ax + b
o P ≤p Q => P não é mais que um fator
polinomial mais difícil que Q
o Um problema NP-completo admite um algoritmo
de verificação polinomial e pode ser reduzido a
qualquer outro problema NP-completo em tempo
polinomial.
o P=NP: Se um problema NP completo pudesse ser
resolvido por um problema polinomial (não existe
tal garantia) então todos os demais também
poderão.
o Os problemas NP-Árduos (NP-hard) também
podem ser reduzidos, mas não é conhecido
algoritmo polinomial que verifique a solução.
o Problemas de otimização, em geral, são NP-
Árduos, pois não é fácil verificar se a melhor
solução foi obtida.
18
Otimização combinatória
o Ramo de Ciência da Computação que estuda
problemas de otimização em conjuntos.
o A solução do problema (ótimo global) será o
menor (ou maior) valor possível para a função
objetivo para o qual o valor atribuído às variáveis
não viole nenhuma restrição.
o O conjunto de possíveis soluções forma o espaço
de busca que é discreto.
o Ótimo Local é a melhor solução dentro de uma
localidade do espaço de busca:
o Ocorre quando não é possível encontrar outra
solução melhor
o Motivos:
§ a estratégia do algoritmo;
§ relação de vizinhança entre soluções
o Campo onde se disseminam métodos exatos e
métodos aproximativos (heurísticas)
19
Heurísticas
Procedimentos
Procedimentos
Aproximativos
Aproximativos
Heurísticas
Heurísticas Relaxações
Relaxações
Estocásticas
Estocásticas Clássicas
Clássicas Analógicas
Analógicas Lagrangeana
Lagrangeana Linear
Linear
-Míopes
-Míopes
.Construtivas
.Construtivas
-Simulated
-SimulatedAnneling
Anneling -Redes
-RedesNeurinais
Neurinais
.Por
.Poreconomia
economia
-Tabu
-TabuSearch
Search -Computação
-ComputaçãoEvolutiva
Evolutiva -Subgradiente
-Subgradiente
-Busca
-Buscalocal
local -Dual
-DualAscent
Ascent
.Clássica
.Clássica .Algoritmos
.Algoritmosgenéticos
genéticos -Ajuste
-AjusteMúltiplo
Múltiplo
.Método
.Métododescendente
descendente
.Reativa
.Reativa .Scatter
.ScatterSearch
Search
.Método
.Métodoaleatório
aleatório
-GRASP
-GRASP .Colônia
.Colôniadedeformigas
formigas
-Particionamento/
-Particionamento/
Grupamento
Grupamento
21
0
22
Problema de cortes
Problema de cortes
O problema de corte de estoque apresentado pode ser
matematicamente formulado considerando-se as m
possíveis colunas A 1 , A2 , A 3 ,..., A m correspondentes aos
padrões de corte, onde:
Problema de cortes
Solução trivial (padrões de cortes homogêneos)
o Problema unidimensional
o Problema bidimensional
25
Problema de cortes
Geração de colunas (Gilmore and Gomory)
o Iniciar um conjunto trivial de padrões de corte e
o Gerar padrões de corte subseqüentes
26
Casos especiais:
o P-medianas capacitado
o Cobertura
28
PCV+p-Medianas
o Deseja-se encontrar p-rotas de caixeiro viajante,
mutuamente excludentes, com custo total < Cmax