heaps de fibonacci lino alves. heap de fibonacci

Click here to load reader

Post on 18-Apr-2015

113 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • Slide 1
  • Heaps de Fibonacci Lino Alves
  • Slide 2
  • Heap de Fibonacci
  • Slide 3
  • Suporta conjunto de operaes que constituem um mergeable heap. Vrias operaes ocorrem em tempo amortizado constante.
  • Slide 4
  • Mergeable Heap Qualquer estrutura de dados que suporta: Make-Heap() Insert(H,x) Minimum(H) Extract-Min(H) Union(H1,H2)
  • Slide 5
  • Heap de Fibonacci Alm destas operaes heaps de Fibonacci suportam: Decrease-Key(H,x,k) Delete(H,x)
  • Slide 6
  • Slide 7
  • Slide 8
  • Do ponto de vista terico heaps de Fibonacci so desejaveis quando o nmero de Extract- Min e Delete so pequenos em relao a outras operaes. Essa situao ocorre por exemplo em alguns algoritmos para problemas em grafos. Minimum Spanning Trees, Single-Source Shortest Path
  • Slide 9
  • Slide 10
  • Do ponto de vista prtico, os fatores constantes e a complexidade de implementao tornam o heap de Fibonacci pouco desejvel na maioria das aplicaes. Exceo para aplicaes que manipulam grande quantidade de dados.
  • Slide 11
  • Heap de Fibonacci Ineficiente para operao de Search. Operaes Delete e Decrease-Key exigem ponteiros para o objeto em questo.
  • Slide 12
  • Estrutura Grau do n x = numero de filhos de x Cor ou Marca do n x = indica se x perdeu um filho desde a ltima vez que x se tornou filho de outro n Um n se torna desmarcado sempre que ele feito filho de outro n.
  • Slide 13
  • Funo Potencial t(H) = nmero de rvores na lista raiz de H m(H) = nmero de ns marcados em H
  • Slide 14
  • Funo Potncial 5 + 2x3 = 11
  • Slide 15
  • Criando um novo Heap
  • Slide 16
  • Inserindo um N
  • Slide 17
  • Slide 18
  • Slide 19
  • Unindo dois Heaps de Fibonacci
  • Slide 20
  • Unindo dois heaps de fibonacci
  • Slide 21
  • Extraindo o N Mnimo
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Custo de Extrair o N mnimo ( Custo real ) ( Potncial inicial ) ( Potncial final ) D(n) = grau mximo dos ns de um heap com n ns Mais a frente veremos que D(n) O(log n)
  • Slide 32
  • Decrease Key Neste caso o pai no estava marcado.
  • Slide 33
  • Decrease Key Neste caso o pai est marcado.
  • Slide 34
  • Decrease Key
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Custo do Decrease Key c = quantidade de cortes
  • Slide 39
  • Delete
  • Slide 40
  • Limitando o grau mximo size(x) = nmero de ns na sub-rvore onde x raiz incluindo x
  • Slide 41
  • Limitando o grau Mximo Seja x um n em um heap de Fibonacci e k o grau de x. Ento size(x) F(k+2) ^k
  • Slide 42
  • Limitando o grau mximo (detalhes)

View more