• 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!
52
0
0

Texto

(1)

Tópicos de Análise de Algoritmos

Análise amortizada

Sec 17.4 Tabelas dinâmicas do CLRS

Parte das notas de aula de um curso do Robert Tarjan.

“Amortized Analysis Explained ” por Rebecca Fiebrink, Princeton University

(2)

Análise amortizada

Serve para analisar uma sequência de operações ou iterações onde o pior caso individual não reflete o pior caso da sequência.

Em outras palavras, serve para melhorar análises de pior caso que baseiem-se diretamente no pior caso de uma operação/iteração e que deem uma delimitação frouxa para o tempo de pior caso da sequência.

Métodos:

I agregado I por créditos I potencial

(3)

Aula passada

Exemplos de análise amortizada:

I odômetro binário I análise agregada I análise por créditos

I análise com função potencial I pilha com operação única

I análise agregada I análise por créditos

I análise com função potencial I tabelas dinâmicas

I análise agregada I análise por créditos

(4)

Tabelas dinâmicas

Vetor que sofre inserções. Cada inserção custa 1.

Inicialmente o vetor tem 0 posições.

Na primeira inserção, um vetor com uma posição é alocado, e o item em questão é inserido.

A cada inserção em que o vetor está cheio, antes da inserção propriamente dita, um vetor do dobro do tamanho é alocado, o vetor anterior é copiado para o novo vetor e depois é desalocado.

O custo no pior caso de uma inserção é alto, pois pode haver umarealocação.

(5)

Custo por inserção

e função potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais 1 i se i é potência de 2 mais 1.

Chame develhoum item que já estava no vetor T no momento da última realocação do vetorT,

e denovos os itens inseridos após a última realocação. Método potencial:

Que função potencial você usaria neste caso?

TomeΦ(T) como duas vezes o número de elementos novosem T. Ti: estado do vetor T imediatamente após a inserção i

Note queΦ(T0)=0 eΦ(Ti)≥0.

(6)

Custo por inserção

e função potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais 1 i se i é potência de 2 mais 1.

Chame develhoum item que já estava no vetor T no momento da última realocação do vetorT,

e denovos os itens inseridos após a última realocação.

Método potencial:

Que função potencial você usaria neste caso?

TomeΦ(T) como duas vezes o número de elementos novosem T. Ti: estado do vetor T imediatamente após a inserção i

Note queΦ(T0)=0 eΦ(Ti)≥0.

(7)

Custo por inserção e função potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais 1 i se i é potência de 2 mais 1.

Chame develhoum item que já estava no vetor T no momento da última realocação do vetorT,

e denovos os itens inseridos após a última realocação.

Método potencial:

Que função potencial você usaria neste caso?

TomeΦ(T) como duas vezes o número de elementos novosem T. Ti: estado do vetor T imediatamente após a inserção i

Note queΦ(T0)=0 eΦ(Ti)≥0.

(8)

Custo por inserção e função potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais 1 i se i é potência de 2 mais 1.

Chame develhoum item que já estava no vetor T no momento da última realocação do vetorT,

e denovos os itens inseridos após a última realocação.

Método potencial:

Que função potencial você usaria neste caso?

TomeΦ(T) como duas vezes o número de elementos novosem T.

Ti: estado do vetor T imediatamente após a inserção i Note queΦ(T0)=0 eΦ(Ti)≥0.

(9)

Custo por inserção e função potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais 1 i se i é potência de 2 mais 1.

Chame develhoum item que já estava no vetor T no momento da última realocação do vetorT,

e denovos os itens inseridos após a última realocação.

Método potencial:

Que função potencial você usaria neste caso?

TomeΦ(T) como duas vezes o número de elementos novosem T. Ti: estado do vetorT imediatamente após a inserção i

Note queΦ(T0)=0 eΦ(Ti)≥0.

(10)

Custo por inserção e função potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais 1 i se i é potência de 2 mais 1.

Chame develhoum item que já estava no vetor T no momento da última realocação do vetorT,

e denovos os itens inseridos após a última realocação.

Método potencial:

TomeΦ(T)=2(num(T)−size(T)/2)

=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Vamos calcularcˆi =ci +Φ(Ti)−Φ(Ti−1).

(11)

Custo por inserção e função potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais 1 i se i é potência de 2 mais 1.

Chame develhoum item que já estava no vetor T no momento da última realocação do vetorT,

e denovos os itens inseridos após a última realocação.

Método potencial:

TomeΦ(T)=2(num(T)−size(T)/2) =2num(T)−size(T), ondenum(T) é o número de elementos emT e

ondesize(T) é o tamanho de T.

Vamos calcularcˆi =ci +Φ(Ti)−Φ(Ti−1).

(12)

Custo por inserção e função potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais 1 i se i é potência de 2 mais 1.

Chame develhoum item que já estava no vetor T no momento da última realocação do vetorT,

e denovos os itens inseridos após a última realocação.

Método potencial:

TomeΦ(T)=2(num(T)−size(T)/2) =2num(T)−size(T), ondenum(T) é o número de elementos emT e

ondesize(T) é o tamanho de T.

Vamos calcularcˆi =ci +Φ(Ti)−Φ(Ti−1).

(13)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Vamos calcularcˆi =ci +Φ(Ti)−Φ(Ti−1).

Dois casos:

I i não é potência de 2 mais um.

num(Ti)=num(Ti−1)+1 e size(Ti)=size(Ti−1). ˆ

ci = ci +Φ(Ti)−Φ(Ti−1)

= 1+ (2num(Ti)−size(Ti))−(2num(Ti−1)−size(Ti−1))

= 1+2+0 = 3.

(14)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Vamos calcularcˆi =ci +Φ(Ti)−Φ(Ti−1).

Dois casos:

I i não é potência de 2 mais um.

num(Ti)=num(Ti−1)+1 e size(Ti)=size(Ti−1).

ˆ

ci = ci +Φ(Ti)−Φ(Ti−1)

= 1+ (2num(Ti)−size(Ti))−(2num(Ti−1)−size(Ti−1))

= 1+2+0 = 3.

(15)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Vamos calcularcˆi =ci +Φ(Ti)−Φ(Ti−1).

Dois casos:

I i não é potência de 2 mais um.

num(Ti)=num(Ti−1)+1 e size(Ti)=size(Ti−1).

ˆ

ci = ci +Φ(Ti)−Φ(Ti−1)

= 1+ (2num(Ti)−size(Ti))−(2num(Ti−1)−size(Ti−1))

= 1+2+0 = 3.

(16)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Dois casos:

I i não é potência de 2 mais um: cˆi =3.

I i é potência de 2 mais um.

num(Ti)=num(Ti−1)+1=ci e size(Ti)=2size(Ti−1)=2num(Ti−1). ˆ

ci = ci +Φ(Ti)−Φ(Ti−1)

= ci + (2num(Ti)−size(Ti))−(2num(Ti−1)−size(Ti−1))

= ci +2ci−3(ci −1) = 3.

(17)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Dois casos:

I i não é potência de 2 mais um: cˆi =3.

I i é potência de 2 mais um.

num(Ti)=num(Ti−1)+1=ci e size(Ti)=2size(Ti−1)=2num(Ti−1).

ˆ

ci = ci +Φ(Ti)−Φ(Ti−1)

= ci + (2num(Ti)−size(Ti))−(2num(Ti−1)−size(Ti−1))

= ci +2ci−3(ci −1) = 3.

(18)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Dois casos:

I i não é potência de 2 mais um: cˆi =3.

I i é potência de 2 mais um.

num(Ti)=num(Ti−1)+1=ci e size(Ti)=2size(Ti−1)=2num(Ti−1).

ˆ

ci = ci +Φ(Ti)−Φ(Ti−1)

= ci + (2num(Ti)−size(Ti))−(2num(Ti−1)−size(Ti−1))

= ci +2ci

3(ci −1) = 3.

(19)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Dois casos:

I i não é potência de 2 mais um: cˆi =3.

I i é potência de 2 mais um.

num(Ti)=num(Ti−1)+1=ci e size(Ti)=2size(Ti−1)=2num(Ti−1).

ˆ

ci = ci +Φ(Ti)−Φ(Ti−1)

= ci + (2num(Ti)−size(Ti))−(2num(Ti−1)−size(Ti−1))

= ci +2ci−3(ci −1)

= 3.

(20)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Dois casos:

I i não é potência de 2 mais um: cˆi =3.

I i é potência de 2 mais um.

num(Ti)=num(Ti−1)+1=ci e size(Ti)=2size(Ti−1)=2num(Ti−1).

ˆ

ci = ci +Φ(Ti)−Φ(Ti−1)

= ci + (2num(Ti)−size(Ti))−(2num(Ti−1)−size(Ti−1))

= ci +2ci−3(ci −1) = 3.

(21)

Tabelas dinâmicas: método potencial

Parai =1,2, . . . ,n, ci =

1 sei não é potência de 2 mais um i se i é potência de 2 mais um.

TomeΦ(T)=2num(T)−size(T),

ondenum(T) é o número de elementos emT e ondesize(T) é o tamanho de T.

Dois casos:

I i não é potência de 2 mais um: cˆi =3.

I i é potência de 2 mais um: cˆi =3.

Conclusão: custo amortizado por inserção é 3.

(22)

Move to front

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar: constante, descontado o tempo de acessar um deles. Heurística MTF:

ao acessar o elementox, mova-o para o ínicio da lista. ComMTF, custo do acesso ao i-ésimo elemento: 2i−1. Considere uma sequência de acessos à lista.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

(23)

Move to front

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elementox, mova-o para o ínicio da lista. ComMTF, custo do acesso ao i-ésimo elemento: 2i−1. Considere uma sequência de acessos à lista.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

(24)

Move to front

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elementox, mova-o para o ínicio da lista.

ComMTF, custo do acesso ao i-ésimo elemento: 2i−1. Considere uma sequência de acessos à lista.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

(25)

Move to front

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elementox, mova-o para o ínicio da lista.

a b c d e

a b c

d e

a c

b d e

c

a b d e

ComMTF, custo do acesso ao i-ésimo elemento: 2i−1. Considere uma sequência de acessos à lista.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

(26)

Move to front

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elementox, mova-o para o ínicio da lista.

ComMTF, custo do acesso aoi-ésimo elemento: 2i−1.

Considere uma sequência de acessos à lista. Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

(27)

Move to front

Considere uma lista ligada.

Custo do acesso aoi-ésimo elemento: i.

Custo de trocar dois elementos consecutivos de lugar:

constante, descontado o tempo de acessar um deles.

Heurística MTF:

ao acessar o elementox, mova-o para o ínicio da lista.

ComMTF, custo do acesso aoi-ésimo elemento: 2i−1.

Considere uma sequência de acessos à lista.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

(28)

Move to front

Lista ligada e sequência de acessos a ela.

Heurística MTF:

ao acessar o elementox, mova-o para o ínicio da lista.

Acesso aoi-ésimo elemento custa 2i −1.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

A: algoritmo arbitrário de acesso à lista. Análise amortizada:

custo doMTF ≤4 vezes o custo deA.

(29)

Move to front

Lista ligada e sequência de acessos a ela.

Heurística MTF:

ao acessar o elementox, mova-o para o ínicio da lista.

Acesso aoi-ésimo elemento custa 2i −1.

Qual é o custo de MTF se comparado com um algoritmo ótimo de acesso?

A: algoritmo arbitrário de acesso à lista.

Análise amortizada:

custo doMTF ≤4 vezes o custo deA.

(30)

Operações sobre a lista

Acesso e troca com anterior.

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

Sejax o elemento acessado.

Sejak a posição de x na lista de MTF. Sejai a posição de x na lista de A.

Suponha queAnão troca ninguém de lugar. Custo pelo acesso ax por MTF: 2k−1. Custo pelo acesso ax por A: i.

(31)

Operações sobre a lista

Acesso e troca com anterior.

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

Sejax o elemento acessado.

Sejak a posição de x na lista de MTF. Sejai a posição de x na lista de A.

Suponha queAnão troca ninguém de lugar. Custo pelo acesso ax por MTF: 2k−1. Custo pelo acesso ax por A: i.

(32)

Operações sobre a lista

Acesso e troca com anterior.

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

Sejax o elemento acessado.

Sejak a posição de x na lista de MTF.

Sejai a posição de x na lista de A.

Suponha queAnão troca ninguém de lugar. Custo pelo acesso ax por MTF: 2k−1. Custo pelo acesso ax por A: i.

(33)

Operações sobre a lista

Acesso e troca com anterior.

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

Sejax o elemento acessado.

Sejak a posição de x na lista de MTF.

Sejai a posição de x na lista de A.

Suponha queAnão troca ninguém de lugar.

Custo pelo acesso ax por MTF: 2k−1.

Custo pelo acesso ax por A: i.

(34)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A.

EmMTF, depois do acesso,

pares comx e cada um dosk−1 elementos trocaram de posição. Existemi−1 elementos na lista deA na frente dex.

≤min{k−1,i−1} inversõesa maisdepois do acesso

≥(k−1)−min{k−1,i−1} inversõesa menos Então

∆Φ≤2(2min{k−1,i−1} −(k−1)) =4min{k−1,i−1} −2(k−1).

(35)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A.

EmMTF, depois do acesso,

pares comx e cada um dosk−1 elementos trocaram de posição.

Existemi−1 elementos na lista deA na frente dex.

≤min{k−1,i−1} inversõesa maisdepois do acesso

≥(k−1)−min{k−1,i−1} inversõesa menos Então

∆Φ≤2(2min{k−1,i−1} −(k−1)) =4min{k−1,i−1} −2(k−1).

(36)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A.

EmMTF, depois do acesso,

pares comx e cada um dosk−1 elementos trocaram de posição.

Existemi−1 elementos na lista deAna frente de x.

≤min{k−1,i−1} inversõesa maisdepois do acesso

≥(k−1)−min{k−1,i−1} inversõesa menos Então

∆Φ≤2(2min{k−1,i−1} −(k−1)) =4min{k−1,i−1} −2(k−1).

(37)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A.

EmMTF, depois do acesso,

pares comx e cada um dosk−1 elementos trocaram de posição.

Existemi−1 elementos na lista deAna frente de x.

≤min{k−1,i−1} inversõesa maisdepois do acesso

≥(k−1)−min{k−1,i−1} inversõesa menos Então

∆Φ≤2(2min{k−1,i−1} −(k−1)) =4min{k−1,i−1} −2(k−1).

(38)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A.

EmMTF, depois do acesso,

pares comx e cada um dosk−1 elementos trocaram de posição.

Existemi−1 elementos na lista deAna frente de x.

≤min{k−1,i−1} inversõesa maisdepois do acesso

≥(k−1)−min{k−1,i−1} inversõesa menos

Então

∆Φ≤2(2min{k−1,i−1} −(k−1)) =4min{k−1,i−1} −2(k−1).

(39)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A.

EmMTF, depois do acesso,

pares comx e cada um dosk−1 elementos trocaram de posição.

Existemi−1 elementos na lista deAna frente de x.

≤min{k−1,i−1} inversõesa maisdepois do acesso

≥(k−1)−min{k−1,i−1} inversõesa menos Então

∆Φ≤2(2min{k−1,i−1} −(k−1))

=4min{k−1,i−1} −2(k−1).

(40)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

k: posição dex na lista deMTF.

i: posição de x na lista de A.

EmMTF, depois do acesso,

pares comx e cada um dosk−1 elementos trocaram de posição.

Existemi−1 elementos na lista deAna frente de x.

≤min{k−1,i−1} inversõesa maisdepois do acesso

≥(k−1)−min{k−1,i−1} inversõesa menos Então

∆Φ≤2(2min{k−1,i−1} −(k−1)) =4min{k−1,i−1} −2(k−1).

(41)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

∆Φ≤4min{k−1,i−1} −2(k−1).

Custo amortizado: ˆ

c = c+∆Φ

≤ 2k−1+4min{k−1,i−1} −2(k−1)

≤ 1+4min{k−1,i−1}

≤ 4i.

Lembre-se que o custo deAé i.

Logo o custo amortizado por acesso deAé no máximo 4.

(42)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

∆Φ≤4min{k−1,i−1} −2(k−1).

Custo amortizado:

ˆ

c = c+∆Φ

≤ 2k−1+4min{k−1,i−1} −2(k−1)

≤ 1+4min{k−1,i−1}

≤ 4i.

Lembre-se que o custo deAé i.

Logo o custo amortizado por acesso deAé no máximo 4.

(43)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

∆Φ≤4min{k−1,i−1} −2(k−1).

Custo amortizado:

ˆ

c = c+∆Φ

≤ 2k−1+4min{k−1,i−1} −2(k−1)

≤ 1+4min{k−1,i−1}

≤ 4i.

Lembre-se que o custo deAé i.

Logo o custo amortizado por acesso deAé no máximo 4.

(44)

Custo amortizado do acesso

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

∆Φ≤4min{k−1,i−1} −2(k−1).

Custo amortizado:

ˆ

c = c+∆Φ

≤ 2k−1+4min{k−1,i−1} −2(k−1)

≤ 1+4min{k−1,i−1}

≤ 4i.

Lembre-se que o custo deAé i.

Logo o custo amortizado por acesso deAé no máximo 4.

(45)

Custo amortizado

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

O custo amortizado por acesso é no máximo 4 em relação ao custo deA... se Anão fizer trocas...

E seAfizer trocas também?

Com uma troca, o custo deAsobe de 1.

E o potencial, como se altera? Sobe ou desce de 2. Ou seja, o custo deAé i+t,

ondet é o número de trocas deA após o acesso dex, e∆Φ≤4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ ≤ 4i+2t ≤ 4(i+t). Custo amortizado por operação deAé no máximo 4.

(46)

Custo amortizado

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

O custo amortizado por acesso é no máximo 4 em relação ao custo deA... se Anão fizer trocas...

E seAfizer trocas também?

Com uma troca, o custo deAsobe de 1.

E o potencial, como se altera? Sobe ou desce de 2. Ou seja, o custo deAé i+t,

ondet é o número de trocas deA após o acesso dex, e∆Φ≤4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ ≤ 4i+2t ≤ 4(i+t). Custo amortizado por operação deAé no máximo 4.

(47)

Custo amortizado

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

O custo amortizado por acesso é no máximo 4 em relação ao custo deA... se Anão fizer trocas...

E seAfizer trocas também?

Com uma troca, o custo deA sobe de 1.

E o potencial, como se altera? Sobe ou desce de 2. Ou seja, o custo deAé i+t,

ondet é o número de trocas deA após o acesso dex, e∆Φ≤4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ ≤ 4i+2t ≤ 4(i+t). Custo amortizado por operação deAé no máximo 4.

(48)

Custo amortizado

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

O custo amortizado por acesso é no máximo 4 em relação ao custo deA... se Anão fizer trocas...

E seAfizer trocas também?

Com uma troca, o custo deA sobe de 1.

E o potencial, como se altera? Sobe ou desce de 2.

Ou seja, o custo deAé i+t,

ondet é o número de trocas deA após o acesso dex, e∆Φ≤4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ ≤ 4i+2t ≤ 4(i+t). Custo amortizado por operação deAé no máximo 4.

(49)

Custo amortizado

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

O custo amortizado por acesso é no máximo 4 em relação ao custo deA... se Anão fizer trocas...

E seAfizer trocas também?

Com uma troca, o custo deA sobe de 1.

E o potencial, como se altera? Sobe ou desce de 2.

Ou seja, o custo deAé i+t,

ondet é o número de trocas deA após o acesso dex, e∆Φ≤4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ ≤ 4i+2t ≤ 4(i+t). Custo amortizado por operação deAé no máximo 4.

(50)

Custo amortizado

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

O custo amortizado por acesso é no máximo 4 em relação ao custo deA... se Anão fizer trocas...

E seAfizer trocas também?

Com uma troca, o custo deA sobe de 1.

E o potencial, como se altera? Sobe ou desce de 2.

Ou seja, o custo deAé i+t,

ondet é o número de trocas deA após o acesso dex, e∆Φ≤4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ ≤ 4i+2t ≤ 4(i+t).

Custo amortizado por operação deAé no máximo 4.

(51)

Custo amortizado

Função potencialΦ: 2 vezes o número de inversões da lista deMTF em relação à lista de A.

O custo amortizado por acesso é no máximo 4 em relação ao custo deA... se Anão fizer trocas...

E seAfizer trocas também?

Com uma troca, o custo deA sobe de 1.

E o potencial, como se altera? Sobe ou desce de 2.

Ou seja, o custo deAé i+t,

ondet é o número de trocas deA após o acesso dex, e∆Φ≤4min{k−1,i−1} −2(k−1) +2t.

Custo amortizado: cˆ ≤ 4i+2t ≤ 4(i+t).

Custo amortizado por operação deAé no máximo 4.

(52)

Próximos capítulos

Próxima aula: splay trees

Aula seguinte: union-find

Referências

Documentos relacionados

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos

Mediante o impacto do paciente com o ambiente do centro cirúrgico, a equipe de enfermagem deve estar voltada para o aspecto humano do atendimento, centrando suas

Incidirei, em particular, sobre a noção de cuidado, estruturando o texto em duas partes: a primeira será uma breve explicitação da noção de cuidado em Martin Heidegger (o cuidado

A Sementinha dormia muito descansada com as suas filhas. Ela aguardava a sua longa viagem pelo mundo. No entanto, sempre vivera junto ao pomar do António Seareiro e até

Combinaram encontrar-se às 21h

A bicharada já andava toda admirada, mas muito desconfiada!.

A noite de Maio com as suas sombras e os seus brilhos, os seus perfumes, as suas flores e os seus murmúrios parecia uma história fantástica.. As folhas no ar mexiam-se levemente

A noite de Maio com as suas sombras e os seus brilhos, os seus perfumes, as suas flores e os seus murmúrios parecia uma história fantástica.. As folhas no ar mexiam-se levemente