12 Vinicius

of 40 /40
Algoritmos Randomizados: Introdução Celina Figueiredo Guilherme Fonseca Manoel Lemos Vinícius Sá 26º Colóquio Brasileiro de Matemática IMPA – Rio de Janeiro – Brasil 2007

Embed Size (px)

Transcript of 12 Vinicius

Algoritmos Randomizados: IntroduoCelina Figueiredo Guilherme Fonseca Manoel Lemos Vincius S

26 Colquio Brasileiro de Matemtica IMPA Rio de Janeiro Brasil 2007

Resumo

Definies Monte Carlo Variveis Aleatrias Las Vegas Paradigmas combinatrios Mtodo probabilstico

Definies

Algoritmo Experimento aleatrio (ou randmico) Gerador de nmeros aleatrios Algoritmos randomizados

Algoritmos Randomizados

Aplicaes

Vantagens

criptografia programao distribuda teoria dos grafos geometria computacional etc.

mais rpidos mais simples ambos

Preo

anlise trabalhosa incerteza qualidade da resposta tempo de execuo

Monte Carlo

Las Vegas

Fornecem a resposta correta com probabilidade (alta) conhecida Tempo de execuo determinstico

A resposta dada est sempre correta Tempo de execuo uma varivel aleatria

Algoritmos de Monte Carlo(p / problemas de deciso)

Erro bilateral OU

Erro unilateral

baseados-no-SIM baseados-no-NO

Algoritmos de Monte CarloCN: a resposta correta NO CS: a resposta correta SIM AN: o algoritmo responde NO AS: o algoritmo responde SIM baseado-no-NO: Pr { CN | AN } = 1

Pr { AS | CS } = 1

Algoritmos de Monte Carlo(baseados-no-NO) Pr {erro} = Pr { CN , AS U CS , AN }

= Pr { CN , AS } + Pr { CS , AN } = Pr { CN } . Pr { AS | CN } + Pr { CS } . Pr { AN | CS }

Algoritmos de Monte Carlo(baseados-no-NO) Pr {erro} = Pr { CN , AS U CS , AN }

= Pr { CN , AS } + Pr { CS , AN } = Pr { CN } . Pr { AS | CN } + Pr { CS } . Pr { AN | CS } = Pr { CN } . Pr { AS | CN } + Pr { CS } . 0

Algoritmos de Monte Carlo(baseados-no-NO) Pr {erro} = Pr { CN , AS U CS , AN }

= Pr { CN , AS } + Pr { CS , AN } = Pr { CN } . Pr { AS | CN } + Pr { CS } . Pr { AN | CS } = Pr { CN } . Pr { AS | CN } + Pr { CS } . 0 = Pr { CN } . + 0

Algoritmos de Monte Carlo(baseados-no-NO) Pr {erro} = Pr { CN , AS U CS , AN }

= Pr { CN , AS } + Pr { CS , AN } = Pr { CN } . Pr { AS | CN } + Pr { CS } . Pr { AN | CS } = Pr { CN } . Pr { AS | CN } + Pr { CS } . 0 = Pr { CN } . + 0

Algoritmos de Monte Carlo(baseados-no-NO) Pr {erro} = Pr { CN , AS U CS , AN }

= Pr { CN , AS } + Pr { CS , AN } = Pr { CN } . Pr { AS | CN } + Pr { CS } . Pr { AN | CS } = Pr { CN } . Pr { AS | CN } + Pr { CS } . 0 = Pr { CN } . + 0 Pr {acerto} p = 1 -

Algoritmos de Monte Carlo(baseados-no-NO)

Quando respondem NO, esto sempre corretos (exibem certificado)

Algoritmos de Monte Carlo(baseados-no-NO) Exemplo: IDENTIDADE DE POLINMIOS

F(x) = (x a1) (x a2) ... (x ad) G(x) = bdx + bd-1 xDeterminstico 1) Transforme F(x) 2) Compare os coeficientes de F(x) e G(x) 3) Se houver diferena, retorne NO 4) Seno, retorne SIMd d-1

+ ... + b1x + b0

Monte Carlo 1) Sorteie um inteiro w, aleatoriamente, de 1 a 100d 2) Avalie F(w) e G(w) 3) Se F(w) G(w), retorne NO 4) Seno, retorne SIM

Algoritmos de Monte Carlo(baseados-no-NO) Exemplo: IDENTIDADE DE POLINMIOS

F(x) = (x a1) (x a2) ... (x ad) G(x) = bdx + bd-1 xDeterminsticod d-1

+ ... + b1x + b0

O(d )

2

Monte Carlo 1) Sorteie um inteiro w, aleatoriamente, de 1 a 100d 2) Avalie F(w) e G(w) 3) Se F(w) G(w), retorne NO 4) Seno, retorne SIM

1) Transforme F(x) 2) Compare os coeficientes de F(x) e G(x) 3) Se houver diferena, retorne NO 4) Seno, retorne SIM

Algoritmos de Monte Carlo(baseados-no-NO) Exemplo: IDENTIDADE DE POLINMIOS

F(x) = (x a1) (x a2) ... (x ad) G(x) = bdx + bd-1 xDeterminsticod d-1

+ ... + b1x + b0

O(d )

2

Monte Carlo

O(d )

1) Transforme F(x) 2) Compare os coeficientes de F(x) e G(x) 3) Se houver diferena, retorne NO 4) Seno, retorne SIM

1) Sorteie um inteiro w, aleatoriamente, de 1 a 100d 2) Avalie F(w) e G(w) 3) Se F(w) G(w), retorne NO 4) Seno, retorne SIM

Algoritmos de Monte Carlo(baseados-no-NO) Exemplo: IDENTIDADE DE POLINMIOS

F(x) = (x a1) (x a2) ... (x ad) G(x) = bdx + bd-1 xPr { AN | CS } = 0 Pr { AS | CN } = = ? d / 100d = 1/100 Pr {acerto} 99%d d-1

+ ... + b1x + b0

Monte Carlo

O(d )

1) Sorteie um inteiro w, aleatoriamente, de 1 a 100d 2) Avalie F(w) e G(w) 3) Se F(w) G(w), retorne NO 4) Seno, retorne SIM

Algoritmos de Monte Carlo(baseados-no-NO) Refinando a probabilidade de acerto...

Em uma execuo do algoritmo, Pr {erro} Pr { AS | CN } =

Em t execues independentes, Pr {erro} = Pr {erro1,erro2, ... ,errot} t

Variveis Aleatrias

Funo que mapeia um experimento aleatrio em um valor numrico qualquer X:R

A = soma dos valores obtidos no lanamento de dois dados

B = nmero de sorteios at que se complete determinada coluna de uma cartela de bingo

1 , se cara C= 0 , se coroa

Variveis Aleatrias

Esperana (ou valor esperado) mdia dos resultados possveis ponderada pelas probabilidades de ocorrncia E [A] = 2 . Pr {A = 2} + + 3 . Pr {A = 3} + + ... +

A = soma dos valores obtidos no lanamento de dois dados

+ 12 . Pr {A = 12} = = 7

Variveis Aleatrias

Esperana: E [X] = ( j . Pr {X = j} ) Varincia: Var [X] = E [X 2] (E [X])2 Desvio padro Momentos da V. A.

V. A .

Variveis Aleatrias famosasPr { sucesso } = p

Bernoulli X=1 , se sucesso 0 , se fracasso E [X] = p Var [X] = p (1-p)

Binomial X = nmero de sucessos em nexperimentos independentes E [X] = n p Var [X] = n p (1-p)

Geomtrica X = nmero de experimentos ato primeiro sucesso E [X] = 1 / p Var [X] = (1-p) / p2

Desigualdades famosas

Desigualdade de Markov E [X] Pr { X a } a (a > 0)

Desigualdade de Chebyshev Pr { |X E [ X ]| a } Var [ X ] a2

(a > 0)

Algoritmos de Las Vegas

Resposta sempre correta Tempo computacional uma V. A.

Algoritmos de Las VegasExemplo: ORDENAO8 5 3 9 11 1 0 18 50 4 7

Algoritmo: Quick Sort8

5

3

0

1

4

7

9

11

18

50

5

9

...

...

...

...

Algoritmos de Las VegasExemplo: ORDENAO Quick Sort piv escolhido deterministicamente pior caso: O(n2) Quick Sort Randomizado

piv escolhido aleatoriamente tempo esperado(para qualquer entrada!!):

?

Algoritmos de Las VegasQuick Sort RandomizadoEntrada: a1, a2 , a3 , ... , an Sada: y1, y2 , y3 , ... , ynX = nmero de comparaes realizadas = ? 1, se feita a comparao entre yj e yk 0, caso contrrioLinearidade da Esperana: E [f (X)] = f (E [X])

Bernoulli

Xj,k =

X = X1,2 + X1,3 + ... + Xn -1,n E [X] = E [X1,2 + X1,3 + ... + Xn -1,n ] = = E [X1,2 ] + E [X1,3 ] + ... + E [Xn -1,n ]

Algoritmos de Las VegasQuick Sort Randomizado Entrada: Sada:8 0 5 1 3 3 9 4 11 5 1 7 0 8 18 9 50 4 7 50

11 18

yj

yk

Pr { sucesso } = Pr {Xj,k= 1} = 2 / (k - j + 1) E [X] = 1 j < k n E [Xj,k] = = 1 j < k n 2 / (k - j + 1) = = O (n log n)

Algoritmos de Las VegasTempo esperado de um algoritmo de Las Vegas

X

Tempo mdio de um algoritmo determinstico(dado um modelo probabilstico da entrada)

Entrada:

Entrada:

?Algoritmo de Las VegasG

M

G H W D

Algoritmo determinstico

Monte Carlo X Las Vegas

Monte Carlo, a partir de Las Vegas

Las Vegas, a partir de 2 Monte Carlos

1) enquanto tempo < t 2) se Las Vegas encontra SIM, 3) responda SIM 4) se Las Vegas encontra NO, 5) responda NO 6) reponda NO (arbitrariamente)

1) repita 2) se MC-SIM encontra SIM, 3) responda SIM 4) se MC-NO encontra NO, 5) responda NO

Monte Carlo baseado-no-SIM X = tempo do Las Vegas Pr {erro} = Pr {CS , AN} = Pr {CS} . Pr { AN | CS } Pr { X t }Markov! Chebyshev!

nmero T de iteraesV. A. geomtrica!

Pr {sucesso} = p = 1 - SIM . NO E [T] = 1 / p

Modelo de bolas e latas

1

2

3

4

...

n-1

n

O colecionador de couponsExemplo: IDENTIFICAO DE ROTEADORES

...Origem n roteadores

Destino

O Mtodo Probabilstico1) Mtodo da esperana

Minha idade X.

O Mtodo Probabilstico1) Mtodo da esperanaExperimento aleatrio

Se E [ X ] = , ento existe elemento para o qual X e existe elemento para o qual X

O Mtodo Probabilstico1) Mtodo da esperana Exemplo: CORTES GRANDES EM GRAFOS

m arestas

O Mtodo Probabilstico1) Mtodo da esperana Exemplo: CORTES GRANDES EM GRAFOS

B A

m arestas

Corte de tamanho 4

O Mtodo Probabilstico1) Mtodo da esperana Exemplo: CORTES GRANDES EM GRAFOSAlgoritmo randomizado

X = tamanho do corte retornado X j = 1, aresta j pertence ao corte 0, caso contrrio (Bernoulli)

m arestas

Pr {sucesso} = p = ? X = j X j E[X] = j E [X j ] = m . p = m / 2

Para cada vrtice v... coloque v em A com probabilidade coloque v em B com probabilidade Retorne o corte (A,B)

O Mtodo Probabilstico2) Mtodo da probabilidade positiva

O Mtodo Probabilstico2) Mtodo da probabilidade positivaEspao probabilstico

Se Pr { } > 0 ento pertence a

Experimento aleatrio

O Mtodo Probabilstico2) Mtodo da probabilidade positiva

Algoritmo ruim (no serve para a prova)

Algoritmo adequado (serve para a prova)

Algoritmos Randomizados: IntroduoCelina Figueiredo Guilherme Fonseca Manoel Lemos Vincius S

26 Colquio Brasileiro de Matemtica IMPA Rio de Janeiro Brasil 2007