heaps de fibonacci lino alves. heap de fibonacci
Click here to load reader
Post on 18-Apr-2015
113 views
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)