Vous êtes sur la page 1sur 18

Universidade da Madeira Departamento de Matemtica e Engenharias Ensino de Informtica

Introduo Inteligncia Artificial

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

Apontamentos

Grupo C

Alcina Marques n 2023701 Andrea Nbrega n 2038201 Jos Pinho n 2047404

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

1. ndice
1. ndice 2. ndice de Imagens 3. Introduo 3.1 Histria dos jogos entre Deep Blue e Kasparov 3.2 Deep Blue 3.3 Deep Blue vs Kasparov 4. Jogos 4.1 Tipos de Jogos 5. Decises Perfeitas em Jogos com dois adversrios: 5.1 Formulao 5.2 Jogo do Galo 6.Algoritmo Mini-Max 6.1 Estratgia 6.2 Resumo 6.3 Desvantagens 6.4 Concluso 6.5 Problemas 7. Decises imperfeitas 7.1 Introduo 7.2 Funes de Avaliao 7.3 Construo da rvore 7.4 Jogos que incluem o elemento sorte 8. Corte Alpha-Beta 8.1 Concluso 9. Concluses Finais 10. Referncias Biliograficas 2 3 4 4-5 5 6 7 7 8 8-9 9 9-10 10-11 11 11-12 12 12 13 13 13-14 14 14-15 15-16 16-17 17 18

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

2. ndice de Imagens
Figura 1 Imagem do Deep Blue Figura 2 Imagem de um dos jogos entre Deep Blue e Kasparov Figura 3 Jogo do Galo Figura 4 Exemplo ilustrativo da aplicao do Algoritmo Mini-Max Figura 5 Pseudo-cdigo do Algoritmo Mini-Max Figura 6 Jogo que inclui o elemento sorte Figura 7 Demonstrao da aplicao do corte Alpha-Beta 5 6 9 10 11 15 16

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

3. Introduo
Em linguagem corrente o termo jogo usualmente considerado como um mero passatempo. Para algumas crianas um modo de fugir aos trabalhos de casa, enquanto que para alguns adultos o termo jogo pode invocar imagens de jogadores que desesperadamente procuram estratgias que lhes dem vantagens sobre os adversrios. O resultado do jogo determinado pelas estratgias utilizadas pelos jogadores formando assim a teoria dos jogos. Assim, jogos de tabuleiro como o xadrez, tornam-se muito interessantes pois oferecem competio pura e abstracta, simulando uma batalha entre dois jogadores, onde no existindo as consequncias reais de uma guerra requer que cada um deles utilize todas as suas capacidades de raciocnio e lgica de forma a vencer o adversrio no fisicamente mas sim intelectualmente. esta abstraco que faz dos jogos um tema interessante para a Inteligncia Artificial. Os jogos, so na realidade uma das reas mais antigas desenvolvidas em Inteligncia Artificial. Em 1950, desde que os computadores se tornaram programveis, o primeiro jogo de xadrez foi criado por Claude Shannon e por Alan Turing. Desde ento tem havido um progresso relevante em Inteligncia Artificial nesta rea, de tal forma que os sistemas actuais so capazes de rivalizar e bater o melhor jogador de xadrez de ento, Garry Kasparov.

3.1 Histria dos jogos entre Deep Blue e Garry Kasparov


Em 1996 ocorreu o primeiro confronto entre Deep Blue, o super computador, e Garry Kasparov, o melhor jogador de xadrez de ento, o resultado deu a vitria a Kasparov. Desde ento e at 1997 a IBM desdobrou-se em constantes desenvolvimentos e actualizaes de modo a melhorar o desempenho de Deep Blue. Garry Kasparov foi vencido em 1997 pelo Deep Blue , um super computador desenvolvido pela IBM. Esta vitria foi conseguida numa espcie de campeonato composto por 6 jogos. No primeiro jogo a vitria foi de Kasparov, no segundo jogo a vitria foi de Deep Blue e os trs jogos seguintes foram trs empates, o sexto e ltimo jogo deu a vitria (por maioria) a ao super computador. A vitria de Deep Blue sobre o melhor jogador do mundo, de ento, obviamente que suscitou algumas dvidas no que diz respeito ao
Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial 4

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

desempenho do super computador durante o ltimo jogo, do qual saiu vitorioso. Inclusivamente foi suposto que as jogadas que Deep Blue ordenava eram adulteradas por elementos pertencentes IBM, de modo a que a que o jogo reverte-se a seu favor. Estas suspeitas levaram a que Garry Kasparov pedisse que houvesse novo jogo de modo a desfazer qualquer dvida em relao vitria de Deep Blue, o que foi determinantemente negado por parte da IBM. E at os dias de hoje mantm-se a suspeita que a vitria de Deep Blue no passou de uma manobra estratgica por parte da IBM de modo a aumentar seu valor comercial.

3.2 Deep Blue


O Deep Blue um super computador com 32 ns do computador de alta performance IBM RS/6000 SP, o seu cdigo de programao em linguagem C e executado no sistema operativo AIX. O resultado uma mquina escalvel capaz de calcular entre 100200 bilies de jogadas em 3 minutos, tem aproximadamente 1.4 toneladas de peso e foi desenvolvido pela IBM.

Figura 1 Imagem do Deep Blue

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

3.3 Deep Blue vs Kasparov


Caractersticas
Capacidade avaliativa de jogadas Conhecimento em xadrez Clculo Capacidade de Aprendizagem Foras externas Oponente Prxima Jogada Muito Incapaz de aprender Pouco capaz de aprender e adaptar-se

Deep Blue
At 200 milhes p/segundo Pouco

Kasparov
At 3 p/segundo

Muito

Nunca: esquece, distrai susceptvel a algumas ou se intimida fragilidades Avalia somente posies de xadrez Tem de realizar uma extensa pesquisa de todas as jogadas possveis de forma a determinar a jogada ptima Avalia as fraquezas do adversrio capaz de determinar a prxima jogada atravs de uma escolha selectiva das jogadas possveis

Figura 2 Imagem de um dos jogos entre Deep Blue e Kasparov.


Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial 6

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

4. Jogos
Em comparao com os problemas e algoritmos apresentados at aqui, a presena de oponentes torna o problema de deciso em Inteligncia Artificial mais complicado e interessante. Os problemas apresentados nos algoritmos anteriores apenas tinham em conta contingncias como o espao em memria e o tempo disponvel. O oponente introduz incerteza e no toma decises sorte, tentar sim, jogar de forma minimizar o nmero de jogadas menos benignas para si. Mas o que torna os jogos realmente mais interessantes e diferentes dos restantes problemas na Inteligncia Artificial o facto serem muito mais difceis de resolver, o xadrez, por exemplo, tem um factor de ramificao em cada jogada de 35, e nos jogos o nmero de jogadas mdias por jogador chegas s 50. Logo a rvore de pesquisa ter cerca de 35100 nodos. Assim facilmente se conclui que a incerteza dos jogos no se deve ao facto de haver falta de informao mas sim com o facto de no haver tempo de calcular todas as hipteses ou ramificaes possveis. Levando a que cada jogador decidida, tentando adivinhar a melhor jogada baseando-se em conhecimento anterior. Assim, iremos iniciar a representao de como obter teoricamente, a melhor jogada e sero abordados casos em que o elemento sorte est presente nos jogos. Por fim sero apresentadas tcnicas para escolher uma boa jogada quando o tempo limitado, atravs de cortes nas rvores (corte ou poda alfa-beta) e da avaliao heurstica de estados, permitindo assim evitar a pesquisa em ramos que no so relevantes para a escolha final e apriximar a verdadeira utilidade de um nodo sem realizar uma pesquisa completa na rvore de todas as jogadas possveis.

4.1 Tipos de Jogos


Existem dois tipos de jogos, os jogos de informao, que poder ser de informao perfeita e imperfeita, e os jogos de sorte/determinstico. Alguns exemplos deste tipo de jogos so os seguintes: Jogos de Informao: Perfeita: Xadrez, Damas, Go, Gamo, Monoplio. Imperfeita: Poker, Scrabble, Bridge, King.

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

Jogos de Sorte/Determinstico: Determinstico: Xadrez, Damas, Go, Otelo. Jogo de Sorte: Gamo, Monoplio, Poker, Scrabble, Bridge, King. No que diz respeito ao plano de ataque o algoritmo para o jogo perfeito aplicado, o horizonte finito, a avaliao aproximada e os cortes nas rvores tem por objectivo a reduo de custos.

5. Decises Perfeitas em Jogos com dois adversrios 5.1 Formulao


O ambiente completamente observvel, determinstico, estratgico, esttico, discreto e multi-agente, existem dois agentes, MAX e MIN, jogando um de cada vez. Por exemplo: o jogador Max joga primeiro, e no fim ser atribuda uma pontuao a cada um dos jogadores, mediante as decises tomadas por ambos. A soma nula , ou seja o que um ganha o outro perde e a informao completa pois os agentes conhecem as aces um do outro. Os componentes de procura so os seguintes: Estado Inicial - que inclui as posies no tabuleiro e a identificao de quem ir jogar. Funo Sucessor ou Operadores - retorna os ns resultantes dos movimentos legais. Teste Terminal - que determina se o jogo acabou. Funo de Utilidade - atribui valores aos estados terminais, avaliando numericamente o resultado final do jogo para cada um dos jogadores. No caso do Jogo do Galo, a Funo de Utilidade pode atribuir trs valores diferentes aos ns terminais: 1 se o jogador ganha 0 se o jogador empata
Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial 8

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

-1 se o jogador perde. Estes valores podem variar de jogo para jogo, estando relacionados com o tipo de pontuao destes. Assim sendo, ir ser definida uma estratgia que permita ao jogador Max, decidir que caminho percorrer de forma a obter o melhor resultado possvel no fim do jogo Algoritmo Mini-Max. Esta estratgia decide que jogada o jogador Max dever realizar, tendo em conta a melhor resposta que o jogador Min poder ter.

5.2 Jogo do Galo

Figura 3 Jogo do Galo

6. Algoritmo Mini-Max
O mtodo de busca consiste na ideia de maximizar a utilidade (ganho) supondo que o adversrio vai tentar minimiz-la. O Minimax faz busca cega em profundidade, o agente Max e o adversrio Min.

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

Figura 4 Exemplo Ilustrativo da aplicao do Algoritmo Mini-Max

6.1 Estratgia
Se fosse o caso de se tratar de uma pesquisa normal, bastava percorrer-se a rvore at aos nodos terminais e escolher o caminho que levasse ao nodo com maior valor de utilidade. Mas no assim, visto existir outro jogador. Assim, necessrio, escolher a partir de cada nodo filho, o menor valor de utilidade, e copia-lo para o nodo pai, recursivamente at ao nodo inicial. Isto deve-se ao facto, de o jogador MIN tentar minimizar o ganho do jogador MAX, pelo que ele tentar escolher a jogada, dentro das possveis, que d menos pontos ao jogador adversrio. Logo, apesar de o jogador MAX querer obter o maior valor possvel (14 pontos), ele no poder seguir pelo caminho A3, pois o jogador MIN, como resposta, poder seguir o caminho A33, o que far com que o jogador MAX obtenha uma pontuao de 2 pontos. Assim sendo, aps terem sido copiados o menor dos valores dos ns filhos para os ns pais (que representam as melhores jogadas possveis do jogador MIN), o jogador MAX, ir escolher o n com o maior valor dentro destes.

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

10

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

O jogador MAX percorrer o melhor caminho de forma a obter o melhor resultado possvel dentro das melhores respostas possveis do jogador MIN.

6.2 Resumo
gerada inicialmente uma rvore de todas as jogadas e as respectivas respostas de cada jogador, depois aplicado um valor de utilidade aos ns finais, e atravs destes valores decidido que valores iro ser atribudos aos ns pais, de acordo com o interesse do jogador MIN, isto , seleccionar sempre o menor valor. No topo da rvore, ir ser seleccionado o caminho apartir do n filho que possua o maior valor, de acordo com o interesse do jogador MAX. Funo MINIMAX (N) { se N for um n terminal ento retorna o valor estimado se no { enquanto N1,Nm, sejam sucessores de N { se N um n MIN ento retorna minimo(MINIMAX(N1), MINIMAX(N2),,MINIMAX(Nm)) seno retorna maximo(MINIMAX(N1), MINIMAX(N2),,MINIMAX(Nm)) } }} Figura 5 Pseudo-cdigo do Algoritmo Mini-Max

6.3 Desvantagens
Como podemos perceber, este algoritmo acaba por gerar toda a rvore de busca, dentro do limite permitido. Assim so gerados caminhos cuja possibilidade de serem seguidos praticamente nula.
Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial 11

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

Outra desvantagem o facto do minimax se basear na suposio de que o adversrio escolher sempre o movimento ideal, e nunca incorrer ao erro. Desta forma, se tivermos que escolher entre duas jogadas que sejam ms para ns, e se uma dessas jogadas nos poder levar a uma vitria supondo que o adversrio comete um erro, com certeza que preferimos arriscar, no entanto o minimax no faz isto. E uma das formas de diminuir a perda de tempo na gerao de caminhos considerados inteis o corte alfa-beta. (Alpha-Beta Cutoffs)

6.4 Concluso
O Algoritmo Mini-Max completo apenas no caso de a rvore for finita, ptimo se jogarmos contra um adversrio ptimo e se no for esse o caso, o MAX jogar ainda melhor. Quanto complexidade no tempo, O (bm), onde, b o factor de ramificao e m a profundidade e complexidade no espao O (bm) explorao primeiro em profundidade, a complexidade vai de encontro com o tipo de jogo em questo, ou seja, ir variar consoante o nvel de dificuldade do jogo. Exemplo o jogo de xadrez tem um nvel de dificuldade muitssimo superior ao do jogo do galo o que leva ao facto do nvel de complexidade no caso do jogo de xadrez ser muito mais elevado. Logo perceptvel que o problema invivel para qualquer jogo minimamente complexo.

6.5 Problemas
O tempo gasto para determinar a deciso ptima totalmente impraticvel para qualquer jogo minimamente complexo, visto o algoritmo ter de construir a totalidade da rvore. Porm o algoritmo serve como base para outros mtodos mais realsticos. As solues possveis sol imitar a profundidade da busca e substituir a funo de utilidade por uma funo de avaliao (heurstica)e podar a rvore onde a busca seria irrelevante: poda AlfaBeta, limitando assim o tamanho desta.

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

12

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

7. Decises Imperfeitas 7.1 Introduo


Assim sendo, o algoritmo Mini-Max vai ser alterado de duas formas: A funo de utilidade substituda por uma Funo Heurstica ou de Avaliao; O Teste Terminal (que determina quando um n terminal) substitudo por uma Funo de Teste de Corte. O algoritmo Mini-Max assume que um programa tem tempo para construir toda a rvore, o que na realidade no praticvel. Ento vai ser necessrio limitar a construo da rvore, no tempo e/ou no espao de memria. E aos ns terminais, em vez de aplicar a Funo de Utilidade, vai ser aplicada uma Funo Heurstica, ou de Avaliao.

7.2 Funes de Avaliao


A Funo de Avaliao retorna uma estimativa dos valores esperados de utilidade a partir de uma dada posio logo: A funo de avaliao deve ir de encontro funo de utilidade; deve ser rpida a efectuar os clculos, isto , de complexidade reduzida; a funo de avaliao deve conseguir avaliar correctamente as expectativas de vitria, a partir de uma dada posio. No Jogo de Xadrez possvel atribuir valores de utilidade a cada uma das peas, de acordo com a sua utilidade (importncia) no jogo: Peo 1 ponto Cavalo e Bispo 3 pontos Torre 5 pontos Dama 9 pontos sabido tambm, que a posio das peas no tabuleiro muito importante, logo podem-se atribuir valores de probabilidade de vitria mediante as posies controladas. Assim, uma possvel Funo de Heurstica poderia ser:
Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial 13

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

H= w1f1 + w2f2 + + wnfn donde, w o valor das peas e f o valor atribudo pea numa dada posio.

7.3 Construo da rvore


Para se limitar a construo da rvore ter de se substituir o algoritmo de construo/pesquisa da rvore utilizado pelo algoritmo MiniMax Depth-First Exemplos: Utilizar o algoritmo Depth-First Iterative Deepening 1 Definir profundidade 2 Construir a rvore at ao nvel de profundidade definido.Se um n terminal for encontrado, ento retornado o valor atribudo pela funo heurstica. 3 Se no, incrementar o nvel de profundidade e retornar ao ponto 2. Utilizar o algoritmo Iterative-Deepening-A* Limitar o nmero de ns em memria 1 Construir a rvore utilizando o algoritmo Depth-First, limitado ao nmero de ns possveis de ter em memria. 2 Atribuir um valor estimado de utilidade aos ns terminais, da rvore criada. 3 Aplicar algoritmo MiniMax 4 Libertar ns terminais e voltar a aplicar o ponto 1

7.4 Jogos que incluem o elemento sorte


Um caso diferente em jogos com deciso imperfeita, so aqueles que envolvem o elemento sorte. Ex: Gamo, Poker.. Nestes jogos existe ento um elemento aleatrio para o qual no se sabe o resultado, Donde iro resultar Nodos Sorte na rvore de deciso. A nica forma de poder avaliar o valor destes nodos ser atravs de funes de probabilidade ou estatistica. Por exemplo para no jogo do Gamo, onde so lanados dois dados, a probabilidade de sarem dois nmeros diferentes ser de 1/18 e de sarem dois nmeros iguais 1/36. Assim, o valor de utilidade dos Nodos Terminais continuara a ser obtido atravs da funo de utilidade, mas sempre que se sobe um nvel
Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial 14

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

chega-se a um Nodo Sorte, onde o valor a atribuir ser um Valor Estimado, que obtido atravs da media de todas os possveis valores obtidos pelos dados em conjunto com o valor do Nodo Terminal a ser transportado. Estes valores sero chamados de Expectimax e Expectimax, consoante nos encontremos num nodo de MAX ou de MIN, e que se obtm atravs da seguinte funo:
exp ecti max( Nodo) = P(d i ) max sS ( Nodo ,di ) (utilidade( s ))
i

Assim, o valor destes Nodos Sorte ser uma mdia de todos os valores dos filhos.
Expectimin

Figura 6 Jogo que inclui o elemento sorte. O expectimax dar o valor esperado do nodo C, assumindo que se obtm o melhor resultado no lanamento dos dados, para o jogador MAX.

8. Corte Alpha-Beta
O algoritmo Corte Alpha-Beta, tem como funo, limitar a expanso de ns desnecessrios, pelo algoritmo MiniMax. Este inicia-se aplicando o algoritmo MiniMax, que faz uma pesquisa Depth-First. Quando so encontrados todos os ns terminais de uma ramificao, escolhido o menor valor destes que ir ser chamado de .
Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial 15

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

= melhor valor no caminho para MIN Este valor ira ser copiado para o n pai, sucessivamente at chegarmos primeira ramificao de MAX (primeiro caminho possvel de MAX). E , que se encontra no primeiro n da rvore, tomar ento o valor de , no n inicial de MAX. = melhor valor no caminho de MAX De seguida, d-se continuidade expanso da rvore, at se encontrar outro n terminal, atribuindo-se um novo valor a . ento realizada uma comparao do valor deste n, , com o de . Caso seja inferior, no necessrio continuar a expanso do respectivo n pai, visto que, este ir sempre ter um valor inferior ao caminho anteriormente encontrado para MAX. Este valor comparado com o valor de . Caso seja menor que , no so expandidas mais ramificaes desse n (corte dos restantes ns), visto o caminho no interessar a MAX, e o valor copiado para o n pai. Caso o valor de seja igual ou superior a , d-se continuidade pesquisa do prximo n terminal.

Figura 7 Demonstrao da aplicao do corte alpha-beta

8.1 Concluso
O algoritmo Corte Alpha-Beta, eficiente para determinar quais os ramos que no devem ser explorados. Presume-se, tal como no algoritmo MiniMax, que o jogador MIN far sempre a melhor jogada.
Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial 16

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

ptimo, e apesar de requerer menos tempo que o algoritmo MiniMax, ainda tem um crescimento exponencial (ponto negativo). Quanto complexidade O(bd/2) e as excepo regra o facto de que se o jogador MIN cometer falhas, estas no so tidas em contas, visto que no temos toda a rvore presente. E este algoritmo tambm no completo.

9. Concluses Finais
As ideias mais importantes apresentadas neste trabalho foram: Um jogo pode ser definido pelo seu estado inicial (em que local se encontram as peas), os operadores (jogadas possveis e legais), um teste terminal (que indica quando o jogo acabou), e uma funo de utilidade ou de avaliao (que indica quem ganhou). Em jogos de dois jogadores, com informao perfeita sobre o jogo, o algoritmo MINIMAX consegue determinar qual a melhor jogada (assumindo sempre que o adversrio tambm escolhe sempre a melhor jogada), ao percorrer toda a arvore completa de todas as jogadas possveis. O algoritmo Alpha-Beta, realiza os mesmos clculos que o algoritmo MINIMAX, mas mais eficiente pois corta ramificaes que so irrelevantes para o resultado final. Na maioria dos casos impossvel considerar toda a arvore de jogadas, logo necessrio cortar a arvore ou limitar a sua construo. Ento necessrio a substituio da funo de utilidade por uma funo de avaliao, que estime o valor dos nodos terminais. Os jogos de sorte podem ser tratados atravs de uma extenso ao algoritmo MINIMAX, que atribui um valor aos Nodos Sorte atravs de uma mdia da utilidade dos seus nodos filho.

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

17

Estratgias de Resoluo de Problemas Considerando Adversrios (Jogos)

10.
Links:

Referncias Bibliogrficas

http://dme.uma.pt/edu/iia http://www.comp.ufla.br/~andreia/min.pdf http://www.lti.pcs.usp.br/pcs2428/aulas/Aula10-Minimax05_v2.pdf www.ibm.com http://en.wikipedia.org/

Livros: Stuart Russel e Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall (Series in Artificial Intelligence), 2nd edition 2003 Elen Rich and Kevin Knight; Artificial Intelligence 2nd Edition, McGraw-Hil, 1991

Departamento de Matemtica e Engenharias Introduo Inteligncia Artificial

18

Vous aimerez peut-être aussi