• Nenhum resultado encontrado

Políticas de caching

N/A
N/A
Protected

Academic year: 2022

Share "Políticas de caching"

Copied!
71
0
0

Texto

(1)

Análise de Algoritmos

Parte destes slides são adaptações de slides

do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina.

Algoritmos – p. 1

(2)

Políticas de caching

U: conjunto de itens.

k: capacidade do cache.

d1, . . . , dm: sequência de itens de U.

(3)

Políticas de caching

U: conjunto de itens.

k: capacidade do cache.

d1, . . . , dm: sequência de itens de U. Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo item d, decidir qual dos k itens será desalojado para dar espaço para d.

Algoritmos – p. 2

(4)

Políticas de caching

U: conjunto de itens.

k: capacidade do cache.

d1, . . . , dm: sequência de itens de U. Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo item d, decidir qual dos k itens será desalojado para dar espaço para d. Exemplo: Se k = 9, d = 3 e o cache está assim:

7 2 1 8 5 9 4 0 6

(5)

Políticas de caching

U: conjunto de itens.

k: capacidade do cache.

d1, . . . , dm: sequência de itens de U. Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo item d, decidir qual dos k itens será desalojado para dar espaço para d. Exemplo: Se k = 9, d = 3 e o cache está assim:

7 2 1 8 5 9 4 0 6 Quem devemos desalojar?

Algoritmos – p. 2

(6)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

(7)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Algoritmos – p. 3

(8)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 7 2

1 8

(9)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 7 2

1 8

Algoritmos – p. 3

(10)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 7 2

1 5 contador de falhas: 1

(11)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 7 2

1 5 contador de falhas: 1

Algoritmos – p. 3

(12)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 9 2

1 5 contador de falhas: 2

(13)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 9 2

1 5 contador de falhas: 2

Algoritmos – p. 3

(14)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 4 2

1 5 contador de falhas: 3

(15)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 4 2

1 5 contador de falhas: 3

Algoritmos – p. 3

(16)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 4 2

1 0 contador de falhas: 4

(17)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 4 2

1 0 contador de falhas: 4

Algoritmos – p. 3

(18)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 4 2

1 6 contador de falhas: 5

(19)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 4 2

1 6 contador de falhas: 5

Algoritmos – p. 3

(20)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 4 2

1 3 contador de falhas: 6

(21)

Política ótima de caching

U: conjunto de itens.

k: capacidade do cache.

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Exemplo: d = (7, 2, 1, 2, 8, 5, 7, 9, 4, 2, 5, 0, 6, 3, 1, 4, 2, 8, 9): 4 2

1 3 contador de falhas: 6

Algoritmos – p. 3

(22)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

Por que esta política é ótima?

(23)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

Por que esta política é ótima?

Um escalonamento é reduzido se traz um item para o cache apenas quando este item é requisitado.

Algoritmos – p. 4

(24)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

Por que esta política é ótima?

Um escalonamento é reduzido se traz um item para o cache apenas quando este item é requisitado.

Lema: Dado um escalonamento S, sempre existe um escalonamento reduzido que tem no máximo o mesmo número de falhas que S.

(25)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

SF F: escalonamento obtido pela política acima.

Algoritmos – p. 5

(26)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

SF F: escalonamento obtido pela política acima.

S: escalonamento reduzido que faz

S: as mesmas primeiras j decisões que SF F.

(27)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

SF F: escalonamento obtido pela política acima.

S: escalonamento reduzido que faz

S: as mesmas primeiras j decisões que SF F.

Afirmação: Existe um escalonamento reduzido S que faz as mesmas j + 1 primeiras decisões que SF F e tem no máximo o mesmo número de falhas que S.

Prova feita na aula.

Algoritmos – p. 5

(28)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . , dm de requisições de U, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

SF F: escalonamento obtido pela política acima.

S: escalonamento reduzido que faz

S: as mesmas primeiras j decisões que SF F.

Afirmação: Existe um escalonamento reduzido S que faz as mesmas j + 1 primeiras decisões que SF F e tem no máximo o mesmo número de falhas que S.

Prova feita na aula.

(29)

Política ótima de caching

Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo item d, decidir qual dos k itens será desalojado para dar espaço para d. SF F: escalonamento obtido pela política anterior.

Lema: SF F é ótimo.

Algoritmos – p. 6

(30)

Política ótima de caching

Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo item d, decidir qual dos k itens será desalojado para dar espaço para d. SF F: escalonamento obtido pela política anterior.

Lema: SF F é ótimo.

Problema: não conhecemos d de ante-mão...

(31)

Política ótima de caching

Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo item d, decidir qual dos k itens será desalojado para dar espaço para d. SF F: escalonamento obtido pela política anterior.

Lema: SF F é ótimo.

Problema: não conhecemos d de ante-mão...

Era melhor uma política online e SF F não é online...

Algoritmos – p. 6

(32)

Duas políticas online

LRU: least recently used MRU: most recently used

(33)

Duas políticas online

LRU: least recently used MRU: most recently used

Algoritmos de marcação por fases:

C: itens que estão no cache.

Cada item de C está marcado ou desmarcado.

Fase: no início, todos os itens desmarcados.

Algoritmos – p. 7

(34)

Duas políticas online

LRU: least recently used MRU: most recently used

Algoritmos de marcação por fases:

C: itens que estão no cache.

Cada item de C está marcado ou desmarcado.

Fase: no início, todos os itens desmarcados.

Fase: recebe requisição do item s.

(35)

Duas políticas online

LRU: least recently used MRU: most recently used

Algoritmos de marcação por fases:

C: itens que estão no cache.

Cada item de C está marcado ou desmarcado.

Fase: no início, todos os itens desmarcados.

Fase: recebe requisição do item s. Fase: marca s.

Algoritmos – p. 7

(36)

Duas políticas online

LRU: least recently used MRU: most recently used

Algoritmos de marcação por fases:

C: itens que estão no cache.

Cada item de C está marcado ou desmarcado.

Fase: no início, todos os itens desmarcados.

Fase: recebe requisição do item s. Fase: marca s.

Fase: se s ∈ C, atende s e passa para o próximo.

(37)

Algoritmos de marcação por fases

Algoritmo:

C: itens que estão no cache.

Cada item de C está marcado ou desmarcado.

Fase: no início, todos os itens desmarcados.

Fase: recebe requisição do item s. Fase: marca s.

Fase: se s ∈ C, atende s e passa para o próximo.

Algoritmos – p. 8

(38)

Algoritmos de marcação por fases

Algoritmo:

C: itens que estão no cache.

Cada item de C está marcado ou desmarcado.

Fase: no início, todos os itens desmarcados.

Fase: recebe requisição do item s. Fase: marca s.

Fase: se s ∈ C, atende s e passa para o próximo.

Fase: se s 6∈ C,

Fase: se se C está todo marcado

Fase: se se desmarca todos os itens e começa nova Fase: se se fase deixando s para ser atendido nela.

(39)

Algoritmos de marcação por fases

Algoritmo:

C: itens que estão no cache.

Cada item de C está marcado ou desmarcado.

Fase: no início, todos os itens desmarcados.

Fase: recebe requisição do item s. Fase: marca s.

Fase: se s ∈ C, atende s e passa para o próximo.

Fase: se s 6∈ C,

Fase: se se C está todo marcado

Fase: se se desmarca todos os itens e começa nova Fase: se se fase deixando s para ser atendido nela.

Fase: se senão

Fase: se se despeja de C um dos itens desmarcados, Fase: se se traz s no seu lugar e passa para o próximo.

Algoritmos – p. 8

(40)

Algoritmos de marcação por fases

Algoritmo:

C: itens que estão no cache.

Cada item de C está marcado ou desmarcado.

Fase: no início, todos os itens desmarcados.

Fase: recebe requisição do item s. Fase: marca s.

Fase: se s ∈ C, atende s e passa para o próximo.

Fase: se s 6∈ C,

Fase: se se C está todo marcado

Fase: se se desmarca todos os itens e começa nova Fase: se se fase deixando s para ser atendido nela.

Fase: se senão

Fase: se se despeja de C um dos itens desmarcados, Fase: se se traz s no seu lugar e passa para o próximo.

(41)

Análise do algoritmo de marcação

Fixe uma sequência d de requisições.

f(d): número mínimo de falhas para atender d.

Algoritmos – p. 10

(42)

Análise do algoritmo de marcação

Fixe uma sequência d de requisições.

f(d): número mínimo de falhas para atender d. Em cada fase, há pelo menos uma falha.

(43)

Análise do algoritmo de marcação

Fixe uma sequência d de requisições.

f(d): número mínimo de falhas para atender d. Em cada fase, há pelo menos uma falha.

De fato, em cada fase, há k + 1 itens distintos requisitados.

Algoritmos – p. 10

(44)

Análise do algoritmo de marcação

Fixe uma sequência d de requisições.

f(d): número mínimo de falhas para atender d. Em cada fase, há pelo menos uma falha.

De fato, em cada fase, há k + 1 itens distintos requisitados.

Então f(d) ≥ r − 1, onde r é o número de fases do algoritmo.

(45)

Análise do algoritmo de marcação

Fixe uma sequência d de requisições.

f(d): número mínimo de falhas para atender d. Em cada fase, há pelo menos uma falha.

De fato, em cada fase, há k + 1 itens distintos requisitados.

Então f(d) ≥ r − 1, onde r é o número de fases do algoritmo.

O algoritmo de marcação faz no máximo k falhas por fase.

Logo, no total, faz no máximo kr ≤ kf(d) + k falhas.

Algoritmos – p. 10

(46)

Análise do algoritmo de marcação

Fixe uma sequência d de requisições.

f(d): número mínimo de falhas para atender d. Em cada fase, há pelo menos uma falha.

De fato, em cada fase, há k + 1 itens distintos requisitados.

Então f(d) ≥ r − 1, onde r é o número de fases do algoritmo.

O algoritmo de marcação faz no máximo k falhas por fase.

Logo, no total, faz no máximo kr ≤ kf(d) + k falhas.

(47)

Análise do algoritmo de marcação

Fixe uma sequência d de requisições.

f(d): número mínimo de falhas para atender d. Em cada fase, há pelo menos uma falha.

De fato, em cada fase, há k + 1 itens distintos requisitados.

Então f(d) ≥ r − 1, onde r é o número de fases do algoritmo.

O algoritmo de marcação faz no máximo k falhas por fase.

Logo, no total, faz no máximo kr ≤ kf(d) + k falhas.

Dizemos que tal algoritmo é k-competitivo.

Em particular, o LRU é k-competitivo. Algoritmos – p. 10

(48)

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

(49)

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

Fase j:

item requisitado é fresco se não foi marcado na fase j − 1 e é amanhecido caso contrário.

Algoritmos – p. 11

(50)

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

Fase j:

item requisitado é fresco se não foi marcado na fase j − 1 e é amanhecido caso contrário.

fj(d): número de falhas da política ótima na fase j.

(51)

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

Fase j:

item requisitado é fresco se não foi marcado na fase j − 1 e é amanhecido caso contrário.

fj(d): número de falhas da política ótima na fase j.

f(d) =

Xr

j=1

fj(d)

Algoritmos – p. 11

(52)

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

Fase j:

item requisitado é fresco se não foi marcado na fase j − 1 e é amanhecido caso contrário.

fj(d): número de falhas da política ótima na fase j.

f(d) =

Xr

j=1

fj(d)

cj: número de itens frescos na fase j.

(53)

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

Fase j:

item requisitado é fresco se não foi marcado na fase j − 1 e é amanhecido caso contrário.

fj(d): número de falhas da política ótima na fase j.

f(d) =

Xr

j=1

fj(d)

cj: número de itens frescos na fase j. Lema: fj(d) + fj+1(d) ≥ cj+1

Algoritmos – p. 11

(54)

Um algoritmo melhor

Fase j:

item desmarcado é fresco se não foi marcado na fase j − 1. fj(d): número de falhas da política ótima na fase j.

f(d) =

Xr

j=1

fj(d)

cj: número de itens frescos na fase j. Lema: fj(d) + fj+1(d) ≥ cj+1

(55)

Um algoritmo melhor

Fase j:

item desmarcado é fresco se não foi marcado na fase j − 1. fj(d): número de falhas da política ótima na fase j.

f(d) =

Xr

j=1

fj(d)

cj: número de itens frescos na fase j. Lema: fj(d) + fj+1(d) ≥ cj+1

Prova: Na fase j, há requisição para k itens distintos.

Algoritmos – p. 12

(56)

Um algoritmo melhor

Fase j:

item desmarcado é fresco se não foi marcado na fase j − 1. fj(d): número de falhas da política ótima na fase j.

f(d) =

Xr

j=1

fj(d)

cj: número de itens frescos na fase j. Lema: fj(d) + fj+1(d) ≥ cj+1

Prova: Na fase j, há requisição para k itens distintos.

Na fase j + 1, há requisição para cj+1 itens distintos destes.

(57)

Um algoritmo melhor

Fase j:

item desmarcado é fresco se não foi marcado na fase j − 1. fj(d): número de falhas da política ótima na fase j.

f(d) =

Xr

j=1

fj(d)

cj: número de itens frescos na fase j. Lema: fj(d) + fj+1(d) ≥ cj+1

Prova: Na fase j, há requisição para k itens distintos.

Na fase j + 1, há requisição para cj+1 itens distintos destes.

Então um algoritmo ótimo incorre em ≥ cj+1 falhas.

Algoritmos – p. 12

(58)

Um algoritmo melhor

Fase j:

item desmarcado é fresco se não foi marcado na fase j − 1 e é amanhecido caso contrário.

fj(d): número de falhas da política ótima na fase j. f(d) = Pr

j=1 fj(d).

cj: número de itens frescos na fase j. (Tome c1 = 0.) Lema: fj(d) + fj+1(d) ≥ cj+1

(59)

Um algoritmo melhor

Fase j:

item desmarcado é fresco se não foi marcado na fase j − 1 e é amanhecido caso contrário.

fj(d): número de falhas da política ótima na fase j. f(d) = Pr

j=1 fj(d).

cj: número de itens frescos na fase j. (Tome c1 = 0.) Lema: fj(d) + fj+1(d) ≥ cj+1

Consequência:

2f(d) − f1(d) − fr(d) =

r1

X

j=1

(fj(d) + fj+1(d)) ≥

r1

X

j=1

cj+1

Algoritmos – p. 13

(60)

Um algoritmo melhor

Fase j:

item desmarcado é fresco se não foi marcado na fase j − 1 e é amanhecido caso contrário.

fj(d): número de falhas da política ótima na fase j. f(d) = Pr

j=1 fj(d).

cj: número de itens frescos na fase j. (Tome c1 = 0.) Lema: fj(d) + fj+1(d) ≥ cj+1

Consequência:

2f(d) − f1(d) − fr(d) =

r1

X

j=1

(fj(d) + fj+1(d)) ≥

r1

X

j=1

cj+1

P

(61)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. X = Pr

j=1 Xj.

Queremos estimar E[X].

Algoritmos – p. 14

(62)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. X = Pr

j=1 Xj.

Queremos estimar E[X]. Note que

Xj = cj falhas por itens frescos + falhas por amanhecidos.

(63)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. X = Pr

j=1 Xj.

Queremos estimar E[X]. Note que

Xj = cj falhas por itens frescos + falhas por amanhecidos.

Considere a requisição do i-ésimo amanhecido na fase j.

Algoritmos – p. 14

(64)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. X = Pr

j=1 Xj.

Queremos estimar E[X]. Note que

Xj = cj falhas por itens frescos + falhas por amanhecidos.

Considere a requisição do i-ésimo amanhecido na fase j.

Cache: frescos c ≤ cj

amanhecidos marcados i − 1

amanhecidos desmarcados k − c − i + 1

(65)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. X = Pr

j=1 Xj.

Queremos estimar E[X]. Note que

Xj = cj falhas por itens frescos + falhas por amanhecidos.

Considere a requisição do i-ésimo amanhecido na fase j.

Cache: frescos c ≤ cj

amanhecidos marcados i − 1

amanhecidos desmarcados k − c − i + 1 Logo o número de amanhecidos fora do cache é c.

Algoritmos – p. 14

(66)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. Xj = cj falhas por itens frescos + falhas por amanhecidos.

Queremos estimar E[X], onde X = Pr

j=1 Xj.

Considere a requisição do i-ésimo amanhecido na fase j. Número de amanhecidos fora do cache é c, assim

(67)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. Xj = cj falhas por itens frescos + falhas por amanhecidos.

Queremos estimar E[X], onde X = Pr

j=1 Xj.

Considere a requisição do i-ésimo amanhecido na fase j. Número de amanhecidos fora do cache é c, assim

Pr[falha no i-ésimo amanhecido] = c

k − i + 1 ≤ cj

k − i + 1. (k − i + 1: número de amanhecidos desmarcados)

Algoritmos – p. 15

(68)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. Xj = cj falhas por itens frescos + falhas por amanhecidos.

Queremos estimar E[X], onde X = Pr

j=1 Xj.

Considere a requisição do i-ésimo amanhecido na fase j. Número de amanhecidos fora do cache é c, assim

Pr[falha no i-ésimo amanhecido] = c

k − i + 1 ≤ cj

k − i + 1. (k − i + 1: número de amanhecidos desmarcados)

Logo E[Xj] ≤ cj + Pk

i=cj+1 cj

i = cj(1 + Hk − Hcj) ≤ cjHk e

(69)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. Xj = cj falhas por itens frescos + falhas por amanhecidos.

Queremos estimar E[X], onde X = Pr

j=1 Xj.

Considere a requisição do i-ésimo amanhecido na fase j. Número de amanhecidos fora do cache é c, assim

Pr[falha no i-ésimo amanhecido] = c

k − i + 1 ≤ cj

k − i + 1. (k − i + 1: número de amanhecidos desmarcados)

Logo E[Xj] ≤ cj + Pk

i=cj+1 cj

i = cj(1 + Hk − Hcj) ≤ cjHk e E[X] =

Xr

j=1

E[Xj] ≤

Xr

j=1

cjHk ≤ 2Hkf(d) = O(lg k)f(d).

Algoritmos – p. 15

(70)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. Xj = cj falhas por itens frescos + falhas por amanhecidos.

Queremos estimar E[X], onde X = Pr

j=1 Xj.

Considere a requisição do i-ésimo amanhecido na fase j. Número de amanhecidos fora do cache é c, assim

Pr[falha no i-ésimo amanhecido] = c

k − i + 1 ≤ cj

k − i + 1. (k − i + 1: número de amanhecidos desmarcados)

(71)

Análise deste algoritmo aleatorizado

Xj: número de falhas do algoritmo aleatorizado na fase j. Xj = cj falhas por itens frescos + falhas por amanhecidos.

Queremos estimar E[X], onde X = Pr

j=1 Xj.

Considere a requisição do i-ésimo amanhecido na fase j. Número de amanhecidos fora do cache é c, assim

Pr[falha no i-ésimo amanhecido] = c

k − i + 1 ≤ cj

k − i + 1.

(k − i + 1: número de amanhecidos desmarcados) Temos que E[X] = O(lg k)f(d).

Portanto esse algoritmo é O(lg k)-competitivo.

Algoritmos – p. 16

Referências

Documentos relacionados

Neste estudo, realizou-se levantamento bibliográfico e análise documental, para identificar a viabilidade técnica, benefícios e limitações da utilização do asfalto

Há um reconhecimento dos pescadores e pescadoras sobre o quanto essas espécies são importantes para o equilíbrio do ambiente, para a geração de trabalho e renda de suas

(a) uma das formas para compatibilizar direitos consagrados na Constituição Federal de 1988 diretamente relacionados com a dignidade da pessoa humana – como o respeito à vida privada

v) por conseguinte, desenvolveu-se uma aproximação semi-paramétrica decompondo o problema de estimação em três partes: (1) a transformação das vazões anuais em cada lo-

Silva e Márquez Romero, no prelo), seleccionei apenas os contextos com datas provenientes de amostras recolhidas no interior de fossos (dado que frequentemente não há garantia

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Os Oficiais de Registro Civil das Pessoas Na- turais do Estado de São Paulo também têm competência para os atos notariais de reconhecimento de firma, autenticação de cópia

A presente Política de Gestão de Riscos (“Política”) tem por objetivo descrever os controles de risco de mercado, liquidez, crédito e operacional utilizados pela área de Risco