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

6. Divisão e conquista 6.1. Introdução Método de Divisão e Conquista • Dividir o problema original em um determinado número de subproblemas independentes • Conquistar os subproblemas, resolvendo-os recursivamente até obter o caso base. • Combinar as soluções dadas aos subproblemas, a fim de formar a solução do problema original. Recorrências • O tempo de execução dos algoritmos recursivos pode ser descrito por uma recorrência. • Uma recorrência é uma equação ou desigualdade que descreve uma função em termos de seu valor em entradas menores. Divisão e conquista Algoritmo 6.1 (DC) Entrada Uma instância I de tamanho n. 1 i f n = 1 then 2 return Solução d i r e t a 3 else 4 Divide I em sub i n s t â n c i a s I1, . . . , Ik , k > 0 5 com tamanhos ni < n . 6 Resolve recursivamente : I1, . . . , Ik . 7 Resolve I usando sub s o l u ç õ e s DC(I1), . . . , DC(Ik) . 8 end i f 123

6. Divisão e conquista<br />

6.1. Introdução<br />

Método <strong>de</strong> Divisão e Conquista<br />

• Dividir o problema original em um <strong>de</strong>terminado número <strong>de</strong> subproblemas<br />

in<strong>de</strong>pen<strong>de</strong>ntes<br />

• Conquistar os subproblemas, resolvendo-os recursivamente até obter o<br />

caso base.<br />

• Combinar as soluções dadas aos subproblemas, a fim <strong>de</strong> formar a solução<br />

do problema original.<br />

Recorrências<br />

• O tempo <strong>de</strong> execução dos algoritmos recursivos po<strong>de</strong> ser <strong>de</strong>scrito por<br />

uma recorrência.<br />

• Uma recorrência é uma equação ou <strong>de</strong>sigualda<strong>de</strong> que <strong>de</strong>screve uma<br />

função em termos <strong>de</strong> seu valor em entradas menores.<br />

Divisão e conquista<br />

Algoritmo 6.1 (DC)<br />

Entrada Uma instância I <strong>de</strong> tamanho n.<br />

1 i f n = 1 then<br />

2 return Solução d i r e t a<br />

3 else<br />

4 Divi<strong>de</strong> I em sub i n s t â n c i a s I1, . . . , Ik , k > 0<br />

5 com tamanhos ni < n .<br />

6 Resolve recursivamente : I1, . . . , Ik .<br />

7 Resolve I usando sub s o l u ç õ e s DC(I1), . . . , DC(Ik) .<br />

8 end i f<br />

123

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

Saved successfully!

Ooh no, something went wrong!