Algoritmos Randomizados
Eduardo Laber
Dois tipos de algoritmos
randomizados


Algoritmos Las Vegas
–
Sempre produzem a resposta correta
–
Tempo de execução é uma variável aleatória
Exemplo: RandQs
–
Sempre produz seqüência ordenada
–
Tempo de término varia de execução para
execução em uma dada instância
Dois tipos de algoritmos
randomizados


Algoritmos Monte-Carlo
–
Podem produzir respostas incorretas
–
A probabilidade de erro pode ser cotada
–
Executando o algoritmo diversas vezes podemos
tornar a probabilidade de erro tão pequena quanto
se queira
Exemplo: Min-Cut
Problemas de decisão

Problema de Primalidade
–
–
Entrada: n inteiro
Saída:



sim, se n é primo
não, se n é composto
Problema de Coloração
–
–
Entrada: Grafo G, inteiro k
Saída:


sim, se existe k-coloração para G
não, caso contrário
Algoritmos Monte-Carlo

One-sided error
–

Probabilidade nula de erro quando responde sim
(não). Probabilidade não-nula quando responde
não (sim).
Two-sided error
–
Probabilidade não-nula de erro quando responde
sim e quando responde não.
Game Tree Evaluation

Definição:
Uma árvore de jogo Td,k é uma árvore em que todo nó
interno tem d filhos e toda folha está a uma
distância 2k da raiz. Cada nó interno está associado
a um operador OR ou AND. Além disso, os filhos de
um nó associado a um operador OR (AND) estão
associados a um operador AND (OR).
Game Tree Evaluation
Resultado = 1
AND
T2,1
OR
0
Resultado = 0
OR
OR
1
0
1
AND
1
T2,1
AND
0
0
0
A cada folha está associado um valor binário
Game Tree Evaluation

Objetivo:
–
Descobrir o resultado da árvore processando o número
mínimo de folhas possíveis.

Algoritmo determinístico:
–
Para todo algoritmo determinístico A, existe uma instância IA
em que todas as folhas devem ser testadas. Note que a
instância depende do algoritmo
Game Tree Evaluation

Seja a seguinte árvore de jogo:
AND
OR
OR
S1
S2
S3
S4
Game Tree Evaluation
0, se S1 S2  é avaliada antesde S2 S1 
S1 S2   
1, caso contrário
0, se S3 S4  é avaliada antesde S4 S3 
S3 S4   
1, caso contrário
Algoritmo determinístico sempre precisa testar
todas as folhas no pior caso.
Terminologia

T: árvore de jogo

T0: árvore à esquerda de T

T1: árvore à direita de T

Op(T): operador associado a raiz de T
Algoritmo Rand-Eval (T)

Sorteie uma moeda ‘justa’ H  {0,1}

B = Rand-Eval (TH)

Caso:
–
B=1 e Op(T)=OR, retorne 1
–
B=1 e Op(T)=AND, retorne Rand-Eval(T1-H)
–
B=0 e Op(T)=OR, retorne Rand-Eval(T1-H)
–
B=0 e Op(T)=AND, retorne 0
Comentários





Se resultado do AND=1, então Rand-Eval precisa
avaliar ambos os filhos
Se resultado do AND=0, Rand-Eval avalia na média
não mais que 3/2 filhos
Se resultado do OR=0, Rand-Eval avalia os dois filhos
Se resultado do OR=1, Rand-Eval avalia na média não
mais que 3/2 filhos
OBS.: Se o AND é 1 os dois filhos OR assumem valor
1 (caso bom para o OR)
Análise

Hipótese de indução
–

Na média 3k folhas são avaliadas por Rand-Eval
Base: k=1
AND
OR
OR
S1
S2
S3
S4
Análise

Caso 1) Resultado=1
–
–
Os dois OR são iguais a 1
Para avaliar um 0R, necessitamos de 3/2 testes na
média
3 3
 3
2 2
Análise

Caso 2) Resultado=0
–
–
No pior caso somente um dos OR é 0
Com probabilidade ½ testa-se os dois OR e com
probabilidade ½ testa-se um OR
1
1 3
 11
 2     2   3
2
2 2
 4
Análise

Assuma que a hipótese de indução vale para
k. Provaremos para k+1.
AND
T2,k
OR
OR
Análise

Caso 1) Resultado=1 (AND=1)
3

cT2,k 1   2    cT2,k   3  3k  3k 1
2


Caso 2) Resultado=0 (AND=0) => pelo menos
um dos OR é falso.
1
1 3
 11
cT2,k 1    2  cT2,k     cT2,k   2  cT2,k    cT2,k   3k 1
2
2 2
 4
Análise

Sabendo que o total de folhas é n=4k, o
resultado garante que o algoritmo avalia na
média:
n


log 4 3
n
0.793
Melhor que qualquer algoritmo determinístico !
Esse algoritmo é um do tipo Las Vegas.
Teoria dos Jogos

Rodrigo e Pedro jogam o seguinte jogo com os
dedos:
Pedro
1 dedo
2 dedos
1 dedo
-10
10
2 dedos
20
-10
Rodrigo
Teoria dos Jogos

Se Pedro e Rodrigo escolhem o mesmo
número de dedos => Pedro ganha.

Se Pedro e Rodrigo escolhem números
diferentes => Rodrigo ganha.
Teoria dos Jogos

Jogo de Soma 0
–
A quantidade que um jogador ganha é igual a
quantidade que o adversário perde.

Zero Information Game
–
Um jogador não conhece a estratégia do
adversário.
Teoria dos Jogos

Jogos de soma 0 podem ser representados
por uma matriz de payoff.
Mik

Mik : quantidade que R ganha (C perde).
Teoria dos Jogos

Objetivo dos jogadores: Maximizar o lucro
considerando a pior possibilidade
–
Rodrigo escolhe a configuração i (linha i) que
maximiza Mink { Mik }
–
Pedro escolhe a coluna k que minimiza Maxi { Mik }
Teoria dos Jogos

Pedro
Exemplo
1 dedo
Rodrigo

2 dedos
1 dedo
-10
20
2 dedos
20
-10
3 dedos
60
80
Rodrigo escolhe linha 3 e Pedro escolhe
coluna 1
Teorema

Para toda matriz de Payoff:
max minM ik   min max M ik 
i

k
k
No exemplo,
max minM ik   60 e
i
k
min max M ik   80
k
i
i
Teorema - Prova

Sejam: i1, k1  arg max minM ik 
i
k
i2, k 2  arg min
maxM ik 
k
i
i1
k1
i2
k2
M i1,k1  M i1,k 2  M i 2,k 2
Jogos com solução
0
-1
1
2
0
1
Solução:
Linha=1
Coluna=1
-2

-1
0
Um jogo tem solução se
max minM ik   min max M ik 
i
k
k
i
Jogos com solução

Solução: (i*, k*)
Estratégia ótima
para Rodrigo

Estratégia ótima
para Pedro
Jogo com solução (Equilíbrio)
Na solução, nenhum movimento de Rodrigo nem de
Pedro pode melhorar suas situações.
Jogos sem solução

Em qualquer ponto um dos jogadores desejará
se movimentar (não existe ótimo local).
Estratégia de jogo aleatorizada

Estratégias determinísticas: forma de jogar é
única.

Estratégias aleatorizadas:
–
Rodrigo joga de acordo com uma distribuição de
probabilidade p=(p1, ..., pn)
–
Pedro joga de acordo com uma distribuição de
probabilidade q=(q1, ..., qm)
Estratégia de jogo randomizada

Temos que:
n
m
E payoff  pT Mq   pi M ik qk
i 1 k 1

Estratégia ótima de Rodrigo é uma distribuição
p que maximiza min pT Mq
q

Estratégia ótima de Pedro é uma distribuição q
que minimiza max pT Mq
p
Teorema de Von Neumman’s

Para qualquer jogo de soma 0
max min pT Mq  min max pT Mq
p


q
q
p
(p^, q^) é a solução do jogo
Obs.:
Se p é fixo, pTMq é uma função linear de q que é minimizada
fazendo com que o qi com menor coeficiente seja igual a 1 =>
se Pedro conhece a distribuição utilizada por Rodrigo, a
estratégia ótima de Pedro é determinística (e vice-versa).
Exemplo
 10 10 
M 

20

10


Se a estratégia de Rodrigo é pT = [1/2, 1/2] então
 q1 
 10 10   q1 
Epayoff  1 2 ,1 2 
    5,0  

 20  10 q2 
 q2 
Logo, o melhor que Pedro pode fazer é escolher
q1=0 e q2=1.
Teorema de Loomis

Para todo jogo de soma 0 especificado por M,
temos:
max min pT Mek  min max eiT Mq
p
k
q
i
onde ek é um vetor em que a k-ésima
coordenada é 1 e as demais são iguais a 0.
Técnica de Yao

Única técnica geral conhecida para provar
limites inferiores para algoritmos aleatorizados

Ideia:
–
Enxergar o projetista de algoritmos como o jogador
das colunas e o adversário, aquele que escolhe
entradas difíceis como o jogador das linhas
Matriz de payoff


Matriz M: medida de complexidade do algoritmo
–
Tempo de execução
–
Qualidade da solução obtida
–
Etc.
Objetivos
–
Projetista: minimizar o tempo de execução
–
Adversário: maximizar o tempo de execução
Matriz de payoff

Estratégia pura ótima para projetista:
–
Algoritmo determinístico ótimo: minimiza o pior caso
–
Algoritmo aleatorizado ótimo: minimiza
Jogador 2
Matriz de
payoff
maxiI E[C(i, Aq )]
Jogada 1 Jogada 2 Jogada 3
jogada 1
0
1
2
jogada 2
-1
0
1
jogada 3
-2
-1
0

Aq – Algoritmo aleatorizado que segue a distribuição q

Ip – Entrada que segue a distribuição p
Teorema de Loonis
max min E[C ( I p , a)]  min max E[C (i, Aq ]
p
aA
q

A - conjunto dos possíveis algoritmos colunas

I – conjunto das possíveis entradas

Significado:
iI
O tempo esperado do melhor algoritmo determinístico para a pior
distribuição possível de entradas é igual ao tempo esperado do
melhor algoritmo aleatorizado
Princípio de Yao

Para todas distribuições p sobre I:
min E[C ( I p , a)]  min max E[C (i, Aq ]

aA
Implicação:
–
q
iI
Para determinar um limite inferior para o tempo de execução de
um algoritmo randomizado, basta determinar um limite inferior
para o valor esperado do melhor algoritmo determinístico para
uma dada distribuição das entradas

Vantagem
–
A distribuição pode ser escolhida
Limite inferior para árvore de jogos

Arvore T2,k é equivalente a uma árvore de NOR’s
–
–
Nor(a,b) = 1 , se a = 0 e b = 0
Nor(a,b) = 0 , caso contrário
Limite inferior para árvore de jogos

Cada folha recebe 1 com probabilidade p
3 5
p
2

Lema : a probabilidade de um nó de T2,k ter
saida 1 é p
–
–
Nor=1 seus dois filhos são 0
Assumindo por indução que a probabilidade de seus
filhos serem 1 é p
Pr [nor  1]  (1  p)  p
2
Limite inferior para árvore de jogos

Teoriema
–
Existe um algoritmo ótimo para a distribuição
apresentada que percorre a árvore em
profundidade, testando somente os nós necessários
Limite inferior para árvore de jogos

Análise
–
W(h) – valor esperado do número de folhas testadas para
determinar o resultado de um nó a uma distância h das folhas
w(h)  w(h  1)  (1  p)  w(h  1)
w(1)  2  p
–
Fazendo h = log2(n) , temos
w(log2 n)  n0,694
–
Este limite pode ser melhorado para n0,793 considerando uma
distribuição mais adequada
Download

Dois tipos de algoritmos randomizados - PUC-Rio