• Nenhum resultado encontrado

Tópicos de Análise de Algoritmos

N/A
N/A
Protected

Academic year: 2022

Share "Tópicos de Análise de Algoritmos"

Copied!
63
0
0

Texto

(1)

Tópicos de Análise de Algoritmos

Análise amortizada

Notas de aula de um curso do Robert Tarjan.

“Amortized Analysis Explained”

por Rebecca Fiebrink, Princeton University

(2)

Splay trees

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.

As rotações são feitas numa ordem específica, de duas em duas.

(3)

Splay trees

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.

As rotações são feitas numa ordem específica, de duas em duas.

1 2

A

A

B

B C

C D

D

x

x

y y

z

z

Acima, o rr splay step.

(4)

Splay trees

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.

As rotações são feitas numa ordem específica, de duas em duas.

2

1

B

B

C

C

A

A D

D

x

x

y y z

z

Acima, o lr splay step.

(5)

Splay trees

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.

As rotações são feitas numa ordem específica, de duas em duas.

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.

(6)

Splay trees

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.

As rotações são feitas numa ordem específica, de duas em duas.

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.

(7)

Splay trees

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.

As rotações são feitas numa ordem específica, de duas em duas.

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.

(8)

Splay trees

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.

(9)

Splay trees

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.

Custo de pior caso doSPLAY: Θ(n),

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

(10)

Splay trees

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.

Custo de pior caso doSPLAY: Θ(n),

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

Queremos mostrar que uma splay tree tem

comportamento mais parecido com o de uma ABBB.

(11)

Splay trees

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.

Custo de pior caso doSPLAY: Θ(n),

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

Queremos mostrar que uma splay tree tem

comportamento mais parecido com o de uma ABBB.

(ABBB: ABB balanceada)

(12)

Splay trees: pior caso

SPLAY(1,S)

2 3

4 5

6 7

8 9

10

1

(13)

Splay trees: pior caso

SPLAY(1,S) primeiro splay step

4 5

6 7

8 9

10

2 3 1

(14)

Splay trees: pior caso

SPLAY(1,S) segundo splay step

6 7

8 9

10

2 3 4

5 1

(15)

Splay trees: pior caso

SPLAY(1,S) terceiro splay step

8 9

10

7 6

2 3 4

5 1

(16)

Splay trees: pior caso

SPLAY(1,S)

quarto splay step 10

8 9 7 6

2 3 4

5 1

(17)

Splay trees: pior caso

SPLAY(1,S) quinto splay step

8 9 7 6

2 3 4

5 10 1

(18)

Splay trees: pior caso

SPLAY(1,S) quinto splay step

8 9 7 6

2 3 4

5 10 1

Total de rotações: 9

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

Depois disso, o maior custo de um SPLAY nesta árvore é 6.

(19)

Splay trees: mais um exemplo

SPLAY(2,S)

8 9 7 6

2 3 4

5 10 1

(20)

Splay trees: mais um exemplo

SPLAY(2,S) primeiro splay step

8 9 10

2 4

5 6

7 3

1

(21)

Splay trees: mais um exemplo

SPLAY(2,S) segundo splay step

2 8

10 9 4

5 6

7 3

1

(22)

Splay trees: mais um exemplo

SPLAY(2,S) terceiro splay step

8 2

4

5 6

7 3

10 9 1

(23)

Splay trees: mais um exemplo

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.

(24)

Splay trees: mais um exemplo

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.

(25)

Jorge Stolfi

(26)

Splay trees: análise

S: splay tree

Custo: número de rotações.

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

(27)

Splay trees: análise

S: splay tree

Custo: número de rotações.

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

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

(28)

Splay trees: análise

S: splay tree

Custo: número de rotações.

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

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

Análise amortizada dos splay steps.

(29)

Splay trees: análise

S: splay tree

Custo: número de rotações.

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

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

Análise amortizada dos splay steps.

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

si(x) =|Si(x)| número de nós na subárvore

(30)

Splay trees: análise

S: splay tree

Custo: número de rotações.

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

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

Análise amortizada dos splay steps.

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

si(x) =|Si(x)| número de nós na subárvore Tome ri(x) = lgsi(x).

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

(31)

Splay trees: análise

S: splay tree

Custo: número de rotações.

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

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

Análise amortizada dos splay steps.

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

si(x) =|Si(x)| número de nós na subárvore

Tome ri(x) = lgsi(x).

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

Seja Φi =P

xri(x).

(32)

Análise amortizada dos splay steps

Caso do rr splay step.

1

2

A

A

B

B C

C D

D

x

x

y y

z

z

Custo real: 2

(33)

Análise amortizada dos splay steps

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 =P

wri(w)−P

wri−1(w) =P

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

(34)

Análise amortizada dos splay steps

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 =P

wri(w)−P

wri−1(w) =P

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

(35)

Análise amortizada dos splay steps

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 =P

wri(w)−P

wri−1(w) =P

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)) ri(x) =ri−1(z)

(36)

Análise amortizada dos splay steps

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 =P

wri(w)−P

wri−1(w) =P

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)) ri(x) =ri−1(z)

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

(37)

Análise amortizada dos splay steps

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)

(38)

Análise amortizada dos splay steps

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)

(39)

Análise amortizada dos splay steps

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.

(40)

Caso do rr splay step

1 2

A

A

B

B C

C D

D

x

x

y y

z

z

Temos que loga+log2 b ≤log(a+b2 ). Logo

(41)

Caso do rr splay step

1 2

A

A

B

B C

C D

D

x

x

y y

z

z

Temos que loga+log2 b ≤log(a+b2 ). Logo

ri−1(x) +ri(z) = lgsi−1(x) + lgsi(z)

≤ 2lg si−1(x) +si(z) 2

< 2lg si(x) 2

= 2lgsi(x)−2.

(42)

Caso do rr splay step

1 2

A

A

B

B C

C D

D

x

x

y y

z

z

Temos que loga+log2 b ≤log(a+b2 ). Logo

ri−1(x) +ri(z) < 2 lgsi(x)−2 = 2ri(x)−2.

(43)

Caso do rr splay step

1 2

A

A

B

B C

C D

D

x

x

y y

z

z

Temos que loga+log2 b ≤log(a+b2 ). Logo

ri−1(x) +ri(z) < 2 lgsi(x)−2 = 2ri(x)−2.

Então ˆ

ci ≤ 2+ri(y) +ri(z)−2ri−1(x)

< 2+ri(x) + (2ri(x)−ri−1(x)−2)−2ri−1(x)

= 3(ri(x)−ri−1(x)).

(44)

Análise amortizada dos splay steps

Analogamente podemos mostrar que ˆ

ci <3(ri(x)−ri−1(x)) para rl splay steps,lr splay steps, ell splay steps.

(45)

Análise amortizada dos splay steps

Analogamente podemos mostrar que ˆ

ci <3(ri(x)−ri−1(x)) para rl splay steps,lr splay steps, ell splay steps.

Para l splay steps er splay steps, vale que ˆ

ci ≤3(ri(x)−ri−1(x)) +1.

(46)

Análise amortizada dos splay steps

Analogamente podemos mostrar que ˆ

ci <3(ri(x)−ri−1(x)) para rl splay steps,lr splay steps, ell splay steps.

Para l splay steps er splay steps, vale que ˆ

ci ≤3(ri(x)−ri−1(x)) +1.

Se m é o número de splay steps e n o número de nós,

m

X

i=1

ˆ

ci ≤ 3

m

X

i=1

(ri(x)−ri−1(x)) +1

= 3(rm(x)−r0(x)) +1

≤ 3 lgn+1.

(47)

Análise amortizada dos splay steps

Lembre-se que Φi =P

xri(x).

Ou seja, Φi ≥0 para todo i.

(48)

Análise amortizada dos splay steps

Lembre-se que Φi =P

xri(x).

Ou seja, Φi ≥0 para todo i.

Então vale que o custo do SPLAY(x,S) é

m

X

i=1

ci =

m

X

i=1

ˆ

ci −Φm0≤ 3 lgn+1−Φm0.

(49)

Análise amortizada dos splay steps

Lembre-se que Φi =P

xri(x).

Ou seja, Φi ≥0 para todo i.

Então vale que o custo do SPLAY(x,S) é

m

X

i=1

ci =

m

X

i=1

ˆ

ci −Φm0≤ 3 lgn+1−Φm0.

É possível mostrar algo semelhante para inserções em splay trees.

(50)

Análise amortizada dos splay steps

Lembre-se que Φi =P

xri(x).

Ou seja, Φi ≥0 para todo i.

Então vale que o custo do SPLAY(x,S) é

m

X

i=1

ci =

m

X

i=1

ˆ

ci −Φm0≤ 3 lgn+1−Φm0.

É possível mostrar algo semelhante para inserções em splay trees.

E disso é possível concluir que o custo amortizado por operação em uma splay tree éO(lgn).

(51)

Inserções em splay trees

A inserção em splay trees é igual à inserção em ABB, seguida de uma chamada a SPLAY no elemento inserido.

Seja y1 o pai dex após a inserção, e

yi o pai de yi−1 parai =1, . . . ,k, onde yk é a raiz da árvore.

(52)

Inserções em splay trees

A inserção em splay trees é igual à inserção em ABB, seguida de uma chamada a SPLAY no elemento inserido.

Seja y1 o pai dex após a inserção, e

yi o pai de yi−1 parai =1, . . . ,k, onde yk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

(53)

Inserções em splay trees

A inserção em splay trees é igual à inserção em ABB, seguida de uma chamada a SPLAY no elemento inserido.

Seja y1 o pai dex após a inserção, e

yi o pai de yi−1 parai =1, . . . ,k, onde yk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

∆Φ =

k

X

j=1

(r(yj)−r(yj))

=

k

X

j=1

(lg(s(yj)+1)−lg(s(yj)))

(54)

Inserções em splay trees

A inserção em splay trees é igual à inserção em ABB, seguida de uma chamada a SPLAY no elemento inserido.

Seja y1 o pai dex após a inserção, e

yi o pai de yi−1 parai =1, . . . ,k, onde yk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

∆Φ =

k

X

j=1

(r(yj)−r(yj)) =

k

X

j=1

(lg(s(yj)+1)−lg(s(yj)))

=

k

X

j=1

lgs(yj)+1 s(yj)

(55)

Inserções em splay trees

A inserção em splay trees é igual à inserção em ABB, seguida de uma chamada a SPLAY no elemento inserido.

Seja y1 o pai dex após a inserção, e

yi o pai de yi−1 parai =1, . . . ,k, onde yk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

∆Φ =

k

X

j=1

(r(yj)−r(yj)) =

k

X

j=1

(lg(s(yj)+1)−lg(s(yj)))

=

k

X

j=1

lgs(yj)+1 s(yj) = lg

k

Y

j=1

s(yj)+1 s(yj)

(56)

Inserções em splay trees

Seja y1 o pai dex após a inserção, eyi o pai de yi−1 para i =1, . . . ,k, ondeyk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

∆Φ =

k

X

j=1

(r(yj)−r(yj)) =

k

X

j=1

(lg(s(yj)+1)−lg(s(yj)))

=

k

X

j=1

lgs(yj)+1 s(yj) = lg

k

Y

j=1

s(yj)+1 s(yj)

(57)

Inserções em splay trees

Seja y1 o pai dex após a inserção, eyi o pai de yi−1 para i =1, . . . ,k, ondeyk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

∆Φ =

k

X

j=1

(r(yj)−r(yj)) =

k

X

j=1

(lg(s(yj)+1)−lg(s(yj)))

=

k

X

j=1

lgs(yj)+1 s(yj) = lg

k

Y

j=1

s(yj)+1 s(yj)

≤ lg s(y2)

s(y1) ·s(y3)

s(y2)· · · s(yk)

s(yk−1)· s(yk)+1 s(yk)

(poiss(yj)+1s(yj+1))

(58)

Inserções em splay trees

Seja y1 o pai dex após a inserção, eyi o pai de yi−1 para i =1, . . . ,k, ondeyk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

∆Φ =

k

X

j=1

lgs(yj)+1 s(yj) = lg

k

Y

j=1

s(yj)+1 s(yj)

≤ lg s(y2)

s(y1) ·s(y3)

s(y2)· · · s(yk)

s(yk−1)· s(yk)+1 s(yk)

(poiss(yj)+1s(yj+1))

= lg s(yk)+1 s(y1)

(59)

Inserções em splay trees

Seja y1 o pai dex após a inserção, eyi o pai de yi−1 para i =1, . . . ,k, ondeyk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

∆Φ =

k

X

j=1

lgs(yj)+1 s(yj) = lg

k

Y

j=1

s(yj)+1 s(yj)

= lg s(y2)

s(y1) ·s(y3)

s(y2)· · · s(yk)

s(yk−1)· s(yk)+1 s(yk)

(poiss(yj)+1s(yj+1))

= lg s(yk)+1 s(y1)

≤ lg(n+1).

(60)

Inserções em splay trees

Seja y1 o pai dex após a inserção, eyi o pai de yi−1 para i =1, . . . ,k, ondeyk é a raiz da árvore.

Considere avariação do potencial causado pela inserção.

r: potencial local antes da inserção r: potencial local depois da inserção

∆Φ =

k

X

j=1

lgs(yj)+1 s(yj) = lg

k

Y

j=1

s(yj)+1 s(yj)

= lg s(y2)

s(y1) ·s(y3)

s(y2)· · · s(yk)

s(yk−1)· s(yk)+1 s(yk)

(poiss(yj)+1s(yj+1))

= lg s(yk)+1 s(y1)

≤ lg(n+1).

Então cˆ≤0+ lgn+1= lgn+1. (inserção não faz rotações)

(61)

Concluindo a análise

Lembre-se que Φi ≥0 para todo i e agoraΦ0=0.

(Começamos da árvore vazia.)

(62)

Concluindo a análise

Lembre-se que Φi ≥0 para todo i e agoraΦ0=0.

(Começamos da árvore vazia.)

Então o custo total de moperações é

m

X

i=1

ci =

m

X

i=1

ˆ

ci −Φm0

m

X

i=1

(3 lgni +1)−Φm0

≤ 3m lgm+m+0

≤ 4m lgm.

(63)

Concluindo a análise

Lembre-se que Φi ≥0 para todo i e agoraΦ0=0.

(Começamos da árvore vazia.)

Então o custo total de moperações é

m

X

i=1

ci =

m

X

i=1

ˆ

ci −Φm0

m

X

i=1

(3 lgni +1)−Φm0

≤ 3m lgm+m+0

≤ 4m lgm.

Portanto o custo amortizado por operação éO(lgm).

Referências

Documentos relacionados

In this retrospective cohort study, was observed that stapled hemorrhoidopexy combined with an excisional technique was effective for more advanced hemorrhoid disease and might have

Assim como na escola, nos cursinhos preparatórios para exames de vestibulares e Exame Nacional do Ensino Médio ENEM, esta realidade não é diferente, em sua maioria seguem os

Nos veículos em que o Comitente Vendedor solicitar que os documentos sejam transferidos para o nome do (a) comprador em São Paulo-SP, conforme acordado no ato

At 540 days after planting (DAP), the following evaluations were performed: morphometric characteristics - plant height, number of cladodes, cladode length, cladode width and cladode

As fibras de poliamida são capazes de absorver os corantes aniônicos, sendo relacionada com os grupos aminos da fibra de poliamida, como cadeias moleculares da poliamida 6,6 são

a) Instalações Sanitárias: devem ser adequadas e em perfeitas condições de higiene e limpeza, com lavatório, mictório e vaso sanitário, na proporção de um

Implementation of the CLUE-S model used explanatory variables that influenced the LULC dynamics that were established with the support of local experts from the Caxias do

Essa forma não implicaria, entretanto, um ideal de vida com fins de uma riqueza concentrada e hierarquicamente superior (que seria, para o próprio Lipovetsky, um ideal datado e