Algoritmos de jogos

45
Algoritmos de Jogos Min-Max e Alfa-Beta João Guilherme Kassulke

description

Min-max and Alpha-beta

Transcript of Algoritmos de jogos

Page 1: Algoritmos de jogos

Algoritmos de JogosMin-Max e Alfa -Beta

João Guilherme Kassulke

Page 2: Algoritmos de jogos

Introdu ção

A Inteligência Artificial no contexto dos jogos implica que os oponentes controlados pelo computador apresentem um certo grau

de cognitividade (percepção, esperteza) ao enfrentar o jogador humano.

Page 3: Algoritmos de jogos

Introdu ção

� Inicialmente a IA foi utilizada nas pesquisas em busca em espaço de estados, em jogos como xadrez, damas e o jogo da velha.

� O uso de jogos visando o estudo de técnicas de IA:

- Estados e Regras bem definidas.

Page 4: Algoritmos de jogos

História

� John von Neumann- Em 1926 demonstrou o teorema Minimax como solução para jogos de soma zero com dois jogadores, além da fundamentação da teoria da utilidade, que é muito útil para situações de incerteza em economia.- É considerado o precursor da Teoria de Jogos

Page 5: Algoritmos de jogos

� Jogo é um modelo teórico de conflitos de interesse (decisões possíveis, resultados possíveis) entre duas ou mais pessoas que tem motivações conflitantes.

� Jogador é um participante ativo e racional em um jogo, cujas ações afetam os demais.

� Movimentos são decisões disponíveis aos jogadores (simultaneamente ou não).

Definições de Jogos

Page 6: Algoritmos de jogos

� Escolhas: são alternativas particulares escolhidas

● Jogada: é uma seqüência de escolhas● Estratégias: são descrições das decisões a

serem tomadas em todas as situações possíveis (um plano de jogo)

● Payoff / Utilidade / Ganho: valor ou pagamento (ganhos ou perdas) de uma ação (pontos, $, etc.) ou ainda uma expressão de preferência

Definições de Jogos

Page 7: Algoritmos de jogos

� Segundo a função utilidade:Jogos de soma zero: soma dos payoffs(penalizações) dos participantes é zero. Ex. Xadrez, Jogo da VelhaJogos de soma não zero: resultados dos payoffs != zero. Ex. dilema do prisioneiro, etc.

� Segundo a informação disponível:Jogos com informação perfeita: a cada jogada, todos os jogadores tem conhecimento das jogadas que já ocorreram. Ex: Jogo da Velha, Xadrez.Jogos com informação imperfeita: conhecimento éparcial. Ex: Pôquer .

Taxonomia de Jogos

Page 8: Algoritmos de jogos
Page 9: Algoritmos de jogos
Page 10: Algoritmos de jogos
Page 11: Algoritmos de jogos

� Segundo o determinismo:

Jogos determinísticos: tem comportamento previsível, pois para um mesmo conjunto de entradas, as saídas serão sempre as mesmas, caso sejam realizados n testes.Jogos não determinísticos: possui um grau de incerteza, pois dadas as mesmas entradas, diferentes resultados, ou saídas, podem aparecer.

Taxonomia de Jogos

Page 12: Algoritmos de jogos

Definição Formal de um Jogo

● Estado inicial:Posição das peças no tabuleiro e o primeiro jogador

● Operadores:Definem os movimentos permitidos

● Teste final:Determina quando o jogo terminou e;Calcula o resultado (vitória, empate ou derrota)

● Função de utilidade (payoff ):Valor numérico para cada resultado do jogo

● Árvore de Busca:Mostra todas as possibilidades de jogo.

Page 13: Algoritmos de jogos

� Nos próximos slides serão abordados dois algoritmos do tipo “pay-off”, ou seja que utilizam a função utilidade, são eles: – O Min-Max ou MiniMax – E a otimização para o Min-Max: Alfa-Beta

Page 14: Algoritmos de jogos

� O MiniMax tem por objetivo selecionar a melhor a ação a ser feita em um jogo, onde dois jogadores (MIN e MAX) se empenham em alcançar objetivos mutuamente exclusivos.

� O algoritmo se baseia no princípio de que em cada jogada, o jogador irá escolher o melhor movimento possível.

Min-Max (MiniMax)

Page 15: Algoritmos de jogos

� Segundo (Nascimento, 2000), o algoritmo Min-Max é fundamentado numa expansão (em profundidade) de nós de uma árvore, para que se possa selecionar a melhor opção de jogada.

� Para isto há necessidade de uma heurísticaque permita fornecer, a cada jogada, um valor que indique a vantagem posicional alcançada pelo movimento conhecido.

Minimax

Page 16: Algoritmos de jogos

1. Gerar toda a árvore de procura desde o nó inicial até aos nós terminais.

2. Aplicar a função de utilidade a cada nó terminal para determinar o respectivo valor.

3. Usar a utilidade dos nós terminais para determinar através de um processo de backup a utilidade dos nós no nível imediatamente acima na árvore de procura:

1. Se for um lance de MIN o valor calculado é o mínimo dos nós do nível inferior;

2. se for MAX a jogar, o valor calculado é o máximo.

4. Continuar a usar o processo de backup um nível de cada vez atéatingir o nó inicial.

5. Tendo chegado ao nó inicial, escolher qual ação o jogador MAX realizará

Minimax Pseudo -código

Page 17: Algoritmos de jogos

Minimax - Exemplo

Page 18: Algoritmos de jogos

Minimax - Exemplo

Page 19: Algoritmos de jogos

Minimax - Exemplo

Page 20: Algoritmos de jogos

Minimax - Jogos

� O algoritmo de Minimax pode ser aplicado em vários jogos, porém não-eficientemente em alguns.

� Damas

� Xadrez� Jogo da Velha

Page 21: Algoritmos de jogos

Minimax - Xadrez

� Para o Xadrez, a técnica de Minimax não éeficiente pois dados:

� Fator médio de ramificação aprox. = 35

� Um tempo de 150s entre duas jogadas� E que o poder de processamento do

computador seja aprox. = 10000 estados/s

� 1.500.000 estados a serem avaliados nesse tempo

Page 22: Algoritmos de jogos

Minimax - Xadrez

� Nº de estados à profundidade p =

ramificação^p = 35^p� Se escolhermos uma profundidade = 4,

teremos 35^4 = 1.500.625 estados, o que jásuperaria o tempo estipulado.

� Lembrando que um bom jogador consegue prever até 8 jogadas. Portanto conclui-se que o algoritmo Minimax não é uma boa solução para o jogo de xadrez

Page 23: Algoritmos de jogos

� Estado Inicial: Tabuleiro 3x3 vazio, e o primeiro jogador a jogar (MAX - X)

� Operadores: Movimentos alternados (marcar X ou O) entre MAX e MIN, nas células vazias.

� Estado Final: 1. Toda uma linha e/ou coluna e/ou diagonal preenchida pelo

mesmo símbolo de um dos jogadores. (Vitória de alguém)

2. Todas as células do tabuleiro preenchidas com uma ou mais características da regra 1. (Vitória de alguem)

3. Todas as células do tabuleiro preenchidas com nenhuma características da regra 1. (Empate)

� Função Utilidade: Atribui um valor resultante para os estados� Arvore de Busca: Gerada devido o Espaço de Estados possível e

construída deterministicamente

Minimax – Jogo da Velha

Page 24: Algoritmos de jogos

Minimax – Árvore do Jogo da Velha

Page 25: Algoritmos de jogos

Minimax – Jogo da Velha

� Heurística

Σ linhas/colunas/diagonais em aberto -> XΣ linhas/colunas/diagonais em aberto -> O

O algoritmo Min -Max fundamenta-se em uma árvore, porém o cálculo da heurística é realizado das folhas para a raiz , que é a primeira jogada realizada

Page 26: Algoritmos de jogos
Page 27: Algoritmos de jogos

� Um limite superior simples para o tamanho de espaço de estados é 39 = 19,683 (Incluindo jogadas ilegais, ex: cinco X e um O.

� Removendo estas jogas ilegais, temos 5478 espaços de estados, eliminando ainda as simetrias, chega-se ao numero de 765 posições diferentes.

� O limite superior da árvore de jogo é de 9! ou 362880 incluindo jogos ilegais, eliminando os jogos ilegais, chega-se a 255168 jogos possíveis. Eliminando as simetrias chega-se ao numero de 26830 possiveis.

Jogo da Velha

Page 28: Algoritmos de jogos

� A complexidade computacional do Jogo da Velha depende de como ela é generalizada.

� Pode ser generalizada como: m, n, k-gamesou seja, jogado em tabuleiro mxn no qual o vencedor é o primeiro jogador a obter k em uma fileira

� Pode ser generalizada também como DSPACE: (mn) no qual pesquisa a árvore de jogo inteira.

ou seja, jogado em tabuleiro mxn no qual o vencedor é o primeiro jogador a obter k em uma fileira

� É englobado pela complexidade PSPACE� E com algum esforço é possível demonstrar este

jogo como PSPACE-Completo

Jogo da Velha

Page 29: Algoritmos de jogos

Conclusões Parciais

� Se a profundidade máxima da árvore for m e em cada ponto houver b lances possíveis (fator de ramificação), então a complexidade (temporal) do MiniMax é O(b^m).

� O algoritmo é essencialmente do tipo procura em profundidade (depth-first)

� Para problemas reais o custo de tempo égeralmente inaceitável, mas este algoritmo serve de base a outros métodos mais realistas, como o Alfa-Beta

Page 30: Algoritmos de jogos

Exerc ício

Objetivo: Dado um conjunto de 5 palitos, pegar 1 ou 2 palitos e não ser o último a jogar.

– Cenário 1:● Jogador 1: Retira 2 palitos● Jogador 2: Retira 2 palitos● Jogador 1: Retira o último (perde)

– Cenário 2:● Jogador 1: Retira 1 palito● Jogador 2: Retira 2 palitos● Jogador 1: Retira 1 palito● Jogador 2: Retira o último (perde)

Construir a árvore minimax com os payoffs nos nós

Page 31: Algoritmos de jogos

Exerc ício

Page 32: Algoritmos de jogos

Alfa -Beta

* O algoritmo minimax é deterministico, mas seu desempenho pode ser significativamente melhorado através de certos refinamentos e melhorias, como fazendo uso da poda alfa-beta.

* Assim, o algoritmo minimax pode ser modificado a fim de explorar essa técnica.

Page 33: Algoritmos de jogos

Alfa -Beta

� Objetivo: Calcular o MiniMax correto e diminuir o número de nós visitados e de funções nos nós avaliados

� Pode limitar a ramificação em vários pontos� Inclui-se um limite inferior para o valor a minimizar

(BETA -> valor mais baixo que o jogador MIN jáassegurou), e um limite superior para o valor a maximizar (ALFA -> valor mais alto do jogador MAX).

� A pesquisa dos sucessores de um nó termina quando se verificar alfa>=beta

Page 34: Algoritmos de jogos

Alfa -Beta

� Considerando o jogador inicial = ALFA

� Alfa representa o melhor valor encontrado atéentão para MAX (maior valor), ou – se Max já achou uma jogada boa, outras mais baixas

(piores) serão descartadas

� Beta representa o melhor valor encontrado atéentão para MIN (menor valor), ou– se Min já achou uma jogada boa, outras mais

altas (piores) serão descartadas

Page 35: Algoritmos de jogos

Alfa -Beta – Pseudo -código

alfa-beta(jogador, mundo, alfa, beta)SE o jogo terminou no estado atual do mundodevolve vencedorfilhos = todas as jogadas possíveis a partir do est ado atual

SE jogador = MAXPARA cada filhoavaliação = alfa-beta(adversário, filho, alfa, beta )SE avaliação > alfa ENTÃOalfa = avaliação (encontrou-se uma melhor jogada)

SE alfa >= beta ENTÃOdevolve alfa (ignora restante ramos)devolve alfa (esta é a melhor jogada)

SENÃO jogador = MINPARA cada filhoavaliação = alfa-beta(adversário, filho, alfa, beta )SE avaliação < beta ENTÃObeta= avaliação (adversário encontrou uma melhor pi or jogada)

SE alfa >= beta ENTÃOdevolve beta (ignora restante ramos)devolve beta (a melhor jogada do adversário)

Page 36: Algoritmos de jogos
Page 37: Algoritmos de jogos
Page 38: Algoritmos de jogos
Page 39: Algoritmos de jogos
Page 40: Algoritmos de jogos
Page 41: Algoritmos de jogos

Conclusões Parciais

� Depende da ordem de expansão dos nós– Se os sucessores puderem ser ordenados corretamente, a complexidade pode chegar a O(b^(d/2))d: profundidade máxima da arvoreb: fator de ramificação

● Para um fator de ramificação médio (razoável), a complexidade pode ser O(b^(3d/4)) – estratégias como capturar,ameaçar,mover, nesta ordem podem aproximar do melhor caso

Page 42: Algoritmos de jogos

Conclusões Parciais

� Porém, se as opções surgirem de uma determinada ordem (crescente no maximizador e decrescente no minimizador), os cortes Alfa-Beta não trazem melhorias.

Page 43: Algoritmos de jogos

Exerc ício

� Indique quais nós serão cortados usando o algoritmo de corte alfa-beta

Page 44: Algoritmos de jogos

Exerc ício - Solu ção

Page 45: Algoritmos de jogos

Referencias

� http://pt.wikipedia.org/wiki/John_von_Neumann� http://paginas.fe.up.pt/~eol/IA/IA0809/APONTAMEN

TOS/Alunos_MiniMax.pdf� http://www.lx.it.pt/~afred/docencia/rp-

ist/acetatos/AB.pdf� www.lti.pcs.usp.br/pcs2059/aulas/Aula8-Minimax.pdf� http://hermes.ucs.br/carvi/cent/dpei/jltsilva/JLT_aula-

Algoritmo%20Minimax.pdf� www2.dc.uel.br/nourau/document/?down=314