• Nenhum resultado encontrado

Solução de Recorrências

N/A
N/A
Protected

Academic year: 2022

Share "Solução de Recorrências"

Copied!
36
0
0

Texto

(1)

Solução de Recorrências

Algoritmos e Estruturas de Dados I

Natália Batista

https://sites.google.com/site/nataliacefetmg/

nataliabatista@decom.cefetmg.br

1º semestre/ 2019

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS

(2)

2

Introdução

Equação de Recorrência: é uma equação (ou inequação) que descreve uma função em

termos dela mesma em entradas de tamanho

menor.

(3)

3

Introdução

Alguns métodos para resolver recorrências:

1) Expansão

2) Mudança de variáveis

3) Substituição (indução)

4) Árvores de recursão

5) Teorema mestre

(4)

4

1. Método da Expansão

(1/5)

Seja a seguinte função para calcular o fatorial de n:

int Fat(int n){

if (n<=1) return 1;

else

return n*Fat(n-1);

}

(5)

5

1. Método da Expansão

(1/5)

Seja a seguinte equação de recorrência para esta função:

Esta equação diz que quando n = 1 o custo para executar Fat é igual a d.

Para valores de n maiores que 1, o custo para executar

Fat é c mais o custo para executar T(n - 1).

(6)

6

1. Método da Expansão

(1/5)

Esta equação de recorrência pode ser

expressa da seguinte forma:

(7)

7

1. Método da Expansão

(1/5)

Método da expansão: Em cada passo, o valor do termo T é substituído pela sua definição.

A última equação mostra que depois da

expansão existem n - 1 c’s.

(8)

8

1. Método da Expansão

(1/5)

Desta forma, a recorrência pode ser

expressa como:

(9)

9

2. Mudança de variáveis

Exemplo 1:

Vamos supor que:

(10)

10

2. Mudança de variáveis

Resolvendo por expansão temos:

T(20) = T(1) = 0

(11)

11

3. Método da Substituição

Em algumas situações é difícil obter a solução de uma equação de recorrência.

Nesses casos é mais fácil:

Tentar adivinhar a solução ou

Chegar a um limite superior para a ordem de

complexidade da solução, em vez da solução

exata.

(12)

12

3. Método da Substituição

Dois passos:

1.

Adivinhe a forma da solução.

2.

Use indução matemática para encontrar as

constantes e mostrar que a solução funciona.

(13)

13

3. Método da Substituição

Indução:

Fonte: Souza et al.

(14)

14

3. Método da Substituição

Exemplo:

T(2n) ≤ 2T(n) + 2n -1, T(2) = 1,

definida para valores de n que são potências de 2.

O objetivo é encontrar um limite superior na

notação O, onde o lado direito da desigualdade representa o pior caso.

Fonte: Ziviani.

(15)

15

3. Método da Substituição

T(2n) ≤ 2T(n) + 2n -1, T(2) = 1

n

2

?

nlogn?

cn?

(16)

16

3. Método da Substituição

Fonte: Ziviani.

(17)

17

3. Método da Substituição

Fonte: Ziviani.

Hipótese: T(n) ≤ O(n2)

(18)

18

3. Método da Substituição

Fonte: Ziviani.

Vamos tentar um palpite menor, f(n) = cn, para alguma constante c.

Hipótese: T(n) ≤ O(cn).

Passo base: T(2) = 1 ≤ f(2) = c2 para c ≥ ½.

(19)

19

3. Método da Substituição

Fonte: Ziviani.

(20)

20

3. Método da Substituição

Fonte: Ziviani.

(21)

21

3. Método da Substituição

Fonte: Ziviani.

= 2nlog2 + 2nlogn = 2nlogn + 2n

(22)

22

4. Método da árvore de recursão

Muito usada para resolver a equação de

recorrência de métodos que seguem a

abordagem divisão e conquista.

(23)

23

4. Método da árvore de recursão

Divisão e conquista:

Divida o problema em um número de subproblemas.

Conquiste os subproblemas resolvendo-os recursivamente.

Combine as soluções dos subproblemas na

solução do problema original.

(24)

24

4. Método da árvore de recursão

Exemplo: Mergesort

Dividir: divida a sequência de n elementos a

serem ordenados em duas subsequencias de n/2 elementos cada.

Conquistar: Ordene as duas subsequencias recursivamente usando Mergesort.

Combinar: Intercale (merge) as duas

subsequências para produzir a resposta

ordenada.

(25)

25

4. Método da árvore de recursão

Quando a recursividade pára?

(26)

26

4. Método da árvore de recursão

Fonte: CLRS.

(27)

27

4. Método da árvore de recursão

Análise do Mergesort:

Dividir: D(n) = (1)

Conquistar: contribui 2 T(n/2).

Combinar: C(n) = (n).

T(n) = c se n = 1 2T(n/2) + cn se n  1.

Fonte: CLRS.

(28)

28

4. Método da árvore de recursão

Construção da árvore de recursão:

Fonte: CLRS.

(29)

29

4. Método da árvore de recursão

Fonte: CLRS.

(30)

30

4. Método da árvore de recursão

Em uma árvore de recursão:

cada nó representa o custo de um subproblema no conjunto das invocações de funções

recursivas.

os custos de cada nível da árvore são somados.

os custos por nível são somados para determinar

o custo total de todos os níveis da recursão.

(31)

31

5. Teorema mestre

Fonte: Loureiro.

(32)

32

5. Teorema mestre

Fonte: Loureiro.

(33)

33

5. Teorema mestre

Fonte: Loureiro.

(34)

34

5. Teorema mestre: exemplo

Fonte: Loureiro.

(35)

35

6. Somatórios

Alguns somatórios úteis:

i

Soma dos termos de uma P.G.

finitai

(36)

36

Referências

Thomas Cormen et al. Introduction to Algorithms.

Editora Prentice Hall, 2006.

Antonio Alfredo Ferreira Loureiro. Projeto e Análise de Algoritmos: Análise de Complexidade. Notas de aula, 2010.

C. C. de Souza, C. N. da Silva, O. Lee, P. J. de

Rezende. Complexidade de Algoritmos. Notas de aula, 2010.

Nivio Ziviani. Projeto de algoritmos: com

implementações em Java e C++. 3 ed. Editora

Cengage Learning, 2007.

Referências

Documentos relacionados

Curvas de rarefação (Coleman) estimadas para amostragens de espécies de morcegos em três ambientes separadamente (A) e agrupados (B), no Parque Estadual da Ilha do Cardoso,

CENTROS ECORREGIONAIS: Embrapa Amazônia Ocidental; Embrapa Cerrados; Embrapa Clima Temperado; Embrapa Acre; Embrapa Amapá; Embrapa Rondônia; Embrapa Roraima; Embrapa Meio-Norte;

Medição de Radiação Térmica com Modulador Sigma-Delta Termoresistivo Tese de Doutorado em Engenharia Elétrica - Valter Rosa - UFBA-SET2016.. Figura 4.9 Foto da bancada de testes

Corporate Control and Policies Page 12 UNIVERSIDAD DE PIURA UNIVERSIDAD DEL PACÍFICO UNIVERSIDAD ESAN UNIVERSIDAD NACIONAL AGRARIA LA MOLINA UNIVERSIDAD NACIONAL

Em 1999, publiquei um pequeno texto que, entre outras coisas, abordava as ambiguidades apresentadas pela sentença O ladrão tirou a chave da porta da frente, apresentada na forma

autoincriminação”, designadamente através da indicação de exemplos paradigmáticos. Sem prejuízo da relevância da matéria – traduzida, desde logo, no número e

Examinamos as demonstrações financeiras individuais da Klabin S/A (“Companhia”), que compreendem o balanço patrimonial em 31 de dezembro de 2016 e as respectivas demonstrações

Densidade de ruído na saída do integrador como função da frequência para uma cadeia de aquisição de dados baseada num conversor A/D com um integrador digital (exemplo).. O nível