Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação http://www.inf.unioeste.br/~claudia/ia2017.html Inteligência Artificial Resolução de problemas por meio de algoritmos de busca Aula VI Busca Competitiva
Roteiro Jogos em IA Tomada de decisão MiniMax
Até agora falamos sobre... Problemas sem interação; Há total controle sobre as ações e sobre o efeito das ações; É possível encontrar a solução ótima, se ela existir. Mas e no caso dos jogos?
Jogos Os jogos são domínios clássicos em IA porque São abstratos, relativamente fáceis de formalizar e representar; Podem ter sua complexidade reduzida ou aumentada; Exigem a tomada de decisão muitas vezes em um curto intervalo de tempo; Há interação e pode haver não determinismo.
Jogos e IA Primeiros pesquisadores de jogos (1950): Conrad Zuse, Claude Shannon e Alan Turing Jogos são considerados: um desafio à inteligência humana. Desde então, a IA em jogos tem avançado e há versões (e situações) em que os jogadores computadorizados superam os jogadores humanos.
Relembrando... Jogos do tipo toy problems são temas atraentes para estudo em IA porque: É fácil representar o estado de um jogo; É fácil medir seu sucesso ou fracasso. Há um pequeno número de ações cujos resultados são definidos por regras precisas; Apresentam enormes espaços de busca. Mas em jogos reais, geralmente essas facilidades não se verificam... Eles são difíceis de resolver!
Jogos exemplo Xadrez Jogo de Xadrez há problema de busca complexo: fator de ramificação médio» 35 número de movimentos por jogador» 50 profundidade da solução» 100 árvore de busca aproximadamente 35 100 ou 10 154 embora o grafo de busca tenha apenas 10 40 nós distintos.
Jogos Os jogos (como no mundo real!), exigem a habilidade de tomar alguma decisão, especialmente quando o cálculo da decisão ótima é inviável. A imprevisibilidade pode produzir contingências no processo de resolução de problema. Como as metas dos participantes estão em conflito, origina-se a busca competitiva!!
Jogos : interação O oponente é imprevisível Como levar em consideração todos os movimentos possíveis de oponente? Limite de tempo Necessidade de tomar uma decisão, em um período X de tempo, mesmo que não seja ótima! Revezamento e Função Há revezamento entre dois jogagores! A posição (favorável ou desfavorável) de um jogador em um determinado instante (estado) do jogo pode ser medida por uma função de utilidade.
Objetivo da busca competitiva O objetivo da busca competitiva é planejar com antecedência, considerando que o oponente está planejando também!
Agora falaremos sobre... Cap. 6 Russell & Norvig Busca competitiva ou jogos adversariais são 2 jogadores se revezando ambientes determinísticos e observáveis. Situações simétricas A vitória pode ser computada com utilidade +1, derrota -1 e empate 0. Portanto, a soma final da utilidade dos dois jogadores é zero, daí o termo soma zero.
Busca Competitiva - Jogos Considerendo-se dois jogadores para o caso do jogo da velha, um chamado de MAX e o outro de MIN. Para MAX, que joga com X, a utilidade ideal é +1 (X ganhou). Para MIN, que joga com O, a utilidade ideal é -1 (O ganhou).
Busca Competitiva - Solução MAX deve encontrar uma sequencia de movimentos que leve a um estado terminal com utilidade +1. O problema é que isto depende dos movimentos de MIN. Solução: considerar que MIN é um oponente infalível, e sempre fará os melhores movimentos possíveis. Logicamente, inviável para jogos mais complexos como xadrez e damas. Em Go os avanços ainda são pouco significativos
Busca Competitiva - MINIMAX O valor MINIMAX de um nó é a utilidade deste estado para um jogador; Considere que ambos os jogadores terão um desempenho ótimo até o final do jogo. Dentre as possibilidades, MAX sempre escolherá a que resulta na maior utilidade, e MIN na menor.
Assim... Dois jogadores: MAX e MIN ; Estratégia: MAX deve maximizar seu ganho MIN deve minimizar os efeitos das jogadas de MAX O jogo é definido como uma árvore de busca: Estado inicial: posição do tabuleiro, identifica o jogador que fará o movimento Função sucessor retorna uma lista (movimento/estado) Teste de término: determina quando o jogo termina Função utilidade: dá um valor numérico para os estados terminais: +1 vitória; 0 empate; -1 derrota
Movimentos possíveis de Max Árvore de jogo (2 jogadores) Do ponto de vista de Max, melhor valor de utilidade +1
Algoritmo MINIMAX Criar uma função MINIMAX que recebe um estado do tabuleiro e de quem é a vez (X ou O). Verificar se alguém ganhou ou se houve empate. X ganhou: retornar +1 O ganhou: retornar -1 empate: retornar 0 Se não terminou, buscar todas as possíveis jogadas para o jogador da vez. Para cada jogada, chamar MINIMAX com o novo tabuleiro e com o outro jogador. Entre os valores resultados por MINIMAX, escolher o maior (se o jogador for MAX) ou o menor (se o jogador for MIN).
Minimax A ação a1 é a escolha ótima para MAX, porque leva ao sucessor com mais alto valor minimax. A melhor jogada para um jogo determinístico assumindo o melhor oponente.
Algoritmo minimax Ótimo (para um oponente ótimo); Tempo: busca completa em profundidade na árvore do jogo: O(b m ) m: profundidade b: movimentos válidos em cada estado Espaço: O(bm) se todos os sucessores são gerados O(m) se gera um sucessor por vez
Poda - Busca minimax: n o de estados do jogo é exponencial em relação ao n o de movimentos; Poda - : calcular a decisão correta sem examinar todos os nós da árvore; retorna o mesmo que minimax, porém sem percorrer todos os estados.
Poda -
Poda -
Poda -
Poda -
Poda -
Poda - A efetividade da poda - depende da ordem em que os sucessores são examinados
Por que -? α é o valor da melhor escolha (valor mais alto) encontrado até então para qualquer ponto de escolha de MAX; Se v é pior do que α, MAX não percorrerá este caminho (podará este ramo de busca!!) é definido de maneira análoga.
Problemas de decisão Minimax gera todo o espaço de busca; Poda - ainda tem que chegar até os estados terminais Portanto, não é eficiente para jogos que possuem muitos passos até os estados terminais. Há necessidade de alternativas!! Ver materiais específicos para jogos.
Referências RUSSEL, S.; NORVIG, P.; 1995. Inteligência Artificial. 3. ed. Rio de Janeiro: Campus, 2003. Outros Materiais disponíveis na internet.
Atividades Concluir a proposta de trabalho de IA e submeter no moodle hoje!! Iniciar os trabalhos. Especificações finais serão definidas na próxima semana.