iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial...
Transcript of iia - jogoscee.uma.pt/edu/iia/acetatos/iia - jogos.pdf · Introdução à Inteligência Artificial...
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
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.
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.
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.
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.
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.
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
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
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.
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
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
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
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
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
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.
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
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
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
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.
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.
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
Introdução à Inteligência Artificial Universidade da Madeira
22
-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11
+∞
-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11
Introdução à Inteligência Artificial Universidade da Madeira
23
+∞
-∞
-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11
-1
+∞
-∞
-∞Poda Poda AlphaAlpha--BetaBeta. . ExemploExemplo 11
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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)
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
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
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?
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?
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
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.
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.
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
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.
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.
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
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
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.
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!
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.
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
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
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
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””..
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.
Introdução à Inteligência Artificial Universidade da Madeira
64
FIMFIM