Você está na página 1de 44

Branch-and-Bound*

Profa. Miriam Rocha

*Slides baseados no curso de Programação Inteira da Profa. Dra. Laura Bahiense da UFRJ-
COPPE.
Enumeração explícita

• Por exemplo, suponha que queiramos resolver o


problema da mochila 0-1.

• Temos 2n possíveis combinações para os itens.

• Força bruta (enumeração explícita)


– Enumerar todas as possíveis combinações;
– Checar quais são as viáveis (não violam a capacidade da
mochila);
– Escolher aquela que máxima o lucro (satisfação do
viajante.
• Sistematização: árvore de busca
Profa. Miriam Rocha
Pesquisa Operacional
Árvore de busca: ilustração

Profa. Miriam Rocha


Pesquisa Operacional
Árvore de busca: ilustração

Profa. Miriam Rocha


Pesquisa Operacional
Árvore de busca: ilustração

Profa. Miriam Rocha


Pesquisa Operacional
Árvore de busca: ilustração

Profa. Miriam Rocha


Pesquisa Operacional
Enumeração explícita:
explosão combinatória

• Enumerar todas as possíveis soluções obviamente


não é computacionalmente viável quando o
espaço de busca é grande, ou seja, quando há
muitas soluções.

• O que seria um espaço de busca grande?


– Uma mochila com quantos itens: 500, 200, 100, 50 ou
10?

Profa. Miriam Rocha


Pesquisa Operacional
Enumeração explícita:
explosão combinatória

• Suponha que sejamos capazes de investigar por


ciclo de CPU a uma taxa de 10GHz, ou seja, 10
bilhões por segundo. Então, enumerar todas as
mochilas com 50 itens levaria mais de 100 anos!

• É isso que chamamos de explosão


combinatória!!!

Profa. Miriam Rocha


Pesquisa Operacional
O “princípio do branch-and-bound”:
a enumeração implícita

• Já vimos que é impossível, em geral, para


problemas reais (grandes), enumerar todas as
possíveis combinações.

• Ideia: temos que tentar enumerar a maior parte


de todas as combinações de maneira implícita!

Profa. Miriam Rocha


Pesquisa Operacional
O “princípio do branch-and-bound”:
a enumeração implícita
• Para se fazer isso é necessária uma inferência
inteligente, já que:

– Em geral é fácil encontrar uma primeira solução.


– A questão central a responder para um problema de
otimização é: podemos encontrar uma solução melhor?
– Responder a esta questão é NP-completo!
– Consequentemente, temos que tentar estimar de
maneira inteligente!

Profa. Miriam Rocha


Pesquisa Operacional
Relaxações e limitantes (bounds) duais

• Podemos obter um limite superior para um


problema de otimização como o problema da
mochila 0-1 por meio da computação de uma
solução ótima para um conjunto maior de
soluções viáveis.

• Este procedimento é chamado de relaxação.

Profa. Miriam Rocha


Pesquisa Operacional
Algumas definições...

• Ramificação (branching) em um nó: acontece quando se


fixa alguma variável.

• Um nó é amadurecido (pruned) quando se sabe que ele


não sofrerá mais ramificação (branching).

• Objetivo do método de branch-and-bound: amadurecer os


nós da árvore de busca utilizando os limitantes (bounds)
duais.

Profa. Miriam Rocha


Pesquisa Operacional
Limitantes primais e duais e a poda da
árvore de busca

Profa. Miriam Rocha


Pesquisa Operacional
A poda por dominância

Profa. Miriam Rocha


Pesquisa Operacional
A poda por otimalidade

Profa. Miriam Rocha


Pesquisa Operacional
A poda por inviabilidade

Profa. Miriam Rocha


Pesquisa Operacional
Nós ativos

Profa. Miriam Rocha


Pesquisa Operacional
Exemplo: um problema de PI

Profa. Miriam Rocha


Pesquisa Operacional
Exemplo: um problema de PI

Profa. Miriam Rocha


Pesquisa Operacional
Exemplo: um problema de PI

Profa. Miriam Rocha


Pesquisa Operacional
Exemplo: um problema de PI

Profa. Miriam Rocha


Pesquisa Operacional
Exercício: Resolva o PI pelo método
branching-and-bound

Maximizar z: 3x1+4x2

sujeito a

2x1+x2 ≤ 6
2x1+3x2≤ 9

x1, x2 são inteiros

Solução: x1=0; x2=3 z=12

Profa. Miriam Rocha


Pesquisa Operacional
Passo 1: resolver a relaxação linear
Considerar xi ≥0 ∀ i=1,2

Profa. Miriam Rocha


Pesquisa Operacional
Passo 1: resolver a relaxação
Considerar xi ≥0 ∀ i=1,2

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

S2 S3

Profa. Miriam Rocha Limitante superior (relaxação):12,75


Pesquisa Operacional
Limitante inferior (solução viável):−∞
Passo 2: ramificação 1 (branching 1)

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

S2 S3

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):−∞
Passo 3: resolver o nó S2

Profa. Miriam Rocha


Pesquisa Operacional
Passo 3: resolver o nó S2

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):−∞
Passo 4: resolver o nó S3

Profa. Miriam Rocha


Pesquisa Operacional
Passo 4: resolver o nó S3

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 z=9
Poda por OTIMALIDADE ! ! !

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável): 9
Passo 5: ramificação 2 (branching 2)

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 z=9
Poda por OTIMALIDADE ! ! !
x 2 ≤1 x 2 ≥2

S4 S5

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável): 9
Passo 6: resolver o nó S4

Profa. Miriam Rocha


Pesquisa Operacional
Passo 6: resolver o nó S4

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 ; z=9
PODA POR OTIMALIDADE ! !!
x 2 ≤1 x 2 ≥2

Solução S 4 :
x 1 =1; x 2 =1; z=10 S4 S5
PODA POR OTIMALIDADE ! !!

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):10
Passo 7: resolver o nó S5

Profa. Miriam Rocha


Pesquisa Operacional
Passo 7: resolver o nó S5

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 ; z=9
Poda por OTIMALIDADE ! ! !
x 2 ≤1 x 2 ≥2

Solução S 4 : Solução S 5 :
x 1 =1; x 2 =1; z=10 S4 S5 x 1 =1,5 ; x 2 =2; z=12,5
Poda por OTIMALIDADE ! ! !

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):10
Passo 8: ramificação 3 (branching 3)

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 ; z=9
Poda por OTIMALIDADE ! ! !
x 2 ≤1 x 2 ≥2

Solução S 4 : Solução S 5 :
x 1 =1; x 2 =1; z=10 S4 S5 x 1 =1,5 ; x 2 =2; z=12,5
Poda por OTIMALIDADE ! ! !
x 1 ≤1 x 1 ≥2

S6 S7

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):10
Passo 9: resolver o nó S6

Profa. Miriam Rocha


Pesquisa Operacional
Passo 9: resolver o nó S6

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 ; z=9
Poda por OTIMALIDADE ! ! !
x 2 ≤1 x 2 ≥2

Solução S 4 : Solução S 5 :
x 1 =1; x 2 =1; z=10 S4 S5 x 1 =1,5 ; x 2 =2; z=12,5
Poda por OTIMALIDADE ! ! !
x 1 ≤1 x 1 ≥2

Solução S 6 :
x 1 =1; x 2 =2,33 ; z=12,33
S6 S7

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):10
Passo 10: resolver o nó S7

Profa. Miriam Rocha


Pesquisa Operacional
Passo 10: resolver o nó S7

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 ; z=9
Poda por OTIMALIDADE ! ! !
x 2 ≤1 x 2 ≥2

Solução S 4 : Solução S 5 :
x 1 =1; x 2 =1; z=10 S4 S5 x 1 =1,5 ; x 2 =2; z=12,5
Poda por OTIMALIDADE ! ! !
x 1 ≤1 x 1 ≥2

Solução S 7 :
Solução S 6 :
x 1 =1; x 2 =2,33 ; z=12,33
S6 S7 Problema inviável
Poda por INVIABILIDADE ! !!

Profa. Miriam Rocha


Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):10
Passo 11: ramificação 4 (branching 4)

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 ; z=9
Poda por OTIMALIDADE ! ! !
x 2 ≤1 x 2 ≥2

Solução S 4 : Solução S 5 :
x 1 =1; x 2 =1; z=10 S4 S5 x 1 =1,5 ; x 2 =2; z=12,5
Poda por OTIMALIDADE ! ! !
x 1 ≤1 x 1 ≥2

Solução S 7 :
Solução S 6 :
x 1 =1; x 2 =2,33 ; z=12,33
S6 S7 Problema inviável
Poda por INVIABILIDADE ! !!
x 2 ≤2 x 2 ≥3

S8 S9
Profa. Miriam Rocha
Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):10
Passo 12: resolver o nó S8

Profa. Miriam Rocha


Pesquisa Operacional
Passo 12: resolver o nó S8

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 ; z=9
Poda por OTIMALIDADE ! ! !
x 2 ≤1 x 2 ≥2

Solução S 4 : Solução S 5 :
x 1 =1; x 2 =1; z=10 S4 S5 x 1 =1,5 ; x 2 =2; z=12,5
Poda por OTIMALIDADE ! ! !
x 1 ≤1 x 1 ≥2

Solução S 7 :
Solução S 6 :
x 1 =1; x 2 =2,33 ; z=12,33
S6 S7 Problema inviável
Poda por INVIABILIDADE ! !!
x 2 ≤2 x 2 ≥3

Solução S 8 :
x 1 =1; x 2 =2 ; z=11 S8 S9
Poda por OTIMALIDADE ! ! ! Profa. Miriam Rocha
Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):11
Passo 13: resolver o nó S9

Profa. Miriam Rocha


Pesquisa Operacional
Passo 13: resolver o nó S9

Solução S 1 :
S1 x 1 =2,25 ; x 2 =1,5 ; z=12,75

x 1 ≤2 x 1 ≥3

Solução S 2 : Solução S 3 :
x 1 =2 ; x 2=1,67 ; z=12,67 S2 S3 x 1 =3 ; x 2 =0 ; z=9
Poda por OTIMALIDADE ! ! !
x 2 ≤1 x 2 ≥2

Solução S 4 : Solução S 5 :
x 1 =1; x 2 =1; z=10 S4 S5 x 1 =1,5 ; x 2 =2; z=12,5
Poda por OTIMALIDADE ! ! !
x 1 ≤1 x 1 ≥2

Solução S 7 :
Solução S 6 :
x 1 =1; x 2 =2,33 ; z=12,33
S6 S7 Problema inviável
Poda por INVIABILIDADE ! !!
x 2 ≤2 x 2 ≥3

Solução S 8 : Solução S 8 :
x 1 =1; x 2 =2 ; z=11 S8 S9 x 1 =0 ; x 2 =3 ; z=12
Poda por OTIMALIDADE ! ! ! Poda por OTIMALIDADE ! ! !
Profa. Miriam Rocha
SOLUÇÃO INTEIRA ÓTIMA ! ! ! Limitante superior (relaxação):12,75
Pesquisa Operacional
Limitante inferior (solução viável):12

Você também pode gostar