Sunteți pe pagina 1din 43

Algoritimos e Estruturas de Dados III

CIC210
Branch and Bound
Ramicar e Limitar

Haroldo Gambini Santos


Universidade Federal de Ouro Preto - UFOP

4 de dezembro de 2009

Haroldo Gambini Santos

Branch and Bound

1/19

Branch and Bound - Ramicar e Limitar

Idia Bsica
O algoritmo roda sob a rvore de enumerao das solues
possveis. No pior caso, todas as solues sero exploradas.
Na prtica, frequentemente vrios ramos so podados com o
uso de limites.

Haroldo Gambini Santos

Branch and Bound

2/19

rvore de Enumerao

Branch
Branch consiste em dividir um problema em problemas menores.
Seja um problema P , divide-se em m subproblemas
P1 , P2 , . . . , Pm tal que
P1 P2 , . . . , Pm = P

Haroldo Gambini Santos

Branch and Bound

3/19

rvore de Enumerao

Branch

Uma maneira de se criar subproblemas atravs da xao de


variveis discretas.
Considere uma varivel v , de um problema P , cujos valores
possveis sejam 1, . . . , V .
Pode-se dividir P em P1 , . . . , PV , onde em Pi temos a varivel v
xada para o seu i-simo valor possvel.

Haroldo Gambini Santos

Branch and Bound

4/19

rvore de Enumerao

Branch

A xao recursiva de diferentes variveis cria uma rvore, onde


temos:
ns internos esses ns representam todas as solues que podem
ser obtidas respeitando as xaes j feitas;
folhas representam solues completas.

Haroldo Gambini Santos

Branch and Bound

5/19

rvore de Enumerao
Ex.: Problema com 3 variveis binrias: x1 , x2 , x3 .
Problema original P

Haroldo Gambini Santos

Branch and Bound

6/19

rvore de Enumerao
Ex.: Problema com 3 variveis binrias: x1 , x2 , x3 .
Branch na varivel x1 , criam-se subproblemas P1 e P2

P1

P2
x1=1

x1=0
P

Haroldo Gambini Santos

Branch and Bound

6/19

rvore de Enumerao
Ex.: Problema com 3 variveis binrias: x1 , x2 , x3 .
Branch na varivel x2 , criam-se subproblemas P11 ,P12 ,P21 e P22

P11

P12

P21

P22

x2=1
x2=0

x2=1
x2=0

P1

P2
x1=1

x1=0
P

Haroldo Gambini Santos

Branch and Bound

6/19

rvore de Enumerao
Ex.: Problema com 3 variveis binrias: x1 , x2 , x3 .
Branch na varivel x3 leva as solues completas

x3=1 3=0
x

x
x3=1 3=0

x3=1 3=0
x

x
x3=1 3=0

P11

P12

P21

P22

x2=1
x2=0

x2=1
x2=0

P1

P2
x1=1

x1=0
P

Haroldo Gambini Santos

Branch and Bound

6/19

rvore de Enumerao

Bound - Limites
usando somente o branch temos um algoritmo exato que em
um nmero nito de passos fornece a soluo tima

Haroldo Gambini Santos

Branch and Bound

7/19

rvore de Enumerao

Bound - Limites
usando somente o branch temos um algoritmo exato que em
um nmero nito de passos fornece a soluo tima
mas extremamente ineciente !

Haroldo Gambini Santos

Branch and Bound

7/19

rvore de Enumerao

Bound - Limites
usando somente o branch temos um algoritmo exato que em
um nmero nito de passos fornece a soluo tima
mas extremamente ineciente !
para

Haroldo Gambini Santos

variveis binrias temos

2n

ns a serem explorados.

Branch and Bound

7/19

rvore de Enumerao

Bound - Limites
usando somente o branch temos um algoritmo exato que em
um nmero nito de passos fornece a soluo tima
mas extremamente ineciente !
para

variveis binrias temos

2n

ns a serem explorados.

a chave para melhorar a ecincia do B & B a poda de


algumas sub-rvores atravs do uso de limites.

Haroldo Gambini Santos

Branch and Bound

7/19

Bound - Limites
Limites
Considere um problema onde queremos
achar o lucro mximo da soluo tima:

LimiteSuperior

Soluotima

LimiteInferior

z = max f (x)

Mesmo que z seja difcil de calcular,


eventualmente podemos ter limites para z
que podem ser calculados com mais
facilidade.

Haroldo Gambini Santos

Branch and Bound

8/19

Exemplo - Problema da Mochila 0/1


Entrada

n
C

li
pi

items

capacidade da mochila

lucro do item

peso do item

i
i

Deciso

xi =

1
0

item

incluso na soluo

caso contrrio

Objetivo

max

li x i
i=1,...,n

Restrio

pi xi C
i=1,...,n

Haroldo Gambini Santos

Branch and Bound

9/19

Exemplo - Problema da Mochila 0/1 (PM01)


Heurstica
Uma heurstica gulosa: tentar colocar os items com grande lucro
e pouco peso.
Ordena-se os items por densidade:
di =

li
pi

Heurstica:
capacidadeRestante

C
pi < capacidadeRestante
i com maior di tal que pi < capacidadeRestante
=

enquanto houver algum


adicione o item

Haroldo Gambini Santos

Branch and Bound

10/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

peso

li
pi

1,75

1,33

1,80

Haroldo Gambini Santos

lucro

1,50

Branch and Bound

11/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

lucro

peso

li
pi

1,75

1,33

1,80

1,50

Soluo da heurstica gulosa


Soluo heurstica: itens:

Haroldo Gambini Santos

{3},

lucro: 9

Branch and Bound

11/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

lucro

peso

li
pi

1,75

1,33

1,80

1,50

Soluo da heurstica gulosa


Soluo heurstica: itens:
A soluo

tima

{3},

com certeza

lucro: 9

maior ou igual a 9, ou seja,

temos um limite inferior para o custo da soluo tima

Haroldo Gambini Santos

Branch and Bound

11/19

Limite Superior
O Mximo de Lucro
Para o problema da mochila 0/1, como calcular rapidamente um
limite superior para o lucro que pode ser obtido ?
O Problema Fracionrio da Mochila (PFM)

trocamos

xi {0, 1}

por

xi [0, 1],

ou seja, agora podemos

colocar pedaos de itens;

Haroldo Gambini Santos

Branch and Bound

12/19

Limite Superior
O Mximo de Lucro
Para o problema da mochila 0/1, como calcular rapidamente um
limite superior para o lucro que pode ser obtido ?
O Problema Fracionrio da Mochila (PFM)

trocamos

xi {0, 1}

por

xi [0, 1],

ou seja, agora podemos

colocar pedaos de itens;

Haroldo Gambini Santos

Branch and Bound

12/19

Limite Superior
O Mximo de Lucro
Para o problema da mochila 0/1, como calcular rapidamente um
limite superior para o lucro que pode ser obtido ?
O Problema Fracionrio da Mochila (PFM)

trocamos

xi {0, 1}

por

xi [0, 1],

ou seja, agora podemos

colocar pedaos de itens;


a soluo tima para o PFM fcil de calcular: simplesmente
pegam-se os itens com maior densidade primeiro; ao se deparar
com o primeiro item que no cabe coloca-se a maior frao
possvel dele;

Haroldo Gambini Santos

Branch and Bound

12/19

Limite Superior
O Mximo de Lucro
Para o problema da mochila 0/1, como calcular rapidamente um
limite superior para o lucro que pode ser obtido ?
O Problema Fracionrio da Mochila (PFM)

trocamos

xi {0, 1}

por

xi [0, 1],

ou seja, agora podemos

colocar pedaos de itens;


a soluo tima para o PFM fcil de calcular: simplesmente
pegam-se os itens com maior densidade primeiro; ao se deparar
com o primeiro item que no cabe coloca-se a maior frao
possvel dele;
o PFM uma relaxao do PM01 visto que tem menos restries.

Haroldo Gambini Santos

Branch and Bound

12/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

lucro

peso

li
pi

1,75

1,33

1,80

1,50

Soluo tima do PFM (Relaxao do PM01)

Haroldo Gambini Santos

Branch and Bound

13/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

lucro

peso

li
pi

1,75

1,33

1,80

1,50

Soluo tima do PFM (Relaxao do PM01)


seleciona item 3

Haroldo Gambini Santos

Branch and Bound

13/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

lucro

peso

li
pi

1,75

1,33

1,80

1,50

Soluo tima do PFM (Relaxao do PM01)


seleciona item 3
1
seleciona 4 do item 1

Haroldo Gambini Santos

Branch and Bound

13/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

lucro

peso

li
pi

1,75

1,33

1,80

1,50

Soluo tima do PFM (Relaxao do PM01)


seleciona item 3
1
seleciona 4 do item 1
soluo com lucro 10,75
Haroldo Gambini Santos

Branch and Bound

13/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

lucro

peso

li
pi

1,75

1,33

1,80

1,50

Limites Encontrados
Limite Superior (Relaxao PFM) lucro 10,75
? timo ?

Limite Inferior (Heurstica Gulosa) lucro 9


Haroldo Gambini Santos

Branch and Bound

14/19

Problema da Mochila 0/1 (PM01)


Ex.: Problema com n = 4 e C = 6
item

lucro

peso

li
pi

1,75

1,33

1,80

1,50

Limites Encontrados
Limite Superior (Relaxao PFM) lucro 10,75
Soluo tima (itens 1 e 4)

lucro 10

Limite Inferior (Heurstica Gulosa) lucro 9


Haroldo Gambini Santos

Branch and Bound

14/19

Limites

Solues Parciais
Tanto a heurstica quanto a relaxao PFM podem ser
executadas em ns internos da rvore, considerando algumas
xaes de variveis. Atualiza-se a capacidade restante e items
disponveis).
Esse procedimento oferece um limite Limite Inferior e Superior
para esses ns.

Haroldo Gambini Santos

Branch and Bound

15/19

Limites

Solues Parciais
Tanto a heurstica quanto a relaxao PFM podem ser
executadas em ns internos da rvore, considerando algumas
xaes de variveis. Atualiza-se a capacidade restante e items
disponveis).
Esse procedimento oferece um limite Limite Inferior e Superior
para esses ns.

Haroldo Gambini Santos

Branch and Bound

15/19

Limites

Soluo Incumbente
a melhor soluo encontrada at o momento durante a busca.
Essa soluo pode aparecer durante a execuo de uma
heurstica ou durante o percurso na rvore (ao se chegar em ns
folha).
No caso de Maximizao, temos um Limite Inferior.

Haroldo Gambini Santos

Branch and Bound

16/19

Limites

Soluo Incumbente
a melhor soluo encontrada at o momento durante a busca.
Essa soluo pode aparecer durante a execuo de uma
heurstica ou durante o percurso na rvore (ao se chegar em ns
folha).
No caso de Maximizao, temos um Limite Inferior.

Haroldo Gambini Santos

Branch and Bound

16/19

Limite Superior

Relaxao
A soluo de um problema relaxado oferece uma soluo cujo
lucro melhor ou igual ao da soluo tima do problema
original.
Em Maximizao, temos um Limite Superior.

Haroldo Gambini Santos

Branch and Bound

17/19

Poda

Razes para Podar um N


Limite a relaxao (Limite Superior) indica que no h
possibilidade de se melhorar a soluo incumbente;
Infactibilidade as xaes j feitas induzem a alguma
infactibilidade (estouro da capacidade da mochila,
por ex.).
Em ambos os casos o n e todos os seus lhos so podados.

Haroldo Gambini Santos

Branch and Bound

18/19

Branch and Bound - Exemplo: Problema da Mochila

Incumbente: 11

LS:12,5
LI:11
C=7
i

li

pi

li/pi

xi

li

pi

li/pi

xi

1,75

1,80

1,33

1,00

Haroldo Gambini Santos

Branch and Bound

19/19

Branch and Bound - Exemplo: Problema da Mochila

LS:12,40

Incumbente: 11

LI:11

x1=1
LS:12,5
LI:11
C=7
i

li

pi

li/pi

xi

li

pi

li/pi

xi

1,75

1,80

1,33

1,00

Haroldo Gambini Santos

Branch and Bound

19/19

Branch and Bound - Exemplo: Problema da Mochila

LS:11

Incumbente: 11
Podado: continuar

x2=1

nesse n no

LS:12,40

oferecer nenhuma

LI:11

soluo com custo

x1=1

melhor do que 11.

LS:12,5
LI:11
C=7
i

li

pi

li/pi

xi

li

pi

li/pi

xi

1,75

1,80

1,33

1,00

Haroldo Gambini Santos

Branch and Bound

19/19

Branch and Bound - Exemplo: Problema da Mochila

LS:11

LS:12,4
LI:9

x2=1
x2=0
LS:12,40

Incumbente: 11

LI:11

x1=1
LS:12,5
LI:11
C=7
i

li

pi

li/pi

xi

li

pi

li/pi

xi

1,75

1,80

1,33

1,00

Haroldo Gambini Santos

Branch and Bound

19/19

Branch and Bound - Exemplo: Problema da Mochila


Peso=9
Infactvel

x3=1
LS:11

LS:12,4
LI:9

x2=1
x2=0

Incumbente: 11

LS:12,40

Podado:

LI:11

Infactibilidade.

x1=1
LS:12,5
LI:11
C=7
i

li

pi

li/pi

xi

li

pi

li/pi

xi

1,75

1,80

1,33

1,00

Haroldo Gambini Santos

Branch and Bound

19/19

Branch and Bound - Exemplo: Problema da Mochila


LS:9

Peso=9
Infactvel

x3=1
x3=0
LS:11

LS:12,4
LI:9

x2=1
x2=0

Incumbente: 11

LS:12,40

Podado por Limite.

LI:11

x1=1
LS:12,5
LI:11
C=7
i

li

pi

li/pi

xi

li

pi

li/pi

xi

1,75

1,80

1,33

1,00

Haroldo Gambini Santos

Branch and Bound

19/19

Branch and Bound - Exemplo: Problema da Mochila


LS:9

Peso=9
Infactvel

x3=1
x3=0
LS:11

LS:12,4

Incumbente: 11

LI:9

Podado por Limite:

x2=1
x2=0

como os lucros so

LS:12,40

inteiros, o melhor

LS:11,67

LI:11

lucro possvel

LI:11

considerando a

x1=1 x1=0

relaxao 11,67 11.

LS:12,5
LI:11
C=7
i

li

pi

li/pi

xi

li

pi

li/pi

xi

1,75

1,80

1,33

1,00

Haroldo Gambini Santos

Branch and Bound

19/19

Branch and Bound - Exemplo: Problema da Mochila


LS:9

Peso=9
Infactvel

x3=1
x3=0
LS:11

LS:12,4
LI:9

x2=1
x2=0

Incumbente: 11

LS:12,40

Soluo

LS:11,67

LI:11

Provadamente

LI:11

tima

x1=1 x1=0
LS:12,5
LI:11
C=7
i

li

pi

li/pi

xi

li

pi

li/pi

xi

1,75

1,80

1,33

1,00

Haroldo Gambini Santos

Branch and Bound

19/19