Você está na página 1de 2

Planos de corte Planos de corte

Alguns modelos em programação inteira Alguns modelos em programação inteira


Noções estudadas Noções estudadas

Nesta aula. . . Algoritmo dos planos de corte

problemas lineares com variáveis inteiras: algoritmo de pesquisa em


árvore (aulas anteriores)
1 Planos de corte outro método: algoritmo dos planos de corte
método proposto por Ralph Gomory em 1958
ideia: adicionar uma restrição que remova a solução atual (fracionária)
da região admissível da relaxação linear, e voltar a resolver, até que a
2 Alguns modelos em programação inteira
solução seja inteira
Problemas de cobertura
Árvore de suporte de custo mínimo

Nota: o algoritmo requer que todos os coeficientes das variáveis nas


restrições, e todos os termos independentes, sejam inteiros.

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Planos de corte Planos de corte


Alguns modelos em programação inteira Alguns modelos em programação inteira
Noções estudadas Noções estudadas

Planos de corte: exemplo Planos de corte: exemplo

maximizar z =8x1 + 5x2


sujeito a: x1 + x2 ≤ 6
9x1 + 5x2 ≤ 45
x1 , x2 ≥ 0 e inteiros

z x1 x2 s1 s2 rhs
1 0 0 1.25 0.75 41.25
Quadro ótimo do simplex:
0 0 1 2.25 -0.25 2.25
0 1 0 -1.25 0.25 3.75

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Planos de corte Planos de corte


Alguns modelos em programação inteira Alguns modelos em programação inteira
Noções estudadas Noções estudadas

Planos de corte: cortes válidos Planos de corte: exemplo (cont).

maximizar z =8x1 + 5x2


Corte válido: desigualdade que se adiciona tal que: sujeito a: x1 + x2 ≤ 6
1 a solução da relaxação linear passa a ficar fora da região admissível; 9x1 + 5x2 ≤ 45
2 todas as soluções inteiras do problema original continuam na região x1 , x2 ≥ 0 e inteiros
admissível.
z x1 x2 s1 s2 rhs
1 0 0 1.25 0.75 41.25
Quadro ótimo do simplex:
0 0 1 2.25 -0.25 2.25
0 1 0 -1.25 0.25 3.75

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Planos de corte Planos de corte


Alguns modelos em programação inteira Alguns modelos em programação inteira
Noções estudadas Noções estudadas

Planos de corte: exemplo (cont). Propriedades dos cortes de Gomory

1 qualquer solução admissível para o problema inteiro satisfaz o corte


escolher linha no quadro do simplex com variável básica fracionária; seja uma solução x1 , x2 admissível para o problema inteiro
seja: x1 , x2 são inteiras e satisfazem todas as restrições da relaxação linear
x1 − 1.25s1 + 0.25s2 = 3.75 ⇔ qualquer solução admissível deverá ter s1 ≥ 0, s2 ≥ 0
x1 − 2s1 + 0.75s1 + 0s2 + 0.25s2 = 3 + 0.75 naquela linha, como 0.75 < 1, qualquer solução admissível inteira deverá
ter o lado direito < 1
colocando à esquerda coeficientes inteiros e à direita fracionários: ou seja, deverá satisfazer 0.75 − 0.75s1 − 0.25s2 ≤ 0
x1 − 2s1 + 0s2 − 3 = 0.75 − 0.75s1 − 0.25s2 para qualquer solução inteira, x1 − 2s1 + 0s2 − 3 é inteiro
x1 , s1 , s2 só podem assumir valores inteiros (porquê?) portanto 0.75 − 0.75s1 − 0.25s2 deverá ser um inteiro menor que 1
lado esquerdo é inteiro ou seja, o corte não remove nenhuma solução inteira admissível
portanto, lado direito também, e será no máximo 0.75 2 a solução atual (no quadro do simplex) não satisfaz o corte
arredondando para baixo:
nesta solução, s1 = s2 = 0; não satisfaz 0.75 − 0.75s1 − 0.25s2 ≤ 0
plano de corte: lado direito ≤ 0, ou seja, adiciona-se a restrição: isto resulta porque a parte fracionária (= 0.75 > 0)
0.75 − 0.75s1 − 0.25s2 ≤ 0 podemos escolher qualquer restrição cujo lado direito no quadro ótimo do
simplex seja fracionário, e “cortar” essa solução

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão
Planos de corte Planos de corte
Alguns modelos em programação inteira Alguns modelos em programação inteira
Noções estudadas Noções estudadas

Planos de corte: exemplo (cont.) Algoritmo dos cortes de Gomory

z x1 x2 s1 s2 rhs
1 0 0 1.25 0.75 41.25
Quadro anterior do simplex:
0 0 1 2.25 -0.25 2.25 se todas as variáveis forem inteiras, a solução é ótima ⇒ parar
0 1 0 -1.25 0.25 3.75
se houver variáveis fracionárias: gerar corte
Plano de corte a adicionar:
(caso haja várias: heurística: escolher a que tiver o valor mais próximo
0.75 − 0.75s1 − 0.25s2 ≤ 0 ⇔ −0.75s1 − 0.25s2 + s3 = −0.75 de 1/2)
resolver com o método do simplex (dual), e recomeçar
z x1 x2 s1 s2 s3 rhs
1 0 0 1.25 0.75 0 41.25 Gomory mostrou que com este algoritmo se obtém uma solução inteira com
Novo quadro do simplex: 0 0 1 2.25 -0.25 0 2.25 um número finito de cortes.
0 1 0 -1.25 0.25 0 3.75
0 0 0 -0.75 -0.25 1 -0.75

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Planos de corte Planos de corte


Problemas de cobertura Problemas de cobertura
Alguns modelos em programação inteira Alguns modelos em programação inteira
Árvore de suporte de custo mínimo Árvore de suporte de custo mínimo
Noções estudadas Noções estudadas

Problemas de cobertura Formulação

Exemplo:
Há seis cidades na zona do Porto, e o governo regional está a estudar
onde deverá construir quartéis de bombeiros. Variáveis: xi = 1 se se constrói quartel na cidade i, 0 c.c. (i = 1, . . . , 6)
Cada cidade deverá ficar a menos de 15 minutos de pelo menos um Objetivo: minimizar z = x1 + x2 + . . . + x6
quartel. Restrições:
Os tempos de deslocação entre cidades são:
cidade 1: x1 +x2 ≥ 1
Cidade 1 2 3 4 5 6
cidade 2: x1 +x2 +x6 ≥ 1
1 0 10 20 30 30 20 cidade 3: x3 +x4 ≥ 1
2 0 25 35 20 10 cidade 4: x3 +x4 +x5 ≥ 1
3 0 15 30 20 cidade 5: x4 +x5 +x6 ≥ 1
4 0 15 25 cidade 6: +x2 +x5 +x6 ≥ 1
5 0 14
6 0
Pretende-se determinar o número mínimo de quartéis.

João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Planos de corte Planos de corte


Problemas de cobertura
Alguns modelos em programação inteira Alguns modelos em programação inteira
Árvore de suporte de custo mínimo
Noções estudadas Noções estudadas

Problema da árvore de suporte de custo mínimo Noções estudadas

Dados: grafo G = (V , E)
Variáveis: xe = 1 se a aresta e estiver na árvore
Notação E(S) = {e = (i, j) ∈ E : i, j, ∈ S}
Formulação:

X
minimizar z = ce xe Algoritmo dos planos de corte.
e∈E Exemplos de formulação em programação inteira.
X
sujeito a: xe ≤ |S| − 1 ∀S ⊂ V
e∈E(S)
X
xe = |V | − 1
e∈E

xe ≥ 0, ∀e ∈ E

Formulação é justa (descreve o envelope convexo)


Problema: número exponencial de restrições
João Pedro PEDROSO Métodos de Apoio à Decisão João Pedro PEDROSO Métodos de Apoio à Decisão

Planos de corte
Alguns modelos em programação inteira
Noções estudadas

Próximas aulas

Formulação em programação matemática: programação não linear.


Noção de função convexa e côncava.
Método dos multiplicadores de Lagrange.
Introdução à simulação.

João Pedro PEDROSO Métodos de Apoio à Decisão

Você também pode gostar