A03 Inteligência artificial 1 - ProgJogos/rvia-2sem2014 GitHub Wiki

Nesta aula, vamos começar a trabalhar inteligência artificial de forma mais prática. Vamos experimentar com algoritmos simples de decisão e execução de ações e com o uso de sensores básicos.

Decisão e ação

De certa forma, a principal pergunta de um algoritmo de inteligência artificial é "o que fazer agora?".

A principal dificuldade é a relação complexidade-computação. Toda computação (cálculo) leva tempo e recursos, logo é praticamente impossível avaliar todas as alternativas possíveis em muitos problemas. A solução para esse dilema passa por encontrar um viés, ou recorte, aceitável para diminuir o número de cenários para avaliar. Soluções ótimas (ou seja, a melhor decisão possível) nem sempre são possíveis ou desejáveis: podem tornar um adversário computacional previsível ou "chato". A decisão entre um algoritmo ou outro depende de muitos fatores, mas transcende questões apenas técncias, pois está muito relacionada a qual o tipo de experiência desejado.

O mecanismo de escolha de ação de um agente ou algoritmo está profundamente relacionado ao tipo de informação percebida e as estruturas e algoritmos usados para armazená-la e interpretá-la. Para analisar esse tipo de problema, são utilizados conceitos como heurísticas, grafos e modelos.

Heurísticas

Heurística é um método ou processo criado com o objetivo de encontrar soluções para um problema. É um procedimento simplificador (embora não simplista) que, em face de questões difíceis envolve a substituição destas por outras de resolução mais fácil a fim de encontrar respostas viáveis, ainda que imperfeitas. Kahneman, Daniel.

Heurísticas são essenciais tanto no processo cognitivo humano e animal quanto na descrição e criação de sistemas de inteligência artificial. É importante pensar que cada heurística tem seu valor dentro de um conjunto de limitações e presupostos, que deve ser respeitado sob o risco de resultados inesperados ou simplesmente errados.

Alguns tipos de heurística:

  • heurísticas de julgamento: processos de julgamentos ou previsões parciais baseados em similaridade e enquadramento, muitas vezes sem se dar conta disso.
  • heurística de afeto: processo no qual as pessoas deixam que suas simpatias, antipatias e afinidades pessoais determinem suas crenças e ações.
  • heurística de disponibilidade: processo de julgar a frequência de dados segundo a facilidade com que similaridades vêm à mente, dada à limitada capacidade de manter concentração/atenção e empreender considerável esforço mental ao mesmo tempo.
  • heurística de avaliabilidade: processo no qual as tomadas de decisão são feitas e mudam conforme o quadro dado. Por ex. um julgamento ou tomada de decisão mediante avaliação conjunta dos elementos/fatores envolvidos tende a ser diferente de uma decisão tomada baseada numa avaliação isolada dos mesmos elementos

Agentes reativos

Agentes simples

Respondem a percepções, interpretam as entradas, verifica uma regra correspondente e age seguindo uma relação entrada-ação já determinada. Não levam em conta a história de percepções anteriores ou o histórico do resultado de suas ações.

Reflexo

Agentes baseados em modelos

Conseguem lidar com um ambiente parcialmente observável. O seu estado é guardado e descreve uma parte do mundo que não está sendo percebido: este é o modelo de mundo. Logo, o modelo incorpora conhecimento de estados anteriores para então verificar regras e determinar ação.

Modelos

Agente baseados em objetivos

Guardam informações sobre os objetivos desejáveis e que são usadas na hora de escolher entre múltiplas alternativas de ações para alcançar esses objetivos. É mais flexível, mas pode acabar por ser menos eficiente.

Objetivos

Agente baseado em utilidade

Além de conhecerem objetivos desejáveis, estes agentes incorporam alguma forma de avaliar qual dentre esses objetivos é o mais útil a cada momento. Agentes baseados em utilidade dependem de um grau maior de complexidade.

Utilidade

Agente baseado em aprendizado

Pode operar em ambientes inicialmente desconhecidos. Existe numa lógica um pouco dualista: a parte que avalia como o aprendizado está se passando e outra que avalia e decide a performance. A parte de aprendizado usa um algoritmo "crítico" para avaliar os resultados das últimas ações e alterar adequadamente os critérios para futuras escolhas. A parte de perfomance é mais semelhante aos agentes vistos anteriormente. Também é importante um outro susbsistema responsável por criar ações que gerem perguntas interessantes.

Aprendizado

Um exemplo desse tipo de algoritmo são os chamados algoritmos genéticos.

Para além de agentes

Inteligência artificial também é usada para outros fins além de decidir uma ação de um agente. Algumas áreas a que podemos aplicar as abordagens e conceitos discutidos são:

  • Planejamento de longo prazo: estabelecer objetivos e alcançá-los
  • Aprendizado: melhorar automaticamente a partir da experiência
  • Comunicação: entendimento, interpretação de fala e texto humano
  • Movimento: coordenação de movimentos, navegação e mapeamento
  • Percepção: reconhecimento de padrões siginificativos a partir do input de sensores

Mais especificamente, na área de jogos:

  • Modelagem da experiência de jogadores: entender e interpretar o estado emovcional e habildiade do jogador, para alterar o jogo de acordo. Exemplos: AI Director, equilíbrio dinâmico de jogos.
  • Geração de conteúdo procedural: ambientes e elementos do conteúdo do jogo baseados em algoritmos e dados de forma automática.
  • Data mining: interpretação e utilização dos dados de jogo dos jogadores.

Saiba mais

⚠️ **GitHub.com Fallback** ⚠️