• Nenhum resultado encontrado

Análise amortizada

N/A
N/A
Protected

Academic year: 2022

Share "Análise amortizada"

Copied!
69
0
0

Texto

(1)

Notas de aula de um curso do Robert Tarjan

Amortized Analysis Explained” por Rebecca Fiebrink, Princeton University

(2)

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

(3)

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

(4)

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elemento x, mova-o para o ínicio da lista.

(5)

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elemento x, mova-o para o ínicio da lista.

a b c d e

a b c d e

a c b d e

c a b d e

(6)

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elemento x, mova-o para o ínicio da lista.

Com MTF, custo do acesso ao i-ésimo elemento: 2i−1.

(7)

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elemento x, mova-o para o ínicio da lista.

Com MTF, custo do acesso ao i-ésimo elemento: 2i−1.

Considere uma sequência de acessos à lista.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

(8)

Lista ligada e sequência de acessos a ela.

Heurística MTF:

ao acessar o elemento x, mova-o para o ínicio da lista.

Acesso ao i-ésimo elemento custa 2i 1.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

(9)

Lista ligada e sequência de acessos a ela.

Heurística MTF:

ao acessar o elemento x, mova-o para o ínicio da lista.

Acesso ao i-ésimo elemento custa 2i 1.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

A: algoritmo arbitrário de acesso à lista.

Análise amortizada:

custo do MTF4 vezes o custo deA.

(10)

Acesso e troca com anterior.

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

(11)

Acesso e troca com anterior.

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

Seja x o elemento acessado.

(12)

Acesso e troca com anterior.

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

Seja x o elemento acessado.

Seja k a posição de x na lista de MTF.

Seja i a posição de x na lista deA.

(13)

Acesso e troca com anterior.

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

Seja x o elemento acessado.

Seja k a posição de x na lista de MTF.

Seja i a posição de x na lista deA.

Suponha que Anão troca ninguém de lugar.

Custo pelo acesso a x por MTF: 2k−1.

Custo pelo acesso a x por A: i

(14)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A.

(15)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A. Em MTF, depois do acesso,

pares com x e um dosk−1 elementos trocaram de posição.

(16)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A. Em MTF, depois do acesso,

pares com x e um dosk−1 elementos trocaram de posição.

Existem i−1 elementos na lista deA na frente dex.

(17)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A. Em MTF, depois do acesso,

pares com x e um dosk−1 elementos trocaram de posição.

Existem i−1 elementos na lista deA na frente dex.

min{k−1,i−1} inversões a mais depois do acesso

(18)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A. Em MTF, depois do acesso,

pares com x e um dosk−1 elementos trocaram de posição.

Existem i−1 elementos na lista deA na frente dex.

min{k−1,i−1} inversões a mais depois do acesso

(k−1)min{k−1,i−1} inversões a menos

(19)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A. Em MTF, depois do acesso,

pares com x e um dosk−1 elementos trocaram de posição.

Existem i−1 elementos na lista deA na frente dex.

min{k−1,i−1} inversões a mais depois do acesso

(k−1)min{k−1,i−1} inversões a menos Então ∆Φ2(2min{k−1,i−1} −(k−1)).

(20)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

∆Φ 4min{k−1,i−1} −2(k−1).

(21)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

∆Φ 4min{k−1,i−1} −2(k−1).

Custo amortizado:

cˆ = c+ ∆Φ

2k−1+4min{k−1,i−1} −2(k−1)

1+4min{k−1,i−1}

4i.

(22)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

∆Φ 4min{k−1,i−1} −2(k−1).

Custo amortizado:

cˆ = c+ ∆Φ

2k−1+4min{k−1,i−1} −2(k−1)

1+4min{k−1,i−1}

4i.

Logo o custo amortizado por custo de acesso de Aé no máximo 4.

(23)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

O custo amortizado é menor que 4 em relação ao custo de A... se Anão fizer trocas...

(24)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

O custo amortizado é menor que 4 em relação ao custo de A... se Anão fizer trocas...

E se Afizer trocas também?

(25)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

O custo amortizado é menor que 4 em relação ao custo de A... se Anão fizer trocas...

E se Afizer trocas também?

Com uma troca, o custo de Asobe de 1.

(26)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

O custo amortizado é menor que 4 em relação ao custo de A... se Anão fizer trocas...

E se Afizer trocas também?

Com uma troca, o custo de Asobe de 1.

E o potencial, como se altera? Sobe ou desce de 2.

(27)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

O custo amortizado é menor que 4 em relação ao custo de A... se Anão fizer trocas...

E se Afizer trocas também?

Com uma troca, o custo de Asobe de 1.

E o potencial, como se altera? Sobe ou desce de 2.

Ou seja, o custo de Aé i+t,

onde t é o número de trocas deA após o acesso dex, e ∆Φ4min{k−1,i−1} −2(k−1) +2t.

(28)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

O custo amortizado é menor que 4 em relação ao custo de A... se Anão fizer trocas...

E se Afizer trocas também?

Com uma troca, o custo de Asobe de 1.

E o potencial, como se altera? Sobe ou desce de 2.

Ou seja, o custo de Aé i+t,

onde t é o número de trocas deA após o acesso dex, e ∆Φ4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ 4i+2t 4(i+t).

(29)

Função potencial φ: 2 vezes o número de inversões da lista de MTFem relação à lista de A.

O custo amortizado é menor que 4 em relação ao custo de A... se Anão fizer trocas...

E se Afizer trocas também?

Com uma troca, o custo de Asobe de 1.

E o potencial, como se altera? Sobe ou desce de 2.

Ou seja, o custo de Aé i+t,

onde t é o número de trocas deA após o acesso dex, e ∆Φ4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ 4i+2t 4(i+t). Custo amortizado por operação de Aé 4.

(30)

São árvores binárias de busca auto-ajustáveis!

ABB: árvore binária de busca

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

(31)

São árvores binárias de busca auto-ajustáveis!

ABB: árvore binária de busca

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Lembram-se das rotações usadas para balanceamento?

1

A

A B B C

C

x

x y

y

(32)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Para a análise, olhamos duas rotações de cada vez.

(33)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Para a análise, olhamos duas rotações de cada vez.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Acima, o rr splay step.

(34)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Para a análise, olhamos duas rotações de cada vez.

2

1

B

B

C

C

A

A D

D

x

x

y y z

z

Acima, o lr splay step.

(35)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Para a análise, olhamos duas rotações de cada vez.

Eventualmente no final uma rotação simples é necessária.

1

A

A B B C

C

x

x y

y

Acima, o r splay step.

(36)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Para a análise, olhamos duas rotações de cada vez.

Eventualmente no final uma rotação simples é necessária.

1

A

A B B C

C

x

x y

y

Acima, o r splay step.

Além destes, o l splay, orl splay e oll splay step.

(37)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Para a análise, olhamos duas rotações de cada vez.

Eventualmente no final uma rotação simples é necessária.

1

A

A B B C

C

x

x y

y

Acima, o r splay step.

Além destes, o l splay, orl splay e oll splay step.

Splay steps são realizados até que x seja raiz.

(38)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

(39)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Custo de pior caso doSPLAY: Θ(n),

onde n é o número de elementos na splay tree.

(40)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Custo de pior caso doSPLAY: Θ(n),

onde n é o número de elementos na splay tree.

Queremos mostrar que uma splay tree tem

um comportamento mais parecido com o de uma ABBB.

(41)

Operação SPLAY(x,S), onde S é uma splay tree:

quando x é acessado, move-sex para a raiz por rotações.

Custo de pior caso doSPLAY: Θ(n),

onde n é o número de elementos na splay tree.

Queremos mostrar que uma splay tree tem

um comportamento mais parecido com o de uma ABBB.

(ABBB: ABB balanceada)

(42)

SPLAY(1,S)

2 3

4 5

6 7

8 9

10

1

(43)

SPLAY(1,S) primeiro splay step

4 5

6 7

8 9

10

2 3 1

(44)

SPLAY(1,S) segundo splay step

6 7

8 9

10

2 3 4

5 1

(45)

SPLAY(1,S) terceiro splay step

8 9

10

7 6

2 3 4

5 1

(46)

SPLAY(1,S)

quarto splay step 10

8 9 7 6

2 3 4

5 1

(47)

SPLAY(1,S) quinto splay step

8 9 7 6

2 3 4

5 10 1

(48)

SPLAY(1,S) quinto splay step

8 9 7 6

2 3 4

5 10 1

Total de rotações: 9

Em geral, é Θ(n), onden é o número de nós.

Agora, o maior custo de um SPLAY nesta árvore é 7.

(49)

SPLAY(2,S)

8 9 7 6

2 3 4

5 10 1

(50)

SPLAY(2,S) primeiro splay step

8 9 10

2 4

5 6

7 3

1

(51)

SPLAY(2,S) segundo splay step

2 8

10 9 4

5 6

7 3

1

(52)

SPLAY(2,S) terceiro splay step

8 2

4

5 6

7 3

10 9 1

(53)

SPLAY(2,S) terceiro splay step

8 2

4

5 6

7 3

10 9 1

Total de rotações: 5

Árvore bem mais balanceada após estes dois SPLAYs.

(54)

SPLAY(2,S) terceiro splay step

8 2

4

5 6

7 3

10 9 1

Total de rotações: 5

Árvore bem mais balanceada após estes dois SPLAYs.

Custo: número de rotações.

(55)

S: splay tree

(56)

S: splay tree

Si(x): subárvore deS enraizada em x no instante i si(x) =|Si(x)|

(57)

S: splay tree

Si(x): subárvore deS enraizada em x no instante i si(x) =|Si(x)|

Tome ri(x) = lgsi(x).

ri(x) indica o potencial localno nó x.

(58)

S: splay tree

Si(x): subárvore deS enraizada em x no instante i si(x) =|Si(x)|

Tome ri(x) = lgsi(x).

ri(x) indica o potencial localno nó x. Seja Φi =

xri(x).

(59)

S: splay tree

Si(x): subárvore deS enraizada em x no instante i si(x) =|Si(x)|

Tome ri(x) = lgsi(x).

ri(x) indica o potencial localno nó x. Seja Φi =

xri(x).

Mostraremos que o custo amortizado por SPLAY éO(lgn).

(60)

S: splay tree

Si(x): subárvore deS enraizada em x no instante i si(x) =|Si(x)|

Tome ri(x) = lgsi(x).

ri(x) indica o potencial localno nó x. Seja Φi =

xri(x).

Mostraremos que o custo amortizado por SPLAY éO(lgn).

Análise amortizada dos splay steps.

(61)

S: splay tree

Si(x): subárvore deS enraizada em x no instante i si(x) =|Si(x)|

Tome ri(x) = lgsi(x).

ri(x) indica o potencial localno nó x. Seja Φi =

xri(x).

Mostraremos que o custo amortizado por SPLAY éO(lgn).

Análise amortizada dos splay steps.

x participa de todos os splay steps de SPLAY(x,S).

(62)

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

(63)

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

Alteração no potencial:

Φi Φi−1 =

wri(w)

wri−1(w) =

w(ri(w)−ri−1(w))

(64)

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

Alteração no potencial:

Φi Φi−1 =

wri(w)

wri−1(w) =

w(ri(w)−ri−1(w)) Φi Φi−1 = (ri(x)−ri−1(x)) + (ri(y)−ri−1(y)) + (ri(z)−ri−1(z))

(65)

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

Alteração no potencial:

Φi Φi−1 =

wri(w)

wri−1(w) =

w(ri(w)−ri−1(w)) Φi Φi−1 = (ri(x)−ri−1(x)) + (ri(y)−ri−1(y)) + (ri(z)−ri−1(z)) Φi Φi−1 = (ri(y) +ri(z))(ri−1(x) +ri−1(y))

(66)

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

Alteração no potencial:

Φi Φi−1 =

wri(w)

wri−1(w) =

w(ri(w)−ri−1(w)) Φi Φi−1 = (ri(x)−ri−1(x)) + (ri(y)−ri−1(y)) + (ri(z)−ri−1(z)) Φi Φi−1 = (ri(y) +ri(z))(ri−1(x) +ri−1(y))

Φi Φi−1 <ri(y) +ri(z)2ri−1(x)

(67)

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

Alteração no potencial: ΦiΦi−1<ri(y) +ri(z)2ri−1(x)

(68)

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

Alteração no potencial: ΦiΦi−1<ri(y) +ri(z)2ri−1(x) Custo amortizado: cˆi < 2+ri(y) +ri(z)2ri−1(x)

(69)

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

Alteração no potencial: ΦiΦi−1<ri(y) +ri(z)2ri−1(x) Custo amortizado: cˆi < 2+ri(y) +ri(z)2ri−1(x) Queremos uma delimitação que dependa apenas de x.

Referências

Documentos relacionados

Pode-se observar na Figura 10-3 que para cada valor de desvio padrão existem dois valores esperados associados para o retorno do portfolio – um na

Saída - Sempre que se trate de uma saída de stock de um artigo (Saídas de consumos, Quebras, Guias de remessa a clientes ou Facturas de venda), o sistema vai testar o modo de

Sabemos que os livros tendem a ser muito padronizados, pois não só as temáticas, como é compreensível, são muito similares, mas o olhar dos autores, no geral oriundos da

O objetivo deste estudo foi avaliar o desempenho do secador de leito fluidizado, evidenciando o comportamento do grânulo durante as etapas no sistema de secagem

A) o sentimento do mundo é exemplificado pela percepção particular sobre a cidade do Rio de Janeiro, marcada pela metáfora do Morro da Babilônia. C) a alusão

Observa-se, portanto, que o melhor método de filetagem do saramunete é aquele onde a pele é retirada após a remoção dos filés, podendo acontecer com o peixe inteiro sem escamas

Quanto ao modo de gestão do tanque de monitorização, conforme os valores de COT e pH medidos será acionado o grupo eletrobomba submersível colocado no tanque que elevará as

Seguindo esse entendimento, o COMAER estabeleceu em sua Concepção Estratégica (DCA 11-45) que, para o ano de 2041, a Força Aérea deveria ter grande capacidade dissuasória,