Algoritmos Randomizados

44
Introduc ¸˜ ao Fam´ ılias de Algoritmos Randomizados aquina de Turing Probabil´ ıstica Classes de Complexidade Probabil´ ısticas Un Paradigma Com Algoritmos Randomizados Juan Grados V´ asquez GA-025-Ci ˆ encia da Computac ¸˜ ao: Fundamentos Laborat ´ orio Nacional de Computac ¸˜ ao Cient´ ıfica. 17 de dezembro de 2013 Laborat ´ orio Nacional de Computac ¸˜ ao Cient´ ıfica. Laborat ´ orio Nacional de Computac ¸˜ ao Cient´ ıfica

description

Algoritmos Randomizados

Transcript of Algoritmos Randomizados

Page 1: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Algoritmos Randomizados

Juan Grados VasquezGA-025-Ciencia da Computacao: Fundamentos

Laboratorio Nacional de Computacao Cientıfica.

17 de dezembro de 2013

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 2: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 3: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 4: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 5: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 6: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 7: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 8: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Experimento Aleatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 9: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Historia

Figura 1: IncasFigura 2: Azande Figura 3: Naskapi

[Shallit, 2009]

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 10: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Historia

1777 Metodo Agulha de Buffon para a estimacao do π

1917 Calculo√

a mod p. [H. C. Pocklington]1976 Test de Primalidade.[Rabin]

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 11: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Historia

1777 Metodo Agulha de Buffon para a estimacao do π

1917 Calculo√

a mod p. [H. C. Pocklington]

1976 Test de Primalidade.[Rabin]

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 12: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Historia

1777 Metodo Agulha de Buffon para a estimacao do π

1917 Calculo√

a mod p. [H. C. Pocklington]1976 Test de Primalidade.[Rabin]

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 13: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Algoritmos Randomizados

Algoritmo?

Randomizado?

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 14: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Algoritmos Randomizados

Algoritmo?Randomizado?

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 15: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Algoritmos Randomizados

Algoritmo?Randomizado?

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 16: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Geradores Pseudo-Aleatorio e Aleatorios

Geradores Pseudo-Aleatorio: Blum Blum Shub, Fortuna, y elMersenne twister.Geradores Aleatorio: Quantum True Random Number Generatorhttp://qubit.lncc.br/trng/

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 17: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Aplicacoes

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 18: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Porque Utilizar?

Simples

Determinıstico:1 Transforme F (x).2 Compare os coeficientes

de F (x) e G(x)3 Se houver diferenca,

retorne NAO4 Se nao, retorne SIM

Randomico:1 Sorteie um inteiro w,

aleatoriamente, de 1 a100d

2 Avalie F (w) e G(w)

3 Se F (w) 6= G(w), retorneNAO

4 Se nao, retorne SIM

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 19: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Porque Utilizar?

Simples

Determinıstico:1 Transforme F (x).2 Compare os coeficientes

de F (x) e G(x)3 Se houver diferenca,

retorne NAO4 Se nao, retorne SIM

Randomico:1 Sorteie um inteiro w,

aleatoriamente, de 1 a100d

2 Avalie F (w) e G(w)

3 Se F (w) 6= G(w), retorneNAO

4 Se nao, retorne SIM

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 20: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Porque Utilizarlos?

Eficientes:

exemplo: Test de Primalidade:AKS O(log6 n(log log n))

Rabin O(log2 n(log log n))Incerteza

Resultado do AlgoritmoTempo do Algoritmo

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 21: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Porque Utilizarlos?

Eficientes: exemplo: Test de Primalidade:AKS O(log6 n(log log n))

Rabin O(log2 n(log log n))

IncertezaResultado do AlgoritmoTempo do Algoritmo

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 22: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Porque Utilizarlos?

Eficientes: exemplo: Test de Primalidade:AKS O(log6 n(log log n))

Rabin O(log2 n(log log n))Incerteza

Resultado do AlgoritmoTempo do Algoritmo

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 23: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 24: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Algoritmos de Monte Carlo

Incerteza no resultado do Algoritmo.Problemas de decisao

Erro bilateral.Erro unilateral.

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 25: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Erro unilateral

Erro unilateral baseado no SIM.Erro unilateral baseado no NAO.

Exemplo:

Qual e a probabilidade do algoritmo errar a resposta quando ospolinomios nao sao identicos?

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 26: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Mas probabilidades

AS o algoritmo responde SIMAN o algoritmo responde NAOCS a resposta correta para a entrada e SIMCN a resposta correta para a entrada e NAO

Probabilidades de Acerto? Pr [AS|CS], Pr [AN |CN ]

Probabilidades de Erro? Pr [AN |CS], Pr [AS|CN ]

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 27: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Mas probabilidades

AS o algoritmo responde SIMAN o algoritmo responde NAOCS a resposta correta para a entrada e SIMCN a resposta correta para a entrada e NAO

Probabilidades de Acerto? Pr [AS|CS], Pr [AN |CN ]

Probabilidades de Erro? Pr [AN |CS], Pr [AS|CN ]

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 28: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Reduzindo a Probabilidade de Errar

Seja A um algoritmo de Monte Carlo de erro-unilateral-baseadono nao.Probabilidade de errar: ε

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 29: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Algoritmos de las Vegas

Incerteza no tempo do algoritmo

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 30: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Algoritmo de Monte Carlo usando las Vegas

1 repetir N vezesSe o algoritmo AV de uma resposta SIM, retorna SIM.

2 retornar NAO

Algoritmo de Error Unilateral Baseado no SIM.

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 31: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Algoritmo de Monte Carlo usando las Vegas

1 repetir N vezesSe o algoritmo AV de uma resposta SIM, retorna SIM.

2 retornar NAO

Algoritmo de Error Unilateral Baseado no SIM.

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 32: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 33: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

PTM

Uma maquina de Turing probabilıstica M e um tipo de maquina deTuring nao determinista onde cada passo no determinista e decididode forma aleatoria. [Sipser, pag. 336]

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 34: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

PTM: Computation Tree

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 35: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Consequencias

A NDTM e uma PTM sim probabilidades nas transicoes.A DTM pode ser vista como PTM com nao mais de uma soalternativa para cada transicao.Para uma mesma entrada pode ter tempo de execucao diferenteou pode nao parar.Pode aceitar a entrada em uma determinada execucao, masrejeitar outra entrada.

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 36: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 37: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Classes de Complexidade Probabilısticas

BQP: Relacao entre MTQ e MT. 1

1[Deutsch (1985)]Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 38: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Classes de Complexidade Probabilısticas

1. P=ZPP?, RP=co-RP ?, RP=NP?, co-NP?,BPP ⊆ NP?, NP⊆BPP?, RP∪co-RP=BPP?[Talbot, pag. 83]

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 39: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Sumario

1 Introducao

2 Famılias de Algoritmos Randomizados

3 Maquina de Turing Probabilıstica

4 Classes de Complexidade Probabilısticas

5 Un Paradigma Combinatorio

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 40: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

O modelo de bolas e latas

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 41: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

O modelo de bolas e latas

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 42: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Paradoxo do Aniversario

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 43: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Fim

Fim

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica

Page 44: Algoritmos Randomizados

Introducao Famılias de Algoritmos Randomizados Maquina de Turing Probabilıstica Classes de Complexidade Probabilısticas Un Paradigma Combinatorio Bibliografıa

Laboratorio Nacional de Computacao Cientıfica.

Laboratorio Nacional de Computacao Cientıfica