Prévia do material em texto
Inteligência Artificial Alan de Oliveira Santana Diretor Executivo DAVID LIRA STEPHEN BARROS Gerente Editorial CRISTIANE SILVEIRA CESAR DE OLIVEIRA Projeto Gráfico TIAGO DA ROCHA Autoria ALAN DE OLIVEIRA SANTANA Alan de Oliveira Santana Olá. Sou Alan de Oliveira Santana, possuo graduação em Ciência da Computação – Universidade do Estado do Rio Grande do Norte – e Mestre em Sistemas da Computação – Universidade Federal do Rio Grande do Norte. Atualmente sou professor conteudista, elaborador de cadernos de questões e doutorando em Ciências da Computação. Como cientista, atuo no desenvolvimento e avaliação de técnicas de desenvolvimento de sistemas com ênfase na educação. Desse modo, fui convidado pela Editora Telesapiens a integrar seu elenco de autores independentes. Estou muito satisfeito com o convite e a possibilidade de auxiliar em seu desenvolvimento intelectual e profissional. Bons estudos! AUTORIA ICONOGRÁFICOS Olá. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez que: SUMÁRIO Fundamentos da inteligência artificial e sua história .................. 11 Introdução as definições de Inteligência Artificial ...................................................11 IA, um campo interdisciplinar ................................................................................................. 14 Filosofia ............................................................................................................................... 15 Matemática ....................................................................................................................... 15 Economia ...........................................................................................................................16 Neurociência ................................................................................................................... 17 Psicologia ...........................................................................................................................18 Engenharia de computadores ............................................................................ 19 Teoria de controle e cibernética ....................................................................... 19 Linguística ......................................................................................................................... 20 A história da IA .................................................................................................................................. 20 Agentes inteligentes e o ambiente para a ia .................................. 23 Definições introdutórias sobre os agentes e a IA ....................................................23 O teste de Turing e os agentes inteligentes ................................................................25 Tipos de agentes ............................................................................................................................ 26 Agentes e sua relação com o ambiente ....................................................................... 28 Onde os agentes estão presentes em nossas vidas ............................................ 30 Lógica proporcional ................................................................................... 33 O que são agentes baseados em conhecimentos .................................................33 Introdução a lógica na computação .................................................................................35 A lógica proposicional e os sistemas inteligentes ..................................................37 Grafos para busca em espaço de estados........................................41 O que são grafos.............................................................................................................................. 41 O que é uma máquina de estados .....................................................................................44 Grafos de planejamentos ......................................................................................................... 46 Tipos de buscas computacionais em espaço de estados ............47 Planejamentos estratégicos com busca em espaço ........................47 Inteligência Artificial 9 UNIDADE 01 Inteligência Artificial10 A Inteligência Artificial é um ramo da computação que vem ganhando grande visibilidade nas últimas décadas, em especial a partir das primeiras décadas do século XXI, onde o desenvolvimento tecnológico, que vêm permitindo o desenvolvimento de hardwares cada vez mais potentes e baratos, tem propiciado a criação de sistemas cada vez mais capazes de agirem de forma autônoma e não apenas reativa, podendo refletir sobre suas ações, além de tomar decisões de forma independente e em tempo real. Porém, a Inteligência Artificial não procura apenas fazer com que um sistema simule um cérebro biológico, mas também ações específicas que auxiliam na produtividade e desempenho de diversas tarefas, estando estes sistemas inteligentes em todas as partes, como: nos sites de compras, em robôs, em tutores virtuais, jogos digitais, entre muitos outros. Até sua geladeira pode estar dotada de alguma característica inteligente. Assim, esta unidade procurará apresentar uma introdução a fundamentos da Inteligência Artificial que serão usados de base para as próximas unidades, bem como, para ajudá-lo a perceber e reconhecer as principais características dos sistemas inteligentes que estão presentes em sua vida. INTRODUÇÃO Inteligência Artificial 11 Olá. Seja muito bem-vindo à Unidade 1. Nosso objetivo é auxiliar você no desenvolvimento das seguintes competências profissionais até o término desta etapa de estudos: 1. Compreender como surgiu a IA e seus fundamentos. 2. Conhecer o conceito de multiagentes, compreendendo como estes sistemas se relacionam com o ambiente. 3. Aplicar os conceitos da lógica proporcional em soluções informáticas. 4. Realizar planejamentos por busca em espaço de estados, aplicando o conceito de grafos. Então? Preparado para adquirir conhecimento sobre um assunto fascinante e inovador como esse? Vamos lá! OBJETIVOS Inteligência Artificial12 Fundamentos da inteligência artificial e sua história OBJETIVOS A Inteligência Artificial (IA) é um dos campos mais recentes da Ciência da Computação, com menos de 100 anos de desenvolvimentos e pesquisas. Porém, sua aplicação moldou e continua a moldar a nossa sociedade e a forma como nos relacionamos com a tecnologia. Neste sentido, para entender como a IA é uma área altamente relevante para nossas vidas, este capítulo abordará a história e os principais conceitos e fundamentos gerais ligados à IA e como estes estão relacionados ao desenvolvimento social e tecnológico atual, bem como, permitir uma reflexão sobre seus impactos futuros. Vamos juntos explorar estes conhecimentos! Introdução as definições de Inteligência Artificial Há muito tempo, os pensadores gregos procuraram entender aspectos fundamentais da natureza e do homem, como: o sentido da vida, os fenômenos naturais, das relações entre os homens e os deuses, assim como, entre o homem e o homem. Dentro das reflexões realizadas pelos pensadores do passado, estava o entendimento da inteligência humana como um importante aspecto ligado a nossa natureza, buscando o entendimento de como pensamos, uma habilidade compartilhada por todos os indivíduos e sendo a fonte principal de nossa sobrevivência. Em razão disto, originou-se o termo Homo sapiens, tendo por significado “homem sábio”, reforçando mais uma vez a ideia da inteligência como um diferencial humano em relação as demais criaturas. Entre as principais características da inteligência, estão as habilidades de perceber, compreender, prever, construir e manipular o Inteligência Artificial 13 mundo em que estamos inseridos, sendo estes aspectos uma das bases fundamentais da InteligênciaArtificial quanto ciência, procurando criar entidades artificiais capazes de simular as características citadas, entre outras, referentes à inteligência presente no homem. Desta forma, uma vez que algumas das principais características das IAs foram apresentadas, poderemos definir o que é uma IA. Porém, esta é uma tarefa um pouco complexa, visto que, além de existirem diversas definições sobre o que é um sistema dotado de inteligência, estas definições também levam em consideração aspectos particulares da aplicação e da simulação a ser feita. Segundo Russell (2013), podemos definir às IAs de acordo com 4 estratégias: pensando com humanos, pensando racionalmente, agindo como seres humanos e agindo racionalmente. Note que, pensar como humano e pensar racionalmente, está relacionado ao processo de pensamento e raciocínio, enquanto, agir como um ser humano e agir racionalmente, está relacionado a comportamentos. Desta forma, podemos apresentar um conjunto de definições sobre IA relativas a cada uma das quatro estratégias apresentadas. O Quadro 1 apresenta um conjunto de duas definições para cada uma das estratégias, totalizando em oito definições que demonstram a alta maleabilidade que sistemas inteligentes possuem em suas aplicações e na forma como são desenvolvidos. Inteligência Artificial14 Pensando como um humano Pensando racionalmente “O novo e interessante esforço para fazer os computadores pensarem (...) máquinas com mentes, no sentido total e literal.” (Haugeland, 1985) “[Automatização de] atividades que associamos ao pensamento humano, atividades como a tomada de decisões, a resolução de problemas, o aprendizado...” (Bellman, 1978) “O estudo das faculdades mentais pelo uso de modelos computacionais.” (Charniak e McDermott, 1985) “O estudo das computações que tornam possível perceber, raciocinar e agir.” (Winston, 1992) Agindo como seres humanos Agindo racionalmente “A arte de criar máquinas que executam funções que exigem inteligência quando executadas por pessoas.” (KURZWEIL, 1990) “O estudo de como os computadores podem fazer tarefas que hoje são melhor desempenhadas pelas pessoas.” (RICH e KNIGHT, 1991) “Inteligência Computacional é o estudo do projeto de agentes inteligentes.” (POOLE, MACKWORTH e GOEBEL, 1998) “AI... está relacionada a um desempenho inteligente de artefatos.” (NILSSON, 1998) Quadro 1 - Estratégias de criação de sistemas inteligentes Fonte: Russel (2013). Uma vez apresentada as definições, vamos construir juntos nossa própria definição. Em primeiro lugar, é preciso atentar para o fato de que uma IA dota um equipamento, sistema ou artefato computacional com suas características. Em seguida, notamos que a inteligência é uma capacidade psíquica que permite a seu portador habilidades como: perceber, compreender, prever, construir e manipular algo ligado ao ambiente que se está inserido ou o ambiente como todo. Inteligência Artificial 15 Desta forma, depreende-se que a Inteligência Artificial é a capacidade fornecida a um sistema digital, artefato ou equipamento de manifestar habilidades psíquicas ligadas ao ambiente em que está inserido. IA, um campo interdisciplinar A Inteligência Artificial é um dos mais recentes campos da computação a serem desenvolvidos e compreendidos como ciência. Este fato corrobora para que um número elevado de outras disciplinas sejam usadas como base para a criação de produtos inteligentes. Muitos destes produtos estão presentes em nossas vidas em diversas formas, como os sistemas de venda que procuram avaliar os perfis de compra dos clientes para oferecer ofertas direcionadas aos padrões de consumo específicos de cada cliente, o qual, este tipo de análise de perfil de consumo também está inserido em redes sociais e outras ferramentas de uso diário, permitindo uma análise mais profunda e acertada sobre os ditos padrões. Outras ferramentas procuram perceber os padrões dos usuários para melhorar a experiência de uso, como sistemas de navegação que utilizam gps, a analise do perfil de rotas faz o sistema dar preferencialmente rotas feitas corriqueiramente pelo usuário. Sistemas de entretenimento em massa por mídia de vídeo também utilizam esta análise para indicar filmes e série especificas para cada usuário, entre outras funções. Desta forma, perceba que a IA está mais próxima de nós do que muitas vezes imaginamos, seja em um aplicativo de filmes e séries, uma rede social, o uso de uma agenda ou despertador digital, entre outros. Você é capaz de perceber estes sistemas no seu cotidiano? Neste sentido, esta seção apresentará um breve resumo de como certas áreas do conhecimento contribuíram e contribuem para a Inteligência Artificial. Inteligência Artificial16 Filosofia A filosofia é um dos campos do conhecimento mais antigo que temos registros e o mãe de outros diversos campos de conhecimentos, bem como, da fundamentação dos conceitos de ciência como a conhecemos hoje. Um dos primeiros pensadores a levantarem o tema sobre as leis que fundamentam a parte racional da mente foi Aristóteles (384-322 a.C.), sendo este um dos primeiros passos para o desenvolvimento e estudos de como as ideias se organizam racionalmente. Este raciocínio permitiu que outros grandes nomes como Hobble (1588-1679) e Leonardo da Vinci (1452-1519) não apenas proporem, mas também desenvolvessem artefatos mecânicos levando em consideração que o raciocínio humano era similar à computação numérica. Todas as breves contribuições citadas estão fortemente ligadas a conjuntos de questionamentos ligados à prática filosófica, sendo alguns deles apresentados abaixo: • A utilização de regras formais apresenta válidas conclusões? • Como se dá o desenvolvimento intelectual em um cérebro biológico? • Qual a origem do conhecimento? • Como o conhecimento está vinculado as ações? Perguntas, muitas vezes simples, como estas, provocam os desenvolvedores de sistemas inteligentes a procurarem soluções cada vez mais eficientes e próximas da forma como os humanos as respondem. Matemática A filosofia permitiu o levantamento de questões que ao serem respondidas, fomentaram as principais ideias ligadas a IA. Porém, foi Inteligência Artificial 17 através da matemática que muitas destas ideias puderam ser aplicadas, formalizando três áreas da matemática fundamentais para a IA: lógica, computação e a probabilidade. O termo computação é uma derivação da palavra computar, ou seja, a capacidade de realizar operações matemáticas. Todavia, o termo computação atualmente está fortemente ligado a lógica booleana, onde os números usados variam entre 0 e 1, uma aplicação revolucionária para o desenvolvimento tecnológico, em especial pela relativa facilidade no tratamento de pulsos elétricos representando os valores 1 e 0 na presença ou ausência de corrente em um espaço determinado de tempo e a capacidade de representar qualquer número ou operação realizada em outros sistemas numéricos, como o decimal, através da combinação dos pulsos elétricos. Além da computação e da lógica, a probabilidade também fornece uma base matemática importante para a IA. Neste sentido, a probabilidade, na qualidade de ciência quantitativa, permite o tratamento eficiente de problemas de raciocínio incertos presentes nos sistemas inteligentes. Perguntas relevantes também são levantadas com base nos fundamentos matemáticos citados, como os presentes abaixo: • Quais as regras formais para obtenção de conclusões válidas? • Quais dados podem ser computador? • Como se dá o raciocínio através de dados incertos? Com base nos estudos matemáticos, modelos importantes como o proposto por Thomas Bayes (1702-1761), chamado de análise bayesiana, aplicam probabilidade em sistemas computacionais baseados em lógica para solucionar problemas ligados ao raciocínio incerto. Economia A economia comociência foi constituída através dos trabalhos de Adam Smith (1723-1790), filósofo escocês que contribuiu com uma visão Inteligência Artificial18 científica sobre achados econômicos já estudados por filósofos de todo o mundo no passado, como por exemplo os filósofos gregos. Dentre as contribuições da economia para a IA está o pensamento crítico sobre o grau de satisfação e rentabilidade que são obtidos das coisas, chamado de teoria da utilidade, ligado as teorias probabilísticas, permitindo a tomada de decisão sobre a incerteza. Outra contribuição importante advinda da economia e da matemática é a teoria dos jogos de John von Neumann (1903-1957) e Oskar Morgenstern (1902-1977), que demostrou que em certos ambientes (jogos), certos agentes podem adotar aspectos aleatórios na busca por melhorar seus resultados. Tais esforços econômicos contribuirão para o desenvolvimento de algoritmos de decisão sequenciais como o processo de decisão de Markov, um algoritmo utilizado para tratamento de incertezas com base em estudos probabilísticos e regras ligadas a conceitos como os ligados a teoria da utilidade. Neurociência A neurociência é um ramo da ciência que estuda o funcionamento do sistema nervoso, com ênfase, mas não somente, no cérebro. A muito tempo os estudiosos sabem que o cérebro humano possui características que o diferenciam de outros animais, apresentando o maior cérebro em proporção ao tamanho do corpo. Em 1938, o físico teórico Nicolas Rashevsky (1899-1872) fez uma das primeiras propostas onde modelos matemáticos foram criados para representar e auxiliar os estudos sobre o sistema nervoso. Para a IA, os modelos matemáticos podem ser usados para representar uma das principais, se não a mais importante, estrutura que compõem o sistema nervoso, os neurônios. Os neurônios são compostos de três partes principais, o corpo celular, responsável por realizar o processamento das informações, os Inteligência Artificial 19 dendritos, responsável por receber os impulsos nervosos e o axônio, prolongamentos que levam a informação em uma estrutura ramificada entre um neurônio e outros. Da mesma forma, os sistemas digitais, em especial alguns tipos de IA, como as redes neurais artificiais, dividem-se em três estruturas onde uma é responsável pelo processamento, outras duas pela comunicação entre diversos agentes (similar aos neurônios), sendo uma especializada em enviar e a outra em receber informações. Os estudos da Neurociência também permitiram um entendimento melhor de como as estruturas do cérebro atuam em parceria para aumentar o poder de processamento e consequentemente a capacidade de respostas mais rápidas e eficientes para os diversos estímulos. Tais estudos fundamentaram não apenas a computação e criação de computadores cada vez mais eficientes, mas também, na conexão entre diversos sistemas aumentando consequentemente seu poder de processamento. Psicologia A psicologia é responsável por realizar estudos sobre o comportamento e a mente dos humanos e animais com base em critérios científicos baseados em evidências. Por sua vez, uma das áreas da psicologia que mais contribuíram para a IA foi a psicologia cognitiva. A psicologia cognitiva procura estudar como as pessoas percebem, aprendem, lembram-se e pensam sobre dados que estas venham a ter contato (STERNBERG, 2008). Outra teoria importante que contribui para o desenvolvimento da IA é o movimento chamado behaviorismo, responsável por realizar estudos sobre o comportamento humano baseado em parâmetros ou métricas definidas ligadas a estímulos e respostas. Assim, os projetistas de IAs devem atentar para perguntas ligadas a como os animais e humanos pensam e agem, sendo essa uma de suas principais contribuições para a IA. Inteligência Artificial20 Engenharia de computadores O desenvolvimento dos computadores evoluiu e continua a evoluir aumentando o poder de processamento enquanto barateia o custo dos meios de armazenamento de dados. Está evolução pode ser percebida quando analisamos o poder de processamento do computador que auxiliou a ida do homem à lua, o qual, consistia em um aparelho de 36Kg com clock máximo de 2.048 MHz e uma RAM de 4 kB. Ao ser comparado com um processador Intel I7-7700HQ com capacidade de clock máximo de até 3.80 GHz com a memória RAM dos computadores modernos facilmente superando os 2 GB. Note que, ao passo que os computadores aumentaram seu poder de processamento e armazenamento, o custo destes mesmos computadores reduziu a ponto de podermos possuir hoje máquinas muito superiores aos computadores que levaram o homem à lua. Mesmo que os computadores apresentem configurações cada vez mais robustas e acessíveis, a aplicação das técnicas de engenharia de software como gerência de requisitos, boas práticas de desenvolvimento como a rastreabilidade e padrões de projeto, entre outras aplicações que procuram dar produtividade e qualidade aos softwares, tem contribuído para a criação de sistemas de IA cada vez mais eficientes. Teoria de controle e cibernética A teoria do controle, cujo qual tem por base as teorias probabilísticas, tem por objetivo maximizar uma função objetivo em relação ao tempo, com a subárea conhecida como métodos estocásticos, cujo os objetos não possuem estado e origem determinados, como uma das principais contribuições. Tais estudos contribuíram para que novos modelos fossem propostos em contra partida aos modelos behavioristas, em especial com a proposta de que máquinas poderiam ser dotadas de inteligência, dando luz a cibernética. Inteligência Artificial 21 Assim, o levantamento do questionamento de como um sistema digital pode operar de forma autônomas, é o questionamento levantado para a IA. Linguística Por fim, a linguística moderna é uma área do conhecimento que surgiu aproximadamente na mesma época que a IA compartilhando áreas de estudo como o processamento de linguagem natural. A linguística estuda aspectos da fala, linguagem e da própria língua, avaliando aspectos importantes sobre sua relação com o pensamento, ao avaliar os processos como, análise, interpretação, compreensão, entre outros ligados ao campo de estudo abrangente da linguística. Desta forma, sua contribuição se dá ao avaliar como o pensamento é influenciado pelas relações presentes na linguagem. As disciplinas e áreas apresentadas não esgotam a possibilidade de outras disciplinas apresentarem contribuições para a IA. Devemos lembrar que o ramo de pesquisa das IAs está em pleno desenvolvimento até hoje, com cada vez mais participação e formação de profissionais para atender a demanda do mercado por pesquisas e desenvolvimentos na área. A história da IA A história da IA é altamente rica e cheia de reviravoltas, porém, esta seção procurará não apenas fundamentar os principais fatos e históricos, mas também, procurar instigar a busca por mais informações sobre essa os fatos que levaram a IA a ser um dos campos mais interessantes da computação. O primeiro trabalho ligado a IA apresentado foi em 1943, onde Warren McCulloch e Walter Pitts apresentaram uma proposta de um modelo de neurônio artificial baseado em estudos sobre neurociência, teoria dos sistemas e lógica proporcional. Porém, nesta época ainda não existia o conceito moderno, bem como o termo, Inteligência Artificial. Inteligência Artificial22 Neste trabalho, foi demostrado que todos os operadores lógicos (e, ou, não, etc.) e funções computáveis, poderiam ser implementados em uma rede conectada de neurônios simples. Em 1956, em um seminário no Dartmouth College, em Hanover, New Hampshire, liderados pelo PhD John McCarthy (1927-2011), foi proposto que a IA deveria se tornar um campo próprio de pesquisas. Porém, mesmo sendo cunhado o termo e a área de pesquisa da IA, o seminário não apresentou novidades, em contrapartida, criou um grupo forte de pesquisadoresformado por professores e alunos que dominaram as pesquisas na área nos próximos 20 anos. Os primeiros anos após a criação da área de pesquisas sobre IA causaram entusiasmo na comunidade acadêmica, fato devido possivelmente a visão que os computadores eram meras máquinas para realizar operações aritméticas, como citado por Russell (2013). SAIBA MAIS Saiba mais sobre a história da IA assistindo o vídeo “A história da Inteligência Artificial - TecMundo” disponível em: <https://www.youtube.com/ watch?v=Lhu8bdmkMCM&feature=emb_logo>.X Porém, por volta da metade da década de 60 do século XX, notou- se que o rápido avanço e a maravilha de computadores pensantes não seria algo para ser alcançado em 10 ou 20 anos, na sorte que, muitas das predições realizadas no início da IA, prevendo seu acontecimento para 10, só se concretizaram cerca de 40 anos depois, como um computador ser campeão de xadrez, ocorrido em 1993 quando o sistema Deep Blue da IBM derrotou o então campeão mundial de xadrez Garry Kasparov. Foi apenas por volta de 1980 que a IA se tornou comercialmente bem sucedida com um sistema que foi capaz de configurar pedidos de novos sistemas de computadores, acarretando na economia de cerca de 40 milhões de dólares por ano, o R1, da empresa Digital Equipment Corporation. https://www.youtube.com/watch?v=Lhu8bdmkMCM&feature=emb_logo https://www.youtube.com/watch?v=Lhu8bdmkMCM&feature=emb_logo Inteligência Artificial 23 Através do sucesso comercial, outras empresas pelo mundo passaram a desenvolver sistemas inteligentes para as mais diversas funções, como: sistemas de suporte financeiros, robôs, assistentes, entre outros. Atualmente, a IA está presente em diversos sistemas, todavia, nota-se certo foco nas áreas de análise de grande quantidade de dados e procura por padrões, ambos utilizados fortemente pela indústria e comércio para dar mais eficiência na oferta e produção de serviços e produtos. RESUMINDO Neste capítulo observamos que a IA – Inteligência Artificial – pode ser conceituada de acordo com diferentes estratégias, permitindo aos desenvolvedores aplicarem definições diferentes entre as estratégias e dentro das próprias estratégias. Em seguida, vimos que o campo de conhecimento da IA é composto de contribuições de diversas outras áreas do conhecimento, como engenharia de software, economia, filosofia e outras, cada uma contribuindo com reflexões que permitem uma visão mais complexa e profunda sobre como dotar um sistema de capacidades que simulam a inteligência. Por fim, fizemos um pequeno resumo da história da IA apresentando os principais momentos históricos e sua relevância para as pesquisas e aplicações atuais da Inteligência Artificial. Assim, esperamos que os conteúdos apresentados tenham sido compreendidos, pois, entender as origens e os clássicos nos permitem não apenas não replicar os erros do passado, mas refletir sobre eles e procurar continuar com as boas práticas já realizadas, as melhorando e encontrando novos caminhos para as futuras gerações. Assim é a ciência! Inteligência Artificial24 Agentes inteligentes e o ambiente para a IA OBJETIVOS O conceito de agentes é um importante conhecimento para quem vai estudar IA, pois, são os agentes que são dotados de inteligência através de diversos modelos, o qual, estudaremos a frente alguns. Assim, o objetivo deste capítulo é familiarizá-lo com o conceito e identificação do que vem a ser um agente para IA. Definições introdutórias sobre os agentes e a IA No capítulo 1 deste módulo, aprendemos conceitos da IA e sua relação multidisciplinar com diversos campos do conhecimento. Todavia, não chegamos a conceituar o que fundamentalmente é inteligência. Na figura abaixo, Quadro 2, está apresentado os conceitos de inteligência segundo o minidicionário da língua portuguesa (BUENO, 2016), e o dicionário Houaiss da língua portuguesa (2009). Quadro 2 - Estratégias de criação de sistemas inteligentes Fonte: Autor (2020). Minidicionário da língua portuguesa Houaiss da língua portuguesa • Faculdade de compreender • Compreensão fácil • Abstração • Faculdade de conhecer, compreender e aprender • Capacidade de compreender e resolver novos problemas, conflitos e deadaptar5-se a novas situações • Conjunto de funções ´psíquicas e psicofisiológicas que contribuem para o conhecimento, para a compreensão da natureza das coisas e dão significado dos fatos • Modo de interpretar, julgar, interpretação, juízo Inteligência Artificial 25 Note que, as definições citadas possuem algumas características comuns, a capacidade de interpretar o ambiente em algum nível, sendo todas elas vinculadas a um indivíduo capaz de agir segundo princípios de autonomia. Desta forma, podemos simplificar que um ser inteligente é um agente, ou seja, um ser que age, assim como seu significado em latim, agere, significando fazer. Os humanos e outras espécies de seres vivos também podem ser entendidos como agentes, pois uma função biológica presente em todos estes seres é a capacidade sensorial que por sua vez culmina em ações em resposta a estímulos externos ao ser. Por exemplo. Um humano ao colocar a mão sobre uma superfície muito quente, reagirá, em geral, automaticamente retirando a mão da dita superfície. Da mesma forma, os olhos são sensores capazes de captar uma certa faixa do espectro eletromagnético, convertendo-o em imagens ou objetos que representam o ambiente em que está. Assim, como citado por Segundo Russell (2013), quando um agente responde a estímulos externos internos e externos em pró de alcançar bons resultados, este agente pode ser entendido como um agente racional. Estes agentes racionais irão em pró de benefícios próprios ou de uma comunidade de agentes, procurar interagir com seu ambiente e com os demais agentes colaborando para solucionar problemas da forma mais eficiente. Esta definição acima é será a definição padrão para agentes inteligentes computacionais, também chamados de agentes inteligentes artificiais. As seções a seguir tratarão de aspectos fundamentais ligados aos agentes e sua aplicação na IA. Inteligência Artificial26 O teste de Turing e os agentes inteligentes Esta seção abordará conceitualmente o teste de Turing e sua importância para a IA, bem como, sua ligação com o conceito de agente já apresentado. O cientista da computação e matemático Alan Mathison Turing (1912- 1954), realizou importantes contribuições para a ciência da computação com seus trabalhos sobre formalização de algoritmos e com a máquina de Turing SAIBA MAIS Um dos feitos notórios de Turing foi trabalhar na decodificação da máquina enigma das alemãs, uma espécie de computador capaz de criptografar e descriptografar informações, sendo este feito muito importante para o esforço de guerra dos aliados. Por volta de 1950, Alan Turing apresentou a proposta de um teste que procurou avaliar se um computador era capaz de agir de forma inteligente, com este teste também servindo para definir o conceito de inteligência operacional (TURING, 1950). O teste é relativamente simples em seu conceito. Um ser humano deveria fazer um conjunto de perguntas textuais para um conjunto de agentes, sendo estes agentes humanos e mecânicos (representado por computadores). Uma vez analisada as perguntas, os agentes deveriam responder as questões que seriam posteriormente analisadas pelo humano que as formulou. Este humano em seguida deveria dizer se as respostas foram dadas por um humano ou por um computador. Segundo a proposta de Turing em seu teste, para que uma máquina venha a conseguir sucesso neste teste ela deve apresentar um conjunto de características fundamentais, sendo elas: Inteligência Artificial 27 • Ser capaz de processar linguagem natural, ou seja, linguagens próximas das línguas faladas por pessoas, como inglês e português. • Ser capaz de armazenar um conjuntode conhecimentos sobre dados que tem acesso. • Ser capaz de realizar operações de raciocínio, compreendendo o que está analisando e gerando inferências sobre estes dados. • Ser capaz de aprender baseada em padrões matemáticos como os definidos na área da computação chamada aprendizado de máquina, onde modelos matemáticos são usados para identificar padrões de dados, o que acarreta na possibilidade de aprender e tratar dados segundo características específicas. NOTA É inevitável a observação dos trabalhos e propostas de Turing para o desenvolvimento de diversas subáreas da IA, como as pesquisas sobre linguagem natural e aprendizado de máquina, com muitos cientistas e entusiastas procurando criar sistemas que passem no teste proposto por Turing até os dias de hoje. Por fim, notem que o teste de Turin procura verificar se um sistema é capaz de apresentar um certo tipo de inteligência ou simulação das capacidades psíquicas humanas, todavia, estes sistemas com tais capacidades podem ser vistos como agentes inteligentes. Tipos de agentes Um agente pode ser implementado ou aplicado com base em características que atendam a seu propósito, sendo construído parcialmente ou completamente os conceitos que definem um agente. Inteligência Artificial28 A forma mais simples de implementar um agente é dotá-lo da capacidade de reagir condicionalmente a um conjunto de dados. Este tipo de agente é denominado agente reativo simples, e são os agentes mais fáceis de serem implementados e mais utilizados devido esta característica. Se o objetivo do sistema é monitorar o ambiente em que o agente está inserido, ele deverá manter um tipo de estado parcial do mundo em sua memória, para poder comparar quando ocorrerem mudanças dentro da área analisada. Esta memória parcial é chamada de modelo do mundo, um termo que nomeia este tipo de agente, os agentes reativos baseados em modelo. Manter um modelo do mundo permite o agente observar as mudanças que ocorrem em seu ambiente, porém, apenas a percepção da mudança não significa que o agente agia de diferentes maneiras ou específicas. Para isso, os agentes baseados em objetivos, nome dado pela regra de criar objetivos a serem alcançados, procuram manter conjuntos de regras a serem utilizados em conjunto com o modelo do mundo, permitindo por sua vez que estratégias possam ser aplicadas em pró de alcançar objetivos pré-determinados. Por fim, o último tipo de agente explanado neste módulo, será os agentes baseados em utilidade. Estes agentes procuram executar suas ações com base em objetivos, porém, estes procuram a melhor forma de fazê-lo, ou procuram atingir um certo nível de felicidade pessoal, por exemplo, executando o objetivo com o menor custo computacional possível. O termo utilidade no nome do agente tem sua origem no entendimento dos economistas e cientistas da computação que felicidade é um termo pouco científico, utilizando utilidade em seu lugar. Estes são alguns dos modelos de agentes existentes, porém, esta seção tem por objetivo dar uma visão geral da modularidade que os agentes são capazes de apresentar, cabendo ao desenvolvedor avaliar o que o agente deve fazer, seus objetivos e como se dá a relação entre o agente e o ambiente, bom como, entre o agente e outros agentes. Inteligência Artificial 29 Agentes e sua relação com o ambiente O ambiente é um importante fornecedor de estímulos para os agentes pois está constantemente sendo influenciado por eventos externos, bem como, pelos próprios agentes que estão dentro de si. Podemos fazer uma abstração de um ambiente ao compará-lo a uma cidade, desta forma, as pessoas seriam os agentes que constantemente o modificam e interagem com outros agentes. Da mesma sorte, a cidade pode sofrer influência de eventos naturais ou realizar comércio com outras cidades. Todas estas interações permitem que os agentes ao perceberem as mudanças no ambiente, possam reagir segundo suas próprias estratégias a estas, realizando alguma ação ou as ignorando. Da mesma forma que um humano não é capaz de ver toda uma cidade de uma vez, bem como, perceber todos os eventos de uma vez, alguns ambientes computacionais podem ser do tipo completamente observáveis ou parcialmente observáveis para um dado agente. Apesar de incomum, um ambiente também pode ser inobservável para um agente que não possui sensores para analisar o ambiente. Os ambientes apresentam conjuntos de características que os definem, podendo algumas serem implementadas separadamente e outras sendo concorrentes de modelos opostos como apresentado abaixo: Ambientes determinísticos vs estocásticos: Um ambiente determinístico é aquele que possui seu próximo estado baseado no estado anterior. Por sua vez, ambientes estocásticos possuem estados aleatórios ou com regras muito complexas, o que as torna muito difícil ou impossíveis de serem previstas. Ambiente episódico vs sequencial: Um agente presente em um ambiente episódico tem suas ações atuais não gerando repercussões em um dado período de tempo, com o próximo episódio iniciando o agente segundo características pré-definidas para cada momento. Porém, agentes em ambientes sequenciais quando executam alguma ação, a reação gera um efeito em cadeia que permanecerá até que alguma regra o modifique ou finalize. Inteligência Artificial30 Ambiente estático vs dinâmico vs semi-estático: Estas características permitem ou não que agentes modifiquem o ambiente durante suas ações. Estas modificações, presentes em ambientes dinâmicos, também geram modificações no desempenho dos próprios agentes, algo que não ocorre nos ambientes estáticos, porém, se um agente em um dado período sofrer modificações sem que ocorram modificações no ambiente, este ambiente é caracterizado como semi-estático. Ambientes discretos ou contínuos: Um ambiente discreto é aquele que a passagem do tempo se dá em intervalos definidos e, em geral, não muito curtos, como, por exemplo, uma partida de xadrez, onde um jogador deve esperar para realizar sua ação após o outro jogador finalizar a sua. Por sua vez, os ambientes contínuos são os que o intervalo de tempo são quase ou completamente imperceptíveis, como, por exemplo, uma partida de futebol, onde cada agente no campo atua em tempo real em relação as modificações que estão correndo com outros agentes e com o próprio ambiente. Ambientes conhecidos vs desconhecidos: este conceito determina que um agente em um ambiente conhecido é capaz de prever as possíveis saídas para suas ações, porém, ambientes desconhecidos forçam os agentes a aprender, criar suas próprias regras e com elas, gerar as saídas. Em alguns ambientes, o conjunto de regras e saídas possíveis podem ser conhecidas, porém, é a interação entre os diversos agentes e o ambiente que determinará as saídas, não sendo qualquer agente capaz de prever qual saída ocorrerá. Neste caso, o ambiente é considerado semi-conhecido, pois mesmo não tendo controle das ações que levam as saídas, os agentes as conhecem bem devido as regras pré-estipuladas. Ambiente multiagente ou com apenas um agente: Ambientes em geral são populosos na vida real, porém, note que, uma pessoa na condição de agente, pode ficar só em casa e decidir fazer uma faxina ou exercícios de IA para fixação. Da mesma um agente virtual pode estar vinculado sozinho a um ambiente. Assim, ambientes que possuem mais de um agente, mesmo que existam dois agentes e um não tenha sensores, são chamados de ambientes multiagentes ou sistemas multiagentes. Sistemas que possuem quantidade dinâmica de agentes, podendo em algum momento possuir zero e em outros muitos agentes, podem Inteligência Artificial 31 nomear o ambiente de acordo com a quantidade de agentes presentes no ambiente, ou apenas ser chamados de multiagentes. Todas as características citadas apresentaram dois conjuntos ou mais de regras concorrentes,todavia, uma vez escolhida uma regra concorrente, esta pode ser combinada com outras. Por exemplo: O ambiente não pode ser discreto, contínuo e conhecido ao mesmo tempo, pois discreto e contínuo são concorrentes entre si. Podendo apenas ou ser discreto e conhecido ou contínuo e conhecido. Esta regra também serve para combinações com as outras caraterísticas apresentadas, podendo ao ambiente apresentar apenas uma ou todas, mas, sem conter características concorrentes. Onde os agentes estão presentes em nossas vidas Como já citado, agentes podem ser qualquer objeto ou criatura virtual ou real que seja capaz de avaliar conjuntos de dados e realizar inferências com base nestes. Assim, podemos observar que estamos rodeados de sistemas compostos de agentes em todas as partes. No campo computacional, coisas que vemos no dia a dia como um semáforo, um despertador, ou o sistema eletrônico de controle de filas em bancos e outros locais, são na prática agentes atuando segundo conjuntos de regras em ambientes específicos. Por exemplo, como citado, o semáforo que altera o estado da luz entre vermelho, amarelo e verde de acordo com regras baseadas no tempo decorrido. Fato que também ocorre com os despertadores. Por sua vez, um sistema de controle de senhas em filas, levará em consideração mais variáveis, como, se o cliente é idoso ou requer atendimento diferenciado/acelerado. Inteligência Artificial32 Desta forma, procure analisar ao seu redor e identificar quais sistemas computacionais são agentes ou não. Também procure identificar padrões na sociedade que podem definir certos indivíduos como agentes e seus respectivos ambientes, procurando criar relações lógicas entre as ações dos agentes e as características dos ambientes. RESUMINDO Neste capítulo estados sobre os agentes e suas características. Em um primeiro momento, procuramos apresentar conceitos fundamentais sobre inteligência e sua ligação com a IA permitindo em seguida definir o que vem a ser um agente e suas principais características. Em seguida, falamos sobre o teste de Turing e sua contribuição para o desenvolvimento de diversas áreas da IA, bem como, sua ligação com os agentes inteligentes. Uma vez apresentado os conceitos e fundamentos básicos sobre agentes, foi apresentado alguns tipos de agentes, procurando demostrar que cada aplicação deve ser levada em consideração ao definir as características presentes nos agentes. Além das características dos agentes, também foi demostrado a importância do ambiente e suas características, que em geral, possuem forte influência nos agentes. Por fim, foi feita uma análise breve e provocativa de como estamos rodeados por sistemas baseados em agentes. Inteligência Artificial 33 Lógica proporcional OBJETIVOS Neste capítulo abordaremos sobre agentes capazes de raciocinar e como esta simulação é feita através do uso de modelos de conhecimento e estratégias de processamento de dados. Vamos lá! O que são agentes baseados em conhecimentos Uma das belezas da vida é a diversidade dos seres. Alguns são grandes e outros pequenos, alguns rápidos e outros lentos, alguns vivem muitos e outros apenas um dia. Porém a habilidade de raciocinar está presente apenas a seletos grupos de seres, entre eles os animais e consequentemente os humanos. O cérebro humano é composto por diversas partes, porém, podemos destacar três especiais ligadas a teoria do cérebro trino (DELGADO; GOMES, 2019). Nesta teoria, o cérebro é dividido em 3 partes distintas: o neocortex, parte mais externa do cérebro e responsável pelo pensamento racional; sistema límbico, ao qual, controla as emoções; e o chamado cérebro reptiliano, parte mais primitiva do cérebro e responsável pelo pensamento irracional, ou seja, pelas ações realizadas com pouco em nenhum controle, como a respiração e o impulso de retirar a mão de superfícies e objetos quentes. Vide Figura 1 para ver um modelo da teoria do cérebro trino. O cérebro reptiliano presente nos humanos, é caracterizado como a parte irracional, ou automatizada, de nossa inteligência, atuando de forma a reduzir a carga de atenção nas demais camadas. Além disso, sua característica reativa está presente em todas as formas de vida conhecidas, capacitando os seres sensitivos a responderem a estímulos internos e externos ao organismo. Inteligência Artificial34 Desta forma, podemos fazer um comparativo com os agentes apresentados no capítulo anterior, onde, estas entidades computacionais de forma simplista, apresentam no mínimo a capacidade de reagir a estímulos diversos, como por exemplo, a chamada de uma função ou análise condicional de um conjunto de dados. Figura 1 - Modelo da teoria do cérebro trino Fonte: Autor (2020) Porém, apenas reagir a estímulos, não significa propriamente que a reação foi inteligente, logicamente, considerando inteligência algo particular, ligado especialmente ao raciocínio. Da mesma forma que nosso cérebro possui uma camada racional, o neocórtex. Os agentes precisam de mais algumas camadas para serem consideradas capazes de raciocinar. Entre essas camadas, podemos destacar uma base de conhecimento por aprendizado ou fornecida, para servir de base para o raciocínio. Inteligência Artificial 35 Desta forma, um agente capaz de realizar tomadas de decisão, possuindo também um conjunto de regras reativas e uma base de conhecimento, é chamado de agente baseado em conhecimento. IMPORTANTE O sistema límbico da teoria citada acima, pode ser implementado em um agente simulando emoções. O nome desta área da IA é computação afetiva, apesar deste assunto não ser abordado neste módulo e nos módulos a seguir, é recomendado que você pesquise um pouco sobre e como a parte racional dos agentes combina as emoções para tomar decisões mais próximas dos seres vivos, em especial, dos humanos. Introdução a lógica na computação Esta seção não tem por objetivo aprofundar sobre os conceitos de lógica computacional, mas, apresentar uma visão geral o capacitando a entender sobre os assuntos ligados a aplicação da lógica nos sistemas inteligentes. Como citado no capítulo 1, a lógica é uma das disciplinas fundamentais para a computação, em especial, através da lógica booleana, permitindo que dados em forma de pulsos elétricos possam ser processados em estruturas maiores e altamente complexas usadas tanto em circuitos digitais, como na própria lógica para criação de programas. A lógica booleana em sistemas digitais, permite que um pulso possa ser tratado com valor 1 ou 0, porém, a combinação entre estes valores é uma de suas principais base de estudos, pois, ao combinar um conjunto de entradas 1’s e 0’s, usando-se modelos lógicos, é possível gerar dados de resposta específicos. Se um aparelho é capaz de receber um sinal 0 ou 1, processá-lo e dar uma saída de um único dígito, sua resposta será baseada no valor da entrada. Por exemplo, se a entrada é 1, o sistema reativo pode ter como saída o valor 1 ou 0 de acordo com as regras preexistentes. Inteligência Artificial36 Todavia, outro aparelho pode ser capaz de receber dois sinais simultâneos aleatórios, podendo ser compostos pelas seguintes combinações. 00, 01, 10 ou 11 e com saída com apenas um dígito. Desta forma, será o conjunto de regras que também definirá o valor da saída. Para permitir uma espécie de linguagem universal onde diferentes projetistas de hardware e softwares, a lógica booleana possui modelos que tratam as entradas e permitem que saídas específicas sejam geradas. Uma vez tratada como linguagem universal, é preciso criar conjuntos de classificações semelhantes as gramáticas das línguas, semelhante ao português e inglês por exemplo. Assim, podemos definir um conjunto de sentenças como entrada, sendo as sentenças combinações de 0’s e 1’s, as organizando de acordo com o modelo sintático específico. Um exemplo de modelo sintático seria x +y = z. Este modelo é facilmente identificado como correto por qualquer pessoa que estudou certos fundamentos matemáticos. Porém, note que a expressão xyz+= não é uma sentença sintaticamente correta na matemática. Em seguida, as sentenças devem ser organizadas e definidas através de um modelo semântico. Por exemplo, se x + y = 10, x e y devem possuir valores tal que a soma seja sempre igual a 10, onde x pode assumir o valor 6 e y 4, bem como, x pode ser igual a 5 e y também e assim sucessivamente. Para a lógica booleana, as sentenças são combinações entre valores 1’s e 0’s, o qual, sempre são analisados um a um ou dois a dois, sendo está a regra sintática. Por sua vez, a regra semântica permite que o resultado possa ser previsto de acordo com as entradas. Como as entradas são representadas por dois valores possíveis, o 1 e o 0, e se tomarmos por fundamento a lógica dos circuitos digitais, podemos dar o nome para 1 de verdadeiro, existe um estímulo, e 0 de falso, não existe um estímulo. Inteligência Artificial 37 A lógica proposicional e os sistemas inteligentes Baseado no conceito apresentado, a lógica booleana possui um conjunto de tabelas (modelos) que permitem prever as saídas com base em regras definidas através de modelos matemáticos. Esse conjunto de modelos é chamado de lógica proposicional. Os modelos semânticos da lógica booleana, servem como base fundamental de conhecimento, com as regras embutidas nos próprios modelos, sendo a capacidade simples de raciocinar sobre os dados de entrada, ou seja, sobre os estímulos. No total, existem 7 modelos representado em forma de tabelas. Cada tabela possui sua própria base matemática advinda da teoria dos conjuntos. A primeira tabela recebe apenas um valor como entrada e sua saída é o valor inverso. Esta tabela é chamada de não lógico e sua representação gráfica é um ‘~’ (til). Note no Quadro 3 que a tabela é composta na primeira coluna do símbolo do modelo na primeira linha e os valores possíveis nas demais linhas da primeira coluna. Por sua vez, a última coluna representa as saídas para cada valor de entrada. Atente que, os dados de entrada e saída são chamados de verdade (1) ou falso (0), fator que resulta na forma como as tabelas são chamadas, tabelas verdade. ¬ (não) Saída 1 0 0 1 Quadro 3 - Não lógico Fonte: Autor (2020) O Quadro 4 apresenta dois valores de entrada, ou seja, a combinação de dois valores e a respectiva saída. Esta regra também será utilizada nas demais tabelas. Inteligência Artificial38 Λ (e) Saída 0 0 0 0 1 0 1 0 0 1 1 1 V (ou) Saída 0 0 0 0 1 1 1 0 1 1 1 1 Quadro 4 - E lógico Fonte: Autor (2020) Quadro 5 - Ou lógico Fonte: Autor (2020) Este quadro se chama ‘e lógico’. Sua regra define que para uma saída ser verdadeira, 1, é preciso que ambas as entradas sejam também verdadeiras como demostrado abaixo. O Quadro 5 é chamada de Ou lógico e sua regra define que para uma saída ser falsa, é preciso que ambas entradas também a sejam. Um exemplo prático é a escolha entre dois objetos, no fim, um será selecionado, ou os dois. IMPORTANTE O quadro do Ou lógico possui duas variações que não serão apresentadas aqui, sendo chamadas de ou exclusivo (xor) e não ou exclusivo (xnor). Ambos são bastante utilizados no desenvolvimento de circuitos digitais, onde as tabelas são chamadas de portas lógicas. Inteligência Artificial 39 O modelo da tabela ‘se, então’ será verdadeiro sempre que a primeira entrada condicionar verdadeiramente a segunda. Por exemplo: O conjunto dos naturais, N, está contido no conjunto dos inteiros, Z, que por sua vez está contido no conjunto dos racionais, Q. Note que, nem todos os números presentes em Z estão presentes em N, porém, o inverso é verdade. Assim, podemos dizer que uma entrada verdadeira, por exemplo um valor de N, for condicionada pelo se então e sua condição for falsa, pois um valor qualquer de N pode não estar contido em Z, podemos afirmar que estas entradas, os conjuntos, resultam em uma saída falsa. NOTA Os quadros verdades apresentadas acima são aplicadas na programação lógica em estruturas como o se (if) e o escolha (switch), ocorrendo a verificação do valor da entrada segundo as regras dos modelos e lógico e ou lógico, porém, pode-se entender a estrutura do se (if), como um se, então. Desta forma, o quadro verdade do ‘se, então’ está apresentada no Quadro 6. Atente para seu símbolo na primeira célula da primeira coluna. Quadro 6 - Se, então Fonte: Autor (2020) → (se então) Saída 0 0 1 0 1 1 1 0 0 1 1 1 O último quadro apresentado neste material é referente ao modelo do ‘se somente se’, um modelo que gera uma dependência entre os valores de entrada com suas respectivas saídas. Inteligência Artificial40 Quadro 7 - Se, somente se Fonte: Autor (2020) ↔ (se, somente se) Saída 0 0 1 0 1 0 1 0 0 1 1 1 Como ambas as entradas são dependentes, note que, se ambas são verdadeiras ou falsas, significa que a dependência foi atingida, resultando em uma saída verdadeira. Porém, se as entradas possuírem valores diferentes, o valor da saída será falso, visto não ter atendido a dependência. Vide o Quadro 7. Como citado, com base nos modelos presentes nas tabelas verdades apresentadas, um agente é capaz de realizar tomadas de decisões diferentes, por exemplo, aplicando dentro de uma condição ou função regras baseadas estes modelos para a tomada de decisão. Desta forma, a lógica proposicional e seu conjunto de tabelas, permitem que agentes virtuais possam realizar raciocínio simples e estruturado, o que por sua vez, permite que lógicas mais complexas possam ser sobre os modelos citados. RESUMINDO Este capítulo tratou sobre o raciocínio em máquinas e como os modelos básicos da lógica proposicional permitem criar uma base de conhecimento para este fim. Para isto, primeiro tratamos de apresentar uma visão geral sobre o que são agentes baseados em conhecimento ao citar a camada reativa dos agentes e a necessidade de uma base de informações para poder raciocinar sobre as entradas e gerar posteriormente saídas bem definidas. Para dar o entendimento não apenas da camada de raciocínio e de conhecimento, foi dada uma introdução a lógica proposicional, o permitindo visualizar as bases de conhecimentos baseadas em modelos matemáticos e seu poder na capacidade de raciocínio dos sistemas. Inteligência Artificial 41 Grafos para busca em espaço de estados OBJETIVOS Este capítulo continua os assuntos sobre como dotar um sistema digital com a capacidade de raciocinar. O conteúdo abordado apresentará a ideia de grafos e como estes objetos auxiliam na criação de modelos superiores. O que são grafos Antes de definir o que vem a ser um grafo, é preciso apresentar alguns conceitos advindos da teoria dos conjuntos. Um conjunto é uma estrutura que contém zero até infinitos elementos, especificamente, como definido por Dante (2013), “...Um conjunto é uma coleção qualquer de objetos...”. Por exemplo: podemos definir que pinceis pertencem ao conjunto de objetos capazes de pintar. Porém, podemos definir um conjunto para inserir apenas os pinceis de uma determinada cor. Assim, podemos dizer que os conjuntos contêm objetos segundo um conjunto de regras pré-definidos. Na matemática, a teoria dos conjuntos divide os números de acordo com regras bem definidas, por exemplo. Os números que começam a partir de 0 em intervalos de 1 em 1 até valores ditos infinitos, são valores pertencentes ao conjunto dos naturais, representados por um N. Exemplo: (0, 1, 2, 3, 4 e 5), são elementos pertencentes ao conjunto N Porém, existem outros conjuntos que expandem a variação de números, como por exemplo o conjunto dos inteiros, representado pela letra Z, o qual, adiciona a variação de valores negativos aos inteiros. Exemplo: (-5, -3, 0, 6 e 120) são exemplos de números pertencentes ao conjunto dos Z. Inteligência Artificial42Perceba que os números naturais estão presentes no conjunto dos números inteiros, porém, o inverso não é verdade. NOTA A teoria dos conjuntos, como é chamado os conceitos apresentados acima, possuem um conjunto de regras próprias e bem fundamentadas. O modelo citado acima serve para um entendimento geral, porém, é indicado que você procure por materiais adicionais sobre essa teoria, em especial pelo fato de a teoria dos conjuntos ser uma das bases fundamentais da computação. Com base nos conceitos simples de um objeto pertencer a um conjunto, agora podemos avançar nos conceitos básicos que fundamentam os grafos. Agora, vamos falar um pouco sobre conceitos de geometria, em especial, sobre alguns objetos fundamentais. Um dos objetos mais simples que podem ocupar um espaço qualquer é um ponto. Como aprendido em disciplinas básicas de matemática, um conjunto de pontos forma uma reta. Podemos entender que uma reta é um traço continuo que partem de um dado ponto de origem até outro ponto de chegada. Note que, o ponto de origem e o ponto de chegada podem ser entendidos com dois elementos distintos, assim como a reta que liga ambos os pontos. Na geometria, estes pontos isolados são objetos e as linhas que os conectam são chamados de vértices. Por fim, quando três pontos distintos, vamos dar o nome a estes pontos de A, B e C, se unem através de vértices, a ligação de duas arestas a um único ponto é chamada de aresta. Para dar uma visualização mais objetiva destes conceitos, observe a Figura 2. Inteligência Artificial 43 Observe que as arestas entre os pontos (A e B) e entre os pontos (B e C) formam uma estrutura chamada de aresta, ou seja, um ponto que está ligado a mais de um outro ponto. Agora sim. Com estes fundamentos simples, podemos em fim conceituar o que são grafos. A teoria dos grafos é um ramo da matemática que estuda a combinação (relação) entre objetos discretos (NETTO, 2011), porém, a computação a utiliza na análise e desenvolvimento de diversos algoritmos. Por sua vez, um grafo é uma estrutura formada pela combinação entre dois ou mais objetos (pontos), onde podemos através de modelos, aplicar técnicas de tratamento sobre os dados, sempre possuindo um ponto de origem e um ou mais pontos objetivos. Figura 2 - Pontos, vértices e arestas Fonte: Autor (2020). Ponto B Ponto C Inteligência Artificial44 O que é uma máquina de estados Como vimos, um grafo é uma estrutura formada por pontos e vértices, assim, podemos considerar que os pontos são áreas de processamento de dados e os vértices o modelo de ligação entre as interfaces de entrada e saída dos pontos. Assim, podemos criar modelos e regras para tratar os dados que estão vendo de um ponto qualquer e definir qual as saídas e para onde estas devem ser direcionadas. Por exemplo. Se definirmos que um conjunto de cidades é interpretadas como pontos e a ligação entre elas como arestas, é possível definir rotas entre as cidades até chegar ao objetivo. Não apenas traçar uma rota, também é possível traçar qual a melhor rota com base na distância, tampo para atravessar a cidade, ou seja, de acordo com os modelos e regras de custos. Assim, tanto o grafo, como suas regras, pode ser entendido como o modelo que permite que um viajante qualquer saia de um ponta para outro e identifique o menor custo de tempo para sua viagem, ou seja, é um tipo de raciocínio prático baseado em regras. Desta forma, podemos expandir um pouco mais a ideia geral de grafos e definir um outro conceito computacional que utiliza os grafos para tomada de decisão estratégicas. As máquinas de estados. De forma simples, podemos dizer que uma máquina de estados é uma estrutura condicional que permite que um fluxo de dados saía de uma origem até um destino de forma estruturada, ou seja, através de estruturas que definem como os dados devem ser tratados e para qual ponto o fluxo deve seguir. A Figura 3 apresenta um exemplo curto de máquina de estado que avalia a idade do usuário e diz quais os conteúdos podem ser acessados. Inteligência Artificial 45 Figura 3 - Exemplo de máquina de estado Fonte: Autor (2020). Fim Conteúdo limitado A Conteúdo completo Conteúdo limitado B Idade superior a 17 anos Idade até 17 anos Idade até 12 anos Coleta da idade do usuário Início Observe, como um fluxo, o grafo da Figura 4 após iniciar coleta a idade do usuário e já trata o perfil de acesso. Em seguida direciona para a área específica de tratamento de coleta de cada faixa etária e por fim, recupera os conteúdos limitando o acesso ou não com base na idade, finalizando o grafo em seguida. Perceba que a estrutura direciona os dados e as saídas, porém, é a etapa de coleta de dados que direciona para um fluxo específico, finalizando em seguida o sistema. Perceba também que a análise feita na coleta da idade não é demonstrada claramente, apenas citando que algum processamento foi feito para esta coleta e para o direcionamento da saída. Desta forma, se pensarmos um agente específico para limitar o acesso por faixa etária, o raciocínio é dado nas diferentes possibilidades e em suas regras. Inteligência Artificial46 IMPORTANTE É importante citar que o uso de estruturas de dados como vetores, árvores, entre outros, auxiliam nas estratégias implementadas para processar os dados e na forma como cada elemento se relaciona. Existem diferentes formas de estruturar um grafo, muitas delas documentadas em diferentes literaturas, sendo a usada acima baseada em estados para a frente, ou seja, baseado em progressão. Algo importante na análise dos grafos no planejamento estratégico, é que nunca mais de um estado estará ativo ao mesmo tempo, assim, podemos em um dado período de tempo, avaliar qual estado está ativo e quais as possibilidades de fluxo que este estado pode ativar em seguida. Grafos de planejamentos Um grafo de planejamento é uma estrutura de dados que permite um planejamento que apresente estimativas mais precisas sobre as saídas. Estas regras de planejamento podem ser entendidas como heurísticas específicas. NOTA Heurística são métodos que tem por objetivo a resolução de problemas por aproximação, ou seja, não é esperado a melhor solução, mas uma solução viável (BUENO, 2009). Desta forma, a heurística pode ser aplicada a diferentes métodos de busca em pró da criação do modelo de procura pela melhor solução, ou seja, um modelo de raciocínio computacional. Inteligência Artificial 47 Tipos de buscas computacionais em espaço de estados Para permitir um bom planejamento, a estratégia de busca deve ser antes definida. Nesta seção abordaremos de forma conceitual algumas formas de busca computacionais para espaço de estados. A progressão, ou busca para frente, é uma forma de busca aplica em estruturas de dados similares a árvores, ou seja, com um início definido e com fim possível. Esta busca parte do início verificando todas as possibilidades para ir para os ativar os próximos estados (nós) até alcançar a solução pretendida. Podemos exemplificar utilizando a Figura 4, onde a partir de qualquer nó ativo, podemos verificar quais as possíveis ramificações que podemos ir e se ela é o objetivo ou fim da execução. Por sua vez, outra estratégia é a busca para trás (regressão), onde, a partir do objetivo, é traçado o caminho até a origem, o que por vezes, resultada em uma análise mais rápida que a busca para frente, uma vez que um estado posterior sempre terá apenas um estado anterior caso a estrutura seja baseada em uma árvore. Porém, se a estrutura permitir que mais de um estado anterior possam ramificar para um estado posterior, o custo total da busca para trás pode se tornar igual ao da busca para frete. Para que ambas as estratégias possam ser implementadas de forma eficiente, é preciso que uma boa heurística seja desenvolvida,procurando tornar as buscas admissível em um espaço de tempo. Para isto, a busca em grafos de planejamento, aponta-se como uma solução eficaz. Planejamentos estratégicos com busca em espaço Grafos de planejamento são indicados unicamente para problemas baseados no planejamento proposicional, apresentado no capítulo 3. Inteligência Artificial48 Estes grafos são chamados de grafo direcionados, ou seja, um grafo que os dados fluem para uma dada direção. Sua estrutura é baseada em níveis, como nível S0, progredindo até um objetivo G definido. Porém, o algoritmo não define a existência de um caminho existente entre S0 e G, mas sim uma aproximação polinomial entre os dois, estimando o número de passos. Os níveis S definem o fluxo verdadeiro que cada nó S contém. Por sua vez, cada nível S está associado a um nível A, que representa as ações, regras, que são aplicadas a cada S. Desta forma, em um tempo i, um número de Si níveis podem ser acessados, bem como, uma quantidade Ai de processos que cada S pode executar. Um exemplo simples de aplicação é o trivial algoritmo de produção de um bolo, o qual, pode ser demostrado através de grafos de planejamento, porém, apresentaremos o algoritmo de ter e comer um bolo, apresentado por Russell (2013), apresentada na Figura 4. Figura 4 - Algoritmo ter e comer bolo Fonte: Russell (2013). Início(Ter(Bolo)) Objetivo(Ter(Bolo) Λ Comido(Bolo)) Ação(Comer(Bolo) PRECOND: Ter(Bolo) EFEITO: ¬Ter(Bolo) Λ Comido(Bolo)) Ação(Assar(Bolo) PRECOND: ¬Ter(Bolo) EFEITO: Ter(Bolo)) Inteligência Artificial 49 Perceba que a ação estratégica é em cada linha descrito abaixo: Linha 1: no início é preciso ter o bolo. Linha 2: o objetivo é comer o bolo, para isso, é preciso ter um bolo e comê-lo. Linha3: é referente a ação de comer o bolo Linha 4: é a pré-condição da ação, ou seja, ter o bolo. Linha 5: o efeito da ação é não ter o bolo, uma vez que foi comido, e a própria ação de comido. Linha 6: é a ação de assar um bolo. Linha 7: a pré-condição é não ter um bolo. Note que o símbolo apresentado nesta condição é de negação, assim, o ato de ter um bolo é negado, passando ao estado de não ter um bolo. Linha 8: é o efeito de assar, passando a ter um bolo. Perceba que este algoritmo simples permite é composto de alguns níveis S com suas respectivas regras A. Mesmo simples, essa é uma estratégia útil para criar modelos de planejamento para dotar um agente da capacidade de raciocinar, os aproximando da proposta apresentada no teste de Turing, existir uma máquina inteligente, tal que, um humano entrevistador não é capaz de discernir se está entrevistando um humano ou máquina. RESUMINDO Estudamos neste capítulo sobre os grafos e como podemos dotar sistemas irracionais com grafos e permiti-los apresentar características de raciocínio. Para isso, primeiramente apresentamos uma visão geral de o que são grafos. Em seguida passamos a falar sobre as máquinas de estado e seu poder ligado a escolha e fluxos diferentes de dados para uma saída com base em sua entrada. Por fim, discutimos sobre o uso de grafos no planejamento estratégico da racionalidade dos agentes. Assim, esperamos que este conteúdo o auxilie nas demais unidades, onde exploraremos de forma mais profunda e objetiva o poder da IA. Inteligência Artificial50 REFERÊNCIAS BUENO, F. Métodos Heurísticos: Teoria e Implementações. IFSC. Araranguá, 2009. Disponível.em:<https://wiki.ifsc.edu.br/mediawiki/images/b/b7/ Tutorial_m%C3%A9todos_heur%C3%ADsticos.pdf>. Acesso em 5 maio 2020. B. NETTO, P. O. Grafos: Teoria, Modelos, Algaritmos. 5. Ed. São Paulo: Editora Blucher, 2011. BUENO, S. Minidicionário da língua Portuguesa. 3 ed. São Paulo: FTD, 2016. DANTE, L. R. Matemática: contexto & aplicações. 2 ed. São Paulo: Ática, 2013. DELGADO, L. F. M.; GOMES, R. S. A função do neuromarketing no jornalismo online. Scientia Alpha-Revista Científica Multidisciplinar da Faculdade ALFA Umuarama, v. 1, n. 1, 2019. HAUGELAND, J. Artificial Intelligence: The Very Idea. MIT Press. 1985. NILSSON, N. J. Artificial Intelligence: A New Synthesis. Morgan Kaufmann. 1998. POOLE, D. MACKWORTH, A. K. e GOEBEL, R. Computational intelligence: A logical approach. Oxford University Press. 1998. RICH, E. e KNIGHT, K. Artificial Intelligence, ed. 2. McGraw-Hill. 1992. RUSSELL, S. Inteligência artificial. 3. ed. Rio de Janeiro: Editora Elsevier, 2013. STERNBERG, R. J. Psicologia cognitiva. 4. ed. Porto Alegre: Editora Artmed, 2008. TEC MUNDO. YOUTUBE, 2018. Disponível em: <https://www.youtube.com/ watch?v=Lhu8bdmkMCM&feature=emb_logo>. Acesso em: 10 de maio de 2020. TURING, A. M. Computing machinery and intelligence. Mind, Volume LIX, Issue 236, Pages 433–460. 1950.