SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
Algoritmos de Jogos
Min-Max e Alfa-Beta




            João Guilherme Kassulke
Introdução


     A Inteligência Artificial no contexto dos
 jogos implica que os oponentes controlados
 pelo computador apresentem um certo grau
           de cognitividade (percepção,
           esperteza) ao enfrentar o jogador
           humano.
Introdução
 Inicialmente a IA foi utilizada nas pesquisas em
 busca em espaço de estados, em jogos como
 xadrez, damas e o jogo da velha.
 O uso de jogos visando o estudo de técnicas de
 IA:
    - Estados e Regras bem definidas.
História

 John von Neumann
 - Em 1926 demonstrou o teorema Minimax
 como solução para jogos de soma zero com
 dois jogadores, além da fundamentação da
 teoria da utilidade, que é muito útil para
 situações de incerteza em economia.
 - É considerado o precursor da Teoria de
 Jogos
Definições de Jogos

 Jogo é um modelo teórico de conflitos de
 interesse (decisões possíveis, resultados
 possíveis) entre duas ou mais pessoas que
 tem motivações conflitantes.
 Jogador é um participante ativo e racional
 em um jogo, cujas ações afetam os demais.
 Movimentos são decisões disponíveis aos
 jogadores (simultaneamente ou não).
Definições de Jogos

  Escolhas: são alternativas particulares
  escolhidas
● Jogada: é uma seqüência de escolhas
● Estratégias: são descrições das decisões a
  serem tomadas em todas as situações
  possíveis (um plano de jogo)
● Payoff / Utilidade / Ganho: valor ou
  pagamento (ganhos ou perdas) de uma ação
  (pontos, $, etc.) ou ainda uma expressão de
  preferência
Taxonomia de Jogos

 Segundo a função utilidade:
 Jogos de soma zero: soma dos payoffs
 (penalizações) dos participantes é zero. Ex. Xadrez,
 Jogo da Velha
 Jogos de soma não zero: resultados dos payoffs !=
 zero. Ex. dilema do prisioneiro, etc.
 Segundo a informação disponível:
 Jogos com informação perfeita: a cada jogada,
 todos os jogadores tem conhecimento das jogadas
 que já ocorreram. Ex: Jogo da Velha, Xadrez.
 Jogos com informação imperfeita: conhecimento é
 parcial. Ex: Pôquer .
Taxonomia de Jogos

 Segundo o determinismo:
 Jogos determinísticos: tem comportamento
 previsível, pois para um mesmo conjunto de
 entradas, as saídas serão sempre as
 mesmas, caso sejam realizados n testes.
 Jogos não determinísticos: possui um grau
 de incerteza, pois dadas as mesmas
 entradas, diferentes resultados, ou saídas,
 podem aparecer.
Definição Formal de um Jogo

● Estado inicial:
  Posição das peças no tabuleiro e o primeiro jogador
● Operadores:
   Definem os movimentos permitidos
● Teste final:
   Determina quando o jogo terminou e;
   Calcula o resultado (vitória, empate ou derrota)
● Função de utilidade (payoff ):
   Valor numérico para cada resultado do jogo
● Árvore de Busca:
   Mostra todas as possibilidades de jogo.
Nos próximos slides serão abordados dois
algoritmos do tipo “pay-off”, ou seja que
utilizam a função utilidade, são eles:
–   O Min-Max ou MiniMax
–   E a otimização para o Min-Max: Alfa-Beta
Min-Max (MiniMax)

 O MiniMax tem por objetivo selecionar a
 melhor a ação a ser feita em um jogo, onde
 dois jogadores (MIN e MAX) se empenham
 em alcançar objetivos mutuamente
 exclusivos.
 O algoritmo se baseia no princípio de que
 em cada jogada, o jogador irá escolher o
 melhor movimento possível.
Minimax

 Segundo (Nascimento, 2000), o algoritmo
 Min-Max é fundamentado numa expansão
 (em profundidade) de nós de uma árvore,
 para que se possa selecionar a melhor
 opção de jogada.
 Para isto há necessidade de uma heurística
 que permita fornecer, a cada jogada, um
 valor que indique a vantagem posicional
 alcançada pelo movimento conhecido.
Minimax Pseudo-código

1. Gerar toda a árvore de procura desde o nó inicial até aos nós
    terminais.
2. Aplicar a função de utilidade a cada nó terminal para determinar o
    respectivo valor.
3. Usar a utilidade dos nós terminais para determinar através de um
    processo de backup a utilidade dos nós no nível imediatamente acima
    na árvore de procura:
          1. Se for um lance de MIN o valor calculado é o mínimo
          dos nós do nível inferior;
          2. se for MAX a jogar, o valor calculado é o máximo.
4. Continuar a usar o processo de backup um nível de cada vez até
    atingir o nó inicial.
5. Tendo chegado ao nó inicial, escolher qual ação o jogador MAX
    realizará
Minimax - Exemplo
Minimax - Exemplo
Minimax - Exemplo
Minimax - Jogos

 O algoritmo de Minimax pode ser aplicado
 em vários jogos, porém não-eficientemente
 em alguns.
 Damas
 Xadrez
 Jogo da Velha
Minimax - Xadrez

 Para o Xadrez, a técnica de Minimax não é
 eficiente pois dados:
 Fator médio de ramificação aprox. = 35
 Um tempo de 150s entre duas jogadas
 E que o poder de processamento do
 computador seja aprox. = 10000 estados/s
 1.500.000 estados a serem avaliados nesse
 tempo
Minimax - Xadrez

 Nº de estados à profundidade p =
 ramificação^p = 35^p
 Se escolhermos uma profundidade = 4,
 teremos 35^4 = 1.500.625 estados, o que já
 superaria o tempo estipulado.
 Lembrando que um bom jogador consegue
 prever até 8 jogadas. Portanto conclui-se
 que o algoritmo Minimax não é uma boa
 solução para o jogo de xadrez
Minimax – Jogo da Velha

  Estado Inicial: Tabuleiro 3x3 vazio, e o primeiro jogador a jogar
  (MAX - X)
  Operadores: Movimentos alternados (marcar X ou O) entre MAX
  e MIN, nas células vazias.
  Estado Final:
     1.   Toda uma linha e/ou coluna e/ou diagonal preenchida pelo
          mesmo símbolo de um dos jogadores. (Vitória de alguém)
     2.   Todas as células do tabuleiro preenchidas com uma ou mais
          características da regra 1. (Vitória de alguem)
     3.   Todas as células do tabuleiro preenchidas com nenhuma
          características da regra 1. (Empate)
  Função Utilidade: Atribui um valor resultante para os estados
  Arvore de Busca: Gerada devido o Espaço de Estados possível e
  construída deterministicamente
Minimax – Árvore do Jogo da Velha
Minimax – Jogo da Velha

 Heurística
 Σ linhas/colunas/diagonais em aberto -> X
 Σ linhas/colunas/diagonais em aberto -> O

     O algoritmo Min-Max fundamenta-se
 em uma árvore, porém o cálculo da
 heurística é realizado das folhas para a
 raiz, que é a primeira jogada realizada
Jogo da Velha

 Um limite superior simples para o tamanho de espaço
 de estados é 39 = 19,683 (Incluindo jogadas ilegais,
 ex: cinco X e um O.
 Removendo estas jogas ilegais, temos 5478 espaços
 de estados, eliminando ainda as simetrias, chega-se
 ao numero de 765 posições diferentes.
 O limite superior da árvore de jogo é de 9! ou 362880
 incluindo jogos ilegais, eliminando os jogos ilegais,
 chega-se a 255168 jogos possíveis. Eliminando as
 simetrias chega-se ao numero de 26830 possiveis.
Jogo da Velha

  A complexidade computacional do Jogo da Velha
  depende de como ela é generalizada.
  Pode ser generalizada como: m, n, k-games
 ou seja, jogado em tabuleiro mxn no qual o vencedor
  é o primeiro jogador a obter k em uma fileira
  Pode ser generalizada também como DSPACE: (mn)
  no qual pesquisa a árvore de jogo inteira.
 ou seja, jogado em tabuleiro mxn no qual o vencedor
  é o primeiro jogador a obter k em uma fileira
  É englobado pela complexidade PSPACE
  E com algum esforço é possível demonstrar este
  jogo como PSPACE-Completo
Conclusões Parciais

 Se a profundidade máxima da árvore for m e em
 cada ponto houver b lances possíveis (fator de
 ramificação), então a complexidade (temporal)
 do MiniMax é O(b^m).
 O algoritmo é essencialmente do tipo procura
 em profundidade (depth-first)
 Para problemas reais o custo de tempo é
 geralmente inaceitável, mas este algoritmo
 serve de base a outros métodos mais realistas,
 como o Alfa-Beta
Exercício

Objetivo: Dado um conjunto de 5 palitos, pegar 1 ou 2
  palitos e não ser o último a jogar.
– Cenário 1:
  ● Jogador 1: Retira 2 palitos
  ● Jogador 2: Retira 2 palitos
  ● Jogador 1: Retira o último (perde)
– Cenário 2:
  ● Jogador 1: Retira 1 palito
  ● Jogador 2: Retira 2 palitos
  ● Jogador 1: Retira 1 palito
  ● Jogador 2: Retira o último (perde)
Construir a árvore minimax com os payoffs nos nós
Exercício
Alfa-Beta

* O algoritmo minimax é deterministico, mas
  seu desempenho pode ser significativamente
  melhorado através de certos refinamentos e
  melhorias, como fazendo uso da poda alfa-
  beta.
* Assim, o algoritmo minimax pode ser
  modificado a fim de explorar essa técnica.
Alfa-Beta

 Objetivo: Calcular o MiniMax correto e diminuir o
 número de nós visitados e de funções nos nós
 avaliados
 Pode limitar a ramificação em vários pontos
  Inclui-se um limite inferior para o valor a minimizar
 (BETA -> valor mais baixo que o jogador MIN já
 assegurou), e um limite superior para o valor a
 maximizar (ALFA -> valor mais alto do jogador
 MAX).
  A pesquisa dos sucessores de um nó termina
 quando se verificar alfa>=beta
Alfa-Beta

 Considerando o jogador inicial = ALFA
 Alfa representa o melhor valor encontrado até
 então para MAX (maior valor), ou
  – se Max já achou uma jogada boa, outras mais baixas
    (piores) serão descartadas
 Beta representa o melhor valor encontrado até
 então para MIN (menor valor), ou
 – se Min já achou uma jogada boa, outras mais
    altas (piores) serão descartadas
Alfa-Beta – Pseudo-código
      alfa-beta(jogador, mundo, alfa, beta)
      SE o jogo terminou no estado atual do mundo
      devolve vencedor
      filhos = todas as jogadas possíveis a partir do estado atual

      SE jogador = MAX
      PARA cada filho
      avaliação = alfa-beta(adversário, filho, alfa, beta)
      SE avaliação > alfa ENTÃO
      alfa = avaliação (encontrou-se uma melhor jogada)

      SE alfa >= beta ENTÃO
      devolve alfa (ignora restante ramos)
      devolve alfa (esta é a melhor jogada)

      SENÃO jogador = MIN
      PARA cada filho
      avaliação = alfa-beta(adversário, filho, alfa, beta)
      SE avaliação < beta ENTÃO
      beta= avaliação (adversário encontrou uma melhor pior jogada)

      SE alfa >= beta ENTÃO
      devolve beta (ignora restante ramos)
      devolve beta (a melhor jogada do adversário)
Conclusões Parciais

  Depende da ordem de expansão dos nós
  – Se os sucessores puderem ser ordenados
  corretamente, a complexidade pode chegar a
  O(b^(d/2))
  d: profundidade máxima da arvore
  b: fator de ramificação
● Para um fator de ramificação médio (razoável), a
  complexidade pode ser O(b^(3d/4))
  – estratégias como capturar,ameaçar,mover, nesta
  ordem podem aproximar do melhor caso
Conclusões Parciais

 Porém, se as opções
 surgirem de uma
 determinada ordem
 (crescente no maximizador
 e decrescente no
 minimizador), os cortes
 Alfa-Beta não trazem
 melhorias.
Exercício

 Indique quais nós serão cortados usando o algoritmo de
 corte alfa-beta
Exercício - Solução
Referencias

 http://pt.wikipedia.org/wiki/John_von_Neumann
 http://paginas.fe.up.pt/~eol/IA/IA0809/APONTAMEN
 TOS/Alunos_MiniMax.pdf
 http://www.lx.it.pt/~afred/docencia/rp-
 ist/acetatos/AB.pdf
 www.lti.pcs.usp.br/pcs2059/aulas/Aula8-Minimax.pdf
 http://hermes.ucs.br/carvi/cent/dpei/jltsilva/JLT_aula-
 Algoritmo%20Minimax.pdf
 www2.dc.uel.br/nourau/document/?down=314

Weitere ähnliche Inhalte

Was ist angesagt?

Deep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialDeep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialSandro Moreira
 
Gestão da Tecnologia da Informação - Aula 1
Gestão da Tecnologia da Informação - Aula 1Gestão da Tecnologia da Informação - Aula 1
Gestão da Tecnologia da Informação - Aula 1Alessandro Almeida
 
Unidade iii tipos de softwares
Unidade iii   tipos de softwaresUnidade iii   tipos de softwares
Unidade iii tipos de softwaresDaniel Moura
 
Testes de usabilidade em apps mobile
Testes de usabilidade em apps mobileTestes de usabilidade em apps mobile
Testes de usabilidade em apps mobileRafael Burity
 
Tic conceitos introdutórios - cef
Tic   conceitos introdutórios - cefTic   conceitos introdutórios - cef
Tic conceitos introdutórios - cefjmesq
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Phpsofteam
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Agentes Inteligentes - IA
Agentes Inteligentes - IAAgentes Inteligentes - IA
Agentes Inteligentes - IAThiago Marinho
 
Sistemas Operacionais Educacional Open Source
Sistemas Operacionais Educacional Open SourceSistemas Operacionais Educacional Open Source
Sistemas Operacionais Educacional Open SourceClebson Ferreira
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)Faculdade Mater Christi
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 

Was ist angesagt? (20)

Aula 02 - Agentes Inteligentes
Aula 02 - Agentes InteligentesAula 02 - Agentes Inteligentes
Aula 02 - Agentes Inteligentes
 
Deep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialDeep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência Artificial
 
Gestão da Tecnologia da Informação - Aula 1
Gestão da Tecnologia da Informação - Aula 1Gestão da Tecnologia da Informação - Aula 1
Gestão da Tecnologia da Informação - Aula 1
 
Unidade iii tipos de softwares
Unidade iii   tipos de softwaresUnidade iii   tipos de softwares
Unidade iii tipos de softwares
 
Testes de usabilidade em apps mobile
Testes de usabilidade em apps mobileTestes de usabilidade em apps mobile
Testes de usabilidade em apps mobile
 
Haskell
HaskellHaskell
Haskell
 
Marketing digital
Marketing digitalMarketing digital
Marketing digital
 
Aula 6 - SAM - Imagens
Aula 6 - SAM - ImagensAula 6 - SAM - Imagens
Aula 6 - SAM - Imagens
 
Tic conceitos introdutórios - cef
Tic   conceitos introdutórios - cefTic   conceitos introdutórios - cef
Tic conceitos introdutórios - cef
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Php
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Redes - Camada de Enlace de Dados
Redes - Camada de Enlace de DadosRedes - Camada de Enlace de Dados
Redes - Camada de Enlace de Dados
 
Agentes Inteligentes - IA
Agentes Inteligentes - IAAgentes Inteligentes - IA
Agentes Inteligentes - IA
 
Sistemas Operacionais Educacional Open Source
Sistemas Operacionais Educacional Open SourceSistemas Operacionais Educacional Open Source
Sistemas Operacionais Educacional Open Source
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Sistemas digitais
Sistemas digitaisSistemas digitais
Sistemas digitais
 
Capítulo 1 introdução a comunicação de dados(1º unidade)
Capítulo 1   introdução a comunicação de dados(1º unidade)Capítulo 1   introdução a comunicação de dados(1º unidade)
Capítulo 1 introdução a comunicação de dados(1º unidade)
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 

Mehr von iaudesc

Data Mining - Clustering
Data Mining - ClusteringData Mining - Clustering
Data Mining - Clusteringiaudesc
 
Algoritmo_ID3_e_C.45_Gilcimar
Algoritmo_ID3_e_C.45_GilcimarAlgoritmo_ID3_e_C.45_Gilcimar
Algoritmo_ID3_e_C.45_Gilcimariaudesc
 
Seminario fuzzy
Seminario fuzzySeminario fuzzy
Seminario fuzzyiaudesc
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticosiaudesc
 
Autômatos celulares
Autômatos celularesAutômatos celulares
Autômatos celularesiaudesc
 
Vida artificial
Vida artificialVida artificial
Vida artificialiaudesc
 
RNA - Redes neurais artificiais
RNA - Redes neurais artificiaisRNA - Redes neurais artificiais
RNA - Redes neurais artificiaisiaudesc
 
Representação do conhecimento (rc)
Representação do conhecimento (rc)Representação do conhecimento (rc)
Representação do conhecimento (rc)iaudesc
 
Programação Genética
Programação GenéticaProgramação Genética
Programação Genéticaiaudesc
 
Busca tabu
Busca tabuBusca tabu
Busca tabuiaudesc
 
Solvers and Applications with CP
Solvers and Applications with CPSolvers and Applications with CP
Solvers and Applications with CPiaudesc
 

Mehr von iaudesc (11)

Data Mining - Clustering
Data Mining - ClusteringData Mining - Clustering
Data Mining - Clustering
 
Algoritmo_ID3_e_C.45_Gilcimar
Algoritmo_ID3_e_C.45_GilcimarAlgoritmo_ID3_e_C.45_Gilcimar
Algoritmo_ID3_e_C.45_Gilcimar
 
Seminario fuzzy
Seminario fuzzySeminario fuzzy
Seminario fuzzy
 
Algorítimos Genéticos
Algorítimos GenéticosAlgorítimos Genéticos
Algorítimos Genéticos
 
Autômatos celulares
Autômatos celularesAutômatos celulares
Autômatos celulares
 
Vida artificial
Vida artificialVida artificial
Vida artificial
 
RNA - Redes neurais artificiais
RNA - Redes neurais artificiaisRNA - Redes neurais artificiais
RNA - Redes neurais artificiais
 
Representação do conhecimento (rc)
Representação do conhecimento (rc)Representação do conhecimento (rc)
Representação do conhecimento (rc)
 
Programação Genética
Programação GenéticaProgramação Genética
Programação Genética
 
Busca tabu
Busca tabuBusca tabu
Busca tabu
 
Solvers and Applications with CP
Solvers and Applications with CPSolvers and Applications with CP
Solvers and Applications with CP
 

Kürzlich hochgeladen

Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdfProjeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdfHELENO FAVACHO
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º anoRachel Facundo
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxandrenespoli3
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptjricardo76
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffNarlaAquino
 

Kürzlich hochgeladen (20)

Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdfProjeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 

Algoritmos de jogos

  • 1. Algoritmos de Jogos Min-Max e Alfa-Beta João Guilherme Kassulke
  • 2. Introdução A Inteligência Artificial no contexto dos jogos implica que os oponentes controlados pelo computador apresentem um certo grau de cognitividade (percepção, esperteza) ao enfrentar o jogador humano.
  • 3. Introdução Inicialmente a IA foi utilizada nas pesquisas em busca em espaço de estados, em jogos como xadrez, damas e o jogo da velha. O uso de jogos visando o estudo de técnicas de IA: - Estados e Regras bem definidas.
  • 4. História John von Neumann - Em 1926 demonstrou o teorema Minimax como solução para jogos de soma zero com dois jogadores, além da fundamentação da teoria da utilidade, que é muito útil para situações de incerteza em economia. - É considerado o precursor da Teoria de Jogos
  • 5. Definições de Jogos Jogo é um modelo teórico de conflitos de interesse (decisões possíveis, resultados possíveis) entre duas ou mais pessoas que tem motivações conflitantes. Jogador é um participante ativo e racional em um jogo, cujas ações afetam os demais. Movimentos são decisões disponíveis aos jogadores (simultaneamente ou não).
  • 6. Definições de Jogos Escolhas: são alternativas particulares escolhidas ● Jogada: é uma seqüência de escolhas ● Estratégias: são descrições das decisões a serem tomadas em todas as situações possíveis (um plano de jogo) ● Payoff / Utilidade / Ganho: valor ou pagamento (ganhos ou perdas) de uma ação (pontos, $, etc.) ou ainda uma expressão de preferência
  • 7. Taxonomia de Jogos Segundo a função utilidade: Jogos de soma zero: soma dos payoffs (penalizações) dos participantes é zero. Ex. Xadrez, Jogo da Velha Jogos de soma não zero: resultados dos payoffs != zero. Ex. dilema do prisioneiro, etc. Segundo a informação disponível: Jogos com informação perfeita: a cada jogada, todos os jogadores tem conhecimento das jogadas que já ocorreram. Ex: Jogo da Velha, Xadrez. Jogos com informação imperfeita: conhecimento é parcial. Ex: Pôquer .
  • 8.
  • 9.
  • 10.
  • 11. Taxonomia de Jogos Segundo o determinismo: Jogos determinísticos: tem comportamento previsível, pois para um mesmo conjunto de entradas, as saídas serão sempre as mesmas, caso sejam realizados n testes. Jogos não determinísticos: possui um grau de incerteza, pois dadas as mesmas entradas, diferentes resultados, ou saídas, podem aparecer.
  • 12. Definição Formal de um Jogo ● Estado inicial: Posição das peças no tabuleiro e o primeiro jogador ● Operadores: Definem os movimentos permitidos ● Teste final: Determina quando o jogo terminou e; Calcula o resultado (vitória, empate ou derrota) ● Função de utilidade (payoff ): Valor numérico para cada resultado do jogo ● Árvore de Busca: Mostra todas as possibilidades de jogo.
  • 13. Nos próximos slides serão abordados dois algoritmos do tipo “pay-off”, ou seja que utilizam a função utilidade, são eles: – O Min-Max ou MiniMax – E a otimização para o Min-Max: Alfa-Beta
  • 14. Min-Max (MiniMax) O MiniMax tem por objetivo selecionar a melhor a ação a ser feita em um jogo, onde dois jogadores (MIN e MAX) se empenham em alcançar objetivos mutuamente exclusivos. O algoritmo se baseia no princípio de que em cada jogada, o jogador irá escolher o melhor movimento possível.
  • 15. Minimax Segundo (Nascimento, 2000), o algoritmo Min-Max é fundamentado numa expansão (em profundidade) de nós de uma árvore, para que se possa selecionar a melhor opção de jogada. Para isto há necessidade de uma heurística que permita fornecer, a cada jogada, um valor que indique a vantagem posicional alcançada pelo movimento conhecido.
  • 16. Minimax Pseudo-código 1. Gerar toda a árvore de procura desde o nó inicial até aos nós terminais. 2. Aplicar a função de utilidade a cada nó terminal para determinar o respectivo valor. 3. Usar a utilidade dos nós terminais para determinar através de um processo de backup a utilidade dos nós no nível imediatamente acima na árvore de procura: 1. Se for um lance de MIN o valor calculado é o mínimo dos nós do nível inferior; 2. se for MAX a jogar, o valor calculado é o máximo. 4. Continuar a usar o processo de backup um nível de cada vez até atingir o nó inicial. 5. Tendo chegado ao nó inicial, escolher qual ação o jogador MAX realizará
  • 20. Minimax - Jogos O algoritmo de Minimax pode ser aplicado em vários jogos, porém não-eficientemente em alguns. Damas Xadrez Jogo da Velha
  • 21. Minimax - Xadrez Para o Xadrez, a técnica de Minimax não é eficiente pois dados: Fator médio de ramificação aprox. = 35 Um tempo de 150s entre duas jogadas E que o poder de processamento do computador seja aprox. = 10000 estados/s 1.500.000 estados a serem avaliados nesse tempo
  • 22. Minimax - Xadrez Nº de estados à profundidade p = ramificação^p = 35^p Se escolhermos uma profundidade = 4, teremos 35^4 = 1.500.625 estados, o que já superaria o tempo estipulado. Lembrando que um bom jogador consegue prever até 8 jogadas. Portanto conclui-se que o algoritmo Minimax não é uma boa solução para o jogo de xadrez
  • 23. Minimax – Jogo da Velha Estado Inicial: Tabuleiro 3x3 vazio, e o primeiro jogador a jogar (MAX - X) Operadores: Movimentos alternados (marcar X ou O) entre MAX e MIN, nas células vazias. Estado Final: 1. Toda uma linha e/ou coluna e/ou diagonal preenchida pelo mesmo símbolo de um dos jogadores. (Vitória de alguém) 2. Todas as células do tabuleiro preenchidas com uma ou mais características da regra 1. (Vitória de alguem) 3. Todas as células do tabuleiro preenchidas com nenhuma características da regra 1. (Empate) Função Utilidade: Atribui um valor resultante para os estados Arvore de Busca: Gerada devido o Espaço de Estados possível e construída deterministicamente
  • 24. Minimax – Árvore do Jogo da Velha
  • 25. Minimax – Jogo da Velha Heurística Σ linhas/colunas/diagonais em aberto -> X Σ linhas/colunas/diagonais em aberto -> O O algoritmo Min-Max fundamenta-se em uma árvore, porém o cálculo da heurística é realizado das folhas para a raiz, que é a primeira jogada realizada
  • 26.
  • 27. Jogo da Velha Um limite superior simples para o tamanho de espaço de estados é 39 = 19,683 (Incluindo jogadas ilegais, ex: cinco X e um O. Removendo estas jogas ilegais, temos 5478 espaços de estados, eliminando ainda as simetrias, chega-se ao numero de 765 posições diferentes. O limite superior da árvore de jogo é de 9! ou 362880 incluindo jogos ilegais, eliminando os jogos ilegais, chega-se a 255168 jogos possíveis. Eliminando as simetrias chega-se ao numero de 26830 possiveis.
  • 28. Jogo da Velha A complexidade computacional do Jogo da Velha depende de como ela é generalizada. Pode ser generalizada como: m, n, k-games ou seja, jogado em tabuleiro mxn no qual o vencedor é o primeiro jogador a obter k em uma fileira Pode ser generalizada também como DSPACE: (mn) no qual pesquisa a árvore de jogo inteira. ou seja, jogado em tabuleiro mxn no qual o vencedor é o primeiro jogador a obter k em uma fileira É englobado pela complexidade PSPACE E com algum esforço é possível demonstrar este jogo como PSPACE-Completo
  • 29. Conclusões Parciais Se a profundidade máxima da árvore for m e em cada ponto houver b lances possíveis (fator de ramificação), então a complexidade (temporal) do MiniMax é O(b^m). O algoritmo é essencialmente do tipo procura em profundidade (depth-first) Para problemas reais o custo de tempo é geralmente inaceitável, mas este algoritmo serve de base a outros métodos mais realistas, como o Alfa-Beta
  • 30. Exercício Objetivo: Dado um conjunto de 5 palitos, pegar 1 ou 2 palitos e não ser o último a jogar. – Cenário 1: ● Jogador 1: Retira 2 palitos ● Jogador 2: Retira 2 palitos ● Jogador 1: Retira o último (perde) – Cenário 2: ● Jogador 1: Retira 1 palito ● Jogador 2: Retira 2 palitos ● Jogador 1: Retira 1 palito ● Jogador 2: Retira o último (perde) Construir a árvore minimax com os payoffs nos nós
  • 32. Alfa-Beta * O algoritmo minimax é deterministico, mas seu desempenho pode ser significativamente melhorado através de certos refinamentos e melhorias, como fazendo uso da poda alfa- beta. * Assim, o algoritmo minimax pode ser modificado a fim de explorar essa técnica.
  • 33. Alfa-Beta Objetivo: Calcular o MiniMax correto e diminuir o número de nós visitados e de funções nos nós avaliados Pode limitar a ramificação em vários pontos Inclui-se um limite inferior para o valor a minimizar (BETA -> valor mais baixo que o jogador MIN já assegurou), e um limite superior para o valor a maximizar (ALFA -> valor mais alto do jogador MAX). A pesquisa dos sucessores de um nó termina quando se verificar alfa>=beta
  • 34. Alfa-Beta Considerando o jogador inicial = ALFA Alfa representa o melhor valor encontrado até então para MAX (maior valor), ou – se Max já achou uma jogada boa, outras mais baixas (piores) serão descartadas Beta representa o melhor valor encontrado até então para MIN (menor valor), ou – se Min já achou uma jogada boa, outras mais altas (piores) serão descartadas
  • 35. Alfa-Beta – Pseudo-código alfa-beta(jogador, mundo, alfa, beta) SE o jogo terminou no estado atual do mundo devolve vencedor filhos = todas as jogadas possíveis a partir do estado atual SE jogador = MAX PARA cada filho avaliação = alfa-beta(adversário, filho, alfa, beta) SE avaliação > alfa ENTÃO alfa = avaliação (encontrou-se uma melhor jogada) SE alfa >= beta ENTÃO devolve alfa (ignora restante ramos) devolve alfa (esta é a melhor jogada) SENÃO jogador = MIN PARA cada filho avaliação = alfa-beta(adversário, filho, alfa, beta) SE avaliação < beta ENTÃO beta= avaliação (adversário encontrou uma melhor pior jogada) SE alfa >= beta ENTÃO devolve beta (ignora restante ramos) devolve beta (a melhor jogada do adversário)
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. Conclusões Parciais Depende da ordem de expansão dos nós – Se os sucessores puderem ser ordenados corretamente, a complexidade pode chegar a O(b^(d/2)) d: profundidade máxima da arvore b: fator de ramificação ● Para um fator de ramificação médio (razoável), a complexidade pode ser O(b^(3d/4)) – estratégias como capturar,ameaçar,mover, nesta ordem podem aproximar do melhor caso
  • 42. Conclusões Parciais Porém, se as opções surgirem de uma determinada ordem (crescente no maximizador e decrescente no minimizador), os cortes Alfa-Beta não trazem melhorias.
  • 43. Exercício Indique quais nós serão cortados usando o algoritmo de corte alfa-beta
  • 45. Referencias http://pt.wikipedia.org/wiki/John_von_Neumann http://paginas.fe.up.pt/~eol/IA/IA0809/APONTAMEN TOS/Alunos_MiniMax.pdf http://www.lx.it.pt/~afred/docencia/rp- ist/acetatos/AB.pdf www.lti.pcs.usp.br/pcs2059/aulas/Aula8-Minimax.pdf http://hermes.ucs.br/carvi/cent/dpei/jltsilva/JLT_aula- Algoritmo%20Minimax.pdf www2.dc.uel.br/nourau/document/?down=314