relações de recorrência - sheila almeida · relações de recorrência - exemplo 4 depois que...

102

Upload: others

Post on 04-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência

Profa. Sheila Morais de Almeida

DAINF-UTFPR-PG

junho - 2018

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 1 / 102

Page 2: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Este material é preparado usando como referências os textos dos seguinteslivros.

Thomas H. CORMEN, Charles E. LEISERSON, Ronald L. RIVEST, Cli�ordSTEIN. Introduction to Algorithms, 2nd ed., 2001.

Kenneth ROSEN. Discrete Mathematics and Its Applications.McGraw-Hill Education, 6th edition (July 26, 2006).

Udi Manber. Introduction to Algorithms: a creative approach., 1st ed.,1989.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 2 / 102

Page 3: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 1

Considere o seguinte problema:

Número de bactérias na colônia

• O número de bactérias em uma colônia dobra a cada hora.

• A colônia se iniciou com 5 bactérias.

• Quantas bactérias existirão em n horas?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 3 / 102

Page 4: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 1

Seja an o número de bactérias após n horas.

• O número de bactérias em uma colônia dobra a cada hora.Então para qualquer an, sabemos que an = 2an−1.

• A colônia se iniciou com 5 bactérias.Então sabemos que a0 = 5

• Quantas bactérias existirão em n horas?É possível construirmos uma fórmula para determinar o valor de an?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 4 / 102

Page 5: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 1

an =

{5, se n = 0,2an−1, se n > 0.

É uma relação de recorrência.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 5 / 102

Page 6: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - De�nição

Relação de Recorrência

Uma relação de recorrência para uma sequência an é uma equação queexpressa an a partir

• dos primeiros termos da sequência (um ou mais primeiros termos); e

• de uma regra para determinar os próximos termos a partir daquelesque os precedem.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 6 / 102

Page 7: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - De�nição

Dizemos que uma sequência satisfaz a relação de recorrência quandoseus termos obedecem a regra da relação de recorrência.

Dizemos que uma equação é uma solução para a relação de

recorrência se, para todo n, a equação calcula o mesmo termo an que aregra da relação de recorrência.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 7 / 102

Page 8: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 2

an =

3, se n = 0,5, se n = 1,an−1 − an−2, se n > 1.

Quais os valores de a2 e a3?a2 = a2−1 − a2−2 = a1 − a0 = 5− 3 = 2.

a3 = a3−1 − a3−2 = a2 − a1 = 2− 5 = −3.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 8 / 102

Page 9: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 2

an =

3, se n = 0,5, se n = 1,an−1 − an−2, se n > 1.

Quais os valores de a2 e a3?a2 = a2−1 − a2−2 = a1 − a0 = 5− 3 = 2.

a3 = a3−1 − a3−2 = a2 − a1 = 2− 5 = −3.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 9 / 102

Page 10: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 3

Pergunta: an = 3n, para todo inteiro não-negativo n, é solução para arelação de recorrência an = 2an−1 − an−2, n ≥ 2?

Suponha que an = 3n é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Então, para n ≥ 2, an = 2an−1 − an−2 = 2[3(n − 1)]− 3(n − 2) =2[3n − 3]− (3n − 6) = 6n − 6− 3n + 6 = 3n.

Portanto, sim! an = 3n é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 10 / 102

Page 11: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 3

Pergunta: an = 3n, para todo inteiro não-negativo n, é solução para arelação de recorrência an = 2an−1 − an−2, n ≥ 2?

Suponha que an = 3n é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Então, para n ≥ 2, an = 2an−1 − an−2 = 2[3(n − 1)]− 3(n − 2) =2[3n − 3]− (3n − 6) = 6n − 6− 3n + 6 = 3n.

Portanto, sim! an = 3n é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 11 / 102

Page 12: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 3

Pergunta: an = 2n, para todo inteiro não-negativo n, é solução para arelação de recorrência an = 2an−1 − an−2, n ≥ 2?

Suponha que an = 2n é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Então, para n ≥ 2, an = 2an−1 − an−2 = 2[2n−1]− 2n−2 = 2n − 2n−2 =(22)(2n−2)− 2n−2 = 3(2n−2).

Então quando n = 2 temos: 2n = 22 = 3(2n−2) = 3(20), ou seja, 4 = 3,que é falso!

Portanto, não! an = 2n não é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 12 / 102

Page 13: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 3

Pergunta: an = 2n, para todo inteiro não-negativo n, é solução para arelação de recorrência an = 2an−1 − an−2, n ≥ 2?

Suponha que an = 2n é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Então, para n ≥ 2, an = 2an−1 − an−2 = 2[2n−1]− 2n−2 = 2n − 2n−2 =(22)(2n−2)− 2n−2 = 3(2n−2).

Então quando n = 2 temos: 2n = 22 = 3(2n−2) = 3(20), ou seja, 4 = 3,que é falso!

Portanto, não! an = 2n não é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 13 / 102

Page 14: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 3

Pergunta: an = 5, para todo inteiro não-negativo n, é solução para arelação de recorrência an = 2an−1 − an−2, n ≥ 2?

Suponha que an = 5 é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Então, para n ≥ 2, an = 2an−1 − an−2 = 2(5)− 5 = 5.

Portanto, sim! an = 5 é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 14 / 102

Page 15: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 3

Pergunta: an = 5, para todo inteiro não-negativo n, é solução para arelação de recorrência an = 2an−1 − an−2, n ≥ 2?

Suponha que an = 5 é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Então, para n ≥ 2, an = 2an−1 − an−2 = 2(5)− 5 = 5.

Portanto, sim! an = 5 é solução para a relação de recorrênciaan = 2an−1 − an−2, para n ≥ 2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 15 / 102

Page 16: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Propriedade

Observação

A determinação dos termos iniciais é que de�ne unicamente a sequência deuma relação de recorrência.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 16 / 102

Page 17: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 4

Problema de Fibonacci

• Um jovem casal de coelhos é colocado em uma ilha.

• Um casal de coelhos não procria até que eles tenham dois meses deidade.

• Depois que eles completam dois meses de idade, cada casal de coelhosproduz outro casal todo mês.

• Suponha que nenhum coelho morra, encontre a relação de recorrênciapara o número de casais de coelhos na ilha após n meses.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 17 / 102

Page 18: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 4

• Um jovem casal de coelhos é colocado em uma ilha.a0 = 1

• Um casal de coelhos não procria até que eles tenham dois meses deidade.a1 = 1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 18 / 102

Page 19: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 4

• Depois que eles completam dois meses de idade, cada casal de coelhosproduz outro casal todo mês.

• todos que existiam no mês passado contam. São an−1.

• todos os casais que existem a pelo menos dois meses se reproduzem e

criam mais um casal cada.

Quantos casais existem há pelo menos dois meses? an−2

Então são criados an−2 novos casais.

• Somando todos: an = an−1 + an−2

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 19 / 102

Page 20: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 4

• Depois que eles completam dois meses de idade, cada casal de coelhosproduz outro casal todo mês.

• todos que existiam no mês passado contam. São an−1.

• todos os casais que existem a pelo menos dois meses se reproduzem e

criam mais um casal cada.

Quantos casais existem há pelo menos dois meses? an−2

Então são criados an−2 novos casais.

• Somando todos: an = an−1 + an−2

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 20 / 102

Page 21: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 4

Relação de recorrência para o Problema de Fibonacci:

an =

1, se n = 0,1, se n = 1,an−1 + an−2, se n > 1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 21 / 102

Page 22: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Um jogo com:

• três pinos;

• um conjunto de discos;

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 22 / 102

Page 23: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Começo do jogo: os discos estão dispostos no pino mais a esquerda, emordem decrescente de tamanho (o maior embaixo).

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 23 / 102

Page 24: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Cada movimento permite ter somente um disco fora dos pinos.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 24 / 102

Page 25: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Cada disco pode ser retirado de um pino e colocado em outro.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 25 / 102

Page 26: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Não é permitido um disco ser colocado sobre outro menor que ele.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 26 / 102

Page 27: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

O objetivo é transferir a torre toda do pino da esquerda para o pino dadireita.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 27 / 102

Page 28: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Problema das Torres de Hanoi

Encontre uma relação de recorrência para determinar o número demovimentos necessários para transferir uma torre com n discos.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 28 / 102

Page 29: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Com 1 disco: 1 movimento.

Com dois discos: 3 movimentos.

Com n discos:

• número de movimentos necessários para mover os n − 1 primeirosdiscos para o pino do meio

• mais um movimento para mover o maior disco para o pino da direita

• mais número de movimentos para mover os n − 1 discos do pino domeio para o pino da direita.

• Somando tudo: 2an−1 + 1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 29 / 102

Page 30: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Relação de recorrência para o Problema das Torres de Hanoi:

an =

{1, se n = 1,2an−1 + 1, se n > 1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 30 / 102

Page 31: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 5

Resolva a relação de recorrência do Problema das Torres de Hanoi:

an =

{1, se n = 1,2an−1 + 1, se n > 1.

Método iterativo:

an = 2an−1 + 1 = 2(2an−2 + 1) + 1 = 22an−2 + 2+ 1 =

22(2an−3 + 1) + 2+ 1 = 23an−3 + 22 + 2+ 1 = . . .

2n−1a1 + 2n−2 + 2n−3 + . . .+ 2+ 1 =

2n−1 + 2n−2 + 2n−3 + . . .+ 2+ 1 =

2n − 1

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 31 / 102

Page 32: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Problema das sequências de bits de tamanho n sem zeros consecutivos

Qual a relação de recorrência que determina o número de sequências debits de tamanho n que não possuem dois zeros consecutivos?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 32 / 102

Page 33: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

para n = 1, há duas sequências:

• 0

• 1

Observe que nenhuma possui zeros consecutivos.

Então a1 = 2

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 33 / 102

Page 34: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

para n = 2, há quatro sequências:

• 00

• 01

• 10

• 11

Observe que uma delas possui dois zeros consecutivos.

Então a2 = 3

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 34 / 102

Page 35: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Para n bits, há dois casos:

• Caso 1: a sequência tem n bits e termina com um bit 1.

• Caso 2: a sequência tem n bits e termina com um bit 0.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 35 / 102

Page 36: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Para n bits, há dois casos:

• Caso 1: a sequência tem n bits e termina com um bit 1.Se a sequência termina com um bit 1, então o penúltimo bit pode ser0 ou 1, tanto faz.

Então todas as sequências com n − 1 bits que não possuem zerosconsecutivos quando concatenadas com um bit 1 estão nesse caso.

Então o número de sequências nesse caso é an−1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 36 / 102

Page 37: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Para n bits, há dois casos:

• Caso 2: a sequência tem n bits e termina com um bit 0.Se a sequência termina com um bit zero, então o penúltimo bit nãopode ser zero, tem que ser 1.

Então os dois últimos bits da sequência são 10.

Então basta considerar todas as sequências com n − 2 bits que nãopossuem dois zeros consecutivos e concatenar cada uma delas com asequência 10.

Observe que mesmo se a sequência com n − 2 bits terminar em zeronão haverá problemas: XXXXXXX0 → XXXXXXX010.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 37 / 102

Page 38: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Para n bits, há dois casos:

• Caso 2: a sequência tem n bits e termina com um bit 0.Se a sequência termina com um bit zero, então o penúltimo bit nãopode ser zero, tem que ser 1.

Então os dois últimos bits da sequência são 10.

Então basta considerar todas as sequências com n − 2 bits que nãopossuem dois zeros consecutivos e concatenar cada uma delas com asequência 10.

Então o número de sequências nesse caso é o número de sequênciascom n − 2 bits que não têm dois zeros consecutivos, ou seja, an−2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 38 / 102

Page 39: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Para n bits, há dois casos:

• Caso 1: a sequência tem n bits e termina com um bit 1. → an−1

• Caso 2: a sequência tem n bits e termina com um bit 0. → an−2

Total de sequências: an−1 + an−2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 39 / 102

Page 40: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Relação de recorrência para o problema do número de sequências com nbits sem zeros consecutivos:

an =

2, se n = 1,3, se n = 2,an−1 + an−2, se n > 2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 40 / 102

Page 41: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Relação de recorrência para o problema do número de sequências com nbits sem zeros consecutivos:

an =

2, se n = 1,3, se n = 2,an−1 + an−2, se n > 2.

Qual o valor de a5?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 41 / 102

Page 42: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Relação de recorrência para o problema do número de sequências com nbits sem zeros consecutivos:

an =

2, se n = 1,3, se n = 2,an−1 + an−2, se n > 2.

a5 = a4 + a3a4 = a3 + a2a3 = a2 + a1a2 = 3a1 = 2

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 42 / 102

Page 43: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Relação de recorrência para o problema do número de sequências com nbits sem zeros consecutivos:

an =

2, se n = 1,3, se n = 2,an−1 + an−2, se n > 2.

a5 = a4 + a3a4 = a3 + a2a3 = a2 + a1 = 3+ 2 = 5a2 = 3a1 = 2

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 43 / 102

Page 44: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Relação de recorrência para o problema do número de sequências com nbits sem zeros consecutivos:

an =

2, se n = 1,3, se n = 2,an−1 + an−2, se n > 2.

a5 = a4 + a3a4 = a3 + a2 = 5+ 3 = 8a3 = a2 + a1 = 3+ 2 = 5a2 = 3a1 = 2

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 44 / 102

Page 45: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 6

Relação de recorrência para o problema do número de sequências com nbits sem zeros consecutivos:

an =

2, se n = 1,3, se n = 2,an−1 + an−2, se n > 2.

a5 = a4 + a3 = 8+ 5 = 13a4 = a3 + a2 = 5+ 3 = 8a3 = a2 + a1 = 3+ 2 = 5a2 = 3a1 = 2

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 45 / 102

Page 46: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Problema da Enumeração de Códigos

• Suponha um sistema computacional que considera um código decimalválido se, e só se, o código possui um número par de zeros.

• Exemplo: 4789034908 é válido 82084020 não é válido.

• Quantos códigos decimais com n dígitos são válidos nesse sistemacomputacional?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 46 / 102

Page 47: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Para n = 1:

há 9 códigos válidos

há um código inválido: 0

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 47 / 102

Page 48: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Para n = 2:

Qualquer código válido com 1 dígito concatenado com qualquer dígito quenão seja zero: 92 possibilidades.

Qualquer código inválido com um dígito mais o dígito zero: 00 1possibilidade.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 48 / 102

Page 49: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Para uma sequência com n dígitos:

Qualquer código válido com n − 1 dígitos concatenado com qualquer dígitoque não seja zero: 9an−1 possibilidades.

Qualquer código inválido com n − 1 dígitos mais o dígito zero.

Pergunta: Quantos códigos inválidos com n − 1 dígitos existem?

Todos menos os válidos! Quantos códigos com n − 1 dígitos existem?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 49 / 102

Page 50: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Para uma sequência com n dígitos:

Qualquer código válido com n − 1 dígitos concatenado com qualquer dígitoque não seja zero: 9an−1 possibilidades.

Qualquer código inválido com n − 1 dígitos mais o dígito zero.

Pergunta: Quantos códigos inválidos com n − 1 dígitos existem?10n−1 − an−1

Todos menos os válidos! Quantos códigos com n − 1 dígitos existem?10n−1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 50 / 102

Page 51: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Para uma sequência com n dígitos:

Qualquer código válido com n − 1 dígitos concatenado com qualquer dígitoque não seja zero: 9an−1 possibilidades.

Qualquer código inválido com n − 1 dígitos mais o dígito zero.

Pergunta: Quantos códigos inválidos com n − 1 dígitos existem?10n−1 − an−1

Todos menos os válidos! Quantos códigos com n − 1 dígitos existem?10n−1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 51 / 102

Page 52: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Para uma sequência com n dígitos:

Qualquer código válido com n − 1 dígitos concatenado com qualquer dígitoque não seja zero: 9an−1 possibilidades.

Qualquer código inválido com n − 1 dígitos mais o dígito zero.

Pergunta: Quantos códigos inválidos com n − 1 dígitos existem?10n−1 − an−1

Todos menos os válidos! Quantos códigos com n − 1 dígitos existem?10n−1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 52 / 102

Page 53: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Para uma sequência com n dígitos:

Qualquer código válido com n − 1 dígitos concatenado com qualquer dígitoque não seja zero: 9an−1 possibilidades.

Qualquer código inválido com n − 1 dígitos mais o dígito zero.10n−1 − an−1 possibilidades.

Total de códigos válidos com n dígitos:

9an−1 + 10n−1 − an−1 = 10n−1 + 8an−1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 53 / 102

Page 54: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência - Exemplo 7

Número de códigos decimais com quantidade par de dígitos iguais a zero:

an =

{9, se n = 1,8an−1 + 10n−1, se n > 1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 54 / 102

Page 55: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Determinação a partir dos primeiros termos da sequência

Considere a relação de recorrência:

T (n) =

{5, se n = 0,2T (n − 1), se n > 0.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 55 / 102

Page 56: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Determinação a partir dos primeiros termos da sequência

O método da determinação a partir dos primeiros termos da sequênciaconsiste em identi�car um padrão para a relação de recorrência ao seconhecer os valores inciais da sequencia.

Vejamos o que acontece com os primeiros termos na relação de recorrênciaapresentada:

n T (n) T (n)reorganizado

0 5 51 2 · (5) 2 · 52 2 · (2 · (5)) 22 · 53 2 · (2 · (2 · (5))) 23 · 54 2 · (2 · (2 · (2 · (5)))) 24 · 5...

......

k 2 · (2 · (2 · 2(. . . 2 · (5)))) ?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 56 / 102

Page 57: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Determinação a partir dos primeiros termos da sequência

Observe que neste caso o valor de n coincide com o expoente em T (n):

n T (n) T (n)reorganizado

0 5 51 2 · (5) 21 · 52 2 · (2 · (5)) 22 · 53 2 · (2 · (2 · (5))) 23 · 54 2 · (2 · (2 · (2 · (5)))) 24 · 5...

......

k 2 · (2 · (2 · 2(. . . 2 · (5)))) ?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 57 / 102

Page 58: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Determinação a partir dos primeiros termos da sequência

Observando, podemos criar uma hipótese sobre a fórmula fechada paraT (k), onde k é um inteiro positivo qualquer:

n T (n) T (n)reorganizado

0 5 51 2 · (5) 21 · 52 2 · (2 · (5)) 22 · 53 2 · (2 · (2 · (5))) 23 · 54 2 · (2 · (2 · (2 · (5)))) 24 · 5...

......

k 2 · (2 · (2 · 2(. . . 2 · (5)))) 2k · 5

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 58 / 102

Page 59: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Determinação a partir dos primeiros termos da sequência

Para garantir que nossa hipótese é correta, podemos prová-la por indução.

Hipótese de indução: a solução da recorrência

T (n) =

{5, se n = 0,2T (n − 1), se n > 0.

é T (n) = 2n · 5.

Base: está no slide anterior.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 59 / 102

Page 60: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Determinação a partir dos primeiros termos da sequência

Passo da indução: Devemos provar que T (n + 1) = 2n+1 · 5.

Primeiro, observe que pela de�nição da relação de recorrência,T (n + 1) = 2T (n).

Pela hipótese de indução, T (n) = 2n · 5.

Substituindo a fórmula da hipótese na de�nição de T (n + 1), temos:

T (n + 1) = 2T (n) = 2 · (2n · 5) = 2n+1 · 5

Visto que a fórmula da nossa hipótese também responde corretamente parao caso n + 1, pode-se concluir que trata-se de uma fórmula fechada para arelação de recorrência dada.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 60 / 102

Page 61: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Expansão da Relação de Recorrência

Considere a mesma relação de recorrência:

T (n) =

{5, se n = 0,2T (n − 1), se n > 0.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 61 / 102

Page 62: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Expansão da Relação de Recorrência

O método da expansão consiste em substituir os termos da relação derecorrência pela fórmula dos mesmos em função de termos anteriores e, por�m, criar uma hipótese para a fórmula fechada.

Vejamos o que acontece na expansão da relação de recorrência apresentada:

n T (n) T (n)reorganizado

T (n) = 2T (n − 1) 21T (n − 1)= 2(2T (n − 2)) 22T (n − 2)= 2(2(2T (n − 3))) 23T (n − 3)= 2(2(2(2T (n − 4)))) 24T (n − 4)...

......

= 2(2(2(2 . . . 2T (0)))) 2?T (0)

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 62 / 102

Page 63: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Expansão da Relação de Recorrência

n T (n) T (n)reorganizado

T (n) = 2T (n − 1) 21T (n − 1)= 2(2T (n − 2)) 22T (n − 2)= 2(2(2T (n − 2))) 23T (n − 3)= 2(2(2(2T (n − 2)))) 24T (n − 4)...

......

= 2(2(2(2 . . . 2T (1)))) 2kT (n − k)

Resta saber qual o valor de k para que a fórmula seja escrita em função deT (0).

Isso vai acontecer quando n − k = 0. Então k = n.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 63 / 102

Page 64: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Expansão da Relação de Recorrência

n T (n) T (n)reorganizado

T (n) = 2T (n − 1) 21T (n − 1)= 2(2T (n − 2)) 22T (n − 2)= 2(2(2T (n − 2))) 23T (n − 3)= 2(2(2(2T (n − 2)))) 24T (n − 4)...

......

= 2(2(2(2 . . . 2T (0)))) 2kT (n − k)

Quando k = n: T (n) = 2nT (n − (n)) = 2nT (0) = 2n · 5.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 64 / 102

Page 65: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Expansão da Relação de Recorrência

n T (n) T (n)reorganizado

T (n) = 2T (n − 1) 21T (n − 1)= 2(2T (n − 2)) 22T (n − 2)= 2(2(2T (n − 2))) 23T (n − 3)= 2(2(2(2T (n − 2)))) 24T (n − 4)...

......

= 2(2(2(2 . . . 2T (0)))) 2kT (n − n)

Hipótese: T (n) = 2n · 5.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 65 / 102

Page 66: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Expansão da Relação de Recorrência

Para garantir que nossa hipótese é correta, podemos prová-la por indução.

Lembre-se que já �zemos essa prova hoje!

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 66 / 102

Page 67: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência na Análise de Algoritmos

Considere o a relação de recorrência da série de Fibonacci:

an =

1, se n = 0,1, se n = 1,an−1 + an−2, se n > 1.

Se nós computarmos F (k) utilizando essa de�nição, serão necessários k − 2passos.

É mais conveniente ter uma expressão na forma fechada para F (n).

Uma "expressão na forma fechada"é a "solução para a relação derecorrência."

Uma solução da relação de recorrência é uma fórmula capaz de computarF (k) em 1 (um) passo.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 67 / 102

Page 68: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

"Tentar adivinhar uma solução pode parecer um método não-cientí�co, mas,

deixando o nosso orgulho de lado, funciona muito bem para uma ampla classe

de relações de recorrência. Funciona ainda melhor quando não estamos

tentando achar a solução exata, mas um limite superior."

U. Mamber

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 68 / 102

Page 69: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Considere a seguinte relação de recorrência, de�nida somente parapotências de 2:

{T (2) = 1,T (2n) ≤ 2T (n) + 2n − 1, se n > 2.

Observe que essa recorrência apresenta uma desigualdade.

Nós queremos apenas achar um limite superior para a relação derecorrência.

Queremos achar uma resposta na forma T (n) ∈ O(f (n)).

Também queremos que não haja uma diferença muito grande entre T (n) ef (n). (Queremos um limite superior justo.)

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 69 / 102

Page 70: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Palpite para f (n): f (n) = n2.

Vamos provar que T (n) ∈ O(n2) por indução.

Base: T (2) = 1 ≤ f (2) = 22 = 4

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 70 / 102

Page 71: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Por hipótese de induação, suponha que T (n) ≤ n2.

Na hipótese, n é uma potência de 2.

No temos que considerar a próxima potência de 2, ou seja, 2n.

Temos que provar que se a hipótese é verdadeira, então T (2n) ≤ (2n)2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 71 / 102

Page 72: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Passo: T (2n) ≤ 2T (n) + 2n − 1 (pela de�nição da relação de recorrência)

Por hipótese de indução, T (n) ≤ n2, então:

T (2n) ≤ 2T (n) + 2n − 1 ≤ 2n2 − 2n − 1.

Como n > 0, temos:

T (2n) ≤ 2T (n) + 2n − 1 ≤ 2n2 − 2n − 1 ≤ 2n2 < 2n2 = (2n)2.

Portanto, T (n) ∈ O(n2).

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 72 / 102

Page 73: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

{T (2) = 1,T (2n) ≤ 2T (n) + 2n − 1, se n > 2.

Pergunta: f (n) = n2 é uma boa estimativa para T (n)?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 73 / 102

Page 74: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

No �nal da demonstração:

T (2n) ≤ 2T (n) + 2n − 1 ≤ 2n2 − 2n − 1 ≤ 2n2 < 2n2 = (2n)2

nós substituimos 2n2 − 2n − 1 por 4n2.

4n2 é bem maior!

Talvez o nosso palpite (n2) tenha sido muito alto.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 74 / 102

Page 75: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Vamos tentar um palpite mais justo: f (n) = cn, para alguma constante cpositiva.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 75 / 102

Page 76: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Vamos tentar um palpite mais justo: f (n) = cn, para alguma constante cpositiva. {

T (2) = 1,T (2n) ≤ 2T (n) + 2n − 1, se n > 2.

No passo vamos ter que provar que T (2n) ≤ c(2n).

Mas T (2n) = 2T (n) + (2n − 1), e pela hipótese:

T (2n) = 2T (n) + (2n − 1) ≤ 2(cn) + (2n − 1) = c(2n) + (2n − 1)

Queremos provar que T (2n) ≤ c(2n).

Veja que não há como, pois (2n − 1) > 0 para todo n ≥ 1.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 76 / 102

Page 77: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Podemos concluir que T (n) é algo entre cn e n2.

{T (2) = 1,T (2n) ≤ 2T (n) + 2n − 1, se n > 2.

Vamos tentar T (n) ≤ n log2 n.

Base: T (2) = 1 ≤ 2 log2 2 = 2

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 77 / 102

Page 78: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Suponha, por hipótese de indução, que T (n) ≤ n log2 n.

Passo: Por de�nição da relação de recorrência, T (2n) = 2T (n) + 2n − 1.

Pela hipótese de indução:

T (2n) = 2T (n) + 2n − 1 ≤ 2(n log2 n) + 2n − 1

Como log2 2 = 1, podemos fazer:T (2n) = 2T (n) + 2n − 1 ≤ 2(n log2 n) + 2n − 1 = 2(n log2 n) + 2n − 1 =2(n log2 n) + 2n log2 2− 1 < 2(n log2 n) + 2n log2 2 =

2(n log2 n) + 2n log2 2 = 2n(log2n + log2 2) = 2n log2(2n).

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 78 / 102

Page 79: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

A relação de recorrência:{T (2) = 1,T (2n) ≤ 2T (n) + 2n − 1, se n > 2.

é de�nida somente para potências de 2.

Como de�nir uma relação de recorrência similar para qualquer valor de n?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 79 / 102

Page 80: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

De�nição de uma relação de recorrência similar para qualquer valor de n:

{T (2) = 1,T (n) ≤ 2T (bn

2c) + 2n − 1, se n > 2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 80 / 102

Page 81: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Observe que quando n é uma potência de 2 o resultado permanece omesmo.

{T (2) = 1,T (n) ≤ 2T (bn

2c) + 2n − 1, se n > 2.

Então, já sabemos que valores de n que são potências de 2,T (n) ∈ O(n log n).

Será que esse resultado se aplica para qualquer valor de n?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 81 / 102

Page 82: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

T (n) é uma função monótona crescente.

Então, quando n não é uma potência de 2, a função T (n) é no máximoT (2k), para algum k .

Mais ainda: T (2k−1) ≤ T (n) ≤ T (2k)

Já provamos que T (2k) ≤ c2k log2(2k), para alguma constante c positiva.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 82 / 102

Page 83: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de recorrência: Palpite Inteligente

Então, T (n) ≤ c2k log2(2k) ≤ c(2n) log2(2n) ≤ (2c)n log2 n

2, para n ≥ 2.

Então,T (n) ≤ c2k log2(2

k) ≤ c(2n) log2(2n) ≤ (2c)2n log2 n = (4c)n log2 n, comconstante c1 = 4c .

Portanto, T (n) ∈ O(n log n), para todo natural positivo n.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 83 / 102

Page 84: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas com

Coe�cientes Constantes

Uma relação de recorrência linear com coe�cientes constantes é da forma:

an = c1an−1 + c2an−2 + c3an−3 + . . .+ ckan−k + ck+1

Lembre-se:

• o valor de k é o grau dessa relação de recorrência.

• se ck+1 = 0, ou seja, se todos as parcelas estão em função de termosanteriores, então a relação de recorrência é dita homogênea.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 84 / 102

Page 85: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas com

Coe�cientes Constantes

Vamos procurar uma solução para a relação de recorrência

an = c1an−1 + c2an−2 + c3an−3 + . . .+ ckan−k

na forma an = rn.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 85 / 102

Page 86: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas com

Coe�cientes Constantes

Observação:

an = rn é solução para a a relação de recorrência

an = c1an−1 + c2an−2 + c3an−3 + . . .+ ckan−k

se, e somente se,

rn = c1rn−1 + c2r

n−2 + c3rn−3 + . . .+ ck r

n−k

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 86 / 102

Page 87: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas com

Coe�cientes Constantes

Dividindo ambos os lados da equação

rn = c1rn−1 + c2r

n−2 + c3rn−3 + . . .+ ck r

n−k

por rn−k , temos:

rk = c1rk−1 + c2r

k−2 + c3rk−3 + . . .+ ck

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 87 / 102

Page 88: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas com

Coe�cientes Constantes

Equação Característica

A equação

rk − c1rk−1 − c2r

k−2 − c3rk−3 − . . .− ck = 0

é chamada de equação característica.

Suas raízes são chamadas de raízes características.

Observe que o grau dessa equação é o mesmo grau da relação derecorrência:

an = c1an−1 + c2an−2 + c3an−3 + . . .+ ckan−k

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 88 / 102

Page 89: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

Teorema 1

Considere a equação característica r2 − c1r − c2 = 0, onde:

• c1 e c2 são números reais, e

• r2 − c1r − c2 = 0 possui duas raízes características distintas, r1 e r2.

A solução para a relação de recorrência an = c1an−1 + c2an−2 é:

an = α1rn1+ α2r

n2, com n ≥ 0 inteiro e α1 e α2 constantes.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 89 / 102

Page 90: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

Então o que devemos fazer para resolver uma relação de recorrência linearhomogênea de segundo grau com coe�cientes constantes?

A relação de recorrência tem o n-ésimo termo dado por:an = c1an−1 + c2an−2.

Então sua equação característica é: r2 − c1r − c2 = 0.

Resolva a equação característica.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 90 / 102

Page 91: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

Se encontrar duas raízes distintas r1 e r2, então a solução da relação derecorrência é:

an = α1rn1 + α2r

n2

.

Falta determinar os valores de α1 e α2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 91 / 102

Page 92: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

É uma relação de recorrência de segundo grau. Portanto, é escrita emfunção dos termos anteriores an−1 e an−2.

Então, a de�nição da relação de recorrência deve conter os valores dos doisprimeiros termos, a0 e a1, de forma que se possa calcular o próximo.

a0 = α1r01+ α2r

02= α1 + α2

a1 = α1r11+ α2r

12= α1r1 + α2r2

Para encontrar α1 e α2, resolva o sistema de equações lineares:{α1 + α2 = a0α1r1 + α2r2 = a1

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 92 / 102

Page 93: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

Exemplo: Resolva a relação de recorrência:

an =

2, se n = 0,7, se n = 1,an−1 + 2an−2, se n > 1.

Primeiro, devemos encontrar a equação característica:

coe�ciente de an−1: 1

coe�ciente de an−2: 2

equação característica: r2 − 1r − 2 = 0.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 93 / 102

Page 94: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

equação característica: r2 − 1r − 2 = 0.

Resolvendo a equação, encontramos as raízes características: r1 = 2 er2 = −1.

Então a solução é an = α1rn1+ α2r

n2= α12n + α2(−1)n.

Falta saber quanto valem α1 e α2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 94 / 102

Page 95: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

Para encontrar os valores de α1 e α2, resolvemos o sistema com valores der1, r2, a0 e a1: {

α1 + α2 = a0α1r1 + α2r2 = a1

Como a0 = 2, a1 = 7, r1 = 2 e r2 = −1, temos:{α1 + α2 = 22α1 − α2 = 7

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 95 / 102

Page 96: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

{α1 + α2 = 22α1 − α2 = 7

Então α2 = 2− α1.

Substituindo α2 na segunda equação: 2α1 − (2− α1) = 7.

Então 3α1 = 7+ 2. Logo α1 = 3.

Logo, α2 = 2− α1 = 2− 3 = −1

A solução da relação de recorrência é an = α1rn1+ α2r

n2

an = 3 · 2n − 1 · (−1)n.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 96 / 102

Page 97: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

E se a equação característica tiver apenas uma raiz?

Teorema 2

Considere a equação característica r2 − c1r − c2 = 0, onde:

• c1 e c2 são números reais,

• e r2 − c1r − c2 = 0 possui exatamente uma raiz característica, r0.

A solução para a relação de recorrência an = c1an−1 + c2an−2 é

an = α1rn0+ α2nr

n0, com n ≥ 0 inteiro e α1 e α2 constantes

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 97 / 102

Page 98: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

Exemplo: Resolva a relação de recorrência a seguir.

an =

1, se n = 0,6, se n = 1,6an−1 − 9an−2, se n > 1.

Primeiro, devemos encontrar a equação característica:

coe�ciente de an−1: 6

coe�ciente de an−2: -9

equação característica: r2 − 6r + 9 = 0.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 98 / 102

Page 99: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

equação característica: r2 − 6r + 9 = 0.

Resolvendo a equação, encontramos uma única raiz: r0 = 3.

Então a solução é an = α1rn0+ α2nr

n0= α13n + α2n3n.

Falta saber quanto valem α1 e α2.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 99 / 102

Page 100: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

Para encontrar os valores de α1 e α2, resolvemos o sistema com o valor der0, a0 e a1: {

α1 = a0α1r0 + α2r0 = a1

Como a0 = 1, a1 = 6 e r0 = 3, temos:{α1 = 13α1 + 3α2 = 6

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 100 / 102

Page 101: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Relações de Recorrência Lineares Homogêneas de Grau 2

com Coe�cientes Constantes

{α1 = 13α1 + 3α2 = 6

Então α2 =6−3α1

3.

Substituindo α1 na equação: α2 = 1.

Então, α1 = 1 e α2 = 1.

A solução da relação de recorrência é an = α1rn0+ α2nr

n0

an = 3n + n3n = (n + 1)3n.

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 101 / 102

Page 102: Relações de Recorrência - Sheila Almeida · Relações de Recorrência - Exemplo 4 Depois que eles completam dois meses de idade, cada casal de coelhos produz outro casal todo

Teorema Mestre

Exercício: O que é o Teorema Mestre?

Sheila Almeida (DAINF-UTFPR-PG) Relações de Recorrência junho - 2018 102 / 102