MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como...

32
MÉTODO BRANCH-AND-BOUND 1

Transcript of MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como...

Page 1: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

MÉTODO BRANCH-AND-BOUND

1

Page 2: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear;

Todas, ou parte, das variáveis de decisão devem ser inteiras;

Importante se ter mente o grau de dificuldade associado à sua solução;

2

Page 3: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Não quer dizer que problemas que exijam computadores com alta capacidade;

Mesmo que a solução ótima não seja encontrada, é possível obter boas soluções viáveis ;

E mostrar quão próximo da solução ótima podem estar;

3

Page 4: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Um problema de programação linear inteira pode apresentar as seguintes situações:◦ Problemas de Programação Linear Inteira Pura –

PLIP;◦ Problemas de Programação Linear Inteira Mista –

PLIM;◦ Problemas de Programação Linear Inteira Binária

– PLIB;◦ Problemas de Programação Linear Inteira Binária

Mista – PLIBM.

4

Page 5: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Inicialmente, pode-se ignorar a restrição que impõe que as variáveis de decisão devam ser inteiras;

Método Simplex (Software LINDO);

Caso a resposta não seja um número inteiro, deve-se arredondá-la;

A solução arredondada pode ser inviável ou longe da solução ótima;

5

Page 6: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

6

Page 7: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

7

Page 8: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Outra abordagem é o método de enumeração;

Um dos maiores entraves para a aplicação deste método é de ser impraticável para problemas reais que geralmente envolvem várias variáveis de decisão;

8

Page 9: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

• Deve-se considerar algumas observações:• O número de soluções em um problema de PLI é

finito, mas isto não implica que seja fácil de resolver;

• Num problema de PLIB com n variáveis há 2ⁿ soluções, por isso, para alguns problemas, fica impossível enumerar todas as soluções;

• Os melhores algoritmos não podem garantir a solução de todos os problemas, mesmo relativamente pequenos (< 100 variáveis);

9

Page 10: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

• Os problemas de PLIP tem quantidade finita de soluções possíveis;

• Considerar a utilização de um método de enumeração para encontrar o valor ótimo;

• A quantidade de possíveis soluções émuito grande;

• O método utilizado deve ser estruturado para que apenas uma parte das soluções possíveis sejam examinadas;

10

Page 11: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

• Branch-and-Bound (particionar e limitar “as partições”);

• É um algoritmo que apresenta essa qualidade;

• Dividi-lo em sub-problemas cada vez menores, até que estes possam ser solucionados

11

Page 12: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

A ideia é desenvolver uma enumeração inteligente dos pontos candidatos (nós);

Em busca da solução ótima inteira do problema;

Por meio da partição do espaço e avaliação progressiva das soluções;

12

Page 13: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

A forma de divisão em problemas menores parte do princípio da separação de uma das variáveis;

Utilizando-a em restrições contraditórias;

Criando ramificações (a partir de um nó), como em uma árvore;

13

Page 14: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

A forma de divisão em problemas menores parte do princípio da separação de uma das variáveis em um problema relaxado;

Utilizando-a em restrições contraditórias;

Criando ramificações (a partir de um nó), como em uma árvore;

14

Page 15: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Uma das formas de relaxação consiste em ignorar as restrições de integralidade do problema;

A partir deste, pode-se usar para resolvê-lo o método Simplex;

15

Page 16: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Se o problema relaxado não tem solução viável, então o problema de PLI também não tem;

O valor mínimo do problema de PLI não é menor que o valor mínimo do problema relaxado;

Se uma solução ótima do problema relaxado é viável no problema de PLI, então ela é uma solução ótima do problema de PLI;

16

Page 17: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

17

Page 18: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

• A escolha do (nó) para ramificação pode-se ser efetuada nas seguintes técnicas:

• Jumptracking: implementa uma busca em largura;

• Um nó com o mínimo limite inferior é selecionado;

• Backtracking: implementa a busca em profundidade;

• Nós descendentes de um nó pai são examinados;

18

Page 19: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

19

Page 20: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

O problema candidato relaxado (PL) não tem solução viável;◦ Então este nó está sondado;

Os resultados dos nós filhos vão ser no melhor caso igual ao resultado do nó pai;

20

Page 21: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

21

Page 22: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

• Solução Manual (enumeração implícita) para problemas com variáveis binárias;• 1ª Etapa: Função Objetivo (Maximização)• Coeficientes (+) → x = 1;• Coeficientes (-) → x = 0;• Verificar se solução é factível;

• 2ª Etapa: Restrições (≤)• Tentar factibilizar cada restrição;• Coeficientes (+) → x = 0;• Coeficientes (-) → x = 1;

22

Page 23: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Problema relaxado pelo método Simplex;

◦ x1=0,83; ◦ x2=1; ◦ x3=0; ◦ x4=1; ◦ Z=16,5

23

Page 24: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

24

Page 25: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

25

Page 26: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

26

Page 27: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

27

Page 28: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

28

Page 29: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

29

Page 30: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Para x1=1, x2=1 e x3=1 o modelo se apresenta sem soluções possíveis;

Repetir esses passos para cada nó aberto

30

Page 31: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

31

Page 32: MÉTODO BRANCH-AND-BOUND 1. Os problemas de Programação Linear Inteira podem ser entendidos como casos específicos da Programação Linear; Todas, ou parte,

Max Z = 3X1 + X2 + 2X3 - X4 + X5

Sujeito a:2X1 + X2 - 3X4 ≤ 1

X1 + 2X2 - 3X3 - X4 + 2X5 ≥ 2

32