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

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

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

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

Políticas de cachingU : conjunto de itens.

k: capacidade do cache.

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

Algoritmos – p. 2

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

Políticas de cachingU : 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

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

Políticas de cachingU : 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

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

Políticas de cachingU : 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

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

Política ótima de cachingU : conjunto de itens.k: capacidade do cache.

Algoritmos – p. 3

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

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

Política ótima de cachingU : 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

Page 22: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 23: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 24: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

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

Política ótima de cachingAlgoritmo ó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

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

Política ótima de cachingAlgoritmo ó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

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

Política ótima de cachingAlgoritmo ó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

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

Política ótima de cachingAlgoritmo ó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

Page 29: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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 acima.

Lema: SFF é ótimo.

Algoritmos – p. 6

Page 30: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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 acima.

Lema: SFF é ótimo.

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

Algoritmos – p. 6

Page 31: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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 acima.

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

Page 32: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 33: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 34: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 35: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 36: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 37: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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 fasesAlgoritmo:

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

Page 38: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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 fasesAlgoritmo:

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

Page 39: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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 fasesAlgoritmo:

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

Page 40: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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 fasesAlgoritmo: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

Page 41: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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çãoFixe uma sequência d de requisições.

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

Algoritmos – p. 10

Page 42: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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çãoFixe 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

Page 43: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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çãoFixe 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

Page 44: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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çãoFixe 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, onde r é o número de fases do algoritmo.

Algoritmos – p. 10

Page 45: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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çãoFixe 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, 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

Page 46: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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çãoFixe 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, 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.

Algoritmos – p. 10

Page 47: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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çãoFixe 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, 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

Page 48: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 49: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 50: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 51: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 52: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

Page 53: Análise de Algoritmos - ime.usp.brcris/aulas/12_1_6711/slides/aula14.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

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

Um algoritmo melhorFase 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

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

Um algoritmo melhorFase 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

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

Um algoritmo melhorFase 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

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

Um algoritmo melhorFase 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

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

Um algoritmo melhorFase 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) =

∑rj=1

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

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

Algoritmos – p. 13

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

Um algoritmo melhorFase 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) =

∑rj=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) =r−1∑

j=1

(fj(d) + fj+1(d)) ≥r−1∑

j=1

cj+1

Algoritmos – p. 13

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

Um algoritmo melhorFase 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) =

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

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

Análise deste algoritmo aleatorizadoXj: número de falhas do algoritmo aleatorizado na fase j.

X =∑r

j=1Xj .

Queremos estimar E[X].

Algoritmos – p. 14

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

Análise deste algoritmo aleatorizadoXj: 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

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

Análise deste algoritmo aleatorizadoXj: 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

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

Análise deste algoritmo aleatorizadoXj: 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

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

Análise deste algoritmo aleatorizadoXj: 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

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

Análise deste algoritmo aleatorizadoXj: 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

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

Análise deste algoritmo aleatorizadoXj: 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

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

Análise deste algoritmo aleatorizadoXj: 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

cj

i= cj(1 + Hk − Hcj

) ≤ cjHk e

Algoritmos – p. 15

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

Análise deste algoritmo aleatorizadoXj: 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

cj

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

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

Análise deste algoritmo aleatorizadoXj: 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

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

Análise deste algoritmo aleatorizadoXj: 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