12 Vinicius
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