Anda di halaman 1dari 45

Algoritmos de Jogos Min-Max e Alfa-Beta

Joo Guilherme Kassulke

Introduo

A Inteligncia Artificial no contexto dos jogos implica que os oponentes controlados pelo computador apresentem um certo grau de cognitividade (percepo, esperteza) ao enfrentar o jogador humano.

Introduo
Inicialmente a IA foi utilizada nas pesquisas em busca em espao de estados, em jogos como xadrez, damas e o jogo da velha. O uso de jogos visando o estudo de tcnicas de IA: - Estados e Regras bem definidas.

Histria
John von Neumann - Em 1926 demonstrou o teorema Minimax como soluo para jogos de soma zero com dois jogadores, alm da fundamentao da teoria da utilidade, que muito til para situaes de incerteza em economia. - considerado o precursor da Teoria de Jogos

Definies de Jogos
Jogo um modelo terico de conflitos de interesse (decises possveis, resultados possveis) entre duas ou mais pessoas que tem motivaes conflitantes. Jogador um participante ativo e racional em um jogo, cujas aes afetam os demais. Movimentos so decises disponveis aos jogadores (simultaneamente ou no).

Definies de Jogos
Escolhas: so alternativas particulares escolhidas Jogada: uma seqncia de escolhas Estratgias: so descries das decises a serem tomadas em todas as situaes possveis (um plano de jogo) Payoff / Utilidade / Ganho: valor ou pagamento (ganhos ou perdas) de uma ao (pontos, $, etc.) ou ainda uma expresso de preferncia

Taxonomia de Jogos
Segundo a funo utilidade: Jogos de soma zero: soma dos payoffs (penalizaes) dos participantes zero. Ex. Xadrez, Jogo da Velha Jogos de soma no zero: resultados dos payoffs != zero. Ex. dilema do prisioneiro, etc. Segundo a informao disponvel: Jogos com informao perfeita: a cada jogada, todos os jogadores tem conhecimento das jogadas que j ocorreram. Ex: Jogo da Velha, Xadrez. Jogos com informao imperfeita: conhecimento parcial. Ex: Pquer .

Taxonomia de Jogos
Segundo o determinismo: Jogos determinsticos: tem comportamento previsvel, pois para um mesmo conjunto de entradas, as sadas sero sempre as mesmas, caso sejam realizados n testes. Jogos no determinsticos: possui um grau de incerteza, pois dadas as mesmas entradas, diferentes resultados, ou sadas, podem aparecer.

Definio Formal de um Jogo


Estado inicial: Posio das peas no tabuleiro e o primeiro jogador Operadores: Definem os movimentos permitidos Teste final: Determina quando o jogo terminou e; Calcula o resultado (vitria, empate ou derrota) Funo de utilidade (payoff ): Valor numrico para cada resultado do jogo rvore de Busca: Mostra todas as possibilidades de jogo.

Nos prximos slides sero abordados dois algoritmos do tipo pay-off, ou seja que utilizam a funo utilidade, so eles:

O Min-Max ou MiniMax E a otimizao para o Min-Max: Alfa-Beta

Min-Max (MiniMax)
O MiniMax tem por objetivo selecionar a melhor a ao a ser feita em um jogo, onde dois jogadores (MIN e MAX) se empenham em alcanar objetivos mutuamente exclusivos. O algoritmo se baseia no princpio de que em cada jogada, o jogador ir escolher o melhor movimento possvel.

Minimax
Segundo (Nascimento, 2000), o algoritmo Min-Max fundamentado numa expanso (em profundidade) de ns de uma rvore, para que se possa selecionar a melhor opo de jogada. Para isto h necessidade de uma heurstica que permita fornecer, a cada jogada, um valor que indique a vantagem posicional alcanada pelo movimento conhecido.

Minimax Pseudo-cdigo
1. Gerar toda a rvore de procura desde o n inicial at aos ns terminais. 2. Aplicar a funo de utilidade a cada n terminal para determinar o respectivo valor. 3. Usar a utilidade dos ns terminais para determinar atravs de um processo de backup a utilidade dos ns no nvel imediatamente acima na rvore de procura: 1. Se for um lance de MIN o valor calculado o mnimo dos ns do nvel inferior; 2. se for MAX a jogar, o valor calculado o mximo. 4. Continuar a usar o processo de backup um nvel de cada vez at atingir o n inicial. 5. Tendo chegado ao n inicial, escolher qual ao o jogador MAX realizar

Minimax - Exemplo

Minimax - Exemplo

Minimax - Exemplo

Minimax - Jogos
O algoritmo de Minimax pode ser aplicado em vrios jogos, porm no-eficientemente em alguns. Damas Xadrez Jogo da Velha

Minimax - Xadrez
Para o Xadrez, a tcnica de Minimax no eficiente pois dados: Fator mdio de ramificao 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

Minimax - Xadrez
N de estados profundidade p = ramificao^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 no uma boa soluo para o jogo de xadrez

Minimax Jogo da Velha


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 clulas vazias. Estado Final:
1. 2. 3.

Toda uma linha e/ou coluna e/ou diagonal preenchida pelo mesmo smbolo de um dos jogadores. (Vitria de algum) Todas as clulas do tabuleiro preenchidas com uma ou mais caractersticas da regra 1. (Vitria de alguem) Todas as clulas do tabuleiro preenchidas com nenhuma caractersticas da regra 1. (Empate)

Funo Utilidade: Atribui um valor resultante para os estados Arvore de Busca: Gerada devido o Espao de Estados possvel e construda deterministicamente

Minimax rvore do Jogo da Velha

Minimax Jogo da Velha


Heurstica linhas/colunas/diagonais em aberto -> X linhas/colunas/diagonais em aberto -> O O algoritmo Min-Max fundamenta-se em uma rvore, porm o clculo da heurstica realizado das folhas para a raiz, que a primeira jogada realizada

Jogo da Velha
Um limite superior simples para o tamanho de espao de estados 39 = 19,683 (Incluindo jogadas ilegais, ex: cinco X e um O. Removendo estas jogas ilegais, temos 5478 espaos de estados, eliminando ainda as simetrias, chega-se ao numero de 765 posies diferentes. O limite superior da rvore de jogo de 9! ou 362880 incluindo jogos ilegais, eliminando os jogos ilegais, chega-se a 255168 jogos possveis. Eliminando as simetrias chega-se ao numero de 26830 possiveis.

Jogo da Velha
A complexidade computacional do Jogo da Velha depende de como ela generalizada. Pode ser generalizada como: m, n, k-games ou seja, jogado em tabuleiro mxn no qual o vencedor o primeiro jogador a obter k em uma fileira Pode ser generalizada tambm 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 esforo possvel demonstrar este jogo como PSPACE-Completo

Concluses Parciais
Se a profundidade mxima da rvore for m e em cada ponto houver b lances possveis (fator de ramificao), ento 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 inaceitvel, mas este algoritmo serve de base a outros mtodos mais realistas, como o Alfa-Beta

Exerccio
Objetivo: Dado um conjunto de 5 palitos, pegar 1 ou 2 palitos e no ser o ltimo a jogar. Cenrio 1: Jogador 1: Retira 2 palitos Jogador 2: Retira 2 palitos Jogador 1: Retira o ltimo (perde) Cenrio 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 ns

Exerccio

Alfa-Beta
* O algoritmo minimax deterministico, mas seu desempenho pode ser significativamente melhorado atravs de certos refinamentos e melhorias, como fazendo uso da poda alfabeta. * Assim, o algoritmo minimax pode ser modificado a fim de explorar essa tcnica.

Alfa-Beta
Objetivo: Calcular o MiniMax correto e diminuir o nmero de ns visitados e de funes nos ns avaliados Pode limitar a ramificao em vrios 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

Alfa-Beta
Considerando o jogador inicial = ALFA Alfa representa o melhor valor encontrado at ento para MAX (maior valor), ou
se Max j achou uma jogada boa, outras mais baixas (piores) sero descartadas

Beta representa o melhor valor encontrado at ento para MIN (menor valor), ou
se Min j achou uma jogada boa, outras mais altas (piores) sero descartadas

Alfa-Beta Pseudo-cdigo
alfa-beta(jogador, mundo, alfa, beta) SE o jogo terminou no estado atual do mundo devolve vencedor filhos = todas as jogadas possveis a partir do estado atual SE jogador = MAX PARA cada filho avaliao = alfa-beta(adversrio, filho, alfa, beta) SE avaliao > alfa ENTO alfa = avaliao (encontrou-se uma melhor jogada) SE alfa >= beta ENTO devolve alfa (ignora restante ramos) devolve alfa (esta a melhor jogada) SENO jogador = MIN PARA cada filho avaliao = alfa-beta(adversrio, filho, alfa, beta) SE avaliao < beta ENTO beta= avaliao (adversrio encontrou uma melhor pior jogada) SE alfa >= beta ENTO devolve beta (ignora restante ramos) devolve beta (a melhor jogada do adversrio)

Concluses Parciais
Depende da ordem de expanso dos ns Se os sucessores puderem ser ordenados corretamente, a complexidade pode chegar a O(b^(d/2)) d: profundidade mxima da arvore b: fator de ramificao Para um fator de ramificao mdio (razovel), a complexidade pode ser O(b^(3d/4)) estratgias como capturar,ameaar,mover, nesta ordem podem aproximar do melhor caso

Concluses Parciais
Porm, se as opes surgirem de uma determinada ordem (crescente no maximizador e decrescente no minimizador), os cortes Alfa-Beta no trazem melhorias.

Exerccio
Indique quais ns sero cortados usando o algoritmo de corte alfa-beta

Exerccio - Soluo

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/rpist/acetatos/AB.pdf www.lti.pcs.usp.br/pcs2059/aulas/Aula8-Minimax.pdf http://hermes.ucs.br/carvi/cent/dpei/jltsilva/JLT_aulaAlgoritmo%20Minimax.pdf www2.dc.uel.br/nourau/document/?down=314

Anda mungkin juga menyukai