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

Post on 16-Apr-2015

107 views 0 download

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

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