A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Busca Competitiva Disciplina: Inteligência Artificial

Apresentações semelhantes


Apresentação em tema: "Busca Competitiva Disciplina: Inteligência Artificial"— Transcrição da apresentação:

1 Busca Competitiva Disciplina: Inteligência Artificial
Universidade de Itaúna César Augusto Oliveira

2 Busca em jogos ou busca competitiva
Problema de busca em que existe ao menos um adversário A solução do problema não é somente uma seqüência de ações que leve ao estado final Solução é uma estratégia que especifica um movimento para cada possível resposta do oponente É necessário impedir que o oponente chegue ao estado final primeiro ou com pontuação melhor

3 Busca em jogos ou busca competitiva
O jogador precisa levar em conta as possíveis jogadas do oponente O movimento do adversário é imprevisível (incerteza) Portanto, o objetivo é achar o melhor movimento (ação) baseado nas possibilidades do jogador e do seu oponente A estratégia ótima leva ao melhor resultado considerando que o adversário sempre faz a melhor jogada possível

4 Busca em jogos ou busca competitiva
Dificuldades: Complexidade Xadrez: em média, 35 movimentos possíveis por turno, 25 jogadas por jogador por partida => 3550 aprox (1040 nós distintos) Incerteza devido ao outro jogador Algumas vezes, limites de tempo obrigam a uma solução aproximada

5 Formulação de um problema de busca competitiva
Estado inicial: posições do “tabuleiro” + de quem é a vez Estado final: posições em que o jogo acaba Operadores: jogadas legais para um dado estado da partida Função de utilidade (objetivo): valor numérico para os estados finais (pontuação) Xadrez = +1, 0, -1; gamão = [-192,+192]

6 Espaço de estados de um problema de busca competitiva
Árvore ou grafo “E/OU” ou “MIN/MAX” Cada nível da árvore representa as jogadas de um de 2 jogadores, alternadamente Os nós OU são aqueles do jogador em que começa a busca (nível da raiz) e representam as opções do algoritmo de busca Os nós E correspondem aos nós do oponente Representam a incerteza da busca

7 Espaço de estados de um problema de busca competitiva
As folhas representam vitórias, derrotas ou empates (pode-se “parar” a avaliação antes de se chegar ao final do jogo por limites impostos ao algoritmo como tempo de resposta e número de níveis avaliados) A árvore “E/OU” pode ser usada em jogos com mais de 2 competidores

8 Árvore de jogo (dois jogadores)

9 Algoritmo de Busca: algoritmo minimax
Deve-se minimizar os efeitos das jogadas do adversário e maximizar o efeito da própria jogada O nível do jogador é MAX e o do adversário é MIN O algoritmo faz uma busca cega em profundidade

10 Algoritmo de Busca: algoritmo minimax
1. Constrói-se a árvore “E/OU” 2. Para cada folha é feita uma avaliação estática atribuindo a estes nós um valor Geralmente é positivo para vitória, negativo para derrotas e 0 para empates Este valores são sempre em relação ao jogador “da raiz”.

11 Algoritmo de Busca: algoritmo minimax
3. Cada nível da árvore é classificado como MIN ou MAX: nós OU são MAX e E são MIN. Nesta fase do algoritmo é que a estratégia de jogo é construída O algoritmo considera que o oponente sempre escolhe a melhor opção para ele. 4. Recursivamente (das folhas para a raiz), cada nó, recebe o valor de avaliação Valor mínimo de seus sucessores se for um nó MIN (E) Valor máximo se for um nó MAX (OU)

12 MiniMax

13 Algoritmo (Pseudo-código)
Determinar SE { profundidade limite atingida OU Nivel é Minimizador OU Nivel é Maximizador } ENTÃO SE profundidade limite Calcular valor do estado corrente Retornar resultado SE Nivel Minimizador Aplicar minimax aos sucessores Retornar Mínimo SE Nivel Maximizador Retornar Máximo

14 Algoritmo de busca minimax
Parte de um Jogo simples, cada jogador faz um movimento.

15 Análise do minimax Equivale a uma busca completa em profundidade na árvore do jogo. m: profundidade máxima da árvore b: movimentos válidos em cada estado É completo Considerando que a árvore é finita Tempo: gerar todos os nós O(bm) Espaço: armazenar todos os nós É ótimo Considera que o oponente é perfeito E se ele não for? O algoritmo não faz jogadas acreditando no erro do adversário

16 Poda - Algoritmo minimax: no de estados do jogo é exponencial em relação ao no 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.

17 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 (irá podar este ramo de busca)  é definido de maneira análoga.

18 Poda -

19 Poda -

20 Poda -

21 Poda -

22 Poda -

23 Poda - A efetividade da poda - depende da ordem em que os sucessores são examinados. Com a melhor ordem possível a complexidade de tempo = O(bm/2)  dobra a profundidade da busca que conseguimos fazer

24 Análise da poda alfa-beta
A poda não afeta os resultados finais A ordenação dos movimentos afeta a efetividade da poda Tempo: Com a melhor ordenação: O(bm/2) Permite a análise do dobro da distância do minimax Com a pior ordenação: O(bm)

25 Restrição de recursos Algumas vezes não é possível esperar que todo o algoritmo de busca seja executado Uma solução deve ser encontrada antes da avaliação de todos os nós da árvore (mesmo utilizando a poda alfa-beta) É necessário parar a pesquisa seguindo um determinado critério (teste de parada) Por exemplo: número máximo de níveis explorados Como avaliar um estado que não é final?

26 Funções de Avaliação Representa quão bom é um dado estado
Reflete as chances de se ganhar Devem tentar manter a mesma ordenação da função de utilidade final Não podem demorar muito Escolha crucial: compromisso entre precisão e eficiência A maioria das funções de avaliação fazem uma análise de características de um estado

27 Funções de Avaliação Exemplo: Jogo da velha
Diferença no número de possibilidades de vitória de cada jogador.

28 Quando parar a pesquisa?
Ás vezes, uma jogada pode “mudar o jogo” Procura Tranqüila (Quiescence search): Evitar avaliação em situações a partir das quais pode haver mudanças bruscas No caso do jogo da velha, toda posição é tranqüila mas no xadrez não Exemplo: um peça pode ser comida na próxima jogada Algoritmo: Se a situação (nó) é “tranqüila”, então aplica a função de avaliação, senão busca até encontrar uma situação “tranqüila”

29 Jogos com Vários Participantes
Cada jogador procura maximizar a sua jogada Cada nó possui um vetor de valores (um valor para cada jogador), ao invés de um único valor

30 Jogo com vários participantes

31 Jogos com Vários Participantes
Existe a possibilidade de se criar alianças entre os jogadores Suponha que os jogadores 1 e 2 se uniram contra o jogador 3 Tentar minimizar o jogador 3

32 Atividade

33 Bibliografia Livros - RUSSEL, Stuart; NORVIG, Peter: Inteligência Artificial. Campus, São Paulo, 2004. Slides CHAIMOWICZ, Luiz. Transparências de Tópicos em IA: Agentes nteligentes. Disponível em: RUSSEL, Stuart; NORVIG, Peter. Transparências do livro Artificial Intelligence A Modern Approach. Disponível em: TEDESCO, Patrícia; RAMALHO, Geber. Agentes Autônomos. Disponível em:


Carregar ppt "Busca Competitiva Disciplina: Inteligência Artificial"

Apresentações semelhantes


Anúncios Google