análise de algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfanálise de algoritmos...

71
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/24

Upload: others

Post on 20-Oct-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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/24

Page 2: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Políticas de caching

U : conjunto de itens.

k: capacidade do cache.

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

Algoritmos – p. 2/24

Page 3: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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, decidirqual dos k itens será desalojado para dar espaço para d.

Algoritmos – p. 2/24

Page 4: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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, decidirqual 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

Algoritmos – p. 2/24

Page 5: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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, decidirqual 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/24

Page 6: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Política ótima de caching

U : conjunto de itens.k: capacidade do cache.

Algoritmos – p. 3/24

Page 7: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

Algoritmos – p. 3/24

Page 8: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 9: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 10: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 11: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 12: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 13: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 14: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 15: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 16: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 17: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 18: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 19: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 20: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 21: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo 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/24

Page 22: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo item que demorará mais para ser requisitado de novo.

Por que esta política é ótima?

Algoritmos – p. 4/24

Page 23: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo item que demorará mais para ser requisitado de novo.

Por que esta política é ótima?

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

Algoritmos – p. 4/24

Page 24: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo item que demorará mais para ser requisitado de novo.

Por que esta política é ótima?

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

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

Prova feita na aula.

Algoritmos – p. 4/24

Page 25: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo item que demorará mais para ser requisitado de novo.

SFF : escalonamento obtido pela política acima.

Algoritmos – p. 5/24

Page 26: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo item que demorará mais para ser requisitado de novo.

SFF : escalonamento obtido pela política acima.

S: escalonamento reduzido que fazS: as mesmas primeiras j decisões que SFF .

Algoritmos – p. 5/24

Page 27: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo item que demorará mais para ser requisitado de novo.

SFF : escalonamento obtido pela política acima.

S: escalonamento reduzido que fazS: as mesmas primeiras j decisões que SFF .

Afirmação: Existe um escalonamento reduzido S′ que fazas mesmas j + 1 primeiras decisões que SFF e tem nomáximo o mesmo número de falhas que S.

Prova feita na aula.

Algoritmos – p. 5/24

Page 28: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 cacheo item que demorará mais para ser requisitado de novo.

SFF : escalonamento obtido pela política acima.

S: escalonamento reduzido que fazS: as mesmas primeiras j decisões que SFF .

Afirmação: Existe um escalonamento reduzido S′ que fazas mesmas j + 1 primeiras decisões que SFF e tem nomáximo o mesmo número de falhas que S.

Prova feita na aula.

Consequência: SFF é ótimo.

Algoritmos – p. 5/24

Page 29: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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, decidirqual dos k itens será desalojado para dar espaço para d.

SFF : escalonamento obtido pela política anterior.

Lema: SFF é ótimo.

Algoritmos – p. 6/24

Page 30: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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, decidirqual dos k itens será desalojado para dar espaço para d.

SFF : escalonamento obtido pela política anterior.

Lema: SFF é ótimo.

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

Algoritmos – p. 6/24

Page 31: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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, decidirqual dos k itens será desalojado para dar espaço para d.

SFF : escalonamento obtido pela política anterior.

Lema: SFF é ótimo.

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

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

Algoritmos – p. 6/24

Page 32: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Duas políticas online

LRU: least recently used

MRU: most recently used

Algoritmos – p. 7/24

Page 33: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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/24

Page 34: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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.

Algoritmos – p. 7/24

Page 35: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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/24

Page 36: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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.

Algoritmos – p. 7/24

Page 37: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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/24

Page 38: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 marcadoFase: se se desmarca todos os itens e começa novaFase: se se fase deixando s para ser atendido nela.

Algoritmos – p. 8/24

Page 39: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 marcadoFase: se se desmarca todos os itens e começa novaFase: se se fase deixando s para ser atendido nela.Fase: se senãoFase: 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/24

Page 40: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 marcadoFase: se se desmarca todos os itens e começa novaFase: se se fase deixando s para ser atendido nela.Fase: se senãoFase: se se despeja de C um dos itens desmarcados,Fase: se se traz s no seu lugar e passa para o próximo.

Note que LRU é um algoritmo de marcação.

Algoritmos – p. 9/24

Page 41: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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/24

Page 42: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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.

Algoritmos – p. 10/24

Page 43: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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/24

Page 44: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 doalgoritmo.

Algoritmos – p. 10/24

Page 45: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 doalgoritmo.

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/24

Page 46: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 doalgoritmo.

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.

Algoritmos – p. 10/24

Page 47: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 doalgoritmo.

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/24

Page 48: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Algoritmos – p. 11/24

Page 49: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

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

Algoritmos – p. 11/24

Page 50: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

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

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

Algoritmos – p. 11/24

Page 51: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

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

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

f(d) =

r∑

j=1

fj(d)

Algoritmos – p. 11/24

Page 52: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

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

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

f(d) =

r∑

j=1

fj(d)

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

Algoritmos – p. 11/24

Page 53: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

Sorteie um desmarcado uniformemente para despejar!

Análise:

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

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

f(d) =

r∑

j=1

fj(d)

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

Lema: fj(d) + fj+1(d) ≥ cj+1

Algoritmos – p. 11/24

Page 54: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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

r∑

j=1

fj(d)

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

Lema: fj(d) + fj+1(d) ≥ cj+1

Algoritmos – p. 12/24

Page 55: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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

r∑

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/24

Page 56: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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

r∑

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.

Algoritmos – p. 12/24

Page 57: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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

r∑

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/24

Page 58: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

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

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

f(d) =∑r

j=1fj(d).

cj: número de itens frescos na fase j. (Tome c1 = 0.)

Lema: fj(d) + fj+1(d) ≥ cj+1

Algoritmos – p. 13/24

Page 59: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

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

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

f(d) =∑r

j=1fj(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) =

r−1∑

j=1

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

r−1∑

j=1

cj+1

Algoritmos – p. 13/24

Page 60: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Um algoritmo melhor

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

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

f(d) =∑r

j=1fj(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) =

r−1∑

j=1

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

r−1∑

j=1

cj+1

Logo, 2 f(d) ≥∑r

j=1cj.

Algoritmos – p. 13/24

Page 61: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Análise deste algoritmo aleatorizado

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

X =∑r

j=1Xj.

Queremos estimar E[X].

Algoritmos – p. 14/24

Page 62: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Análise deste algoritmo aleatorizado

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

X =∑r

j=1Xj.

Queremos estimar E[X].

Note queXj = cj falhas por itens frescos + falhas por amanhecidos.

Algoritmos – p. 14/24

Page 63: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Análise deste algoritmo aleatorizado

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

X =∑r

j=1Xj.

Queremos estimar E[X].

Note queXj = cj falhas por itens frescos + falhas por amanhecidos.

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

Algoritmos – p. 14/24

Page 64: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Análise deste algoritmo aleatorizado

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

X =∑r

j=1Xj.

Queremos estimar E[X].

Note queXj = 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

Algoritmos – p. 14/24

Page 65: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

Análise deste algoritmo aleatorizado

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

X =∑r

j=1Xj.

Queremos estimar E[X].

Note queXj = 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/24

Page 66: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 =∑r

j=1Xj.

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

Número de amanhecidos fora do cache é c, assim

Algoritmos – p. 15/24

Page 67: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 =∑r

j=1Xj.

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/24

Page 68: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 =∑r

j=1Xj.

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 +∑k

i=cj+1

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

Algoritmos – p. 15/24

Page 69: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 =∑r

j=1Xj.

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 +∑k

i=cj+1

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

E[X] =

r∑

j=1

E[Xj ] ≤

r∑

j=1

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

Algoritmos – p. 15/24

Page 70: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 =∑r

j=1Xj.

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. 16/24

Page 71: Análise de Algoritmos - ime.usp.brcris/aulas/14_1_6711/slides/aula11.pdfAnálise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof

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 =∑r

j=1Xj.

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/24