• Nenhum resultado encontrado

Cortes em grafos G

N/A
N/A
Protected

Academic year: 2022

Share "Cortes em grafos G"

Copied!
62
0
0

Texto

(1)

Cortes em grafos

G: grafo (não orientado) sem laços, G: possivelmente com arestas paralelas.

Conjunto de arestasC é um cortese existe um conjuntoS ⊆VG não vazio tal que

C ={e ∈EG|e tem uma ponta em S e outra fora deS.} Ou seja,C =δG(S) =δG(VG \S).

(2)

Cortes em grafos

G: grafo (não orientado) sem laços, G: possivelmente com arestas paralelas.

Conjunto de arestasC é um cortese existe um conjuntoS ⊆VG não vazio tal que

C ={e ∈EG|e tem uma ponta em S e outra fora deS.}

Ou seja,C =δG(S) =δG(VG \S).

(3)

Corte mínimo

G: grafo sem laços, possivelmente com arestas paralelas.

C ⊆EG é umcortese existeS ⊆VG não vazio tal que

C ={e ∈EG|e tem uma ponta em S e outra fora deS}

Problema: Dado G, encontrar um corteC com |C|mínimo.

corte minimo

Esta aula: algoritmo aleatorizado que devolve Esta aula: um corte mínimo com alta probabilidade.

(4)

Corte mínimo

G: grafo sem laços, possivelmente com arestas paralelas.

C ⊆EG é umcortese existeS ⊆VG não vazio tal que

C ={e ∈EG|e tem uma ponta em S e outra fora deS} Problema: Dado G, encontrar um corteC com |C|mínimo.

corte minimo

Esta aula: algoritmo aleatorizado que devolve Esta aula: um corte mínimo com alta probabilidade.

(5)

Corte mínimo

G: grafo sem laços, possivelmente com arestas paralelas.

C ⊆EG é umcortese existeS ⊆VG não vazio tal que

C ={e ∈EG|e tem uma ponta em S e outra fora deS} Problema: Dado G, encontrar um corteC com |C|mínimo.

corte minimo

Esta aula: algoritmo aleatorizado que devolve Esta aula: um corte mínimo com alta probabilidade.

(6)

Contração de arestas

Dado um grafoG e uma arestae =uv, acontraçãoG|e é o grafo (V0,E0) onde. . .

e

V0 =V \ {u,v} ∪ {w}e E0=EG \ {f|pontas(f) ={u,v}}

e cada arestaf em E0 tem as mesmas pontas quef em EG exceto por u e v, que são substituídos porw.

w

Proposição: Se C é corte de G|e, então C é corte de G.

(7)

Contração de arestas

Dado um grafoG e uma arestae =uv, acontraçãoG|e é o grafo (V0,E0) onde. . .

e

V0 =V \ {u,v} ∪ {w} e E0 =EG \ {f|pontas(f) ={u,v}}

e cada arestaf em E0 tem as mesmas pontas quef em EG exceto por u e v, que são substituídos porw.

w

Proposição: Se C é corte de G|e, então C é corte de G.

(8)

Contração de arestas

Dado um grafoG e uma arestae =uv, acontraçãoG|e é o grafo (V0,E0) onde. . .

e

V0 =V \ {u,v} ∪ {w} e E0 =EG \ {f|pontas(f) ={u,v}}

e cada arestaf em E0 tem as mesmas pontas quef em EG exceto por u e v, que são substituídos porw.

w

Proposição: Se C é corte de G|e, então C é corte de G.

(9)

Algoritmo de Karger

Problema: Dado G, encontrar um corteC com |C|mínimo.

KARGER(G)

1 enquanto |VG|>2 faça 2 e ←RANDOM-E(EG)

3 G ←G|e

4 devolvaEG

Pela proposição, o algoritmo devolve de fato um corte deG. Claramente ele consume tempo polinomial.

(O número de iteração é|VG| −2.)

(10)

Algoritmo de Karger

Problema: Dado G, encontrar um corteC com |C|mínimo.

KARGER(G)

1 enquanto |VG|>2 faça 2 e ←RANDOM-E(EG)

3 G ←G|e

4 devolvaEG

Pela proposição, o algoritmo devolve de fato um corte deG. Claramente ele consume tempo polinomial.

(O número de iteração é|VG| −2.)

(11)

Algoritmo de Karger

Problema: Dado G, encontrar um corteC com |C|mínimo.

KARGER(G)

1 enquanto |VG|>2 faça 2 e ←RANDOM-E(EG)

3 G ←G|e

4 devolvaEG

Pela proposição, o algoritmo devolve de fato um corte deG.

Claramente ele consume tempo polinomial. (O número de iteração é|VG| −2.)

(12)

Algoritmo de Karger

Problema: Dado G, encontrar um corteC com |C|mínimo.

KARGER(G)

1 enquanto |VG|>2 faça 2 e ←RANDOM-E(EG)

3 G ←G|e

4 devolvaEG

Pela proposição, o algoritmo devolve de fato um corte deG. Claramente ele consume tempo polinomial.

(O número de iteração é|VG| −2.)

(13)

Análise do algoritmo

SejaCK o corte devolvido porKARGER(G).

Vamos mostrar que

Pr{CK não é um corte mínimo}<q(n)<1, onden=|VG|.

Executa-se o algoritmor vezes e devolve-se o menor corte produzido.

A chance do corte devolvido não ser mínimo será<q(n)r.

(14)

Análise do algoritmo

SejaCK o corte devolvido porKARGER(G).

Vamos mostrar que

Pr{CK não é um corte mínimo}<q(n)<1, onden=|VG|.

Executa-se o algoritmor vezes e devolve-se o menor corte produzido.

A chance do corte devolvido não ser mínimo será<q(n)r.

(15)

Análise do algoritmo

SejaC um corte mínimo deG.

O corteC não é a resposta do algoritmo sse alguma aresta deC foi contraída.

SejaEi o evento:

uma aresta de C não é sorteada na iteraçãoi. Vamos delimitarinferiormentePr{E1∩E2∩ · · · ∩En−2}. Tal probabilidade é igual a

Pr{E1} ·Pr{E2|E1} · · ·Pr{En−2|E1∩E2∩ · · · ∩En−3}. Para começar, como delimitarPr{E1}?

(16)

Análise do algoritmo

SejaC um corte mínimo deG.

O corteC não é a resposta do algoritmo sse alguma aresta deC foi contraída.

SejaEi o evento:

uma aresta de C não é sorteada na iteraçãoi. Vamos delimitarinferiormentePr{E1∩E2∩ · · · ∩En−2}. Tal probabilidade é igual a

Pr{E1} ·Pr{E2|E1} · · ·Pr{En−2|E1∩E2∩ · · · ∩En−3}. Para começar, como delimitarPr{E1}?

(17)

Análise do algoritmo

SejaC um corte mínimo deG.

O corteC não é a resposta do algoritmo sse alguma aresta deC foi contraída.

SejaEi o evento:

uma aresta de C não é sorteada na iteraçãoi.

Vamos delimitarinferiormentePr{E1∩E2∩ · · · ∩En−2}. Tal probabilidade é igual a

Pr{E1} ·Pr{E2|E1} · · ·Pr{En−2|E1∩E2∩ · · · ∩En−3}. Para começar, como delimitarPr{E1}?

(18)

Análise do algoritmo

SejaC um corte mínimo deG.

O corteC não é a resposta do algoritmo sse alguma aresta deC foi contraída.

SejaEi o evento:

uma aresta de C não é sorteada na iteraçãoi. Vamos delimitarinferiormentePr{E1∩E2∩ · · · ∩En−2}.

Tal probabilidade é igual a

Pr{E1} ·Pr{E2|E1} · · ·Pr{En−2|E1∩E2∩ · · · ∩En−3}. Para começar, como delimitarPr{E1}?

(19)

Análise do algoritmo

SejaC um corte mínimo deG.

O corteC não é a resposta do algoritmo sse alguma aresta deC foi contraída.

SejaEi o evento:

uma aresta de C não é sorteada na iteraçãoi. Vamos delimitarinferiormentePr{E1∩E2∩ · · · ∩En−2}.

Tal probabilidade é igual a

Pr{E1} ·Pr{E2|E1} · · ·Pr{En−2|E1∩E2∩ · · · ∩En−3}.

Para começar, como delimitarPr{E1}?

(20)

Análise do algoritmo

SejaC um corte mínimo deG.

O corteC não é a resposta do algoritmo sse alguma aresta deC foi contraída.

SejaEi o evento:

uma aresta de C não é sorteada na iteraçãoi. Vamos delimitarinferiormentePr{E1∩E2∩ · · · ∩En−2}.

Tal probabilidade é igual a

Pr{E1} ·Pr{E2|E1} · · ·Pr{En−2|E1∩E2∩ · · · ∩En−3}.

Para começar, como delimitarPr{E1}?

(21)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitarPr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v. Logo|EG| ≥kn/2.

PortantoPr{E¯1} ≤ knk

2

= 2n.

Ou seja,Pr{E1} ≥1−2n.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

(22)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitarPr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v.

Logo|EG| ≥kn/2.

PortantoPr{E¯1} ≤ knk

2

= 2n.

Ou seja,Pr{E1} ≥1−2n.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

(23)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitarPr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v.

Logo|EG| ≥kn/2.

PortantoPr{E¯1} ≤ knk

2

= 2n.

Ou seja,Pr{E1} ≥1−2n.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

(24)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitarPr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v.

Logo|EG| ≥kn/2.

PortantoPr{E¯1} ≤ knk

2

= 2n.

Ou seja,Pr{E1} ≥1−2n.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

(25)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Como delimitarPr{E1}?

ComoC é mínimo, δG(v)≥k para todo vértice v.

Logo|EG| ≥kn/2.

PortantoPr{E¯1} ≤ knk

2

= 2n.

Ou seja,Pr{E1} ≥1−2n.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

(26)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Vimos quePr{E1} ≥1−n2.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

No começo da iteraçãoi+1, temos que|EG| ≥k(n−i)/2. LogoPr{E¯i+1|E1∩E2∩ · · · ∩Ei} ≤ k(n−i)k

2

= n−i2 .

Ou seja,Pr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 .

(27)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Vimos quePr{E1} ≥1−n2.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

No começo da iteraçãoi+1, temos que|EG| ≥k(n−i)/2.

LogoPr{E¯i+1|E1∩E2∩ · · · ∩Ei} ≤ k(n−i)k

2

= n−i2 .

Ou seja,Pr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 .

(28)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Vimos quePr{E1} ≥1−n2.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

No começo da iteraçãoi+1, temos que|EG| ≥k(n−i)/2.

LogoPr{E¯i+1|E1∩E2∩ · · · ∩Ei} ≤ k(n−i)k

2

= n−i2 .

Ou seja,Pr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 .

(29)

Análise do algoritmo

C: um corte mínimo de G e k=|C|.

Ei: uma aresta de C não é sorteada na iteraçãoi. Vimos quePr{E1} ≥1−n2.

Como delimitarPr{Ei+1|E1∩E2∩ · · · ∩Ei}?

No começo da iteraçãoi+1, temos que|EG| ≥k(n−i)/2.

LogoPr{E¯i+1|E1∩E2∩ · · · ∩Ei} ≤ k(n−i)k

2

= n−i2 .

Ou seja,Pr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 .

(30)

Análise do algoritmo

SejaCK o corte devolvido porKARGER(G).

C: um corte mínimo de G.

Queremos delimitarinferiormentePr{CK =C}.

Ou seja, delimitarPr{E1∩E2∩ · · · ∩En−2}.

Já sabemos quePr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 . Então

Pr{CK =C} ≥

n−3

Y

i=0

1− 2 n−i

= 1− 2 n

1− 2 n−1

1− 2 n−2

· · · 1−2 4

1−2 3

= n−2

n ·n−3

n−1·n−4 n−2· · ·2

4 ·1

3 = 2

n(n−1).

(31)

Análise do algoritmo

SejaCK o corte devolvido porKARGER(G).

C: um corte mínimo de G.

Queremos delimitarinferiormentePr{CK =C}.

Ou seja, delimitarPr{E1∩E2∩ · · · ∩En−2}.

Já sabemos quePr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 .

Então

Pr{CK =C} ≥

n−3

Y

i=0

1− 2 n−i

= 1− 2 n

1− 2 n−1

1− 2 n−2

· · · 1−2 4

1−2 3

= n−2

n ·n−3

n−1·n−4 n−2· · ·2

4 ·1

3 = 2

n(n−1).

(32)

Análise do algoritmo

SejaCK o corte devolvido porKARGER(G).

C: um corte mínimo de G.

Queremos delimitarinferiormentePr{CK =C}.

Ou seja, delimitarPr{E1∩E2∩ · · · ∩En−2}.

Já sabemos quePr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 . Então

Pr{CK =C} ≥

n−3

Y

i=0

1− 2 n−i

= 1− 2 n

1− 2 n−1

1− 2 n−2

· · · 1−2 4

1−2 3

= n−2

n ·n−3

n−1·n−4 n−2· · ·2

4 ·1

3 = 2

n(n−1).

(33)

Análise do algoritmo

SejaCK o corte devolvido porKARGER(G).

C: um corte mínimo de G.

Queremos delimitarinferiormentePr{CK =C}.

Ou seja, delimitarPr{E1∩E2∩ · · · ∩En−2}.

Já sabemos quePr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 . Então

Pr{CK =C} ≥

n−3

Y

i=0

1− 2 n−i

= 1− 2 n

1− 2 n−1

1− 2 n−2

· · · 1−2 4

1−2 3

= n−2

n ·n−3

n−1·n−4 n−2· · ·2

4 ·1

3 = 2

n(n−1).

(34)

Análise do algoritmo

SejaCK o corte devolvido porKARGER(G).

C: um corte mínimo de G.

Queremos delimitarinferiormentePr{CK =C}.

Ou seja, delimitarPr{E1∩E2∩ · · · ∩En−2}.

Já sabemos quePr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 . Então

Pr{CK =C} ≥

n−3

Y

i=0

1− 2 n−i

= 1− 2 n

1− 2 n−1

1− 2 n−2

· · · 1−2 4

1−2 3

= n−2

n ·n−3

n−1·n−4 n−2· · ·2

4 ·1 3

= 2

n(n−1).

(35)

Análise do algoritmo

SejaCK o corte devolvido porKARGER(G).

C: um corte mínimo de G.

Queremos delimitarinferiormentePr{CK =C}.

Ou seja, delimitarPr{E1∩E2∩ · · · ∩En−2}.

Já sabemos quePr{Ei+1|E1∩E2∩ · · · ∩Ei} ≥1−n−i2 . Então

Pr{CK =C} ≥

n−3

Y

i=0

1− 2 n−i

= 1− 2 n

1− 2 n−1

1− 2 n−2

· · · 1−2 4

1−2 3

= n−2

n ·n−3

n−1·n−4 n−2· · ·2

4 ·1

3 = 2

n(n−1).

(36)

Conclusão

LogoPr{CK 6=C} ≤ 1−n(n−1)2 = q(n)

ePr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmor =cn(n−1)2 lnn vezes, então

Pr{CK não é um corte mínimo} ≤ q(n)r

= 1− 2

n(n−1)

cn(n−1)2 lnn

< 1 e

clnn

= 1 nc. Erra com probabilidade exponencialmente pequena emc. Comor é polinomial emn e em c, o algoritmo é polinomial.

(37)

Conclusão

LogoPr{CK 6=C} ≤ 1−n(n−1)2 = q(n) ePr{CK não é um corte mínimo}

≤ q(n).

Se executarmos o algoritmor =cn(n−1)2 lnn vezes, então

Pr{CK não é um corte mínimo} ≤ q(n)r

= 1− 2

n(n−1)

cn(n−1)2 lnn

< 1 e

clnn

= 1 nc. Erra com probabilidade exponencialmente pequena emc. Comor é polinomial emn e em c, o algoritmo é polinomial.

(38)

Conclusão

LogoPr{CK 6=C} ≤ 1−n(n−1)2 = q(n) ePr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmor =cn(n−1)2 lnn vezes, então

Pr{CK não é um corte mínimo} ≤ q(n)r

= 1− 2

n(n−1)

cn(n−1)2 lnn

< 1 e

clnn

= 1 nc. Erra com probabilidade exponencialmente pequena emc. Comor é polinomial emn e em c, o algoritmo é polinomial.

(39)

Conclusão

LogoPr{CK 6=C} ≤ 1−n(n−1)2 = q(n) ePr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmor =cn(n−1)2 lnn vezes, então

Pr{CK não é um corte mínimo} ≤ q(n)r

= 1− 2

n(n−1)

cn(n−1)2 lnn

< 1 e

clnn

= 1 nc. Erra com probabilidade exponencialmente pequena emc. Comor é polinomial emn e em c, o algoritmo é polinomial.

(40)

Conclusão

LogoPr{CK 6=C} ≤ 1−n(n−1)2 = q(n) ePr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmor =cn(n−1)2 lnn vezes, então

Pr{CK não é um corte mínimo} ≤ q(n)r

= 1− 2

n(n−1)

cn(n−1)2 lnn

< 1 e

clnn

= 1 nc.

Erra com probabilidade exponencialmente pequena emc. Comor é polinomial emn e em c, o algoritmo é polinomial.

(41)

Conclusão

LogoPr{CK 6=C} ≤ 1−n(n−1)2 = q(n) ePr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmor =cn(n−1)2 lnn vezes, então

Pr{CK não é um corte mínimo} ≤ q(n)r

= 1− 2

n(n−1)

cn(n−1)2 lnn

< 1 e

clnn

= 1 nc. Erra com probabilidade exponencialmente pequena emc.

Comor é polinomial emn e em c, o algoritmo é polinomial.

(42)

Conclusão

LogoPr{CK 6=C} ≤ 1−n(n−1)2 = q(n) ePr{CK não é um corte mínimo} ≤ q(n).

Se executarmos o algoritmor =cn(n−1)2 lnn vezes, então

Pr{CK não é um corte mínimo} ≤ q(n)r

= 1− 2

n(n−1)

cn(n−1)2 lnn

< 1 e

clnn

= 1 nc. Erra com probabilidade exponencialmente pequena emc. Comor é polinomial emn e em c, o algoritmo é polinomial.

(43)

Uma pergunta...

Quantosst-cortes mínimos diferentes podem existir em G?

...

s t

Um número exponencial emn...

Quantos cortes mínimos diferentes podem existir? ComoPr{CK =C} ≥ n(n−1)2 =1/ n

2 , há no máximo n

2

cortes mínimos emG. SeG for por exemplo um circuito comn vértices...

(44)

Uma pergunta...

Quantosst-cortes mínimos diferentes podem existir em G?

...

s t

Um número exponencial emn...

Quantos cortes mínimos diferentes podem existir? ComoPr{CK =C} ≥ n(n−1)2 =1/ n

2 , há no máximo n

2

cortes mínimos emG. SeG for por exemplo um circuito comn vértices...

(45)

Uma pergunta...

Quantosst-cortes mínimos diferentes podem existir em G?

...

s t

Um número exponencial emn...

Quantos cortes mínimos diferentes podem existir?

ComoPr{CK =C} ≥ n(n−1)2 =1/ n 2

, há no máximo n

2

cortes mínimos emG. SeG for por exemplo um circuito comn vértices...

(46)

Uma pergunta...

Quantosst-cortes mínimos diferentes podem existir em G?

...

s t

Um número exponencial emn...

Quantos cortes mínimos diferentes podem existir?

ComoPr{CK =C} ≥ n(n−1)2 =1/ n 2

, há no máximo n

2

cortes mínimos em G.

SeG for por exemplo um circuito comn vértices...

(47)

Uma pergunta...

Quantosst-cortes mínimos diferentes podem existir em G?

...

s t

Um número exponencial emn...

Quantos cortes mínimos diferentes podem existir?

ComoPr{CK =C} ≥ n(n−1)2 =1/ n 2

, há no máximo n

2

cortes mínimos em G. SeG for por exemplo um circuito com n vértices...

(48)

Hashing universal

U: conjunto universo (contém todas as possíveis chaves).

n: um número muito menor que|U|.

H: conjunto de funções de U em{0, . . . ,n−1}.

Se, para cada par de chavesk,` emU, o número de funçõesh emH tais queh(k) =h(`)é no máximo |H|/n, então Hé uma coleção universalde hashing (paraU en).

Teorema: Seja H uma coleção universal de hashing paraU e n, seja S ⊆U tal que|S| ≤n e u∈U. Se h é escolhida aleatoriamente deH eX é o número de elementoss em S tais queh(s) =h(u),

entãoE[X]≤1 seu 6∈S e E[X]≤2 se u ∈S.

Esboço da prova: Seja Xs a variável binária que vale 1 seh(s) =h(u). Note quePr{Xu =1}=1 ePr{Xs =1} ≤1/n ses 6=u.

LogoE[X] =P

s∈SE[Xs] =P

s∈S 1

n =|S|/n≤1 se u6∈S e E[X] =1+P

s∈S\{u}1

n <1+|S|/n≤2 seu ∈S.

(49)

Hashing universal

U: conjunto universo (contém todas as possíveis chaves).

n: um número muito menor que|U|.

H: conjunto de funções de U em{0, . . . ,n−1}.

Se, para cada par de chavesk,` emU, o número de funçõesh emH tais queh(k) =h(`)é no máximo |H|/n, então Hé uma coleção universalde hashing (paraU en).

Teorema: Seja H uma coleção universal de hashing paraU e n, seja S ⊆U tal que|S| ≤n e u∈U. Se h é escolhida aleatoriamente deH eX é o número de elementoss em S tais queh(s) =h(u),

entãoE[X]≤1 seu 6∈S e E[X]≤2 se u ∈S.

Esboço da prova: Seja Xs a variável binária que vale 1 seh(s) =h(u). Note quePr{Xu =1}=1 ePr{Xs =1} ≤1/n ses 6=u.

LogoE[X] =P

s∈SE[Xs] =P

s∈S 1

n =|S|/n≤1 se u6∈S e E[X] =1+P

s∈S\{u}1

n <1+|S|/n≤2 seu ∈S.

(50)

Hashing universal

U: conjunto universo (contém todas as possíveis chaves).

n: um número muito menor que|U|.

H: conjunto de funções de U em{0, . . . ,n−1}.

Se, para cada par de chavesk,` emU, o número de funçõesh emH tais queh(k) =h(`)é no máximo |H|/n, então Hé uma coleção universalde hashing (paraU en).

Teorema: Seja Huma coleção universal de hashing para U e n, seja S ⊆U tal que|S| ≤n e u∈U. Se h é escolhida aleatoriamente deH eX é o número de elementoss em S tais queh(s) =h(u),

entãoE[X]≤1 seu 6∈S e E[X]≤2 se u ∈S.

Esboço da prova: Seja Xs a variável binária que vale 1 seh(s) =h(u). Note quePr{Xu =1}=1 ePr{Xs =1} ≤1/n ses 6=u.

LogoE[X] =P

s∈SE[Xs] =P

s∈S 1

n =|S|/n≤1 se u6∈S e E[X] =1+P

s∈S\{u}1

n <1+|S|/n≤2 seu ∈S.

(51)

Hashing universal

U: conjunto universo (contém todas as possíveis chaves).

n: um número muito menor que|U|.

H: conjunto de funções de U em{0, . . . ,n−1}.

Se, para cada par de chavesk,` emU, o número de funçõesh emH tais queh(k) =h(`)é no máximo |H|/n, então Hé uma coleção universalde hashing (paraU en).

Teorema: Seja Huma coleção universal de hashing para U e n, seja S ⊆U tal que|S| ≤n e u∈U. Se h é escolhida aleatoriamente deH eX é o número de elementoss em S tais queh(s) =h(u),

entãoE[X]≤1 seu 6∈S e E[X]≤2 se u ∈S.

Esboço da prova: Seja Xs a variável binária que vale 1 seh(s) =h(u).

Note quePr{Xu =1}=1 ePr{Xs =1} ≤1/n ses 6=u. LogoE[X] =P

s∈SE[Xs] =P

s∈S 1

n =|S|/n≤1 se u6∈S e E[X] =1+P

s∈S\{u}1

n <1+|S|/n≤2 seu ∈S.

(52)

Hashing universal

U: conjunto universo (contém todas as possíveis chaves).

n: um número muito menor que|U|.

H: conjunto de funções de U em{0, . . . ,n−1}.

Se, para cada par de chavesk,` emU, o número de funçõesh emH tais queh(k) =h(`)é no máximo |H|/n, então Hé uma coleção universalde hashing (paraU en).

Teorema: Seja Huma coleção universal de hashing para U e n, seja S ⊆U tal que|S| ≤n e u∈U. Se h é escolhida aleatoriamente deH eX é o número de elementoss em S tais queh(s) =h(u),

entãoE[X]≤1 seu 6∈S e E[X]≤2 se u ∈S.

Esboço da prova: Seja Xs a variável binária que vale 1 seh(s) =h(u).

Note quePr{Xu =1}=1 ePr{Xs =1} ≤1/n ses 6=u.

LogoE[X] =P

s∈SE[Xs] =P

s∈S 1

n =|S|/n≤1 se u6∈S e E[X] =1+P

s∈S\{u}1

n <1+|S|/n≤2 seu ∈S.

(53)

Hashing universal

U: conjunto universo (contém todas as possíveis chaves).

n: um número muito menor que|U|.

H: conjunto de funções de U em{0, . . . ,n−1}.

Se, para cada par de chavesk,` emU, o número de funçõesh emH tais queh(k) =h(`)é no máximo |H|/n, então Hé uma coleção universalde hashing (paraU en).

Teorema: Seja Huma coleção universal de hashing para U e n, seja S ⊆U tal que|S| ≤n e u∈U. Se h é escolhida aleatoriamente deH eX é o número de elementoss em S tais queh(s) =h(u),

entãoE[X]≤1 seu 6∈S e E[X]≤2 se u ∈S.

Esboço da prova: Seja Xs a variável binária que vale 1 seh(s) =h(u).

Note quePr{Xu =1}=1 ePr{Xs =1} ≤1/n ses 6=u.

LogoE[X] =P

s∈SE[Xs] =P

s∈S 1

n =|S|/n≤1 se u6∈S e

E[X] =1+P

s∈S\{u}1

n <1+|S|/n≤2 seu ∈S.

(54)

Hashing universal

U: conjunto universo (contém todas as possíveis chaves).

n: um número muito menor que|U|.

H: conjunto de funções de U em{0, . . . ,n−1}.

Se, para cada par de chavesk,` emU, o número de funçõesh emH tais queh(k) =h(`)é no máximo |H|/n, então Hé uma coleção universalde hashing (paraU en).

Teorema: Seja Huma coleção universal de hashing para U e n, seja S ⊆U tal que|S| ≤n e u∈U. Se h é escolhida aleatoriamente deH eX é o número de elementoss em S tais queh(s) =h(u),

entãoE[X]≤1 seu 6∈S e E[X]≤2 se u ∈S.

Esboço da prova: Seja Xs a variável binária que vale 1 seh(s) =h(u).

Note quePr{Xu =1}=1 ePr{Xs =1} ≤1/n ses 6=u.

LogoE[X] =P

s∈SE[Xs] =P

s∈S 1

n =|S|/n≤1 se u6∈S e E[X] =1+P

s∈S\{u} 1

n <1+|S|/n ≤2 seu ∈S.

(55)

Exemplo de coleção universal de hashing

Sejap um primo tal queU ⊆ {0, . . . ,p−1}.

ZZp: conjunto {0, . . . ,p−1}.

ZZp: conjunto {1, . . . ,p−1}.

Para todoaem ZZp e b emZZp, seja

ha,b(k) = ((ak+b)modp)modn, para todok em U.

A coleçãoH = {ha,b:a∈ZZp e b ∈ZZp}é universal. Esboço da prova no próximo slide.

(KT Sec 13.6para hashing)

(56)

Exemplo de coleção universal de hashing

Sejap um primo tal queU ⊆ {0, . . . ,p−1}.

ZZp: conjunto {0, . . . ,p−1}.

ZZp: conjunto {1, . . . ,p−1}.

Para todoaem ZZp eb emZZp, seja

ha,b(k) = ((ak+b)modp)modn, para todok em U.

A coleçãoH = {ha,b:a∈ZZp e b ∈ZZp}é universal. Esboço da prova no próximo slide.

(KT Sec 13.6para hashing)

(57)

Exemplo de coleção universal de hashing

Sejap um primo tal queU ⊆ {0, . . . ,p−1}.

ZZp: conjunto {0, . . . ,p−1}.

ZZp: conjunto {1, . . . ,p−1}.

Para todoaem ZZp eb emZZp, seja

ha,b(k) = ((ak+b)modp)modn, para todok em U.

A coleçãoH = {ha,b:a∈ZZp e b ∈ZZp}é universal.

Esboço da prova no próximo slide.

(KT Sec 13.6para hashing)

(58)

Exemplo de coleção universal de hashing

Sejap um primo tal queU ⊆ {0, . . . ,p−1}.

ZZp: conjunto {0, . . . ,p−1}.

ZZp: conjunto {1, . . . ,p−1}.

Para todoaem ZZp eb emZZp, seja

ha,b(k) = ((ak+b)modp)modn, para todok em U.

A coleçãoH = {ha,b:a∈ZZp e b ∈ZZp}é universal.

Esboço da prova no próximo slide.

(KT Sec 13.6para hashing)

(59)

Exemplo de coleção universal de hashing

Sejap um primo tal queU ⊆ {0, . . . ,p−1}.

Para todoaem ZZp eb emZZp, seja

ha,b(k) = ((ak+b)modp)modn, para todok em U.

A coleçãoH = {ha,b:a∈ZZp e b ∈ZZp}é universal.

Esboço da prova: Sejamk,`∈U tais que ak+b =a`+bmodp.

Entãoa(k−`) =0 modp, o que implica quea=0 ou k =`.

Logo, comoa6=0, sek 6=`, então r =ak+b 6=a`+b =s. Ademais, para cada par(a,b) está associado um par distinto (r,s), comr 6=s, já que a= (r−s)(k−`)−1modp e b=r−akmodp. Para cadar, temos p−1 valores possíveis para s emZZp.

Destes, não mais quep/n são iguais armodn.

Ou seja,h(k) =h(`) para no máximo|H|/n das funçõesh deH.

(60)

Exemplo de coleção universal de hashing

Sejap um primo tal queU ⊆ {0, . . . ,p−1}.

Para todoaem ZZp eb emZZp, seja

ha,b(k) = ((ak+b)modp)modn, para todok em U.

A coleçãoH = {ha,b:a∈ZZp e b ∈ZZp}é universal.

Esboço da prova: Sejamk,`∈U tais que ak+b =a`+bmodp.

Entãoa(k−`) =0 modp, o que implica quea=0 ou k =`.

Logo, comoa6=0, sek 6=`, então r =ak+b 6=a`+b=s.

Ademais, para cada par(a,b) está associado um par distinto (r,s), comr 6=s, já que a= (r−s)(k−`)−1modp e b=r−akmodp. Para cadar, temos p−1 valores possíveis para s emZZp.

Destes, não mais quep/n são iguais armodn.

Ou seja,h(k) =h(`) para no máximo|H|/n das funçõesh deH.

(61)

Exemplo de coleção universal de hashing

Sejap um primo tal queU ⊆ {0, . . . ,p−1}.

Para todoaem ZZp eb emZZp, seja

ha,b(k) = ((ak+b)modp)modn, para todok em U.

A coleçãoH = {ha,b:a∈ZZp e b ∈ZZp}é universal.

Esboço da prova: Sejamk,`∈U tais que ak+b =a`+bmodp.

Entãoa(k−`) =0 modp, o que implica quea=0 ou k =`.

Logo, comoa6=0, sek 6=`, então r =ak+b 6=a`+b=s.

Ademais, para cada par(a,b) está associado um par distinto (r,s), comr 6=s, já que a= (r−s)(k−`)−1modp eb =r−akmodp.

Para cadar, temos p−1 valores possíveis para s emZZp. Destes, não mais quep/n são iguais armodn.

Ou seja,h(k) =h(`) para no máximo|H|/n das funçõesh deH.

(62)

Exemplo de coleção universal de hashing

Sejap um primo tal queU ⊆ {0, . . . ,p−1}.

Para todoaem ZZp eb emZZp, seja

ha,b(k) = ((ak+b)modp)modn, para todok em U.

A coleçãoH = {ha,b:a∈ZZp e b ∈ZZp}é universal.

Esboço da prova: Sejamk,`∈U tais que ak+b =a`+bmodp.

Entãoa(k−`) =0 modp, o que implica quea=0 ou k =`.

Logo, comoa6=0, sek 6=`, então r =ak+b 6=a`+b=s.

Ademais, para cada par(a,b) está associado um par distinto (r,s), comr 6=s, já que a= (r−s)(k−`)−1modp eb =r−akmodp.

Para cadar, temos p−1 valores possíveis para s emZZp. Destes, não mais quep/n são iguais armodn.

Ou seja,h(k) =h(`) para no máximo|H|/n das funçõesh deH.

Referências

Documentos relacionados

A campanha PARTILHANDO O PÃO, da Junta Diaconal da Primeira Igreja Presbiteriana de Taguatinga (PIPT), tem como objetivo arrecadar ofertas e alimentos para que

Apesar da baixa toxicidade aguda para minhocas, a contaminação do solo por fungicidas como o oxicloreto de cobre pode resultar em considerável impacto ao ambiente em

Caracterizando processos, em que são atividades atingidas com uma determinada sequência da produção de bens ou serviços (HAMMER e CHAMPY, 1994). Em uma

A prova prática consistirá no diagnóstico de 10 (dez) lâminas, tendo o candidato 1 (um) minuto para a identificação de cada lâmina, a ser realizado no laboratório de aula prática

“Finda a Segunda Guerra Mundial (1939-45), o mundo se dividiu politicamente em torno dos dois grandes vencedores: Estados Unidos, de um lado, representando a força do capitalismo;

Mas não é apenas para a construção de conhecimento em sala de aula e estímulo de mercado de tecnologia que a OBR atua: atenta às constantes mudanças mundiais, a

A Quadrilha junina, desde seus modelos mais tradicionais, sempre apresentou, além dos dançadores comuns (ou seja, os casais de matutos 6 que integram a festa de casamento),

Segue o link de acesso para visualização do retorno da Escuta dos Estudandes da 1ª série do Ensino Médio realizada até o dia 29 de abril!. Lembrando a importância de realizarmos