Baixe o app para aproveitar ainda mais
Prévia do material em texto
- -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS APRESENTAÇÃO - -2 BEM VINDO(A) À DISCIPLINA ONLINE: INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS A construção de uma entidade com capacidades humanas em especial a inteligência, sempre fez parte dos sonhos da humanidade. Pode-se observar esse interesse em diversos registros históricos que falam de autômatos e personagens místicos criados pelo homem. Personagens como Frankenstein de Mary Shelley ou o Robô da obra (Eu Robô) de Isaac Asimov faziam parte do imaginário humano, até então classificados como ficção científica, demonstrando um sentimento ambíguo, de fascínio e de medo, em relação ao que viria a ser a Inteligência Artificial. A Inteligência Artificial é um ramo da ciência da computação, que por um lado procura estudar e compreender o fenômeno da inteligência e do pensar, e por outro, enquanto engenharia, procura construir instrumentos para apoiar e simular a inteligência humana. Esta ciência, ainda nova em relação a outras ciências, já existe a algumas décadas (aproximadamente desde a década de 50), sendo grandemente impulsionada com o rápido desenvolvimento da informática e da computação, permitindo que novos elementos sejam rapidamente agregados a seu cabedal. De fato, apenas recentemente, com o surgimento do computador moderno, é que a inteligência artificial ganhou meios e massa crítica para se estabelecer de fato como ciência, com metodologias e ferramental próprios. Desde então, seu desenvolvimento tem extrapolado e suplantado o pensamento comum e limitado de que I.A está apenas para os programas de xadrez ou a construção de autômatos inteligentes, mas sim uma área presente em nosso dia a dia em subáreas como visão computacional, agentes de software e jogos, análise e síntese da voz, lógica difusa, redes neurais artificiais, algoritmos genéticos e muitas outras. AULA 01: Definições em Inteligência Artificial (IA) Nessa aula serão apresentados e discutidos os conceitos de inteligência e raciocínio lógico, criando a base necessária para a definição de Inteligência Artificial. Falar-se-á sobre o matemático Alan Turing, e suas contribuições para o que viria a ser IA, especialmente o teste de nominado Teste de Turing. AULA 02: Histórico e bases científicas da IA Nessa aula serão apresentadas as fases históricas da Inteligência Artificial indo desde sua pré-história até os dias atuais. Também serão abordadas as bases científicas enquanto área multidisciplinar, bem como suas áreas de aplicação. AULA 03: Representação de Conhecimento A aula conterá definições e considerações sobre a representação de conhecimento computacional, quais as características do conhecimento, sua tipologia e as principais propostas de representação computacional do conhecimento (e.g. lógica, frames, redes semânticas). - -3 AULA 04: Resolução de Problemas em IA Na aula será feita a definição e caracterização de problemas na área de IA. Também serão apresentados exemplos de problemas e sua estruturação de acordo com a área. AULA 05: Buscas em espaço de estados Nesta aula será introduzido o conceito de busca em espaço de estados, os tipos (cegas e heurísticas) e subtipos de buscas e seus métodos. AULA 06: Inteligência Artificial e Jogos Nesta aula será apresentada a intercessão da IA com jogos, mais especificamente a busca Minimax e os Cortes Alfa-Beta. AULA 07: Sistemas Baseados em Conhecimento (SBCs) Nesta aula são abordados os sistemas baseados em conhecimento e sistemas especialistas. Qual a arquitetura básica de um SBC, e como programá-los bem como exemplos de SBCs estruturados. AULA 08: Aprendizado de Máquina Nesta aula serão feitas as considerações iniciais no que tange ao aprendizado de máquina. Será tratado especificamente o aprendizado indutivo de máquina e as árvores de decisão. AULA 09: Agentes de Software e Sistemas Multi-Agente Na aula serão apresentados os conceitos e definição sobre agentes, seu histórico e aplicações, as arquiteturas e tipos de agentes. Definidos agentes será apresentado o conceito dos Sistemas Multi-Agentes, suas aplicações, arquiteturas, ferramentas e usos. AULA 10: Tópicos Avançados de IA Nesta aula serão abordadas e conceituadas outras metodologias e ferramentas de IA como Lógica Fuzzy, Algoritmos Genéticos e Redes Neurais. BIBLIOGRAFIA Russel, Stuart J.; Norvig, Peter, 2a Edição), Editora. Campus, 2004. Inteligência Artificial ( Rezende, S. O. Fundamentos e Aplicações. Barueri: Editora Manole, 2003. 525 p.Sistemas Inteligentes: Luger, G. F., - Estruturas e Estratégias para a Solução de Problemas Complexos, 4a Edição,Inteligência Artificial Bookman, 2004. Bittencourt, Guilherme: – Ferramentas e Teorias. Editora da UFSC. 2ª. Edição.Inteligência Artificial Florianópolis, 2001. 362p. Artigos, tutoriais, apostilas, páginas web e outros recursos on-line. AVALIAÇÃO - -4 A avaliação é contínua, integradora, com ênfase nos aspectos colaborativos, incluindo tarefas coletivas, e contempla o diagnóstico, o processo e os resultados alcançados por intermédio de avaliações diagnósticas, formativas e somativas, considerando os aspectos da autoavaliação. A avaliação somativa da aprendizagem é realizada presencialmente pelo aluno no Polo de EAD da IES e segue a normativa da Universidade. A(s) prova(s) presencial(is) segue(m) o calendário acadêmico divulgado para o aluno. Durante o Curso, os alunos realizam atividades propostas, compostas de questões objetivas e discursivas referentes ao conteúdo estudado, podendo ser elas de autodiagnóstico ou de discussão. Ao final dessa disciplina você será capaz de: 1. Caracterizar a Inteligência Artificial, seus conceitos básicos, história e evolução, linhas de pesquisa, desafios e suas aplicações; 2. Demonstrar os principais algoritmos, ferramentas e técnicas da Inteligência Artificial aplicáveis ao desenvolvimento de sistemas interativos; 3. Capacitar o discente a identificar e utilizar técnicas, ferramentas e algoritmos da Inteligência Artificial adequadas aos diferentes contextos do projeto de sistemas interativos; 4. Discernir condutas éticas e não éticas nas práticas que envolvam o uso de técnicas de Inteligência Artificial em aplicações computacionais. Fique Atento(a) e Bom Estudo! - -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS DEFINIÇÕES EM INTELIGÊNCIA ARTIFICIAL (IA) - -2 Olá! Ao final desta aula, você será capaz de: 1 - Discutir os conceitos de inteligência; 2 - Criar a base necessária para definir a inteligência artificial; 3 - Compreender o teste de turing e outros testes relacionados a inteligência artificial. O que é a inteligência? O que significa ser inteligente? Poderíamos definir a inteligência como a capacidade mental de raciocinar, aprender, planejar, resolver problemas, além de abstrair e compreender ideias e linguagens. No campo da Psicologia outras qualidades tais como a criatividade, caráter e sabedoria não são consideradas aspectos da inteligência, e podem ser, juntas com ela, consideradas como aspectos da personalidade de um indivíduo. De aorcdo com uma pqsieusa de uma uinrvesriddae ignlsea, não ipomtra em qaul odrem as lrteas de uma plravaa etãso, a úncia csioa iprotmatne é que a piremria e útmlia lrteas etejasm no lgaur crteo Interessante, não? Como vimos, não é fácil descrever de maneira precisa o que é a inteligência, muito menos medi-la, você já teve ter ouvido falar ou até mesmo ter feito os famosos testes de QI, os quais são falhos. Apesar disso, dado o avanço da eletrônica e da computação, nós temos a possibilidade de construir máquinas "inteligentes". Sendo assim, como podemos medir a inteligência de uma máquina? Na década de 30 o matemático inglês Alan Turing pensou como isto seria possível, pensou como testar a compreensão que uma máquina tem da linguagem humana e como avaliar o nível de consciência da mesma. O Teste de Turing, como é conhecido, tem então como objetivo determinar se as máquinas podem pensar. No teste participamdois humanos e uma máquina (computador), colocados em salas fechadas e separadas. Um dos humanos é o juiz. O juiz deverá fazer perguntas (através de um teclado e um monitor) para o outro humano e para a máquina. Se o juiz não conseguir identificar precisamente quem é a máquina, então esta passará no Teste de Turing. “Em certos momentos, essa máquina precisará fazer um enorme “esforço” para imitar o ser humano em suas respostas, já em outros (perguntas que envolvam cálculos matemáticos, por exemplo) a máquina terá de diminuir sua capacidade propositadamente para se parecer com o ser humano.” CARVALHO, Luís Alfredo Vidal de. “DATAMINING, A MINERAÇÃO DE DADOS NO MARKETING, MEDICINA, ECONOMIA, ENGENHARIA E ADMINISTRAÇÃO”. - -3 Um indivíduo precisa descobrir em que sala está o computador “inteligente” apenas formulando perguntas por meio de teclado e monitor. Exemplo Suponha que o juiz faz o papel de um paciente e o computador e o outro humano fazem o papel de médico. Seguindo a conversa abaixo você saberia dizer, se fosse o juiz, que o médico que está respondendo é humano, ou máquina? Inicialmente parece uma consulta normal entre médico e paciente, apesar da consulta ser feita de forma não convencional (através de um terminal de computador, tendo ambos em salas separadas). Após alguns minutos de conversa (que não foi representada completa no diálogo), o paciente é capaz de notar que seu médico se comporta de uma forma um tanto estranha. A consulta foi então interrompida e o paciente (juiz) consegue identificar que o médico em questão é na verdade uma máquina. Esta máquina foi então reprovada no Teste de Turing no momento em que o paciente percebe “algo estranho” com o seu “médico”. - -4 Até hoje foi impossível a construção de uma máquina capaz de imitar o ser humano perfeitamente. Todos os computadores já construídos para passar no Teste de Ti mais cedo ou mais tarde foram reprovados. Em 1996 e 1997 o supercomputador Blue conseguiu ganhar um campeonato de xadrez contra o grande campeão Garry Kasparov. Apesar das controvérsias, esta vitória parece ser um indicativo que os computadores estão ficando cada vez mais "inteligentes", imitando superando os seres humanos em tarefas específicas, tais como o jogo de xadrez quem sabe, um dia, o atendimento médico... Links Não deixe de ler: https://pt.wikipedia.org/wiki/Deep_Blue 1 Algumas propriedades da inteligência Como é muito difícil definir o que é a inteligência, faz mais sentido identificarmos algumas de suas propriedades: Capacidade de comunicação com o mundo; Consciência - Capacidade do ser humano em reconhecer-se como o que realmente é; Aprendizado; Capacidade de resolver problemas; Capacidade de planejar; Memória - Armazenamento de informações. https://pt.wikipedia.org/wiki/Deep_Blue https://pt.wikipedia.org/wiki/Deep_Blue - -5 Outra propriedade importante é a criatividade, ela não é considerada por muitos como uma propriedade da inteligência e sim como um aspecto à parte. A criatividade é uma das qualidades mais belas, interessantes e inexplicáveis que temos, envolvendo a imaginação, abstração, raciocínio, memória e outras propriedades que nos permitem dar saltos de conhecimento. 2 As subáreas da Inteligência Artificial O problema geral de simular (ou da a criar) a inteligência foi dividido em um número de subproblemas específicos. Estes consistem em abordar características ou capacidades particulares que os pesquisadores gostariam que um sistema inteligente tratasse. As subáreas descritas abaixo são as que têm recebido mais atenção por parte da comunidade científica. Solução de problemas Busca o desenvolvimento de novos métodos para resolver problemas matemáticos complexos que são, em geral, requerem um número de com binações muito grande, consumindo muito tempo e recursos computacionais (memória e processador, por exemplo). A Inteligência Artificial busca, então, métodos para resolver o problema de forma aproximada e não necessariamente exata, porém em tempo curto e consumindo menos recursos. Representação do conhecimento A pesquisa na área de representação do conhecimento tenta responder diversas perguntas como: Como representamos nosso conhecimento? As pessoas representam conhecimento todas da mesma maneira? Existe alguma forma de representar qualquer coisa? Como programas inteligentes devem representar conhecimento? Planejamento - -6 Os sistemas inteligentes desenvolvidos aqui devem ser capazes de escolher objetivos e alcançá-los. Alguns sistemas são capazes de planejar estratégias na área administrativa, outros podem gerar planos de como ligar e desligar redes de equipamentos sem causar danos, problema comum nas refinarias de petróleo. Sistemas especialistas Um sistema especialista é uma forma de sistema baseado no conhecimento especialmente projetado para emular a especialização humana de algum domínio específico. Um sistema especialista irá possuir uma base de conhecimento formada de fatos e regras sobre o domínio, tal como um especialista humano faria, e devem ser capazes de oferecer sugestões e conselhos aos usuários. A máquina simulando o médico no Teste de Turing que mostramos anteriormente é um exemplo de sistema especialista. Processamento da linguagem digital Dá às máquinas a habilidade de ler e compreender as línguas que os seres humanos falam e escrevem. Sistemas de processamento da linguagem devem possuir um conhecimento embutido muito grande, bem representado, de fácil acesso, além da capacidade de realizar inferências. Alguns sistemas já desenvolvidos podem dialogar dentro de certos contextos, resumirem textos e “entender” perguntas feitas para consultas a banco de dados. Aprendizado de máquina É a subárea que estuda como um sistema pode aprender com o ambiente no qual está exposto. Se ao sistema for fornecida urna grande massa de dados, um algoritmo de aprendizado embutido no sistema deve ser capaz de retirar algumas conclusões sobre as relações existentes nesses dados. Uma rede de computadores pode ter um sistema de detecção de ataques de hackers (sistema de detecção de intrusão) que monitora o tráfego da rede (grande massa de dados) e conclui, avisando ao administrador da rede, que um ataque está ocorrendo. Robótica – Manipulação e Navegação O campo da robótica está intimamente relacionado ao campo da IA. Os robôs requerem diversos níveis de inteligência para que sejam capazes de executarem tarefas, tais como a manipulação de um objeto (através de um braço mecânico, por exemplo), e a navegação, que inclui a localização (saber onde está), o mapeamento (saber o que está a sua volta) e planejamento de rota (calcular como chegar até determinado local). Percepção – Reconhecimento de padrões e visão computacional Estuda a habilidade de usar o sinal de sensores (tais como câmeras, microfones, etc.) para tirar conclusões a respeito do mundo no qual tais sensores estão inseridos. Quando enxergamos um objeto ou escutamos uma palavra estamos reconhecendo um padrão visual e auditivo respectivamente. Saiba mais Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e - -7 O que vem na próxima aula Na próxima aula, você estudará sobre os assuntos seguintes: • Histórico da Inteligência Artificial; • Áreas multidisciplinares da Inteligência Artificial; • Áreas de aplicação da Inteligência Artificial. CONCLUSÃO Nesta aula, você: • Compreendeu como testar a inteligência de uma máquina; • Aprendeu os conceitos de Inteligência Artificial; • Analisou testes comparativos da inteligência da máquina com a da humana. Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto. Se ainda tiver alguma dúvida, fale com seu professor online utilizando os recursos disponíveis no ambiente de aprendizagem. Uma leitura interessante e descontraída é o livro que conta a história e vida de Alan Turing: LEAVITT, David. “O HOMEM QUE SABIA DEMAIS- ALAN TURING E A INVENÇÃO DO COMPUTADOR”. Ed. Novo Conceito, 2007. • • • • • • - -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS HISTÓRICO DA INTELIGÊNCIA ARTIFICIAL (IA) E SUAS APLICAÇÕES - -2 Olá! Nesta aula, você irá: 1. Histórico da Inteligência Artificial; 2. O Estado da Arte na área de Inteligência Artificial; 3. A influência da Inteligência Artificial nas áreas multidisciplinares; 4. Áreas de aplicação da Inteligência Artificial. Apesar de relativamente recente como Inteligência Artificial, esta ciência é a realização de um sonho do homem que remonta à Antiguidade Clássica. O filósofo grego (384-322 A.C) foi um dos primeiros a tentarAristóteles codificar "pensamento correto", ou seja, processos de raciocínio irrefutáveis. Muitos autores, tais como RUSSEL (2004), consideram ele como um dos principais precursores dos estudos de Inteligência Artificial. Segundo Aristóteles, o estudo sobre o pensamento era a base para todo o conhecimento. Em uma de suas obras, introduziu o conceito de silogismo, que provia argumentos para provar a veracidade de certas sentenças a partir de outras que são sabidamente verdadeiras. Um famoso exemplo de um silogismo é: "Sócrates é homem; todos os homens são mortais; logo, Sócrates é mortal". Em sua obra Lógica, Aristóteles desenvolveu um ' dos conceitos fundamentais da Inteligência Artificial e da Ciência Cognitiva. Segundo ele, a lógica é um instrumento, e o estudo do pensamento é o alicerce para o conhecimento. Foi a partir desses estudos da lógica, que bem ' (por volta do séc.) foi concebida amais tarde Prova Automática de Teoremas. - -3 1 O Estado da Arte O desenvolvimento da Inteligência Artificial foi tão grande que seu potencial de aplicação se tornou bastante abrangente. Algumas áreas de aplicação incluem: Planejamento e agendamento autônomo: Usado pela NASA para o controle de agentes remotos (robôs enviados em missões interplanetárias); Entretenimento: Na forma de jogos eletrônicos ou no teste científico do poder computacional da Inteligência Artificial em comparação com o de um ser humano, como foi feito pela IBM ao lançar o programa jogador de xadrez Deep Blue; Medicina: Através de sistemas especialistas é possível fazer diagnósticos cuja qualidade fica próxima à de um especialista na área; Robótica: Sempre foi de interesse do homem desenvolver máquinas à sua semelhança. Atualmente elas não chegaram neste nível ainda, mas já executam tarefas simples como varrer uma casa e desviar-se de obstáculos; Compreensão da linguagem: Ainda não foi construído um programa capaz de compreender perfeitamente a linguagem humana, devido a sua ambiguidade e contextualização, mas existem programas que traduzem com certa fidelidade alguns textos de uma língua para outra. • Sistemas de reconhecimento ótico de caracteres (OCR) podem traduzir letra escrita de forma arbitrária em texto. • Reconhecimento de escrita a mão é usada em milhões de Assistentes Pessoais Digitais. • Reconhecimento de voz está disponível comercialmente e é amplamente usado. • Sistemas de álgebra computacional, tais como Mathematica e Macsyma, são bons exemplos de aplicações de Inteligência Artificial na solução de problemas algébricos. • Sistemas com Visão computacional são usados em muitas aplicações industriais. • Aplicações utilizando Vida Artificial são utilizadas na indústria de entretenimento e no desenvolvimento da Computação Gráfica. • A área de Redes Neurais vem sendo usadas em uma larga variedade de tarefas, de sistemas de detecção de intrusos a jogos de computadores. • Sistemas baseados na ideia de agentes artificiais, denominados Sistemas Multiagentes, têm se tornados comuns para a resolução de problemas complexos. • Chatterbots, personagens virtuais que conversam em linguagem natural como se fossem humanos de verdade, são cada vez mais comuns na internet. A visão da Inteligência Artificial substituindo julgamento humano profissional tem surgido muitas vezes na história do campo, em Ficção Científica e, hoje em dia, em algumas áreas especializadas onde "Sistemas Especialistas" (aprenderão na aula 07 deste curso) são usados para melhorar ou para substituir julgamento profissional em engenharia e medicina, por exemplo. • • • • • • • • • - -4 2 Áreas de pesquisa em Inteligência Artificial As principais áreas de pesquisa em Inteligência Artificial simbólica são atualmente: sistemas especialistas, aprendizagem, representação de conhecimento, aquisição de conhecimento, tratamento de informação imperfeita, visão computacional, robótica, controle inteligente, inteligência artificial distribuída, modelagem cognitiva, arquiteturas para sistemas inteligentes, linguagem natural e interfaces inteligentes. Além das linhas conexionista e simbólica, observa-se hoje o crescimento de uma nova linha de pesquisa em Inteligência Artificial, baseada na observação de mecanismos evolutivos encontrados na natureza, tais como a auto-organização e o comportamento adaptativo. Nesta linha, os modelos mais conhecidos são os algoritmos genéticos e os autômatos celulares. 3 Campos de aplicação Aprendizado: Existem programas de Inteligência Artificial que conseguem aprender certos fatos por meio da experiência, desde que esse conhecimento possa ser representado de acordo com o formalismo adotado pelo programa. Processamento de linguagem natural: É o estudo voltado para a construção de programas capazes de compreender a linguagem natural (interpretação) e gerar textos. A Geração de Linguagem Natural é a produção de textos por um programa a partir de um conteúdo semântico representado internamente no próprio programa. Objetiva aperfeiçoar a comunicação entre as pessoas e os computadores. Reconhecimento de padrões: É uma das áreas de pesquisa bem avancadas da Inteligência Artificial. A capacidade de reconhecimento de padrões permite ao programa reconhecer a fala em linguagem natural, os caracteres digitados e a escrita (ex.: assinatura). Os scanners, por exemplo, utilizam programas de reconhecimento óptico desenvolvidos pelas pesquisas em Inteligência Artificial. Visão computacional: Busca desenvolver formas do computador trabalhar com a visão bidimensional e tridimensional. Programação de jogos: É o estudo voltado para a construção de programas de jogos envolvendo raciocínio. Os jogos computadorizados são um grande sucesso, ainda mais quando exibem um tipo de inteligência capaz de desafiar as habilidades do jogador. O jogo de xadrez, por exemplo, foi utilizado para as primeiras experiências em programação do raciocínio artificial, onde o computador se tornou capaz de analisar milhões de jogadas por segundo para tentar derrotar o adversário. Além de analisar as jogadas, os programas utilizam um método heurístico que consiste na utilização de uma árvore de busca, a mesma possui ramificações a partir de certos nós, - -5 que representam pontos de decisão no caminho a tomar, com um certo número de etapas, para chegar a um objetivo. Deste modo, ele pode analisar vários nós, de acordo com a situação atual do jogo, e escolher o melhor caminho (o mais curto ou menos arriscado). Robótica: É o campo de estudo voltado para desenvolver meios de construir máquinas que possam interagir com o meio (ver, ouvir e reagir aos estímulos sensoriais). A expressão robô vem do tchêco robota, significa trabalhador, foi criada por Karel Capek, em 1917. O primeiro robô industrial do mundo, batizado de UNIMATE, surgiu em 1962. 4 Áreas multidisciplinares Na filosofia (428 A C a t é a atualidade) Quando o Homem começou a discutir questões como por exemplo I "de onde vem o conhecimento?", ou "como a mente desenvolve o conhecimento?" e a desenvolver a idéia de que a mente em muitos aspectos pode ser considerada como uma máquina, e que, a partir disso, poderiam se criar regras formais que possibilitariam a construção de uma máquina que funcionasse de maneira semelhante à mente. Na matemática (800até a atualidade)Que fornece as ferramentas necessárias para que a representação formas do conhecimento, bem como o desenvolvimento da lógica, declarações de incerteza, probabilidade e a base era a compreensão da computação e do raciocínio sobre algoritmos. Na economia (1776 atéa atualidade) Que desenvolve a idéia de como uma decisão pode afetar positiva ou negativamente o resultado esperado e quais as maneiras para maximizar o resultado final. Na neurociência epsicologia (1861 e 1879 até a atualidade) Pelos estudos sobre o funcionamento do cérebro (Neurociência) e sobre o funcionamento da mente humana e de que os seres humanos e animais podem ser considerados como máquinas que processam informações (Psicologia). - -6 Na engenharia decomputadores (1940 até a atualidade) Pelo desenvolvimento do instrumento ao qual se tomaram possíveis as aplicações de Inteligência Artificial, os computadores, e também pelo desenvolvimento dos sistemas operacionais, linguagens de programação, entre outros. O que vem na próxima aula Na próxima aula, você estudará sobre os assuntos seguintes: • Representação do conhecimento computacional. • Características do conhecimento segundo sua tipologia e principais propostas de representação computacional do conhecimento (e.g. lógica, frames, redes semânticas). Saiba mais Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto. Se ainda tiver alguma dúvida, fale com seu professor online utilizando os recursos disponíveis no ambiente de aprendizagem. Creatures - um jogo de computador com produção que envolvia criatura codificada de um código genético superior utilizando um sofisticado biochemistry e cérebros de rede neural ( ).https://pt.wikipedia.org/w/index.php?title=Creatures&action=edit&redlink=1 Cyc - Uma base de conhecimento com coleção vasta dos fatos sobre o mundo real e a habilidade lógica do raciocínio ( ).https://pt.wikipedia.org/w/index.php?title=Cyc&action=edit&redlink=1 ELIZA - Um programa que simula um psicoterapeuta, desenvolvido na década de 1960. ( ).https://pt.wikipedia.org/wiki/ELIZA PAM (Plan Applier Mechanism) - Um entendedor de histórias desenvolvido em 1978 por John Wilenksy. EURISKO - uma linguagem para resolver problema que consistam em heuristicas, incluindo a descrição do heuristicas explicando como usá-lo e modifica-lo. Desenvolvido em 1978 por Douglas Lenat ( )https://pt.wikipedia.org/w/index.php?title=EURISKO&action=edit&redlink=1 AM - Precursor do EURISKO foi um programa desenvolvido pelo mesmo autor com o objetivo de aprender sozinho conceitos novos no domínio da matemática.( https://pt.wikipedia.org ) ( )/wiki/AM https://pt.wikipedia.org/w/index.php?title=EURISKO&action=edit&redlink=1 X-Ray Vision for Surgeons - grupo no MIT que investigou visão médica (https://www.csail.mit. ).edu/research/medical-vision-group • • https://pt.wikipedia.org/w/index.php?title=Creatures&action=edit&redlink=1 https://pt.wikipedia.org/w/index.php?title=Cyc&action=edit&redlink=1 https://pt.wikipedia.org/wiki/ELIZA https://pt.wikipedia.org/w/index.php?title=EURISKO&action=edit&redlink=1 https://pt.wikipedia.org/wiki/AM https://pt.wikipedia.org/wiki/AM https://pt.wikipedia.org/w/index.php?title=EURISKO&action=edit&redlink=1 https://www.csail.mit.edu/research/medical-vision-group https://www.csail.mit.edu/research/medical-vision-group - -7 CONCLUSÃO Nesta aula, você: • Nesta aula, você conheceu a evolução das descobertas feitas a respeito da matemática e O QUE ela ajudou para entender e organizar de forma simbólica a inteligência até dar origem a Inteligência Artificial computacional. • Aprendeu que a Inteligência Artificial reproduz artificialmente habilidades humanas como o aprendizado e uso da linguagem. • Percebeu que o pensamento é uma forma de computação. • Conheceu as diversas áreas em que a Inteligência Artificial é aplicada. • • • • - -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS REPRESENTAÇÃO DE CONHECIMENTO - -2 Olá! Nesta aula, você irá: 1. Conhecer as condições necessárias sobre a representação de conhecimento computacional em inteligência artificial; 2. Representar as diferentes formas do conhecimento utilizando: lógica, redes semânticas e quadros; 3. Saber as principais propostas de representação computacional do conhecimento. Os psicólogos cognitivos gostariam de poder explorar e analisar como cada um de nós representa o conhecimento, pena que os métodos empíricos são praticamente improváveis a curto e médio prazo. Já a abordagem racionalista tenta deduzir logicamente a explicação mais razoável de como se representa esse conhecimento. Na epistemologia clássica, os filósofos dividiam o conhecimento em duas classes de estruturas: o conhecimento declarativo e o conhecimento procedural. Para representar o conhecimento, devemos possuir formas de representar tanto as informações, como os procedimentos (ações). Existem várias formas de representação do conhecimento, três delas são: Lógica (procedimentais) - é a base para a maioria dos formalismos de representação de conhecimento, seja de forma explícita, como nos sistemas especialistas baseados na linguagem Prolog, seja mascarada na forma de representações específicas que podem facilmente ser interpretadas como proposições ou predicados lógicos. Redes semânticas (declarativas) - é um nome utilizado para definir um conjunto heterogêneo de sistemas. Em última análise, a única característica comum a todos estes sistemas é a notação utilizada: uma rede semântica consiste em um conjunto de nós conectados por um conjunto de arcos. Os nós em geral representam objetos e os arcos, relações binárias entre esses objetos. Mas os nós podem também ser utilizados para representar predicados, classes, palavras de uma linguagem, entre outras possíveis interpretações, dependendo do sistema de redes semânticas em questão. Quadros/frames (declarativas) - e sua variação, os roteiros (.scripts.), foram introduzidos para permitir a expressão das estruturas internas dos objetos, mantendo a possibilidade de representar herança de propriedades como as redes semânticas. As ideias fundamentais destes métodos foram introduzidas por Marvin Minsky, em seu artigo: A framework to represent knowledge. Entretanto, para que possamos compreendê-las, é necessário entender com quais entidades eles lidam. Fundamentalmente, podemos falar em duas entidades: os fatos (ou seja, as verdades ou informações que - -3 possuímos sobre um determinado contexto) e a representação dos fatos (formalismo simbólico que permite representar e manipular o conhecimento em um determinado contexto). A IA deve ter mecanismos para a representação de fatos. A abordagem mais comum para este fim é usar a linguagem da lógica. A prova de teoremas foi um dos primeiros domínios nos quais as técnicas de IA eram exploradas. 1 Lógica matemática Para a representação do conhecimento através da lógica utilizam-se os seguintes símbolos lógicos padrões: • Símbolos lógicos Pontuação: (,) • Conectivos negação: ~ (Não) conjunção: Ʌ (e) disjunção: V (ou) implicação: → (se-então) bi-implicação ou bi-condicional: ↔ (se-somente-se) 2 Lógica de primeira ordem ou cálculo proposicional A Representação Lógica (também conhecida como Lógica de Primeira Ordem) é baseada em uma notação que procura representar os fatos evitando as ambiguidades da linguagem natural e permite realizar inferências de novos fatos. O problema é que nem sempre o conhecimento pode ser mapeado em uma relação um-para-um, como em: • • - -4 Por vezes, é necessário utilizar representações de muitos-para-muitos, como em: As declarações um-para-um são tratadas com uma área da lógica chamada de Cálculo Proposicional e as declarações muitos-para-muitos são tratadas por uma área chamada Cálculo de Predicados. Para representar o conhecimento de um mundo que um sistema de IA necessita, usa-se a lógica proposicional. Representa- se os fatos domundo real através das proposições lógicas. 3 Semântica das linguagens proposicionais As fórmulas de urna linguagem proposicional, incluindo os símbolos proposicionais, terão como significado os valores-verdade: FALSO (F) ou VERDADEIRO (V). A letra v indica o valor-verdade da proposição: - -5 4 O método da tabela-verdade Para combinarmos os valores possíveis com os conectivos definidos, precisamos definir os valores resultantes das operações lógicas. Estes valores estão representados na Tabela Verdade, que é objeto de deduções que podem ser provadas, através de procedimentos da Lógica de Primeira Ordem. Esta é uma tabela base de consulta das combinações. Ela é largamente utilizada na matemática pura, engenharia elétrica e na programação (principalmente nos testes das estruturas de seleção e repetição if-else while. 4.1 Construção da tabela-verdade Para saber quantas linhas a tabela verdade terá, basta contar quantas proposições existem (n) e aplicar na fórmula: 2n. Exemplo: 2 proposições = 4 linhas 3 proposições = 8 linhas. - -6 4 proposições = 16 linhas Posicione as proposições nas primeiras colunas. Exemplo: Para as 3 proposições p, q, r Para a primeira coluna, pegue o total de linhas (8) e divida por 2 que resultará 4. Preencha-a com quatro V da metade das linhas para cima e com quatro F da metade pra baixo. Para a segunda coluna, pegue o total de linhas (8) e divida por 4 que será igual a 2. Ou seja, preencha com dois V a metade da quarta parte para cima e com dois F a metade da quarta parte pra baixo. Faça isso novamente com a outra metade que sobrou. Para a terceira coluna, pegue o total de linhas (8) e divida por 8 que resultará em 1. Preencha de V e F alternadamente. Começando com V. - -7 Primeira e segundas colunas preenchidas. Colocar em modo de animação V e F da terceira coluna respeitando o que está escrito no item 5. 5 Lógica de predicados Nas proposições lógicas que vimos até agora, lidávamos apenas com um único objeto. Proposições acerca de vários objetos, tais como “Todos os Homens são mortais” ou “Os times do Rio são os melhores”. Os objetos destas proposições são “homens”, no primeiro caso e “times”, no segundo caso. Já “mortais” e “melhores” são as propriedades. Aos objetos chamamos sujeitos e às propriedades chamamos predicados. Na lógica de Predicados representamos, por exemplo, a proposição “Marcos nasceu em Pompéia” como: Pompeano (Marcos). Essa proposição é dita fechada, porque pode ser avaliada como verdadeira ou falsa. Nesta mesma lógica, quando o sujeito não é conhecido, pode ser substituído por uma variável. Por exemplo, representamos a proposição “Alguém governava Pompéia” como: Governador(x). Resumidamente, pode ser escrita na forma G(x), ou ainda Gx. Essa proposição é dita aberta porque não é possível avaliá-la, uma vez que não conhecemos o valor de x. A transformar a proposição aberta em fechada, é chamado de instanciação ou especificação. Universo de uma variável é o conjunto de todos os valores que ela pode assumir. Os valores do Universo que tornam a proposição verdadeira constituem o seu Conjunto Verdade. 6 Redes semânticas Uma rede semântica é uma forma de representação do conhecimento para modelos computacional de memórias humana (memória semântica). Ela é um conjunto ou um grafo de nós conectados por ligações. Os vértices (nós /nodos) representam objetos, situações ou conceitos (elementos), as arestas (arcos) representam relações - -8 semânticas entre os conceitos e as ligações podem ser quaisquer mas devem transmitir a semântica de maneira mais fiel possível. Elas são consideradas uma forma comum de um dicionário legível por uma máquina. A semântica é o estudo do significado de conceitos individuais utilizados na linguagem. É uma tentativa de descrever os significados das palavras e as condições sob as quais eles podem interagir para serem compatíveis com outros aspectos de uma linguagem. Os tipos mais comuns de ligações em uma rede semântica são: “é-parte-de” e “é-um” ou “é-uma”. As divisões e tipos básicos de ligações em redes semânticas Propriedade Relaciona um nó com outro. Subparte Indica que um nó é subparte ou componente de outro (“é parte-de”). Subclasse Exprime que um nó é uma subclasse (representada por outro nó). Relacionamento Informa que os nós envolvidos se relacionam de alguma forma. Tipos de semântica Procura mostrar o quanto a descrição se aproxima da realidade representada.Semântica Descritiva: Procura estabelecer equivalências entre a representação efetuada e uma outraSemântica de Equivalência: forma de representação do conhecimento. Semântica Procedural: Usa programas para exprimir o significado (exige entendimento de uma linguagem de programação). 7 Frames Modelo de representação de conhecimento onde um elemento de um domínio é representado por um conjunto de características. “Um frame possui um nome que identifica o conceito por ele definido e um conjunto de atributos (slots). Um frame é uma estrutura de dados complexa, útil para modelar objetos do mundo real. Assemelham-se a registros de um banco de dados porém mais poderosos e expressivos.” Frames são conjuntos de slots (campos) e de valores, cuja estrutura contém informações referentes a determinados objetos, as quais são armazenadas de forma hierárquica. Os frames podem ser criados a partir de uma coleção de frames (já existentes) conectados entre si. Isto se torna possível uma vez que um atributo de um frame pode ser outro frame. - -9 "Um frame é uma coleção de atributos, em geral chamados de escaninhos (slots), e valores a eles associados (e possivelmente restrições a estes valores) que descrevem alguma entidade do mundo." O que vem na próxima aula Na próxima aula, você estudará sobre os assuntos seguintes: • Na próxima aula, você irá estudar resolução de problemas em Inteligência Artificial. • A aula conterá definições e caracterização de problemas como: o problema das jarras, o problema das 8 rainhas, o problema do quebra-cabeças de 8 peças, os problemas de roteamento e de tour, o problema do caixeiro viajante, os problemas relacionados a jogos de computador, o problema da pesquisa na Internet e outros problemas relacionados à Indústria. • Compreenderá que podem existir várias soluções para um problema e que a solução ótima é aquela que tem o caminho de menor custo. CONCLUSÃO Nesta aula, você: • Conheceu as diferentes formas de representação do conhecimento. • Percebeu que poderá utilizar estas formas de conhecimento para organizar melhor os procedimentos de um jogo. • Compreendeu a importância do cálculo proposicional e de predicados para a representação do conhecimento. • Aprendeu a distinguir as diferentes formas de representação do conhecimento e analisar cada uma delas. Saiba mais Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto. Se ainda tiver alguma dúvida, fale com seu professor online utilizando os recursos disponíveis no ambiente de aprendizagem. Histórico da Lógica: https://pt.wikipedia.org/wiki/Hist%C3%B3ria_da_l%C3%B3gica Minsky (representação do conhecimento - Frames) www.media.mit.edu/people/minsky///web.media.mit.edu/~minsky/papers/Frames/frames. html • • • • • • • https://pt.wikipedia.org/wiki/Hist%C3%B3ria_da_l%C3%B3gica http://www.media.mit.edu/people/minsky/web.media.mit.edu/~minsky/papers/Frames/frames.html http://www.media.mit.edu/people/minsky/web.media.mit.edu/~minsky/papers/Frames/frames.html - -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS RESOLUÇÃO DE PROBLEMAS EM INTELIGÊNCIA ARTIFICIAL - -2 Olá! Nesta aula, você irá: 1. Definir e caracterizar problemas na área de Inteligência Artificial. 2. Estruturar e exemplificar problemas de acordo com a sua área de interesse. Para solucionar problemas através de técnicas de Inteligência Artificial, vamos começar definindo de forma precisa os elementos que constituem o problema e suasolução. Um problema pode ser definido, formalmente, por quatro componentes: Para explicar os componentes anteriores, vamos utilizar alguns problemas como exemplo, primeiro, um problema bem simples: João está na estação Central do metrô no Rio de Janeiro. Ele precisa ir para o Flamengo. Considere que João só pode ser locomover de metrô. Se conhecermos bem o metrô do Rio, ou tivermos seu mapa, saberemos que somente um dos três sentidos nos leva corretamente para o Flamengo, mas vamos fingir que não sabemos. - Zona Norte. Próxima estação: Universidade X - Zona Sul. Próxima estação: Pres. Vargas - Pavuna. Próxima estação: Cidade Nova - -3 Definindo o problema, através dos seus componentes: Estado inicial: Ponto de partida do problema, no nosso caso poderia ser descrito como Em(Central). - -4 Uma descrição das ações possíveis que estão disponíveis. Dado um estado particular x,Função sucessor: SUCESSOR(x) retorna um conjunto de pares ordenados <ação, sucessor>, em que cada ação é uma das ações válidas no estado x e cada sucessor é um estado que pode ser alcançado a partir de x aplicando-se a ação. No nosso caso, se utilizarmos, por exemplo, o estado Em(Central), a função sucessor retomaria: <Ir(Zona Norte), Em(Praça Onze)>, <Ir(Zona Sul), Em(Pres. Vargas)>, cir(Pavuna), Em(Cidade Nova)> ; Juntos, o estado inicial e a função sucessor (quando aplicada a todos os estados) definem implicitamente o espaço de estados do problema: o conjunto de todos estados possíveis a partir do estado inicial. Determina se um estado é um estado objetivo. Às vezes, podem haver vários estadosTeste de objetivo: objetivos possíveis, no nosso caso o estado objetivo é único, Em(Flamengo). Às vezes, também pode ser que o estado objetivo não seja necessariamente um conjunto de um ou mais estados explicitamente enumerados, pode ser uma propriedade abstrata. Por exemplo, no xadrez, o objetivo é alcançar um estado chamado "xeque-mate", onde o rei do oponente está sob ataque e não consegue escapar. - -5 Atribui um custo numérico a cada caminho. Um caminho no espaço de estados é umaCusto do caminho: sequência de estados conectados por uma sequência de ações, por exemplo: <Ir(Zona Sul), Em(Pres. Vargas), <Ir (Zona Sul), Em(Uruguaiana)>, <Ir(Zona Sul), Em(Carioca)>, <Ir(Zona Sul), Em(Cinelândia)> O custo poderia ser a soma das distâncias em Km entre uma estação e outra. - -6 Atenção Os elementos precedentes definem um problema e podem ser reunidos em uma única estrutura de dados, que é fornecida como entrada para um algoritmo de resolução de problemas. Solução do Problema: A solução do problema é um caminho desde o estado inicial até um estado objetivo. A qualidade da solução é medida pela função de custo do caminho, uma solução ótima tem o menor custo de caminho dentre todas as soluções possíveis. A solução ótima para o problema do metrô seria: <Ir(Zona Sul), Em(Pres. Vargas)>, <Ir(Zona Sul), Em(Uruguaiana)>, <Ir(Zona Sul), Em(Carioca)>, <Ir(Zona Sul), Em(Cinelândia)>, <Ir(Zona Sul), Em(Glória)>, <Ir(Zona Sul), Em(Catete)>, <Ir(Zona Sul), Em(Largo do Machado) >, <Ir(Zona Sul), Em(Flamengo)>. Só para ilustrar, outra solução, que obviamente não seria ótima: Ir(Zona Norte), Em(Praça Onze)>, <Ir(Zona Sul), Em(Central)>, <Ir(Zona Sul), Em(Pres. Vargas)>, <Ir(Zona Sul), Em(Uruguaiana)>, <Ir(Zona Sul), Em(Carioca)>, <Ir(Zona Sul), Em(Cinelândia)>, <Ir(Zona Sul), Em(Glória)>, <Ir (Zona Sul), Em(Catete)>, <Ir(Zona Sul), Em(Largo do Machado)>, <Ir(Zona Sul), Em(Flamengo)>. Vamos agora a outro exemplo de problema mais interessante para nós, um jogo/desafio mental: - -7 Você possui duas jarras de água, uma com capacidade de 4 litros e outra de 3 litros, ambas estão inicialmente vazias. Como obter 2 litros de água na jarra de 4 litros? Você deve sempre encher ou esvaziar as jarras de forma completa e pode transferir água de uma jarra para outra. Para esse problema, tente definir o estado inicial, o teste de objetivo, todas as funções sucessor a partir do estado inicial, e a solução ótima. Vamos representar cada estado por dois números, o primeiro é a quantidade de água na jarra de 4 litros (x) e o segundo é a quantidade de água na jarra de 3 litros (y), assim: (x, y). Depois compare com as respostas que seguem: Estado inicial: (0,0) Teste de objetivo: (2,0) Função sucessor: Estado inicial (0,0) <Enche jarra de 4, (4,0)>, <Enche jarra de 3, (0,3)> Estado (4,0) <Esvazia jarra de 4, (0,0)>, <Enche jarra de 3, (4,3)>, <Transfere4para3, (1,3)> Estado (0,3) <Esvazia jarra de 3, (0,0)>, <Enche jarra de 4, (4,3)>, <Transfere3para4, (3,0)> Estado (4,3) <Esvazia jarra de 4, (0,3)>, <Esvazia jarra de 3, (4,0)> Estado (1,3) <Esvazia jarra de 4, (0,3)>, <Esvazia jarra de 3, (1,0)>, <Enche jarra de 4, (4,3)>, <Transfere3para4, (4,0)> Estado (3,0) <Esvazia jarra de 4, (0,0)>, <Enche jarra de 4, (4,0)>, <Enche jarra de 3, (3,3)>, <Transfere4para3, (0,3)> Estado (1,0) - -8 <Esvazia jarra de 4, (0,0)>, <Enche jarra de 4, (4,0)>, <Enche jarra de 3, (1,3)>, <Transfere4para3, (0,1)> Estado (3,3) <Esvazia jarra de 4, (0,3)>, <Esvazia jarra de 3, (3,0)>, <Enche jarra de 4, (4,3)>, <Transfere3para4, (4,2)> Estado (0,1) < Esvazia jarra de 3, (0,0)>, <Enche jarra de 3, (0,3)>, < Enche jarra de 4, (4,1)>, <Transfere3para4, (1,0)> Estado (4,1) <Esvazia jarra de 4, (0,1)>, < Esvazia jarra de 3, (4,0)>, <Enche jarra de 3, (4,3)>, <Transfere4para3, (2,3)> Estado (4,2) <Esvazia jarra de 4, (0,2)>, < Esvazia jarra de 3, (4,0)>, <Enche jarra de 3, (4,3)>, <Transfere4para3, (3,3)> Estado (0,2) <Esvazia jarra de 3, (0,0)>, < Enche jarra de 4, (4,2)>, <Enche jarra de 3, (0,3)>, <Transfere3para4, (2,0)> Estado objetivo! Solução do Problema <Enche jarra de 3, (0,3)>, <Transfere3para4, (3,0)>, <Enche jarra de 3, (3,3)>, <Transfere3para4, (4,2)>, <Esvazia jarra de 4, (0,2)>, <Transfere3para4, (2,0)> - -9 Exemplos de Problemas Miniproblemas: • Servem para ilustrar, exercitar ou comparar métodos de solução de problemas. • Geralmente, possuem descrição concisa e exata. Problemas no mundo real • Problemas cujas soluções preocupam as pessoas e são importantes para a humanidade. • Tendem a não apresentar uma descrição consensual. O que vem na próxima aula Na próxima aula, você estudará sobre os assuntos seguintes: • O conceito de busca em espaço de estados. • Os tipos e subtipos de buscas (cegas e heurísticas). • Os métodos de busca. • • • • Saiba mais Para saber mais sobre os tópicos estudados nesta aula, pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto. Se ainda tiver alguma dúvida, fale com seu professor online utilizando os recursos disponíveis no ambiente de aprendizagem. Conheça o site de jogos de lógica plastelina.net ( ).www.plastelina.net • • • http://www.plastelina.net/ - -10 CONCLUSÃO Nesta aula, você: • Conheceu o problema das jarras, o problema das 8 rainhas, o problema do quebra-cabeças de 8 peças, os problemas de roteamento e de tour, o problema do caixeiro viajante, os problemas relacionados a jogos de computador, o problema da pesquisa na internet e outros problemas relacionados à indústria. • Aprendeu que um problema deve ser dividido em 4 componentes: estado inicial, função sucessor, teste de objetivo e custo do caminho; aprendeu também que para IA os problemas se dividem em mini- problemas e problemas do mundo real. • Percebeu que os problemas necessitam de um tratamento preciso e detalhado para se alcançar uma determinada solução. • Compreendeu que podem existir várias soluções para um problema e que a solução ótima é aquela que tem o caminho de menor custo. • Analisou o problema das jarras, identificando os componentes do problema. • • • • • - -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS BUSCA EM ESPAÇO DE ESTADOS - -2 Olá! Nesta aula, você irá: 1. Apresentar o conceito de busca, em espaço de estados. 2. Estudar as buscas cegas e as heurísticas. 3. Conhecer os subtipos debusca e seus métodos. No capítulo anterior, aprendemos como formular corretamente os problemas e demos os primeiros passos em busca das soluções. Agora, neste capitulo, aprenderemos como solucionar problemas através de técnicas de busca em espaço de estados. Lembra do problema das jarras, no capítulo anterior? Ali, nós resolvemos o problema pela chamada força bruta, construindo uma árvore com todos os estados possíveis, desde o estado inicial, até encontrarmos um estado objetivo. Mas, nem sempre um problema ou mini-problema possui um espaço de estados pequeno, que permite examinar todos os casos possíveis e encontrar a solução ou a solução ótima. Vejamos um exemplo intermediário. Vamos retomar o jogo das 8 peças, apresentado no capítulo anterior, no qual um tabuleiro com 9 posições contém 8 peças e uma casa vazia, por meio da qual se faz o movimento das peças. O objetivo do jogo é atingir uma posição final específica (teste de objetivo), a partir de uma posição inicial qualquer (aleatória, por exemplo), movimentando-se cada peça por meio do espaço vazio. Vamos simbolizar o problema como uma matriz 3x3, numerando as peças de 1 a 9 e o espaço vazio como 0. - -3 Aplicar uma função sucessor e construir todos os estados possíveis pode ser bastante complexo e demorado, com tabuleiros maiores, então, até para um computador isso pode se tornar complicado de se realizar em tempo razoável. Vamos, então, pensar de forma inteligente. Como podemos mover as peças? Cada peça pode se mover, potencialmente, em 4 direções possíveis, isso nos dá 32 regras para os possíveis movimentos. Se imaginarmos o espaço vazio como uma peça, reduzimos nossas regras para apenas 4, assumindo que o espaço vazio é que é uma "peça" que pode se movimentar nas quatro direções possíveis. Teremos, então, quatro movimentos: MC - movimento do espaço vazio (0) para cima. MD - movimento do espaço vazio (0) para direita. MB - movimento do espaço vazio (0) para baixo. ME - movimento do espaço vazio (0) para esquerda. A solução para o problema se dará pela execução do seguinte algoritmo: Selecionar uma regra de movimento dentre as quatro possíveis, respeitando obviamente as fronteiras do tabuleiro. Qual a melhor regra a ser selecionada? É aqui que entra uma parte extremamente importante do método; lembre-se bem desse passo, dentro do contexto da solução, voltaremos aqui em breve. Aplique a regra selecionada, gerando um novo estado e, consequentemente, um novo ramo da árvore, filho do anterior. Se o novo estado é igual ao estado objetivo, termine; caso contrário, volte ao passo 1. Dá para perceber que o coração do sistema é o passo 1, pois, é nele que se seleciona (ou se tenta selecionar) a melhor regra a ser aplicada, diminuindo assim a possibilidade de realizar uma busca muito grande e errática. Observe a árvore de busca (incompleta): Obs.: foram descartadas as funções sucessoras, que voltam ao estado anterior. - -4 Podemos notar que a árvore de busca completa poderia ser bastante extensa, dependendo do estado inicial! Como encontrar a solução de forma mais rápida, sem fazer a árvore de busca completa? Para responder, vamos estudar os tipos de busca a seguir. Busca cega - busca sem informação Heurística - busca com informação 1 Busca cega São buscas sem informação. Não há nenhuma informação adicional sobre os estados, além daquela fornecida na definição do problema. Vamos estudar dois métodos: Busca em largura: é um algoritmo usado para realizar uma busca numa estrutura de árvore ou grafo. Começa pelo nó raiz e segue, explorando todos os nós vizinhos inexplorados, examinando sistematicamente todos os nós de unia árvore, sem considerar o seu alvo de busca, até que ele o encontre. - -5 E assim por diante... é um algoritmo usado para realizar uma busca numa estrutura de árvore ou grafo.Busca em profundidade: Começa pelo nó raiz e se aprofunda, seguindo pela esquerda, explorando tanto quanto possível cada um dos seus ramos, até que o alvo da busca seja encontrado, ou até que ele se depare com um nó que não possui filhos (nó folha). Então a busca retrocede (backtrack) e recomeça no próximo nó vizinho. No problema do quebra cabeça de 8 peças, teríamos a seguinte sequência de estados: - -6 E assim por diante... Obs.: As buscas em profundidade podem ser limitadas, isto é, podem ter um limite no qual ao atingi-lo o algoritmo considera que chegou a um estado que não tem sucessor, ou seja, um nó que não possui filhos (nó folha). Então, a busca retrocede (backtrack) e recomeça no próximo nó vizinho. Concluímos que a busca cega encontrará, em média, a solução de forma mais rápida do que utilizando força bruta, mas poderemos ter soluções ainda mais eficientes? Claro que sim! 2 Heurísticas São buscas com informação. São utilizadas informações que permitem descobrir se um estado a ser seguido é mais promissor que outro, dentro da árvore de busca. Busca A* Outro método de busca bastante difundido é a busca A* (busca completa e ótima) que, para gerar um novo estado, dá preferência ao que possui a melhor função de avaliação, considerando nesta função a soma do custo e a avaliação heurística. Esse método é ótimo e completo, mas com complexidades de tempo e de espaço exponenciais. Porém, geralmente, gera menos nós que os outros métodos de busca. Busca gulosa A busca gulosa é um tipo de irrevogável, isto é, ela se caracteriza por não permitir que se volte atrás no espaço de busca. Ela é muito utilizada, quando se tem pouco conhecimento do problema tratado. O que vem na próxima aula Na próxima aula, você estudará o assunto seguinte: • Sistemas baseados em conhecimento e os sistemas especialistas.• - -7 CONCLUSÃO Nesta aula, você: • Conheceu a busca em espaço de estados. • Aprendeu que existem dois tipos de busca: as buscas cegas e as heurísticas. • Percebeu que há meios de resolver problemas de forma inteligente, sem uso de força bruta. • Conheceu as buscas em largura, em profundidade, a busca gulosa e busca A*. • Compreendeu que nem sempre uma busca com uma heurística ótima pode ser a mais eficiente. • Analisou os métodos de busca, utilizando o jogo das 8 peças. • • • • • • - -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS SISTEMAS BASEADOS EM CONHECIMENTO E SISTEMAS ESPECIALISTAS - -2 Olá! Nesta aula, você irá: 1. Estudar os sistemas baseados em conhecimento (SBCs) e os sistemas especialistas. 2. Conhecer exemplos de SBCs. 3. Compreender detalhes da programação de SBCs. 1 Humanos vs máquinas O conhecimento é um requisito indispensável na resolução de problemas complexos e específicos. Existem problemas em que nós, humanos, somos mais bem sucedidos do que as máquinas. Para que as máquinas resolvam problemas desse tipo, elas devem ter o conhecimento que nós temos para resolvê-los. As máquinas são melhores que os seres humanos em relação à velocidade e consistência que executam certas tarefas, mas para que as máquinas executem tarefas para as quais o ser humano é melhor, devemos fornecer a elas um conhecimento especializado, comparável ao que um especialista humano possui. 2 Sistemas baseados em conhecimento Um sistema baseado em conhecimento (SBC) é um programa de computador que usa conhecimento representado explicitamente para resolver problemas. Os SBCs são desenvolvidos para resolver problemas que requerem uma quantidade razoável de conhecimento humano e especialização. - -3 3 Sistemas especialistas Um sistema especialista (SE) é um tipo de sistema baseado em conhecimento especialmente projetado para emular a especialização humana de algum domínio específico. Um SE irá possuir uma base de conhecimento formada de fatos e regras sobre o domínio, tal como um especialista humano faria. Os Sistemas Especialistas (SEs) devem ser capazes de oferecer sugestões e conselhos aos usuários, no nível comparável ao de especialistas naquela área. Essa habilidade de explicação é especialmente necessária em domínios incertos (tal comono diagnóstico médico), para aumentar a confiabilidade do usuário, no conselho fornecido pelo sistema, ou mesmo, para permitir o usuário detectar algum possível problema no raciocínio do sistema. Podemos, então, afirmar que todo sistema especialista é, em sua essência, um sistema baseado em conhecimento, enquanto que a recíproca nem sempre é verdadeira, uma vez que podemos ter programas dentro do escopo de IA que apresentem essa estrutura de conhecimento, mas não podem ser considerados sistemas especialistas. SEs Aplicam conhecimento especializado em problemas difíceis existentes, sendo capazes de explicar seu comportamento. SBCs Tornam o domínio de conhecimento explícito e separado de outras partes do sistema. Aplicativos de IA Exibem comportamento inteligente pela aplicação hábil de heurísticas. - -4 Para que um SBC tenha desempenho similar a um especialista humano, ele deve: • Possuir grande quantidade de conhecimento disponível. • Acessar esse conhecimento rapidamente. • Ser capaz de raciocinar adequadamente com esse conhecimento. Adicionalmente, um SE deve ter uma capacidade amigável de interação humano-computador que torna o raciocínio do sistema transparente ao usuário. 4 Arquitetura de um SBC A arquitetura de um SBC é composta de: • Base de Conhecimento. • Área/memória de Trabalho. • Mecanismo/motor de Inferência. • Interface com usuário. Módulo de aquisição de dados. Módulo de Explicações. • • • • • • • - -5 Base de conhecimento Contém informações necessárias, para solucionar problemas em um domínio específico, no nível de um especialista. Possui um conjunto de sentenças expressas em uma linguagem de representação do conhecimento (vide capítulo 3), que modelam o problema que se deseja resolver. As linguagens de representação do conhecimento baseiam-se em diferentes técnicas de representação, tais como as redes semânticas, fremes e lógica. Área de trabalho Armazena fatos deduzidos a respeito do problema corrente. Ela é atualizada sempre que novas informações tornam-se disponíveis. A área de trabalho é urna memória temporária e tem seu conteúdo geralmente descartado após a execução. Mecanismo de inferência É o cérebro do sistema, sendo capaz de realizar inferências sobre a base de conhecimento e obter conclusões. Aplica as estratégias de inferência e controle, processando informações contidas na base de conhecimento e na memória de trabalho, tentando assim encontrar uma solução para o problema. Interface É um processador de linguagem projetado para processar e produzir comunicação orientada a problemas entre o usuário e o sistema, que ocorre usualmente numa linguagem natural, podendo ser complementada por menus e elementos gráficos. Composta por: Módulo de aquisição de dados: - Acionado pelo Mecanismo de Inferência quando este necessita dados específicos. - Pergunta ao usuário, obtém as respostas, enviando-as ao Mecanismo de Inferência. - -6 Módulo de Explicação: - Módulo que facilita a explicação, justificando as conclusões e explicando o comportamento do sistema através de questões interativas. 5 Desenvolvimento de um SBC O desenvolvimento de um SBC é uma forma de preservar, aproveitar e fazer uso da experiência dos membros de uma organização. O conhecimento de um especialista é capturado, organizado e disponibilizado na base de conhecimento durante a construção deum SBC. O que justifica a construção de um SBC? Fatores: • Custo. • Habilidade e disponibilidade do especialista. • Delimitações do domínio de conhecimento. Quando é justificável O desenvolvimento de um SBC é justificável quando (e/ou): • A resolução do problema trará lucros. • A falta de um especialista afeta a eficiência da tarefa. • A tarefa tem um domínio bem delimitado. • Especialistas são necessários em vários locais. • Existe a necessidade de retenção de conhecimento. 5.1 Divisão do desenvolvimento do SBC Podemos dividir o desenvolvimento de um SBC/SE nas seguintes fases: 1) Planejamento • Identificação do domínio do conhecimento. • Seleção da equipe de desenvolvimento. • Seleção da ferramenta de desenvolvimento (Prolog, Expert Sinta etc.). 2) Construção da base de conhecimento • Aquisição de conhecimento. • Representação de conhecimento (formalização). 3) Implementação • Codificação. • Representação o conhecimento na ferramenta. • Construção do sistema de explicação, interface etc. • Documentação do sistema. 4) Refinamento e validação • Validação e verificação. • Refinamento. • • • • • • • • • • • • • • • • • • • - -7 • Validação e verificação. • Refinamento. 5.2 Ferramentas para o desenvolvimento de SBCs e SE Historicamente, foram desenvolvidas diversas ferramentas com o intuito de auxiliar no processo de implementação de SBCs e SEs. Dentre elas podem-se destacar: Expert SINTA: É uma ferramenta visual para criação de sistemas especialistas que usa regras de produção; desenvolvida pelo Laboratório de Inteligência Artificial da Universidade Federal do Ceará. ESPERTO: Ferramenta Web para o desenvolvimento colaborativo de Sistemas Especialistas de Classificação. Prolog: Uma linguagem de programação que se enquadra no paradigma de Programação em Lógica Matemática. É uma linguagem de uso geral que é especialmente associada com a inteligência artificial e linguística computacional. 6 Aplicações dos sistemas baseados em conhecimento e dos sistemas especialistas Os sistemas baseados em conhecimento e os sistemas especialistas podem ser aplicados na solução de diversos tipos de problemas, tais como: Interpretação • Análise de dados para determinar o seu significado. • Exemplos: Processamento de imagem, reconhecimento de fala. Classificação • Determinar falhas num sistema a partir de um conjunto de sintomas. • Exemplos: Diagnóstico de doenças, falhas de máquinas. Monitoração • Observação contínua de um sistema para agir quando uma situação acontece. • Exemplos: Centrais de energia nuclear, tráfego aéreo, pacientes internados. Planejamento • Determinar conjunto de ações para atingir uma determinada meta. • Exemplos: Operações de robôs, ações militares, genética molecular. Projetos • Especificações de um projeto de modo a obedecer a um conjunto de requisitos. • Exemplos: Layout de circuitos eletrônicos, computadores, estruturas de engenharia. Jogos • Jogos de tabuleiro, de estratégia e outros. • Exemplos: Xadrez, damas, Akinator. • • • • • • • • • • • • • • - -8 Não deixe de visitar o site para ter uma idéia rápida e divertida do que um sistema baseado em conhecimento é capaz de fazer. http://pt.akinator.com O que vem na próxima aula Na próxima aula, você estudará o seguinte assunto: • O aprendizado de máquina: serão feitas as considerações iniciais, no que tange ao aprendizado de máquina. Será tratado, especificamente, o aprendizado indutivo de máquina e as árvores de decisão. CONCLUSÃO Nesta aula, você: • Conheceu os sistemas baseados em conhecimento (sbcs). • Conheceu também os sistemas especialistas e suas especificidades. Saiba mais Não deixe de acessar o Akinator, o Gênio da Internet! (Um sistema especialista capaz de adivinhar o personagem que você está pensando!) //pt.akinator.com • • • http://pt.akinator.com/ http://pt.akinator.com http://pt.akinator.com/ - -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS APRENDIZADO DE MÁQUINA - -2 Olá! Nesta aula, você irá: 1. Conhecer o aprendizado de máquina e a necessidade (ou não) do seu uso. 2. Estudar as redes neurais. 3. Estudar as árvores de decisão. 1 Introdução Jogos populares, como xadrez e dama, foram um dos pioneiros a utilizar técnicas de Aprendizado de Máquina, também denominada, na literatura, como Machine Learning. Jogos modernos, que possuem gráficos e sons realistas, alta interatividade e um gerenciamento mais cuidadoso dos recursos disponíveis, exigem a aplicação de técnicas mais sofisticadas, indicando, assim, que estes novos jogos não são aplicações dedicadas a realizar somente cálculos de InteligênciaArtificial. Nesta aula, são discutidas técnicas de aprendizado que estão sendo utilizadas, atualmente, em jogos de entretenimento digital. 2 Usar ou não técnicas de aprendizado de máquina? O campo de Aprendizado de Máquina, em jogos de entretenimento em tempo real, até o momento, foi pouco explorado, mas já manifestou bons exemplos de sucesso. Há alguns motivos para a falta do uso de técnicas de aprendizado, podemos citar: A utilização dessas técnicas é vista como de alto risco. Há sempre uma associação com técnicas, como redes neurais e algoritmos genéticos, que normalmente têm uma “fama” de serem consideradas de difícil utilização em jogos. Apesar da falta do uso dessas técnicas de Aprendizado de Máquina, ou algoritmos baseados no princípio de aprendizado, há vários benefícios em favor de uma maior utilização das mesmas: adaptar o jogo a estilos de jogadores que não foram previstos na fase de desenvolvimento; ou determinar soluções para problemas que - -3 seriam difíceis de resolver manualmente. Por exemplo, no jogo Colin McRae Rally 2.0, é usada uma rede neural para aprender como dirigir um carro, evitando a necessidade de escrever um conjunto complexo de regras para esta tarefa. Por outro lado, é preciso verificar a real necessidade da utilização de aprendizado em um jogo, pois, poderá ocorrer uma situação, onde teremos um gasto elevado de tempo de desenvolvimento em algo que poderá não ser percebido pelo jogador. Ou seja, vale a pena? É fundamental analisar os benefícios para os desenvolvedores e jogadores e a quantidade adicional de complexidade exigida para programar esses algoritmos, tanto nas fases de desenvolvimento, quanto nas de testes. Às vezes, a escolha por uma “impressão de aprendizado” pode ser mais vantajosa. Por exemplo: induzir erros para uma IA simples que resolve o problema e, com o passar do tempo, fazer que esta quantidade de erros seja diminuída para passar a impressão ao jogador de um aprendizado progressivo. 3 Comportamento adaptativo do aprendizado de máquina Em jogos, o aprendizado pode ser feito através de duas maneiras de comportamento adaptativo: Adaptação indireta: Extrai dados do mundo que são usados pelo sistema de IA, para modificar o comportamento do agente. O desenvolvedor de IA interpreta e determina quais os dados provocam alguma mudança no comportamento do agente. Adaptação direta: São aplicados algoritmos de aprendizado no próprio agente. 4 Técnicas de aprendizado Entre as técnicas de Aprendizado de Máquina utilizadas até o momento, existem as sem embasamento científico, como por exemplo, a que foi implementada no jogo Magic & Mayhem, desenvolvido pela empresa Mythos Games, em que o jogador assume o papel de um mago que deve destruir monstros, feiticeiros, entre outros obstáculos. Nesse jogo, periodicamente, são gravadas informações sobre as disputas com o jogador e, antes de iniciar uma nova batalha, a IA do jogo compara a técnica de ataque a ser utilizada com essas informações armazenadas para determinar o grau de efetividade deste tipo de ataque. Dessa forma, o jogo tem uma característica de se adaptar ao estilo do jogador. Entre as técnicas com embasamento científico, destacam-se a utilização das Redes Neurais, Algoritmos Genéticos e, mais recentemente, as Árvores de Decisão. Nas subseções a seguir, são dados os conceitos das técnicas, Redes Neurais e Árvores de Decisão. - -4 5 Redes neurais As Redes Neurais são baseadas nos comportamentos dos neurônios no cérebro. Elas se caracterizam por um modelo de processamento paralelo e distribuído. Os neurônios transmitem sinais através de impulsos elétricos e esses sinais chegam até os neurônios através dos dendritos e saem através dos axônios. Um cérebro humano é composto por cerca de 1011 neurônios e cada neurônio tem por volta de 10.000 conexões através dos dendritos. A região onde um axônio encontra um dendrito é denominada sinapse. 6 Árvores de decisão Amplamente utilizadas em algoritmos de classificação, as Árvores de Decisão são representações simples do conhecimento, e um meio eficiente de construir classificadores que predizem ou revelam classes ou informações úteis baseadas nos valores de atributos de um conjunto de dados. Eles são muito úteis em atividades de mineração de dados, isto é, o processo de extração de informações previamente desconhecida, a partir de grandes bases de dados. Aplicações dessa técnica podem ser vistas em diversas áreas, desde cenários de negócios até sistemas de piloto automático de aeronaves e diagnósticos médicos. - -5 O que vem na próxima aula Na próxima aula, você estudará os seguintes assuntos: • Os Agentes de Software e os Sistemas Multiagentes. Serão apresentados os conceitos e definição sobre agentes, seu histórico e aplicações, as arquiteturas e tipos de agentes. CONCLUSÃO Nesta aula, você: • Conheceu o aprendizado de máquina e a necessidade (ou não) do seu uso. • Estudou as redes neurais e as árvores de decisão. • • • - -1 INTELIGÊNCIA ARTIFICIAL APLICADA A JOGOS DIGITAIS AGENTES DE SOFTWARE E SISTEMAS MULTIAGENTE EM JOGOS - -2 Olá! Nesta aula, você irá: 1. Serão apresentados os conceitos e definição sobre agentes, aplicações, as arquiteturas e tipos de agentes. 2. Definido agente será apresentado o conceito dos Sistemas Multiagente, suas aplicações, arquiteturas, ferramentas e usos. 1 Introdução A pesquisa e o desenvolvimento de sistemas multiagente têm aumentado consideravelmente. Em relação a jogos digitais este aumento foi motivado pelo surgimento e evolução das GPUs, com alto desempenho, grande capacidade de memória, etc. Com as (Graphics Processing Units) fazendo todo o trabalho gráfico pesado, o processador fica liberadoGPUs para ser explorado por outros cálculos, por exemplo, cálculos de Inteligência Artificial envolvendo sistemas multiagente. A visualização da interação de diversos agentes, exibindo comportamentos distintos, propicia cada vez mais a sensação de realismo de um jogo. Vamos definir a seguir o que são agentes e sistemas multiagente, bem como a relação dos mesmos com os jogos digitais. 2 Agentes Veja as definições que seguem: "Um agente é uma entidade computacional com um comportamento autônomo que lhe permite decidir suas próprias ações" ALVARES, L.O.; SICHMAN, J. Introdução aos Sistemas Multiagentes. In: JORNADA DE ATUALIZAÇÃO EM INFORMÁTICA, 16.; CONGRESSO DA SBC, 17., 1997, Brasília. Anais... Brasília: SBC, 1997. p.1-38. "Um agente é definido como uma entidade computacional que pode perceber um ambiente através de sensores e agir através de atuadores." RUSSELL, Stuart. Norving, Peter. “INTELIGÊNCIA ARTIFICIAL”. Ed. Campus, 2003. "Agentes autônomos estão situados em um ambiente no qual eles sentem e agem, sobre o tempo, mantendo a sua própria agenda e sentem os efeitos de suas ações no futuro." - -3 Franktln, S., Et Gtatoser, A. C. (19961. Is It an agent or pot a program? A taxcnotny for autonoman agem. Proceedings of the Agent Theones. Architectures. and Languages Workshop. Spnnger-Yeriag "Em relação a jogos eletrônicos, o termo agente é considerado como uma entidade que têm objetivos (Por exemplo: permanecer vivo, defender uma cidade...), que pode sentir certas propriedades do ambiente (Por exemplo: ver objetos, ouvir sons), e que pode executar ações específicas (Por exemplo: Andar, comer uma maçã. Nareyek..A. (http://www.ai-center.com/projects/excalibur/documentation/intro/agents/) A partir das definições anteriores percebemos que o termo agente é amplamente utilizado, mas não possui um consenso acerca do seu significado. Apesar disso, podem-se notar semelhanças entre as definições, assim, podemos imaginar um agente de acordo com a última definição, (Alexander Nereyek), que estámenos formal relacionada a jogos digitais. Releia a última definição e observe a figura abaixo: O termo agente é utilizado em muitas áreas da Ciência da Computação, mas especialmente na área de Inteligência Artificial, empregando-sea forma agente inteligente. 3 Propriedades de um agente Algumas propriedades em um agente consideradas importantes: Autonomia: Capacidade de atuar sem a interferência do usuário, possuindo algum tipo de controle sobre suas ações e seu estado interno. As tomadas de decisão são elaboradas baseando-se mais em experiências passadas do que no conhecimento previamente inserido pelo programador da inteligência artificial. Proatividade: Capacidade de atingir suas metas tomando iniciativas para o cumprimento das mesmas e não simplesmente em resposta ao seu ambiente. Em outras palavras: ter um comportamento orientado a objetivos e não apenas responder aos estímulos do ambiente (comportamento puramente reativo). Reatividade: Percebem seu ambiente e respondem às mudanças ocorridas. Em alguns casos o agente fica em stand-by e só é ativado se algum evento específico ocorrer no ambiente. http://www.ai-center.com/projects/excalibur/documentation/intro/agents/ http://www.ai-center.com/projects/excalibur/documentation/intro/agents/ - -4 Sociabilidade: Interagem com outros agentes e em alguns casos com seres humanos por algum tipo de linguagem de comunicação. Continuidade temporal: Executam continuamente processos que tanto podem estar ativos, em foreground, quanto adormecidos, em background. Mobilidade: Capaz de se deslocar para ambientes diferentes do original. Atenção Para considerarmos um agente como inteligente devemos ter, no mínimo, a presença das quatro primeiras propriedades: autonomia, pró-atividade, reatividade e sociabilidade. Estamos interessados nos agentes inteligentes, assim, a partir de agora, quando nos referirmos a agentes estaremos nos referindo a “agentes inteligentes”, ou seja, aqueles dentro dos critérios expostos acima. Existem duas categorias para classificar os agentes quanto à aquisição de inteligência: Eles podem ser deliberativos e reativos. Agentes deliberativos: São aqueles que possuem um modelo de raciocínio e um modelo simbólico e interno, utilizado para tomar decisões e executar tarefas necessárias para alcançar seus objetivos. Estes agentes também são chamados de simbólicos ou cognitivos. Agentes reativos: , executam apenas quando estimulados, em resposta ao Diferentemente dos deliberativos estado atual do ambiente no qual estão inseridos. Eles não possuem um modelo simbólico e interno dos mesmos. Eles também são denominados reflexivos. A diferença está relacionada no fato dos agentes reativos considerarem as informações correntes do ambiente para tomadas de decisão, eles não têm "memória" para armazenar experiências, agem por “instinto”. Os deliberativos podem aprender através de experiências e utilizam um conhecimento adquirido para auxiliar nas tomadas de decisão. Entretanto, não se deve concluir que devido ao fato de serem considerados reativos, os agentes são de simples modelagem ou fácil implementação. 4 Sistemas multiagente Agentes podem conviver em um mesmo ambiente, formando assim, uma sociedade. Nesta sociedade, existem constantes trocas de informações entre os agentes as quais são designadas como interações. Estas interações indicam que os agentes podem ser influenciados por outros agentes, ou até por alguma intervenção humana, quando estão realizando seus objetivos. A interação pode ser feita de uma forma indireta, através do ambiente em que o agente está inserido, por exemplo, quando o agente modifica o ambiente ou observa outros agentes. - -5 A interação também pode ser de forma direta através da utilização de linguagens de comunicação, proporcionando assim a troca de informações. Nos sistemas multiagente (SMA), MultiAgent Systems, são estudados os meios apropriados para organizar os agentes, incluindo conceitos organizacionais e mecanismos de comunicação. Quando falamos sobre sistemas multiagente é importante comentar que estamos tratando no âmbito da Inteligência Artificial Distribuída. A Inteligência Artificial Distribuída (IAD), é o estudo e projeto de sistemas em que vários agentes interagem, distribuindo-se logicamente, ou algumas vezes, espacialmente, onde podem ser de chamados autônomos e inteligentes. STONE, P., VELOSO, M. - Multiagent Systems: A Survey from a Machine Learning Perspective. CMU CS technical report number CMU-CS-97-193, USA, 1997. Podemos identificar a Inteligência Artificial Distribuída como a interseção da Computação Distribuída e da Inteligência Artificial: - -6 Não foi preciso passar muito tempo, para que aplicações como os jogos eletrônicos fossem utilizados para pesquisas na área da Inteligência Artificial Distribuída, utilizando portando sistemas multiagente. O xadrez foi um dos primeiros a serem utilizados. Com a meta de se vencer uma partida de xadrez como um problema padrão, era possível testar duas soluções diferentes para o mesmo problema ou mesmo testar uma das versões contra um jogador humano de boa qualidade. Em jogos eletrônicos de esporte como os jogos da série FIFA Soccer, e de primeira pessoa, como Quake, Doom e Unreal, temos usos massivos de sistemas multiagente. Cada personagem é modelado com um agente inteligente e coopera com os demais para vencer o (no caso, você).oponente Os (agentes) podem aprender com os movimentos do jogador, dificultando o jogo quando opersonagens jogador é muito bom, ou facilitando quando o mesmo é ruim. Os Sistemas multiagente reativos, apesar de serem formados somente por agentes reativos, podem realizar tarefas complexas. A interação dos agentes pode revelar a comportamentos emergentes impressionantes. O comportamento das formigas na natureza é um ótimo exemplo inspirador, pois uma formiga não revela muito poder de atuação, mas atuando em conjunto com outras, formam uma sociedade bem organizada. Como exemplo, uma forma de animação de um comportamento chamado flocking define claramente o que é este comportamento emergente: No flocking, um grupo de entidades, chamadas boids, que utilizam regras simples, quando estão em grupo, apresentam comportamentos realísticos, muito similares aos cardumes de peixes ou bando de aves se movendo de forma sincronizada. Este comportamento emergente tem sido constantemente utilizado em jogos eletrônicos para simulação da movimentação de grupos de entidades, como tropas de batalhas e animais. Em títulos como Super Mario 64, Unreal e Half-Life foram usados algoritmos de flocking para a movimentação de monstros e outras criaturas mais simples, como pássaros e peixes. Os SMAs reativos também são encontrados em jogos de combate. Nestes jogos, os SMAs assumem a denominação de Team AI, também conhecido pelo termo Squad AI. São responsáveis pelo comportamento de grupos de personagens que representam adversários ou aliados do jogador. Estes personagens podem assumir a forma de humanos, monstros entre outras criaturas. Os adversários se organizam para atacar da melhor forma possível, procurando lugares estratégicos para se protegerem e atacarem, informando uns aos outros sobre a posição e orientação do jogador, entre outras atitudes. Os aliados também se organizam de forma similar aos adversários, mas com o objetivo de beneficiar o jogador. Nestes grupos cada membro é modelado normalmente como um agente reativo, e há uma constante troca de mensagens entre eles para decidirem qual a melhor ação que deve ser executada em determinado momento. Duas formas de controle são adotadas para manipulação desses agentes: - -7 Centralizada: Um agente pensa nas decisões pelo grupo. Aspectos como coordenação e sincronismo são favorecidos nesta abordagem. Descentralizada: Cada agente faz a sua tomada de decisão. Aspectos como variação e comportamentos emergentes são evidentes. O controle descentralizado é o único que pode ser considerado um SMA reativo, pois os agentes nesta abordagem são autônomos, não há a presença de um líder. Na abordagem centralizada, a presença do líder tomando as decisões para todos os membros, torna a autonomia de cada agente nula. Os SMAs deliberativos
Compartilhar