Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 2 INTELIGÊNCIA ARTIFICIAL E ROBÓTICA Prof. Luciano Frontino de Medeiros 2 TEMA 1 – AGENTES INTELIGENTES A Robótica é uma ciência pragmática por princípio. Os pesquisadores de robôs — sejam empresas fabricantes de robôs industriais, sejam crianças construindo seguidores de linha — precisam lidar com conhecimentos de maneira experimental, levando em consideração conceitos e ideias consolidadas em outras áreas, além de empreender por tentativa e erro, tendo em mente certa finalidade. Em primeiro lugar, um robô deverá trabalhar de forma autônoma. A autonomia considera que ele deverá estar atento a certos eventos ou condições existentes no ambiente em que deverá executar suas tarefas. Deverá “pensar” sobre essas condições e depois “tomar decisões”, sem a interferência de um ser humano, pressupondo um comportamento autônomo. Assim, a tarefa do construtor de robôs é, de certa forma, provê-lo de uma certa “consciência” e fazê-lo agir conforme regras estabelecidas em seu projeto. A Robótica herda da Inteligência Artificial o conceito de agente inteligente. De forma mais geral do que um robô, um agente precisa executar tarefas de forma autônoma, testando as condições do ambiente e executando ações conforme um programa estabelecido, o que se aplica tanto para um robô quanto para um software que não esteja embutido em um artefato real. Conforme Russell e Norvig (2004), um agente é um artefato equipado com sensores que têm a capacidade para perceber o ambiente e agir sobre ele por meio de atuadores. Em comparação com o ser humano, os sensores são equivalentes aos olhos, ouvidos, nariz e o tato. Os atuadores podem equivaler às mãos, às pernas, à boca e às demais partes ativas de nossa anatomia. Hoje em dia os robôs são construídos tendo sensores, tais como câmeras, dispositivos de infravermelho, de som e ultrassom, de gás, de temperatura e de umidade, dentre outros. Como atuadores, podemos relacionar os servomotores, motores de passo, pistões hidráulicos e relês. Mas um agente precisa também processar os sinais provenientes dos sensores para efetuar alguma ação que seja caracterizada como inteligente sobre o seu ambiente (Medeiros, 2018, p.35). Por exemplo, um robô seguidor de linha tem sensores para detectar as variações de luz de uma trilha de cor diferente do chão por onde deverá se movimentar (conforme a Figura 1). Tal sensor pode ser baseado em um componente denominado light dependent resistor — LDR (resistor dependente de luz) ou em um conjunto de 3 emissor-receptor de luz infravermelha. Por meio da movimentação e das variações de luz, o robô tem em seu programa um conjunto de regras que permite continuar o seu movimento sobre a trilha. Como atuadores, o robô possui motores para dar velocidade e ajustar a direção do movimento conforme a detecção do trajeto. Figura 1 – Exemplo de um robô seguidor de linha Crédito: MASSIMO PARISI/SHUTTERSTOCK De forma geral, um agente inteligente interage com o seu ambiente da maneira que será mostrada na Figura 2. Por meio dos sensores, um agente tem percepções do ambiente. Os sensores podem atuar de forma combinada para caracterizar uma percepção de algo acontecendo ao redor deles. Entretanto, a percepção do ambiente está sujeita a mudanças, possuindo um aspecto temporal, sendo necessário considerar, também, a sequência de percepções. Essa sequência é processada internamente pelo agente. Conforme Russel e Norvig (2004, p.34), “a escolha da ação de um agente em qualquer instante dado pode depender da sequência inteira de percepções observadas até o momento”. 4 Figura 2 – Interação do agente inteligente com o ambiente e seus elementos internos Fonte: Russel; Norvig, 2004. O processamento dos sinais sensoriados pelo agente para a execução de ações tem uma similaridade bastante grande com o conceito função da Matemática. Denomina-se função do agente o mapeamento das possíveis ações por meio de sequências de percepções disponíveis na memória do referido agente, de acordo com Russel e Norvig (2004). A tarefa nobre do projetista de robôs está na determinação da função do agente. Para robôs que executarão tarefas simples, a função do agente pode ser bem determinada, e seu comportamento pode acondicionar um conjunto de ações bem definidas. Para outros robôs, a função do agente pode ser impossível de descrever de forma bem definida. Agentes que desenvolvam tarefas simples, como um robô aspirador, tem uma função de agente bem delimitada de forma a produzir um comportamento que pode ser aplicado a uma gama bem definida de ambientes sobre os quais pode fazer a limpeza. Por outro lado, um robô destinado a jogar xadrez representa um desafio, pois a quantidade de jogadas possíveis chega a valores astronômicos (aproximadamente 10120 possibilidades – o número estimado de átomos no Universo chega a 1080). Dessa forma, um agente inteligente para o jogo de xadrez deve ter a sua função de agente limitada, de forma que não leve milhões de anos para fazer uma jogada, e que tenha memória suficiente para armazenar jogadas possíveis considerando um horizonte de poucas jogadas à frente (Medeiros, 2018, p.36). 5 A função do agente se trata de uma descrição abstrata, que pode ser feita utilizando diagramas ou outras simbologias que permitam representar o que o agente deve fazer. Por meio da função do agente, elabora-se o programa do agente, que é implementado de forma concreta e está comprometido com aspectos da arquitetura do agente, segundo Russel e Norvig (2004, p. 34). O programa se exprime na linguagem de programação utilizada para desenvolver o agente. Por exemplo, um robô baseado na plataforma Arduino pode utilizar a linguagem “C” ou mesmo a linguagem Scratch. Para ilustrar com outro exemplo, supõe-se um mundo de um robô aspirador bastante simples, composto de nove blocos nos quais ele pode se posicionar e identificar se existe sujeira ou não (conforme mostra a Figura 3). Os blocos são referenciados mediante linhas e colunas. Caso ele comece inicialmente no quadrado central, uma sequência de ações pode fazer com que o robô proceda a uma varredura e verifique se existe sujeira ou não em cada quadrado que for visitar, segundo Medeiros (2018). Figura 3 – Representação do ambiente de um robô aspirador Fonte: Medeiros, 2018, p. 37. Podem-se imaginar diferentes formas pelas quais o robô poderá visitar cada um dos blocos. Possuindo um sensor detector de sujeira e atuadores na forma de motores para auxiliar a movimentação, o robô pode se movimentar pelos blocos. Assim, diversas sequências de percepções podem ser obtidas. 6 Na Figura 4 está descrita uma sequência de percepções possível. Cada percepção é composta da posição de onde o robô se encontra, além do sinal proveniente do detector de sujeira. Conforme a definição, o robô deve levar em consideração os movimentos feitos nessa sequência, para que se atinja sua finalidade geral — que é a limpeza de todo o seu “mundo”. Essa sequência pode ser combinada com a representação do ambiente do agente, conforme ilustra a Figura 5. Quadro 1 – Descrição da função do agente para o exemplo do robô aspirador Fonte: Medeiros (2018, p.38). 7 Figura 4 – Representação do ambiente do robô aspirador com o mapeamento de ações conforme a sequência de percepções Fonte: Medeiros, 2018, p. 38. Como constatado, existem diversas formas pelas quais o robô aspirador pode executar a sua tarefa. Apesar de ele conseguir deixar o seu ambiente limpo, podemos nos questionar se o robô está sendo eficiente no desenvolver dessa atividade. Surge então as seguintes perguntas: existe uma maneira correta de o robô executar a tarefa? Existe um caminho pelo qual ele pode se movimentar de forma mínima para que o ambiente todoesteja limpo? Até agora não houve preocupação quanto a isso. Entretanto, à medida que a função do agente se torna mais complexa, tais questionamentos podem se tornar prioridade, dado que um robô poderá se movimentar de forma interminável, sem deixar o ambiente limpo (por exemplo, o robô poderia entrar em loop, saindo do centro para um bloco lateral, para um bloco diagonal, para outro lateral adjacente e voltar novamente ao centro, assim sucessivamente). O agente — além de cumprir a tarefa (ou seja, ser eficiente) — precisa ser também racional: aquele que, por meio do resultado das suas ações, possa obter o maior sucesso. Desse modo, é preciso considerar algum método para a quantificação do sucesso de um certo agente, segundo Russel e Norvig (2004, p. 36) “para cada 8 sequência de percepção possível, um agente racional deve selecionar uma ação que se espera venha a maximizar sua medida de desempenho, dada a evidência fornecida pela sequência de percepções e por qualquer conhecimento interno do agente”. Portanto, é necessária uma medida (ou um conjunto de medidas) de desempenho, para que se possa aferir a racionalidade do agente. De acordo com Russel e Norvig (2004, p. 36), a racionalidade irá depender em qualquer momento de quatro fatores. Vejamos: 1. a medida de desempenho como critério para obtenção do sucesso da tarefa; 2. o conhecimento prévio do agente em relação ao ambiente; 3. as ações que o agente pode executar; 4. a sequência de percepções que o agente tem até o momento. No caso do robô aspirador, uma medida de desempenho poderia ser a quantidade de quadrados limpos em um período de tempo ou por movimentação. O ambiente em que o robô executa a sua tarefa é conhecido, mas a sujeira pode aparecer de maneira variável nos blocos. O sensor de posição pode identificar o bloco em que ele se encontra (usando um leitor de posição) e, assim, averiguará se existe sujeira ou não — por meio de uma câmera ou de algum sensor que identifique a diferença de um bloco limpo ou sujo. Portanto, o robô aspirador poderá ser classificado como um agente racional. TEMA 2 – TIPOS DE AMBIENTES Devido à importância que o ambiente desempenha no papel de um agente, um projetista de robôs precisa saber caracterizar adequadamente como tal ambiente é. Dessa forma, é um dos elementos essenciais para a criação de um agente racional. Russell e Norvig (2004, p. 39) apontam que uma das primeiras atividades na modelagem de um agente é a definição do ambiente de tarefa. Este é composto de quatro elementos: desempenho, ambiente, atuadores e sensores. No inglês, assume o acrônimo PEAS (Performance, Environment, Actuators and Sensors). 9 No Quadro 2 estão alguns exemplos de caracterização do PEAS para diferentes situações: sistema de diagnóstico médico, jogo de xadrez, tutor inteligente e robô de solda. Quadro 2 – Exemplos de agentes racionais e as descrições do PEAS Tipo de Agente Medida de desempenho Ambiente Atuadores Sensores Sistema de diagnóstico médico Paciente saudável, minimizar custos. Quarto de hospital, paciente, equipe. Mostrar perguntas, testes, diagnósticos, tratamentos. Entrada por teclado, voz, descoberta de informação. Sistema de xadrez Calcular a jogada ótima, ganhar a partida. Tabuleiro 8x8, peças de xadrez, posições iniciais, jogadas possíveis. Braço articulado para mover as peças. Câmera para ver as posições das peças. Tutor inteligente Maximizar as notas dos alunos nos testes. Área de interação do software, chat de mensagens. Mostrar conteúdos, exibir exercícios. Entrada pelo teclado Robô de solda Efetuar os pontos de solda no tempo previsto, qualidade da solda. Linha de montagem. Braço articulado para movimentos no espaço, ponteira de solda. Identificação de novo objeto a ser soldado, quantidade de solda, temperatura de solda. Fonte: Adaptado de Russell; Norvig, 2004, p. 40. Dentro do PEAS, os ambientes ainda podem receber diferentes classificações conforme uma série de critérios, de acordo com Russel e Norvig (2004, p. 41-42): • Completamente observável x parcialmente observável: se os sensores acessarem de forma completa os estados do ambiente em cada instante, o espaço que o rodeia será completamente observável. Mas se houver ruído sensoriamento impreciso ou lacunas, será parcialmente observável. Por exemplo, um jogo de xadrez é completamente observável. Já um sistema de busca na internet é parcialmente observável. • Determinístico x estocástico: caso o estado seguinte seja completamente determinado mediante o estado atual — e pela ação executada pelo agente —, o ambiente será determinístico ou estocástico. Caso o sistema seja determinístico, porém apresentando elementos estocásticos, o ambiente poderá ser estratégico. Por exemplo, o robô 10 aspirador de pó é determinístico; um carro com direção autônoma é estocástico. • Episódico x sequencial: em um ambiente episódico o agente experimenta os eventos de forma atômica, com os episódios começando a partir da percepção do agente, bem como pela execução de uma única ação. No caso de um ambiente sequencial, existe a dependência dos estados atuais com os estados anteriores. Por exemplo, um jogo de xadrez é sequencial. Um robô aspirador de movimento aleatório é episódico. • Estático x dinâmico: um ambiente que se altera enquanto o agente executa a tarefa é dinâmico. Caso o ambiente não se altere, será estático. No entanto, pode haver situações em que os ambientes sejam semidinâmicos. Por exemplo, um jogo de xadrez é estático. Já um carro com direção autônoma é dinâmico (ou semidinâmico, considerando as rotas predefinidas). • Discreto x contínuo: Depende da forma com que o tempo decorre, do estado do ambiente, das percepções e das ações. Uma sequência de estados discretos muda aos “saltos” de um estado para outro. Uma sequência de estados contínua, por sua vez, muda de maneira suave. Por exemplo, um jogo de xadrez é considerado discreto, ao passo que um sistema de refrigeração de temperatura pode ser contínuo. • Individual x multiagente: refere-se à quantidade de agentes utilizados para a resolução de um problema. Caso exista somente um agente, significa que é individual. Caso contrário, o sistema será considerado multiagente. Por exemplo, um jogo de xadrez pode ser um agente individual. No caso de um agente jogar contra o outro, é multiagente. Já um sistema de busca na internet pode ser multiagente por utilizar vários bots que encontram e organizam a informação. No Quadro 3 estão alguns exemplos a respeito da caracterização da natureza do ambiente. 11 Quadro 3 – Alguns exemplos de caracterização do ambiente de tarefa Fonte: Russell; Norvig, 2004, p. 44. TEMA 3 – TIPOS DE AGENTES O estudo do tipo de agente, em vez da caracterização do ambiente, preocupa-se com aspectos internos deste. Como foi visto, deve-se agora lidar com o programa do agente, de acordo com a finalidade que ele terá. O agente deverá ter uma arquitetura que permita implementar o programa do agente, por meio de um conjunto de sensores e atuadores, conectados a um processador que irá executar o programa do agente, consoante Russel e Norvig (2004, p. 44). Portanto, o mesmo conceito pode ser aplicado a robôs. Conforme a sua arquitetura, um agente poderá ser classificado em cinco tipos, de acordo com Russel e Norvig (2004, p. 48): • Agentes reativos simples; • Agentes reativos baseados em modelo; • Agentes baseados em objetivos; • Agentes baseados na utilidade; 12 • Agentes com aprendizagem. 3.1 Agentes reativos simples É o tipo mais simples de agente. O programa do agente sempre irá mapear as ações com base na percepção atual, descartando a sequência de percepções anteriores. A implementação de programas para esse tipo de agente pode serfeita utilizando-se regras de produção ou regras de lógica se-então. Elas têm uma característica determinística e, por meio de teste de condições, serão executadas ações, conforme o conjunto de regras que estão implementadas. SE <condição> ENTÃO <ação> O robô aspirador do exemplo mencionado anteriormente poderá conter quatro regras que irão gerar o comportamento desejado para o robô, segundo Medeiros (2018, p. 44). 1. SE estado = Sujo ENTÃO Aspirar 2. SE estado = Limpo ENTÃO faça movimento = SIM SENÃO faça movimento = NÃO 3. SE faça movimento = SIM E quadrado na frente = SIM ENTÃO direção do movimento = FRENTE 4. SE faça movimento = SIM E quadrado na frente = NÃO ENTÃO direção do movimento = DIREITA Nesse sistema de quatro regras, a primeira se encarrega da limpeza do quadrado por meio da variável estado. Caso o quadrado esteja limpo, a variável faça movimento recebe o valor SIM, o que é feito pela segunda regra. Com isso, as regras 3 e 4 ficam habilitadas para operar. Assim, é testada a variável quadrado na frente (ou seja, armazena o valor do sensor que identifica o quadrado). Se houver um quadrado à frente, a variável de ação direção do movimento recebe o valor FRENTE. Caso não houver (ou seja, o quadrado estará à direita), a variável direção de movimento recebe o valor DIREITA. 13 De maneira geral, a arquitetura de um agente reativo simples é mostrada na Figura 5. Boa parte dos robôs mais simples que podem ser construídos em robótica educacional poderá contar com essa arquitetura, o que facilitará a implementação por parte dos alunos. Por meio das percepções do ambiente, o agente se pergunta: “qual é a aparência do mundo?”. Tal aparência irá consistir em um conjunto de condições que irão “disparar” as regras que conseguirem atender a elas, e assim a ação a ser executada será selecionada e levada aos atuadores. Figura 5 – Arquitetura para um agente reativo simples Fonte: Adaptado de Russell; Norvig, 2004, p. 47. 3.2 Agentes reativos baseados em modelo No caso de um ambiente ser caracterizado como observável parcialmente, é necessário que o robô mantenha estados internos que dependam da sequência de percepções para atuar de maneira mais efetiva. Por exemplo, se o robô aspirador tiver uma memória em que possa armazenar um histórico de percepções, ele terá informação em quais blocos apareceram mais sujeira do que outros, podendo começar os movimentos por tais blocos. Um agente que tem o conhecimento de “como o mundo funciona” possui um modelo de mundo. Um agente que tenha um modelo de mundo é denominado agente reativo baseado em modelo (Figura 6). 14 Figura 6 – Arquitetura para um agente reativo baseado em modelo Fonte: Adaptado de Russell; Norvig, 2004, p. 49. 3.3 Agentes baseados em objetivos Apenas o conhecimento do estado atual do ambiente pode não ser o suficiente para que um robô decida o que fazer. Além de saber a descrição do estado atual e da sequência de percepções obtidas até o momento, pode ser necessária a definição de algum objetivo relacionado a situações ou a cenários desejados, consoante Russel e Norvig (2004, p. 49). A tomada de decisão baseada em objetivos é diferente do uso de regras de produção, pois a primeira está envolvida em uma situação a ser alcançada, uma situação de futuro. O agente então se pergunta: “o que vai acontecer se eu fizer essa ação ou aquela outra?” ou “isso irá me fazer feliz?”. Tais informações nos agentes reativos não são representadas de maneira explícita, graças ao mapeamento direto das percepções para as ações (Figura 7). Para Russel e Norvig (2004, p. 49), ainda que o agente baseado em objetivos possa parecer menos eficiente, ele tende a ser mais flexível. Voltando ao exemplo do robô aspirador, pode ser colocado em seu projeto um objetivo que leve em conta o custo de operação ou de consumo de energia. Com a execução contínua, o robô pode antecipar a frequência com que as limpezas são feitas, e nos intervalos ele pode entrar em modo de economia de energia para alcançar esse objetivo, segundo Medeiros (2018, p. 46). 15 Figura 7 – Esquema de um agente baseado em objetivo Fonte: Adaptado de Russell; Norvig, 2004, p. 50. 3.4 Agentes baseados em utilidade Como saber se um agente está sendo útil por meio de uma medida? Até agora, os agentes anteriores não estavam preocupados com esse aspecto. Pode- se especificar uma espécie de medida de utilidade: conforme a avaliação de uma função de utilidade, o agente ou o robô poderá tomar decisões mais adequadas (Figura 8). Pode ser que o robô tenha objetivos contraditórios e apenas alguns deles podem ser alcançados em dado momento. Ou pode haver vários objetivos, mas nenhum deles pode ser alcançado com alto grau de certeza, conforme lecionam Russel e Norvig (2004, p. 50). Por exemplo, um robô seguidor de linha pode conter um sensor que permite identificar se existe um bloqueio intermitente na trilha para a execução do movimento. Portanto, além da avaliação das regras conforme o sensoriamento da trilha, deverá também monitorar a todo momento se há algum objeto bloqueando a trilha. No caso de haver mais de uma trilha a ser percorrida, o robô poderá executar aquela em que uma função de avaliação minimize o percurso ou em que maximize o alcance do objetivo. Figura 8 – Esquema de um agente baseado em utilidade 16 Fonte: Adaptado de Russell; Norvig, 2004, p. 51. 3.5 Agentes com Aprendizagem O agente com aprendizagem permite ir além do conhecimento prévio na construção do agente, dotando-o de mecanismos para que possa aprender na experiência com o ambiente, tornando-se mais competente ao longo da sua operação (Figura 9). Conforme ensinamentos de Russel e Norvig (2004, p. 51-52), um agente de aprendizado pode ser dividido em quatro elementos: • Elemento de desempenho: é a parte considerada até agora sobre agentes, que recebem as percepções e decide qual ação executar. • Crítico: elemento do agente que informa como ele está se comportando em relação ao seu padrão constante de desempenho. • Elemento de aprendizado: utiliza a informação proveniente do crítico para modificar o elemento de desempenho em direção a um melhor funcionamento no futuro. • Gerador de problemas: elemento responsável para sugestão de novas regras e ações que podem levar a novas experiências. 17 Figura 9 – Esquema de um agente com aprendizagem Fonte: Adaptado de Russell; Norvig, 2004, p. 52. TEMA 4 – AGENTE DE RESOLUÇÃO DE PROBLEMAS POR BUSCA Os agentes de resolução de problemas precisam tomar decisões sobre os próximos passos, de modo a encontrar as sequências de ações que resultam em estados que são desejáveis, segundo Russel e Norvig (2004, p. 62). Por exemplo, um problema recorrente é o de roteirização. Esse problema é característico de várias áreas tais como a área de logística e turismo. Quando se tem um conjunto de locais que precisam ser visitados considerando a existência de rotas definidas para esses locais, o objetivo é como percorrer todos eles considerando um custo mínimo ótimo. Esse problema foi retratado na Inteligência Artificial como o problema do viajante. Aplicando o problema a um mapa rodoviário, ilustrado na Figura 10, o objetivo é sair da cidade de Foz do Iguaçu e chegar à cidade de Curitiba. Dessa forma, o agente deve escolher uma rota ou um curso de ação que permita chegar ao destino, e aqueles que não permitem chegar em um tempo considerado aceitável possam ser rejeitados. Assim, a formulação de objetivos se baseia na situação atual do agente e na medida de desempenho do mesmo, configurando o primeiro passo para a resolução do problema. 18 Figura 10 – Mapa rodoviário utilizado no texto Fonte: Medeiros, 2018, p. 54. Se o agente possui um mapa, ele pode obter informações sobre os estados em que sepossa entrar e quais as ações ele pode perfazer. O agente considera então as possíveis rotas a partir das cidades consideradas. Dessa forma, um agente que possua uma série de opções imediatas de valor desconhecido pode decidir o que fazer avaliando primeiro as diferentes sequências de ações possíveis que irão levar a estados de valor conhecido, tendo condições de escolher a melhor sequência. O processo de procurar esta sequência é denominado de busca (Russel; Norvig, 2004, p. 62). Um algoritmo de busca recebe em sua entrada um problema e apresenta na sua saída uma solução, descrita sob a forma de uma sequência de ações definidas. Por meio da obtenção da solução, as ações recomendadas por ela são colocadas em execução. O algoritmo para a resolução de problemas simples pode ser então descrito nos seguintes passos, segundo os dizeres de Russel e Norvig (2004, p. 63): • Formulação do objetivo e do problema; • Busca de uma sequência de ações que resolvem o problema; • Execução das ações uma por uma. Quando a sequência se completa, ele formula outro objetivo e então recomeça. É importante observar que na execução da sequência, o agente não leva em conta as percepções, na hipótese de que a solução que foi encontrada na busca sempre funcione. 19 Um problema pode ser definido de maneira formal em quatro componentes: • Um estado inicial: o estado no qual o agente começa. Por exemplo, se o agente do exemplo da viagem estiver em Foz do Iguaçu, o estado inicial pode ser descrito como origem (Foz do Iguaçu). • Uma função sucessor: dado um estado particular x, Sucessor(x) retorna um conjunto de pares ordenados <Ação Sucessor>, em que cada ação é uma das ações válidas no estado x, e cada sucessor pode ser alcançado partindo-se de x. Como exemplo, no caso do estado inicial ser Origem (Foz do Iguaçu), a função sucessor para o problema retornaria {<Destino(Cascavel), Origem(Foz do Iguaçu)>, <Destino(Pato Branco), Origem(Foz do Iguaçu)>} O estado inicial e a função denominada Sucessor definem o espaço de estados do problema, ou seja, o conjunto de todos os estados acessíveis tendo como partida o estado inicial. O espaço de estados representa um gráfico, em que os nós são os estados, e os arcos entre os nós são as ações. • O teste de objetivo: determina se um estado é um estado objetivo. O objetivo do exemplo é o estado final Origem(Curitiba). Em alguns casos, um objetivo pode ser definido como uma propriedade abstrata e não por um estado ou por um conjunto de estados específicos. Por exemplo, em um jogo de xadrez, o objetivo é alcançar o xeque-mate. • A função de custo: também chamada de função de custo de caminho, que atribui um custo numérico a cada caminho. O agente irá escolher, portanto, uma função de custo que irá significar a sua própria medida de desempenho. No caso do agente do exemplo, a função de custo seria a distância em quilômetros (Figura 11). Há, então, um custo de passo para ir de um estado a outro. Definidos os quatro elementos da formulação do problema, uma solução para um problema é um caminho que leva o agente desde o estado inicial até o estado objetivo. Considerando a qualidade da solução, a qual é medida pela função Custo, uma solução ótima é aquela que apresenta o menor custo entre todas as soluções possíveis, de acordo com Russel e Norvig (2004, p. 64). Figura 11 – Mapa com as distâncias em quilômetros do Estado do Paraná. 20 Fonte: Medeiros (2018, p.56). Os problemas a serem estudados na Inteligência Artificial podem ser divididos em miniproblemas (para ilustração de métodos de resolução) ou problemas do mundo real (geralmente não tendem a ter uma descrição concisa e exata). No Quadro 4, encontra-se a formulação do problema para o robô aspirador. Quadro 4 – Formulação do miniproblema do robô aspirador Robô Aspirador Formulação Descrição Estados O agente se posiciona em uma de 9 posições diferentes que podem conter sujeira ou não. A quantidade de espaços possíveis (contando que todos contenham sujeira) é de 9 x 2 estados mais 2 do estado inicial resultando em 20 estados. Estado inicial Robô na posição (2,2) Função sucessor Gera os estados válidos resultantes da tentativa de ação (Para-frente, Para-direita, Aspirar). Ver na Figura 3. Teste de objetivo Verificar se todos os quadrados estão limpos Custo de caminho Cada passo custa 1 unidade; o custo do caminho é o número de passos. Para o miniproblema do robô seguidor de linha, o Quadro 5 mostra uma possível formulação. Nesse caso, é adotado como premissa que existe um início na trilha (que pode ser uma marcação na trilha de outra cor) e que o robô adote um movimento genérico para poder ficar sobre a trilha, caso esteja fora dela (por exemplo, adote um caminho aleatório até que esteja posicionado sobre a trilha). Quadro 5 – Formulação do miniproblema do robô seguidor de linha. 21 Robô Seguidor de Linha Formulação Descrição Estados O robô se posiciona em qualquer lugar no tablado onde se encontra a trilha a ser seguida. Ele pode estar em uma posição sobre a trilha ou fora dela. Estado inicial Robô em qualquer posição sobre o tablado onde se encontra a trilha. Função sucessor Aciona o motor esquerdo caso detecte que está à esquerda da trilha; aciona o motor direito caso detecte que está à direita da trilha. Teste de objetivo Verifica se alcançou o marco de início da trilha Custo de caminho Cada acionamento de um motor custa 1 unidade; o custo do caminho é o número de acionamentos do motor, relativo ao número de vezes em que esteve fora da trilha. Segundo Russell e Norvig (2004, p. 73), no caso de um agente de resolução de problemas por busca, a avaliação de desempenho de um algoritmo pode ser feita a partir de quatro aspectos: • Completeza: o algoritmo de busca oferece a garantia de encontrar uma solução quanto ela existir? • Otimização: a estratégia encontra a solução ótima? • Complexidade de tempo: quanto tempo é dispendido para encontrar uma solução? • Complexidade de espaço: quanto de memória é necessária para a execução da busca? TEMA 5 – ESTRATÉGIAS DE BUSCA A partir de um problema de busca formulado adequadamente, do qual não existe um algoritmo determinístico para a resolução, é necessário que o agente adote alguma estratégia para poder alcançar uma possível resolução. As estratégias de busca se dividem em duas classes: estratégias sem informação ou estratégias cegas e estratégias com informação ou busca heurística. As estratégias se diferenciam conforme a ordem de expansão dos nós da árvore de busca. As estratégias sem informação dividem-se em: • Busca em extensão ou amplitude; • Busca de custo uniforme; • Busca em profundidade; 22 • Busca em profundidade limitada; • Busca de aprofundamento iterativo; • Busca bidirecional. Apesar de haver vários tipos de estratégias, podemos destacar dois procedimentos principais: a busca em extensão (ou em amplitude) e a busca em profundidade. A busca em extensão (ou em amplitude) é uma estratégia simples em que o nó raiz é expandido inicialmente; posteriormente, os sucessores do nó raiz; depois, os sucessores dos sucessores do nó raiz e assim por diante, de acordo com as lições de Russell e Norvig (2004, p. 74). Figura 12 – Exemplo da busca em extensão de uma árvore binária simples. O marcador indica qual o é nó que será expandido A estratégia de busca em profundidade expande sempre o nó mais profundo na borda atual da árvore de busca. Na Figura 8 podemos ver como esse algoritmo se desenvolve. A busca prossegue até o nível mais profundo da árvore, em que não existem mais nós sucessores. Após visitar os nós mais profundos, a busca retorna ao nível mais raso que ainda possua nós não explorados, asseveram Russell e Norvig (2004, p. 76). Essas duas estratégias básicas formam a base para as outras estratégias de buscasem informação. 23 Figura 13 – Ilustração da busca em profundidade em uma árvore binária. Os nós que foram expandidos e não possuem descendentes na borda podem ser removidos da memória As estratégias de busca sem informação tendem a ser ineficientes na maioria dos casos. As que utilizam algum conhecimento específico do sistema podem ser uma opção mais eficiente. As estratégias de busca com informação podem contar com uma função de avaliação do problema (por exemplo, a distância entre cada cidade, no exemplo do mapa rodoviário) e uma função heurística (a distância em linha reta de cada cidade até o objetivo, isto é, Curitiba), segundo Medeiros (2018, p. 73). Dois tipos de estratégias de busca com informação são: • Busca gulosa; 24 • Algoritmo A* (A — estrela). A busca gulosa é uma estratégia que leva em consideração apenas a função heurística. Nesse caso, o passo seguinte será aquele em que for apresentado o valor da função heurística de menor custo. No caso do mapa rodoviário, será levada em consideração apenas a distância em linha reta de cada cidade, conforme expõe Medeiros (2018, p. 74). A busca A* combina a função de avaliação e a função heurística. No caso de a função heurística atender a certas condições, essa estratégia é considerada completa e ótima. Completa porque sempre encontrará uma solução, e ótima pois a solução que será encontrada é a melhor de todas, leciona Medeiros (2018, p. 75). A busca A* é bastante utilizada em jogos para que um avatar percorra uma distância até encontrar um jogador oponente. Em Robótica, a busca A* pode ser utilizada para trajetórias de robôs e a resolução de puzzles, tais como o cubo de Rubik. 25 REFERÊNCIAS MATARIC, J. M. Introdução à robótica. São Paulo: UNESP/Blucher, 2014. MEDEIROS, L. F. de. Inteligência artificial aplicada: uma abordagem introdutória. Curitiba: InterSaberes, 2018. PAPERT, S. A máquina das crianças: repensando a escola na era da informática. Porto Alegre: ed. Artes Médicas, 1994. RESNICK, M. et al. Scratch: programming for all. Communications of the ACM, v. 52, n. 11, p. 60–67, Nov. 2009. RUSSEL, S.; NORVIG, P. Inteligência artificial. Tradução da 2. ed. Rio de Janeiro: Campus, 2004. SANTOS, I. Contribuição da robótica como ferramenta pedagógica no ensino da matemática no terceiro ano do ensino fundamental. 161 f. Dissertação (Mestrado Profissional em Educação e Novas Tecnologias) – Centro Universitário Internacional UNINTER, Curitiba, 2017. ZILLI, S. do R. A robótica educacional no ensino fundamental: perspectivas e práticas. 89 f. Dissertação (Mestrado em Engenharia de Produção) – Universidade Federal de Santa Catarina, Florianópolis, 2004.
Compartilhar