Buscar

Aula03-Recorrencias.pptx

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

11/11/13	
  
1	
  
Relações	
  de	
  recorrência	
  
Matemá+ca	
  Discreta	
  II	
  
(Rosen	
  –	
  Cap.	
  8)	
  
	
  
André	
  Câmara	
  
Métodos	
  de	
  contagem	
  avançados	
  
•  Adequados	
  quando	
  os	
  métodos	
  vistos	
  
anteriormente	
  não	
  se	
  adequam	
  
•  Relações	
  de	
  recorrência	
  
•  Presente	
  no	
  contexto	
  de	
  paradigmas	
  como	
  
Programação	
  Dinâmica	
  e	
  Dividir	
  para	
  
Conquistar	
  
•  Quebrar	
  um	
  problema	
  em	
  sub-­‐problemas	
  
Relações	
  de	
  Recorrência	
  
•  Def.	
  Uma	
  Relação	
  de	
  Recorrência	
  (R.R.,	
  ou	
  apenas	
  
recorrência)	
  para	
  uma	
  sequência	
  {an}	
  é	
  uma	
  equação	
  
que	
  expressa	
  an	
  em	
  termos	
  de	
  um	
  ou	
  mais	
  elementos	
  
prévios	
  a0,	
  …,	
  an−1	
  da	
  sequência,	
  para	
  todo	
  n≥n0.	
  	
  
	
  
•  Uma	
  sequência	
  par+cular	
  (descrita	
  não	
  
recursivamente)	
  é	
  uma	
  solução	
  da	
  Relação	
  de	
  
Recorrência	
  se	
  ela	
  é	
  consistente	
  com	
  a	
  definição	
  da	
  
recorrência.	
  
•  Obs.	
  	
  
• Uma	
  Relação	
  de	
  Recorrência	
  pode	
  ter	
  muitas	
  
soluções.	
  
Exemplo	
  Coelhos	
  e	
  números	
  de	
  Fibonacci	
  
•  Um	
  casal	
  de	
  coelhos	
  é	
  deixado	
  em	
  uma	
  ilha.	
  
Coelhos	
  só	
  reproduzem	
  após	
  dois	
  meses	
  de	
  
idade.	
  Após	
  isso,	
  cada	
  casal	
  produz	
  um	
  outro	
  par	
  
por	
  mês.	
  Encontre	
  uma	
  relação	
  de	
  recorrência	
  
para	
  o	
  número	
  de	
  coelhos	
  na	
  ilha	
  após	
  n	
  meses,	
  
assumindo	
  que	
  nenhum	
  coelho	
  morre.	
  
Exemplo	
  Coelhos	
  e	
  números	
  de	
  Fibonacci	
  
f1=	
f2=	
fn=no. de casais no mês anterior	
	
 	
 	
 	
 	
+	
 no. de recém nascidos 	
(que é fn-2 pois cada novo par vem de um 
casal com pelo menos 2 meses de idade)	
fn=fn-1 + fn-2	
Exemplo	
  Torre	
  de	
  Hanoi	
  
•  Problema:	
  Mover	
  os	
  discos	
  do	
  pino	
  1	
  para	
  o	
  pino	
  
2.	
  
•  Regras:	
  	
  
a)	
  Mover	
  apenas	
  um	
  disco	
  por	
  vez.	
  
b)	
  Nunca	
  colocar	
  um	
  disco	
  maior	
  sobre	
  um	
  
menor.	
  
Peg #1 Peg #2 Peg #3 
11/11/13	
  
2	
  
Relação	
  de	
  Recorrência	
  Hanoi	
  
•  Seja	
  Hn	
  =	
  #	
  movimentos	
  para	
  uma	
  pilha	
  de	
  n	
  discos.	
  
•  Estratégia	
  ó+ma:	
  
•  Mover	
  n−1	
  discos	
  superiores	
  para	
  pino	
  livre.	
  (Hn−1	
  
movimentos)	
  
•  Mover	
  disco	
  inferior.	
  (1	
  movimentos)	
  
•  Mover	
  n−1	
  superiores	
  para	
  o	
  disco	
  inferior.	
  	
  
(Hn−1	
  movimentos)	
  
•  Note	
  que:	
  	
  	
  	
  	
  	
  Hn	
  =	
  2Hn−1	
  +	
  1	
  
•  O	
  #	
  de	
  movimentos	
  é	
  descrito	
  por	
  uma	
  
recorrência	
  
Resolvendo	
  RR	
  da	
  Torre	
  de	
  Hanoi	
  
Hn	
  =	
  2	
  Hn−1	
  +	
  1	
  
	
  	
  =	
  2	
  (2	
  Hn−2	
  +	
  1)	
  +	
  1	
   	
  =	
  22	
  Hn−2	
  +	
  2	
  +	
  1	
  
	
  	
  =	
  22(2	
  Hn−3	
  +	
  1)	
  +	
  2	
  +	
  1 	
  =	
  23	
  Hn−3	
  +	
  22	
  +	
  2	
  +	
  1	
  
	
  	
  …	
  
	
  	
  =	
  2n−1	
  H1	
  +	
  2n−2	
  +	
  …	
  +	
  2	
  +	
  1	
  
	
  	
  =	
  2n−1	
  +	
  2n−2	
  +	
  …	
  +	
  2	
  +	
  1	
  	
  	
  	
  	
  	
  (uma	
  vez	
  que	
  H1	
  =	
  1)	
  
	
  	
  	
  
	
  =	
  	
  
	
  
	
  	
  =	
  2n	
  −	
  1	
  
∑
−
=
1
0
2
n
i
i
Soma	
  dos	
  termos	
  de	
  uma	
  PG:	
  
RR	
  –	
  Torre	
  de	
  Hanoi	
  
•  Lenda:	
  
•  Monges	
  estão	
  transferindo	
  64	
  discos	
  de	
  ouro	
  de	
  
um	
  pino	
  para	
  o	
  outro,	
  seguindo	
  as	
  regras	
  do	
  
puzzle.	
  A	
  lenda	
  diz	
  que	
  o	
  mundo	
  irá	
  acabar	
  
quando	
  eles	
  terminarem.	
  Quanto	
  tempo	
  levará	
  
para	
  o	
  mundo	
  acabar	
  após	
  eles	
  começarem,	
  se	
  
eles	
  levam	
  1	
  segundo	
  para	
  mover	
  um	
  disco?	
  
•  Pela	
  fórmula:	
  2n	
  -­‐1	
  =	
  18.446.744.073.709.551.615	
  
movimentos.	
  
•  >	
  500	
  bilhões	
  de	
  anos	
  
	
  
Outro	
  Exemplo	
  
•  Encontre	
  uma	
  R.R.	
  e	
  condições	
  iniciais	
  para	
  um	
  
número	
  de	
  strings	
  de	
  bit	
  de	
  comprimento	
  n	
  sem	
  
dois	
  0’s	
  consecu+vos.	
  
•  Podemos	
  resolver	
  dividindo	
  uma	
  string	
  que	
  seja	
  
contada	
  em	
  casos	
  que	
  terminam	
  em	
  0	
  e	
  1.	
  
•  Para	
  cada	
  string	
  terminando	
  em	
  0,	
  o	
  bit	
  anterior	
  deve	
  ser	
  1,	
  e	
  
antes	
  dele	
  pode	
  vir	
  qualquer	
  string	
  de	
  tamanho	
  n−2.	
  
•  Para	
  cada	
  string	
  terminando	
  em	
  1,	
  pode	
  ter	
  uma	
  outra	
  string	
  
de	
  tamanho	
  	
  n−1.	
  
•  A	
  quan+dade	
  de	
  strings	
  de	
  bit	
  de	
  tamanho	
  n	
  
que	
  não	
  podem	
  ter	
  dois	
  0’s	
  consecu+vos	
  é	
  	
  
an	
  =	
  an−1	
  +	
  an−2.	
  	
  (Recorrência	
  de	
  Fibonacci)	
  
•  As	
  condições	
  iniciais	
  são:	
  a1	
  =	
  2	
  (0	
  e	
  1)	
  e	
  a2	
  =	
  3	
  .	
  
1 0 (n−2 bits) 1 (n−1 bits) 
Utilizando	
  a	
  recorrência	
  
•  Como	
  obter	
  a5?	
  
•  a1	
  =	
  2	
  (0,	
  1)	
  
•  a2	
  =	
  3	
  (01,	
  10,	
  11)	
  
•  a3	
  =	
  a2	
  +	
  a1	
  =	
  3+2	
  =	
  5	
  
•  a4	
  =	
  a3	
  +	
  a2	
  =	
  5+3	
  =	
  8	
  
•  a5	
  =	
  a4	
  +	
  a3	
  =	
  8+5	
  =	
  13	
  
Exemplo	
  Contagem	
  de	
  códigos	
  
•  Um	
  sistema	
  computacional	
  considera	
  uma	
  string	
  de	
  dígitos	
  
decimais	
  um	
  código	
  válido	
  se	
  ele	
  contém	
  um	
  número	
  par	
  
de	
  0’s	
  .	
  
•  Por	
  exemplo,	
  1230407869	
  é	
  válido,	
  enquanto	
  
120987045608	
  não	
  é.	
  
•  Solução:	
  	
  
•  Seja	
  an	
  o	
  número	
  de	
  códigos	
  válidos	
  de	
  n	
  bits.	
  
•  a1	
  =	
  9	
  
•  Os	
  outros	
  casos	
  dividem-­‐se	
  em:	
  
•  Qualquer	
  string	
  válida	
  de	
  tamanho	
  n−1,	
  acrescida	
  de	
  qualquer	
  
dígito	
  1-­‐9.	
  (an-­‐1+	
  D,	
  pode	
  ser	
  feito	
  de	
  9	
  formas)	
  
•  Qualquer	
  string	
  inválida	
  de	
  comprimento	
  n−1	
  digits,	
  acrescida	
  
de	
  0.	
  
•  Existem	
  10n-­‐1	
  strings	
  de	
  tamanho	
  n-­‐1.	
  Dessas,	
  an-­‐1	
  são	
  válidas.	
  Portanto:	
  
•  an	
  =	
  9an−1	
  +	
  (10n−1	
  −	
  an−1)	
  	
  	
  =	
  8an−1	
  +	
  10n−1.	
  
•  Caso	
  base:	
  a1	
  =	
  9	
  (1-­‐9).	
  
11/11/13	
  
3	
  
Resolvendo	
  Recorrências	
  
•  Algumas	
  recorrências	
  podem	
  se	
  resolvidas	
  por	
  
iteração	
  ou	
  outro	
  método.	
  Entretanto,	
  existe	
  
uma	
  classe	
  de	
  recorrências	
  que	
  pode	
  ser	
  
explícitamente	
  resolvida	
  de	
  forma	
  sistemá+ca.	
  
•  Def.	
  Uma	
  relação	
  de	
  recorrência	
  homogênea	
  
linear	
  de	
  grau	
  k	
  com	
  coeficientes	
  constantes	
  
(“k-­‐LiHoReCC”)	
  é	
  uma	
  RR	
  da	
  forma	
  
	
  an	
  =	
  c1an−1	
  +	
  …	
  +	
  ckan−k,	
  
onde	
  ci	
  ,	
  i=1...k,	
  são	
  números	
  reais	
  e	
  ck	
  ≠	
  0.•  A	
  solução	
  é	
  determinada	
  unicamente	
  pela	
  RR	
  e	
  	
  
pelas	
  k	
  condições	
  iniciais	
  a0…ak−1.	
  
k-­‐LiHoReCC	
  
•  Exemplos	
  de	
  k-­‐LiHoReCC:	
  
•  fn=fn-­‐1	
  +	
  fn-­‐2	
  	
  	
  	
  	
  	
  	
  (grau	
  2)	
  
•  an=an-­‐5	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  (grau	
  5)	
  
•  Não	
  são	
  	
  k-­‐LiHoReCC:	
  
•  an=an-­‐1	
  +	
  a2n-­‐2 	
  	
   	
  	
  (não	
  é	
  linear)	
  
•  Hn	
  =	
  2Hn−1	
  +	
  1	
  	
   	
  (não	
  é	
  homogênea)	
  
•  Bn	
  =	
  nBn-­‐1	
   	
   	
  (não	
  possui	
  coef.	
  const.)	
  
Resolvendo	
  LiHoReCC’s	
  
•  Ideia	
  principal:	
  buscar	
  soluções	
  do	
  +po	
  an	
  =	
  rn,	
  
onde	
  r	
  é	
  uma	
  constante.	
  
•  Isto	
  requer	
  resolver	
  uma	
  equação	
  caracterís+ca:	
  
	
  rn	
  =	
  c1rn−1	
  +	
  …	
  +	
  ckrn−k,	
  dividindo	
  por	
  rn-­‐k,	
  	
  
	
  rk	
  −	
  c1rk−1	
  −	
  …	
  −	
  ck	
  =	
  0	
  
•  As	
  soluções	
  r	
  para	
  esta	
  equação	
  são	
  chamadas	
  
raízes	
  caracterís+cas	
  da	
  LiHoReCC.	
  
•  Veremos	
  que	
  estas	
  podem	
  ser	
  usadas	
  para	
  dar	
  uma	
  
fórmula	
  explícita	
  para	
  todas	
  as	
  soluções	
  da	
  sequência	
  
an	
  =	
  c1an−1	
  +	
  …	
  +	
  ckan−k	
  
Resolvendo	
  2-­‐LiHoReCCs	
  
•  Considere	
  uma	
  2-­‐LiHoReCC	
  arbitrária:	
  
	
  an	
  =	
  c1an−1	
  +	
  c2an−2	
  
•  Ela	
  possui	
  equação	
  caracterís+ca	
  (E.C.):	
  	
  
	
  r2	
  −	
  c1r	
  −	
  c2	
  =	
  0	
  
•  Teorema.	
  Se	
  uma	
  E.C.	
  possui	
  2	
  raízes	
  r1≠r2,	
  então	
  
uma	
  das	
  soluções	
  para	
  a	
  RR	
  são	
  dadas	
  por:	
  
	
  an	
  =	
  α1r1n	
  +	
  α2r2n	
  	
  para	
  n≥0	
  
para	
  toda	
  e	
  qualquer	
  constantes	
  α1,	
  α2.	
  
Exemplo	
  
•  Resolva	
  a	
  recorrência	
  an	
  =	
  an−1	
  +	
  2an−2	
  dadas	
  as	
  
condições	
  iniciais	
  a0	
  =	
  2,	
  a1	
  =	
  7.	
  
•  Solução:	
  Usando	
  o	
  teorema	
  1:	
  
•  Temos	
  c1	
  =	
  1,	
  c2	
  =	
  2	
  
•  A	
  equação	
  caracterís+ca	
  é:	
  	
  	
  r2	
  −	
  r	
  −	
  2	
  =	
  0	
  
•  Resolvendo:	
  
•  	
  
	
  	
  	
  
•  Portanto,	
  r	
  =	
  2	
  	
  ou	
  r	
  =	
  −1.	
  
•  Dessa	
  forma,	
  an	
  =	
  α1	
  2n	
  +	
  α2	
  (−1)n.	
  	
  	
  	
  	
  
a
acbbx
cbxax
2
4
0
2
2
−±−
=
⇔=++
.1or 2
2
31
2
91
)1(2
)2)(1(4)1()1( 2
−=
±
=
±
=
−−−±−−
=r
Exemplo	
  (cont.)	
  
•  Para	
  achar	
  α1	
  e	
  α2,	
  precisamos	
  resolver	
  as	
  equações	
  para	
  
as	
  condições	
  iniciais	
  a0	
  e	
  a1:	
  	
  
	
   	
  a0	
  =	
  2	
  =	
  α120	
  +	
  α2	
  (−1)0	
  
	
  	
  	
  	
  	
  	
  	
  	
   	
  a1	
  =	
  7	
  =	
  α121	
  +	
  α2	
  (−1)1	
  
•  Simplificando,	
  temos	
  um	
  par	
  de	
  equações:	
  
	
   	
  2	
  =	
  α1	
  +	
  α2	
  
	
   	
  7	
  =	
  2α1	
  −	
  α2	
  
as	
  quais	
  podem	
  se	
  r	
  resolvidas	
  por	
  subs+tuição:	
  
	
   	
  α2	
  =	
  2−α1;	
  	
  	
  7	
  =	
  2α1	
  −	
  (2−α1)	
  =	
  3α1	
  −	
  2;	
  	
  
	
   	
  9	
  =	
  3α1;	
  	
  α1	
  =	
  3;	
  	
  	
  α2	
  =	
  −1.	
  
•  Usando	
  α1	
  e	
  α2,	
  a	
  resposta	
  final	
  é	
  :	
  	
  	
  an	
  =	
  3·∙2n	
  −	
  (−1)n	
  
Check: {an≥0} = 2, 7, 11, 25, 47, 97 … 
11/11/13	
  
4	
  
Raízes	
  degeneradas	
  
•  E	
  se	
  a	
  E.C.	
  r2	
  −	
  c1r	
  −	
  c2	
  =	
  0	
  possui	
  apenas	
  uma	
  raiz	
  
r0?	
  
•  Teorema.	
  Então,	
  
	
  an	
  =	
  α1r0n	
  +	
  α2nr0n,	
  	
  para	
  todo	
  n≥0,	
  
para	
  algumas	
  constantes	
  α1,	
  α2.	
  
Raízes	
  degeneradas	
  Exemplo	
  
•  Resolver	
  an	
  =	
  6an−1−9an−2	
  com	
  a0=1,	
  a1=6.	
  
•  A	
  E.C.	
  é:	
  r2−6r+9=0.	
  
•  Note	
  que	
  b2−4ac	
  =	
  (−6)2−4·∙1·∙9	
  =	
  36−36	
  =	
  0.	
  
•  Portanto,	
  existe	
  apenas	
  uma	
  raiz	
  
	
  −b/2a	
  =	
  −(−6)/2	
  =	
  3.	
  
•  Então	
  an	
  =	
  α13n	
  +	
  α2n	
  3n	
  
•  Para	
  achar	
  α1	
  e	
  α2,	
  precisamos	
  resolver	
  as	
  equações	
  
para	
  as	
  condições	
  iniciais	
  a0	
  e	
  a1:	
  	
  
	
   	
  a0	
  =	
  1	
  =	
  α130	
  +	
  α2	
  .	
  0	
  .	
  (3)0	
  =>	
  3α1	
  =	
  1	
  
	
  	
  	
  	
  	
  	
  	
  	
   	
  a1	
  =	
  6	
  =	
  α131	
  +	
  α2	
  .	
  1	
  .	
  (3)1	
  =>	
  3α1	
  +	
  3α2=	
  6	
  
Subs+tuindo	
  temos,	
  1	
  +	
  	
  3α2=	
  6	
  	
  =>	
  	
  α2=	
  5/3	
  e	
  α1=	
  1/3	
  
Dessa	
  forma,	
  an	
  =	
  (1/3)3n	
  +	
  (5/3)	
  n	
  3n	
  =	
  3n-­‐1	
  +	
  5n	
  3n-­‐1	
  
Exercício	
  
•  Encontre	
  uma	
  fórmula	
  explícita	
  para	
  os	
  números	
  
de	
  Fibonacci	
  
•  Lembrando:	
  fn	
  =	
  fn-­‐1	
  +	
  fn-­‐2	
  ,	
  e	
  f0=0	
  e	
  f1=1	
  
Exercício	
  
•  Encontre	
  uma	
  fórmula	
  explícita	
  para	
  os	
  números	
  
de	
  Fibonacci	
  
•  Lembrando:	
  fn	
  =	
  fn-­‐1	
  +	
  fn-­‐2	
  ,	
  e	
  f0=0	
  e	
  f1=1	
  
•  E.C.:	
  r2	
  –	
  r	
  –	
  1	
  =	
  0	
  ,	
  possui	
  raízes	
  
fn =α1
1+ 5
2
!
"
#
$
%
&
n
+α2
1− 5
2
!
"
#
$
%
&
n
r1 = (1+ 5) / 2 r2 = (1− 5) / 2
f0 =α1 +α2 = 0
f1 =α1
1+ 5
2
!
"
#
$
%
&
n
+α2
1− 5
2
!
"
#
$
%
&
n
=1
α1 =1/ 5
α2 = −1/ 5

Outros materiais