440 likes | 533 Views
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
E N D
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 AND Resultado = 1 Resultado = 0 T2,1 T2,1 OR AND AND OR OR 0 1 0 1 1 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
AND OR OR S1 S2 S3 S4 Game Tree Evaluation • Seja a seguinte árvore de jogo:
Game Tree Evaluation 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)
AND OR OR S1 S2 S3 S4 Análise • Hipótese de indução • Na média 3k folhas são avaliadas por Rand-Eval • Base: k=1
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
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
AND T2,k OR OR Análise • Assuma que a hipótese de indução vale para k. Provaremos para k+1.
Análise • Caso 1) Resultado=1 (AND=1) • Caso 2) Resultado=0 (AND=0) => pelo menos um dos OR é falso.
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.
Teoria dos Jogos • Rodrigo e Pedro jogam o seguinte jogo com os dedos: Pedro 1 dedo 2 dedos 1 dedo -10 10 Rodrigo 2 dedos 20 -10
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 Pedro • Exemplo • Rodrigo escolhe linha 3 e Pedro escolhe coluna 1 1 dedo 2 dedos 1 dedo -10 20 Rodrigo 2 dedos 20 -10 3 dedos 60 80
Teorema • Para toda matriz de Payoff: • No exemplo,
i1 k1 i2 k2 Teorema - Prova • Sejam:
0 1 2 -1 0 1 -2 -1 0 Jogos com solução • Um jogo tem solução se Solução: Linha=1 Coluna=1
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 Rodrigo Estraté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
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).
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.
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.
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
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
Princípio de Yao • Para todas distribuições p sobre I: • 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
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