Algoritmos e complexidade Notas de aula - Arquivo Escolar

Algoritmos e complexidade Notas de aula - Arquivo Escolar Algoritmos e complexidade Notas de aula - Arquivo Escolar

arquivoescolar.org
from arquivoescolar.org More from this publisher
13.04.2013 Views

7. Árvores de busca, backtracking e branch-and-bound Limitar • Para cada sub-árvore mantemos um limite inferior e um limite superior. – Limite inferior: Valor da melhor solução encontrada na sub-árvore. – Limite superior: Estimativa (p.ex. valor da relaxação linear na PI) • Observação: A eficiência do método depende crucialmente da qualidade do limite superior. Cortar sub-árvores Podemos cortar... 1. por inviabilidade: Sub-problema é inviável. 2. por limite: Limite superior da sub-árvore zi menor que limite inferior global z (o valor da melhor solução encontrada). 3. por otimalidade: Limite superior zi igual limite inferior zi da sub-árvore. 4. Observação: Como os cortes dependem do limite z, uma boa solução inicial pode reduzir a busca consideravelmente. Ramificar 164 • Não tem como cortar mais? Escolhe um nó e particiona. • Qual a melhor ordem de busca? • Busca por profundidade – V: Limite superior encontrado mais rápido. – V: Pouca memória (O(δd), para δ subproblemas e profundidade d). – V: Re-otimização eficiente do pai (método Simplex dual) – D: Custo alto, se solução ótima encontrada tarde. • Melhor solução primeiro (“best-bound rule”) – V: Procura ramos com maior potencial. – V: Depois encontrar solução ótima, não produz ramificações supérfluas. • Busca por largura? Demanda de memória é impraticável.

Algoritmos B&B Algoritmo 7.3 (B&B) Instância Programa inteiro P = max{c t x | Ax ≤ b, x ∈ Z n +}. Saida Solução inteira ótima. 7.2. Branch-and-bound 1 { usando função z para estimar limite superior } 2 z:=−∞ { limite i n f e r i o r } 3 A:= {(P, g(P ))} { nós ativos } 4 while A = ∅ do 5 Escolhe : (P, g(P ) ∈ A ; A := A \ (P, g(P )) 6 Ramifique : Gera subproblemas P1, . . . , Pn . 7 for a l l Pi , 1 ≤ i ≤ n do 8 { adiciona , se permite melhor solução } 9 i f z(Pi) > z then 10 A := A ∪ {(Pi, z(Pi))} 11 end i f 12 { atualize melhor solução } 13 i f ( s o l u ç ã o z(Pi) é v i á v e l ) then 14 z := z(Pi) 15 end i f 16 end for 17 end while Exemplo 7.2 (Aplicação Branch&Bound no PCV) Considera uma aplicação do PCV no grafo 2 1 2 2 3 1 1 1 3 1 3 4 2 Aplicando somente backtracking obtemos a seguinta árvore de busca: 1 5 165

7. Árvores <strong>de</strong> busca, backtracking e branch-and-bound<br />

Limitar<br />

• Para cada sub-árvore mantemos um limite inferior e um limite superior.<br />

– Limite inferior: Valor da melhor solução encontrada na sub-árvore.<br />

– Limite superior: Estimativa (p.ex. valor da relaxação linear na PI)<br />

• Observação: A eficiência do método <strong>de</strong>pen<strong>de</strong> crucialmente da qualida<strong>de</strong><br />

do limite superior.<br />

Cortar sub-árvores<br />

Po<strong>de</strong>mos cortar...<br />

1. por inviabilida<strong>de</strong>: Sub-problema é inviável.<br />

2. por limite: Limite superior da sub-árvore zi menor que limite inferior<br />

global z (o valor da melhor solução encontrada).<br />

3. por otimalida<strong>de</strong>: Limite superior zi igual limite inferior zi da sub-árvore.<br />

4. Observação: Como os cortes <strong>de</strong>pen<strong>de</strong>m do limite z, uma boa solução<br />

inicial po<strong>de</strong> reduzir a busca consi<strong>de</strong>ravelmente.<br />

Ramificar<br />

164<br />

• Não tem como cortar mais? Escolhe um nó e particiona.<br />

• Qual a melhor or<strong>de</strong>m <strong>de</strong> busca?<br />

• Busca por profundida<strong>de</strong><br />

– V: Limite superior encontrado mais rápido.<br />

– V: Pouca memória (O(δd), para δ subproblemas e profundida<strong>de</strong> d).<br />

– V: Re-otimização eficiente do pai (método Simplex dual)<br />

– D: Custo alto, se solução ótima encontrada tar<strong>de</strong>.<br />

• Melhor solução primeiro (“best-bound rule”)<br />

– V: Procura ramos com maior potencial.<br />

– V: Depois encontrar solução ótima, não produz ramificações supérfluas.<br />

• Busca por largura? Demanda <strong>de</strong> memória é impraticável.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!