44
Algoritmos Randomizados Eduardo Laber

Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Embed Size (px)

Citation preview

Page 1: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Algoritmos Randomizados

Eduardo Laber

Page 2: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 3: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 4: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 5: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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.

Page 6: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execuçã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).

Page 7: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 8: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 9: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Game Tree Evaluation

Seja a seguinte árvore de jogo:

AND

OR OR

S1 S2 S3 S4

Page 10: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 11: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Terminologia

T: árvore de jogo

T0: árvore à esquerda de T

T1: árvore à direita de T

Op(T): operador associado a raiz de T

Page 12: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 13: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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)

Page 14: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 15: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 16: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 17: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Análise

Assuma que a hipótese de indução vale para k. Provaremos para k+1.

AND

OR ORT2,k

Page 18: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 19: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 20: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 21: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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.

Page 22: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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.

Page 23: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Teoria dos Jogos

Jogos de soma 0 podem ser representados por uma matriz de payoff.

Mik : quantidade que R ganha (C perde).

Mik

Page 24: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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 }

Page 25: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 26: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Teorema

Para toda matriz de Payoff:

No exemplo,

ikik

ikki

MM maxminminmax

e60minmax ikkiM

80maxmin ikikM

Page 27: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Teorema - Prova

Sejam:

ikik

ikki

Mki

Mki

maxminarg2,2

minmaxarg1,1

i1 k1

i2

k2

2,22,11,1 kikiki MMM

Page 28: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 29: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 30: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

Jogos sem solução

Em qualquer ponto um dos jogadores desejará se movimentar (não existe ótimo local).

Page 31: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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)

Page 32: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 33: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 34: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 35: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 36: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 37: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 38: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – 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

Page 39: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 40: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 41: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 42: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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[

Page 43: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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

Page 44: Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas – Sempre produzem a resposta correta – Tempo de execução

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