iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial...

64
Introdução à Inteligência Artificial Universidade da Madeira 1 Inteligência Artificial Inteligência Artificial Estrat Estraté gias de Resolu gias de Resoluç ão de ão de Problemas Considerando Advers Problemas Considerando Adversá rios rios (Jogos) (Jogos) Agenda Agenda Parte 1 Parte 1 Introdu Introduç ão ão à procura a procura a dvers dversá ria ria Algoritmo Algoritmo Mini Mini- Max Max Poda Poda Alpha Alpha- Beta Beta Parte 2 Parte 2 Decisões imperfeitas Decisões imperfeitas Jogos não Determin Jogos não Determiní sticos sticos

Transcript of iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial...

Page 1: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

1

Inteligência ArtificialInteligência Artificial

EstratEstratéégias de Resolugias de Resoluçção de ão de Problemas Considerando AdversProblemas Considerando Adversáários rios

(Jogos)(Jogos)

AgendaAgenda

Parte 1Parte 1IntroduIntroduçção ão àà procura aprocura adversdversááriariaAlgoritmo Algoritmo MiniMini--MaxMaxPoda Poda AlphaAlpha--BetaBeta

Parte 2Parte 2Decisões imperfeitasDecisões imperfeitasJogos não DeterminJogos não Determiníísticossticos

Page 2: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

2

MotivaMotivaççãoãoOs procedimentos de procura cega e procura heurOs procedimentos de procura cega e procura heuríística stica apenas resultam em problemas (eventualmente jogos) apenas resultam em problemas (eventualmente jogos) de um de um úúnico agente, dado que:nico agente, dado que:

Não existe a noNão existe a noçção de turno, se existir mais de um ão de turno, se existir mais de um agente envolvido, estes actuam de forma agente envolvido, estes actuam de forma cooperativa.cooperativa.

Não se considera a possibilidade de jogadas do Não se considera a possibilidade de jogadas do adversadversáário.rio.

Utilidade dos jogos em Problemas Utilidade dos jogos em Problemas Considerando AdversConsiderando Adversáários rios

Os jogos são ideais para estudar o uso de Os jogos são ideais para estudar o uso de estratestratéégias adversgias adversáárias, dado que: rias, dado que:

São aplicaSão aplicaçções atractivas para mões atractivas para méétodos de IA:todos de IA:

FormulaFormulaçção simples do problema (acão simples do problema (acçções bem definidas);ões bem definidas);Ambiente acessAmbiente acessíível;vel;AbstracAbstracçção (representaão (representaçção simplificada de problemas reais);ão simplificada de problemas reais);SinSinóónimo de inteligência;nimo de inteligência;Têm uma boa medida para o desempenho: a vitTêm uma boa medida para o desempenho: a vitóória.ria.

Page 3: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

3

Utilidade dos jogos em Problemas Utilidade dos jogos em Problemas Considerando AdversConsiderando Adversáários rios

Conduzem aos seguintes desafios:Conduzem aos seguintes desafios:

Tamanho + limitaTamanho + limitaçção de tempo (35ão de tempo (35100 100 nnóós para s para xadrez); xadrez); Incerteza devido ao outro jogador;Incerteza devido ao outro jogador;Problema de Problema de ““contingênciacontingência””: o agente deve agir : o agente deve agir antes de completar a procura (busca).antes de completar a procura (busca).

CaracterCaracteríísticas dos Jogossticas dos Jogos

Ambientes competitivos, nos quais os Ambientes competitivos, nos quais os agentes têm objectivos que estão em conflito.agentes têm objectivos que estão em conflito.

Os jogos são normalmente classificados Os jogos são normalmente classificados como de habilidade, e/ou de sorte.como de habilidade, e/ou de sorte.

Page 4: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

4

Tipos de JogosTipos de JogosTipos de Jogos:Tipos de Jogos:

InformaInformaçção:ão:Perfeita: Xadrez, Damas, Perfeita: Xadrez, Damas, GoGo, , OthelloOthelloImperfeitas: Imperfeitas: PokerPoker, , BridgeBridge, Bisca, Copas, Bisca, Copas

Sorte ou DeterminSorte ou Determiníísticos:sticos:DeterminDeterminíísticos: Xadrez, Damas, sticos: Xadrez, Damas, GoGo, , OthelloOthello..Jogos de Sorte: Gamão, MonopJogos de Sorte: Gamão, Monopóólio, lio, PokerPoker

Plano de Plano de ““AtaqueAtaque””::Algoritmo para o jogo perfeitoAlgoritmo para o jogo perfeitoHorizonte finito, avaliaHorizonte finito, avaliaçção aproximadaão aproximadaCortes na Cortes na áárvores para reduzir custos rvores para reduzir custos

Jogos e IAJogos e IA

Quando os computadores se tornaram programQuando os computadores se tornaram programááveis, veis, em 1950, em 1950, ClaudeClaude ShannonShannon e e AlanAlan TuringTuring programaram o programaram o primeiro jogo de Xadrez.primeiro jogo de Xadrez.

Prova que uma mProva que uma mááquina pode, de facto, fazer algo que se quina pode, de facto, fazer algo que se pensava requerer inteligência.pensava requerer inteligência.As regras são simples, mas o jogo As regras são simples, mas o jogo éé complexo.complexo.Mundo totalmente acessMundo totalmente acessíível ao agente.vel ao agente.Factor de ramificaFactor de ramificaçção mão méédio dio éé de 35, partida com 50 jogadas => de 35, partida com 50 jogadas => 3535100 100 folhas numa folhas numa áárvore de pesquisa (embora srvore de pesquisa (embora sóó existam 10existam 1040 40

posiposiçções legais).ões legais).

Algumas das caracterAlgumas das caracteríísticas que tornaram o xadrez sticas que tornaram o xadrez atractivo computacionalmente são partilhadas por outros atractivo computacionalmente são partilhadas por outros jogos.jogos.

Page 5: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

5

Jogos e IAJogos e IA

No xadrez, o jogo desenvolveNo xadrez, o jogo desenvolve--se entre dois se entre dois agentes rivais.agentes rivais.

O jogo O jogo éé completamente acesscompletamente acessíível para ambos vel para ambos os agentes.os agentes.

Isto faz com que seja possIsto faz com que seja possíível pensar o vel pensar o desenvolvimento do jogo como uma procura desenvolvimento do jogo como uma procura num espanum espaçço formado pelas posio formado pelas posiçções do mesmo, ões do mesmo, as quais são controladas alternativamente por as quais são controladas alternativamente por cada um dos rivais.cada um dos rivais.

Jogos e IAJogos e IA

Como dizComo dizííamos, o jogo desenvolveamos, o jogo desenvolve--se entre se entre dois jogadores que são oponentes aquando os dois jogadores que são oponentes aquando os seus objectivos.seus objectivos.

Tradicionalmente, estes jogadores recebem os Tradicionalmente, estes jogadores recebem os nomes de nomes de maxmax ee minmin por motivos que veremos a por motivos que veremos a seguir.seguir.

Max comeMax começça o jogo e a partir dali move em a o jogo e a partir dali move em forma alternada atforma alternada atéé o fim do jogo.o fim do jogo.

Page 6: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

6

Jogos e IAJogos e IAUm jogo pode definirUm jogo pode definir--se formalmente como um problema se formalmente como um problema

de procura, com as seguintes caracterde procura, com as seguintes caracteríísticas: sticas:

Um Um estado inicialestado inicial que inclui a posique inclui a posiçção do tabuleiro e a indicaão do tabuleiro e a indicaçção de ão de quem deve jogar.quem deve jogar.Um Um conjunto de operadores conjunto de operadores que definem os movimentos vque definem os movimentos váálidos lidos áádisposidisposiçção dos jogadores.ão dos jogadores.Um Um teste de terminateste de terminaççãoão que estabelece quando o jogo estque estabelece quando o jogo estááfinalizado. Os estados onde o jogo acaba chamamfinalizado. Os estados onde o jogo acaba chamam--se se finais.finais.Uma Uma funfunçção de utilidade ão de utilidade que atribui um valor numque atribui um valor numéérico ao estado rico ao estado final do jogo, que representa os pontos que final do jogo, que representa os pontos que maxmax pode ganhar no pode ganhar no jogo. Sendo que usualmente os valores são 1 (ganha jogo. Sendo que usualmente os valores são 1 (ganha maxmax), 0 ), 0 (empate), (empate), --1 (ganha 1 (ganha minmin).).

Jogos e IAJogos e IANum problema de procura, Num problema de procura, éé suficiente que suficiente que maxmax, , que comeque começça o jogo, expandisse a a o jogo, expandisse a áárvore das rvore das jogadas e encontrasse o caminho atjogadas e encontrasse o caminho atéé hháá meta, no meta, no qual seria um estado onde qual seria um estado onde maxmax ganhava.ganhava.

PorPoréém, m,

o jogador o jogador minmin tambtambéém quer ganhar o jogo!m quer ganhar o jogo!

Isto obriga a Isto obriga a maxmax a encontrar uma estrata encontrar uma estratéégia que gia que lhe permita atingir o seu objectivo.lhe permita atingir o seu objectivo.

Page 7: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

7

x x xx x x

x x x

max

min…xo xo xo

Utilidade para max -1 0 +1

xoo

ox

xo

o oxx

xoo

ox

xxo

xxxTerminais

…… …

xox

xox

xox max

Max e Max e MinMin

Vamos utilizar uma convenVamos utilizar uma convençção para representar ão para representar graficamente as situagraficamente as situaçções do jogo em forma de ões do jogo em forma de áárvore.rvore.O O quadradoquadrado e o e o triângulotriângulo representam as representam as jogadas do jogadas do maxmax e o e o ccíírculorculo e o e o triângulotriânguloinvertido as jogadas do invertido as jogadas do minmin..

oue

max min

e

max min

Page 8: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

8

Max e Max e MinMinmax

min

max

min

Capa ou ply

Max e Max e MinMinmax

min

max

min

Capa ou ply

Page 9: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

9

O Algoritmo O Algoritmo MinimaxMinimax

Este algoritmo estEste algoritmo estáá desenhado para determinar desenhado para determinar uma estratuma estratéégia gia óóptima para que ptima para que maxmax ganhe.ganhe.

Dessa forma pode decidir qual Dessa forma pode decidir qual éé a melhor a melhor escolha a cada turno onde tem que jogar. escolha a cada turno onde tem que jogar.

As suposiAs suposiçções fundamentais são duas: ões fundamentais são duas: maxmax vváá realizar realizar sempresempre a sua melhor jogada. a sua melhor jogada.

minmin vváá realizar realizar sempresempre a pior jogada para a pior jogada para maxmax..

O Algoritmo O Algoritmo MinimaxMinimax1.1. Gerar a Gerar a áárvore completa atrvore completa atéé aos estados terminais.aos estados terminais.2.2. Aplicar a funAplicar a funçção utilidade a esses estados.ão utilidade a esses estados.3.3. Propagar o valor da utilidade da seguinte forma: O Propagar o valor da utilidade da seguinte forma: O

melhor valor para melhor valor para MinMin (ou seja, o pior para Max).(ou seja, o pior para Max).4.4. Escolher o movimento com o valor mais elevadoEscolher o movimento com o valor mais elevado..5.5. O valor no nO valor no nóó raiz raiz éé o valor mo valor mááximo que ximo que maxmax pode pode

obter.obter.

O O MinimaxMinimax faz procura cega em profundidade.faz procura cega em profundidade.

Page 10: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

10

Exemplo 1Exemplo 1

1 3 -1 0 1 4 0 2 -1 5 7 1

Exemplo 1Exemplo 1

1 3 -1 0 1 4 0 2 -1 5 7 1

3 4 2 7

Page 11: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

11

3 2

Exemplo 1Exemplo 1

1 3 -1 0 1 4 0 2 -1 5 7 1

3 4 2 7

3 2

Exemplo 1Exemplo 1

1 3 -1 0 1 4 0 2 -1 5 7 1

3 4 2 7

3

Page 12: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

12

Exemplo 2Exemplo 2

-1

1 -1

1

1

1

1 -1-1

-1

Exemplo 2Exemplo 2

-1

1 -1

1

1

1

1 -1-1

-1

1

-1

Page 13: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

13

Exemplo 2Exemplo 2

-1

-1

1 -1

1

1

1

1 -1-1

-1

1

1

-1

Exemplo 2Exemplo 2

-1

-1

1 -1

1

1

1

1 -1-1

-1

1

1

1

-1

Page 14: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

14

Exemplo 2Exemplo 2

-1

-1

1 -1

1

1

1

1 -1-1

-1

1

1

1

-1 1 -1

Exemplo 2Exemplo 2

-1

-1

1 -1

1

1

1

1 -1-1

-1

1

1

1

-1 1 -1

1

Page 15: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

15

Algoritmo Algoritmo MinimaxMinimax

functionfunction MINMIN--VALUE(VALUE(statestate) ) returnsreturns a a utilityutility valuevalueifif TERMINALTERMINAL--TEST(TEST(statestate) ) thenthen returnreturn UTILITY(UTILITY(statestate))

v v ∞∞forfor a, s a, s inin SUCESSORS(SUCESSORS(statestate) ) dodo

v v MIN(MIN(vv,MAX_VALUE(s,MAX_VALUE(s))))returnreturn vv

functionfunction MAXMAX--VALUE(VALUE(statestate) ) returnsreturns a a utilityutility valuevalueifif TERMINALTERMINAL--TEST(TEST(statestate) ) thenthen returnreturn UTILITY(UTILITY(statestate))

vv --∞∞forfor a, s a, s inin SUCESSORS(SUCESSORS(statestate) ) dodo

v v MAX(MAX(vv,MIN_VALUE(s,MIN_VALUE(s))))returnreturn vv

functionfunction MINIMAXMINIMAX--DECISION(DECISION(statestate) ) returnsreturns anan actionactioninputsinputs: : statestate, , currentcurrent statestate inin gamegamerr MAXMAX--VALUE(VALUE(statestate))

returnreturn thethe actionaction inin SUCESSORS(SUCESSORS(statestate) ) withwith valuevalue rr

Propriedades do Propriedades do MinimaxMinimax

Completo? Sim, se a Completo? Sim, se a áárvore for finita!rvore for finita!Pode existir uma estratPode existir uma estratéégia finita mesmo numa gia finita mesmo numa áárvore infinita!rvore infinita!

ÓÓptimo? Sim, contra um adversptimo? Sim, contra um adversáário rio óóptimo!ptimo!E se o adversE se o adversáário não for rio não for óóptimo?ptimo?O Max vai jogar ainda melhor! O Max vai jogar ainda melhor!

Complexidade no Tempo? OComplexidade no Tempo? O (b (b mm))Onde: b = factor de ramificaOnde: b = factor de ramificaçção (movimentos vão (movimentos váálidos)lidos)

m = profundidadem = profundidade

Complexidade no EspaComplexidade no Espaçço? O (b m) (explorao? O (b m) (exploraçção ão primeiro em profundidade).primeiro em profundidade).

Problema: InviProblema: Inviáável para qualquer jogo minimamente vel para qualquer jogo minimamente complexo.complexo.

Page 16: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

16

ExercExercííciocio

Dados 5 palitos cada jogador pode retirar Dados 5 palitos cada jogador pode retirar 1, 2 ou 3 por turno.1, 2 ou 3 por turno.Perde o jogador que retira o Perde o jogador que retira o úúltimo palito.ltimo palito.SerSeráá que que maxmax pode ganhar o jogo?pode ganhar o jogo?

5

4 3 2

3 2 1 01 02 1

112 01

1 0

00

Page 17: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

17

1-11-1

1

-1

11

1-1

-1

5

4 3 2

3 2 1 01 02 1

112 01

1 0

00

-1-1

1-11-1

1

-1

11

1-1

-1-1

1

-1

1

5

4 3 2

3 2 1 01 02 1

112 01

1 0

00

-1-1

Page 18: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

18

1-11-1

1

-1

11

1-1

-1-1

1

-1

1

5

4 3 2

3 2 1 01 02 1

112 01

1 0

00

-1-1

-1

-1

-1

-1

O Max perde o jogo

1-11-1

1

-1

1

1

-1

1

5

4 3 2

3 2 1 01 02 1

112 01

1 0

00

-1-1

-1

Pergunta: Preciso saber o valor de X Para calcular Y?

X

Y

Page 19: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

19

Poda Poda AlphaAlpha--BetaBeta

O que O que éé a poda (corte)?a poda (corte)?ÉÉ o processo de eliminar uma ramificao processo de eliminar uma ramificaçção da ão da áárvore de pesquisa de forma a que não seja rvore de pesquisa de forma a que não seja examinada.examinada.

Porquê podar?Porquê podar?Para eliminar nPara eliminar nóós desnecesss desnecessáários rios àà pesquisa.pesquisa.Para acelerar o processo de pesquisa.Para acelerar o processo de pesquisa.

Poda Poda AlphaAlpha--BetaBetaA poda A poda AlphaAlpha--BetaBeta não afecta o resultado final.não afecta o resultado final.

Boa ordenaBoa ordenaçção melhora a eficiência dos cortes.ão melhora a eficiência dos cortes.

Com ordenaCom ordenaçção perfeita: ão perfeita: complexidade no tempo = O (b complexidade no tempo = O (b m/2m/2))

Duplica a profundidade de pesquisaDuplica a profundidade de pesquisa

Uma tUma téécnica particular para encontrar a solucnica particular para encontrar a soluçção ão óóptima ptima de acordo com a profundidade limite de pesquisa de acordo com a profundidade limite de pesquisa ééusando funusando funçções de avaliaões de avaliaçção.ão.

Page 20: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

20

Poda Poda AlphaAlpha--BetaBeta

Retorna as mesmas escolhas que o Retorna as mesmas escolhas que o MinimaxMinimax, , mas examina menos nmas examina menos nóós. s. O nome deriva das duas variO nome deriva das duas variááveis que são veis que são passadas durante o percurso de pesquisa e que passadas durante o percurso de pesquisa e que restringem o conjunto das solurestringem o conjunto das soluçções possões possííveis:veis:

AlphaAlpha –– representa o valor mais alto encontrado no representa o valor mais alto encontrado no caminho de caminho de MaxMax..BetaBeta –– representa o valor mais baixo encontrado representa o valor mais baixo encontrado no caminho de no caminho de MinMin..

ImplementaImplementaççãoãoAjustar o Ajustar o alphaalpha do ndo nóó da raiz da raiz áá infinidade negativa e infinidade negativa e betabetaáá infinidade positiva.infinidade positiva.

Procurar a profundidade, propagando o Procurar a profundidade, propagando o alphaalpha e e betabetapara todos os npara todos os nóós visitados ats visitados atéé alcanalcanççar a profundidade ar a profundidade pretendida.pretendida.

Aplicar a funAplicar a funçção de avaliaão de avaliaçção para comeão para começçar a utilidade ar a utilidade desse ndesse nóó..

Se o pai desse nSe o pai desse nóó for um nfor um nóó Max, e a utilidade calculada Max, e a utilidade calculada for maior do que o valor actual do for maior do que o valor actual do alphaalpha pai, substitui pai, substitui esse valor do esse valor do alphaalpha com esta utilidade.com esta utilidade.

Page 21: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

21

ImplementaImplementaççãoão

Se o pai deste nSe o pai deste nóó éé um num nóó MIN, e o valor de utilidade MIN, e o valor de utilidade calculado calculado éé menor que o valor menor que o valor betabeta de seus pais, de seus pais, coloca em coloca em betabeta o valor de utilidade obtido.o valor de utilidade obtido.

Com base nestes valores, compara os valores Com base nestes valores, compara os valores alphaalphae e betabeta dos pais deste ndos pais deste nóó para determinar se deve para determinar se deve ““olharolhar”” para as outras folhas ou então se deve para as outras folhas ou então se deve retornar os valores conseguidos (retornar os valores conseguidos (backtrackbacktrack upup).).

Continua a pesquisa Continua a pesquisa ““primeiro em profundidadeprimeiro em profundidade””desta forma, atdesta forma, atéé que todos os passos com mais que todos os passos com mais potência tenham sido avaliados.potência tenham sido avaliados.

Poda Poda AlphaAlpha--BetaBeta. Exemplo 1. Exemplo 1

Page 22: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

22

-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

+∞

-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 23: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

23

+∞

-∞

-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

+∞

-∞

-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 24: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

24

-1

+∞

max(-1, -∞) = -1

-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

-1

-∞

+∞

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 25: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

25

-1

-1

-∞

+∞

+∞

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1

-1

-∞

+∞

+∞

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 26: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

26

-1

1

-1

-∞

+∞

min(1, +∞) = 1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1

-1

-∞

+∞

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 27: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

27

-1

1 -1

-1

-∞

+∞

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

-1

-∞

+∞

min(1, -1) = -1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 28: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

28

-1

1 -1

-1

-∞

+∞

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

-1

-∞

+∞

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 29: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

29

-1

1 -1

-∞

+∞

-1

max(-1, -1) = -1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

-1

-∞

+∞

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 30: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

30

-1

1 -1

min(-1, +∞) = -1

-1

-∞

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

-1

-1

-∞

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 31: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

31

-1

1 -1

-1

-1

max(-1, -∞) = -1

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

-1

-1 +∞

-1

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 32: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

32

-1

1 -1

1-1

-1 +∞

-1

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

1-1

-1 1

-1

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 33: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

33

-1

1 -1

1-1

-1 1

-1

-1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

1-1

-1 1

-1

-1

-∞

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 34: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

34

-1

1 -1

1-1

-1 1

-1

-1

-∞

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

1-1

-1 1

-1

-11

max(1, -∞) = 1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 35: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

35

-1

1 -1

1-1

-1 1

-1

-11

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

1-1

-1 1

-1

-11

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 36: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

36

-1

1 -1

1-1

-1 1

1

-11

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

1-1

-1 1

1

-11

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 37: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

37

-1

1 -1

1-1

-1 1

max(-1, 1) = 1

-1

1

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

-1

1 -1

1-1

-1 1

1

-1

1

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Page 38: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

38

-1

1 -1

1-1

-1 1

1

-11

1

Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11

Poda Poda AlfaAlfa--BetaBeta

-1

1 -1

1

1

1

1 -1-1

-1

Nó max

Page 39: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

39

Poda Poda AlfaAlfa--BetaBetaNó min

-1

Poda Poda AlfaAlfa--BetaBetaNó min

-0.1

0.03

-0.05

Page 40: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

40

Poda Poda AlfaAlfa--BetaBeta

-0.1

0.03

-0.05

-0.05

Nó minO valor a propagar será

sempre menor ou igual que –0.05

Algoritmo Algoritmo AlphaAlpha--BetaBeta

functionfunction MAXMAX--VALUE(VALUE(statestate,, αα,, ββ ) ) returnsreturns a a utilityutility valuevalueinputsinputs: : statestate, , currentcurrent statestate inin gamegame

αα, , thethe valuevalue ofof thethe bestbest alternativealternative for MAX for MAX alongalong thethe pathpath to to statestateββ, , thethe valuevalue ofof thethe bestbest alternativealternative for MIN for MIN alongalong thethe pathpath to to statestate

ifif TERMINALTERMINAL--TEST(TEST(statestate) ) thenthen returnreturn UTILITY(UTILITY(statestate))vv -- ∞∞forfor a, s a, s inin SUCESSORS(SUCESSORS(statestate) do) do

v v MAX(MAX(vv, , MINMIN--VALUE(sVALUE(s, , αα,, ββ))))ifif vv ≥≥ ββ thenthen returnreturn vvαα MAX(MAX(ββ,,vv))

returnreturn vv

functionfunction ALPHAALPHA--BETABETA--SEARCH(SEARCH(statestate) ) returnsreturns anan actionactioninputsinputs: : statestate, , currentcurrent statestate inin gamegame

vv MAXMAX--VALUE(VALUE(statestate, , --∞∞, +, +∞∞))returnreturn thethe actionaction inin SUCESSORS(SUCESSORS(statestate) ) withwith valuevalue vv

Page 41: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

41

Algoritmo Algoritmo AlphaAlpha--BetaBeta ((contcont.).)

functionfunction MINMIN--VALUE(VALUE(statestate,, αα,, ββ ) ) returnsreturns a a utilityutility valuevalueinputsinputs: : statestate, , currentcurrent statestate inin gamegame

αα, , thethe valuevalue ofof thethe bestbest alternativealternative for MAX for MAX alongalong thethe pathpath to to statestateββ, , thethe valuevalue ofof thethe bestbest alternativealternative for MIN for MIN alongalong thethe pathpath to to statestate

ifif TERMINALTERMINAL--TEST(TEST(statestate) ) thenthen returnreturn UTILITY(UTILITY(statestate))vv + + ∞∞

forfor a, s a, s inin SUCESSORS(SUCESSORS(statestate) do) dovv MIN(MIN(vv, , MAXMAX--VALUE(sVALUE(s,, αα,, ββ,)),))

ifif vv ≤≤ αα thenthen returnreturn vvββ MAX(MAX(ββ,,vv))returnreturn vv

EficiênciaEficiênciaA eficiência depende da ordem como A eficiência depende da ordem como éé feita a feita a progressão da pesquisa.progressão da pesquisa.

Se b Se b éé o factor de ramificao factor de ramificaçção e m ão e m éé a profundidade da a profundidade da procura, o melhor caso para procura, o melhor caso para alphaalpha--betabeta éé O (b O (b m/2m/2),),isto isto éé, , a mesma quantidade que o a mesma quantidade que o MinimaxMinimax numa numa áárvore com rvore com metade da profundidade.metade da profundidade.

ComparadoComparado com o melhor caso do com o melhor caso do MinimaxMinimax que que éé de O de O ((bbmm), i), isto sto éé, , examina a mesma quantidade de estados, examina a mesma quantidade de estados, no pior dos casos.no pior dos casos.

Page 42: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

42

ProblemasProblemas

Se sSe sóó existe um movimento vexiste um movimento váálido, este algoritmo lido, este algoritmo continuarcontinuaráá a gerar uma a gerar uma áárvore inteira de pesquisa.rvore inteira de pesquisa.

Designado para identificar o Designado para identificar o ““melhormelhor”” movimento e movimento e não para diferenciar entre outros movimentos.não para diferenciar entre outros movimentos.

Menosprezam movimentos que penalizam algo no Menosprezam movimentos que penalizam algo no ininíício para obter melhores posicio para obter melhores posiçções mais tarde. ões mais tarde.

AvaliaAvaliaçção da utilidade usualmente não ão da utilidade usualmente não éé exacta.exacta.

Assume que o oponente escolherAssume que o oponente escolheráá sempre o melhor sempre o melhor movimento possmovimento possíível.vel.

ResumindoResumindo……

Um Jogo Um Jogo éé definido pelo seu estado inicial (disposidefinido pelo seu estado inicial (disposiçção das ão das pepeçças no tabuleiro), o operador (que define os movimentos as no tabuleiro), o operador (que define os movimentos vváálidos), um teste terminal (que nos diz quando um jogo chega lidos), um teste terminal (que nos diz quando um jogo chega ao fim), e uma funao fim), e uma funçção de utilidade (que nos diz quem ganhou).ão de utilidade (que nos diz quem ganhou).

Em jogos com informaEm jogos com informaçção perfeita entre dois jogadores, o ão perfeita entre dois jogadores, o algoritmo algoritmo minimaxminimax pode determinar a melhor jogada pode determinar a melhor jogada (assumindo que o oponente joga sempre da melhor maneira), (assumindo que o oponente joga sempre da melhor maneira), enumerando por completo toda a enumerando por completo toda a áárvore de jogo.rvore de jogo.

O algoritmo O algoritmo alphaalpha--betabeta éé mais eficiente que o mais eficiente que o minimaxminimax por por causa dos cortes efectuados a causa dos cortes efectuados a áárvore.rvore.

Page 43: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

43

Fim Parte 1Fim Parte 1

IntroduIntroduçção ão àà

Inteligência ArtificialInteligência Artificial

EstratEstratéégias de Resolugias de Resoluçção de ão de Problemas Considerando AdversProblemas Considerando Adversáários rios

(Jogos)(Jogos)

Page 44: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

44

AgendaAgenda

Parte 1Parte 1IntroduIntroduçção ão àà procura aprocura adversdversááriariaAlgoritmo Algoritmo MiniMini--MaxMaxPoda Poda AlphaAlpha--BetaBeta

Parte 2Parte 2Decisões imperfeitasDecisões imperfeitasJogos não DeterminJogos não Determiníísticossticos

Decisões ImperfeitasDecisões Imperfeitas

Page 45: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

45

Na maioria dos jogosNa maioria dos jogos……

O espaO espaçço de procura o de procura éé muito grande.muito grande.Existem restriExistem restriçções a nões a níível de tempo.vel de tempo.Por exemplo: o factor de ramificaPor exemplo: o factor de ramificaçção do xadrez ão do xadrez éé 3535

Supondo que o nosso agente procura 1000 estados Supondo que o nosso agente procura 1000 estados por segundopor segundoE tem um tempo limite de 150 segundosE tem um tempo limite de 150 segundos

Então pode procurar 150.000 posiEntão pode procurar 150.000 posiçções por movimentoões por movimento

Na maioria dos jogosNa maioria dos jogos……

Que equivale a olhar 3 ou 4 jogadas em frenteQue equivale a olhar 3 ou 4 jogadas em frenteporque 35porque 3533 = 42.875 e 35= 42.875 e 3544 = 1.500.625= 1.500.625

Um jogador que olha e frente com profundidade 4 Um jogador que olha e frente com profundidade 4 não não éé um grande jogador!um grande jogador!

Profundidade 4 => Jogador NovatoProfundidade 4 => Jogador NovatoProfundidade 8 => PC, Jogador humano muito bomProfundidade 8 => PC, Jogador humano muito bomProfundidade 12 => Profundidade 12 => DeepDeep BlueBlue, , KasparovKasparov

Page 46: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

46

CrCrííticas ao ticas ao MiniMaxMiniMax

ProblemasProblemasO tempo gasto O tempo gasto éé totalmente impratictotalmente impraticáável, porvel, poréém o m o algoritmo serve como base para outros malgoritmo serve como base para outros méétodos mais todos mais realrealíísticos.sticos.Complexidade: O (b Complexidade: O (b mm).).

Para melhorarPara melhorarCortar a Cortar a áárvore onde a procura seria irrelevante: poda rvore onde a procura seria irrelevante: poda

alfaalfa--betabeta..PorPoréém não m não éé suficiente!suficiente!

CrCrííticas ao ticas ao MiniMaxMiniMax

Para utilizar a funPara utilizar a funçção de avaliaão de avaliaçção preciso de ão preciso de nnóós terminais.s terminais.

SerSeráá que posso avaliar nque posso avaliar nóós interms interméédios sem dios sem ter que chegar ao fim da ter que chegar ao fim da áárvore?rvore?

Page 47: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

47

SoluSoluççãoão

Alterar o Alterar o MinimaxMinimax ou o ou o AlphaAlpha Beta de dois modos:Beta de dois modos:

Substituindo a funSubstituindo a funçção de utilidade por uma ão de utilidade por uma funfunçção ão de avaliade avaliaçção heurão heuríísticastica EVAL.EVAL.

Que dQue dáá uma estimativa da utilidade das posiuma estimativa da utilidade das posiçções.ões.

Substituindo o teste terminal por um teste de Substituindo o teste terminal por um teste de CutoffCutoff..Que decide quando aplicar a funQue decide quando aplicar a funçção EVAL. ão EVAL. Isto Isto éé, quando vou olhar para a frente., quando vou olhar para a frente.

A funA funçção de avaliaão de avaliaççãoão

Retorna uma estimativa do valor de utilidade Retorna uma estimativa do valor de utilidade esperado do jogo, de uma dada posiesperado do jogo, de uma dada posiçção.ão.

retorna uma estimativa do valor do prretorna uma estimativa do valor do próóximo movimento.ximo movimento.

O desempenho de um programa de jogo estO desempenho de um programa de jogo estáádependente da qualidade das fundependente da qualidade das funçções de avaliaões de avaliaçção.ão.

As diferentes funAs diferentes funçções de avaliaões de avaliaçção estão ão estão dependentes da natureza do jogo.dependentes da natureza do jogo.

FunFunçção de avaliaão de avaliaçção simples para o jogo de xadrez: ão simples para o jogo de xadrez: éé a soma dos valores das pea soma dos valores das peçças brancas em jogo as brancas em jogo menos a soma dos valores das pemenos a soma dos valores das peçças negras em as negras em jogo.jogo.

Como desenhar boas funComo desenhar boas funçções de avaliaões de avaliaçção?ão?

Page 48: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

48

Qualidade da funQualidade da funçção de avaliaão de avaliaççãoão

As funAs funçções de avaliaões de avaliaçção devem estar de acordo ão devem estar de acordo com a funcom a funçção de utilidade, em relaão de utilidade, em relaçção aos estados ão aos estados terminais.terminais.

Não deve demorar muito tempo (equilNão deve demorar muito tempo (equilííbrio entre brio entre exactidão e o custo).exactidão e o custo).

Para estados não terminais, a funPara estados não terminais, a funçção de avaliaão de avaliaçção ão deve estar fortemente relacionada com a actual deve estar fortemente relacionada com a actual hiphipóótese de ganhar.tese de ganhar.

FunFunçção linearão linearFunFunçção de peso linear:ão de peso linear:

EVAL(S)=w1f1(s)+w2f2(s)+…+wnfn(s)wwii éé um pesoum pesoffii éé uma caracteruma caracteríística da posistica da posiççãoão

Por exemplo no xadrez:Por exemplo no xadrez:wwii pode ser o valor de cada pepode ser o valor de cada peççaaffii pode ser o npode ser o núúmero de pemero de peçças de cada tipo no as de cada tipo no tabuleirotabuleiro

Page 49: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

49

Exemplo: XadrezExemplo: XadrezValores:Valores:

Peão=1, Cavalo=3, castelo=5, rainha=9Peão=1, Cavalo=3, castelo=5, rainha=9

PePeçças Pretas:as Pretas:5 peões, 1 cavalo, 2 castelos5 peões, 1 cavalo, 2 castelos

PontuaPontuaçção = 1*(5)+3*(1)+5*(2)ão = 1*(5)+3*(1)+5*(2)= 5+3+10 = 18= 5+3+10 = 18

PePeçças Brancas:as Brancas:5 peões, 1 castelo5 peões, 1 castelo

PontuaPontuaçção = 1*(5)+5*(1)ão = 1*(5)+5*(1)= 5 + 5 = 10= 5 + 5 = 10

PontuaPontuaçção total, deste estado de jogo:ão total, deste estado de jogo:pretas = 18pretas = 18--10 = 810 = 8brancas = 10brancas = 10--18 = 18 = --88

CutoffCutoff

Deve usar uma procura heurDeve usar uma procura heuríística.stica.

Usa uma funUsa uma funçção de avaliaão de avaliaçção.ão.Faz uma estimativa da pontuaFaz uma estimativa da pontuaçção que um estado de jogo ão que um estado de jogo garante.garante.

Desenha o espaDesenha o espaçço de pesquisa ato de pesquisa atéé uma certa uma certa profundidade.profundidade.

A profundidade A profundidade éé escolhida para limitar o tempo necessescolhida para limitar o tempo necessáário.rio.

Coloca os valores estimados no fim dos caminhos.Coloca os valores estimados no fim dos caminhos.

Propaga esses valores atPropaga esses valores atéé ao topo.ao topo.

Page 50: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

50

Como determinar o Como determinar o CutoffCutoff

A profundidade A profundidade éé fixada de modo a não exceder fixada de modo a não exceder os limites (de custo) impostos pelas regras do os limites (de custo) impostos pelas regras do jogo.jogo.

Utilizando um Utilizando um limite de custolimite de custo por jogada e/ou por jogada e/ou participante pode utilizarparticipante pode utilizar--se um algoritmo similar se um algoritmo similar a profundidade iterada.a profundidade iterada.

Como determinar o Como determinar o CutoffCutoff

PorPoréém, este tipo de solum, este tipo de soluçção pode não ser ão pode não ser adequada, jadequada, jáá que uma jogada decisiva pode que uma jogada decisiva pode estar no nestar no níível seguinte aquele onde a procura vel seguinte aquele onde a procura fez o corte.fez o corte.

Isto Isto éé o chamado o chamado efeito horizonte.efeito horizonte.

Page 51: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

51

Melhorias no Melhorias no CutoffCutoffEstabilidade (Estabilidade (QuiescenceQuiescence))

ÉÉ uma propriedade da funuma propriedade da funçção de avaliaão de avaliaçção. Significa que a ão. Significa que a funfunçção de avaliaão de avaliaçção comportaão comporta--se de maneira estse de maneira estáável, isto vel, isto éé, , sem produzir grandes mudansem produzir grandes mudançças no seu valor.as no seu valor.

As funAs funçções de avaliaões de avaliaçção são sóó devem ser aplicadas a posidevem ser aplicadas a posiçções ões estestááveis.veis.

São posiSão posiçções em que ões em que éé improvimprováável haver grandes mudanvel haver grandes mudançças de as de valores no futuro prvalores no futuro próóximo.ximo.

PosiPosiçções não estões não estááveis devem ser expandidas atveis devem ser expandidas atéé um num nóó estestáável vel ser atingido. Esta pesquisa extra ser atingido. Esta pesquisa extra éé chamada de chamada de pesquisa pesquisa ““quiescentequiescente””..

Disponibiliza mais informaDisponibiliza mais informaçção sobre um determinado não sobre um determinado nóó da arvore da arvore de pesquisa mas pode resultar em perda de informade pesquisa mas pode resultar em perda de informaçção sobre os ão sobre os outros noutros nóós.s.

A esperanA esperançça a éé que a funque a funçção continue com uma variaão continue com uma variaçção ão ““leveleve””, , mantendo o seu comportamento almantendo o seu comportamento aléém do horizonte.m do horizonte.

Melhorias no Melhorias no CutoffCutoffEstabilidade (Estabilidade (QuiescenceQuiescence))

Zona de Mudanças Zona de Quietude

Page 52: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

52

Jogos não DeterminJogos não Determiníísticossticos

Jogos que Incluem o Elemento Jogos que Incluem o Elemento SorteSorte

Existem elementos externos que afectam o jogo, tais Existem elementos externos que afectam o jogo, tais como o lancomo o lanççamento de um dado, o tirar de uma carta amento de um dado, o tirar de uma carta ao acaso, o lanao acaso, o lanççar uma moeda, etc.ar uma moeda, etc.

Existem dois tipos de jogos de azar:Existem dois tipos de jogos de azar:Jogos de Azar com InformaJogos de Azar com Informaçção Perfeitaão Perfeita

Ex.: Gamão....Ex.: Gamão....

Jogos de Azar com InformaJogos de Azar com Informaçção Imperfeitaão ImperfeitaEx.: Ex.: PokerPoker......

Deixa de ser possDeixa de ser possíível construir uma vel construir uma áárvore de jogo rvore de jogo standard tal como nos jogos deterministas.standard tal como nos jogos deterministas.

Page 53: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

53

Jogos de Azar com InformaJogos de Azar com Informaçção ão PerfeitaPerfeita

O factor sorte passa a ser uma parte integrante do jogo.O factor sorte passa a ser uma parte integrante do jogo.

Passamos então a ter que considerar dois factores em Passamos então a ter que considerar dois factores em comum para definir um bom jogador: a percomum para definir um bom jogador: a períícia + factor cia + factor sorte.sorte.

NNóós de Probabilidades (1)s de Probabilidades (1)A A áárvore de um Jogo de Azar passa a incluir, rvore de um Jogo de Azar passa a incluir, conjuntamente com os nconjuntamente com os nóós MAX e s MAX e MinMin, os n, os nóós de s de Probabilidades.Probabilidades.

Um nUm nóó de Probabilidade tem associado estados (ou nde Probabilidade tem associado estados (ou nóós) s) sucessores, nomeadamente sucessores, nomeadamente MinMin ou Max.ou Max.

Cada estado sucessor de um nCada estado sucessor de um nóó de probabilidade tem de probabilidade tem associada uma probabilidade de ser pesquisado.associada uma probabilidade de ser pesquisado.

Ex.: Um nEx.: Um nóó de probabilidade envolvendo um DADO de probabilidade envolvendo um DADO terteráá 6 sucessores, cada um deles representando 6 sucessores, cada um deles representando um estado apum estado apóós o lans o lanççamento, sendo todos amento, sendo todos pesquispesquisááveis com a mesma probabilidade de 1/6. veis com a mesma probabilidade de 1/6.

Page 54: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

54

NNóós de Probabilidades (2)s de Probabilidades (2)

O NO Nóó de Probabilidade vem mudar a forma como os de Probabilidade vem mudar a forma como os algoritmos de pesquisa funcionavam anteriormente.algoritmos de pesquisa funcionavam anteriormente.

Como continuar a tomar as decisões correctas ?Como continuar a tomar as decisões correctas ?

Não Não éé posspossíível obter o conjunto de todos os vel obter o conjunto de todos os movimentos vmovimentos váálidos que o adverslidos que o adversáário tem ao seu rio tem ao seu dispor, portanto não podemos ter a certeza de como dispor, portanto não podemos ter a certeza de como evitar certas jogadas por parte do adversevitar certas jogadas por parte do adversáário.rio.

DeixDeixáámos então de calcular valores exactos para mos então de calcular valores exactos para passarmos a calcular valores esperados baseados passarmos a calcular valores esperados baseados em probabilidades.em probabilidades.

IntroduIntroduçção de Não de Nóós de s de ProbabilidadesProbabilidades

Page 55: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

55

CCáálculo do Valor Esperadolculo do Valor Esperado

PõePõe--se então a questão de saber como continuar a se então a questão de saber como continuar a escolher a melhor jogada que nos leve para a melhor escolher a melhor jogada que nos leve para a melhor posiposiçção possão possíível?vel?

A soluA soluçção passa por fazer uma generalizaão passa por fazer uma generalizaçção do ão do algoritmo algoritmo MinimaxMinimax para jogos que incluam npara jogos que incluam nóós de s de probabilidades.probabilidades.

Essa generalizaEssa generalizaçção, denominada de ão, denominada de ExpectiMinimaxExpectiMinimax, em que os N, em que os Nóós Terminais, os Ns Terminais, os Nóós s Max e Max e MinMin continuam a ser avaliados como continuam a ser avaliados como anteriormente e os Nanteriormente e os Nóós de Probabilidades são s de Probabilidades são avaliados com base na mavaliados com base na méédia de todas as suas dia de todas as suas posiposiçções possões possííveis.veis.

Algoritmo Algoritmo ExpectiMinimaxExpectiMinimax

Page 56: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

56

ÁÁrvore com nrvore com nóós de probabilidadess de probabilidadesMAX

Prob.

MIN

MAX

Prob.

2 3 14 3 2 12 3 5 2 7 5 61 2

4 3 3 3 5 7 6 2

3.6 3.0 5.8 4.4

3.0 4.4

3.56

.6 .6 .6 .6.4 .4 .4 .4

.6 .4

AvaliaAvaliaçção de posião de posiçções em jogos com nões em jogos com nóós s de probabilidadesde probabilidades

Para o Para o MinimaxMinimax, qualquer altera, qualquer alteraçção no valor de ão no valor de avaliaavaliaçção nas folhas não afecta qualquer tomada de ão nas folhas não afecta qualquer tomada de decisão.decisão.

Para o Para o ExpectiMinimaxExpectiMinimax, devido , devido áá introduintroduçção de não de nóós s de probabilidades, apenas transformade probabilidades, apenas transformaçções lineares ões lineares positivas vão manter a mesma tomada de decisão.positivas vão manter a mesma tomada de decisão.

Page 57: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

57

Complexidade do Complexidade do ExpectiMinimaxExpectiMinimax

Enquanto no Enquanto no MinimaxMinimax ttíínhamos nhamos O(O(bbmm), no ), no ExpectiMinimaxExpectiMinimax vamos ter vamos ter O(O(bbmmnnmm), onde ), onde nn ééo no núúmero de lanmero de lanççamentos efectuados.amentos efectuados.

O Custo extra torna irrealista olhar muito O Custo extra torna irrealista olhar muito ááfrente.frente.

A nossa habilidade de olhar mais A nossa habilidade de olhar mais áá frente frente estestáá dependente da quantidade de eventos dependente da quantidade de eventos aleataleatóórios que possam ocorrer.rios que possam ocorrer.

Complexidade do Complexidade do ExpectiMinimaxExpectiMinimax

Em jogos de azar, não existe uma sequência exacta Em jogos de azar, não existe uma sequência exacta de movimentos, pois para que essa sequência exista de movimentos, pois para que essa sequência exista éé necessnecessáário em primeiro lugar, por exemplo, lanrio em primeiro lugar, por exemplo, lanççar ar um dado.um dado.

Devido a não existirem sequências exactas de Devido a não existirem sequências exactas de movimentos tornamovimentos torna--se impossse impossíível aplicar os cortes vel aplicar os cortes AlfaAlfa--BetaBeta a estes casos.a estes casos.

SerSeráá então possentão possíível, com vista a reduzir esta vel, com vista a reduzir esta complexidade, transportar a ideia dos cortes complexidade, transportar a ideia dos cortes AlfaAlfa--BetaBeta para jogos que incluam npara jogos que incluam nóós com s com probabilidades? probabilidades? Sim!Sim!

Page 58: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

58

**--MinimaxMinimax

BruceBruce BallardBallard foi o primeiro a desenvolver esta tfoi o primeiro a desenvolver esta téécnica, cnica, chamada chamada **--MinimaxMinimax, para cortes nos n, para cortes nos nóós de s de probabilidades. Ele propôs duas versões do seu probabilidades. Ele propôs duas versões do seu algoritmo, chamadas de Star1 e Star2 (mais tarde algoritmo, chamadas de Star1 e Star2 (mais tarde refinada para Star2.5).refinada para Star2.5).

Nos nNos nóós s MinMin e Max vamos continuar a aplicar os cortes e Max vamos continuar a aplicar os cortes AlfaAlfa--BetaBeta, visto que não foi alterada a defini, visto que não foi alterada a definiçção dos não dos nóós s MinMin e Max, apenas foi introduzido um novo tipo de ne Max, apenas foi introduzido um novo tipo de nóó..

**--MinimaxMinimax

Suponhamos que nos encontrSuponhamos que nos encontráámos num nmos num nóó de de probabilidade.probabilidade.

SerSeráá posspossíível encontrar um limite que nos dê a vel encontrar um limite que nos dê a variavariaçção de valores todos os sucessores deste não de valores todos os sucessores deste nóó, , sem ser necesssem ser necessáário examinar um por um ? rio examinar um por um ?

A primeira vista pode parecer impossA primeira vista pode parecer impossíível porque vel porque esse limite seresse limite seráá a ma méédia de todos os ndia de todos os nóós sucessores.s sucessores.

Antes de efectuarmos o lanAntes de efectuarmos o lanççamento do dado essa amento do dado essa mméédia poderdia poderáá ser qualquer valor.ser qualquer valor.

A soluA soluçção passa por impor limites aos valores ão passa por impor limites aos valores atribuatribuíídos pela fundos pela funçção de Utilidade.ão de Utilidade.

Page 59: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

59

**--MinimaxMinimax: Algoritmo Star1: Algoritmo Star1

**--MinimaxMinimax: Algoritmo Star1: Algoritmo Star1

-5 5 -10 -9 0 5 1 3 -10 -1 5 10

[-2,2]

Min

Chance

Max

-5 -10 0 1 -10

A = 6 (-2-10) + 10 = -62B= 6 (2+10) - 10 = 62 [-62,62]

Limite inicial:A1= N x (alfa - U) + UB1 = N x (beta - L) + L

Próximo limite:A i+1= Ai + U - ViB i+1= Bi + L - Vi

A = -62 + 10 +5 = -47B= 62 – 10 + 5 = 57

[-47,57]

A = -47 + 10 + 10 = -27B = 57 -10 + 10 = 57

[-27,57]

A = -27 + 10 -0 = -17B = 57 – 10 – 0 = 47

[-17,47]

A = -17 +10 -1 = -8B = 47 – 10 – 1 = 36

[-8,36]

?

1/6 1/6 1/6 1/6 1/6 1/6

Page 60: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

60

Jogos de Azar com InformaJogos de Azar com Informaçção ão ImperfeitaImperfeita

Jogos com informaJogos com informaçção imperfeitaão imperfeita

Ex.: Jogos de cartas, onde inicialmente não são Ex.: Jogos de cartas, onde inicialmente não são conhecidas as cartas do adversconhecidas as cartas do adversáário.rio.

Tipicamente Tipicamente éé posspossíível calcular uma probabilidade vel calcular uma probabilidade para cada mão (de jogo) posspara cada mão (de jogo) possíível.vel.

Ideia: calcular o valor do Ideia: calcular o valor do MinimaxMinimax para cada acpara cada acçção ão em cada mão, e depois escolher a acem cada mão, e depois escolher a acçção com o ão com o maior valor esperado atravmaior valor esperado atravéés das vs das váárias mãos.rias mãos.

Caso especial: se uma acCaso especial: se uma acçção ão éé óóptima para todas as ptima para todas as mãos, então mãos, então éé a aca acçção ão óóptima!ptima!

GIB, o melhor programa actual de GIB, o melhor programa actual de bridgebridge, faz a , faz a aproximaaproximaçção desta ideia:ão desta ideia:1) gerando 100 mãos consistentes 1) gerando 100 mãos consistentes 2) escolhendo a ac2) escolhendo a acçção que em mão que em méédia, ganha mais partidasdia, ganha mais partidas

Page 61: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

61

Exemplo Exemplo Mão de quatro cartas de bridge/copas, Max joga primeiro:

Em anEm anááliselise……* A intui* A intuiçção de que o valor de uma acão de que o valor de uma acçção ão éé a ma méédia dos dia dos

valores de todos os estados actuais valores de todos os estados actuais éé ERRADA.ERRADA.

Observando parcialmente, o valor de uma acObservando parcialmente, o valor de uma acçção ão depende do estado de informadepende do estado de informaçção ou estado de crenão ou estado de crençça a no qual o agente estno qual o agente estáá..

Pode gerar e pesquisar uma Pode gerar e pesquisar uma áárvore de estados de rvore de estados de crencrençça.a.

Leva a comportamentos racionais, tais como:Leva a comportamentos racionais, tais como:Agir de forma a obter informaAgir de forma a obter informaççãoãoDar sinais ao parceiroDar sinais ao parceiroAgir aleatoriamente de forma a minimizar informaAgir aleatoriamente de forma a minimizar informaçção que revelaão que revela

Page 62: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

62

SumSumááriorioTrabalhar com jogos Trabalhar com jogos éé extremamente engraextremamente engraççado (e ado (e perigoso).perigoso).

FFáácil testar novas ideias!cil testar novas ideias!FFáácil comparar agentes com outros agentes e com humanos!cil comparar agentes com outros agentes e com humanos!

Jogos ilustram diversos pontos interessantes de IA:Jogos ilustram diversos pontos interessantes de IA:PerfeiPerfeiçção ão éé inatinginatingíível => vel => éé necessnecessáário aproximar!rio aproximar!ÉÉ boa ideia pensar sobre o que pensar!boa ideia pensar sobre o que pensar!A incerteza restringe a atribuiA incerteza restringe a atribuiçção de valores aos estados!ão de valores aos estados!

Jogos funcionam para a IA como a FJogos funcionam para a IA como a Fóórmula 1 para a rmula 1 para a construconstruçção de automão de automóóveis!veis!

Questões PertinentesQuestões PertinentesQ1.Q1. SerSeráá a forma como os computadores jogam xadrez a forma como os computadores jogam xadrez mais essencial do que a forma como as pessoas o mais essencial do que a forma como as pessoas o jogam? jogam?

Q2.Q2. Se os extraterrestres viessem Se os extraterrestres viessem áá terra e nos terra e nos desafiassem para um torneio de xadrezdesafiassem para um torneio de xadrez……

Quem enviaria: o Quem enviaria: o DeepDeep BlueBlue ou o ou o KasparovKasparov? ?

DrewDrew McDermottMcDermott: : ““Dizer que o Dizer que o DeepDeep BlueBlue não pensa realmente sobre o xadrez não pensa realmente sobre o xadrez éé o o mesmo que dizer que os aviões não voam, smesmo que dizer que os aviões não voam, sóó porque não porque não batem as asasbatem as asas””..

Page 63: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

63

Fontes ConsultadasFontes Consultadas

RusselRussel, , NorvigNorvig, , Artificial Artificial IntelligenceIntelligence: A : A ModernModernApproachApproach, , CapCap. 6.. 6.Acetatos Prof. Acetatos Prof. GuillermoGuillermo SimariSimari. . UniversidadUniversidadNacional Nacional deldel SurSur, Argentina, ArgentinaAcetatos Alunos IIA semestre 2004/2005.Acetatos Alunos IIA semestre 2004/2005.Acetatos Prof. Acetatos Prof. GeberGeber Ramalho. CIN. Ramalho. CIN. Universidade Federal de Pernambuco, Brasil.Universidade Federal de Pernambuco, Brasil.

LeiturasLeiturasLIVROSLIVROS

RusselRussel, , NorvigNorvig, , Artificial Artificial IntelligenceIntelligence: A : A ModernModernApproachApproach, , CapCap. 5.. 5.

Page 64: iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial Universidade da Madeira 5 Jogos e IA zNo xadrez, o jogo desenvolve-se entre dois

Introdução à Inteligência Artificial Universidade da Madeira

64

FIMFIM