Algoritmos Randomizados
description
Transcript of Algoritmos Randomizados
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 é primonão, se n é composto
Problema de Coloração– Entrada: Grafo G, inteiro k– Saída:
sim, se existe k-coloração para Gnã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
AND
OROR
OR
ANDAND
T2,1T2,1
A cada folha está associado um valor binário
0 1 10 1 0 0 0
Resultado = 1 Resultado = 0
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
Algoritmo determinístico sempre precisa testar todas as folhas no pior caso.
contrário caso,1
S de antes avaliada é se,0 122121
SSSSS
contrário caso,1
S de antes avaliada é se,0 344343
SSSSS
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
32
3
2
3
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
34
112
2
3
2
12
2
1
Análise
Assuma que a hipótese de indução vale para k. Provaremos para k+1.
AND
OR ORT2,k
Análise
Caso 1) Resultado=1 (AND=1)
Caso 2) Resultado=0 (AND=0) => pelo menos um dos OR é falso.
1,21,2 333
2
32
kk
kk TcTc
1,2,2,2,21,2 3
4
112
2
3
2
12
2
1
k
kkkkk TcTcTcTcTc
Análise
Sabendo que o total de folhas é n=4k, o resultado garante que o algoritmo avalia na média:
Melhor que qualquer algoritmo determinístico ! Esse algoritmo é um do tipo Las Vegas.
793.03log4 nn
Teoria dos Jogos
Rodrigo e Pedro jogam o seguinte jogo com os dedos:
-10 10
20 -10
1 dedo
2 dedos
1 dedo 2 dedos
Pedro
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 : quantidade que R ganha (C perde).
Mik
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
Exemplo
Rodrigo escolhe linha 3 e Pedro escolhe coluna 1
-10 20
20 -10
60 80
1 dedo 2 dedos
1 dedo
2 dedos
3 dedos
Pedro
Rodrigo
Teorema
Para toda matriz de Payoff:
No exemplo,
ikik
ikki
MM maxminminmax
e60minmax ikkiM
80maxmin ikikM
Teorema - Prova
Sejam:
ikik
ikki
Mki
Mki
maxminarg2,2
minmaxarg1,1
i1 k1
i2
k2
2,22,11,1 kikiki MMM
Jogos com solução
Um jogo tem solução se
0 1
-1 0
-2 -1
2
1
0
Solução:
Linha=1
Coluna=1
ikik
ikki
MM maxminminmax
Jogos com solução
Solução: (i*, k*)
Jogo com solução (Equilíbrio)Na solução, nenhum movimento de Rodrigo nem de
Pedro pode melhorar suas situações.
Estratégia ótima
para RodrigoEstratégia ótima
para Pedro
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:
Estratégia ótima de Rodrigo é uma distribuição p que maximiza
Estratégia ótima de Pedro é uma distribuição q que minimiza
n
i
m
kkiki
T qMpMqpE1 1
payoff
MqpTq
min
MqpTp
max
Teorema de Von Neumman’s
Para qualquer jogo de soma 0
(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).
MqpMqp T
pq
T
qpmaxminminmax
Exemplo
Se a estratégia de Rodrigo é pT = [1/2, 1/2] então
Logo, o melhor que Pedro pode fazer é escolher
q1=0 e q2=1.
2
1
2
1 0,51020
101021,21payoff
q
q
q
qE
1020
1010M
Teorema de Loomis
Para todo jogo de soma 0 especificado por M, temos:
onde ek é um vetor em que a k-ésima coordenada é 1 e as demais são iguais a 0.
MqeMep Ti
iqk
T
kpmaxminminmax
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
Aq – Algoritmo aleatorizado que segue a distribuição q
Ip – Entrada que segue a distribuição p
)],([max qIi AiCE
Jogada 1 Jogada 2 Jogada 3
jogada 1 0 1 2
jogada 2 -1 0 1
jogada 3 -2 -1 0Jogador
2
Matriz de payoff
Teorema de Loonis
A - conjunto dos possíveis algoritmos colunas
I – conjunto das possíveis entradas
Significado:
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
],([maxmin)],([minmax qIiq
pAap
AiCEaICE
Princípio de Yao
Para todas distribuições p sobre I:
],([maxmin)],([min qIiq
pAa
AiCEaICE
Implicação:
– 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
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
2
53 p
ppnorPr 2)1(]1[
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
– Fazendo h = log2(n) , temos
– Este limite pode ser melhorado para n0,793 considerando uma distribuição mais adequada
pw
hwphwhw
2)1(
)1()1()1()(
694,02 )(log nnw