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
cT2,k 1 2 cT2,k 3 3k 3k 1
2
Caso 2) Resultado=0 (AND=0) => pelo menos
um dos OR é falso.
1
1 3
11
cT2,k 1 2 cT2,k cT2,k 2 cT2,k cT2,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 minM ik min max M ik
i
k
k
No exemplo,
max minM ik 60 e
i
k
min max M ik 80
k
i
i
Teorema - Prova
Sejam: i1, k1 arg max minM ik
i
k
i2, k 2 arg min
maxM 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 minM 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
Epayoff 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
maxiI 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
aA
q
A - conjunto dos possíveis algoritmos colunas
I – conjunto das possíveis entradas
Significado:
iI
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 ]
aA
Implicação:
–
q
iI
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