Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTELIGÊNCIA ARTIFICIAL EINTELIGÊNCIA ARTIFICIAL E APRENDIZADO DE MÁQUINAAPRENDIZADO DE MÁQUINA INTRODUÇÃO E APLICAÇÕESINTRODUÇÃO E APLICAÇÕES DA INTELIGÊNCIA ARTIFICIALDA INTELIGÊNCIA ARTIFICIAL Autor: Me. Jackson Schirigatti Revisor : Rene Marcel ino ABRITTA Te ixe ira IN IC IAR introdução Introdução Caro(a) estudante, a compreensão da inteligência é algo que intriga os seres humanos desde os tempos antigos até os dias de hoje. Intriga pela compreensão do que é “inteligente”. Intriga pelo desa�o de criar algo arti�cial pensante e inteligente. Como o arti�cial ė tudo o que é feito pelo homem e a inteligência ė a compreensão, capacidade de percepção, comunicação, aprendizado das tarefas, resolução de problemas e o comportamento inteligente, então podemos dizer que a máquina que ė feita pelo homem pode aprender? Quando começamos a leitura e o estudo de IA, procurando compreender o que ė essa ciência, por uma ou várias perspectivas, áreas ou aplicações, a melhor maneira é identi�cá-la em sua concepção e como ela foi aprimorada ao longo do tempo. É necessário também compreender o que levou os cientistas e pesquisadores a avançarem em diversos paradigmas de IA que ainda não foram uni�cados. Compreender o que ela pode nos trazer de benefícios ou até mesmo malefícios no futuro. Veremos, nesta unidade, as suas de�nições, competências em soluções e a representação e resolução de problemas pela IA. Para compreendermos a inteligência arti�cial, é necessário compreendermos a sua evolução. Segundo Coppin (2017), a história da IA está dividida em três grandes fases, iniciando com os estudos do �lósofo Aristóteles (322 a.C), na compreensão do raciocínio, e por George Boole, no século 19, no desenvolvimento da lógica booleana, além da invenção dos computadores digitais que trilharam o século 20, estabelecendo, assim, uma base para a compreensão da inteligência arti�cial. Após esse período, é visível uma segunda etapa denominada “etapa gestacional”, que marca o pioneirismo dos estudos de IA, por meio de Turing e McCarthy, entre 1943 a 1958. Durante essa fase ainda, é iniciada uma primeira onda de IA, também denominada de IA Clássica, enfatizando a linguagem simbólica e a emulação das funções do cérebro. E, �nalmente, a última fase, após a década de 1980 até os dias de hoje, inicia uma nova onda de IA, também denominada inteligência arti�cial conexionista ou, por outros autores, de inteligência computacional. Antes de compreendermos essa evolução, veremos a seguir as de�nições e competências em soluções da inteligência arti�cial. Introdução à InteligênciaIntrodução à Inteligência Arti�cialArti�cial De�inições e Competências em Soluções de IA A de�nição exata do termo inteligência arti�cial é discutível, mas, de modo simpli�cado, “arti�cial” é tudo o que é feito pelo homem e “inteligência” é a capacidade de compreender, aprender e resolver problemas. A Figura 1.1 ilustra as inúmeras aplicações da inteligência arti�cial inseridas em uma indústria moderna, chamada de indústria inteligente ou indústria 4.0. Essas aplicações estão direcionadas na resolução de problemas, realização de tarefas complexas e na descoberta do conhecimento, tais como o apoio da tecnologia de automação e comunicação (robótica), em pesquisas cientí�cas, no diagnóstico de doenças, na segurança da informação (identi�cação inteligente), na identi�cação de habilidades inteligentes (jogos) e em inúmeras outras aplicações. Para Luger (2013, p. 19), “a inteligência arti�cial pode ser de�nida como o ramo da ciência da computação que se ocupa da automação do comportamento inteligente”. Vejamos melhor o que signi�ca a automação do comportamento inteligente. Figura 1.1 - Aplicações da inteligência arti�cial Fonte: elenabsl / 123RF. Comportamento Inteligente A inteligência já não é mais teoria, mas sim aplicação para o benefício humano. Para Faceli et al . (2011), há alguns anos a área de IA era vista como uma parte da ciência da computação teórica com aplicações em pequenos problemas práticos curiosos, desa�adores, mas de pouco valor prático e resolvidos pela codi�cação da computação. Essa codi�cação são algoritmos ou pseudocódigos que especi�cam passo a passo de como o problema pode ser resolvido. A ideia básica de programar máquinas para executar tarefas é que elas podem resolver problemas dos quais nós não conseguiríamos ou levaríamos muito tempo para resolver. Exemplos práticos de solução de problemas seriam a resolução de cálculos com uma grande quantidade de dados e informações, aplicações de modelos matemáticos, estatísticos e outras tarefas que estariam além da nossa capacidade de processamento e memória. Contudo, as máquinas realizam bem essas tarefas automatizadas e programadas pelos humanos. A questão é: as máquinas podem aprender igual a nós, humanos? A resposta para essa pergunta é sim. Veremos em nossos estudos que as máquinas podem aprender. Faceli (2011) comenta que, a partir da década de 1970, houve uma maior disseminação do uso de técnicas de computação baseadas em IA com relação às soluções de problemas reais e uma maior so�sticação de ferramentas computacionais. Essa tendência ocorreu ao longo do tempo devido a uma crescente complexidade de problemas a serem resolvidos e uma grande quantidade de volume de dados a serem tratados computacionalmente. Essas técnicas são capazes de criar, por si próprias, a partir de experiências passadas, uma hipótese ou função capaz de resolver um problema. Essa hipótese pode ser constituída por um conjunto de regras, que forma um processo de indução por meio de dados passados. Esse processo é denominado de aprendizado máquina (AM) por indução de hipóteses. Para compreendermos melhor sobre as competências de soluções de IA, veremos um breve histórico da evolução da inteligência arti�cial e suas possíveis áreas de aplicação. Histórico e Áreas de Aplicação A história da inteligência arti�cial e, consequentemente, do aprendizado máquina (AM) já é antiga, pois a sua base está fundamentada na lógica, cujos trabalhos iniciais são relacionados a Aristóteles, anteriores a 322 a.C, e foi dada continuidade a eles por outros �lósofos, matemáticos e lógicos da época. Ele inventou a ideia do silogismo , um tipo de argumento lógico, que signi�ca que, a partir de duas primeiras premissas estabelecidas, é possível deduzir uma conclusão (COPPIN, 2017). A �gura a seguir ilustra Aristóteles na pintura de Francesco Hayes, 1811, Itália. Ou seja, em lógica, Aristóteles investiga se certas proposições podem ser “verdadeiras” porque estão relacionadas como outras coisas que são sabiamente “verdadeiras”. Esse argumento é um silogismo, como já vimos, em que a axiomatização formal do raciocínio foi amadurecido apenas dois mil anos depois pelos trabalhos Alan Turing e outros cientistas (LUGER, 2013). Os signi�cativos trabalhos sobre a lógica ocorrem no século 12, por Peter Abelard, que escreveu Dialectica , um tratado de lógica. Mas somente no �nal do século 17, Gottfried Leibniz, matemático e �lósofo alemão, em conjunto com Isaac Newton, desenvolveu a matemática formal proposicional e dos predicados, que são de grande importância para a pesquisa da inteligência Figura 1.2 - Aristóteles Fonte: Hayez / WikiArt. arti�cial. E, no século 19, George Boole (1815-1864), matemático inglês, desenvolveu a álgebra booleana, cujos conceitos do “verdadeiro” e “falso” até hoje são utilizados. A álgebra booleana é aplicada na lógica proposicional e dos predicados e no desenvolvimento das portas lógicas (AND, OR, NOT etc.), pelos engenheiros eletrônicos, para as pastilhas de silício utilizadas hoje nos processadores de dados. Após essa época, houve inúmeras invenções relacionadas ao computador por meio das primeiras máquinas de Charles Babbage, que inventou a “máquina analítica”, o primeiro computador mecânico do mundo. Mas somente em meados do século 20, em torno de 1950, os primeiros computadores começaram a funcionardigitalmente (COPPIN, 2017). Os primeiros estudos especí�cos sobre a inteligência arti�cial surgiram na década de 1940, marcada pela Segunda Guerra Mundial, com a construção de grandes computadores para atender às necessidades de desenvolvimento da análise balística, criptogra�a e descriptogra�a de códigos e cálculos para projetos nucleares. Já no pós-guerra, os computadores foram fabricados para as universidades, empresas e indústrias com �nalidades de pesquisas cientí�cas e também para a própria evolução das máquinas, como software, hardware e linguagem de programação (LIMA; PINHEIRO; SANTOS, 2014). A Figura 1.3 ilustra um dos primeiros computadores digitais eletrônico de uso geral, o ENIAC, cuja programação complexa limitava-se a ligar e desligar milhares de interruptores que assumiam valores zeros ou uns. A evolução dos computadores se deu de forma tão rápida, desde os primeiros computadores a válvulas como o Eniac em 1946 (Figura 1.3), dos microcomputadores da década de 1970, dos computadores pessoais da década de 1980, até os smartphones da atualidade com microprocessadores de múltiplos núcleos de alta frequência de processamento paralelo. Durante décadas, as máquinas estão sendo criadas e melhoradas, adaptando-se às nossas necessidades comerciais e pessoais. Devido ao advento da Internet, o aprimoramento dos processadores é de fundamental importância para os complexos cálculos matemáticos e lógicos e para a grande quantidade de informação disponível hoje. Tais informações devem ser processadas pelos algoritmos e sistemas inteligentes, por exemplo, a identi�cação de padrões em imagens, identi�cação e processamento da fala, diagnóstico médico por imagem, processamento de base de informações de especialistas ou base de fatos e regras, análise de produção manufatureira e análise �nanceira, entre inúmeras outras aplicações inteligentes em que o processador é de vital importância. A Máquina de Turing Por meio do conhecimento da lógica e da evolução dos computadores e, consequentemente, de uma linguagem de programação, as máquinas conseguiram automatizar ações em forma de instruções e assim resolver problemas de cálculos estatísticos, geométricos e matemáticos complexos, mas também foi a base para o estudo e o aprimoramento da aprendizagem e do comportamento inteligente das máquinas. Contudo, foram os trabalhos do matemático britânico Alan Turing que tiveram maior in�uência nesse campo. Segundo Lima, Pinheiro e Santos (2014), em 1950, Alan Turing publicou um Figura 1.3 - ENIAC (Electronic Numerical Integrator And Computer) in Philadelphia Fonte: GroveGuy / Wikimedia Commons. artigo chamado “Computing machine and intelligence”. Nele, Turing apresentou o que hoje é conhecido por teste de Turing, que testa se uma máquina consegue emular o pensamento humano. Luger (2013, p. 11) comenta sobre o teste de Turing: [...] o teste de Turing mede o desempenho de uma máquina, aparentemente inteligente em relação ao desempenho de um ser humano, indiscutivelmente o melhor e único padrão e comportamento inteligente. O teste, que foi chamado de ‘jogo da imitação’ por Turing, coloca a máquina e seu correspondente humano e salas separadas de um segundo ser humano, referido como o ‘interrogador’. O ‘interrogador’ não é capaz de ver nenhum dos dois participantes ou de falar diretamente com eles por um dispositivo textual, como um terminal. À tarefa do ‘interrogador’ é distinguir o computador do ser humano utilizando apenas as respostas de ambos as perguntas formuladas por meio desse dispositivo. Se o interrogador não puder distinguir à máquina do ser humano, então argumenta Turing, pode supor que a máquina seja inteligente. Para passar no teste de Turing, veri�cando-se se é um humano ou máquina, ou se é uma máquina inteligente, a máquina deve ter as seguintes capacidades comentadas por Norvig e Russell (2013) para um teste de Turing total, ou seja, também sendo veri�cadas as habilidades de percepção do indivíduo: Processamento de linguagem natural (comunicação em idioma natural). Representação de conhecimento (armazenamento do que sabe e do que ouve). Raciocínio automatizado (usar as informações armazenadas para responder às perguntas e tirar novas conclusões). Visão computacional para perceber objetos. Robótica para manipular objetos e movimentar-se. Essas seis disciplinas, segundo Norvig e Russell (2013), compõem a maior parte das áreas de aplicação de IA. Atualmente, usamos como semelhança ao teste de Turing o captcha ou “eu não sou um robô” na veri�cação humana em sites. O captcha é um algoritmo criado em 1997, que veri�ca se a pessoa que acessa um sistema web não é um robô. A palavra captcha vem do termo inglês para “teste público de Turing”, diferenciando humanos e robôs. Os captchas mais simples são constituídos de uma solicitação de digitação de letras aleatórias e de estilos diferentes, fazendo com que a prova de inteligência seja veri�cada. Atualmente, novos captchas so�sticados estão sendo desenvolvidos, pois os algoritmos invasores, chamado de bots , estão também cada vez mais inteligentes. Os novos captchas estão solicitando que os usuários respondam determinadas perguntas por meio de imagens, por exemplo: “Selecione todas as imagens que possuem sinaleiros” ou “Selecione todas as imagens que possuem viadutos”. Segundo Alan Turing, somente os humanos conseguiriam realizar tal teste de inteligência, entretanto esse teste, nos dias de hoje, está se tornando algo não tão complexo para os bots . Entretanto, Coppin (2017) comenta que a IA envolve a utilização de métodos baseados no comportamento inteligente de humanos para solucionar problemas complexos, ou seja, os sistemas são capazes de compreender a fala humana ou realizar extrações de declarações humanas para que se comportem como um humano inteligente. Esse, portanto, é um desa�o atual da IA, na diferenciação entre humanos e robôs, pois, cada vez mais, as máquinas estão aprendendo comportamentos humanos mais �éis. praticar Vamos Praticar O teste de Turing mede o desempenho de uma máquina, aparentemente inteligente em relação ao desempenho de um ser humano, indiscutivelmente o melhor e único padrão e comportamento inteligente. Para passar no teste de Turing, veri�cando-se se é um humano ou máquina, ou se é uma máquina inteligente, a máquina deve ter diversas capacidades/habilidades. Assinale a alternativa correta que corresponde a essas capacidades/habilidades: a) Processamento de linguagem de máquina. b) Formalismo proposicional. c) Representação da informação. d) Processamento de linguagem natural. e) Raciocínio padronizado. Para a resolução de muitos problemas de inteligência arti�cial, são ideais os métodos de busca por agentes inteligentes. Esses métodos estão sendo aplicados em muitas áreas do entretenimento, trânsito, computação, saúde, eletrônica, robótica, administrativa, navegação, indústria manufatureira e militar, entre outras, desde um jogo de estratégia de poucos estados até em um aplicativo que roteiriza o alto tráfego em uma rede de computadores. Veremos que as buscas para a resolução de problemas é uma subárea da inteligência arti�cial e possui um direcionamento especí�co para a tomada de decisão para atingir um objetivo ou meta. Os métodos de busca podem ser encontrados na mineração de dados para uma busca do conhecimento em uma base de dados de alta capacidade ou por meio da pesquisa operacional, através da otimização de recursos e resolução de problemas. Mas é na subárea dos agentes inteligentes que o método de busca de resolução de problemas se destaca. Quando se aprende sobre a busca por resolução de problemas, é comum compreendermos inicialmente como os agentes inteligentes buscam os estados ótimos por meio da resolução de Representação eRepresentação e Resolução de ProblemasResolução de Problemas miniproblemas, que são aplicados em jogos, como o caso do jogo deslizante puzzle e o jogo do tipo xadrez 8 rainhas. Essesjogos ilustram através de uma formulação de pequenos problemas e de variados “espaços de estados” a procura por um objetivo ou meta, ou seja, o objetivo dos jogos, por exemplo, do tipo xadrez e puzzle, é atingir um ou mais “estados objetivos” a partir de critérios estabelecidos. No caso do jogo puzzle é encontrar a numeração solicitada das peças, orientado-as em diversas posições (estados) até encontrar a numeração e posicionamentos solicitados (estado objetivo). Conceitos de Espaço de Estado e Busca Uma forma desejável para a resolução de problemas que utilizam um pequeno número de elementos é a aplicação dos agentes de resolução de problemas. “Os agentes decidem o que fazer encontrando uma sequência de ações para estados especí�cos desejáveis” (NORVIG; RUSSELL, 2014, p. 62). Seria focada a tomada de decisão, e não a busca do conhecimento para uma possível tomada de decisão. Um agente de resolução de problemas opera com as funcionalidades: Figura 1.4 - Jogo de quebra-cabeça, um exemplo de jogo que tem como objetivo encontrar o estado �nal Fonte: rido / 123RF. Formulação de objetivos: apoia a organização do comportamento limitando os objetivos que o agente deve alcançar. Objetivos: conjuntos de estados desejados. Formulação de problemas: processo de decisão que identi�ca quais estados ou ações devem ser considerados de acordo com o objetivo determinado. Tipos de Problemas Segundo Medeiros (2018), os tipos de problemas podem ser classi�cados em: Miniproblemas: exigem a aplicação de métodos de resolução de problemas, apresentando descrições concisas e exatas. Problemas do mundo real: são descrições complexas de situações da vida real e que podem ser fracionadas em problemas mais simples e com resoluções conhecidas. Alguns autores apresentam exemplos de miniproblemas que são resolvidos a partir de um estado inicial para alcançar um estado �nal (meta). As formulações desses problemas são de�nidas através de componentes como o estado, estado inicial, função sucessor, testes de objetivo e custo de caminho. Estado inicial: é o estado em que o agente começa a ação. Função sucessor: gera resultados válidos resultantes de ação ou conjunto de ações. Estado �nal: é o estado buscado pelo agente (meta a ser alcançada). Teste de objetivo: determina se um dado estado é um estado objetivo. Função de custo do caminho: custo numérico de cada caminho. Um exemplo de miniproblema seria o caso puzzle de oito peças que pertence à família de quebra-cabeças deslizantes utilizados em algoritmos de Inteligência arti�cial. Esse jogo também é chamado de “quebra-cabeça 8”. O jogo oferece 181.440 estados possíveis. A formulação do miniproblema é dada pelo Quadro 1.1: Os estados do miniproblemas podem ser visualizados pela expansão dos estados por uma “árvore de estados” (Figura 1.5). Veja que a árvore ilustra algumas possibilidades ou estados possíveis que o puzzle pode realizar até chegar a um estado ótimo ou desejado. Quadro 1.1 - Formulação do problema do jogo puzzle Fonte: Adaptado de Medeiros (2018). Digamos que o estado objetivo seria o último bloco à direita no terceiro nível. Perceba também que em alguns nós há uma falha de estado, sendo o caso do nó da segunda �leira e segunda coluna. É impossível o quadrado vazio saltar da primeira posição (linha 1, coluna 1) para linha 2, coluna 3. As diferentes con�gurações ou possíveis estados ilustrados na “árvore de estados” que são possíveis de alcançar a partir do estado inicial (nó raiz da árvore) são denominados espaço de busca ou espaço de estados. Observe que foram apresentados sete estados de con�guração para se chegar ao estado ótimo (espaços de estados). Segundo Medeiros (2018), o miniproblema do puzzle pode ser estendido para um quebra-cabeça de n x n casas, onde n > 3. Esse miniproblema é um exemplo de problema que o agente de resolução de problemas pode resolver e que pode ser estendido para problemas do mundo real por meio de alto poder computacional e de recursos como memória e processamento. As buscas em árvores de estados seguem duas abordagens, segundo Coppin (2017, p. 64): a abordagem de cima para baixo e a abordagem de baixo para cima. Essas buscas são guiadas por dados, partindo de um estado inicial (a partir da raiz da árvore de busca) e usando ações para ir em frente, até que Figura 1.5 - Árvore de estados Fonte: Medeiros (2018, p. 59). um objetivo seja atingido, como o exemplo da Figura 1.5 (árvore de estados). Essa abordagem é denominada “encadeamento para frente”. Também é possível iniciar a busca pelo objetivo e voltar a um estado inicial. Nessa abordagem, veri�cam-se quais estados levam a um estado objetivo, busca denominada “busca por objetivos” ou “encadeamento para trás”. Buscas em Profundidade, em Amplitude, Heurística e A* As principais buscas por um estado objetivo podem ser por busca em profundidade, em amplitude, heurística e A* (A estrela). Veremos a seguir esses tipos de abordagens e como elas são aplicadas pelos agentes inteligentes que imitam o comportamento humano. Abordagem em Profundidade Segundo Coppin (2017, p. 66), um algoritmo comumente usado é o de busca de profundidade. Essa busca segue cada caminho na sua maior profundidade antes de seguir para o próximo caminho. O processo continua até que todos os nós da árvore tenham sido examinados e houver uma falha ou quando um estado objetivo tenha sido alcançado, terminando à busca com sucesso. Na Figura 1.6, a busca por profundidade realiza a busca pelo estado objetivo, nó “J” (nó objetivo). Veja que são realizadas veri�cações na sequência, dos nós A- B (1), B-D (2), D-G (3), G-D (4), D-H (5), H-D(6), D-B(7), B-A(8), A-C(9), C-E(10), E- I(11), I-E(12), E-J(13). Abordagem em Amplitude Outra forma de busca é a busca por largura ou também conhecida de busca por em amplitude. Segundo Coppin (2017, p. 68), “essa abordagem envolve percorrer a árvore em largura em vez de profundidade [...] o algoritmo de busca em largura começa examinando todos os nós um nível (algumas vezes chamados de uma camada) abaixo do nó raiz”. A Figura 1.7 ilustra a árvore de estados utilizando busca por amplitude, sendo examinado cada nível da árvore até encontrar o estado objetivo. Veja que o exame é dado pela sequência A-B-C (nível 1 após raiz), D-E-F (nível 2) e G-H-I-J (nível 3), e onde J é o estado objetivo de sucesso. Figura 1.6 - Busca por profundidade em uma árvore de estados Fonte: Coppin (2017, p. 66). Os humanos podem utilizar o método de busca de profundidade e amplitude como entrar em um labirinto ou em uma loja e procurar uma saída ou um determinado produto. A Figura 1.8 ilustra um labirinto que representa a árvore binária da �gura 1.7. A entrada do labirinto ou loja é o nó raiz A. A saída é o estado procurado “J”. Quando há nós folhas tipo G, H, I, K, L, são paredes ou bloqueios. Já os nós A, B, D, C, F, E e J são aberturas. Figura 1.7 - Busca por amplitude em uma árvore de estados Fonte: Coppin (2017, p. 68). Figura 1.8 - Representação de uma árvore de estados na forma de um labirinto ou planta de uma loja Fonte: Elaborada pelo autor. Vimos que a aplicação das abordagens de busca por profundidade ou por amplitude é como percorrer um labirinto até encontrar a saída. A busca por amplitude seria a busca por andares. Após examinar cada andar, passa a examinar o próximo. Abordagem Heurística Para Coppin (2017), as abordagens de buscas em profundidade e largura (amplitude) são descritas como força bruta, ou seja, não empregam qualquer conhecimento especial na árvore de busca, mas simplesmente examinam cada nó, em ordem, até que se encontre o estado objetivo. Esse exame de cada nó é como se fosse um ser humano percorrendo um labirinto, seguindo com a mão pelo lado esquerdo da parede do labirinto, como na Figura 1.8. Contudo, na busca por heurística é possível acrescentar um conhecimento sobre a árvore de busca e do caminho ótimo para encontrar o estado objetivo. Os seres humanos utilizamconstantemente a heurística para solucionar todo o tipo de problemas. Um exemplo de jogo que se utiliza da abordagem heurística é o quebra-cabeça de oito peças ou puzzle de oito peças, como já vimos no Quadro 1.1 A informação-chave para a decisão depende de onde está localizado o espaço vazio. Para Coppin (2017, p. 82): reflita Re�ita É possível utilizar os agentes de resolução de problemas em combinação com as outras demais subáreas da inteligência arti�cial, como a mineração de dados, pesquisa operacional, visão computacional, robótica e outras? Tipicamente são 20 deslocamentos para ir de um estado inicial aleatório ao estado objetivo, e assim, a árvore de busca tem uma profundidade em torno de 20. O fator de rami�cação depende de onde está o espaço vazio. Se ele estiver no meio da grade, o fator de rami�cação será de 4. Se ele estiver em uma lateral, o fator será de 3, e, se ele estiver em uma quina, o fator de rami�cação será de 2. Assim o fator médio de rami�cação de árvore de busca é de 3. Conforme Luger (2013), os seres humanos utilizam busca inteligente: um jogador de xadrez considera uma variedade de jogadas possíveis, um médico também examina vários diagnósticos possíveis, mas um ser humano não utiliza busca exaustiva, pois o jogador de xadrez e o médico tendem a realizar uma busca de acordo com suas experiências. As resoluções de problemas pelos seres humanos são guiadas e baseadas por regras de julgamento pelos espaços de estados que de alguma forma são “promissoras”. E essas regras são denominadas heurísticas . Uma heurística é uma estratégia para a busca seletiva de um espaço de problema. O objetivo da heurística é realizar ao longo da busca a veri�cação de probabilidade de sucesso, evitando assim esforços desnecessários para o atingimento do objetivo. Abordagem A* (A estrela) A abordagem A* é uma técnica de heurística so�sticada para identi�car caminhos ótimos. Para Coppin (2017), os algoritmos A* utilizam uma busca de heurística melhorada para selecionar o caminho da árvore. A busca A* expande caminhos envolvendo ir para o nó que parece ser o mais próximo do objetivo, além de considerar um custo daquele caminho até aquele nó. Exemplos práticos de abordagem A* são os problemas de roteamento ou roteirização. As roteirizações são problemas da vida real e são utilizadas como apoio para tomadas de decisões automatizadas, como rotas otimizadas por GPS (Global Positioning System) através de algoritmos de navegação ou em roteadores de redes de computadores. Os roteadores de�nem a melhor rota de dados na complexa e emaranhada rede de computadores, trazendo maior velocidade e qualidade na chegada do pacote de dados. Esses tipos de problemas utilizam um conjunto de pontos ou nós e ligações entre esses nós, como mostra a �gura a seguir, na forma de um grafo: Figura 1.9 - Grafo representando um roteamento Fonte: Elaborada pelo autor Uma formulação do problema de roteamento seria dada pelo Quadro 1.2, a seguir. O teste objetivo depende do que se procura ou busca, podendo ser, na maioria dos casos, uma otimização da rota ou melhor caminho: Quadro 1.2 - Formulação de roteamento Fonte: Adaptado de Medeiros (2018). Para Medeiros (2018, p. 61), “Este problema está presente em várias aplicações tais como roteamento de redes de computadores, planejamento de manufatura, operações militares, sistema de planejamento de voos e distribuição geográ�ca de produtos”. Um exemplo de formulação do roteamento pode ser aplicado em um caso real. Veja o exemplo de formulação no Quadro 1.3, com o objetivo de descobrir a melhor rota ferroviária entre duas cidades. Formulação Descrição Estados ou espaço de estados Representação de uma posição do nó. Estado inicial Especi�cado de acordo com o problema. Função sucessor Os nós ou posições que estão adjacentes. Teste de objetivo Veri�ca se, pela movimentação através dos nós, chega-se ao nó destino. Custo de caminho Dado pelo somatório do custo de cada ligação entre os pares dos nós. Quadro 1.3 - Exemplo de formulação do roteamento em uma rota ferroviária Fonte: Elaborado pelo autor. Vimos que as buscas por estados objetivos resolvem uma série de miniproblemas, como problemas de jogos e labirintos, e esses podem ser estendidos para problemas mais complexos da vida real, por meio das buscas com técnicas de heurísticas, por exemplo, no caso da roteirização GPS e no roteamento de redes. Formulação Descrição Estados ou espaço de estados Representação de uma posição do nó. Estado inicial Cidade de origem. Função sucessor Próximo destino a partir da cidade a ser considerada. Teste de objetivo Se o estado atual já se encontra na cidade destino. Custo de caminho Tempo de viagem ou custo da viagem entre as cidades. saiba mais Saiba mais Para saber mais sobre a resolução de problemas em jogos e buscas em espaços de estado, leia o artigo cientí�co “Inteligência Arti�cial para jogos: agentes especiais com permissão para matar... e raciocinar!” ACESSAR Vimos os principais conceitos de agentes de resolução de problemas, esses constituídos de técnicas de buscas de amplitude, profundidade, heurística e A*, e suas principais aplicações. No próximo tópico, iremos compreender melhor a técnica de busca por meio de um laboratório, implementando o algoritmo de busca por profundidade e realizando uma análise detalhada da busca por espaços por estados em profundidade. praticar Vamos Praticar Leia o trecho a seguir: “Os agentes decidem o que fazer encontrando uma sequência de ações para estados especí�cos desejáveis”. http://osorio.wait4.org/publications/Osorio-et-al-SBGames07-Tutorial.pdf NORVIG, P; RUSSEL, S. Inteligência arti�cial . Rio de Janeiro: Elsevier. 2013. p. 62. Assinale a alternativa correta, sobre o objetivo dos agentes inteligentes: a) Realizam a descoberta do conhecimento (informação útil). b) Operam para encontrar um estado desejado. c) Operam na descoberta da melhor solução possível. d) Realizam a descoberta do problema. e) Mineram uma base de dados. Vimos que o problema do labirinto é um exemplo de aplicação dos agentes inteligentes que são resolvidos pelas técnicas de buscas (profundidade, amplitude e outros). E analisaremos agora um exemplo completo de implementação da busca em profundidade por meio de um pseudocódigo e análise da busca. Laboratório: Resolução de um Exemplo Para realizarmos uma resolução completa para encontrar o estado objetivo através de uma busca por profundidade, o exemplo da árvore de estados com 15 nós é dado pela Figura 1.10, em que um estado objetivo se encontra no nó “L”. Representação eRepresentação e Resolução de ProblemasResolução de Problemas Uma implementação por pseudocódigo por busca em profundidade é demonstrada por Coppin (2017, p. 74) através de uma função denominada profundidade. Segundo Coppin (2017, p. 74): [...] a variável estado representa o estado corrente em qualquer ponto dado no algoritmo e �la é uma estrutura de dados que armazena vários estados de forma que permita inserção e remoção em cada extremidade. [No algoritmo dados no exemplo] [...] sempre inserimos pela frente e removemos pela frente. Exemplo de pseudocódigo: Function profundidade () { �la = [ ] // inicializa uma �la vazia estado = no_raiz // inicializa o estado inicial while (true) { if eh objetivo (objetivo) then SUCESSO; else inserir_na_frente_da_�la sucessos (estado) ) Figura 1.10 - Árvore de busca do labirinto Fonte: Coppin (2017, p. 72). if �la = [ ] then report FALHA; estado = �la [0]; // estado = primeiro item da �la remover_primeiro_item_da_�la (�la); } } Uma análise de busca de profundidade é dada pelo Quadro 1.4: Passo Estado Fila Obs. 1 A (vazio) A �la começa vazia, e o estado inicial é o nó À. 2 A B, C Os sucessores de A são inseridos na �la. 3 B C 4 B D, E, C Os sucessores do estado corrente, B, são inseridos na frente da �la. 5 D E, C 6 D H, I, E, C 7 H I, E, C H não tem sucessores. 8 I E, C Da mesmaforma, I não tem sucessores. 9 E C 10 E J, K, C 11 J K, C Novamente, J não tem sucessores. 12 K C K não tem sucessores. Assim, exploramos toda a rami�cação abaixo de B. O que nos leva a retroceder a C. 13 C (vazio) A �la está vazia, mas isso não signi�ca que estamos no ponto inicial do algoritmo, mas sim uma falha ( report Quadro 1.4 - Análise de busca de profundidade Fonte: Coppin (2017, p. 75). Vimos que a análise das árvores de busca pela implementação do algoritmo (exemplo do pseudocódigo) nos leva a compreender todos os exames dos nós até encontrar o(s) nó(s) objetivo(s). Aplicação nos Cenários dos Grupos Como proposta de atividade de laboratório referente à resolução de problemas, a sugestão é implementar a busca por amplitude, equivalente à resolução da busca por profundidade. A turma deve ser dividida em grupos, e os estudantes devem apresentar um novo algoritmo (pseudocódigo), realizar uma análise da busca, tipo um teste de mesa (conforme o Quadro 1.4), e informar quais são os sucessores do nó estado. Além da implementação por amplitude, cada grupo terá um nó objetivo a ser encontrado. FALHA ) quando if �la = [ ] , pois estamos próximos de inserir sucessores de C na �la. 14 C F, G 15 F G 16 F L, M, G 17 L M, G Sucesso: o algoritmo termina porque o nó objetivo foi localizado. Nesse caso, é o único nó objetivo, mas o algoritmo não sabe disso, e não sabe quantos nós foram deixados de explorar. praticar Vamos Praticar Exemplos de aplicações da técnica de busca por profundidade são os jogos de labirintos, em que se deve encontrar uma saída, ou seja, um estado objetivo. Os algoritmos dessa técnica são baseados em árvores de estados e implementados utilizando-se estruturas de repetição e �la. É possível a�rmar com relação ao algoritmo de técnica de busca por profundidade que: a) A estrutura de �la deve ser inicializada com um nó qualquer da árvore de estados, e a variável estado é inicializada com nenhum nó. b) A variável estado representa o estado corrente em qualquer ponto dado no algoritmo. No início do algoritmo, a variável estado é inicializada com o nó raiz. c) A �la é uma estrutura de dados que armazena vários estados de forma que permita inserção e remoção dos estados; contudo, no algoritmo de busca por profundidade, a remoção de estados é feita pela frente e a inserção por trás da �la. d) Uma �la vazia no algoritmo de busca de profundidade condiz com um erro. e) Quando implementados em jogos do tipo labirinto, uma parede do labirinto signi�ca um nó que possui sucessores. Esta seção tem como objetivo propiciar o aprofundamento sobre o tema de resolução de buscas por espaços estados em jogos. Os agentes inteligentes, além de resolverem miniproblemas, do tipo “jogos deslizantes”, conseguem resolver buscas nos espaços de estado em jogos de tabuleiro do tipo xadrez. Um exemplo é o jogo 8 rainhas. O objetivo é posicionar oito rainhas em um tabuleiro de tal forma que nenhuma rainha ataque a outra. O critério de ataque é quando uma rainha está na mesma coluna ou linha ou diagonal. Vejamos a seguir a resolução do problema do jogo 8 rainhas. Técnicas Avançadas de IA Segundo Bento, Souza e Madeira (2008, p. 2), O problema das n-rainhas é muito conhecido da forma como ele foi resolvido originalmente em 1850 por Gauss: com 8 rainhas, posteriormente essa demonstração foi estendida para n-rainhas por Ho�man em 1969. O problema em si consistem em colocar um determinado número n maior ou igual a 2, de rainhas em um Tópicos AvançadosTópicos Avançados tabuleiro de xadrez de forma que elas não se ataquem simultaneamente, e ao �nal possa se dizer quantas formas deste existam. Uma formulação apresentada por Medeiros (2018) para esse tipo de jogo é apresentada no Quadro 1.5, a seguir: Quadro 1.5 - Formulação do jogo 8 rainhas Fonte: Medeiros (2018, p. 60). A Figura 1.11 ilustra o tabuleiro das oito rainhas, posicionadas em um estado em que uma das rainhas pode ser atacada, localizada no canto inferior direito, posição (8,8), podendo ser atacada por outra rainha da primeira coluna e primeira linha, posição (1,1), ou seja, a rainha na posição (8,8) é um estado não desejado: Formulação Descrição Estados ou espaço de Estados Qualquer disposição de zero a oito rainhas sobre o tabuleiro. 3 X 10E14 estados possíveis. Estado inicial Nenhuma rainha no tabuleiro. Função sucessor Colocação de uma rainha em uma casa vazia. Teste de objetivo Veri�cação de oito rainhas no tabuleiro e de qualquer possibilidade de ameaça a alguma delas. Custo de caminho Colocação de uma rainha sobre o tabuleiro de modo a evitar ameaça a outras rainhas já colocadas. Nesse caso não a custo. Vimos que as posições ou espaços de estados podem ser “desejados” ou “não desejados”. A ideia é posicionar todas as rainhas em “estados desejados”. O Quadro 1.6, a seguir, apresenta uma formulação melhorada (con�guração melhorada de estados desejados). Figura 1.11 - Estado não desejado. Fonte: Elaborada pelo autor. Quadro 1.6 - Formulação melhorada para o jogo 8 rainhas Fonte: Adaptado de Medeiros (2018). A formulação de modo melhorado do problema das oito rainhas, também chamado estados completos, reduz o espaço dos estados para uma combinação de 3. 10E14 para 2045 estados, facilitando a obtenção de soluções, o que os agentes tratam bem com um processamento de menor capacidade. A Figura 1.12 ilustra a formulação de estados completos. Formulação Descrição Estados ou espaço de Estados Dispor n rainhas (0<=n <=8) de modo que se tenha uma rainha, uma por coluna. Qualquer disposição de n colunas mais à esquerda, evitando a ameaça de outra rainha. Estado inicial Nenhuma rainha no tabuleiro. Função sucessor Adicionar uma rainha a qualquer casa na coluna vazia mais à esquerda, buscando evitar ameaça de alguma rainha já colocada. Teste de objetivo Veri�cação de oito rainhas no tabuleiro e de qualquer possibilidade de ameaça a alguma delas. Custo de caminho Colocação de uma rainha sobre o tabuleiro de modo a evitar ameaça a outras rainhas já colocadas. Nesse caso, não há custo. Portanto, os miniproblemas representam possíveis soluções que utilizam os agentes de busca de resolução de problemas. Com os jogos deslizantes, puzzle e do jogo 8 rainhas, é possível a visualização de soluções que podem ser ampliadas para problemas do mundo real. Figura 1.12 - Formulação de estados desejados Fonte: Adaptada de Medeiros (2018). Ferramentas e Cenários de Aplicações Para nos aprofundarmos mais sobre a tecnologia de agentes inteligentes na busca na resolução de problemas, veremos mais algumas aplicações relacionadas e um conceito sobre multiagentes. Por exemplo, no controle de informação , segundo Rezende (2005), os agentes de informação são focados na identi�cação e manipulação de grandes volumes de dados, como no caso na mineração de dados, em que é realizada a busca de informação relevante, sendo o caso dos buscadores de informações como o Google. Já os agentes de colaboração são utilizados para compartilhar recursos em uma organização ou pesquisas a distância. Softwares de compartilhamento de atividades e de trabalhos em grupo utilizam os agentes de colaboração. Os agentes de �uxo de atividades são aplicados para gerenciar o �uxo de atividades de uma empresa, tornando o �uxo mais e�ciente. saiba mais Saiba mais A resolução de problemas em jogos do tipo xadrez e buscas em espaços de estado são tratadas no artigo cientí�co “O problema das n-rainhas”, de Bento, Souza e Madeira, da Universidade do Extremo Sul Catarinense (UNESC). O objetivo desse artigo é mostrar a representação de grafos em jogos. O exemplo utilizado foi o problema das n- rainhas, no qual cada rainha deve estar em posição de defesa no tabuleiro, ou seja, não podem estar em posição vertical, horizontal e diagonal de outra rainha. ACESSAR http://periodicos.unesc.net/sulcomp/article/view/2071/1962 Um outro conceito relativo à tecnologia de agentes inteligentes é sobre os multiagentes.Baltzan e Philips (2012, p. 41) comentam que, “nos últimos anos, a pesquisa de IA tem feito muito progresso na modelagem como um todo com a ajuda dos sistemas multiagentes”. Para Rezende (2005, p. 269), [...] os agentes são personagens computacionais que atuam de acordo com um script de�nido, direta ou indiretamente por um usuário. Eles podem atuar isoladamente ou em comunidades, formando sistemas multiagente. O uso de agentes vem crescendo como uma maneira de lidar com um mundo onde informações e conhecimentos crescem a uma velocidade humanamente impossível de lidar. Os sistemas multiagentes são atividades ou serviços em conjunto de agentes autônomos, ou seja, os agentes possuem um objetivo próprio e existência própria. Para que os agentes possam resolver algum problema, é necessário conceber os meios, pois são criados para resolver os problemas de maneira genérica e não especí�ca. Os agentes instanciam o problema dinamicamente, quando esse é inserido no sistema. Quando um agente está em um sistema em que há outros agentes (multiagentes), esse receberá uma interferência social entre esses agentes. As interferências sociais podem ser dos tipos: autonomia, organização e interação entre os agentes. Na autonomia, os agentes não interagem e se comportam como uma interação de neutralismo. Na organização, os agentes possuem um compromisso em comum a ser atingido. E, nas interações, podem ser diversas: de competição (agentes competem pelo mesmo recurso), parasitismo (um agente parasita depende do outro, no caso, do hospedeiro), amensalismo (um agente pode usufruir de recursos ou fonte de informações acidentalmente) e simbiose (a combinação de dois agentes é obrigatória para atingir uma meta). praticar Vamos Praticar Os agentes inteligentes, além de resolverem miniproblemas, do tipo “jogos deslizantes”, conseguem resolver buscas nos espaços de estado em jogos de tabuleiro do tipo xadrez. Um deles é o jogo 8 rainhas. Marque a alternativa correta correspondente ao objetivo desse tipo de jogo: a) Descobrir qual é a melhor rainha do tabuleiro. b) Descobrir qual é a melhor jogada com a eliminação de todas as damas do tabuleiro. c) Veri�car o posicionamento das oito rainhas no tabuleiro, para que não exista qualquer possibilidade de ameaça a algumas delas. d) Veri�car se as oito rainhas do tabuleiro podem atingir uma con�guração especí�ca desejada. e) Veri�car ameaça dos nós ou posições adjacentes de uma rainha especí�ca. indicações Material Complementar FILME O jogo da imitação Ano: 2014 Comentário: o �lme mostra a cinebiogra�a de Alan Turing, matemático e cientista da computação britânico que contribuiu com estratégias dos Estados Unidos durante a Segunda Guerra Mundial. Você poderá ver os esforços de Alan Turing nas áreas de matemática, lógica e computação para a resolução de problemas, nesse caso o desa�o da descriptogra�a de informações alemãs. Além de se situar na história da computação, você irá acompanhar o surgimento do primeiro computador e terá uma visão da lógica computacional. TRA ILER LIVRO Inteligência arti�icial Peter Norvig e Stuart Russell Editora: Inteligência Arti�cial ISBN: 13 9788535251418 Comentário: essa leitura é uma ótima base para compreender as bases, teoria e aplicações da inteligência arti�cial tratando da resolução de problemas por meio de algoritmos de IA, por exemplo, a solução de jogos de damas. conclusão Conclusão Podemos resumir nosso estudo em uma introdução da inteligência arti�cial e sobre a resolução de problemas por meio dos agentes inteligentes. Compreendemos que a inteligência arti�cial apresenta vários conceitos e de�nições, isso devido à sua alta multidisciplinaridade. Diante dessa de�nição, vimos que, durante a história da humanidade, desde Aristóteles, com a axiomatização formal do raciocínio, até a modelagem das redes neurais e o aperfeiçoamento dos sistemas inteligentes da atualidade, os cientistas e pesquisadores visam à busca do aprendizado máquina, equiparando-os aos comportamentos humanos inteligentes. referências Referências Bibliográ�cas BALTZAN, P.; PHILLIPS, A. Sistemas de informação . Porto Alegre: MG Editora. 2012. BENTO, G. B.; SOUZA, V. M. MADEIRA, K. O problema das n-rainhas . Criciúma: UNESC, 2008. COPPIN, B. Inteligência arti�cial . Rio de Janeiro: LTC: 2017. FACELI, K.; LORENA, A. C.; GAMA, J.; CARVALHO, C. P. L. F. de; Inteligência arti�cial : uma abordagem de aprendizado de máquina. Rio de Janeiro: LTC. 2011. LIMA, I; PINHEIRO, C. A. M; SANTOS, F. A. O. Inteligência arti�cial . Rio de Janeiro. Elsevier. 2014. LUGER, G. F. Inteligência arti�cial . 6. ed. São Paulo: Pearson Education do Brasil. 2013. MEDEIROS, L. F. de; Inteligência arti�cial aplicada : uma abordagem introdutória. Curitiba: Intersaberes, 2018. NORVIG, P; RUSSEL, S. Inteligência arti�cial . Rio de Janeiro: Elsevier. 2013. OSÓRIO, F.; PESSIN, G.; FERREIRA, S.; NONNENMACHER, V. Inteligência arti�cial para jogos : agentes especiais com permissão para matar… e raciocinar! São Leopoldo: Unisinos, 2007. REZENDE, S. O. Sistemas inteligentes : fundamentos e aplicações. Barueri: Manole, 2005.
Compartilhar