Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas...

44
Algoritmos Randomizados Eduardo Laber

Transcript of Algoritmos Randomizados Eduardo Laber. Dois tipos de algoritmos randomizados Algoritmos Las Vegas...

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