• Nenhum resultado encontrado

Algoritmos Randomizados: Introdução

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmos Randomizados: Introdução"

Copied!
40
0
0

Texto

(1)

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

(2)

Resumo

● Definições ● Monte Carlo ● Variáveis Aleatórias ● Las Vegas ● Paradigmas combinatórios ● Método probabilístico

(3)

Definições

● Algoritmo

● Experimento aleatório (ou randômico) ● Gerador de números aleatórios

(4)

Algoritmos Randomizados

● Aplicações

✔ criptografia

✔ programação distribuída ✔ teoria dos grafos

✔ geometria computacional ✔ etc. ● Vantagens ✔ mais rápidos ✔ mais simples ✔ ambos ➔ qualidade da resposta ➔ tempo de execução ● Preço ✔ análise trabalhosa ✔ incerteza

(5)

Monte Carlo

● Fornecem a resposta correta com probabilidade (alta) conhecida ● Tempo de execução determinístico

Las Vegas

● A resposta dada está

sempre correta

● Tempo de execução é

(6)

(p / problemas de decisão) ● Erro bilateral OU ● Erro unilateral – baseados-no-SIM – baseados-no-NÃO

(7)

CN: a resposta correta é NÃO CS: a resposta correta é SIM AN: o algoritmo responde NÃO AS: o algoritmo responde SIM

baseado-no-NÃO: Pr { CN | AN } = 1

Pr { AS | CS } = 1

(8)

Algoritmos de Monte Carlo

(baseados-no-NÃO) Pr {“erro”} = Pr { CN , AS U CS , AN } = Pr { CN , AS } + Pr { CS , AN } = Pr { CN } . Pr { AS | CN } + Pr { CS } . Pr { AN | CS }

(9)

Algoritmos de Monte Carlo

(baseados-no-NÃO) 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

(10)

Algoritmos de Monte Carlo

(baseados-no-NÃO) 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

(11)

Algoritmos de Monte Carlo

(baseados-no-NÃO) 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 ≤ ε

(12)

Algoritmos de Monte Carlo

(baseados-no-NÃO) 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 - ε

(13)

Algoritmos de Monte Carlo

(baseados-no-NÃO)

● Quando respondem NÃO, estão sempre corretos

(14)

Algoritmos de Monte Carlo

(baseados-no-NÃO)

Exemplo: IDENTIDADE DE POLINÔMIOS

Determinístico 1) Transforme F(x) 2) Compare os coeficientes de F(x) e G(x) 3) Se houver diferença, retorne NÃO

4) Senão, retorne SIM

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 NÃO

4) Senão, retorne SIM

F(x) = (x – a

1

) (x – a

2

) ... (x – a

d

)

G(x) = b

d

x

d

+ b

d-1

x

d-1

+ ... + b

(15)

Algoritmos de Monte Carlo

(baseados-no-NÃO)

Exemplo: IDENTIDADE DE POLINÔMIOS

Determinístico 1) Transforme F(x) 2) Compare os coeficientes de F(x) e G(x) 3) Se houver diferença, retorne NÃO

4) Senão, retorne SIM

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 NÃO

4) Senão, retorne SIM

F(x) = (x – a

1

) (x – a

2

) ... (x – a

d

)

G(x) = b

d

x

d

+ b

d-1

x

d-1

+ ... + b

1

x + b

0

O(d

2

)

(16)

Algoritmos de Monte Carlo

(baseados-no-NÃO)

Exemplo: IDENTIDADE DE POLINÔMIOS

Determinístico 1) Transforme F(x) 2) Compare os coeficientes de F(x) e G(x) 3) Se houver diferença, retorne NÃO

4) Senão, retorne SIM

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 NÃO

4) Senão, retorne SIM

F(x) = (x – a

1

) (x – a

2

) ... (x – a

d

)

G(x) = b

d

x

d

+ b

d-1

x

d-1

+ ... + b

1

x + b

0

O(d

2

)

O(d

)

(17)

Algoritmos de Monte Carlo

(baseados-no-NÃO)

Exemplo: IDENTIDADE DE POLINÔMIOS

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 NÃO

4) Senão, retorne SIM

F(x) = (x – a

1

) (x – a

2

) ... (x – a

d

)

G(x) = b

d

x

d

+ b

d-1

x

d-1

+ ... + b

1

x + b

0 Pr { AN | CS } = 0 Pr { AS | CN } = ε = ? ε ≤ d / 100d = 1/100 Pr {“acerto”} ≥ 99%

O(d

)

(18)

Refinando a probabilidade de acerto...

● Em uma execução do algoritmo,

Pr {“erro”} ≤ Pr { AS | CN } = ε

Em t execuções independentes,

Pr {“erro”} = Pr {“erro1”,“erro2”, ... ,“errot”} ≤ εt

Algoritmos de Monte Carlo

(19)

Função que mapeia um experimento

aleatório em um valor numérico qualquer

X : Ω → R

Variáveis Aleatórias

B = número de sorteios

até que se complete determinada coluna de uma cartela de bingo

A = soma dos valores

obtidos no lançamento de dois dados

1 , se cara

C =

(20)

Esperança (ou valor esperado)

média dos resultados possíveis ponderada

pelas probabilidades de ocorrência

E [A] = 2 . Pr {“A = 2”} +

+ 3 . Pr {“A = 3”} +

+ ... +

+ 12 . Pr {“A = 12”} =

= 7

Variáveis Aleatórias

A = soma dos valores

obtidos no lançamento de dois dados

(21)

Esperança: E [X] = Σ ( j . Pr {“X = j”} )

Variância: Var [X] = E [X

2

] – (E [X])

2

Desvio padrão

Momentos da V. A.

Variáveis Aleatórias

V. A.

(22)

Bernoulli

1 , se “sucesso” E [X] = p

0 , se “fracasso” Var [X] = p (1-p)

Binomial

X =

“número de sucessos em n E [X] = n p

experimentos independentes” Var [X] = n p (1-p)

Geométrica

X =

“número de experimentos até E [X] = 1 / p

o primeiro sucesso” Var [X] = (1-p) / p2

Variáveis Aleatórias famosas

X =

(23)

Desigualdade de Markov

Pr { X ≥ a } ≤

(a > 0)

Desigualdade de Chebyshev

Pr { |X – E

[

X

]| ≥ a } ≤

(a > 0)

Desigualdades famosas

E

[

X

]

a

Var

[

X

]

a

2

(24)

Algoritmos de Las Vegas

Resposta

sempre correta

Tempo

computacional

é uma V. A.

(25)

Exemplo: ORDENAÇÃO

Algoritmo: Quick Sort

Algoritmos de Las Vegas

8 5 3 9 11 1 0 18 50 4 7 8 5 3 0 1 4 7 9 11 18 50 5 9 ... ... ... ...

(26)

Quick Sort Quick Sort

Randomizado

pivô escolhido

deterministicamente

pior caso: O(n

2

)

Algoritmos de Las Vegas

pivô escolhido

aleatoriamente

tempo esperado

(para qualquer entrada!!):

?

(27)

Algoritmos de Las Vegas

Quick Sort Randomizado

Entrada: a1, a2 , a3 , ... , an Saída: y1, y2 , y3 , ... , yn

X = “número de comparações realizadas” = ?

1, se é feita a comparação entre yj e yk 0, caso contrário 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 ]

X

j,k

=

Bernoulli Linearidade da Esperança: E [f (X)] = f (E [X])

(28)

Algoritmos de Las Vegas

Quick Sort Randomizado

Entrada:

Saída:

8 5 3 9 11 1 0 18 50 4 7 0 1 3 4 5 7 8 9 11 18 50 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)

(29)

Algoritmos de Las Vegas

Tempo esperado

de um algoritmo

de Las Vegas

Tempo médio de

um algoritmo

determinístico

(dado um modelo probabilístico da entrada)

X

Algoritmo de Las Vegas

?

Entrada: M G H W D Algoritmo determinístico G Entrada:

(30)

Monte Carlo X Las Vegas

● Monte Carlo,

a partir de Las Vegas

1) enquanto tempo < t

2) se Las Vegas encontra SIM, 3) responda SIM

4) se Las Vegas encontra NÃO, 5) responda NÃO

6) reponda NÃO (arbitrariamente)

➔ Monte Carlo baseado-no-SIM

X = “tempo do Las Vegas”

Pr {“erro”} = Pr {C S , AN} = Pr {CS} . Pr { AN | CS } ≤ Pr { “X ≥ t ” } ● Las Vegas,

a partir de 2 Monte Carlos

1) repita

2) se MC-SIM encontra SIM, 3) responda SIM

4) se MC-NÃO encontra NÃO, 5) responda NÃO ➔ número T de iterações Pr {“sucesso”} = p = 1 - ε SIM . εNÃOE [T] = 1 / p V. A. geométrica! Markov! Chebyshev!

(31)

Modelo de bolas e latas

1 2 3 4

...

n-1 n

O colecionador de coupons

Exemplo: IDENTIFICAÇÃO DE ROTEADORES

Origem

Destino

...

(32)

O Método Probabilístico

1) Método da esperança

(33)

O Método Probabilístico

1) Método da esperança

Se E [

X

] = μ, então

existe elemento para o qual X ≤ μ

e existe elemento para o qual X ≥ μ

(34)

O Método Probabilístico

1) Método da esperança

Exemplo: CORTES GRANDES EM GRAFOS

(35)

O Método Probabilístico

1) Método da esperança

Exemplo: CORTES GRANDES EM GRAFOS

Corte de tamanho 4

A

B

(36)

O Método Probabilístico

1) Método da esperança

Exemplo: CORTES GRANDES EM GRAFOS

m arestas

Algoritmo randomizado

Para cada vértice v...

coloque v em A com probabilidade ½ coloque v em B com probabilidade ½ Retorne o corte (A,B)

X = tamanho do corte retornado X j =

(Bernoulli)

Pr {“sucesso”} = p = ?

X = Σj X j

E[X] = Σj E [X j ] = m . p = m / 2

1, aresta j pertence ao corte 0, caso contrário

(37)

O Método Probabilístico

(38)

O Método Probabilístico

2) Método da probabilidade positiva

Espaço probabilístico Experimento aleatório

Se

Pr {“ ”} > 0

então

pertence a Ω

Ω

(39)

O Método Probabilístico

2) Método da probabilidade positiva

Algoritmo ruim Algoritmo adequado (não serve para a prova) (serve para a prova)

(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

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

* Movement based refers to any Creative work, from any artistic area, using the movement as basis of work, research or critical approach. Movement understood as the movement of

Fácil acesso às rodovias Próximo a parques Fácil acesso às vias principais Próximo a supermercados Próximo a shopping centers Elevadores inteligentes Torre única Bacia dual

Para obter mais informações sobre a imagem do Dell OS Recovery, consulte Como fazer download e usar a imagem do Dell OS Recovery no Microsoft Windows, em site Suporte Dell..

A descoberta do algoritmo AKS tem apenas relevância matemática visto que, apesar de ser um algoritmo de tempo polinomial e determinístico (classe P), na prática, leva muito mais

Antes de la especifi cación verifi cada por la ley humana, (y de la ley divina positiva: la revelación de la Sagrada Escritura), la ley eterna y la ley natural rigen todo

Para apoyar y aumentar las ventas en los meses finales del año, el equipo de Lubricantes de Galp Energia España ha puesto en marcha a principios de Septiembre una nueva

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por