algoritmo branch-and-bound
DESCRIPTION
Algoritmo Branch-and-Bound. Professora Adria Lyra. O algoritmo “branch-and-bound” (B&B). É uma estratégia de divisão e conquista para problemas de natureza inteira mista - PowerPoint PPT PresentationTRANSCRIPT
Algoritmo Branch-and-Bound
Professora Adria Lyra
O algoritmo “branch-and-bound” (B&B)
• É uma estratégia de divisão e conquista para problemas de natureza inteira mista
• A idéia é dividir um problema P em um conjunto de subproblemas menores {SPk} de forma que a solução de P possa ser obtida através da solução dos subproblemas.
Algoritmo Branch-and-Bound
• As divisões são feitas iterativamente, sempre observando que os subproblemas devem ser mais fáceis de serem resolvidos que o problema original.
• Além disso, procuramos descartar subproblemas desde que estes não contenham a solução ótima.
Estratégia de divisão e conquista
• Considere o problema:
P : z = max {cT x : x S}∈
• Como “quebrar” P em subproblemas menores e depois os “recombinar”de maneira a se obter uma solução para o problema original?
Estratégia de divisão e conquista
• Proposição:– Seja S = S1 . . . S∪ ∪ K uma decomposição de S
em K conjuntos menores.– Seja também zk = max{cT x : x S∈ k}
para k = 1, . . . ,K.– Então, z = max{zk : k = 1, . . . ,K}.
• Uma estratégia de divisão e conquista, obedecendo as premissas da proposição acima, pode ser ilustrada com uma árvore de enumeração.
Estratégia de divisão e conquista
• Para S {0, 1}⊆ 3, podemos construir a árvore de enumeração abaixo.
S
S0S1
x1 = 0 x1= 1
Estratégia de divisão e conquista
• Claramente S = S0 S∪ 1, onde – S0 = {x S : x∈ 1 = 0} e – S1 = {x S : x∈ 1 = 1}.
• Podemos subdividir cada um dos subproblemas em subproblemas ainda menores, fazendo:– S0 = S00 S∪ 01 e– S1 = S10 S∪ 11,– onde Si1i2 = {x S∈ i1 : x2 = i2}.
Estratégia de divisão e conquista
S
S0 S1
x1 = 0 x1= 1
S00 S01S10 S11
x2 = 0 x2 = 1 x2 = 0 x2 = 1
Árvore de Enumeração
Estratégia de divisão e conquistaS
S0
S1
x1 = 0 x1= 1
S00S01
S10 S11
x2 = 0 x2 = 1 x2 = 0x2 = 1
S000 S001 S010 S011
S100 S101 S110 S111
x3 = 0 x3 = 1
Estratégia de divisão e conquista
• Uma folha da árvore de enumeração completa Si1i2i3 é não-vazia se, e somente se, x = (i1, i2, i3) S.∈
• Portanto, as folhas da árvore correspondem precisamente as soluções candidatas que seriam examinadas se fosse conduzida uma enumeração completa.
Enumeração Implícita
• Enumeração completa é inviável para problemas práticos
• Uma alternativa é utilizar os limites de {zk} de forma inteligente, tanto os limites superiores quanto os inferiores.
Enumeração Implícita
• Algoritmo Branch-and-Bound• Proposição
– Seja S = S1 ∪ . . . ∪ Sn uma decomposição de S em n subconjuntos.
– Seja zk = Max{cTx : x ∈ Sk} para k = 1, . . . ,n.
– Seja um limite superior para zk.– Seja um limite inferior para zk .
• Então:– = Max{ : k = 1, . . . ,n} define um limite superior para z– = Max{ : k = 1, . . . ,n} define um limite inferior para z
kz kz
zz
kz
kz
O problema da Mochila 0, 1
item Peso w
Valor v
Valor/peso
1 4 $40 10
2 7 $42 6
3 5 $25 5
4 3 $12 4
A capacidade da Mochila é W = 10
ub = v + (W – w)(vi+1 / wi+1)
Branch-and-BoundW=0, v=0
Ub = 100
W=4, v=40
Ub = 76
W=0, v=0
Ub = 60
Com 1 Sem 1
Expansão da árvore em largura para todos os nós
Branch-and-BoundW=0, v=0
Ub = 119
W=4, v=40
Ub = 76
W=0, v=0
Ub = 60
Com 1 Sem 1
Com 2 Sem 2
W=11, W=4, v=40
Ub = 70
Branch-and-BoundW=0, v=0
ub = 119
W=4, v=40
ub = 76
W=0, v=0
ub = 60
Com 1 Sem 1
Com 2Sem 2
W=11, W=4, v=40
ub = 70
Com 3 Sem 3
W=9, v=65
ub = 69
W=4, v=40
ub = 64
Branch-and-BoundW=0, v=0
ub = 119
W=4, v=10
ub = 76
W=0, v=0
ub = 60
Com 1 Sem 1
Com 2Sem 2
W=11, W=4, v=10
ub = 70
Com 3 Sem 3
W=9, v=65
ub = 69
W=4, v=10
ub = 64
W=12, W=9, v=65
ub = 65
Com 4 Sem 4