• Nenhum resultado encontrado

Tópicos de Análise de Algoritmos

N/A
N/A
Protected

Academic year: 2022

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

Copied!
40
0
0

Texto

(1)

Tópicos de Análise de Algoritmos

Método guloso Sec 4.3 do KT

(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 itemd,

decidir qual dos k itens será desalojado para dar espaço para d.

(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 itemd,

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

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?

(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 deU, a cada instante, se necessário, desalojamos do cache o item que demorará mais para ser requisitado de novo.

(mais distante no futuro)

(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 deU, 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 deU, 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

(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 deU, 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 deU, 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

(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 deU, 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 deU, 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

(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 deU, 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 deU, 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

(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 deU, 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 deU, 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

(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 deU, 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 deU, 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

(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 deU, 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 deU, 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

(22)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . ,dm de requisições deU, 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 deU, 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 é reduzidose traz um item para o cache apenas quando este item é requisitado.

(24)

Política ótima de caching

Algoritmo ótimo de caching:

Dada uma sequência d1, . . . ,dm de requisições deU, 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 é reduzidose 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. Prova feita na aula.

(25)

Política ótima de caching

Algoritmo ótimo de caching:

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

SFF: escalonamento obtido pela política acima.

(26)

Política ótima de caching

Algoritmo ótimo de caching:

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

SFF: escalonamento obtido pela política acima.

S: escalonamento reduzido que faz

S: as mesmas primeirasj decisões queSFF.

(27)

Política ótima de caching

Algoritmo ótimo de caching:

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

SFF: escalonamento obtido pela política acima.

S: escalonamento reduzido que faz

S: as mesmas primeirasj decisões queSFF.

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

(28)

Política ótima de caching

Algoritmo ótimo de caching:

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

SFF: escalonamento obtido pela política acima.

S: escalonamento reduzido que faz

S: as mesmas primeirasj decisões queSFF.

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

Consequência: SFF é ótimo.

(29)

Política ótima de caching

Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo itemd,

decidir qual dos k itens será desalojado para dar espaço para d. SFF: escalonamento obtido pela política anterior.

Lema: SFF é ótimo.

(30)

Política ótima de caching

Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo itemd,

decidir qual 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...

(31)

Política ótima de caching

Algoritmo de manutenção de cache:

Dada uma coleção de k itens de U e um novo itemd,

decidir qual 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...

(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 deC está marcado ou desmarcado.

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

(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 deC 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 deC está marcado ou desmarcado.

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

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

(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 deC está marcado ou desmarcado.

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

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

Fase: ses ∈C, atendes e passa para o próximo.

(37)

Algoritmos de marcação por fases

Algoritmo:

C: itens que estão no cache.

Cada item deC está marcado ou desmarcado.

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

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

Fase: ses ∈C, atendes e passa para o próximo.

(38)

Algoritmos de marcação por fases

Algoritmo:

C: itens que estão no cache.

Cada item deC está marcado ou desmarcado.

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

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

Fase: ses ∈C, atendes e passa para o próximo.

Fase: ses ∈C,

Fase: se seC 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 deC está marcado ou desmarcado.

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

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

Fase: ses ∈C, atendes e passa para o próximo.

Fase: ses ∈C,

Fase: se seC 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 deC um dos itens desmarcados, Fase: se se traz s no seu lugar e passa para o próximo.

(40)

Algoritmos de marcação por fases

Algoritmo:

C: itens que estão no cache.

Cada item deC está marcado ou desmarcado.

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

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

Fase: ses ∈C, atendes e passa para o próximo.

Fase: ses ∈C,

Fase: se seC 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 deC 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.

Referências

Documentos relacionados

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

Podemos ter algoritmos que (1) encontram soluções ótimas (2) em tempo polinomial (3) para qualquer instância.... Como lidar com

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

A tabela 25 apresenta os resultados brutos desta avaliação em relação à característica busca e a tabela 26 exibe o resultado ponderado para esta característica.. A tabela 27

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

há 2 créditos sobre cada item novo no vetor, e isso é suficiente para pagar pela cópia de todos os itens do vetor para o novo vetor pois, quando o vetor está cheio, há um item novo

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?.. se A não