Introdução à Inteligência rtificial 2007/08 Procura em contextos competitivos jogos Contexto Um agente vs multiagente mbiente cooperativo vs competitivo Teoria dos jogos (ramo da Economia) Sistema multiagente visto como um jogo s acções de cada agente têm impacto nos outros agentes, nos seus ganhos e perdas (ambiente cooperativo ou competitivo) cções podem depender do acaso (dado ) Escolhas possíveis podem ou não ser conhecidas No fim do jogo cada jogador tem uma recompensa (que cada um tenta maximizar) 2
Jogos que vamos ver Jogos de 2 jogadores Jogadores jogam alternadamente Determinísticos Soma Nula o valor do ganho de um é o valor da perda do outro Por exemplo: vitória (), empate (0), derrota (-) Informação perfeita s escolhas dos agentes são conhecidas Ou seja, um ambiente: Determinístico Totalmente observável Jogo como problema de procura Jogos de 2 jogadores ( e ) Estado Inicial Disposição inicial do jogo (tabuleiro) Função sucessor Devolve lista de pares (movimento, estado) com movimentos admissíveis e correspondentes estados resultantes Teste de terminação Verificação de que o jogo chegou ao fim Função de recompensa/utilidade ssociação de um valor numérico a cada estado terminal (ou não função de avaliação) 4 2
Árvore de Jogo Há um limite de tempo: se não é possível encontrar óptimo (vitória) é necessário aproximar 5 Estratégias óptimas Num problema de procura (como os que vimos antes) uma solução óptima é uma sequência de movimentos Num jogo, o adversário () também participa e é imprevisível Só são conhecidos os movimentos possíveis O jogador tem que escolher a melhor jogada, pesando todas as jogadas possíveis de tem que definir uma estratégia; Uma estratégia é óptima se maximiza o ganho com base em escolhas racionais é a melhor possível quando defronta um adversário perfeito 6
Exemplo a a2 a B C D b b2 b c c2 c d d2 d 2 8 2 4 6 4 5 2 Qual a melhor jogada que pode fazer quando a configuração do jogo é? a, a2 ou a? Qual o melhor estado final resultante, tendo em conta as possíveis jogadas de? (No pressuposto de que joga da mesma forma que ) 7 Estratégia I $ Recompensa( ValorMinMax( = # max ValorMinMax( s) s% Sucessores( min ValorMinMax( s) " s% Sucessores( n é nó terminal n é nó n é nó ValorMinMax() =? a a2 a? B? C 2? D 2 b b2 b c c2 c d d2 d 2 8 2 4 6 4 5 2 8 4
Estratégia I $ Recompensa( ValorMinMax( = # max ValorMinMax( s) s% Sucessores( min ValorMinMax( s) " s% Sucessores( n é nó terminal n é nó n é nó ValorMinMax() = Melhor Jogada é a a a2 a B C 2 D 2 b b2 b c c2 c d2 d 2 8 2 4 6 4 5 2 9 lgoritmo I Função aplicada no nó raiz () Função aplicada nos nós Função aplicada nos nós 0 5
lgoritmo I propriedades Completo Sim, se a árvore for finita Óptimo Sim Complexidade temporal O(r n ) Complexidade espacial O(r (como procura em profundidade) Exemplo do xadrez: r 5, n 00 -> impraticável Cortes alfa-beta O algoritmo I obriga a percorrer todo o espaço (até uma certa profundidade ) É possível aplicar a mesma estratégia sem procurar em alguns ramos da árvore do jogo a a2 a B C 2 b b c b2 c2 c E F G E F G 2 8 2?? Qual a importância de analisar os estados F e G? Se F>2 o 2 prevalece (é menor e C é ) Se F<2 será ignorado (pois para, em, já há um ) Idem para G É irrelevante analisar depois de E 2 6
lgortimo lfa-beta Ideia Geral Guardar um par de valores, alfa e beta, que permitem memorizar a informação essencial sobre os estados já percorridos: lfa Valor da melhor (maior) escolha que pode fazer ate ao momento Beta Valor da melhor (menor) escolha que pode fazer até ao momento lfa e Beta inicializados a e +, respectivamente lgoritmo lfa-beta (cont) Função aplicada nos nós Retornado o valor minmax (v) Explorar sucessores até encontrar um maior ou igual a Beta Função aplicada nos nós Explorar sucessores até encontrar um menor ou igual a lfa Retornado o valor minmax (v) 4 7
Exemplo Nós max (dado o par (a, b) ) té esgotar todos os sucessores ou até a >= b Calcular valor do sucessor v se maior do que a então passa a ser o novo a Devolve a Nós min (dado o par (a, b) ) té esgotar todos os sucessores ou até a>= b Calcular valor do sucessor v se menor do que b então passa a ser o novo b Devolve b Variante do algoritmo anterior - Retornado o valor de a ou b, consoante o caso B C 2 D 2 (-,) (-,) (-,) (,2) (,4) (,5) (,2) 2 8 2 4 6 4 5 2 5 Exemplo Nós max (dado o par (a, b) ) té esgotar todos os sucessores ou até a >= b Calcular valor do sucessor v se maior do que a então passa a ser o novo a Devolve a Nós min (dado o par (a, b) ) té esgotar todos os sucessores ou até a>= b Calcular valor do sucessor v se menor do que b então passa a ser o novo b Devolve b Jogada corresponde à última mudança de a Evolução de (a, b) para o nó. B C 2 D 2 (-,) (-,) (-,) (,2) (,4) (,5) (,2) 2 8 2 4 6 4 5 2 6 8
Exemplo jogo dos peões 7 F. valiação 0 - - - - - - 8 9
Minimax - 0 - - - - - 0 - - - - - - 9 lfa-beta (,+ ) (,+ ) (-,) (-,) (-,) (,+ ) (,)X (,+ ) (,+ ) (-,) (,)X (-,) (,)X (,+ ) (,+ ) (,+ ) - - (-,) (,+ ) (,-)X (,+ ) (,-)X 0 (,+ ) - - 20 0
a a2 a B C D b b2 b c c2 c d d2 d 2 8 2 4 6 4 5 2 2