Prévia do material em texto
<p>PROFESSOR</p><p>Me. Maurilio Martins Campano Junior</p><p>Inteligência</p><p>Artificial</p><p>ACESSE AQUI O SEU</p><p>LIVRO NA VERSÃO</p><p>DIGITAL!</p><p>EXPEDIENTE</p><p>Coordenador(a) de Conteúdo</p><p>Flavia Lumi Matuzawa</p><p>Projeto Gráfico e Capa</p><p>André Morais, Arthur Cantareli e</p><p>Matheus Silva</p><p>Editoração</p><p>Piera Consalter Paoliello e Adrian</p><p>Marcareli dos Santos</p><p>Design Educacional</p><p>Nome do Designer Educacional</p><p>Revisão Textual</p><p>Gabriele Dassi</p><p>Ilustração</p><p>Welington Vainer</p><p>Fotos</p><p>Shutterstock</p><p>DIREÇÃO UNICESUMAR</p><p>NEAD - NÚCLEO DE EDUCAÇÃO A DISTÂNCIA</p><p>Diretoria Executiva Chrystiano Mincoff, James Prestes, Tiago Stachon Diretoria de Graduação e Pós-graduação Kátia</p><p>Coelho Diretoria de Cursos Híbridos Fabricio Ricardo Lazilha Diretoria de Permanência Leonardo Spaine Diretoria de</p><p>Design Educacional Paula R. dos Santos Ferreira Head de Graduação Marcia de Souza Head de Metodologias Ativas</p><p>Thuinie M.Vilela Daros Head de Recursos Digitais e Multimídia Fernanda S. de Oliveira Mello Gerência de</p><p>Planejamento Jislaine C. da Silva Gerência de Design Educacional Guilherme G. Leal Clauman Gerência de Tecnologia</p><p>Educacional Marcio A. Wecker Gerência de Produção Digital e Recursos Educacionais Digitais Diogo R. Garcia</p><p>Supervisora de Produção Digital Daniele Correia Supervisora de Design Educacional e Curadoria Indiara Beltrame</p><p>Reitor Wilson de Matos Silva Vice-Reitor Wilson de Matos Silva Filho Pró-Reitor de Administração Wilson de</p><p>Matos Silva Filho Pró-Reitor Executivo de EAD William Victor Kendrick de Matos Silva Pró-Reitor de Ensino</p><p>de EAD Janes Fidélis Tomelin Presidente da Mantenedora Cláudio Ferdinandi</p><p>NEAD - Núcleo de Educação a Distância</p><p>Av. Guedner, 1610, Bloco 4 Jd. Aclimação - Cep 87050-900 | Maringá - Paraná</p><p>www.unicesumar.edu.br | 0800 600 6360</p><p>Impresso por:</p><p>Bibliotecário: João Vivaldo de Souza CRB- 9-1679</p><p>C397 CENTRO UNIVERSITÁRIO DE MARINGÁ.</p><p>Núcleo de Educação a Distância. JUNIOR, Maurilio Martins</p><p>Campano .</p><p>Inteligência Artificial. Maurilio Martins Campano Junior.</p><p>Maringá - PR: Unicesumar, 2022. Reimpresso em 2023.</p><p>184 p.</p><p>ISBN 978-85-459-2156-1</p><p>“Graduação - EaD”.</p><p>1. Inteligência 2. Arti icial 3. Sistema. 4. EaD. I. Título.</p><p>CDD - 22 ed. 005</p><p>FICHA CATALOGRÁFICA</p><p>02511275</p><p>Maurilio Martins Campano Junior</p><p>Olá, seja bem-vindo(a) à disciplina de Inteligência Artificial.</p><p>Sou o professor Maurilio Martins Campano Júnior, bacha-</p><p>rel em Informática pela Universidade Estadual de Marin-</p><p>gá (UEM), especialista em Docência no Ensino Superior:</p><p>Tecnologias Educacionais e Inovação pela UniCesumar –</p><p>Centro Universitário Cesumar, Mestre em Ciência da Com-</p><p>putação pela Universidade Estadual de Londrina (UEL) e</p><p>atualmente (2022) Doutorando em Ciência da Computa-</p><p>ção pela Universidade Estadual de Maringá (UEM).</p><p>Atuo com na docência há mais de 10 anos, com foco</p><p>em disciplinas de Teoria da Computação e Linguagens</p><p>Formais e Autômatos, Sistemas Operacionais, Circuitos</p><p>Digitais e Arquitetura e Organização de Computadores e</p><p>Inteligência Artificial.</p><p>Além da computação, me considero viciado em músi-</p><p>ca, principalmente blues, jazz e rock clássico, escutando</p><p>bastante bandas como Led Zeppelin, Pink Floyd e BB King,</p><p>além de ler biografias e histórias sobre as bandas. Filmes</p><p>e séries também estão entre os hobbies, com preferências</p><p>para alguns clássicos, como Auto da Compadecida e For-</p><p>rest Gump. É isso, grande parte do meu tempo se resume</p><p>em estudos, seja sobre música, filmes ou computação.</p><p>Embarque agora em mais um capítulo deste estudo</p><p>sobre Inteligência Artificial!</p><p>Currículo Lattes:</p><p>http://lattes.cnpq.br/0660018668071313</p><p>http://lattes.cnpq.br/0660018668071313</p><p>https://apigame.unicesumar.edu.br/qrcode/11018</p><p>Quando nos deparamos com um problema, conseguimos pensar de modo inteligente?</p><p>Podemos analisar os prós e contras ou analisar as melhores estratégias para lidar com um</p><p>problema, no entanto, se desconsiderarmos as ações por impulso ou reflexo, tomar uma</p><p>decisão de modo inteligente pode, na maioria dos casos, levar a resultados satisfatórios.</p><p>Tomar decisões, analisar cenários e possibilidades e testar hipóteses, todos são</p><p>conceitos muito importantes na área da inteligência artificial no momento em que</p><p>dispositivos inteligentes precisam gerar uma resposta para um usuário.</p><p>Nesse sentido, imagine a situação de carros que dirigem sozinhos, sem a presença</p><p>de humanos. A todo momento, eles precisam tomar uma decisão com base em algo</p><p>percebido no ambiente, e essa decisão deve ser feita de forma rápida e eficiente, pois</p><p>uma escolha errada pode resultar em acidentes.</p><p>A análise feita por uma inteligência artificial deve ser muito precisa, pois, perceber que o</p><p>carro da frente está freando, significa que a velocidade dele está diminuindo e, consequen-</p><p>temente, a sua velocidade deve diminuir também para que não ocorra problemas. O mesmo</p><p>acontece com outras situações quando falamos de outros dispositivos inteligentes, a diferen-</p><p>ça é que, com o carro que dirige sozinho, o problema ao ocorrer um acidente é mais grave.</p><p>Agora, imagine a situação que você está em um emprego fixo, estável e deseja</p><p>comprar uma casa. No entanto, você precisa pegar um empréstimo no banco para</p><p>dar um valor de entrada e financiar o restante do valor. Quais as informações a serem</p><p>levadas em conta nessa análise?</p><p>Analisar a sua renda atual, quanto é o gasto com aluguel atualmente, alimenta-</p><p>ção, transporte e outros gastos, além de considerar possíveis emergências. Também</p><p>é preciso considerar os juros do banco, em quanto tempo serão pagas as prestações.</p><p>Essas podem ser alguns dos fatores a serem analisados para tomar uma decisão, no</p><p>entanto, cada situação pode variar.</p><p>INTELIGÊNCIA ARTIFICIAL</p><p>Assim, uma inteligência artificial pode levar em conta todas essas informações, da</p><p>mesma que nós, quando nós precisamos tomar uma decisão importante também po-</p><p>demos analisar de forma inteligente para escolher o que é melhor para cada situação.</p><p>Entretanto, o que é tomar uma decisão de forma inteligente? Pense em situações</p><p>similares à utilizada para comprar um imóvel, e identifique pontos que podem ser</p><p>levados em conta quando estamos diante de um problema.</p><p>A inteligência artificial visa abordar conceitos que auxiliem na tomada de decisão de</p><p>forma inteligente, e, conhecer a história e a evolução da IA, pode facilitar tais tarefas. Além</p><p>disso, algumas técnicas de representação e tratamentos de problema da inteligência</p><p>artificial fazem com que problemas complexos fiquem mais fáceis de serem resolvidos.</p><p>O uso de agentes inteligentes pode ser exemplificado como analisar uma entrada</p><p>e tomar uma decisão sobre o que fazer. No caso apresentado de comprar uma casa,</p><p>fazendo um empréstimo do banco, podemos considerar exemplos de entradas as</p><p>seguintes informações: salário atual, estabilidade no emprego (SIM ou NÃO), valor do</p><p>juros, prestações já existentes, saldo em conta atual, saldo da reserva de emergência,</p><p>previsão de viagens, além de outras informações pertinentes para a tomada de decisão.</p><p>Alguns problemas, nesse caso, podem ter soluções fáceis de serem encontradas,</p><p>outros problemas, no entanto, podem ter uma complexidade de dados que somente</p><p>um algoritmo consegue achar um padrão nos dados.</p><p>Para esses problemas mais complexos, a aprendizagem de máquina pode tratar</p><p>de sua resolução analisando dados, sejam eles numéricos ou categóricos (do tipo SIM,</p><p>NÃO, ou por categorias, como a cor da casa, VERDE, AMARELA, entre outros), e gerando</p><p>uma resposta prevista de acordo com os dados.</p><p>Além disso, a inteligência artificial ainda está ligada diretamente ao processamento</p><p>de linguagem natural, que é o ato de analisar uma frase escrita, ou um comando de</p><p>voz, e traduzir isso para uma forma que o computador entenda e consiga buscar ou</p><p>realizar o que está sendo pedido.</p><p>Por fim, outro conceito que está diretamente ligado à inteligência artificial é a ro-</p><p>bótica, na qual os mesmos conceitos descritos acima podem ser aplicados a um robô</p><p>com mobilidade que interage com o ser</p><p>para o profissional bem-sucedido.</p><p>UNICESUMAR</p><p>42</p><p>1. A Inteligência Artificial pode ser aplicada em programas por meio da implementação</p><p>de agentes. Sobre os conceitos de agentes e os ambientes nos quais um agente atua,</p><p>analise as afirmações a seguir e assinale a alternativa incorreta.</p><p>a) Um agente utiliza informação de seus sensores para captar informação sobre o</p><p>ambiente, e usa os atuadores para agir sobre o ambiente ao qual está inserido.</p><p>b) As características do ambiente influenciam o modo como um agente se comporta</p><p>no ambiente.</p><p>c) Um agente do tipo reativo simples precisa validar a percepção observada nos</p><p>sensores, e encontrar uma regra condição-ação para coincidir com a percepção,</p><p>para, assim, agir de acordo com a regra.</p><p>d) Um agente baseado em modelo precisa ter um modelo de como se comportar</p><p>no ambiente, ou seja, o modelo define como o agente irá atuar.</p><p>e) Um agente baseado em objetivo tem um objetivo definido, e sabe o resultado</p><p>que suas ações no ambiente resultam, assim, o agente pode conseguir atingir o</p><p>objetivo explorando as suas ações possíveis no ambiente.</p><p>2. Os agentes podem ser caracterizados como agente reativo simples, agente baseado</p><p>em modelo, agente baseado em objetivo, agente baseado em utilidade, e agente</p><p>com aprendizagem. Sobre os agentes com aprendizagem, assinale a alternativa que</p><p>apresenta uma afirmação correta.</p><p>a) A implementação de um agente com aprendizagem não insere nenhuma infor-</p><p>mação sobre o problema, ou seja, tudo que o agente aprende é sozinho.</p><p>b) Um agente com aprendizagem é formado de atuadores, sensores e o programa</p><p>chamado de tomador de decisões, que decide o que deve ser feito.</p><p>c) Todos os agentes com aprendizagem tem um componente que sugere a realiza-</p><p>ção de novas ações, que podem encontrar ações não ótimas a curto prazo, mas</p><p>que levam a ações ótimas a longo prazo.</p><p>d) O componente elemento de aprendizado de um agente com aprendizagem tra-</p><p>balha de forma independente para determinar novas tarefas a serem feitas, e</p><p>conseguir extrair ganho destas tarefas.</p><p>e) Um dos componentes de um agente com aprendizado é o crítico, que é responsá-</p><p>vel por informar o elemento de aprendizado como o agente está se comportando,</p><p>e este elemento é alterado com o passar do tempo por outro componente, o</p><p>gerador de problemas.</p><p>43</p><p>3. Considere um agente com aprendizagem que joga xadrez. Explique a função de cada</p><p>elemento de um agente com aprendizado aplicado ao jogo de xadrez.</p><p>4. O agente reativo simples pode funcionar bem em diversos componentes, no entanto,</p><p>este agente é considerado limitado em relação ao que pode fazer. Explique o motivo</p><p>de o agente reativo simples ser considerado limitado</p><p>2Algoritmos</p><p>de Buscas</p><p>Me. Maurilio Martins Campano Junior</p><p>Esta unidade abordará os conceitos relacionados à busca em grafos</p><p>em problemas relacionados à Inteligência artificial, tais como a Bus-</p><p>ca em Largura, a Busca em Profundidade e Busca Pelo Menor Custo</p><p>Primeiro. Estes conceitos são fundamentais para entender o que um</p><p>agente faz, e como ele realiza ações.</p><p>UNIDADE 2</p><p>46</p><p>Imagine a situação que você está em uma cidade qualquer, e quer ir para outra</p><p>cidade que você não sabe onde fica. Fácil, é só usar o GPS para se localizar, ou</p><p>usar um mapa para conhecer as cidades vizinhas e decidir em qual direção seguir.</p><p>Mas e quando não temos nenhuma informação complementar sobre a nossa</p><p>localização atual, como podemos explorar o ambiente no qual estamos inseridos?</p><p>Essa situação de estar em um local desconhecido acontece muitas vezes com</p><p>dispositivos de inteligência artificial (IA). Por exemplo, um robô que vai explorar</p><p>o solo de Marte e precisa extrair informações sobre umidade e condições do solo,</p><p>não conhece o local que deve ser explorado. Assim, dispositivos dotados de IA</p><p>precisam ter meios de explorar o ambiente ao qual estão inseridos.</p><p>Imagine a situação de você, aluno(a), estar em uma cidade desconhecida, não</p><p>ter ferramentas disponíveis para se localizar, a cidade está deserta, ou seja, não é</p><p>possível pedir ajuda para outras pessoas. Como você sairia da cidade?</p><p>Do mesmo modo se pensarmos que estamos em um labirinto e precisamos</p><p>achar a saída. O labirinto não contém informações que possam auxiliar na to-</p><p>mada de decisão, então, devemos explorar o ambiente visando encontrar a saída.</p><p>A ideia que vamos trabalhar nesta Unidade é “pensar” como um disposi-</p><p>tivo dotado de inteligência artificial, um robô, por exemplo, que está em um</p><p>labirinto e deseja escapar, ou está em uma cidade X qualquer e deseja ir para</p><p>outra cidade Y, mas não dispõe de recursos para auxiliar, pode agir. Será que</p><p>é possível elaborar uma estratégia para sair de um labirinto, ou para descobrir</p><p>os caminhos entre duas cidades sem o auxílio de outros dispositivos?</p><p>Uma ideia é explorar o ambiente, visando “construir um mapa” do local des-</p><p>conhecido, para, após conhecer melhor o local, tomar a decisão de ir por um</p><p>caminho ou outro. Desse modo, podemos visualizar quais são as cidades vizinhas</p><p>da cidade onde se está no momento, ver a distância até cada uma delas, e tomar</p><p>uma decisão com base neste conhecimento.</p><p>Utilize, aqui, seu diário de bordo para realizar anotações sobre as técnicas</p><p>da inteligência artificial que você conhece. No final da Unidade, retorne a essas</p><p>anotações, revise-as e adicione os conhecimentos adquiridos.</p><p>47</p><p>Explorar um ambiente desconhecido pode ser uma tarefa complexa. Para rea-</p><p>lizar essa tarefa, a inteligência artificial utiliza uma estrutura de dados chamada</p><p>grafo, na qual existem nós e arestas. Os nós podem representar um estado que</p><p>desejamos atingir, e/ou um local de partida, enquanto que as arestas representam</p><p>os caminhos entre os nós (GOODRICH, TAMASSIA, 2013).</p><p>Uma representação de um grafo pode ser visto na Figura 1, na qual, tem-se 6</p><p>nós (A, B, C, D, E, F) e 9 arestas, sendo que as arestas não contêm nenhum peso</p><p>(valor) associado a elas, e também não têm direção (uma aresta de A para B é</p><p>igual uma aresta de B para A).</p><p>DIÁRIO DE BORDO</p><p>A</p><p>B D</p><p>C E</p><p>F</p><p>Figura 1 – Exemplo de grafo não direcionado / Fonte: o autor (2022)</p><p>Descrição da Imagem: Apresenta seis círculos, sendo que cada um deles apresenta dentro uma letra (A,</p><p>B, C, D, E, F), estes círculos estão ligados por arestas (A para B, A para C, B para C, B para D, C para D, C</p><p>para E, D para E, D para F, E para F).</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>48</p><p>O processo de busca pode ser executado em um grafo conforme se conhece o nó</p><p>de origem e o nó de destino. Por exemplo, suponha que o nó origem é o nó A, e o</p><p>destino o nó F. Assim precisamos encontrar um caminho (sequência de arestas)</p><p>que conecte os nós A e F (RUSSELL; NORVIG, 2013).</p><p>O autor ainda descreve que este processo de busca pode envolver a análise de</p><p>uma quantidade muito grande de arestas e nós, de acordo com a complexidade</p><p>do grafo. Grafos simples, como o descrito na Figura 1, consomem pouca memória</p><p>e são executados rapidamente por algoritmos simples.</p><p>Além disso, Russel e Norvig (2013) destacam que, quando temos um grafo com</p><p>peso nas arestas, é necessário levar em conta o valor das arestas ao realizar a busca.</p><p>Esta busca pode estar sendo utilizada para encontrar um caminho qualquer entre</p><p>dois nós, ou pode ser necessário encontrar o menor caminho entre dois nós.</p><p>Uma representação de um grafo com peso nas arestas pode ser vista na Figura</p><p>2, na qual, os seis nós (A, B, C, D, E, F) são conectados por arestas, e estas arestas</p><p>têm pesos associadas. A representação pode ser comparada à de um mapa - as</p><p>cidades são os nós, as estradas as arestas, e a distância entre uma cidade e outra</p><p>são os pesos das arestas (RUSSELL; NORVIG, 2013).</p><p>A</p><p>B D</p><p>C E</p><p>F</p><p>7</p><p>7</p><p>4</p><p>4 3</p><p>5</p><p>3</p><p>2</p><p>2</p><p>Figura 2 – Exemplo de grafo não direcionado com peso nas arestas / Fonte: o autor (2022)</p><p>Descrição da Imagem: Apresenta seis círculos, sendo que cada um deles apresenta dentro uma letra (A,</p><p>B, C, D, E, F), estes círculos estão ligados por arestas com números indicando o custo da aresta (A para B</p><p>com custo 7, A para C com custo 2, B</p><p>para C com custo 4, B para D com custo 4, C para D com custo 3, C</p><p>para E com custo 5, D para E com custo 3, D para F com custo 2, E para F com custo 7).</p><p>O processo de busca em um espaço pode ser feito em um grafo no qual as arestas</p><p>não têm peso, como na Figura 1, ou no qual as arestas têm peso, Figura 2. O modo</p><p>como o algoritmo irá tratar de explorar o espaço é o mesmo, sendo necessário,</p><p>no caso de um grafo com pesos, considerar o custo de cada aresta.</p><p>49</p><p>Outros tipos de problema, além de achar um caminho entre duas cidades, podem</p><p>ser representados de forma que o processo de busca possa ser utilizado para sair</p><p>de um nó origem até um nó destino (RUSSELL; NORVIG, 2013).</p><p>Em jogos como xadrez, damas e alguns jogos de tabuleiros, podemos repre-</p><p>sentá-los como um processo de busca, no qual se deseja encontrar as jogadas</p><p>que cheguem em um estado final com vitória. Desse modo, teríamos um estado</p><p>inicial (nó origem) e vários nós objetivos, sendo que cada nó objetivo representa</p><p>um cenário possível de vitória (LORENA; GAMA; FACELI, 2000).</p><p>A diferença entre analisar o processo de busca em um grafo simples, como</p><p>o da Figura 1, e as possibilidades de um jogo de xadrez, é que no jogo as</p><p>possibilidades são muitas, o que torna o grafo muito grande e o processo de</p><p>busca custoso de se realizar. Isso afeta o modo como os algoritmos devem</p><p>funcionar, uma vez que, se testamos um algoritmo de busca com um grafo</p><p>pequeno, podemos consumir muito memória e tempo em grafos maiores,</p><p>como o do xadrez (RUSSELL; NORVIG, 2013).</p><p>Analisaremos o processo de busca considerando os grafos similares ao das Figu-</p><p>ras 1 e 2, na qual as arestas não são direcionadas, e os custos das arestas não é negativo.</p><p>Para o processo de busca ser realizado, é necessário definir o que é uma so-</p><p>lução em potencial para o problema, um método que gere potenciais soluções</p><p>para o problema, e uma forma de verificar se uma dessas possíveis soluções é de</p><p>fato uma solução (LUGER, 2013).</p><p>Uma forma genérica de tratar o processo de busca em um grafo precisa ter:</p><p>o grafo com os nós e arestas, um conjunto de nós iniciais e um conjunto de nós</p><p>objetivos, e uma forma de explorar os caminhos de forma incremental a partir</p><p>dos nós iniciais (RUSSELL; NORVIG, 2013).</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>50</p><p>Dessa forma, mantém-se uma fronteira entre os nós explorados e os nós não explo-</p><p>rados, de modo que, à medida que a fronteira avança, a busca se expande em relação</p><p>aos nós não explorados, visando encontrar o objetivo (DE MEDEIROS, 2018).</p><p>A maneira como cada processo de busca trata a fronteira, é a forma que diferen-</p><p>cia um processo de busca de outro, explorando os nós de jeitos diferentes, e gerando</p><p>resultados diferentes para o processo de busca (RUSSELL, NORVIG, 2013).</p><p>Esse modo de tratar a fronteira pode ser visto de duas formas: encadeamento</p><p>para frente e encadeamento para trás. O encadeamento para frente visa encon-</p><p>trar um caminho a partir do estado inicial para os estados objetivos, enquanto</p><p>que o encadeamento para trás parte do estado objetivo e busca encontrar um</p><p>caminho até o estado inicial (LUGER, 2013).</p><p>Considerando o problema de sair de uma cidade X e ir até uma cidade Y, o</p><p>encadeamento para frente calcula o caminho de X para Y, enquanto o encadea-</p><p>mento para trás calcula o caminho de Y para X (RUSSELL; NORVIG, 2013). As</p><p>abordagens de encadeamento para frente e para trás podem ser usadas de acordo</p><p>com o problema, por exemplo, no caso de sair de uma cidade e ir para outra,</p><p>qualquer uma das abordagens pode ser utilizada.</p><p>Considere, no entanto, o problema de um jogo de xadrez, no qual o es-</p><p>tado inicial é conhecido (início do jogo), porém, o estado final do jogo não</p><p>é conhecido. Ou seja, não sabemos como o jogo irá terminar, como estarão</p><p>as peças, qual a quantidade de peças, qual a quantidade de movimentos que</p><p>serão realizados, entre outros fatores.</p><p>Assim, alguns problemas podem ser resolvidos usando somente o enca-</p><p>deamento para frente, outros usando somente encadeamento para trás,</p><p>enquanto que em alguns podem ser usadas as duas abordagens (RUSSELL;</p><p>NORVIG, 2013).</p><p>A fronteira do processo de busca pode ser representada, então, como um con-</p><p>junto de nós que divide os nós que já foram explorados, e os nós que ainda não</p><p>foram explorados, tal como mostra a Figura 3.</p><p>51</p><p>Sendo assim, o processo de busca pode ser representado conforme o seguinte</p><p>algoritmo.</p><p>Entrada:</p><p>um grafo</p><p>um conjunto de nós iniciais</p><p>um procedimento booleano objetivo(n) que testa se n é objetivo</p><p>Fronteira := {s: s é um nó inicial}</p><p>Enquanto fronteira não for vazia</p><p>Nó inicial</p><p>Fronteira</p><p>Nós explorados</p><p>Nós não explorados</p><p>Figura 3 – Representação da fronteira de um processo de busca / Fonte: o autor (2022)</p><p>Descrição da Imagem: Apresenta diversos círculos ligados por setas (que partem da esquerda para a</p><p>direita e do topo para a base) entre si, sendo que o “nó inicial” é representado por um círculo verde se-</p><p>guidos dos “nós explorados” que são representados por círculos pretos, os “nós da fronteira” por círculos</p><p>em vermelho e os nós não explorados por círculos em azul, e os nós da fronteira separa os “nós não</p><p>explorados” dos nós explorados.</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>52</p><p>A busca ocorre, dessa forma, utilizando como entrada a representação de um</p><p>grafo, contendo um conjunto de nós iniciais, e um conjunto de nós objetivo.</p><p>Além disso, é necessário ter um procedimento booleano “objetivo(n), que retorna</p><p>verdadeiro quando o nó n é um nó objetivo.</p><p>O algoritmo inicializa, então, a fronteira com o nó inicial, e,enquanto a fron-</p><p>teira não for vazia, fica selecionando um caminho da fronteira, testando se este</p><p>caminho é objetivo, e adicionando novos nós na fronteira, para, depois, selecioná-</p><p>-los novamente e testá-los. Além disso, um algoritmo tal qual o descrito a seguir,</p><p>pode retornar um caminho entre um nó X e Y, e continuar a busca por outros</p><p>caminhos se necessário (RUSSELL; NORVIG, 2013).</p><p>O que diferencia um processo de busca de outro é a seleção dos nós da fron-</p><p>teira, e esta seleção influencia os critérios de avaliação das estratégias de busca</p><p>(LUGER, 2013). Um processo de busca é completo quando ele sempre encontra</p><p>uma solução, se ela existir. Em alguns casos, o processo de busca pode ficar em</p><p>loop e não encontrar a solução, ou a solução pode até mesmo não existir em</p><p>outros casos (RUSSELL e NORVIG, 2013).</p><p>O autor também descreve o custo de tempo de um processo de busca, fator</p><p>que reflete o tempo gasto para encontrar a solução. Normalmente, esse custo é</p><p>medido em relação à quantidade de nós expandidos no processo de busca.</p><p>O custo de memória de um processo de busca remete à quantidade de memó-</p><p>ria utilizada no processo de busca, e pode ser medido pelo tamanho máximo que a</p><p>fronteira terá. Isso porque, quanto maior o tamanho da fronteira, maior a quantida-</p><p>de de repetições necessárias para testar todos os nós (RUSSELL; NORVIG, 2013).</p><p>Por fim, o autor destaca que um processo de busca é ótimo quando encontra</p><p>sempre a melhor solução – quando existe mais de uma. Esse exemplo pode ser</p><p>facilmente visualizado se pensarmos no caso de traçar uma rota entre duas cida-</p><p>des – normalmente, queremos a menor rota visando economizar tempo, gasolina</p><p>etc. No entanto, o processo de busca pode encontrar um caminho que não seja o</p><p>menor. Assim, quando um processo de busca é ótimo, garantimos que ele sempre</p><p>encontrará a melhor resposta possível para o problema.</p><p>Os processos de busca também podem ser divididos conforme o conheci-</p><p>mento sobre o problema, nos quais os processos de busca desinformados não</p><p>têm informação sobre os nós vizinhos, e sobre o problema em si, enquanto que</p><p>os processos de busca informados têm informação sobre os vizinhos e custos</p><p>do problema (LEE, 2019).</p><p>53</p><p>Entre os processos de busca desinformados podemos citar o busca em</p><p>largura, busca em profundidade e busca pelo custo mínimo, enquanto que</p><p>dos processos de busca informada podemos citar a busca heurística pelo</p><p>melhor primeiro, e busca A (RUSSELL e NORVIG, 2013).</p><p>Além desses</p><p>exemplos, o autor destaca que outros métodos podem ser utilizados</p><p>para um problema específico, tratando a fronteira de forma a melhor resolver o</p><p>problema. No entanto, essess são os exemplos clássicos encontrados na literatura.</p><p>A Busca em Profundidade é um método que trata a fronteira como uma</p><p>pilha, de modo que, quando estamos processando um nó do grafo, é utilizada</p><p>uma estrutura do tipo pilha para a expansão dos nós, na qual as informações são</p><p>inseridas e removidas a partir do topo, tal como uma pilha de papel em que os</p><p>papéis são inseridos e removidos sempre do topo (LUGER, 2013).</p><p>Considere, por exemplo, que os nós da fronteira são [n1, n2, n3, n4, ... , nx], sendo</p><p>o nó n1 o topo da pilha. Assim, o nó n1 será analisado primeiro, e quando todos</p><p>os caminhos existentes a partir do nó 1 estiverem esgotados, será explorado o nó</p><p>2, e assim sucessivamente (RUSSELL; NORVIG, 2013).</p><p>Analise o grafo da Figura 2, por exemplo, e considere que o nó origem é o</p><p>nó A e desejamos utilizar o busca em profundidade para o grafo. Pondere, então,</p><p>o seguinte algoritmo, no qual fronteira é uma estrutura de dados do tipo pilha:</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>54</p><p>Entrada: um grafo</p><p>um conjunto de nós iniciais</p><p>uma estrutura de dados do tipo pilha chamada fronteira</p><p>Fronteira:- {s: s é o nó inicial}</p><p>Enquanto fronteira não for vazia remove o nó n do topo de fronteira //</p><p>Marca o nó como visitado e constrói árvore de busca</p><p>para cada vizinho n do nó removido faça</p><p>adicione n à pilha</p><p>Fim enquanto</p><p>O algoritmo acima é similar ao que foi apresentado anteriormente, no entanto, a</p><p>fronteira é tratada como sendo uma pilha, e a remoção do nó da fronteira faz a</p><p>construção da árvore de busca resultante do algoritmo (RUSSELL; NORVIG, 2013).</p><p>Os procedimentos de testar se um nó é objetivo também foram removidos, uma vez</p><p>que desejamos utilizar o busca em profundidade e outros métodos de busca para</p><p>explorar uma área (grafo) sem considerar um nó objetivo em específico.</p><p>Além disso, os nós do grafo, ao serem removidos, são marcados como</p><p>visitados em uma estrutura auxiliar, para que o método de busca não fique</p><p>preso em loops e repetições desnecessárias.</p><p>Esse resultado da árvore de busca é que permite traçar os caminhos do nó inicial</p><p>para qualquer outro nó existente no grafo. Importante salientar que cada método</p><p>de busca gera uma árvore de busca diferente, sendo assim, para este mesmo grafo,</p><p>mostrado como exemplo na Figura 2, ao executarmos busca em largura, busca em</p><p>profundidade ou busca pelo custo mínimo, suas árvores de busca seriam diferentes,</p><p>e os caminhos tomados para chegar ao nó y podem ser diferentes.</p><p>Voltando ao exemplo da busca em profundidade, vamos realizar o passo a</p><p>passo da execução do algoritmo com o grafo da Figura 2. Inicialmente, tomamos</p><p>como origem o nó A, assim, somente este nó estará inserido na fronteira. Repre-</p><p>sentaremos o nó visitado na cor cinza e os nós não visitados em branco.</p><p>A</p><p>Figura 4 - Resultado parcial da árvore de busca do algoritmo de</p><p>busca em profundidade</p><p>Descrição da Imagem: A Figura 4 apresenta uma elipse com a</p><p>letra A inserida nela.</p><p>55</p><p>Ao remover o nó do topo da fronteira, removemos o nó A, marcando-o como</p><p>visitado (cinza), e adicionamos os vizinhos de A à fronteira (adicionado o C,</p><p>depois o B). A representação após esse passo pode ser vista na Figura 5</p><p>A</p><p>B C</p><p>Figura 5 - Resultado parcial da árvore</p><p>de busca do algoritmo de busca em</p><p>profundidade</p><p>Descrição da Imagem: Apresenta</p><p>uma elipse preenchida em cinza,</p><p>com a letra “A” inscrita dentro dela,</p><p>e duas linhas ligando a elipse de A</p><p>com outras duas elipses, do lado es-</p><p>querdo uma preenchida com a letra</p><p>“B” e do lado direito uma preenchida</p><p>com a letra “C”, sendo que ambas</p><p>estão com o fundo branco.</p><p>Na sequência, temos os nós C e B na fronteira, e, ao remover o nó B, adicionamos</p><p>os vizinhos de B à fronteira. Note que, nesse caso, os vizinhos de B já visitados (nó</p><p>A) foram adicionados à fronteira, no entanto, esse é um caminho que não precisa</p><p>ser explorado (de B para A), uma vez que já foi explorado o caminho de A para B.</p><p>Por outro lado, o nó C, que é vizinho de A e de B, foi adicionado novamente</p><p>na pilha. Assim, a Figura 6 representa que o nó B foi visitado, e seus vizinhos não</p><p>visitados foram adicionados à fronteira.</p><p>A</p><p>B</p><p>C DA</p><p>C</p><p>Figura 6 - Resultado parcial da árvore de busca do algoritmo de busca em profundidade</p><p>Descrição da Imagem: Apresenta uma elipse preenchida em cinza, com a letra A inscrita dentro dela, e</p><p>duas linhas ligando a elipse de A com outras duas elipses, do lado esquerdo uma preenchida com a letra</p><p>B também em cinza, e do lado direito uma preenchida com a letra C em branco. A partir da elipse de B,</p><p>três linhas ligam-se com mais três elipses com as letras A, C e D.</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>56</p><p>Após a inserção dos vizinhos de B na fronteira, o nó no topo passa a ser o nó C,</p><p>sendo que ele é o próximo a ser removido, e tem seus vizinhos ainda não visitados</p><p>adicionados à fronteira, conforme mostra a Figura 7.</p><p>A</p><p>B</p><p>DC</p><p>A B D E</p><p>C</p><p>Figura 7 - Resultado parcial da árvore de busca do algoritmo de busca em profundidade</p><p>Descrição da Imagem: Apresenta uma elipse preenchida em cinza, com a letra A inscrita dentro dela,</p><p>e duas linhas ligando a elipse de A com outras duas elipses, do lado esquerdo uma preenchida com a</p><p>letra B também em cinza, e do lado direito uma preenchida com a letra C em branco. A partir da elipse</p><p>de B, duas linhas ligam-se com mais duas elipses, uma em cinza com a letra C do lado esquerdo, e uma</p><p>em branco com a letra D do lado direito. Ainda a partir da elipse de C, quatro elipses estão ligadas com</p><p>as letras A, B, D, e E.</p><p>Note, novamente, que os nós B e C, já visitados, foram adicionados, pois são</p><p>vizinhos de C, no entanto, eles não serão visitados outra vez, sendo eliminados a</p><p>partir da próxima figura, quando expandimos o nó D. A representação da Figura</p><p>8 expande o nó D, inserindo seus vizinhos na árvore de busca.</p><p>57</p><p>Mais uma vez, os nós anteriormente visitados (B e C) foram adicionados como</p><p>vizinhos de D, entretanto, serão eliminados quando o próximo nó na pilha (E)</p><p>for expandido. A Figura 9 apresenta a expansão do nó E e seus vizinhos.</p><p>A</p><p>B</p><p>DC</p><p>ED</p><p>B C E F</p><p>C</p><p>Figura 8 - Resultado parcial da árvore de busca do algoritmo de busca em profundidade</p><p>Descrição da Imagem: Apresenta uma elipse preenchida em cinza, com a letra A inscrita dentro dela, e</p><p>duas linhas ligando a elipse de A com outras duas elipses, do lado esquerdo uma preenchida com a letra</p><p>B também em cinza, e do lado direito uma preenchida com a letra C em branco. A partir da elipse de B,</p><p>duas linhas ligam-se com mais duas elipses, uma em cinza com a letra C do lado esquerdo, e uma em</p><p>branco com a letra D do lado direito. Ainda a partir da elipse de C, duas elipses estão ligadas, em cinza a</p><p>letra D do lado esquerdo, e em branco a letra E à direita. A partir da elipse de D, mais quatro conexões</p><p>com quatro elipses em branco de B, C, E e F.</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>58</p><p>O algoritmo segue a expansão dos nós, sempre inserindo nós já visitados, porém,</p><p>tomando um caminho que ainda não foi percorrido, tal como a próxima repre-</p><p>sentação da Figura 10, na qual o nó F é expandido.</p><p>A</p><p>B</p><p>DC</p><p>ED</p><p>FE</p><p>C D F</p><p>C</p><p>Figura 9 - Resultado parcial da árvore de busca do algoritmo de busca em profundidade</p><p>Descrição da Imagem: Apresenta uma elipse preenchida em cinza, com a letra A inscrita dentro dela, e</p><p>duas linhas ligando a elipse de A com outras duas elipses, do lado esquerdo uma preenchida com a letra</p><p>B também em cinza, e do lado direito uma preenchida com a letra C em branco. A partir da elipse de B,</p><p>duas linhas ligam-se com mais duas elipses, uma em cinza com a letra C do lado esquerdo, e uma em</p><p>branco com a letra D do lado direito. Ainda a partir da elipse de C, duas elipses estão ligadas, em cinza</p><p>a letra D, e em branco a letra E. A partir da elipse de D, duas conexões, uma em cinza com E, e outra em</p><p>branco com F. E por fim, a partir da elipse de E, três elipses</p><p>em branco estão conectadas, C, D e F.</p><p>59</p><p>A</p><p>B</p><p>DC</p><p>ED</p><p>FE</p><p>E</p><p>F</p><p>D</p><p>C</p><p>Figura 10 - Resultado parcial da árvore de busca do algoritmo de busca em profundidade</p><p>Descrição da Imagem: Apresenta uma elipse preenchida em cinza, com a letra A inscrita dentro dela,</p><p>e duas linhas ligando a elipse de A com outras duas elipses, do lado esquerdo uma preenchida com a</p><p>letra B também em cinza, e do lado direito uma preenchida com a letra C em branco. A partir da elipse</p><p>de B, duas linhas ligam-se com mais duas elipses, uma em cinza com a letra C do lado esquerdo, e</p><p>uma em branco com a letra D do lado direito. Ainda a partir da elipse de C, duas elipses estão ligadas,</p><p>em cinza a letra D, e em branco a letra E. A partir da elipse de D, duas conexões, uma em cinza com</p><p>E, e outra em branco com F. E por fim, a partir da elipse de E, uma elipse em cinza conectada com F,</p><p>e de F duas em branco com D e E.</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>60</p><p>Neste ponto, todos os seis nós foram visitados, então o algoritmo começa a ana-</p><p>lisar outros caminhos com base nos nós em branco da Figura 10.</p><p>Percebe-se que, a partir de F, os nós D e E já foram visitados. A partir do nó</p><p>D, o nó F também já foi visitado, do mesmo modo que a partir do nó C, seu vi-</p><p>zinho, o nó E, também já foi visitado. Por fim, tomando outro caminho a partir</p><p>do nó B, chega-se no nó D, que também já foi visitado, e a partir do nó inicial,</p><p>se escolhermos outro caminho, chegamos no nó C que também já foi visitado.</p><p>Assim, a busca em profundidade conclui a sua função de explorar todos os nós,</p><p>e gera como árvore de busca a representação da Figura 11.</p><p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p><p>Figura 11 – Árvore de busca do algoritmo de busca em profundidade</p><p>Descrição da Imagem: Apresenta uma elipse preenchida em cinza, com a letra A inscrita dentro dela,</p><p>ligada a outra elipse em cinza com a letra B, que por sua vez se conecta a elipse C, que novamente se</p><p>conecta a elipse D. Esta por sua vez se conecta a elipse E, que se liga a elipse F, todas preenchidas em cinza.</p><p>61</p><p>A árvore resultante apresenta a forma como os nós foram explorados, e o ca-</p><p>minho para se chegar em determinado nó. Por exemplo, ao utilizar como nó de</p><p>origem o nó A, e o nó destino o nó F, o caminho escolhido pelo algoritmo é sair</p><p>de A, passar por B, C, D, E e depois chegar em F.</p><p>Note que este não é o caminho com o menor custo, mas lembre-se que a busca</p><p>em profundidade não está preocupada com o custo, e sim com a forma em que</p><p>os nós serão explorados independentemente do custo. O próximo algoritmo de</p><p>busca em grafos, a busca em largura, aborda a busca de forma diferente, e a busca</p><p>pelo custo mínimo faz então o processo de traçar um caminho entre um nó de</p><p>origem e um nó destino.</p><p>A Busca em Largura é um método que trata a fronteira como uma fila,</p><p>fazendo com que, ao processar um nó do grafo, a expansão utiliza uma estrutura</p><p>de dados do tipo fila, na qual as inserções são realizadas no fim da fila, e as remo-</p><p>ções no começo da fila, funcionando tal como uma fila de mercado (RUSSELL;</p><p>NORVIG, 2013).</p><p>Considerando, por exemplo, que os nós da fronteira são [n1, n2, n3, n4, ... , nx], a</p><p>busca em largura analisaria o nó n1, e depois insere os nós vizinhos de n1 ao final</p><p>da fila após o nó nx, visitando então todos os nós de distância 1, depois todos os</p><p>nós de distância 2, e assim por diante (LUGER, 2013).</p><p>O algoritmo que executa a busca em largura é similar ao da busca em pro-</p><p>fundidade, no entanto, a fronteira é tratada como uma fila, na qual as inserções</p><p>são realizadas a partir do início do fim da fila, e as remoções são realizadas a</p><p>partir do início da fila, tal como a fila vista em estrutura de dados (RUSSELL;</p><p>NORVIG, 2013).</p><p>Entrada: um grafo</p><p>um conjunto de nós iniciais</p><p>uma estrutura de dados do tipo fila chamada fronteira</p><p>Fronteira:- {s: s é o nó inicial}</p><p>Enquanto fronteira não for vazia</p><p>remove o nó n do início de fronteira //Marca o nó como visitado e</p><p>constrói árvore de busca</p><p>para cada vizinho n do nó removido faça</p><p>adicione n ao fim da fila</p><p>Fim enquanto</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>62</p><p>Note, outra vez, que o passo de testar se um nó é objetivo foi removido, já que</p><p>desejamos explorar o ambiente desconhecido, tal como um robô aspirador que</p><p>precisa conhecer o local onde está inserido, ao mesmo tempo que aspira, e tam-</p><p>bém constrói uma representação do local (DE MEDEIROS, 2013).</p><p>Novamente, a busca é iniciada tomando o A como nó de partida, assim, re-</p><p>presentamos o nó A conforme a Figura 12.</p><p>A</p><p>Figura 12 – Resultado parcial da árvore de busca do algoritmo de</p><p>busca em largura</p><p>Descrição da Imagem: A Figura 12 apresenta uma elipse com a</p><p>letra A inscrita dentro dela.</p><p>Em seguida, o nó A deve ser expandido para analisar os vizinhos de A, que são</p><p>adicionados à fila, e a representação da árvore de busca pode ser vista na Figura 13.</p><p>A</p><p>B C</p><p>Figura 13 – Resultado parcial da árvore de busca do algoritmo de busca em largura</p><p>Descrição da Imagem: Apresenta uma elipse com a letra A inscrita dentro dela, e esta elipse está preen-</p><p>chida na cor cinza. A elipse de a se liga por linhas a duas outras elipses em branco, com as letras B e C.</p><p>Quando os vizinhos de A (B e C) são adicionados à fila, quer dizer que eles de-</p><p>vem ser visitados primeiramente, antes de analisar os vizinhos deles. Isto faz com</p><p>que B seja visitado e seus vizinhos adicionados à fila, e, na sequência, o nó C seja</p><p>visitado, e seus vizinhos também adicionados à fila, tal como mostra a Figura 14.</p><p>63</p><p>Após os vizinhos de C serem visitados, a representação do grafo é descrita con-</p><p>forme a Figura 15, restando os nós vizinhos de B (A, C e D) a serem visitados, e</p><p>os nós vizinhos de C (A, B, D e E).</p><p>A</p><p>B</p><p>C DA</p><p>C</p><p>Figura 14 – Resultado parcial da árvore de busca do algoritmo de busca em largura</p><p>Descrição da Imagem: Apresenta uma elipse com a letra A inscrita dentro dela, e esta elipse está preen-</p><p>chida na cor cinza. A elipse de A se liga a duas outras elipses com as letras B (em cinza), à esquerda, e C (em</p><p>branco), à direita. A elipse B por sua vez se liga a três outras elipses com as letras A, C e D (todas em branco).</p><p>A</p><p>B</p><p>C D A B D EA</p><p>C</p><p>Figura 15 – Resultado parcial da árvore de busca do algoritmo de busca em largura</p><p>Descrição da Imagem: Apresenta uma elipse com a letra A inscrita dentro dela, e esta elipse está preen-</p><p>chida na cor cinza. A elipse de A se liga a duas outras elipses com as letras B (em cinza) e C (em cinza). A</p><p>elipse B por sua vez se liga a três outras elipses com as letras A, C e D, enquanto a elipse de C se conecta</p><p>com quatro elipses brancas, com as letras A, B, D, e E.</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>64</p><p>Podemos perceber que a busca em largura, visita todos os nós a distância de um</p><p>passo da origem (desconsiderando os custos do grafo), depois, visita todos os nós a</p><p>distância dois, e assim sucessivamente, até que todos os nós tenham sido visitados.</p><p>Neste ponto, temos um caminho na árvore que se inicia em A, passa pelo nó B,</p><p>e volta novamente para o nó A. No entanto, como o nó A já foi visitado, este cami-</p><p>nho não precisa ser analisado. Desse modo, os nós A e C da subárvore esquerda da</p><p>Figura 15 são descartados da fila, e o próximo nó a ser visitado é o nó D passando</p><p>pelo nó B, e expandindo os vizinhos de D, conforme mostra Figura 16.</p><p>A</p><p>B</p><p>C E F</p><p>D A B D E</p><p>B</p><p>C</p><p>Figura 16 – Resultado parcial da árvore de busca do algoritmo de busca em largura</p><p>Descrição da Imagem: Apresenta uma elipse com a letra A inscrita dentro dela, e esta elipse está preen-</p><p>chida na cor cinza. A elipse de A se liga a duas outras elipses em cinza com as letras B e C. A elipse B por</p><p>sua vez se liga a elipse de D em cinza, e D por sua vez se liga a quatro elipses em branco com as letras</p><p>B, C, E e F. Por outro lado, a elipse de C se conecta com quatro elipses brancas, com as letras A, B, D, e E.</p><p>O mesmo acontece com a subárvore direita da Figura 16, os nós A, B e D já foram</p><p>visitados, então a partir do nó C é visitado o nó E e seus vizinhos são expandidos</p><p>tal como mostra a Figura 17.</p><p>65</p><p>Nesse ponto, todos os</p><p>nós distantes em duas posições do nó origem A foram</p><p>visitados. Assim, o algoritmo começa a analisar os nós a distância três da origem,</p><p>porém ,alguns nós também já foram visitados, como os nós B, C e E da subár-</p><p>vore (esquerda da Figura 17), restando o nó F para ser visitado e expandido na</p><p>sequência. A expansão dos vizinhos do nó F pode ser visualizada na Figura 18.</p><p>A</p><p>B</p><p>C E F D FC</p><p>D E</p><p>B</p><p>C</p><p>Figura 17 – Resultado parcial da árvore de busca do algoritmo de busca em largura</p><p>Descrição da Imagem: Apresenta uma elipse com a letra A inscrita dentro dela, e esta elipse está preen-</p><p>chida na cor cinza. A elipse de A se liga a duas outras elipses em cinza com as letras B e C. A elipse B por</p><p>sua vez se liga a elipse de D em cinza, e D (também em cinza) por sua vez se liga a quatro elipses em</p><p>branco com as letras B, C, E e F. Por outro lado, a elipse de C se conecta com E, também em cinza, que se</p><p>liga com três elipses brancas, com as letras C, D e F</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>66</p><p>A</p><p>B</p><p>F D F</p><p>D F</p><p>C</p><p>D E</p><p>C</p><p>Figura 18 – Resultado parcial da árvore de busca do algoritmo de busca em largura</p><p>Descrição da Imagem: Apresenta uma elipse com a letra A inscrita dentro dela, e esta elipse está preen-</p><p>chida na cor cinza. A elipse de A se liga a duas outras elipses em cinza com as letras B e C. A elipse B por</p><p>sua vez se liga a elipse de D em cinza, e D (também em cinza) por sua vez se liga a F também em cinza. F</p><p>por sua vez se conecta a duas elipses brancas com as letras D e E. Por outro lado, a elipse de C se conecta</p><p>com E, também em cinza, que se liga com três elipses brancas, com as letras C, D e F.</p><p>Aqui, todos os nós do grafo foram visitados, porém, a árvore ainda contém alguns</p><p>caminhos a serem analisados. No lado direito, a subárvore apresenta os nós a dis-</p><p>tância três de A, sendo o nó C (A → C → E → C), nó D (A → C → E → D) e nó</p><p>F (A → C → E → F). O mesmo acontece com os nós da subárvore esquerda da</p><p>Figura anteriormente apresentada, porém, com nós a distância quatro do nó ori-</p><p>gem, sendo eles o nó D (A → B → D → F → D), e nó E (A → B → D → F → E).</p><p>Percebe-se que esses caminhos geram repetições de rotas, por exemplo,</p><p>sair do nó A, ir para o nó B, depois para nó D, em sequência nó F e voltar</p><p>para nó D. Estes caminhos não precisam ser verificados, pois o nó final (D)</p><p>já foi marcado como visitado.</p><p>Assim, a partir da representação parcial da Figura 18, a árvore de busca re-</p><p>sultante da busca em largura pode ser vista na Figura 19.</p><p>67</p><p>Considere, uma vez mais, que a busca em largura não define a melhor rota entre</p><p>o nó de origem e os demais nós do grafo, mas meios de explorar todos os nós</p><p>de forma simplificada. Assim sendo, percebe-se que, para sair do nó A e ir para</p><p>o nó B, o algoritmo escolhe o caminho direto de B, que tem custo 7, ao invés de</p><p>escolher o caminho de ir para C e depois para B, que teria um custo total de 6.</p><p>Isto fica claro no algoritmo da busca em largura, pois em nenhum momento se</p><p>trata do peso das arestas do grafo.</p><p>A</p><p>B</p><p>F</p><p>D E</p><p>C</p><p>Figura 19 – Árvore de busca do algoritmo de busca</p><p>em largura</p><p>Descrição da Imagem: Apresenta uma elipse com a</p><p>letra A inscrita dentro dela, e esta elipse está preen-</p><p>chida na cor cinza. A elipse de A se liga a duas outras</p><p>elipses em cinza com as letras B e C. A elipse B por</p><p>sua vez se liga a elipse de D em cinza, e D (também</p><p>em cinza) por sua vez se liga a F também em cinza.</p><p>Por outro lado, a elipse de C se conecta com E, tam-</p><p>bém em cinza.</p><p>Caro(a) estudante, agora vamos conversar novamente com</p><p>a Alexa, desta vez, sobre a exploração de ambientes, e os</p><p>algoritmos de busca.</p><p>O processo de Busca pelo custo mínimo é similar ao busca em largura e busca</p><p>em profundidade, no entanto, o grafo deve ter pesos nas arestas, tal como mostra</p><p>a Figura 2. Além disso, a estrutura de dados utilizada na busca pelo custo mínimo,</p><p>é uma fila de prioridade ordenada pelo custo das arestas (RUSSELL; NORVIG,</p><p>2013). Se utilizarmos a busca pelo custo mínimo, na qual os custos são todos</p><p>iguais, a busca funciona tal como uma busca em largura simples.</p><p>UNIDADE 2</p><p>https://apigame.unicesumar.edu.br/qrcode/11014</p><p>UNIDADE 2</p><p>68</p><p>A representação do algoritmo da busca pelo custo mínimo pode ser vista a seguir.</p><p>Entrada: um grafo</p><p>um conjunto de nós iniciais</p><p>uma estrutura de dados do tipo fila chamada fronteira ordenada</p><p>pelo custo das areastas</p><p>Fronteira:- {s: s é o nó inicial}</p><p>Enquanto fronteira não for vazia</p><p>remove o nó n do início de fronteira //Marca o nó como visitado e</p><p>constrói árvore de busca</p><p>para cada vizinho n do nó removido faça</p><p>adicione n ao fim da fila</p><p>Fim enquanto</p><p>Assim, comparando a busca em largura com a busca pelo custo mínimo, a única di-</p><p>ferença é que ordenamos a fila de acordo com os custos das arestas (LUGER, 2013).</p><p>Analisando o grafo da Figura 2, e iniciando a busca pelo custo mínimo</p><p>com o nó A de origem, temos a seguinte representação inicial da árvore de</p><p>busca gerada pelo algoritmo.</p><p>A</p><p>Figura 20 – Resultado parcial da árvore de busca do algoritmo de</p><p>busca pelo custo mínimo</p><p>Descrição da Imagem: A Figura 20 apresenta uma elipse branca</p><p>com a letra A inscrita dentro dela.</p><p>Como o A é o nó inicial, devemos expandi-lo e analisar os vizinhos e seus custos.</p><p>Esta representação do nó A expandido pode ser visto na Figura 21.</p><p>69</p><p>Note que, abaixo da letra que indica o nó, temos agora um valor numérico que</p><p>representa o custo do nó inicial até o nó. Na Figura 21, temos que o custo do nó</p><p>A para o nó B é 7, e o custo do nó A para o nó C é 2.</p><p>Como a busca pelo custo mínimo utiliza uma fila ordenada pelo custos das ares-</p><p>tas, o nó C seria o primeiro da fila, e na sequência o nó B. Assim sendo, o próximo nó</p><p>a ser expandido é o nó C, e sua representação pode ser vista na Figura 22.</p><p>A</p><p>B</p><p>7</p><p>C</p><p>2</p><p>Figura 21 – Resultado parcial da árvore de busca do</p><p>algoritmo de busca pelo custo mínimo</p><p>Descrição da Imagem: Apresenta uma elipse cinza</p><p>com a letra A inscrita dentro dela, e esta elipse se</p><p>liga a duas outras elipses em branco, a primeira com</p><p>a letra B e o número 7, enquanto a segunda com a</p><p>letra C e o número 2.</p><p>A</p><p>B</p><p>7</p><p>C</p><p>2</p><p>D</p><p>5</p><p>B</p><p>6</p><p>E</p><p>7</p><p>Figura 22 – Resultado parcial da árvore de busca do algoritmo de busca pelo custo mínimo</p><p>Descrição da Imagem: Apresenta uma elipse cinza com a letra A inscrita dentro dela, e esta elipse se liga a</p><p>duas outras elipses, a primeira em branco com a letra B e o número 7, enquanto a segunda em cinza com</p><p>a letra C e o número 2. A elipse C por sua vez, se liga a três elipses (B – 6), (D – 5), e (E – 7) todas em branco.</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>70</p><p>Nesse momento, temos quatro caminhos não explorados em nossa árvore, o ca-</p><p>minho de A para C depois para D, com custo 5, o caminho de A para C e depois</p><p>para B com custo 6, o caminho de A para B de forma direta com custo 7, e, por</p><p>fim, o caminho de A para C e depois para E com custo 7.</p><p>Como o busca expande o caminho com menor custo, o nó D é expandido e</p><p>seus vizinhos podem ser vistos na Figura 23.</p><p>A</p><p>B</p><p>7</p><p>C</p><p>2</p><p>D</p><p>5</p><p>B</p><p>6</p><p>E</p><p>7</p><p>E</p><p>8</p><p>B</p><p>9</p><p>F</p><p>7</p><p>Figura 23 – Resultado parcial da árvore de busca do algoritmo de busca pelo custo mínimo</p><p>Descrição da Imagem: Apresenta uma elipse cinza com a letra A inscrita dentro dela, e esta elipse se liga a</p><p>duas outras elipses, a primeira em branco com a letra B e o número 7, enquanto a segunda em cinza com</p><p>a letra C e o número 2. A elipse C por sua vez, se liga a três elipses (B – 6) em branco, (D - 5) em cinza, e</p><p>(E – 7) em branco. A elipse de D por sua vez também se liga a três elipses em branco (B – 9), (E – 8), e (F – 7).</p><p>71</p><p>Aqui, os nós B, E e F ainda não foram visitados, e o caminho com o menor custo</p><p>existente é o caminho de A para C, e depois para B, com custo 6, portanto, o nó B</p><p>é visitado e seus vizinhos são expandidos, conforme mostra a Figura 24.</p><p>A</p><p>C</p><p>2</p><p>D</p><p>5</p><p>B</p><p>6</p><p>E</p><p>7</p><p>E</p><p>8</p><p>F</p><p>7</p><p>Figura 24 – Resultado parcial da árvore de busca do algoritmo de busca pelo custo mínimo</p><p>Descrição da Imagem: Apresenta uma elipse cinza com a letra A inscrita dentro dela, e esta elipse se liga</p><p>à elipse C – 2 e</p><p>esta se liga se liga a três elipses (B – 6) e (D – 5) em cinza, e (E – 7) em branco. A elipse de</p><p>D por sua vez também se liga a duas elipses em branco (E – 8), e (F – 7).</p><p>Na sequência, ainda não foram visitados os nós E e F, e os caminhos indicam que</p><p>o menor custo para visitar o nó E é 7, passando anteriormente pelo nó C. O nó E</p><p>é expandido, sendo visualizados seus vizinhos na Figura a seguir.</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>72</p><p>Neste ponto, o único nó do grafo ainda não visitado é o nó F, e a árvore tem dois</p><p>caminhos para ele, um que sai do nó A, passa pelo nó C, depois D e então chega</p><p>no nó F, e outro caminho que sai de A, passa por C, depois passa por E, e, então,</p><p>chega em F, no entanto, com um custo de 14.</p><p>O caminho escolhido é sempre o de menor custo, assim, os vizinhos de F</p><p>seriam expandidos, porém, todos os nós do grafo já foram visitados, resultando</p><p>em uma árvore de busca final, tal como mostra a Figura 26.</p><p>A</p><p>C</p><p>2</p><p>D</p><p>5</p><p>B</p><p>6</p><p>E</p><p>7</p><p>F</p><p>7</p><p>F</p><p>14</p><p>Figura 25 – Resultado parcial da árvore de busca do algoritmo de busca pelo custo mínimo</p><p>Descrição da Imagem: Apresenta uma elipse cinza com a letra A inscrita dentro dela, e esta elipse se liga a</p><p>uma elipse cinza com a inscrição C e 2 dentro dela. Já essa elipse C se liga a outras três elipses cinza, (B, 6), (D,</p><p>5) e (E, 7). Por fim, a elipse de D se liga a outra elipse branca F, 7 e a elipse E se liga a outra elipse branca F, 14.</p><p>73</p><p>Pode-se observar pelo caminho que os nós fazem que a árvore de busca do al-</p><p>goritmo busca pelo custo mínimo difere da busca em largura e busca em pro-</p><p>fundidade vistos anteriormente. Na busca em profundidade, para sair de A e ir</p><p>para C precisamos passar por B, com um custo total de 11. Na busca em largura</p><p>conseguimos ir direto de A para C, com um custo de 2, e na busca pelo custo</p><p>mínimo, também utilizamos o caminho direto de A para C com custo 2.</p><p>Outro ponto a ser ressaltado sobre a busca pelo custo mínimo, é que a árvore</p><p>de busca resultante apresenta os menores caminhos do nó A para todos os demais</p><p>nós do grafo. Considere, por exemplo, sair de A e ir para o nó B no grafo da Figura</p><p>2. A princípio, pode-se pensar que ir direto para B é a melhor opção (custo 7),</p><p>entretanto, é mais vantajoso ir para C, com custo 2, e depois de C ir para B, com</p><p>custo 4, totalizando um custo menor (6) do que o caminho direto (7).</p><p>A</p><p>C</p><p>2</p><p>D</p><p>5</p><p>B</p><p>6</p><p>E</p><p>7</p><p>F</p><p>7</p><p>Figura 26 – Resultado da árvore de busca do algoritmo de busca pelo custo mínimo</p><p>Descrição da Imagem: Apresentauma elipse cinza com a letra A inscrita dentro dela, e esta elipse se liga a</p><p>uma elipse cinza com a inscrição C e 2 dentro dela. Já essa elipse C se liga a outras três elipses cinza, (B, 6),</p><p>(D, 5) e (E, 7). Por fim, a elipse de D se liga a outra elipse cinza F, 7.</p><p>UNIDADE 2</p><p>UNIDADE 2</p><p>74</p><p>Comparando os três métodos, pode-se perceber que a busca pelo custo mínimo</p><p>faz com que o menor caminho para os nós sejam encontrados, enquanto que a</p><p>busca em profundidade e a busca em largura podem encontrar caminhos que</p><p>não sejam os de custo mínimos (RUSSELL; NORVIG, 2013).</p><p>Esse fator, que faz a busca pelo custo mínimo retornar o menor caminho entre</p><p>um nó inicial e os demais nós do grafo, é chamado de atomicidade do algoritmo.</p><p>No entanto, isso deve ser especificado em um nó objetivo e utilizado o procedi-</p><p>mento objetivo(n) que retorna se o nó encontrado é objetivo.</p><p>Outro fator de avaliação dos algoritmos é chamado de completude do método</p><p>de busca. Esta característica representa que o método encontra o caminho entre</p><p>um nó e um objetivo (quando ele existe), entretanto, a completude não garante en-</p><p>contrar o menor caminho, tal como uma busca ótima (RUSSELL; NORVIG, 2013).</p><p>Na questão da complexidade dos algoritmos, pode-se avaliar também</p><p>a complexidade de tempo (tempo necessário para executar o algoritmo) e</p><p>complexidade de espaço (quantidade de memória utilizada pelo algoritmo)</p><p>(RUSSELL e NORVIG, 2013).</p><p>Dentre os três métodos vistos, o de busca pelo custo mínimo é o único que</p><p>encontra o caminho ótimo, enquanto os outros métodos (largura e profundidade)</p><p>podem encontrar caminhos que não sejam ótimos (caminhos com custo mais</p><p>alto) (TAULLI, 2020).</p><p>NOVAS DESCOBERTAS</p><p>Na área da inteligência artificial, diversos filmes abordam o tema. Um dos</p><p>filmes recentes sobre a área é “O Jogo da Imitação”, de 2014, do diretor Mor-</p><p>ten Tyldum. O filme é inspirado na biografia de Alan Turing, considerado o</p><p>pai da computação devido as suas pesquisas nos anos 50.</p><p>O filme aborda conceitos do Teste de Turing, além do início da computação</p><p>com o projeto da máquina para quebrar a criptografia da Enigma, uma má-</p><p>quina utilizada na 2ª Guerra Mundial.</p><p>Prepare a pipoca, e preste atenção aos conceitos de Inteligência Artificial</p><p>abordados no filme.</p><p>https://apigame.unicesumar.edu.br/qrcode/12526</p><p>75</p><p>Os algoritmos de buscas vistos nesta Unidade (largura, profundidade e custo</p><p>mínimo) podem ser utilizados na exploração e navegação de robôs. Um robô que</p><p>pousa no solo de Marte tem um objetivo definido, por exemplo, coletar recursos</p><p>para análise. Sendo assim, o robô deve explorar a área e traçando um caminho</p><p>para conseguir voltar para a nave. A exploração deve levar em conta vários fato-</p><p>res, como a quantidade de bateria existente no robô, os obstáculos no caminho</p><p>(buracos, pedras etc.), o objetivo a ser atingido, entre outros.</p><p>Do mesmo modo que acontece com a exploração do solo de Marte por um</p><p>robô, esses novos recursos de robôs aspiradores de pó também seguem a ideia</p><p>similar à descrita anteriormente, precisando atingir o seu objetivo, que pode ser</p><p>limpar a área onde está, gerenciando a sua bateria e desviando de obstáculos.</p><p>Imagine que você, aluno(a), é contratado(a) para projetar a movimentação</p><p>do robô. As estratégias de busca em largura, busca em profundidade e busca pelo</p><p>custo mínimo poderiam ser adaptadas para realizar tal tarefa.</p><p>UNIDADE 2</p><p>76</p><p>1. Sobre os métodos de busca, assinale a alternativa que apresenta uma afirmação</p><p>correta:</p><p>a) O método busca em largura utiliza uma fila ordenada pelo custo dos nós do grafo</p><p>como estrutura para armazenar os nós da fronteira.</p><p>b) O método busca em profundidade utiliza uma lista como estrutura para arma-</p><p>zenar os nós da fronteira.</p><p>c) O método busca pelo custo mínimo utiliza uma lista ordenada pelo custo dos nós</p><p>do grafo como estrutura para armazenar os nós da fronteira.</p><p>d) A fronteira de um método de busca em grafo divide os nós já explorados e os</p><p>nós ainda não explorados, determinando quais são os próximos nós a serem</p><p>explorados.</p><p>e) Os métodos de busca em largura e busca em profundidade precisam ser execu-</p><p>tados definindo um nó de origem e um nó de destino.</p><p>2. Dado o seguinte grafo, e tomando como nó inicial o nó 0, faça a construção da árvore</p><p>do algoritmo de busca em largura, apresentando a árvore resultante.</p><p>0</p><p>7</p><p>1</p><p>3 4</p><p>2</p><p>5 6</p><p>Descrição da Imagem: A Figura apresen-</p><p>ta oito círculos, sendo que cada círculo</p><p>tem um número em seu interior (de 0 a</p><p>7), e estes círculos estão conectados uns</p><p>aos outros por meio de linhas. O círculo</p><p>com o número 0 se conecta aos círculos</p><p>com os números 1 e 3. O círculo com o</p><p>número 1 se conecta com o círculo de</p><p>números 0 e 5. O círculo de número 2 se</p><p>conecta ao círculo de número 5. O círculo</p><p>de número 3 se conecta aos círculos de</p><p>números 0, 5 e 7. O círculo de número 4</p><p>se conecta ao círculo de número 7. O cír-</p><p>culo de número 5 se conecta aos círculos</p><p>de número 1, 2, 3 e 6. O círculo de núme-</p><p>ro 6 se conecta ao círculo de número 5</p><p>e 7, e por fim o círculo de número 7 se</p><p>conecta aos círculos de números 3, 4 e 6.</p><p>77</p><p>3. Considere o grafo a seguir que mostra uma situação na qual você está na cidade</p><p>representada pelo nó 0, e deseja explorar o local de forma a construir uma repre-</p><p>sentação lógica do local, tal qual a análise de um local desconhecido por um robô.</p><p>Faça a construção da árvore do algoritmo de busca em profundidade, apresentando</p><p>a árvore resultante.</p><p>0</p><p>7</p><p>1</p><p>3 4</p><p>2</p><p>5 6</p><p>Descrição da Imagem: A Figura apresen-</p><p>ta oito círculos, sendo que cada círculo</p><p>tem</p><p>um número em seu interior (de 0 a</p><p>7), e estes círculos estão conectados uns</p><p>aos outros por meio de linhas. O círculo</p><p>com o número 0 se conecta aos círculos</p><p>com os números 1 e 3. O círculo com o</p><p>número 1 se conecta com o círculo de</p><p>números 0 e 5. O círculo de número 2 se</p><p>conecta ao círculo de número 5. O círculo</p><p>de número 3 se conecta aos círculos de</p><p>números 0, 5 e 7. O círculo de número 4</p><p>se conecta ao círculo de número 7. O cír-</p><p>culo de número 5 se conecta aos círculos</p><p>de número 1, 2, 3 e 6. O círculo de núme-</p><p>ro 6 se conecta ao círculo de número 5</p><p>e 7, e por fim o círculo de número 7 se</p><p>conecta aos círculos de números 3, 4 e 6.</p><p>3Busca Heurística</p><p>e Resolução de</p><p>Problemas de</p><p>Busca</p><p>Me. Maurilio Martins Campano Junior</p><p>Nesta Unidade, trataremos dos problemas de busca, no entanto, utili-</p><p>zando heurísticas para guiar o processo de busca, sendo que as heu-</p><p>rísticas fornecem uma estimativa para o problema. Assim, os métodos</p><p>vistos durante o estudo serão a busca pelo melhor primeiro e a Busca</p><p>A* (A estrela). Além disso, esta Unidade trata de um estudo de caso</p><p>para problemas de busca de modo geral, com ou sem a utilizando de</p><p>heurísticas.</p><p>UNIDADE 3</p><p>80</p><p>Vamos lembrar a situação da Unidade 2, na qual poderíamos estar em uma cidade</p><p>qualquer e, se desejássemos ir para outra cidade, usaríamos o GPS. No caso de</p><p>robôs explorando o solo de Marte, por exemplo, não temos essa possibilidade,</p><p>assim, os algoritmos de busca vistos na Unidade 2 poderiam nos ajudar. Mas e</p><p>se conseguíssemos mais informação sobre as cidades vizinhas? Quanto mais</p><p>informações tivéssemos, poderíamos decidir a melhor forma de ir para a cidade</p><p>A ou para a cidade B, ou, no caso do robô, ele poderia decidir ir para norte ou</p><p>sul, conforme a possibilidade de se encontrar recursos.</p><p>Essas informações auxiliares podem complementar a escolha de um agente in-</p><p>teligente, por exemplo, no caso de ir de uma cidade para outra, a existência ou não de</p><p>um posto de gasolina no caminho pode afetar a sua escolha, do mesmo modo se um</p><p>robô no solo de Marte conseguir visualizar que ao norte tem água e ele deve coletar</p><p>água como objetivo principal na missão. Este fator seria de principal importância</p><p>para o sucesso da missão, por isso, deve ser levado em conta na escolha do caminho.</p><p>Suponha a seguinte situação: você está na cidade A e deseja ir para a cidade D.</p><p>Existem, a princípio, três caminhos existentes de A para D, sendo que o primeiro é ir</p><p>para B, depois para C e em seguida para D. O segundo caminho é ir para B e depois</p><p>para D; e, por fim, um terceiro caminho que passa por B, C, E e depois chega em D.</p><p>Sem pensar nos custos da distância entre as cidades, qual caminho você escolheria?</p><p>Sem analisar os custos das cidades anteriormente apresentadas, poderíamos</p><p>escolher qualquer caminho desde que seja a menor distância entre A e D. No en-</p><p>tanto, podemos adicionar novas informações ao problema que poderiam mudar a</p><p>nossa escolha. Por exemplo, podemos ter um menor caminho entre duas cidades,</p><p>entretanto, com um pedágio no meio. Se nosso objetivo é chegar na cidade D, gas-</p><p>tando o menor valor possível, pode ser que o valor do pedágio influencie no custo.</p><p>Podemos pensar também que o tempo é um fator relevante para a escolha,</p><p>por exemplo, supondo que as cidades estão distantes uma da outra, por vezes,</p><p>é melhor passar por uma cidade para ter um local para descanso do que ficar</p><p>na estrada por um longo período.</p><p>Essas ideias de custo do pedágio, tempo da viagem, e outras informações so-</p><p>bre um problema podem ser usadas como estimativas para elaborar um processo</p><p>de busca – esse processo é chamado de “heurísticas”, que veremos nesta Unidade.</p><p>Utilize o diário de bordo a seguir para realizar suas anotações iniciais sobre</p><p>nosso tema de estudo, e ao final da Unidade, retorne e complemente com as téc-</p><p>nicas e conhecimentos que você adquiriu.</p><p>81</p><p>O conceito de heurística aplicado a algoritmos de busca se utiliza de uma es-</p><p>timativa de custo para traçar uma rota de um nó origem para um nó destino.</p><p>Ele é representado por uma função h(n), na qual a estimativa para o cenário n é</p><p>calculada pela função (LEE, 2019).</p><p>A heurística deve refletir informações sobre o custo dos nós. Se utilizarmos</p><p>um mapa de distância entre duas cidades, um exemplo de heurística poderia ser</p><p>a distância em linha reta entre os dois locais (LORENA; GAMA; FACELI, 2000).</p><p>Alguns dos fatores que devem ser levados em conta para a definição de uma</p><p>heurística é que ela deve ser simples de ser computada, uma vez que, a cada</p><p>expansão dos nós, um cálculo matemático é feito, selecionando como nó para</p><p>expansão de acordo com uma ordenação dos custos das heurísticas. Além disso,</p><p>ao elaborar uma heurística, tende-se a simplificar o problema – ou seja, é preciso</p><p>extrair a heurística mais apropriada para o problema (RUSSELL; NORVIG, 2013).</p><p>Os autores ainda ressaltam que, em um problema no qual os nós são pontos</p><p>em um plano cartesiano, e o custo é a distância entre os pontos, podemos utilizar</p><p>como heurística a distância entre dois pontos no plano, pois sabemos que esse</p><p>custo não será maior que a distância entre dois pontos quaisquer.</p><p>Antes de analisarmos o exemplo dos algoritmos de busca utilizando heurís-</p><p>tica, vamos analisar algumas heurísticas para alguns problemas.</p><p>Em um problema no qual os nós são cidades, e o custo é o tempo gasto de</p><p>uma cidade para outra, podemos utilizar como heurística a distância até a cida-</p><p>de objetivo dividido pela velocidade máxima permitida, pois sabemos que esse</p><p>DIÁRIO DE BORDO</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>82</p><p>tempo não será menor do que o calculado (suponha que a velocidade máxima</p><p>será respeitada) (TAULLI, 2020).</p><p>Em jogos, a heurística também pode ser aplicada. Considere o quebra-cabeça</p><p>de 8 peças mostrado na Figura 1 a seguir:</p><p>3</p><p>1</p><p>4</p><p>2</p><p>8</p><p>5</p><p>7</p><p>6</p><p>Descrição da Imagem: A Figura 1 apresenta o</p><p>quebra-cabeça de 8 peças, com os números 3, 2</p><p>e 5 na primeira linha da esquerda para direita. Na</p><p>segunda linha os números 1, espaço em branco e</p><p>7, e por fim na terceira linha 4, 8 e 6.</p><p>Figura 1 – Exemplo de configuração inicial do que-</p><p>bra-cabeça de 8 peças / Fonte: o autor.</p><p>A partir de uma configuração qualquer do quebra-cabeça, deseja-se chegar à con-</p><p>figuração mostrada na Figura 2, ou em alguma das variações possíveis para o jogo.</p><p>1</p><p>4</p><p>7</p><p>2</p><p>8</p><p>3</p><p>65</p><p>Descrição da Imagem: A Figura 2 apresenta o</p><p>quebra-cabeça de 8 peças, com os números 1, 2</p><p>e 3 na primeira linha da esquerda para direita. Na</p><p>segunda linha os números 4, 5 e 6, e por fim na</p><p>terceira linha 7, 8 e o espaço em branco.</p><p>Figura 2 - Exemplo de configuração final do quebra-</p><p>-cabeça de 8 peças / Fonte: o autor.</p><p>Para este jogo, uma possível heurística é obter a quantidade de quadrados na</p><p>posição incorreta. Considerando a Figura 1, somente os números 2 e 8 estão na</p><p>posição correta, ou seja, temos uma possível heurística h(n) = 6, pois seis peças</p><p>estão em posições erradas. Assim precisaríamos realizar no mínimo seis movi-</p><p>mentos para chegar ao estado objetivo. Analisando o quebra-cabeça, percebemos</p><p>83</p><p>que a quantidade de movimentos real para se</p><p>chegar ao resultado desejado é bem maior do</p><p>que 6, mas a heurística continua válida (RUS-</p><p>SELL; NORVIG, 2013).</p><p>Russel e Norvig (2013) ainda citam um se-</p><p>gundo exemplo de heurística para o quebra-</p><p>-cabeça de 8 peças, que pode analisar as peças</p><p>individualmente e contar a quantidade de mo-</p><p>vimentos até a posição desejada. Por exemplo,</p><p>para que o bloco com o número 1 seja colocado</p><p>em sua posição final, considerando que não há</p><p>nenhum bloco no quebra-cabeça, ele precisaria</p><p>de apenas um movimento (para cima). Conside-</p><p>rando a mesma ideia para a peça com o número</p><p>3, seriam necessárias duas movimentações (duas</p><p>para a direita); e, assim, analisaríamos todas as</p><p>peças para obter a heurística de resolução do</p><p>quebra-cabeça.</p><p>Para o quebra-cabeça apresentado na Figura</p><p>1, temos que o custo estimado pela heurística</p><p>para cada peça é conforme a Tabela 1 a seguir.</p><p>Peça h(n)</p><p>1 1</p><p>3 2</p><p>4 1</p><p>5 2</p><p>6 1</p><p>7 3</p><p>Total h(n)</p><p>= 10</p><p>Tabela 1 – Heurística para cada uma das peças do quebra-ca-</p><p>beça de 8 peças da Figura 1 / Fonte: o autor.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>84</p><p>O objetivo de se utilizar a heurística para um problema é obter uma estimativa</p><p>que indique o grau de complexidade de resolução. Considerando, por exemplo,</p><p>a Figura 3, temos uma heurística de h(n) = 18, enquanto que o quebra-cabeça</p><p>da Figura 1 tem h(n) = 10 (mostrado também na Tabela 1). Assim, supõe-se que</p><p>resolver o quebra-cabeça da Figura 1 é mais fácil do que resolver o quebra-cabeça</p><p>da Figura 3 (RUSSELL; NORVIG, 2013).</p><p>Descrição da Imagem: A Figura 3 apresenta o</p><p>quebra-cabeça de 8 peças, com os números 6, 5</p><p>e 8 na primeira linha da esquerda para direita. Na</p><p>segunda linha, os números 3, 1 e 2, e, por fim, na</p><p>terceira linha, o espaço em branco, 4 e 7.</p><p>Figura 3 - Exemplo de configuração inicial do que-</p><p>bra-cabeça de 8 peças / Fonte: o autor.</p><p>6</p><p>3</p><p>7</p><p>5</p><p>4</p><p>8</p><p>21</p><p>Agora, vamos considerar a heurística aplicada a algoritmos de busca, tomando</p><p>como exemplo o mesmo grafo aplicado na Unidade 2, com os algoritmos de</p><p>Busca em Largura, Busca em Profundidade e Busca pelo Custo Mínimo, como</p><p>podemos ver na Figura 4.</p><p>A</p><p>B D</p><p>C E</p><p>F</p><p>7</p><p>7</p><p>4</p><p>4 3</p><p>5</p><p>3</p><p>2</p><p>2</p><p>Descrição da Imagem: A Figura 4 apresenta seis círculos, sendo que cada um deles apresenta dentro uma</p><p>letra (A, B, C, D, E, F), e alguns destes círculos estão ligados por arestas com números indicando o custo</p><p>da aresta (A para B com custo 7, A para C com custo 2, B para C com custo 4, B para D com custo 4, C para</p><p>D com custo 3, C para E c om custo 5, D para E com custo 3, D para F com custo 2, E para F com custo 7).</p><p>Figura 4 – Exemplo de grafo não direcionado com peso nas arestas / Fonte: o autor.</p><p>85</p><p>No entanto, precisamos definir um objetivo para o algo-</p><p>ritmo de busca, por exemplo, sair do nó A e ir para o nó F.</p><p>Utilizaremos como heurística uma representação da dis-</p><p>tância em linha reta entre os dois nós, conforme podemos</p><p>ver na Tabela 2.</p><p>Nó h(n) = distância até nó F</p><p>A 19</p><p>B 15</p><p>C 12</p><p>D 10</p><p>E 11</p><p>F 0</p><p>Tabela 2 – Um exemplo de heurística para o grafo da Figura 4</p><p>Fonte: o autor.</p><p>A Tabela 2 representa que uma estimativa de custo de A</p><p>para F é 19, de B para F é 15, e assim sucessivamente. Nessa</p><p>heurística podemos perceber que o custo real será menor</p><p>do que o custo da heurística, entretanto, isso ainda per-</p><p>manece útil como uma heurística válida, uma vez que as</p><p>estimativas são simples de calcular, e simplificam o cálculo</p><p>da distância entre os nós, mesmo que suponham um custo</p><p>maior do que o custo real (DE MEDEIROS, 2018).</p><p>Um algoritmo que utiliza heurísticas e pode ser uti-</p><p>lizado como algoritmo de busca é a busca heurística</p><p>pelo melhor primeiro, que é similar ao de busca pelo</p><p>custo mínimo, visto na Unidade 2. Porém, nesse mode-</p><p>lo, em vez de se ordenar a fila pelos custos das arestas</p><p>do grafo, ela é organizada de acordo com o custo das</p><p>heurísticas (LUGER, 2013).</p><p>A representação do algoritmo de busca heurística pelo</p><p>melhor primeiro pode ser vista a seguir.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>86</p><p>Entrada: um grafo</p><p>um conjunto de nós iniciais</p><p>uma estrutura de dados do tipo fila chamada fronteira ordenada</p><p>pelo heurística de cada nó</p><p>Fronteira:- {s: s é o nó inicial}</p><p>Enquanto fronteira não for vazia</p><p>remove o nó n do início de fronteira //Marca o nó como visitado e</p><p>constrói árvore de busca</p><p>para cada vizinho n do nó removido faça</p><p>adicione n ao fim da fila</p><p>Fim enquanto</p><p>A seleção dos nós se dá pelo nó da fronteira que tem o menor custo, de acordo</p><p>com a heurística do problema. Tomando como exemplo o grafo da Figura 4, e</p><p>considerando a heurística mostrada na Tabela 2, o processo de busca heurística</p><p>pelo melhor primeiro com o nó inicial A e nó destino F, inicia-se conforme a</p><p>Figura 5, somente com o nó A na fila, com um custo de expansão de 19 (RUS-</p><p>SELL; NORVIG, 2013).</p><p>Descrição da Imagem: A Figura 5 apresenta uma elipse com</p><p>a letra A inserido nela e o número 19.</p><p>Figura 5 - Resultado parcial da árvore de busca do algoritmo de</p><p>Busca Heurística pelo Melhor Primeiro / Fonte: o autor.A</p><p>19</p><p>Como a fila contém somente um nó de custo 19, o nó A é expandido (marcado</p><p>como cinza), e seus vizinhos são analisados, conforme descrito na Figura 6.</p><p>A</p><p>B</p><p>15</p><p>C</p><p>12</p><p>Descrição da Imagem: Apresenta uma elipse</p><p>cinza com a letra A inserido nela, ligada por duas</p><p>linhas a outras duas elipses brancas, sendo que</p><p>a elipse da esquerda contém a letra B e o núme-</p><p>ro 15, enquanto que a elipse da direita contém</p><p>a letra C e o número 12.</p><p>Figura 6 - Resultado parcial da árvore de busca</p><p>do algoritmo de Busca Heurística pelo Melhor Pri-</p><p>meiro / Fonte: o autor.</p><p>87</p><p>Após a expansão dos vizinhos de A, o nó B e C estão na fronteira, sendo que a</p><p>heurística de B tem valor 15, enquanto que a heurística de C tem custo 12. Assim,</p><p>o próximo nó a ser expandido pela busca heurística de melhor primeiro é o nó C.</p><p>Após a expansão do nó C, os nós que estão na fronteira são os nós em</p><p>branco da Figura 7.</p><p>A</p><p>B</p><p>15</p><p>C</p><p>D</p><p>12</p><p>B</p><p>15</p><p>E</p><p>10</p><p>Descrição da Imagem: apresenta uma elipse cinza com a letra A inserido nela, ligada por duas linhas</p><p>a outras duas elipses, sendo que a elipse da esquerda contém a letra B e o número 15, enquanto que</p><p>a elipse da direita é cinza e contém a letra C. Já a elipse com a letra C está ligada com mais três elipses</p><p>brancas, a da esquerda com a letra B e o número 15, a do meio com a letra D e o número 12, e a da direita</p><p>com a letra E e o número 10.</p><p>Figura 7 - Resultado parcial da árvore de busca do algoritmo de Busca Heurística pelo Melhor Pri-</p><p>meiro / Fonte: o autor.</p><p>Com os nós B (de A para B), B (de A para C e depois para B), D e E na fronteira,</p><p>analisando a heurística de cada um deles, o menor custo é o do nó E, que, então,</p><p>é expandido e marcado como visitado (cinza), e seus vizinhos são adicionados</p><p>na fronteira, conforme a Figura 8.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>88</p><p>A</p><p>B</p><p>15</p><p>C</p><p>D</p><p>12</p><p>B</p><p>15</p><p>E</p><p>D</p><p>10</p><p>F</p><p>0</p><p>Descrição da Imagem: apresenta uma elipse cinza com a letra A inserido nela, ligada por duas linhas</p><p>a outras duas elipses, sendo que a elipse da esquerda em branco contém a letra B, e o número 15, en-</p><p>quanto que a elipse da direita é cinza e contém a letra C. Já a elipse com a letra C está ligada com mais</p><p>três elipses, a da esquerda em branco com a letra B e o número 15, a do meio, também branca, com a</p><p>letra D e o número 12, e a da direita, em cinza, com a letra E. Esta elipse com a letra E, por sua vez, se</p><p>liga a outras duas elipses brancas, sendo a da esquerda com a letra D e o número 10, e a da direita com</p><p>a letra F e o número 0.</p><p>Figura 8 - Resultado parcial da árvore de busca do algoritmo de Busca Heurística pelo Melhor Pri-</p><p>meiro / Fonte: o autor.</p><p>Com essa expansão do nó E, o nó destino F aparece na fronteira, e, como a heu-</p><p>rística do nó F tem custo 0, ele deve ser o próximo nó a ser expandido, conforme</p><p>visualizado na Figura 9.</p><p>89</p><p>A</p><p>B</p><p>15</p><p>C</p><p>D</p><p>12</p><p>B</p><p>15</p><p>E</p><p>D</p><p>10</p><p>F</p><p>0</p><p>Descrição da Imagem: apresenta uma elipse cinza com a letra A inserido nela, ligada por duas linhas</p><p>à outras duas elipses, sendo que a elipse da esquerda contém a letra B e o número 15, enquanto que</p><p>a elipse da direita é cinza e contém a letra C. Já a elipse com a letra C está ligada com mais três elipses,</p><p>a da esquerda em branco com a letra B e o número 15, a do meio, também branca, com a letra D e o</p><p>número 12, e a da direita, em cinza, com a letra E. Esta elipse com a letra E, por sua vez, se liga a outras</p><p>duas elipses, sendo a da esquerda branca com a letra D e o número 10, e a da direita em cinza com a</p><p>letra F e o número 0.</p><p>Figura 9 - Resultado parcial da árvore de busca do algoritmo de Busca Heurística pelo Melhor Pri-</p><p>meiro / Fonte: o autor.</p><p>Com o nó F atingido pelo processo de busca, a busca heurística pelo melhor</p><p>primeiro é encerrada, resultando na seguinte árvore de busca:</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>90</p><p>A</p><p>C</p><p>E</p><p>F</p><p>A partir da árvore de busca mostrada anteriormente, po-</p><p>demos perceber que o caminho que o método de busca</p><p>heurística pelo melhor primeiro escolhe para</p><p>sair do nó</p><p>A para o nó F é A → C → E → F. Este caminho tem um</p><p>custo total de 14 (2 + 5 + 7). Porém, também é possível</p><p>notar que, pelo grafo, este caminho não é o menor ca-</p><p>minho entre A e F. O menor caminho entre A e F é A →</p><p>C → D → F com custo 7 (RUSSELL; NORVIG, 2013).</p><p>O fato de a busca heurística pelo menor primeiro</p><p>não encontrar o menor caminho entre dois nós faz</p><p>com que esse processo não seja ótimo, uma vez que ele</p><p>encontra um caminho entre dois nós (se esse caminho</p><p>existir), mas o processo não garante encontrar o menor</p><p>caminho, como aconteceu no exemplo (LUGER, 2013).</p><p>Descrição da Imagem: apresenta uma elipse cinza com a letra A, ligada</p><p>a uma elipse cinza com a letra C, que por sua vez também se liga a</p><p>uma elipse cinza com a letra E, que por fim se liga a uma elipse cinza</p><p>com a letra F.</p><p>Figura 10 - Árvore de busca do algoritmo de Busca Heurística pelo</p><p>Melhor Primeiro / Fonte: o autor.</p><p>Outro ponto a se destacar, é que processo de busca heurística pelo menor</p><p>primeiro pode ficar em loop em determinadas situações, casos em que um</p><p>grafo é orientado, e os valores das arestas são negativos em algum momento</p><p>(RUSSELL; NORVIG, 2013).</p><p>Em relação ao custo de memória utilizada pelo processo, é a mesma quan-</p><p>tidade do processo de busca em largura vista na Unidade 2, uma vez que os nós</p><p>precisam ser adicionados à fila, e ordenados de acordo com a heurística.</p><p>Outro método de busca heurística que pode ser utilizado é o de Busca A*</p><p>(chamado de A estrela). Este processo, além de utilizar a heurística como critério</p><p>de seleção dos nós, utiliza também o custo real entre os nós, criando uma função</p><p>f(n) que depende de h(n) que é a heurística adotada no problema, e g(n) que é o</p><p>custo do caminho do nó inicial até o nó “n” qualquer (RUSSELL; NORVIG, 2013).</p><p>Este método combina a busca pelo menor primeiro, e a busca heurística</p><p>pelo menor primeiro, somando os dois valores para gerar a função f(n) do</p><p>91</p><p>processo, que é o valor utilizado na ordenação da fronteira. O algoritmo</p><p>também utiliza uma pilha, diferenciando-se dos demais, pois aa Busca A*</p><p>ordena os nós de acordo com f(n) (LUGER, 2013).</p><p>Considerando o grafo da Figura 11, e a heurística definida na Tabela 3, o</p><p>processo da Busca A* tomando como nó inicial o nó A e nó destino o nó F, o</p><p>processo inicia-se com o nó origem A na fronteira, tal como mostra a Figura 12.</p><p>A</p><p>B D</p><p>C E</p><p>F</p><p>7</p><p>7</p><p>4</p><p>4 3</p><p>5</p><p>3</p><p>2</p><p>2</p><p>Descrição da Imagem: apresenta seis círculos, sendo que cada um deles apresenta dentro uma letra</p><p>(A, B, C, D, E, F), e alguns destes círculos estão ligados por arestas com números indicando o custo da</p><p>aresta (A para B com custo 7, A para C com custo 2, B para C com custo 4, B para D com custo 4, C para</p><p>D com custo 3, C para E com custo 5, D para E com custo 3, D para F com custo 2, E para F com custo 7).</p><p>Figura 11 - Exemplo de grafo não direcionado com peso nas arestas / Fonte: o autor.</p><p>Nó h(n) = distância até nó F</p><p>A 19</p><p>B 15</p><p>C 12</p><p>D 10</p><p>E 11</p><p>F 0</p><p>Tabela 3 – Exemplo de heurística para o grafo da</p><p>Figura 11 / Fonte: o autor.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>92</p><p>A representação numérica da Figura 12 indica primeiro o custo real até o nó, 0 e</p><p>a heurística do nó A, 19. Assim, o custo de expansão do nó A é 19, e, como ele é o</p><p>único nó na fronteira, é o nó expandido, sendo que após a expansão a represen-</p><p>tação parcial da árvore da Busca A* pode ser vista na Figura 13.</p><p>A</p><p>0 + 19 = 19</p><p>Descrição da Imagem: apresenta uma elipse branca, com a</p><p>letra A inserida nela, e a expressão matemática 0+19=19.</p><p>Figura 12 - Resultado parcial da árvore de busca do algoritmo</p><p>de Busca A* / Fonte: o autor.</p><p>A</p><p>C</p><p>2 + 12 = 14</p><p>B</p><p>7 + 15 = 22</p><p>Descrição da Imagem: A Figura 13 apre-</p><p>senta uma elipse cinza, com a letra A</p><p>inserida nela, e esta elipse está ligada à</p><p>outras duas elipses em branco, sendo a</p><p>da esquerda com a letra B e a expressão</p><p>7+15=22, e a elipse da direita com a letra</p><p>C, e a expressão 2+12=14.</p><p>Figura 13 - Resultado parcial da árvore de</p><p>busca do algoritmo de Busca A*</p><p>Fonte: o autor.</p><p>Com a expansão do nó A, seus dois vizinhos, B e C, são adicionados na fronteira, e</p><p>seus custos podem ser visualizados na Figura indicada anteriormente – o custo de B</p><p>é representado por 7 + 15 = 22, sendo que 7 é o custo de ir de A para B, e 15 representa</p><p>a heurística do nó B, resultando em um custo total de 22. Já para o nó C, o custo de A</p><p>para C é de 2, e a heurística do nó C é 12, resultando em um custo total de 14.</p><p>Analisando os custos totais, o custo de expansão do nó C é menor do que o</p><p>do nó B (14 < 22), assim, o nó C é expandido e sua representação pode ser vista</p><p>na Figura 14.</p><p>93</p><p>Com essa próxima expansão, os vizinhos de C também são adicionados à fron-</p><p>teira. Nesse ponto, temos como nós não visitados representados na Figura o nó</p><p>B (partindo direto de A, com custo 22), o nó B (passando por C primeiro com</p><p>custo de 2 + 4 = 6 somado à heurística de B que é 15, resultando em custo total</p><p>de 21). Além disso, o nó D também é representado, com um custo de 5 somado</p><p>com a heurística de D que é 10, resultando em um custo de 15; e, por fim, o nó</p><p>E, que tem custo até ele de 7, somado com a sua heurística que é 11, resultando</p><p>em um custo real de 18.</p><p>A</p><p>B</p><p>7 + 15 = 22</p><p>E</p><p>7 + 11 = 18</p><p>D</p><p>5 + 10 = 15</p><p>B</p><p>6 + 15 = 21</p><p>C</p><p>Descrição da Imagem: apresenta uma elipse cinza com a letra A inserida nela, e esta elipse está ligada</p><p>à outras duas elipses, sendo a da esquerda com a letra B e a expressão 7+15=22, e a elipse da direita,</p><p>em cinza, com a letra C. A elipse com a letra C se conecta a outras três elipses em branco, a da esquerda</p><p>com a letra B e a expressão 6+15=21, a do meio com a letra D e a expressão 5+10=15, e a da direita com</p><p>a letra E e a expressão 7+11=18.</p><p>Figura 14 - Resultado parcial da árvore de busca do algoritmo de Busca A* / Fonte: o autor.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>94</p><p>A partir destes custos, o próximo nó a ser expandido é o nó D, e, após sua ex-</p><p>pansão, a representação parcial da árvore de busca pode ser visto na Figura 15.</p><p>A</p><p>B</p><p>7 + 15 = 22</p><p>E</p><p>7 + 11 = 18</p><p>DB</p><p>6 + 15 = 21</p><p>F</p><p>7 + 0 = 7</p><p>E</p><p>8 + 11 = 19</p><p>B</p><p>6 + 15 = 21</p><p>C</p><p>Descrição da Imagem: apresenta uma elipse cinza, com a letra A inserida nela, e esta elipse está ligada</p><p>com mais duas elipses, sendo a da esquerda com a letra B e a expressão 7+15=22, e a elipse da direita,</p><p>em cinza, com a letra C. A elipse com a letra C se conecta a outras três elipses, a da esquerda em branco</p><p>com a letra B e a expressão 6+15=21, a do meio em cinza com a letra D, e a da direita em branco com a</p><p>letra E e a expressão 7+11=18. A elipse com a letra D, por sua vez, também se liga a outras três elipses</p><p>em branco, a da esquerda com a letra B e a expressão 6+15=21, a do meio com a letra E e a expressão</p><p>8+11=19 e a da direita com a letra F e a expressão 7+0=7.</p><p>Figura 15 – Resultado parcial da árvore de busca do algoritmo de Busca A* / Fonte: o autor.</p><p>Com a expansão do nó D, tem-se os mesmos custos anteriores, e novos caminhos</p><p>a partir de D, sendo um novo caminho para B, com custo 21 (A → C → D → B),</p><p>um caminho para E, com custo 19 (A → C → D → E), e um caminho para o nó</p><p>objetivo F (A → C → D → F), com custo 7. O nó objetivo F é então expandido</p><p>resultando na representação vista na Figura 16.</p><p>95</p><p>A partir da expansão do nó destino, tem-se que a heurística até ele é representada</p><p>como 0, e o seu custo real é 7, indicado como 7 + 0 = 7, como visto na Figura</p><p>15. Isso indica que o custo real até o nó F encontrado é 7, e o caminho até ele é</p><p>formado partindo do nó raiz da árvore (A), passando pelo nó C, depois nó D, e</p><p>chegando ao nó destino F (RUSSELL; NORVIG, 2013).</p><p>Analisando o grafo original do problema, podemos perceber que o custo 7 é o</p><p>menor caminho existente no grafo partindo de A e tomando F como nó destino.</p><p>A</p><p>B</p><p>7 + 15 = 22</p><p>E</p><p>7 + 11 = 18</p><p>DB</p><p>6 + 15 = 21</p><p>FE</p><p>8 + 11 = 19</p><p>B</p><p>6 + 15 = 21</p><p>C</p><p>Descrição da Imagem: apresenta uma elipse cinza, com a letra A inserida nela, e esta elipse está ligada</p><p>com mais duas elipses, sendo a da esquerda em branco com a letra B e a expressão 7+15=22, e a elipse</p><p>da</p><p>direita, em cinza, com a letra C. Já a elipse com a letra C se conecta a outras três elipses, a da esquerda em</p><p>branco com a letra B e a expressão 6+15=21, a do meio em cinza com a letra D, e a da direita em branco</p><p>com a letra E e a expressão 7+11=18. A elipse com a letra D por sua vez também se liga a outras três</p><p>elipses, a da esquerda em branco, com a letra B e a expressão 6+15=21, a do meio, também em branco,</p><p>com a letra E e a expressão 8+11=19 e a da direita em cinza, com a letra F.</p><p>Figura 16 - Resultado parcial da árvore de busca do algoritmo de Busca A* / Fonte: o autor.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>96</p><p>Diferentemente da busca heurística pelo menor primeiro, a Busca A* garante</p><p>encontrar o menor caminho entre dois nós (LUGER, 2013).</p><p>Alguns casos em que a Busca A* pode não encontrar o menor caminho, e</p><p>ficar presa em ciclos, acontecem quando os custos dos caminhos são negativos,</p><p>quando o fator de ramificação dos nós (quantidade de filhos de um nó) é infinito</p><p>e quando a heurística não é admissível (RUSSELL; NORVIG, 2013).</p><p>Caro(a) estudante, agora vamos bater um papo novamente</p><p>com a Alexa, questionando sobre diversos conceitos rela-</p><p>cionados às heurísticas aplicadas à Inteligência Artificial, e</p><p>problemas para os quais a heurística pode ser aplicada.</p><p>https://apigame.unicesumar.edu.br/qrcode/11015</p><p>97</p><p>Aplicando o problema de busca no mundo real, podemos analisar um estudo de</p><p>caso com o Mapa da Romênia, visto na Figura 17.</p><p>Oradea</p><p>Zerind</p><p>Sibiu</p><p>Rimnicu Vilcea</p><p>Pitesti</p><p>Giurgiu</p><p>Bucharest</p><p>Urziceni</p><p>Hirsova</p><p>Vaslui</p><p>Iasi</p><p>Neamt</p><p>Eforie</p><p>Fagaras</p><p>Arad</p><p>Timisoara</p><p>Lugoj</p><p>Mehadia</p><p>Drobeta</p><p>Craiova</p><p>71</p><p>75 151</p><p>99</p><p>80</p><p>97</p><p>146</p><p>138</p><p>101 85</p><p>98</p><p>86</p><p>142</p><p>92</p><p>87</p><p>90</p><p>211</p><p>140</p><p>118</p><p>111</p><p>70</p><p>75</p><p>120</p><p>Descrição da Imagem: apresenta pontos com arestas ligando-os, sendo que os pontos representam as</p><p>cidades da Romênia, e as arestas indicam as distâncias entre as cidades. As cidades e distâncias são: Arad e</p><p>Zerind (75), Arad e Timisoara (118), Arad e Sibiu (140), Zerind e Oradea (71), Timisoara e Lugoj (111), Oradea</p><p>e Sibiu (151), Lugoj e Mehadia (70), Mehadia e Drobeta (75), Sibiu e Fagaras (99), Sibiu e Rimnicu Vilcea</p><p>(80), Drobeta e Craiova (120), Craiova e Rimnicu Vilcea (146), Fagaras e Bucharest (211), Rimnicu Vilcea e</p><p>Pitest (97), Craiova e Pitesti (138), Pitesti e Bucharest (101), Bucharest e Giorgiu (90), Bucharest e Urziceni</p><p>(85), Urziceni e Hirsova (98), Hirsova e Eforie (86), Urziceni e Vaslui (142), Vaslui e Iasi (92), Iasi e Neamt (87).</p><p>Figura 17 – Estudo de caso com grafo não direcionado com pesos nas arestas, representando o mapa</p><p>da Romênia / Fonte: Russell, Norvig, 2013 página. 62</p><p>O mapa mostra as cidades e as distâncias entre cada uma das cidades. Para este</p><p>exemplo, tomaremos como ponto de partida a cidade de Arad e como destino a</p><p>cidade de Bucharest. Sendo assim, a Tabela 4 representa a heurística aplicada ao</p><p>problema, levando em conta como heurística a distância em linha reta de cada</p><p>uma das cidades até a cidade destino Bucharest (RUSSELL; NORVIG, 2013).</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>98</p><p>Cidade Distância em linha reta para Bucharest</p><p>Arad 366</p><p>Bucharest 0</p><p>Craiova 160</p><p>Dobreta 242</p><p>Eforte 161</p><p>Fagaras 178</p><p>Giurgiu 77</p><p>Hirsova 151</p><p>Iasi 226</p><p>Lugoj 244</p><p>Mehadia 241</p><p>Neamt 234</p><p>Oradea 380</p><p>Pitesti 98</p><p>Rimnicu Vilcea 193</p><p>Sibiu 253</p><p>Timisoara 329</p><p>Urziceni 80</p><p>Vasluj 199</p><p>Zerind 374</p><p>Tabela 4 – Exemplo de Heurística para cada um dos nós da Figura 17</p><p>Fonte: Russell; Norvig, 2013, p. 83</p><p>De acordo com a Tabela indicada anteriormente, a distância em linha reta entre Arad</p><p>e Bucharest é de 366, obviamente que a distância de Bucharest até Bucharest é 0, a</p><p>distância em linha reta entre Craiova e Bucharest é de 160, e assim sucessivamente.</p><p>99</p><p>O processo de busca com o nó inicial em Arad e nó destino Bucharest utilizando</p><p>a busca em largura temos a seguinte árvore representada na Figura 18.</p><p>Arad</p><p>Timisoara Zerind</p><p>LugojRimnicu</p><p>Vilcea</p><p>Oradea</p><p>Sibiu</p><p>Fagaras</p><p>Bucharest</p><p>Descrição da Imagem: A Figura 18 apresenta uma elipse em cinza com a inscrição Arad, essa elipse se</p><p>liga a outras três também em cinza, com as inscrições Sibiu, Timisoara e Zerind. A elipse Sibiu também</p><p>se liga a outras três elipses em cinza, uma com a inscrição Fagaras, uma Oradea e uma Rimnicu Vilcea. A</p><p>elipse com a inscrição Timisoara se liga a outra elipse cinza com a inscrição Lugoj, e, por fim, a elipse com</p><p>a inscrição Fagaras se liga a uma outra elipse cinza com a inscrição Bucharest.</p><p>Figura 18 – Árvore de busca resultante do Busca em Largura para o Mapa da Romênia da Figura 17.</p><p>Fonte: o autor.</p><p>O caminho encontrado pelo processo de busca em largura até Bucharest não é</p><p>o menor caminho possível (o menor caminho passa por Pitesti com custo de</p><p>418), enquanto que o caminho encontrado pelo busca em largura tem custo 450</p><p>(RUSSELL; NORVIG, 2013).</p><p>Já para o processo de Busca em Profundidade, ainda tomando como nó inicial</p><p>Arad e nó destino Bucharest, temos como resultado a árvore de Busca da Figura 19.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>100</p><p>Percebe-se, novamente, que tal como a busca em largura, a busca em profundi-</p><p>dade não encontra o menor caminho entre Arad e Bucharest.</p><p>Agora, para o processo de busca pelo menor primeiro, a árvore resultante</p><p>pode ser vista na Figura 20.</p><p>Arad</p><p>Timisoara Zerind</p><p>Rimnicu</p><p>Vilcea</p><p>Sibiu</p><p>Fagaras</p><p>Bucharest</p><p>Descrição da Imagem: A Figura 19 apresenta uma elipse cinza com a inscrição Arad, esta elipse se conecta</p><p>a outras três elipses com as inscrições Sibiu em cinza, Timisoara em branco e Zerind em branco. A elipse</p><p>com a inscrição Sibiu por sua vez se conecta com outras duas elipses, uma com a inscrição Fagaras em</p><p>cinza, e outra com a inscrição Rimnicu Vilcea em branco. E, por fim, a elipse de Fagaras se liga a outra</p><p>elipse cinza com a inscrição Bucharest.</p><p>Figura 19 - Árvore de busca resultante do Busca em Profundidade para o Mapa da Romênia da Figura</p><p>17 / Fonte: o autor.</p><p>101</p><p>Para a busca pelo menor primeiro, podemos perceber que a árvore de busca fica ex-</p><p>tensa, uma vez que o processo sempre prioriza ir para a próxima cidade mais perto,</p><p>demorando até encontrar o caminho até Bucharest. Entretanto, o processo acaba</p><p>por encontrar o menor caminho, com custo 418, diferentemente dos dois processos</p><p>de busca anteriores (largura e profundidade) (RUSSELL; NORVIG, 2013).</p><p>Arad</p><p>Timisoara Zerind</p><p>Zerind</p><p>Oradea</p><p>Sibiu</p><p>Fagaras Rimnicu</p><p>Vilcea</p><p>Arad</p><p>443</p><p>Arad</p><p>437</p><p>Bucharest</p><p>607</p><p>Bucharest</p><p>418</p><p>Craiova</p><p>523</p><p>Pitesti</p><p>474</p><p>Pitesti</p><p>Pitesti</p><p>504</p><p>Lugoj</p><p>Mehadia</p><p>DobretaDobreta</p><p>486</p><p>Craiova</p><p>494</p><p>Craiova</p><p>455</p><p>Craiova</p><p>Oradea Rimnicu</p><p>Vilcea</p><p>Sibiu</p><p>Fagaras</p><p>Bucharest</p><p>450</p><p>Descrição da Imagem: A Figura 20 apresenta uma elipse cinza com a inscrição Arad e esta elipse se conecta</p><p>a três elipses em cinza, Sibiu do lado esquerdo, Timisoara no centro e Zerindo do lado direito. No lado es-</p><p>querdo, Sibiu se conecta a três elipses em cinza, uma com a inscrição Fagaras, uma Rimnicu Vilcea e outra</p><p>com Oradea. A elipse de Fagaras se liga a outra elipse em cinza com a inscrição Bucharest e o número 450.</p><p>A elipse de Rimnicu Vilcea se conecta a outras duas elipses em cinza, Craiova e Pitesti, sendo que Craiova</p><p>também se conecta a outras duas elipses em branco, Dobreta 486 e Pitesti 504. Já a elipse de Pitesti em cinza,</p><p>se conecta a outras duas elipses em branco, Bucharest 418 e Craiova 455, e, por fim, Oradea se conecta a</p><p>uma elipse cinza Zerind que por sua vez se conecta a uma elipse em branco Arad 437. No centro da Figura, a</p><p>elipse em cinza de Timisoara se conecta a outra cinza de Lugoj, que também se conecta a outra elipse cinza</p><p>de Mehadia, também se ligando a outra de Dobreta, e, por fim, se conectando a uma elipse branca Criova</p><p>494. No lado direito, a elipse em cinza de Zerind, se conecta a uma elipse cinza de Oradea, que se conecta</p><p>a outra de Sibiu, que se liga a três elipses, Arad 443 em branco, Fagaras em cinza e Rimnicu Vilcea em cinza.</p><p>Esta elipse de Fagaras se conecta a outra elipse em branco de Bucharest 607, e, por fim, a elipse em cinza</p><p>de Rimnicu Vilcea</p><p>humano para auxiliar em algumas tarefas.</p><p>Em relação à compra da casa, o que se pode tratar visando ter uma resposta eficiente é,</p><p>se o valor do gasto não comprometer mais de 30% da renda mensal, pode ser uma boa ideia</p><p>a compra. No entanto, sem analisar dados específicos, podemos ter variações para cada caso.</p><p>A ideia é que, com base nestes dados, podemos pensar em uma solução para cada</p><p>tipo de usuário, indicar se é uma vantagem ou não a compra do imóvel e, consequen-</p><p>temente, o empréstimo no banco. Entretanto, cabe ressaltar que cada usuário define</p><p>suas prioridades, metas e objetivos para deixar a inteligência artificial e a análise dos</p><p>dados gerar uma resposta com base nas suas informações.</p><p>A partir desta análise inicial sobre a matéria de inteligência artificial, convido você,</p><p>caro(a) estudante, para aprimorarmos nossos conhecimentos sobre Inteligência artifi-</p><p>cial e suas técnicas e aplicações, vamos lá?</p><p>IMERSÃO</p><p>RECURSOS DE</p><p>Ao longo do livro, você será convida-</p><p>do(a) a refletir, questionar e trans-</p><p>formar. Aproveite este momento.</p><p>PENSANDO JUNTOS</p><p>NOVAS DESCOBERTAS</p><p>Enquanto estuda, você pode aces-</p><p>sar conteúdos online que amplia-</p><p>ram a discussão sobre os assuntos</p><p>de maneira interativa usando a tec-</p><p>nologia a seu favor.</p><p>Sempre que encontrar esse ícone,</p><p>esteja conectado à internet e inicie</p><p>o aplicativo Unicesumar Experien-</p><p>ce. Aproxime seu dispositivo móvel</p><p>da página indicada e veja os recur-</p><p>sos em Realidade Aumentada. Ex-</p><p>plore as ferramentas do App para</p><p>saber das possibilidades de intera-</p><p>ção de cada objeto.</p><p>REALIDADE AUMENTADA</p><p>Uma dose extra de conhecimento</p><p>é sempre bem-vinda. Posicionando</p><p>seu leitor de QRCode sobre o códi-</p><p>go, você terá acesso aos vídeos que</p><p>complementam o assunto discutido.</p><p>PÍLULA DE APRENDIZAGEM</p><p>OLHAR CONCEITUAL</p><p>Neste elemento, você encontrará di-</p><p>versas informações que serão apre-</p><p>sentadas na forma de infográficos,</p><p>esquemas e fluxogramas os quais te</p><p>ajudarão no entendimento do con-</p><p>teúdo de forma rápida e clara</p><p>Professores especialistas e convi-</p><p>dados, ampliando as discussões</p><p>sobre os temas.</p><p>RODA DE CONVERSA</p><p>EXPLORANDO IDEIAS</p><p>Com este elemento, você terá a</p><p>oportunidade de explorar termos</p><p>e palavras-chave do assunto discu-</p><p>tido, de forma mais objetiva.</p><p>Quando identificar o ícone de QR-CODE, utilize o aplicativo Unicesumar</p><p>Experience para ter acesso aos conteúdos on-line. O download do</p><p>aplicativo está disponível nas plataformas: Google Play App Store</p><p>https://apigame.unicesumar.edu.br/qrcode/3881</p><p>APRENDIZAGEM</p><p>CAMINHOS DE</p><p>1 2</p><p>3 4</p><p>5</p><p>FUNDAMENTOS</p><p>DA</p><p>INTELIGÊNCIA</p><p>ARTIFICIAL</p><p>11</p><p>ALGORITMOS</p><p>DE BUSCA</p><p>44</p><p>79</p><p>BUSCA HEURÍSTICA</p><p>E RESOLUÇÃO DE</p><p>PROBLEMAS DE</p><p>BUSCA</p><p>107</p><p>PROBLEMA DE</p><p>SATISFAÇÃO E</p><p>RESTRIÇÃO</p><p>147</p><p>REPRESENTAÇÃO</p><p>DO</p><p>CONHECIMENTO E</p><p>ROBÓTICA</p><p>1Fundamentos</p><p>da Inteligência</p><p>Artificial</p><p>Me. Maurilio Martins Campano Júnior</p><p>Nesta Unidade, trabalharemos história da inteligência artificial, abor-</p><p>dando desde os fundamentos básicos da IA, além de analisar outras</p><p>áreas que contribuem com a área, como a matemática, engenharia,</p><p>entre outras. Veremos também um dos principais conceitos da IA, os</p><p>agentes, caracterizando-os e analisando os tipos de agentes e suas</p><p>formas de implementação.</p><p>UNIDADE 1</p><p>12</p><p>Sempre nos questionamos de onde surgiram, como foram cria-</p><p>das, de onde vieram determinadas coisas. Com a Inteligência</p><p>Artificial não é diferente, você, aluno, sabe de onde surgiu a In-</p><p>teligência Artificial? A história da Inteligência Artificial aborda</p><p>acontecimentos que geraram grande repercussão. Além destes</p><p>acontecimentos, a IA toma como base diversas áreas do conhe-</p><p>cimento para formar as suas principais características, tal como</p><p>as primeiras definições de um agente inteligente.</p><p>O termo “inteligência artificial” foi utilizado pela primeira vez</p><p>em um seminário com pesquisadores em diversas áreas, no ano</p><p>de 1956, mas só com o avanço da tecnologia, e principalmente da</p><p>Ciência da Computação, que a IA (ou pela sigla em inglês AI - Ar-</p><p>tificial Intelligence) passou a se relacionar mais com a informática.</p><p>Para entender os conceitos atuais da IA, precisamos enten-</p><p>der como foi seu início, entender suas bases, relacionando os</p><p>conceitos utilizados no princípio da inteligência com os con-</p><p>ceitos atuais, para, assim, perceber sua evolução nos diversos</p><p>equipamentos, máquinas e dispositivos inteligentes.</p><p>Analise o cenário atual em que vivemos. Faça uma reflexão</p><p>acerca dos diversos componentes, dispositivos e técnicas da</p><p>inteligência artificial que são utilizados no dia a dia. Pense</p><p>e liste cinco serviços que utilizam da inteligência artificial e</p><p>estão presentes na sua vida.</p><p>Diversos serviços fazem recomendações de filmes, séries e</p><p>músicas com base no seu gosto. Dispositivos inteligentes que</p><p>“percebem” padrões do usuário e podem agir de acordo com</p><p>estes sem intervenção do usuário. Cada um desses serviços apre-</p><p>senta conceitos e visões diferentes da inteligência artificial; por</p><p>isso, estudar a história e evolução da IA ajuda a compreender</p><p>ainda mais o funcionamento destes serviços. Aproveite seu diá-</p><p>rio de bordo para listar onde você consegue perceber a aplicação</p><p>desses serviços e suas primeiras impressões sobre o assunto. Ao</p><p>final da Unidade, retorne a essas anotações, reveja-as e comple-</p><p>mente-as a partir dos conceitos vistos aqui. Vamos lá?</p><p>13</p><p>A história da inteligência artificial pode ser dividida em fases de acordo</p><p>com os acontecimentos importantes que envolvem a área. As fases da IA po-</p><p>dem ser vistas a seguir, e uma descrição de alguns dos eventos importantes</p><p>em cada uma delas (RUSSELL; NORVIG, 2013).</p><p>De acordo com Russel e Norvig (2013), uma das primeiras etapas da inteli-</p><p>gência artificial pode ser chamada de gestação da IA, na qual os primórdios da</p><p>IA acontecem em meados do ano de 1943, quando Warren McCulloch e Walter</p><p>Pitts desenvolvem um artefato para funcionar como um modelo de neurônio</p><p>artificial. O modelo desenvolvido se utilizava de chaves ligado/desligado para</p><p>ativar os neurônios e transmitir informações aos neurônios vizinhos</p><p>Nesse período, Alan Turing também publicou seu artigo chamado “Compu-</p><p>ting Machinery and Intelligence”, que postulava sobre os conceitos de inteligência</p><p>artificial e o Teste de Turing, além de definir modelos matemáticos para a resolu-</p><p>ção de problemas, a chamada “Máquina de Turing” (TURING, 1950).</p><p>Na mesma época que Turing publicava seu artigo, Marvins Minsky e Dean Ed-</p><p>monds, dois pesquisadores na área de matemática e física, respectivamente, pesqui-</p><p>saram conceitos relacionados à inteligência artificial e desenvolveram o SNARC, um</p><p>computador que envolvia conceitos de redes neurais, baseado na Máquina de Turing.</p><p>Em seguida, a etapa chamada de nascimento da IA surgiu a partir do ano</p><p>de 1956, quando alguns pesquisadores na área de IA perceberam a necessidade</p><p>DIÁRIO DE BORDO</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>14</p><p>da comunicação e organização das informações relacionadas à área. Assim, or-</p><p>ganizaram um evento com uma série de palestras e conversas acerca do tema.</p><p>O evento teve duração aproximada de dois meses, contando com cerca de 10</p><p>pesquisadores relacionados à área, e os participantes puderam compartilhar so-</p><p>bre suas descobertas, suas experiências, entre outras atividades. Somente neste</p><p>evento que foi sugerido o uso do termo “inteligência artificial”, que até então não</p><p>era utilizado pelos participantes (DE MEDEIROS, 2018).</p><p>De acordo com Russell e Norvig (2013), ainda no evento, Allen Newell e</p><p>Herbert Simon apresentaram o Logic Theorist, um programa de raciocínio</p><p>capaz de raciocinar e provar teoremas matemáticos. O Logic Theorist fez su-</p><p>cesso no evento, e chegou a provar teoremas matemáticos com maior precisão</p><p>do que os livros-base utilizados pelos pesquisadores.</p><p>Após o sucesso do evento organizado pelos pesquisadores, eles conseguiram</p><p>realizar uma grande quantidade de tarefas que, até então, acreditava-se que os</p><p>computadores não seriam capazes de resolver. Essa etapa na história da IA foi</p><p>chamada de entusiasmo inicial, grandes expectativas.</p><p>se conecta a duas elipses em branco de Craiova 523 e Pitesti 474.</p><p>Figura 20 - Árvore de busca resultante do Busca pelo Menor Primeiro para o Mapa da Romênia da</p><p>Figura 17 / Fonte: o autor.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>102</p><p>Utilizando as heurísticas vistas nesta Unidade, o processo de busca heurística pelo</p><p>melhor primeiro, novamente tomando Arad como nó inicial e Bucharest como</p><p>nó destino, resulta na seguinte árvore de busca da Figura 21.</p><p>Descrição da Imagem: A Figura 21 apresenta uma elipse em cinza com a inscrição Arad, que se conecta</p><p>a outras três elipses, uma em cinza inscrito Sibiu 253, outra em branco inscrito Timisoara 329 e outra</p><p>Zerind 374. A elipse de Sibiu 253 também se liga a outras três elipses, em cinza Fagaras 178, em branco</p><p>Rimnicu Vilcea 193 e em branco Oradea 380, e, por fim, a elipse em cinza de Fagaras 178 se conecta a</p><p>elipse em cinza de Bucharest 0.</p><p>Figura 21 - Árvore de busca resultante da Busca Heurística pelo Melhor Primeiro para o Mapa da</p><p>Romênia da Figura 17 / Fonte: o autor.</p><p>Arad</p><p>Timisoara</p><p>329</p><p>Zerind</p><p>374</p><p>Rimnicu</p><p>Vilcea</p><p>193</p><p>Sibiu</p><p>253</p><p>Fagaras</p><p>178</p><p>Oradea</p><p>380</p><p>Bucharest</p><p>0</p><p>Para esse processo, o menor caminho não é encontrado, tal como os processos</p><p>por largura e profundidade. Porém, a árvore é relativamente pequena, fato que</p><p>indica uma complexidade de espaço consideravelmente baixa (LUGER, 2013).</p><p>E por fim, tomando como método de busca a Busca A*, a árvore resultante</p><p>pode ser visualizada na Figura 22.</p><p>103</p><p>A busca A* também retorna o menor custo entre Arad e Bucharest (418), tal como a</p><p>busca pelo menor primeiro. Entretanto, ao comparar o tamanho das árvores ,pode-se</p><p>perceber que a busca A* tem um gasto de memória menor, uma vez que é necessária</p><p>a geração de uma menor quantidade de nós na árvore (RUSSELL; NORVIG, 2013).</p><p>Arad</p><p>Timisoara</p><p>118 + 329 = 447</p><p>Fagaras</p><p>239 + 178 = 417</p><p>Craiova</p><p>366 + 160 = 526</p><p>Oradea</p><p>291 + 380 = 671</p><p>Zerind</p><p>75 + 374 = 449</p><p>Rimnicu</p><p>Vilcea</p><p>Pitesti</p><p>Craiova</p><p>495 + 160 = 655</p><p>Bucharest</p><p>Sibiu</p><p>Descrição da Imagem: A Figura 22 apresenta uma elipse em cinza com a inscrição Arad, esta elipse</p><p>ainda se conecta a outras três elipses, em cinza Sibiu, em branco a elipse com a inscrição Timisoara e a</p><p>expressão 118+329=447, e outra em branco com a inscrição Zerind e a expressão 75+374=449. A elipse</p><p>em cinza marcada como Sibiu, também se conecta a outras três elipses, uma em branco com a inscrição</p><p>Fagaras e a expressão 239+178=417, outra em cinza com a inscrição Rimnicu VIlcea e outra em branco com</p><p>a inscrição Oradea 291+380=671. Já a elipse em cinza de Rimnicu Vilcea, se conecta a outras duas elipses,</p><p>em branco uma com a inscrição Craiova e a expressão 366+160=526 e em cinza uma com a inscrição</p><p>Pitesti. Esta elipse de Pitesti por sua vez se conecta a outras duas, sendo uma em branco com a inscrição</p><p>Craiova e a expressão 495+160=655 e outra em cinza com a inscrição Bucharest.</p><p>Figura 22 - Árvore de busca resultante da Busca A* para o Mapa da Romênia da Figura 17</p><p>Fonte: o autor.</p><p>UNICESUMAR</p><p>UNIDADE 3</p><p>104</p><p>NOVAS DESCOBERTAS</p><p>Imagine a situação que você, um estudante de Inteligência Artificial, é con-</p><p>vocado para testar a inteligência de um robô humanoide. Você deve passar</p><p>um tempo com o robô, conversando, questionando para saber se ele possui</p><p>uma inteligência acima da média ou não, tal como a descrição do Teste de</p><p>Turing.</p><p>Essa é a premissa do filme Ex-Machina, dirigido por Alex Garland, lançado</p><p>no ano de 2015.</p><p>Assista ao trailer, prepare a pipoca e preste atenção nos detalhes relaciona-</p><p>dos à inteligência artificial que o filme aborda.</p><p>Em nosso estudo de caso, utilizamos a distância em linha reta entre uma</p><p>cidade e outra como heurística. No entanto, para cada problema podem ser</p><p>pensados vários tipos de heurísticas possíveis, que permitem auxiliar no pro-</p><p>cesso de busca para resolução do problema, tal como o exemplo citado para</p><p>o quebra-cabeça de 8 peças.</p><p>A mesma ideia pode ser aplicada a outros problemas – fazer estimativas sobre</p><p>atividades e utilizar essas estimativas para guiar o seu processo de busca pode</p><p>facilitar o modo como algumas tarefas podem ser resolvidas.</p><p>A tomada de decisão quando, não temos nenhuma informação sobre o</p><p>problema, como nos casos de ir da cidade A para D, pode ser feita de qualquer</p><p>maneira, porém, quando adicionamos informações, podemos utilizar de técnicas</p><p>específicas da inteligência artificial para a resolução de problemas usando a busca.</p><p>https://apigame.unicesumar.edu.br/qrcode/13281</p><p>105</p><p>1. Considere a seguinte configuração inicial do quebra-cabeça de 8 peças (a), e a confi-</p><p>guração objetivo (figura b). Utilizando como heurística a quantidade de movimentos</p><p>para colocar uma única peça em sua posição final, qual a heurística que estima o</p><p>custo para resolver o quebra-cabeça</p><p>3</p><p>1</p><p>4</p><p>2</p><p>8</p><p>5 7</p><p>6</p><p>31</p><p>4</p><p>2</p><p>8</p><p>5</p><p>7</p><p>6</p><p>a) b)</p><p>Descrição da Imagem: A Figura é dividida entre Figura “a” e Figura “b”, sendo que ambas são representa-</p><p>ções do quebra-cabeça de 8 peças. A Figura “a” apresenta na primeira linha, da esquerda para a direita, os</p><p>números 3 e 2, e na terceira coluna um espaço em branco. Na segunda linha, também da esquerda para a</p><p>direita, estão os números 8, 1 e 6, e, por fim, na terceira linha os números 4, 5 e 7, também da esquerda para</p><p>a direita. Já a Figura “b” apresenta na sua primeira linha, da esquerda para a direita, os números 1, 2 e 3`,</p><p>na segunda linha os números 4, 5 e 6, também da esquerda para a direita, e na terceira linha, os números</p><p>7 e 8, e na terceira coluna um espaço em branco.</p><p>a) 9</p><p>b) 7</p><p>c) 10</p><p>d) 13</p><p>e) 12</p><p>2. Analise as seguintes afirmações sobre a definição de uma heurística para um proble-</p><p>ma, e assinale a alternativa que apresenta uma afirmação correta.</p><p>a) A heurística define o custo total de se resolver um problema.</p><p>b) Uma heurística complexa, apesar de ser difícil de ser computada, pode facilitar</p><p>o processo de busca, melhorando e agilizando a escolha de qual nó expandir.</p><p>c) Uma heurística deve ser simples de ser computada, pois é utilizada pelos métodos</p><p>de busca a todo momento.</p><p>106</p><p>d) A heurística define o modo como o processo de busca irá tratar a vizinhança.</p><p>e) As heurísticas definidas para métodos de busca em largura e busca em profun-</p><p>didade podem ser as mesmas.</p><p>3. Sobre o processo de busca A*, analise as afirmações e assinale a alternativa correta.</p><p>a) Utiliza o custo real do problema somado à heurística estimada para definir a</p><p>ordem de expansão dos nós.</p><p>b) Utiliza somente o valor da heurística do problema para definir a ordem de ex-</p><p>pansão dos nós.</p><p>c) É um método de busca que utiliza o custo total do problema para estimar e definir</p><p>a ordem de expansão dos nós.</p><p>d) Define uma heurística fixa para qualquer problema, e utiliza essa heurística como</p><p>forma de definir a ordem de expansão dos nós.</p><p>e) É um método de busca que não se utiliza de heurísticas em seu processo de</p><p>busca.</p><p>4Problema de</p><p>Satisfação e</p><p>Restrição</p><p>Me. Maurilio Martins Campano Junior</p><p>Esta unidade aborda os conceitos sobre Problema de Satisfação de</p><p>Restrições, além dos algoritmos de resolução de PSR, como algoritmo</p><p>com retrocesso e algoritmo de gerar e testar. Também são abordados</p><p>os tipos de restrições de um PSR, além das aplicações do Problema</p><p>de Satisfação de Restrições em problemas e estudos de casos sobre</p><p>os PSR com o Jogo Sudoku e com o Problema de Coloração de Mapas.</p><p>UNIDADE 4</p><p>108</p><p>Definir restrições, impor limites, estabelecer regras. No nosso dia a dia, é comum</p><p>nos depararmos com diversas regras e imposições da sociedade. Nos jogos e na</p><p>inteligência artificial, essas regras também estão presentes em diversos problemas.</p><p>Definir as regras de um problema e estabelecer o domínio onde o problema</p><p>será aplicado pode definir como será a sua resolução e como chegar à resolução</p><p>de fato. É possível definir regras para um jogo simples como o “jogo da velha”?</p><p>Jogos simples como palavras cruzadas, xadrez, Sudoku e jogo da velha tem</p><p>restrições simples e triviais. A partir dessas restrições e regras, o jogador deve</p><p>estabelecer seus movimentos para</p><p>conseguir a vitória.</p><p>Tomando como exemplo o jogo da velha podemos analisar que temos três</p><p>linhas e três colunas, sendo que cada jogador faz sua jogada intercalando-a com</p><p>o jogador adversário, e marcando um símbolo (X ou O) em uma das células das</p><p>três linhas e três colunas.</p><p>Procure um jogo simples, seja de tabuleiro, de computador ou de qualquer</p><p>espécie, nele sempre há regras definidas que precisam ser seguidas para conseguir</p><p>a vitória. Você consegue pensar em algum exemplo de jogo e suas regras?</p><p>Pense no popular jogo do Mário, na qual o personagem deve salvar a prince-</p><p>sa do vilão. Regras simples definem o jogo, e a definição dessas regras pode ser</p><p>padronizada por meio de um Problema de Satisfação de Restrições, que define</p><p>as restrições e o domínio das variáveis do jogo.</p><p>Em quais jogos você consegue pensar e como definiria as regras do jogo?</p><p>Consegue padronizar a definição das regras de forma a propor uma solução</p><p>geral para dois jogos diferentes? Aproveite seu diário de bordo para tomar nota.</p><p>A ideia do conteúdo desta unidade é tratar os problemas como PSR buscando</p><p>uma forma padrão de resolvê-los.</p><p>109</p><p>Um Problema de Satisfação de Restrições (PSR) é definido como uma quá-</p><p>drupla, com os seguintes elementos:</p><p>■ conjunto de variáveis;</p><p>■ conjunto de restrições;</p><p>■ função de avaliação;</p><p>■ estado.</p><p>As variáveis são componentes que podem assumir quaisquer valores dentro</p><p>de seu domínio, já as restrições delimitam características e restrições sobre</p><p>o valor que uma variável pode assumir. A função de avaliação, por sua vez,</p><p>determina o quão bom é um conjunto de atribuições para uma variável, e</p><p>um estado representa uma atribuição de um valor para todas as variáveis do</p><p>problema (POOLE, 1998; MEDEIROS, 2018).</p><p>A definição matemática de um PSR pode ser mais complexa. Contudo, quan-</p><p>do analisamos um PSR aplicado a um problema, a ideia desse conceito fica mais</p><p>fácil de entender.</p><p>Suponha que um PSR tenha as características a seguir</p><p>■ Conjunto de variáveis = {A, B, C, D, E}.</p><p>■ Domínio das variáveis = DA = DB = DC = DD = DE = {1, 2, 3, 4, 5}.</p><p>■ Conjunto de restrições = {(B ≠ 3), (C ≠ 2), (A ≠ B), (B ≠ C), (B ≠ D), (C <</p><p>D), (A = D), (E < A), (E < B), (E < C), (E < D)}.</p><p>■ Função de avaliação = qualquer atribuição é válida, desde que obedeça</p><p>às restrições.</p><p>Assim, será que podemos encontrar uma solução para o problema? Pre-</p><p>cisamos definir um valor para cada uma das variáveis (A, B, C, D, E), que</p><p>pode ser qualquer valor de 1 a 5, mas deve obedecer às restrições. Para o B,</p><p>por exemplo, só podemos atribuir os valores 1, 2, 4 e 5, pois uma restrição B</p><p>≠ 3 impede que o B seja 3 (POOLE, 1998).</p><p>O autor ainda ressalta que, em um PSR, um conjunto de variáveis pode</p><p>assumir qualquer valor de um domínio, desde que obedeça a algumas restri-</p><p>ções. Tratar um problema como um PSR pode parecer que é somente apli-</p><p>cá-lo em problemas matemáticos como o descrito anteriormente, mas esse</p><p>problema descrito pode ser a representação do escalonamento de ativida-</p><p>des, em que A, B, C, D e E são cinco atividades quaisquer, e o domínio 1 a 5</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>110</p><p>No mapa apresentado, as seguintes regiões devem ser preenchidas: Western Aus-</p><p>tralia (WA), Northem Territory (NT), South Australia (SA), Queensland (Q), New</p><p>South Wales (NSW), Victoria (V) e Tasmania (T). Para o preenchimento dessas</p><p>regiões, são disponibilizadas três cores: azul, vermelho e verde, e a cor de uma re-</p><p>gião não pode ser igual à cor de uma região adjacente (RUSSELL; NORVIG, 2013).</p><p>Assim, para representar o problema de coloração de mapas descrito anterior-</p><p>mente como um PSR, podemos representar os estados como as variáveis, sendo</p><p>V = {WA, NT, SA, Q, NSW, V, T}, de modo que as cores representam o domínio</p><p>das variáveis em que D = {RGB}, indicando red, green e blue, ou vermelho, verde</p><p>e azul, respectivamente. Por fim, as restrições são representadas de acordo com a</p><p>ligação dos estados no mapa, em que R = {(WA ≠ SA), (WA ≠ NT), (NT ≠ SA),</p><p>Northern</p><p>Territory</p><p>Western</p><p>Australia</p><p>South</p><p>Australia</p><p>Queensland</p><p>New South</p><p>Wales</p><p>Victoria</p><p>Tasmania</p><p>Descrição da Imagem: A Figura 1 apresenta uma representação gráfica do mapa da Austrália, mostran-</p><p>do os estados de Western Australia, Northern Territory, South Australia, Queensland, New South Wales,</p><p>Victoria e Tasmania (este estando localizado a parte dos demais).</p><p>Figura 1 – Mapa da Austrália. / Fonte: Russell, Norvig, 2013 página 177.</p><p>representa o tempo de início das atividades. Assim, as restrições implicam</p><p>condições necessárias para que as atividades sejam executadas.</p><p>Do mesmo modo, podemos pensar em PSR para tratar o problema de colora-</p><p>ção de mapas, sendo que a partir de um mapa com diversas regiões delimitadas,</p><p>os estados do Brasil, por exemplo, precisa colorir cada região (estado) com uma</p><p>cor diferente. Para representar esse problema como um PSR, vamos utilizar o</p><p>mapa da Austrália, conforme descrito na Figura 1.</p><p>111</p><p>(NT ≠ Q), (SA ≠ Q), (SA ≠ NSW), (SA ≠ V), (Q ≠ NSW), (NSW ≠ V)} (RUSSELL,</p><p>NORVIG, 2013).</p><p>Para esse problema de coloração de mapas em PSR, a função de avaliação</p><p>valida se as cores de cada um dos estados vizinhos são diferentes, e uma atribui-</p><p>ção qualquer representa um estado do problema que pode ser válido ou não de</p><p>acordo com as restrições (RUSSELL; NORVIG, 2013).</p><p>Outro problema que podemos analisar na forma de um PSR é o Sudoku, jogo</p><p>cujo objetivo é preencher células com números de 1 a 9, sendo que os números não</p><p>podem se repetir em uma mesma coluna, em uma mesma linha ou em um mesmo</p><p>espaço 3x3 da grade do jogo. Uma representação básica é mostrada na Figura 2.</p><p>1 2 3 4 5 6 7 8 9</p><p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p><p>G</p><p>H</p><p>I</p><p>Descrição da Imagem: A Figura 2 apresenta uma matriz com 9 linhas e 9 colunas, sendo que cada linha</p><p>é nomeada com uma letra de A a I, e cada coluna é nomeada com um número de 1 a 9, estando em cinza</p><p>as células de A a C – 1 a 3; coluna 7 – de A a I; e linha “E” de 1 a 9.</p><p>Figura 2 – Representação básica do Sudoku. . / Fonte: Russell, Norvig, 2013 página 177.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>112</p><p>Assim, nas representações marcadas em cinza na Figura 2, não podemos</p><p>ter repetição de números, ou seja, adiciona-se restrição de acordo com as</p><p>posições dos números no jogo.</p><p>Para representar então o Sudoku como um PSR, precisamos descrever e re-</p><p>presentar cada uma das 81 posições do tabuleiro (9 x 9), e identificá-las indivi-</p><p>dualmente. Uma ideia é utilizar marcações tal como uma matriz, resultando na</p><p>representação vista na Figura 3.</p><p>1 2 3 4 5 6 7 8 9</p><p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p><p>G</p><p>H</p><p>I</p><p>Descrição da Imagem: A Figura 3 apresenta uma matriz com 9 linhas e 9 colunas, em que cada linha é</p><p>nomeada com uma letra de A a I, e cada coluna é nomeada com um número de 1 a 9, sendo que cada</p><p>uma das células é representada pela posição da linha e da coluna.</p><p>FIGURA 3 – Representação do Sudoku como um PSR - Variáveis. / Fonte: o autor.</p><p>113</p><p>Definimos, então, que as 81 variáveis do PSR e o domínio de cada uma dessas</p><p>variáveis são representados por D = {1,2,3,4,5,6,7,8,9}.</p><p>As restrições podem ser descritas indicando que um número deve aparecer</p><p>uma única vez em cada linha, em cada coluna, e em cada 3x3. Representando</p><p>matematicamente, temos que os números nas linhas devem ser todos diferentes,</p><p>representados por TodosDiferentes(A1, A2, A3, A4, A5, A6, A7, A8, A9) para</p><p>a linha A, TodosDiferentes(B1, B2, B3, B4, B5, B6, B7, B8, B9) para a linha B, e</p><p>assim sucessivamente até a última linha I (RUSSELL; NORVIG, 2013).</p><p>Nas colunas, as restrições podem ser definidas como TodosDiferentes(A1, B1,</p><p>C1, D1, E1, F1, G1, H1, I1) para representar a coluna 1, TodosDiferentes(A2, B2,</p><p>C2, D2, E2, F2, G2, H2, I2) para representar a coluna 2, e assim sucessivamente</p><p>até a coluna 9 (RUSSELL; NORVIG, 2013).</p><p>Por fim, para representar os grupos de 3x3, podemos ter a restrição TodosDi-</p><p>ferentes(A1, A2, A3, B1, B2, B3, C1, C2, C3) para indicar que o primeiro grupo</p><p>3x3 superior esquerdo deve ser diferente, TodosDiferentes(A4, A5, A6, B4, B5,</p><p>B6, C4, C5, C6) para indicar que o grupo</p><p>3x3 ao lado deve ser diferente, e assim</p><p>sucessivamente para os 9 grupos 3x3 (RUSSELL; NORVIG, 2013).</p><p>Vale ressaltar que a definição das restrições para um problema pode ser for-</p><p>malizada de diferentes formas, desde que sigam as regras do próprio problema</p><p>em questão (RUSSELL; NORVIG, 2013).</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>114</p><p>Por fim, uma função de avaliação para representar o Sudoku como PSR avaliará</p><p>cada uma das variáveis, e se as restrições não são violadas; enquanto que um</p><p>estado do PSR no Sudoku representa uma atribuição qualquer para o problema,</p><p>sendo uma solução ou não (RUSSELL; NORVIG, 2013).</p><p>A partir dessa definição do PSR para o Sudoku, é possível elaborar uma so-</p><p>lução para o jogo representado na Figura 4?</p><p>9</p><p>9</p><p>9</p><p>6</p><p>6</p><p>4</p><p>4</p><p>7</p><p>7</p><p>2 1</p><p>1</p><p>5</p><p>5</p><p>3</p><p>5 7</p><p>3</p><p>2</p><p>2</p><p>2</p><p>8</p><p>8</p><p>8</p><p>1 2 3 4 5 6 7 8 9</p><p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p><p>G</p><p>H</p><p>I</p><p>Descrição da Imagem:A Figura 4 apresenta uma matriz com 9 linhas e 9 colunas, sendo que cada</p><p>linha é nomeada com uma letra de A a I, e cada coluna é nomeada com um número de 1 a 9, e as</p><p>seguintes posições estão preenchidas com números: A2 = 9, A4 = 7, A6 = 2, A8 = 1, C2 = 5, C3 = 3, C7</p><p>= 2, C8 = 8, D1 = 3, D5 = 9, D9 = 5, E4 = 6, E6 = 4, F1 = 7, F5 = 1, F9 = 8, G2 = 2, G3 = 4. G7 = 5, G8 = 7, I2</p><p>= 6, I4 = 9, I6 = 8 e I8 = 2, sendo que as posições A2, A4, A6, A8, C2, C3, C7, C8, D1, D5, D9, E4, E6, F1,</p><p>F5, F9, G2, G3, G7, G8, I2, I4, I6 e I8 estão em cinza, enquanto as demais posições estão em branco.</p><p>FIGURA 4 – Configuração inicial de um Sudoku. / Fonte: o autor.</p><p>115</p><p>No PSR anteriormente indicado para o Sudoku, as restrições podem ser escritas</p><p>de forma diferente, por exemplo, quanto à restrição TodosDiferentes(A1, A2, A3,</p><p>A4, A5, A6, A7, A8, A9), podemos representá-la também como A1 ≠ A2, A1 ≠</p><p>A3, A1 ≠ A4, e assim sucessivamente para todos os pares de posições de A1 a A9</p><p>em uma linha, em uma coluna e em uma grade 3x3 (RUSSELL; NORVIG, 2013).</p><p>De acordo com Russel e Norvig (2013), a forma como uma restrição é</p><p>escrita define algumas características em relação à restrição, por exemplo,</p><p>quando falamos do domínio de uma variável, esse domínio pode ser discre-</p><p>to, como os valores possíveis no Sudoku, ou contínuo, se utilizarmos uma</p><p>variável para representar, por exemplo, o peso de uma peça de carro durante</p><p>a montagem e a fabricação dele, sendo que esse peso pode variar entre um</p><p>valor X e Y qualquer. Em relação à raridade de uma restrição, ela pode ser</p><p>unária, que envolve somente uma variável; por exemplo, se definirmos uma</p><p>restrição no PSR do mapa da Austrália que indica que a Tasmânia não pode</p><p>ser verde. Quando uma restrição envolve duas variáveis, dizemos que a restri-</p><p>ção é binária, por exemplo, WA ≠ NT. Por fim, uma variável é n-ária quando</p><p>envolve n outras variáveis em uma restrição, como a transformação de um</p><p>jogo de palavras cruzadas em um PSR, e a inserção de uma palavra em uma</p><p>posição que gere um “conflito” com outras n posições do jogo.</p><p>Já em relação à natureza das restrições, elas podem ser absolutas, isto é, que</p><p>não podem ser violadas; por exemplo, a restrição do jogo de Sudoku TodosDife-</p><p>rentes(A1, A2, A3, A4, A5, A6, A7, A8, A9), que deve ser satisfeita para a resolu-</p><p>ção do jogo. Já uma restrição preferencial deve ser satisfeita quando possível, ou</p><p>seja, é uma restrição que pode ou não ser satisfeita de acordo com as atribuições</p><p>das variáveis na busca da resolução. Esse tipo de restrição preferencial é utilizado,</p><p>por exemplo, quando usamos PSR para elaboração de horários, em que podemos</p><p>ter restrições preferenciais (RUSSELL; NORVIG, 2013).</p><p>Essas restrições preferenciais são mais utilizadas quando estamos tra-</p><p>tando de PSR para problemas de otimização, uma das classes principais dos</p><p>tipos de PSR. Esses problemas de otimização visam utilizar os algoritmos de</p><p>resolução de PSR para encontrar uma menor ou melhor atribuição para um</p><p>conjunto de variáveis (POOLE, 1998).</p><p>Já a classe de problemas de satisfatibilidade busca encontrar uma asso-</p><p>ciação para as variáveis do problema, desde que satisfazendo as restrições</p><p>definidas. Nessa classe, encontram-se os problemas definidos nesta unidade,</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>116</p><p>como o de coloração de mapas, o PSR “matemático”, o do jogo Sudoku, além</p><p>de outros tipos de problemas, como o problema das n rainhas (posicionar</p><p>n rainhas do xadrez em um tabuleiro nxn), problemas de Criptoaritmética,</p><p>palavras cruzadas, entre outros (RUSSELL; NORVIG, 2013).</p><p>A resolução de um PSR tem sua similaridade com um problema de busca</p><p>visto nas Unidades 2 e 3. No entanto, tratar um PSR como um problema de busca</p><p>significa que não estamos interessados no caminho para a resolução, e sim que</p><p>queremos chegar a algum estado objetivo, no qual todas as variáveis estão atri-</p><p>buídas a valores válidos. De acordo com a quantidade de variáveis, o processo</p><p>de busca pode ser custoso, então o uso dos algoritmos de busca nos problemas</p><p>de PSR visa facilitar a resolução, e a definição de heurísticas para o próprio PSR</p><p>pode auxiliar na resolução (RUSSELL; NORVIG, 2013).</p><p>Na resolução de PSR, podemos utilizar diversos tipos de algoritmos, uma</p><p>primeira possibilidade é um algoritmo simples que gera e testa todas as atribui-</p><p>ções para as variáveis, de acordo com o espaço de associações, e com base nessas</p><p>atribuições encontra uma atribuição válida.</p><p>Para o problema matemático descrito anteriormente, a geração do es-</p><p>paço de atribuições segue a seguinte ideia: D = DA x DB x DC x DD x DE,</p><p>indicando que D representa o espaço de atribuições do problema, e DA, DB,</p><p>DC, DD e DE representam o domínio das variáveis A, B, C, D e E. Assim, ao</p><p>analisarmos o domínio das variáveis, temos que: D = {1,2,3,4,5} x {1,2,3,4,5}</p><p>x {1,2,3,4,5} x {1,2,3,4,5} x {1,2,3,4,5}.</p><p>Então, a partir dessa definição dos domínios de cada uma das variáveis, o algo-</p><p>ritmo de gerar e testar gera todas as possibilidades de valores para o domínio, por</p><p>exemplo: D = {<1,1,1,1,1>, <1,1,1,1,2>, <1,1,1,1,3> , …, <5,5,5,5,4>, <5,5,5,5,5>}.</p><p>Assim, temos que D representa todos os possíveis valores para as variá-</p><p>veis A, B, C, D e E. É fácil perceber que algumas atribuições são inválidas,</p><p>como <1,1,1,1,1>, que atribui 1 para todas as variáveis A a E, e <5,5,5,5,5></p><p>que atribui 5 para todas as variáveis.</p><p>No entanto, esse algoritmo gera todas as atribuições possíveis, então podemos</p><p>dizer que a solução estará contida em D, caso ela exista.</p><p>A quantidade de atribuições gerada para esse problema é muito alta, assim</p><p>o algoritmo pode demorar para gerar todas as atribuições, e depois testar para</p><p>encontrar uma atribuição válida.</p><p>117</p><p>Para o problema do Sudoku descrito anteriormente, o algoritmo de gerar e</p><p>testar também geraria todas as possibilidades de números para o jogo, sendo que</p><p>em uma dessas possibilidades estaria a solução para o Sudoku. E tais possibilida-</p><p>des estariam representadas conforme a Figura 5.</p><p>Descrição da Imagem:A Figura 5 apresenta quatro matrizes de 9 linhas e 9 colunas, sendo que cada</p><p>linha é nomeada com uma letra de A a I, e cada coluna é nomeada com um número de 1 a 9 com</p><p>diversos números preenchidos em cada uma das matrizes.</p><p>FIGURA 5 – Algoritmo de gerar e testar para um jogo de Sudoku. / Fonte: o autor.</p><p>Conforme a Figura 5, as posições em cinza do jogo são as que já começam preen-</p><p>chidas, e o algoritmo de gerar e testar poderia começar preenchendo todas as</p><p>posições com 1 (Figura 5a), depois mudar um único valor para dois (posição I9 da</p><p>Figura 5b) e, em seguida, essa mesma posição para valor 3 (Figura 5c), até que seja</p><p>gerada a configuração mostrada na Figura 5d, com todas as posições em branco</p><p>preenchidas com 9. É fácil perceber que essas quatro representações não for-</p><p>mam uma solução para o problema, mas o algoritmo de gerar e testar define</p><p>todas as possibilidades para o problema, independentemente se são soluções ou</p><p>não, e na sequência testa, entre todas as possibilidades, as que apresentam solução.</p><p>Já para o problema de coloração de mapas da Austrália descrito anteriormen-</p><p>te, o algoritmo de gerar e testar faz a atribuição</p><p>de uma cor para cada uma das</p><p>variáveis, deste modo: D ={{WA = red, NT = red, AS = red, Q = red, NSW = red,</p><p>V = red, T = red}, {WA = red, NT = red, AS = red, Q = red, NSW = red, V = red, T</p><p>= green}, {WA = red, NT = red, AS = red, Q = red, NSW = red, V = red, T = blue},</p><p>…, {WA = blue, NT = blue, AS = blue, Q = blue, NSW = blue, V = blue, T = blue}}.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>118</p><p>Em uma primeira atribuição, todas as variáveis são setadas para red (verme-</p><p>lho), depois somente T é setado para green (verde), e as demais para vermelho; em</p><p>seguida, somente T é setado para blue (azul), e as demais para red (vermelho), até</p><p>que em uma última atribuição todas as variáveis sejam setadas para blue (azul).</p><p>Assim, esse algoritmo de gerar e testar pode demorar muito tempo para en-</p><p>contrar uma solução para o problema, ou seja, dependendo do problema, da</p><p>quantidade de variáveis, do tamanho do domínio das variáveis e da quantidade</p><p>de restrições, é inviável gerar e testar todas essas possibilidades.</p><p>Outra forma de tratar os Problemas de Satisfação de Restrição é por utilizar</p><p>algoritmos com retrocesso (back-propagation), que é análogo ao algoritmo</p><p>de gerar e testar, porém, enquanto o algoritmo de gerar e testar gera todas as</p><p>possibilidades de atribuições válidas ou inválidas e depois testa as restrições, o</p><p>algoritmo com retrocesso faz uma atribuição para uma variável, testa as restrições</p><p>e só continua com atribuição de novas variáveis se a atribuição for válida.</p><p>Para o nosso exemplo de PSR matemático, o algoritmo com retrocesso faz</p><p>a atribuição de uma primeira variável para um valor qualquer, na sequência, ao</p><p>atribuir um valor para a próxima variável, se uma das restrições for violada, um</p><p>novo valor deve ser escolhido do domínio da variável.</p><p>Relembrando, as restrições do problema são formadas por R = {(B ≠ 3), (C</p><p>≠ 2), (A ≠ B), (B ≠ C), (B ≠ D), (C < D), (A = D), (E < A), (E < B), (E < C), (E <</p><p>D)}; e o domínio das variáveis é D = {1,2,3,4,5}. Assim, ao realizar uma primeira</p><p>atribuição para A = 1, o próximo passo seria atribuir B = 1 também. Contudo,</p><p>temos uma restrição A ≠ B, portanto qualquer valor das outras variáveis quando</p><p>A = 1 e B = 1 violaria as restrições e não seria um valor de atribuição válido.</p><p>119</p><p>Do mesmo modo, se analisarmos somente o valor A = 1, como temos também</p><p>uma restrição E < A, e o domínio das variáveis for D = {1,2,3,4,5}, ao realizarmos</p><p>uma atribuição de A = 1, não é possível encontrar um valor no domínio das</p><p>variáveis que satisfaça a restrição E < A, assim, percebemos que o valor de A não</p><p>pode ser 1, e nenhum teste com esse valor precisa ser feito.</p><p>No exemplo do Sudoku, podemos perceber uma primeira atribuição para a posi-</p><p>ção A1 = 1 é inviável, pois já existe um 1 na posição G1, conforme mostra a Figura 6.</p><p>1</p><p>9</p><p>9</p><p>9</p><p>6</p><p>6</p><p>6</p><p>4</p><p>4</p><p>4</p><p>2</p><p>4</p><p>4</p><p>7</p><p>8</p><p>8</p><p>1</p><p>5</p><p>5</p><p>5</p><p>5</p><p>7</p><p>7</p><p>7</p><p>3</p><p>3</p><p>3</p><p>32</p><p>2</p><p>2</p><p>1</p><p>1</p><p>8</p><p>8</p><p>8</p><p>3</p><p>1 2 3 4 5 6 7 8 9</p><p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p><p>G</p><p>H</p><p>I</p><p>Descrição da Imagem:A Figura 6 apresenta uma matriz com 9 linhas e 9 colunas, sendo que cada</p><p>linha é nomeada com uma letra de A a I, e cada coluna é nomeada com um número de 1 a 9, e as</p><p>seguintes posições estão preenchidas: A1 = 1, A4 = 4, B3 = 5, B4 = 8, B7 = 2, B9 = 4, C1 = 2, C2 = 7, C3</p><p>= 4, C4 = 5, C6 = 3, C8 = 1, C9 = 8, D2 = 9, D3 = 3, D6 = 2, D8 = 6, E2 = 6, E6 = 9, E7 = 8, F1 = 8, F4 = 7, F5 =</p><p>4. F7 = 5, F9 = 3. G1 = 1, G3 = 2, G6 = 5, G7 = 3, G9 = 9, H6 = 4, H7 = 7, I1 = 7, I3 = 6, I5 = 3, I6 = 8, I7 = 1.</p><p>FIGURA 6 – Atribuição inválida para a posição A1 = 1. / Fonte: o autor.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>120</p><p>Na sequência, o algoritmo poderia tentar uma atribuição de A1 = 2, conforme mostra</p><p>Figura 7, mas esta também é uma atribuição inválida porque há um 2 na posição C1.</p><p>2</p><p>9</p><p>9</p><p>9</p><p>6</p><p>6</p><p>6</p><p>4</p><p>4</p><p>4</p><p>2</p><p>4</p><p>4</p><p>7</p><p>8</p><p>8</p><p>1</p><p>5</p><p>5</p><p>5</p><p>5</p><p>7</p><p>7</p><p>7</p><p>3</p><p>3</p><p>3</p><p>32</p><p>2</p><p>2</p><p>1</p><p>1</p><p>8</p><p>8</p><p>8</p><p>3</p><p>1 2 3 4 5 6 7 8 9</p><p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p><p>G</p><p>H</p><p>I</p><p>Descrição da Imagem: A Figura 7 apresenta uma matriz com 9 linhas e 9 colunas, sendo que cada</p><p>linha é nomeada com uma letra de A a I, e cada coluna é nomeada com um número de 1 a 9, e as</p><p>seguintes posições estão preenchidas: A1 = 2, A4 = 4, B3 = 5, B4 = 8, B7 = 2, B9 = 4, C1 = 2, C2 = 7, C3</p><p>= 4, C4 = 5, C6 = 3, C8 = 1, C9 = 8, D2 = 9, D3 = 3, D6 = 2, D8 = 6, E2 = 6, E6 = 9, E7 = 8, F1 = 8, F4 = 7, F5 =</p><p>4. F7 = 5, F9 = 3. G1 = 1, G3 = 2, G6 = 5, G7 = 3, G9 = 9, H6 = 4, H7 = 7, I1 = 7, I3 = 6, I5 = 3, I6 = 8, I7 = 1.</p><p>FIGURA 7 – Atribuição inválida para a posição A1 = 2. / Fonte: o autor.</p><p>121</p><p>Assim, a terceira atribuição para A1 = 3 não viola nenhuma restrição, possibilitando</p><p>então avançar para a atribuição de uma nova variável, B2, por exemplo, começando</p><p>com A2 = 1, que também não viola nenhuma restrição, conforme mostra a Figura 8.</p><p>3 1</p><p>9</p><p>9</p><p>9</p><p>6</p><p>6</p><p>6</p><p>4</p><p>4</p><p>4</p><p>2</p><p>4</p><p>4</p><p>7</p><p>8</p><p>8</p><p>1</p><p>5</p><p>5</p><p>5</p><p>5</p><p>7</p><p>7</p><p>7</p><p>3</p><p>3</p><p>3</p><p>32</p><p>2</p><p>2</p><p>1</p><p>1</p><p>8</p><p>8</p><p>8</p><p>3</p><p>1 2 3 4 5 6 7 8 9</p><p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p><p>G</p><p>H</p><p>I</p><p>Descrição da Imagem: A Figura 8 apresenta uma matriz com 9 linhas e 9 colunas, sendo que cada</p><p>linha é nomeada com uma letra de A a I, e cada coluna é nomeada com um número de 1 a 9, e as</p><p>seguintes posições estão preenchidas: A1 = 3, A2 = 1, A4 = 4, B3 = 5, B4 = 8, B7 = 2, B9 = 4, C1 = 2, C2 =</p><p>7, C3 = 4, C4 = 5, C6 = 3, C8 = 1, C9 = 8, D2 = 9, D3 = 3, D6 = 2, D8 = 6, E2 = 6, E6 = 9, E7 = 8, F1 = 8, F4 = 7,</p><p>F5 = 4. F7 = 5, F9 = 3. G1 = 1, G3 = 2, G6 = 5, G7 = 3, G9 = 9, H6 = 4, H7 = 7, I1 = 7, I3 = 6, I5 = 3, I6 = 8, I7 = 1.</p><p>FIGURA 8 – Atribuição válida para a posição A1 = 3 e A2 = 1. / Fonte: o autor.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>122</p><p>O algoritmo prosseguiria seu trabalho até encontrar uma inconsistência, ou</p><p>finalizar e encontrar a atribuição que resolve o Sudoku. Note que este não é</p><p>um método eficiente para resolução desse problema, uma vez que é possível</p><p>chegar a um ponto e retornar uma grande quantidade de atribuições porque</p><p>foram encontradas inconsistências com as restrições.</p><p>Já para o problema de coloração de mapas da Austrália, o algoritmo com re-</p><p>trocesso começa normalmente realizando uma atribuição para uma variável, WA</p><p>= red, por exemplo, e na sequência, caso essa atribuição não seja inválida, tenta</p><p>realizar a segunda atribuição de NT = red. Como essa atribuição é inválida porque</p><p>WA ≠ NT, então tenta-se atribuir green para NT, que é uma atribuição válida.</p><p>O algoritmo continua o seu trabalho para uma terceira variável, SA, por exem-</p><p>plo, e atribui red para SA, que viola as restrições, tenta atribuir green para SA, que</p><p>também viola as restrições, até que, por fim, a atribuição de SA = blue é realizada.</p><p>A sequência do algoritmo faz atribuições para todas as variáveis do modo similar.</p><p>Podemos perceber que para o problema de coloração de mapas, o al-</p><p>goritmo com retrocesso funciona de forma simples e consegue resolver o</p><p>problema facilmente, diferente do Sudoku que pode gerar um trabalho maior</p><p>do que outras formas de resolução.</p><p>O trabalho de Prata (2017) aplicou as técnicas de PSR no famoso jogo Super Mario World,</p><p>e utilizou as mesmas técnicas de backtracking descritas nesta unidade.</p><p>Faça a leitura do artigo apresentado por Prata, descubra e reflita sobre como aplicar o PSR</p><p>em outros cenários de jogos e outros tipos de problemas.</p><p>PENSANDO JUNTOS</p><p>Outra possibilidade de algoritmo para resolver PSR é utilizar técnicas de busca</p><p>vistas nas unidades anteriores (Busca em Largura, Busca em Profundidade, Busca</p><p>pelo Melhor Primeiro, Busca Heurística pelo Menor Primeiro, Busca A*).</p><p>A ideia de utilizar os processos de busca para resolver um PSR leva em conta</p><p>que, em cada estado do grafo, teremos uma atribuição de um valor para uma</p><p>variável, então precisamos encontrar um nó em que todas as variáveis estejam</p><p>atribuídas a valores que não violem as restrições (RUSSELL; NORVIG, 2013).</p><p>123</p><p>Para tratar um PSR como um problema de busca, cada estado do problema</p><p>precisa ser representado em um nó de um grafo. Por exemplo, a partir de um nó</p><p>inicial, sem nenhuma atribuição às variáveis, podemos elaborar um grafo com</p><p>as atribuições apresentadas na Figura 9 para o problema</p><p>de coloração de mapas.</p><p>WA = red</p><p>WA = red</p><p>NT = green</p><p>WA = red</p><p>NT = green</p><p>Q = red</p><p>WA = red</p><p>NT = green</p><p>Q = blue</p><p>WA = red</p><p>NT = blue</p><p>WA = green WA = blue</p><p>Descrição da Imagem: A Figura 9 apresenta uma representação similar a uma estrutura de dados</p><p>do tipo árvore, na qual o nó raiz não tem nenhuma informação, e este nó tem três filhos com as</p><p>seguintes descrições: ‘WA = red’ do lado esquerdo, ‘WA = green’ no centro e ‘WA = blue’ no lado</p><p>direito. Para WA = red há ainda outros dois filhos: ‘WA = red/NT = green’ do lado esquerdo e ‘WA</p><p>= red/NT = blue’ do lado direito. O nó WA = red/NT = green, por sua vez, também tem dois filhos:</p><p>‘WA = red/NT = green/Q = red’ no lado esquerdo e ‘WA = red/NT = green/Q = blue’ no lado direito.</p><p>FIGURA 9 – Parte de um grafo para o problema de coloração de mapas utilizando algoritmos de</p><p>busca. busca. / Fonte: Adaptado de Russell e Norvig (2013).</p><p>Podemos perceber que um nó “folha da árvore” pode ser uma solução para</p><p>o problema, sendo que todas as variáveis têm valores associados, e essas</p><p>atribuições não violam as restrições do problema.</p><p>Para utilizar um algoritmo de busca com o problema e a coloração de mapas, é</p><p>preciso definir uma ordem para realizar as atribuições das variáveis e uma ordem</p><p>para testar os valores dos domínios das variáveis (RUSSELL; NORVIG, 2013).</p><p>Como ordem de atribuição das variáveis, podemos utilizar a seguinte ordem:</p><p>WA - NT - SA - Q - NSW - V – T; e como ordem dos valores dos domínios, po-</p><p>demos utilizar o RGB (red, green, blue, ou vermelho, verde e azul).</p><p>Ao iniciar o algoritmo de busca com a atribuição da primeira variável WA,</p><p>testamos com o primeiro valor red, e conseguimos verificar que trata-se de um</p><p>valor válido, assim, uma primeira atribuição WA = red é realizada.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>124</p><p>Na sequência, a segunda variável a ser atribuída é a NT. Quando testamos os</p><p>valores do domínio na ordem definida, percebemos que o primeiro valor testado</p><p>(red) não pode ser atribuído a NT porque WA ≠ NT; então, com o segundo valor</p><p>testado (green), a atribuição é válida, fazendo NT = green.</p><p>Para a terceira variável SA, a primeira atribuição (red) é inválida porque SA</p><p>deve ser diferente de WA e de NT. A segunda atribuição (green) também é invá-</p><p>lida por causa das mesmas restrições. Por fim, ao testar SA = blue, a atribuição é</p><p>válida porque SA é diferente de WA e também de NT.</p><p>Já na quarta variável Q, a primeira atribuição de Q = red fica válida porque</p><p>NT = green e SA = blue; enquanto que para a quinta variável NSW a primeira</p><p>atribuição para R é inviável porque NSW deve ser diferente de Q, que tem o valor</p><p>red. A segunda atribuição de NSW, no entanto, é válida (NSW = green) porque o</p><p>valor de NSW é diferente das variáveis já atribuídas SA (blue) e Q (red).</p><p>A sexta variável V inicia a tentativa de atribuição com red, e é uma atribuição</p><p>válida porque V é diferente de SA (blue) e de NSW (green).</p><p>Por fim, para a última variável T, a primeira atribuição de T = red é válida</p><p>porque T não tem nenhuma restrição.</p><p>A representação das atribuições de cores do PSR de coloração de mapas da</p><p>Austrália pode ser vista na Figura 10.</p><p>NT</p><p>NSWSA</p><p>WA</p><p>Q</p><p>V</p><p>T</p><p>Descrição da Imagem: A Fi-</p><p>gura 10 apresenta um grafo</p><p>representando os estados</p><p>do mapa da Austrália, com</p><p>7 nós pintados com cores</p><p>diferentes, sendo que Wa é</p><p>vermelho, NT é verde, SA AS</p><p>é azul, Q é vermelho, NSW</p><p>é verde, V é vermelho e T é</p><p>vermelho.</p><p>FIGURA 10 – Problema de co-</p><p>loração de mapas da Austrália</p><p>resolvido como um problema de</p><p>busca. Fonte: o autor.</p><p>125</p><p>De modo similar, o problema matemático apresentado nesta unidade também</p><p>pode ser utilizado para a construção de um grafo, assim como o problema do</p><p>Sudoku, mas como o domínio desses problemas é maior, a sua complexidade</p><p>tende a aumentar consideravelmente (RUSSELL; NORVIG, 2013).</p><p>Uma ideia que pode ser utilizada com PSR visando facilitar a resolução</p><p>de problemas é trabalhar com a ordenação de variáveis de acordo com a</p><p>quantidade de restrições que uma variável tem, ou de acordo com o tama-</p><p>nho do domínio das variáveis.</p><p>Para o problema matemático citado anteriormente, dadas as seguintes</p><p>restrições: R = {(B ≠ 3), (C ≠ 2), (A ≠ B), (B ≠ C), (B ≠ D), (C < D), (A = D),</p><p>(E < A), (E < B), (E < C), (E < D)}, temos que para cada variável a quantidade</p><p>de restrições envolvendo a variável é descrita na Tabela 1.</p><p>Variável Quantidade de restrições</p><p>A 3</p><p>B 5</p><p>C 4</p><p>D 4</p><p>E 4</p><p>Tabela 1 – Quantidade de restrições das variáveis do PSR matemático.</p><p>Fonte: o autor.</p><p>A variável A possui as restrições RA = {(A ≠ B), (A = D), (E < A)}, para a variável</p><p>B temos RB = {(B ≠ 3), (A ≠ B), (B ≠ C), (B ≠ D), (E < B)}. Já a variável C tem as</p><p>restrições RC = {(C ≠ 2), (B ≠ C), (C < D), (E < C)}, a variável D possui as restrições</p><p>RD = {(B ≠ D), (C < D), (A = D), (E < D)} e a variável E tem as seguintes restrições</p><p>RE = {(E < A), (E < B), (E < C), (E < D)} (POOLE, 1998).</p><p>Com a quantidade de restrições de cada variável calculada, temos que a va-</p><p>riável com mais restrições é a variável B, com cinco, seguida das variáveis A, C, D</p><p>e E, empatadas com quatro restrições cada (LUGER, 2013).</p><p>Essa quantidade de restrições das variáveis indica que a variável B con-</p><p>tém a maior quantidade de restrições entre todas as variáveis, isso quer dizer</p><p>que uma atribuição de um valor para a variável pode gerar uma quantidade</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>126</p><p>grande de conflitos com outras variáveis. Desse modo, uma atribuição de um</p><p>valor primeiro feita a essa variável pode gerar menos conflitos nas próximas</p><p>atribuições (RUSSELL; NORVIG, 2013)</p><p>Para resolver o PSR matemático tomando como base a quantidade de res-</p><p>trições das variáveis já citadas, começamos analisando, além da quantidade de</p><p>restrições de cada variável, o domínio das variáveis conforme a Tabela 2.</p><p>Variável Domínio da variável</p><p>A DA = {1,2,3,4}</p><p>B DB = {1,2,4}</p><p>C DC = {1,3,4}</p><p>D DD = {1,2,3,4}</p><p>E DE = {1,2,3,4}</p><p>Tabela 2 – Domínio das variáveis do PSR matemático. Fonte: o autor.</p><p>Analisando a quantidade de restrições de cada variável, no domínio das variáveis</p><p>é possível perceber que, a partir da restrição (E < B), B não pode ser 1, assim o</p><p>domínio de B não pode conter esse valor e deve ser removido. Do mesmo modo,</p><p>como (E < A), E não pode ser 4, alterando assim o domínio dessa variável com a</p><p>remoção do valor 4. A partir dessas duas modificações nos domínios de B e E, os</p><p>domínios das variáveis até o momento podem ser vistos na Tabela 3.</p><p>Variável Domínio da variável</p><p>A DA = {1,2,3,4}</p><p>B DB = {2,4}</p><p>C DC = {1,3,4}</p><p>D DD = {1,2,3,4}</p><p>E DE = {1,2,3}</p><p>Tabela 3 – Domínio das variáveis do PSR matemático. / Fonte: o autor.</p><p>Analisando a variável E, há as seguintes restrições: RE = {(E < A), (E < B), (E <</p><p>C), (E < D)} e a restrição (A = D). Percebemos, então, que E deve ser menor do</p><p>que três valores (A e D, que são iguais, B e C), portanto E não pode ser 2 ou 3,</p><p>127</p><p>pois caso E assuma esses valores, não existirão valores para as demais variáveis</p><p>que satisfaçam as restrições do problema, então 2 e 3 devem ser retirados do</p><p>domínio de E, restando apenas o valor 1, conforme a Tabela 4.</p><p>Variável Domínio da variável</p><p>A DA = {1,2,3,4}</p><p>B DB = {2,4}</p><p>C DC = {1,3,4}</p><p>D DD = {1,2,3,4}</p><p>E DE = {1}</p><p>Tabela 4 – Domínio das variáveis do PSR matemático. / Fonte: o autor (2022).</p><p>Com o valor de E definido, e a partir da restrição E < A, a variável A não</p><p>pode assumir o valor 1 porque violaria as restrições do problema, portanto</p><p>o valor 1 deve ser retirado do domínio de A.</p><p>O mesmo acontece com a variável D, que tem a restrição A = D e E < D, ou seja,</p><p>se o valor 1 não está no domínio de A, também não pode estar no domínio de D.</p><p>E para a variável C, a partir da restrição E < C, percebemos que C não pode</p><p>ser 1 porque violaria as restrições do PSR, assim, para essas três modificações,</p><p>temos o domínio das variáveis representado na Tabela 5.</p><p>Variável Domínio da variável</p><p>A DA = {2,3,4}</p><p>B DB = {2,4}</p><p>C DC = {3,4}</p><p>D DD = {2,3,4}</p><p>E DE = {1}</p><p>Tabela 5 – Domínio das variáveis do PSR matemático. /</p><p>Fonte: o autor.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>128</p><p>Neste ponto, analisando a restrição (C < D) e os domínios descritos anterior-</p><p>mente, percebemos que o maior valor possível para D é 4, e caso isso ocorra,</p><p>C deverá ser menor do que 4, portanto C não pode assumir o valor 4, que deve</p><p>ser removido de seu domínio, resultando na Tabela 6.</p><p>Variável Domínio da variável</p><p>A DA = {2,3,4}</p><p>B DB = {2,4}</p><p>C DC = {3}</p><p>D DD = {2,3,4}</p><p>E DE = {1}</p><p>Tabela 6 – Domínio das variáveis do PSR matemático. / Fonte: o autor.</p><p>Neste ponto, temos duas variáveis já atribuídas (C e E), uma variável com domí-</p><p>nio de tamanho dois (B) e duas variáveis com domínio de tamanho três (A e D).</p><p>Analisando ainda as restrições, percebemos que A e D devem ser iguais (A =</p><p>D) e podemos supor que A e D sejam atribuídos a algum valor do domínio, além</p><p>de verificar se as restrições são válidas com essa atribuição.</p><p>Assim, supondo que A = 2, e D = 2, a restrição (A = D) é válida, mas com</p><p>essas atribuições, a restrição (C < D) é violada, pois para C está atribuído o valor</p><p>3 e para D está atribuído o valor 2, ou seja, A e D não podem assumir o valor 2</p><p>que está em seu domínio, resultando nos domínios representados na Tabela 7.</p><p>Variável Domínio da variável</p><p>A DA = {3,4}</p><p>B DB = {2,4}</p><p>C DC = {3}</p><p>D DD = {3,4}</p><p>E DE = {1}</p><p>Tabela 7 – Domínio das variáveis do PSR matemático. / Fonte: o autor.</p><p>129</p><p>Analisando novamente os valores de A e D e assumindo que eles sejam iguais a</p><p>3 (A = 3 e D = 3), novamente a partir da restrição (C < D) temos uma inconsis-</p><p>tência porque C = 2 e D = 3, portanto a restrição (C < D) representa (2 < 3), que</p><p>é inválido, ou seja, A e D não podem assumir o valor 3, que deve ser removido</p><p>de seu domínio, resultando em um domínio com um único valor que representa</p><p>o valor correto das variáveis (A = 4 e D = 4), conforme a Tabela 8.</p><p>Variável Domínio da variável</p><p>A DA = {4}</p><p>B DB = {2,4}</p><p>C DC = {3}</p><p>D DD = {4}</p><p>E DE = {1}</p><p>Tabela 8 – Domínio das variáveis do PSR matemático. / Fonte: o autor.</p><p>Por fim, se (A = 4) e (D = 4), como (B ≠ A) e (B ≠ D), então B não pode assumir o</p><p>valor 4, que ao ser retirado de seu domínio faz com que o valor 2 seja atribuído a B,</p><p>resultando na representação e na resolução do PSR matemático descritas na Tabela 9.</p><p>Variável Domínio da variável</p><p>A DA = {4}</p><p>B DB = {2}</p><p>C DC = {3}</p><p>D DD = {4}</p><p>E DE = {1}</p><p>Tabela 9 – Resolução do PSR matemático com o domínio das variáveis. / Fonte: o autor.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>130</p><p>Analisando, então, as restrições R = {(B ≠ 3), (C ≠ 2), (A ≠ B), (B ≠ C), (B ≠ D),</p><p>(C < D), (A = D), (E < A), (E < B), (E < C), (E < D)} para o PSR, percebemos que</p><p>todas as restrições são satisfeitas a partir das atribuições descritas na Tabela 9, o</p><p>que representa uma resolução correta para o PSR.</p><p>Já para o problema de coloração de mapas, dadas as seguintes restrições:</p><p>R = {(WA ≠ SA), (WA ≠ NT), (NT ≠ SA), (NT ≠ Q), (SA ≠ Q), (SA ≠ NSW),</p><p>(SA ≠ V), (Q ≠ NSW), (NSW ≠ V)}, a quantidade de restrições de cada va-</p><p>riável é descrita na Tabela 10.</p><p>Variável Quantidade de restrições</p><p>WA 2</p><p>NT 3</p><p>SA 5</p><p>Q 3</p><p>NSW 3</p><p>V 2</p><p>T 0</p><p>Tabela 10 – Quantidade de restrições do problema de coloração de mapas da Austrália.</p><p>Fonte: o autor.</p><p>As informações de restrições da Tabela 10 indicam que a variável com mais</p><p>restrições é a variável SA, com cinco restrições com WA, NT, Q, NSW e V.</p><p>Com três restrições estão as variáveis NT (WA, SA e Q), Q (NT, SA e NSW)</p><p>e NSW (Q, SA, V). Já com duas restrições estão as variáveis WA (NT e SA),</p><p>e V (SA e NSW), por fim, com nenhuma restrição, temos a variável T, que</p><p>não se conecta com nenhuma variável.</p><p>Por fim, para o problema do Sudoku apresentado anteriormente, a quanti-</p><p>dade de restrições de uma posição do jogo é a mesma para uma das 81 variáveis.</p><p>Para observar tais restrições, suponha que a variável A1 de um jogo deve ser</p><p>diferente de A2, A3, A4, A5, A6, A7, A8 e A9, que é a linha na qual a variável</p><p>está inserida. O mesmo acontece para a coluna da variável, assim A1 deve ser</p><p>131</p><p>diferente de B1, B2, B3, B4, B5, B6, B7, B8 e B9. E a variável A1 deve ser diferente</p><p>das variáveis no seu grupo 3x3, que são A2, A3, B1, B2, B3, C1, C2 e C3.</p><p>Para todas as posições do Sudoku, elas terão a mesma quantidade de restri-</p><p>ções, 8 nas linhas, 8 nas colunas e 8 em seu grupo 3x3, totalizando 24 restrições.</p><p>Portanto, ordenar as variáveis de acordo com as restrições existentes nas variáveis</p><p>para o problema do Sudoku pode não ajudar na sua resolução (POOLE, 1998).</p><p>Outra técnica que pode ser utilizada para o problema do Sudoku é analisar o</p><p>tamanho do domínio das variáveis e realizar a atribuição das variáveis em ordem</p><p>crescente do tamanho do domínio dessas variáveis (RUSSELL; NORVIG, 2013).</p><p>Essa técnica pode ajudar em alguns tipos de problemas, como a técnica</p><p>já mostrada que auxilia no PSR matemático e na coloração de mapas, mas</p><p>ela não facilita a resolução do Sudoku.</p><p>Se analisarmos o problema de coloração de mapas, podemos perceber que</p><p>todas as variáveis têm como domínio as três cores RGB (red, green e blue, ou</p><p>vermelho, verde e azul), e não há nenhuma restrição que impeça uma variável</p><p>de ser uma cor, por exemplo, WA não pode ser vermelha.</p><p>Dessa forma, o domínio das variáveis tem sempre tamanho três, então</p><p>ordenar em ordem crescente faz com que todas as variáveis tenham tamanho</p><p>três, não auxiliando na resolução.</p><p>Já para o problema matemático apresentado nesta unidade, ao analisar-</p><p>mos o domínio das variáveis, percebemos que todas podem assumir os va-</p><p>lores de 1 a 5, mas ao analisarmos as restrições R = {(B ≠ 3), (C ≠ 2), (A ≠ B),</p><p>(B ≠ C), (B ≠ D), (C < D), (A = D), (E < A), (E < B), (E < C), (E < D)}, temos</p><p>que B não pode assumir o valor 3, e C não pode assumir o valor 2, resultando</p><p>nos domínios das variáveis mostrados na Tabela 11.</p><p>Variável Domínio da variável</p><p>A DA = {1,2,3,4}</p><p>B DB = {1,2,4}</p><p>C DC = {1,3,4}</p><p>D DD = {1,2,3,4}</p><p>E DE = {1,2,3,4}</p><p>Tabela 11 - Domínio das variáveis do PSR matemático. / Fonte: o autor.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>132</p><p>Com os domínios das variáveis alterados, percebemos que para as variáveis B e C,</p><p>seus domínios têm tamanho 3, enquanto que as variáveis A, D e E têm tamanho 4.</p><p>Desse modo, outra possível tentativa de resolução do problema pode ser</p><p>iniciada a partir das variáveis B e C, pois seus domínios têm um tamanho menor,</p><p>o que pode facilitar a resolução (LEE, 2019).</p><p>Já para o caso do Sudoku, analise o jogo da Figura 11.</p><p>9</p><p>9</p><p>9</p><p>6</p><p>6</p><p>4</p><p>4</p><p>7</p><p>7</p><p>2 1</p><p>1</p><p>5</p><p>5</p><p>3</p><p>5 7</p><p>3</p><p>2</p><p>2</p><p>2</p><p>8</p><p>8</p><p>8</p><p>1 2 3 4 5 6 7 8 9</p><p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p><p>G</p><p>H</p><p>I</p><p>FIGURA 11 – Exemplo de configuração inicial de um jogo do Sudoku. / Fonte: o autor.</p><p>Descrição da Imagem: A Figura 11 apresenta uma matriz com 9 linhas e 9 colunas, sendo que cada linha</p><p>é nomeada com uma letra de A a I, e cada coluna é nomeada com um número de 1 a 9, e as seguintes</p><p>posições estão preenchidas: A2 = 9-, A4 = 7, A6 = 2, A8 = 1, C2 = 5, C3 = 3, C7 = 2, C8 = 8, D1 = 3, D5 = 9, D9</p><p>= 5, E4 = 6, E6 = 4, F1 = 7, F5 = 1, F9 = 8, G2 = 2, G3 = 4, G7 = 5, G8 = 7, I2 = 6, I4 = 9, I6 = 8, &I8 = 2.</p><p>133</p><p>Podemos analisar o domínio de cada uma das variáveis, sendo que, originalmen-</p><p>te, podemos representar cada uma das variáveis de 1 a 9, contudo, a partir das</p><p>configurações iniciais, podemos eliminar alguns valores do domínio das variá-</p><p>veis. O domínio das variáveis do jogo da Figura 11 pode ser visto na Tabela 12.</p><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p><p>A</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6,</p><p>8}</p><p>9</p><p>D</p><p>=</p><p>{</p><p>6,</p><p>8}</p><p>7</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,6</p><p>,8</p><p>}</p><p>2</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,6</p><p>}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6}</p><p>B</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,4</p><p>,6</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,6</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>,5</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,6</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,6</p><p>,7</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,6</p><p>,7</p><p>,9</p><p>}</p><p>C</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>6}</p><p>5</p><p>3</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>6,</p><p>9}</p><p>2</p><p>8</p><p>D</p><p>=</p><p>{4</p><p>,6</p><p>,7</p><p>,9</p><p>}</p><p>D</p><p>3</p><p>D</p><p>=</p><p>{1</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,6</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>8}</p><p>9</p><p>7</p><p>D</p><p>=</p><p>{1</p><p>,4</p><p>,6</p><p>}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6}</p><p>5</p><p>E</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>6</p><p>D</p><p>=</p><p>{2</p><p>,3</p><p>,5</p><p>,8</p><p>}</p><p>4</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,7</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>9}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,3</p><p>,7</p><p>,9</p><p>}</p><p>F</p><p>7</p><p>4</p><p>D</p><p>=</p><p>{2</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>5}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>5}</p><p>D</p><p>=</p><p>{3</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,6</p><p>,9</p><p>}</p><p>8</p><p>G</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>8,</p><p>9}</p><p>2</p><p>4</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>6}</p><p>5</p><p>7</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,6</p><p>,9</p><p>}</p><p>H</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5,</p><p>8,</p><p>9}</p><p>3</p><p>D</p><p>=</p><p>{1</p><p>,5</p><p>,7</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,4</p><p>,5</p><p>}</p><p>D</p><p>=</p><p>{2</p><p>,4</p><p>,5</p><p>,6</p><p>,7</p><p>}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5,</p><p>6}</p><p>D</p><p>=</p><p>{1</p><p>,4</p><p>,6</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{4</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,4</p><p>,6</p><p>,9</p><p>}</p><p>I</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5}</p><p>6</p><p>D</p><p>=</p><p>{1</p><p>,5</p><p>,7</p><p>}</p><p>9</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,7</p><p>}</p><p>8</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>}</p><p>2</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>4}</p><p>TA</p><p>B</p><p>EL</p><p>A</p><p>1</p><p>2</p><p>–</p><p>D</p><p>om</p><p>ín</p><p>io</p><p>d</p><p>as</p><p>v</p><p>ar</p><p>iá</p><p>ve</p><p>is</p><p>d</p><p>o</p><p>jo</p><p>go</p><p>d</p><p>a</p><p>Fi</p><p>gu</p><p>ra</p><p>1</p><p>1.</p><p>/</p><p>F</p><p>on</p><p>te</p><p>: o</p><p>a</p><p>u</p><p>to</p><p>r.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>134</p><p>Analisando o domínio das variáveis anteriormente apresentadas, percebemos</p><p>que há duas variáveis com domínio de tamanho 1 (F2 e D6). Isso quer dizer que</p><p>em cada uma dessas posições, de acordo com as regras do Sudoku, só é possível</p><p>ter um valor específico em cada uma dessas posições (4 em F2 e 7 em D6).</p><p>Assim, uma atribuição a tais variáveis pode ser feita. E, com essa atribuição,</p><p>alguns domínios terão valores retirados porque uma atribuição em uma variável</p><p>influencia o domínio de outras variáveis na linha, coluna ou grade 3x3 relacio-</p><p>nada à variável que foi atribuída, conforme a Tabela 13.</p><p>135</p><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p><p>A</p><p>D</p><p>=</p><p>{4</p><p>,6</p><p>,8</p><p>}</p><p>9</p><p>D</p><p>=</p><p>{</p><p>6,</p><p>8}</p><p>7</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>6,</p><p>8}</p><p>2</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6}</p><p>B</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,4</p><p>,6</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,4</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,6</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>,5</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>6,</p><p>8}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6,</p><p>7,</p><p>9}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,6</p><p>,7</p><p>,9</p><p>}</p><p>C</p><p>D</p><p>=</p><p>{1</p><p>,4</p><p>,6</p><p>}</p><p>5</p><p>3</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>6,</p><p>9}</p><p>2</p><p>8</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6,</p><p>7,</p><p>9}</p><p>D</p><p>3</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>2,</p><p>6,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>8}</p><p>9</p><p>7</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>6,</p><p>7}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6}</p><p>5</p><p>E</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>8}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>6</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>5,</p><p>7,</p><p>8}</p><p>4</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>7,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>9}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,3</p><p>,7</p><p>,9</p><p>}</p><p>F</p><p>7</p><p>4</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>5,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>5}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>5}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6,</p><p>9}</p><p>8</p><p>G</p><p>D</p><p>=</p><p>{1</p><p>,8</p><p>,9</p><p>}</p><p>2</p><p>4</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>6}</p><p>5</p><p>7</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>6,</p><p>9}</p><p>H</p><p>D</p><p>=</p><p>{1</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,5</p><p>,7</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,3</p><p>,4</p><p>,5</p><p>}</p><p>D</p><p>=</p><p>{2</p><p>,3</p><p>,4</p><p>,5</p><p>,6</p><p>,7</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,5</p><p>,6</p><p>,7</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>,6</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>,6</p><p>,9</p><p>}</p><p>I</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5}</p><p>6</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5,</p><p>7}</p><p>9</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>7}</p><p>8</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>4}</p><p>2</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>4}</p><p>TA</p><p>B</p><p>EL</p><p>A</p><p>1</p><p>3</p><p>–</p><p>S</p><p>it</p><p>ua</p><p>çã</p><p>o</p><p>pa</p><p>rc</p><p>ia</p><p>l d</p><p>o</p><p>jo</p><p>go</p><p>S</p><p>ud</p><p>ok</p><p>u</p><p>co</p><p>m</p><p>d</p><p>om</p><p>ín</p><p>io</p><p>s</p><p>m</p><p>od</p><p>ifi</p><p>ca</p><p>do</p><p>s</p><p>a</p><p>pa</p><p>rt</p><p>ir</p><p>da</p><p>a</p><p>tr</p><p>ib</p><p>ui</p><p>çã</p><p>o</p><p>da</p><p>s</p><p>va</p><p>riá</p><p>ve</p><p>is</p><p>F</p><p>2</p><p>e</p><p>D</p><p>6</p><p>. e</p><p>D</p><p>6</p><p>.</p><p>/</p><p>Fo</p><p>nt</p><p>e:</p><p>o</p><p>a</p><p>u</p><p>to</p><p>r.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>136</p><p>A Tabela 13 mostra, então, que a partir da atribuição de 4 a F2, os domínios</p><p>das variáveis B2, D2 F7 e F8 foram alterados, sendo removido o valor 4. Do</p><p>mesmo modo, com a atribuição de 7 à variável D6, o domínio das variáveis</p><p>E5, H6 e D7 também foi modificado, removendo o valor 7.</p><p>A resolução do jogo pode seguir se baseando no tamanho do domínio,</p><p>conforme já descrito, mas, em alguns casos, é preciso usar outras técnicas</p><p>para resolução. Suponha que, após a atribuição das variáveis F2 e D6, surja</p><p>a situação representada na Tabela 14.</p><p>137</p><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p><p>A</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6,</p><p>8}</p><p>9</p><p>D</p><p>=</p><p>{</p><p>6,</p><p>8}</p><p>7</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>6,</p><p>8}</p><p>2</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6}</p><p>B</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,4</p><p>,6</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,4</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,6</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>,5</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>6,</p><p>8}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6,</p><p>7,</p><p>9}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,6</p><p>,7</p><p>,9</p><p>}</p><p>C</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>6}</p><p>5</p><p>3</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>6,</p><p>9}</p><p>2</p><p>8</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6,</p><p>7,</p><p>9}</p><p>D</p><p>3</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>2,</p><p>6,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>8}</p><p>9</p><p>7</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>6,</p><p>7}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6}</p><p>5</p><p>E</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>8}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>6</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>5,</p><p>7,</p><p>8}</p><p>4</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>7,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>9}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,3</p><p>,7</p><p>,9</p><p>}</p><p>F</p><p>7</p><p>4</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>5,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>5}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>5}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6,</p><p>9}</p><p>8</p><p>G</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>8,</p><p>9}</p><p>2</p><p>4</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>6}</p><p>5</p><p>7</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>6,</p><p>9}</p><p>H</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5,</p><p>8,</p><p>9}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,5</p><p>,7</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,3</p><p>,4</p><p>,5</p><p>}</p><p>D</p><p>=</p><p>{2</p><p>,3</p><p>,4</p><p>,5</p><p>,6</p><p>,7</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,5</p><p>,6</p><p>,7</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>,6</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>,6</p><p>,9</p><p>}</p><p>I</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5}</p><p>6</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5,</p><p>7}</p><p>9</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>7}</p><p>8</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>4}</p><p>2</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>4}</p><p>TA</p><p>B</p><p>EL</p><p>A</p><p>1</p><p>4</p><p>–</p><p>S</p><p>it</p><p>ua</p><p>çã</p><p>o</p><p>pa</p><p>rc</p><p>ia</p><p>l d</p><p>o</p><p>jo</p><p>go</p><p>S</p><p>ud</p><p>ok</p><p>u.</p><p>/</p><p>F</p><p>on</p><p>te</p><p>: o</p><p>a</p><p>u</p><p>to</p><p>r.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>138</p><p>Conforme a situação apresentada, nenhuma variável tem domínio de tamanho 1,</p><p>assim poderíamos analisar as variáveis com domínio de tamanho dois, supor que</p><p>a variável é atribuída para um dos valores, analisar os demais casos e continuar</p><p>a resolução do jogo. No entanto, é possível encontrar inconsistências e precisar</p><p>retornar a partir da suposição feita (backtracking).</p><p>Contudo, outro modo de resolver o Sudoku, nesse caso, é pensar que na grade</p><p>9x9 há um número 1 em cada coluna, um 1 em cada linha e um 1 em cada grade</p><p>3x3, o mesmo valendo para os demais números até 9.</p><p>Assim, podemos analisar o jogo observando a quantidade de números em</p><p>cada uma das linhas, colunas e grade 3x3. Observe a posição H2 da Figura</p><p>14, por exemplo. A partir do domínio da variável, podemos dizer que H2</p><p>pode ser 1, 3, 7 ou 8. No entanto, analisando as colunas 1, 2 e 3, percebemos</p><p>que já existe um número 3 na coluna 1 e um número 3 na coluna 3. Além</p><p>disso, o número 3 da coluna 1 está na grade formada pelas variáveis D1 e</p><p>F3, e o número 3 da coluna 3 está na grade formada pelas variáveis A1 e C3.</p><p>Portanto, podemos afirmar que falta um número 3 na coluna 2. Além disso,</p><p>esse número 3 precisa estar na grade formada pelas variáveis G1 e I3.</p><p>Analisando, então, a grade formada pelas variáveis G1 e I3, percebemos</p><p>que só há uma variável disponível na coluna 2, H2, assim podemos afirmar</p><p>que para a variável H2 deve ser atribuído o valor 3, excluindo novamente o</p><p>valor 3 das variáveis da mesma linha, mesma coluna e mesma grade 3x3 que</p><p>H2, resultando na Tabela 15.</p><p>139</p><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p><p>A</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6,</p><p>8}</p><p>9</p><p>D</p><p>=</p><p>{</p><p>6,</p><p>8}</p><p>7</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,6</p><p>,8</p><p>}</p><p>2</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>6}</p><p>B</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,4</p><p>,6</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>7,</p><p>8}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,6</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,4</p><p>,5</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,6</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{1</p><p>,3</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,6</p><p>,7</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,6</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,6</p><p>,7</p><p>,9</p><p>}</p><p>C</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>6}</p><p>5</p><p>3</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>6,</p><p>9}</p><p>2</p><p>8</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6,</p><p>7,</p><p>9}</p><p>D</p><p>3</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>2,</p><p>6,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>8}</p><p>9</p><p>7</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6}</p><p>5</p><p>E</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>8}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>6</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>5,</p><p>8}</p><p>4</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>7,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>9}</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,3</p><p>,7</p><p>,9</p><p>}</p><p>F</p><p>7</p><p>4</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>5,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>5}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>5}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>6,</p><p>9}</p><p>8</p><p>G</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>8,</p><p>9}</p><p>2</p><p>4</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>6}</p><p>5</p><p>7</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>6,</p><p>9}</p><p>H</p><p>D</p><p>=</p><p>{1</p><p>,5</p><p>,8</p><p>,9</p><p>}</p><p>3</p><p>D</p><p>=</p><p>{1</p><p>,5</p><p>,7</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>2,</p><p>4,</p><p>5}</p><p>D</p><p>=</p><p>{2</p><p>,4</p><p>,5</p><p>,6</p><p>,7</p><p>}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5,</p><p>6}</p><p>D</p><p>=</p><p>{1</p><p>,4</p><p>,6</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>6,</p><p>9}</p><p>I</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5}</p><p>6</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5,</p><p>7}</p><p>9</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>7}</p><p>8</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>4}</p><p>2</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>4}</p><p>TA</p><p>B</p><p>EL</p><p>A</p><p>1</p><p>5</p><p>–</p><p>S</p><p>it</p><p>ua</p><p>çã</p><p>o</p><p>pa</p><p>rc</p><p>ia</p><p>l d</p><p>o</p><p>jo</p><p>go</p><p>S</p><p>ud</p><p>ok</p><p>u.</p><p>/</p><p>F</p><p>on</p><p>te</p><p>: o</p><p>a</p><p>u</p><p>to</p><p>r.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>140</p><p>Agora, novamente temos a situação na qual não existe nenhum domínio com</p><p>tamanho 1, e precisamos analisar a quantidade de cada um dos dígitos nas li-</p><p>nhas, colunas e grade 3x3. Essa análise varia conforme o nível de dificuldade do</p><p>jogo, sendo que em alguns jogos essa situação pode não ocorrer dependendo da</p><p>dificuldade do jogo (POOLE, 1998).</p><p>A resolução do jogo pode continuar intercalando a análise do tamanho do</p><p>domínio apresentada aqui, e a análise da quantidade de números em cada uma</p><p>das linhas, colunas e grade 3x3. Uma possível sequência de atribuições para as</p><p>variáveis a partir da Figura 15 é: E9 – B8 – A5 – E7 – B2 – C9 – C6 – D7 – E2 –</p><p>D2 – E5 – B4 – D8 – D3 – D4 – E8 – F3 – B1 – H5 – I5 – H3 – H7 – G1 – A3</p><p>– H1 – G9 – B7 – F8 – E3 – F7 – E1 – I3 – I1 – B3 – C4 – H8 – H9 – G6 – H4</p><p>– H6 – F4 – F6 – B6 – G4 – B5 – C5 – C1 – A1 – B9 – G5 – I7 – I9 – A7 – A9. Já</p><p>a resolução do jogo pode ser visualizada na Tabela 16.</p><p>141</p><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p><p>A</p><p>4</p><p>9</p><p>8</p><p>7</p><p>5</p><p>2</p><p>3</p><p>1</p><p>6</p><p>B</p><p>2</p><p>7</p><p>1</p><p>8</p><p>3</p><p>6</p><p>9</p><p>5</p><p>4</p><p>C</p><p>6</p><p>5</p><p>3</p><p>1</p><p>4</p><p>9</p><p>2</p><p>8</p><p>7</p><p>D</p><p>3</p><p>8</p><p>6</p><p>2</p><p>9</p><p>7</p><p>1</p><p>4</p><p>5</p><p>E</p><p>5</p><p>1</p><p>9</p><p>6</p><p>8</p><p>4</p><p>7</p><p>3</p><p>2</p><p>F</p><p>7</p><p>4</p><p>2</p><p>5</p><p>1</p><p>3</p><p>6</p><p>9</p><p>8</p><p>G</p><p>8</p><p>2</p><p>4</p><p>3</p><p>6</p><p>1</p><p>5</p><p>7</p><p>9</p><p>H</p><p>6</p><p>3</p><p>7</p><p>4</p><p>2</p><p>5</p><p>8</p><p>6</p><p>1</p><p>I</p><p>1</p><p>6</p><p>5</p><p>9</p><p>7</p><p>8</p><p>4</p><p>2</p><p>3</p><p>TA</p><p>B</p><p>EL</p><p>A</p><p>1</p><p>6</p><p>–</p><p>R</p><p>es</p><p>ol</p><p>uç</p><p>ão</p><p>d</p><p>o</p><p>Su</p><p>do</p><p>ku</p><p>a</p><p>pr</p><p>es</p><p>en</p><p>ta</p><p>do</p><p>n</p><p>a</p><p>Fi</p><p>gu</p><p>ra</p><p>1</p><p>1.</p><p>/</p><p>F</p><p>on</p><p>te</p><p>: o</p><p>a</p><p>u</p><p>to</p><p>r.</p><p>UNIDADE 4</p><p>UNIDADE 4</p><p>142</p><p>Vale destacar que a sequência de resolução descrita anteriormente não é única,</p><p>outras sequências podem ser utilizadas, mas a resolução apresentada na Tabela</p><p>16 é única, não havendo outra resolução para esse jogo (TAULLI, 2020).</p><p>Caro estudante, agora vamos analisar a resolução de outro</p><p>jogo de Sudoku passo a passo, utilizando como método de</p><p>resolução a análise do tamanho do domínio das variáveis</p><p>e a análise das posições dos números na grade 9x9. A</p><p>figura a seguir apresenta a configuração inicial do jogo para</p><p>acompanhar ouvindo o podcast.</p><p>Descrição da Imagem: A Figura 17</p><p>apresenta uma matriz com 9 linhas</p><p>e 9 colunas, sendo que cada linha</p><p>é nomeada com uma letra de A a I,</p><p>e cada coluna é nomeada com um</p><p>número de 1 a 9. As seguintes posi-</p><p>ções estão preenchidas: A2 = 9, A4</p><p>= 3, A5 = 8, A8 = 2, B1 = 1, B2 = 2, B6</p><p>= 7, B9 = 4, C5 = 9, C7 = 3, D1 = 9, D8</p><p>= 6, E1 = 3, E3 = 6, E5 = 7, E7 = 2, E9</p><p>= 8, F2 = 5, F9 = 9, G3 = 2, G5 = 4, H1</p><p>= 4, H4 = 1, H8 = 8, H9 = 2, I2 = 7, I5</p><p>= 6, I6 = 9 e I8 = 4, e coloridas com</p><p>a cor cinza. As demais posições não</p><p>estão preenchidas.</p><p>Figura – Configuração inicial do Su-</p><p>doku com resolução no Podcast. /</p><p>Fonte: o autor.</p><p>https://apigame.unicesumar.edu.br/qrcode/11016</p><p>143</p><p>Essas técnicas de resolução de PSR podem ser aplicadas a problemas mais com-</p><p>plexos, como o exemplo do jogo Super Mario World já descrito. A ideia é trans-</p><p>formar o problema em um PSR e utilizar os algoritmos de resolução de PSR já</p><p>conhecidos e aplicá-los no problema.</p><p>Isso pode ajudar em outros tipos de problemas relacionados à inteligência</p><p>artificial. Por exemplo, para os problemas de busca definidos nas Unidades 2 e</p><p>3, podemos também transformá-los em PSR, analisar o domínio das variáveis e</p><p>trabalhar com as técnicas vistas nesta unidade para resolvê-los.</p><p>Assim, quando você se deparar com um problema no mundo real que precisa</p><p>de um algoritmo para resolução, pense em converter o problema em um PSR.</p><p>Caso consiga convertê-lo, o problema já tem solução (exceto em casos especiais).</p><p>UNIDADE 4</p><p>144</p><p>1. Questão 1</p><p>Utilizando como método de resolução a ordenação das variáveis de acordo com a</p><p>quantidade de restrições, e como ordem dos valores o RGB (red, green, blue), mos-</p><p>tre a resolução do grafo a seguir, que é representativo do problema de coloração</p><p>de mapas (uma aresta entre um nó e outro indica que as cores dos nós devem ser</p><p>diferentes).</p><p>B</p><p>D</p><p>A</p><p>E</p><p>F</p><p>C</p><p>Descrição da Imagem: A Figura apresenta seis elipses com letras em seu interior, sendo que a elipse com a</p><p>letra A está ligada por uma linha a outras três elipses, B, C e E. A elipse com a letra B está conectada a outras</p><p>três elipses, A, B e F. A elipse com a letra C está conectada a outras três elipses, A, E e F. A elipse com a letra</p><p>D está conectada somente a uma elipse, F. A elipse com a letra E está conectada a outras quatro elipses, A,</p><p>B, C e F. Por fim, a elipse com a letra F está conectada a outras quatro elipses, B, C, D e E.</p><p>Figura – Exemplo de exercício de coloração de mapas em um grafo. / Fonte: o autor.</p><p>2. Questão 2</p><p>Dada a seguinte representação do Sudoku, tratando o jogo como um PSR, apresente</p><p>o domínio de cada uma das variáveis do jogo.Obs.: não é necessário resolver o jogo,</p><p>somente apresentar o domínio das variáveis.</p><p>145</p><p>Fi</p><p>gu</p><p>ra</p><p>–</p><p>C</p><p>on</p><p>fig</p><p>ur</p><p>aç</p><p>ão</p><p>in</p><p>ic</p><p>ia</p><p>l d</p><p>o</p><p>Su</p><p>do</p><p>ku</p><p>.</p><p>/</p><p>F</p><p>on</p><p>te</p><p>: o</p><p>a</p><p>u</p><p>to</p><p>r.</p><p>D</p><p>es</p><p>cr</p><p>iç</p><p>ão</p><p>d</p><p>a</p><p>Im</p><p>ag</p><p>em</p><p>: A</p><p>F</p><p>ig</p><p>ur</p><p>a</p><p>in</p><p>di</p><p>ca</p><p>da</p><p>a</p><p>nt</p><p>er</p><p>io</p><p>rm</p><p>en</p><p>te</p><p>a</p><p>pr</p><p>es</p><p>en</p><p>ta</p><p>u</p><p>m</p><p>a</p><p>m</p><p>at</p><p>ri</p><p>z</p><p>co</p><p>m</p><p>9</p><p>li</p><p>nh</p><p>as</p><p>e</p><p>9</p><p>c</p><p>o-</p><p>lu</p><p>na</p><p>s,</p><p>s</p><p>en</p><p>do</p><p>q</p><p>ue</p><p>c</p><p>ad</p><p>a</p><p>lin</p><p>ha</p><p>é</p><p>n</p><p>om</p><p>ea</p><p>da</p><p>c</p><p>om</p><p>u</p><p>m</p><p>a</p><p>le</p><p>tr</p><p>a</p><p>de</p><p>A</p><p>a</p><p>I,</p><p>e</p><p>c</p><p>ad</p><p>a</p><p>co</p><p>lu</p><p>na</p><p>é</p><p>n</p><p>om</p><p>ea</p><p>da</p><p>c</p><p>om</p><p>u</p><p>m</p><p>nú</p><p>m</p><p>er</p><p>o</p><p>de</p><p>1</p><p>a</p><p>9</p><p>. A</p><p>s</p><p>se</p><p>gu</p><p>in</p><p>te</p><p>s</p><p>po</p><p>si</p><p>çõ</p><p>es</p><p>e</p><p>st</p><p>ão</p><p>p</p><p>re</p><p>en</p><p>ch</p><p>id</p><p>as</p><p>: A</p><p>1</p><p>=</p><p>8,</p><p>A</p><p>3</p><p>=</p><p>3,</p><p>A</p><p>4</p><p>=</p><p>2ª</p><p>9</p><p>=</p><p>4,</p><p>B</p><p>4</p><p>=</p><p>3,</p><p>B</p><p>7</p><p>=</p><p>1,</p><p>C</p><p>2</p><p>=</p><p>9,</p><p>C</p><p>4</p><p>=</p><p>7,</p><p>C</p><p>9</p><p>=</p><p>8,</p><p>D</p><p>7</p><p>=</p><p>3,</p><p>D</p><p>8</p><p>=</p><p>2,</p><p>D</p><p>9</p><p>=</p><p>1,</p><p>E</p><p>5</p><p>=</p><p>1,</p><p>F</p><p>1</p><p>=</p><p>6,</p><p>F</p><p>2</p><p>=</p><p>1,</p><p>F</p><p>3</p><p>=</p><p>9,</p><p>G</p><p>1</p><p>=</p><p>2,</p><p>G</p><p>6</p><p>=</p><p>8,</p><p>G</p><p>8</p><p>=</p><p>6,</p><p>H</p><p>3</p><p>=</p><p>5,</p><p>H</p><p>6</p><p>=</p><p>6,</p><p>I1</p><p>=</p><p>1</p><p>, I</p><p>6</p><p>=</p><p>2,</p><p>I7</p><p>=</p><p>4</p><p>e</p><p>I9</p><p>=</p><p>9</p><p>, e</p><p>c</p><p>ol</p><p>or</p><p>id</p><p>as</p><p>c</p><p>om</p><p>a</p><p>c</p><p>or</p><p>c</p><p>in</p><p>za</p><p>, e</p><p>nq</p><p>ua</p><p>nt</p><p>o</p><p>as</p><p>d</p><p>em</p><p>ai</p><p>s</p><p>po</p><p>si</p><p>çõ</p><p>es</p><p>e</p><p>st</p><p>ão</p><p>e</p><p>m</p><p>b</p><p>ra</p><p>nc</p><p>o.</p><p>146</p><p>3. Questão 3</p><p>Um Sudoku binário é um Sudoku formado somente com 0 e 1. Além disso, não é</p><p>possível ter mais de dois números consecutivos nas linhas e nas colunas. E, de acordo</p><p>com o tamanho da grade (6x6 no exemplo), cada linha/coluna deve ter metade de</p><p>dígitos 0 e metade de dígitos 1, ou seja, cada linha e coluna do nosso jogo deve ter</p><p>exatamente três números 0 e três números 1. A partir dessa representação, apre-</p><p>sente o domínio das variáveis representadas no jogo da figura a seguir.</p><p>Descrição da Imagem: A Figura apresenta uma matriz com 6 linhas e 6 colunas, sendo que cada linha</p><p>é nomeada com uma letra de A a F, e cada coluna é nomeada com um número de 1 a 6, e as seguintes</p><p>posições estão preenchidas: A3 = 1, B1 = 0, B2 = 0, B4 = 1, C1 = 0, E4 = 1 e F5 = 0, e estão coloridas em</p><p>cinza, enquanto as demais posições estão em branco</p><p>Figura – Configuração inicial de um Sudoku binário. / Fonte: o autor.</p><p>5Representação do</p><p>Conhecimento e</p><p>Robótica</p><p>Me. Maurilio Martins Campano Junior</p><p>Esta Unidade aborda as concepções de Robótica, caracterizando e</p><p>definindo os conceitos principais de um robô, como a corporalidade,</p><p>o sensoriamento, a ação, o cérebro, os músculos e a autonomia do</p><p>robô. Além disso, serão apresentados exemplos de robôs e projetos</p><p>utilizando o Arduino.</p><p>A forma de representar um conhecimento em um dispositivo inteli-</p><p>gente também é abordada, pontuado características importantes e</p><p>relevantes para a área.</p><p>UNIDADE 5</p><p>148</p><p>A inteligência artificial é uma área muito grande, no entanto, normalmente ou-</p><p>vimos falar de robôs que agem de forma inteligente, que resolvem tarefas de ma-</p><p>neira muito rápida, armazenam e conseguem inferir informações, dentre outras</p><p>coisas, sejam essas informações oriundas de ficções científicas ou não.</p><p>Vários conceitos podem ser abordados em um projeto de IA, a ideia é pensar</p><p>o que se deseja e automatizar com a inteligência artificial, utilizando-se de tecno-</p><p>logias para se chegar ao resultado desejado.</p><p>Analisando esse contexto, como a inteligência artificial está presente na robó-</p><p>tica? Podemos analisar o lado inteligente de robôs e examinar as características</p><p>inteligentes desse tipo de dispositivo.</p><p>Um robô segue a mesma</p><p>ideia de um programa inteligente, porém, ele tem</p><p>dispositivos mecânicos que o permitem se movimentar e/ou agir no ambiente.</p><p>Além disso, robôs também precisam das mesmas características descritas nas</p><p>unidades anteriores, o que possibilita ao dispositivo incorporar movimentos de</p><p>um robô para executar as tarefas citadas nas outras unidades.</p><p>Além da movimentação, a representação do conhecimento e de informações</p><p>em um dispositivo inteligente é de fundamental importância, pois é a partir das</p><p>informações armazenadas que são feitas inferências, suposições e que o disposi-</p><p>tivo raciocina para agir da maneira correta.</p><p>Assim, os conceitos de inteligência artificial relacionados a essa matéria po-</p><p>dem ser aplicados a dispositivos móveis (robôs) também, permitindo a realização</p><p>de tarefas mecânicas ou atividades mais complexas.</p><p>Um dos robôs inteligentes presentes no dia a dia de algumas pessoas é o</p><p>robô aspirador, que limpa a casa de forma inteligente, voltando para a base para</p><p>recarregar e tornando a vida do usuário mais fácil.</p><p>Esse robô precisa de elementos de sensoriamento para saber em qual local da</p><p>casa está, se o local está sujo ou não, além de outras informações que pode obter</p><p>do ambiente. Além disso, o robô precisa de elementos de ação, neste caso, o poder</p><p>de aspirar e/ou limpar a casa. Outra necessidade do dispositivo são os compo-</p><p>nentes para formar o seu corpo e cérebro, que possibilitam a ele se movimentar</p><p>e tomar decisões, além de poder estar dotado de autonomia, com a capacidade</p><p>de retornar para a base antes de a bateria acabar.</p><p>Além do robô aspirador de pó, você consegue pensar em outro tipo de dis-</p><p>positivo dotado de inteligência que está presente em algumas casas?</p><p>149</p><p>O robô aspirador é um exemplo facilmente visualizado no nosso dia a</p><p>dia, entretanto, é possível pensar em outros casos de dispositivos inseridos</p><p>em nosso ambiente que possuem inteligência artificial. Lembrando que a</p><p>inteligência artificial não está presente somente em robôs e máquinas que</p><p>andam sozinhas, podemos pensar também em softwares automatizados que</p><p>realizam tarefas de forma inteligente.</p><p>Quando utilizamos um streaming de filmes/músicas, este tipo de serviço tenta</p><p>recomendar títulos que sejam de interesse do usuário. Para isso, são utilizados</p><p>algoritmos de aprendizado de máquina, ou seja, inteligência artificial.</p><p>Dispositivos mais recentes, tal como lâmpadas inteligentes, sensores de abertu-</p><p>ra de porta, entre outros, também podem se enquadrar na categoria de aparelhos</p><p>inteligentes. Por exemplo, utilizando uma lâmpada inteligente e um sensor de</p><p>abertura de porta, é possível definir uma regra para que quando o portão da ga-</p><p>ragem abrir, as luzes da garagem se acendam, fazendo com que o sistema perceba</p><p>tal característica e consiga definir padrões de comportamento do usuário de forma</p><p>autônoma. Para reconhecermos ainda mais a aplicação dessas tecnologias a nossa</p><p>volta, lhe convido a usar seu diário de bordo e listar onde você consegue perceber</p><p>situações de inteligência artificial em seu dia a dia (em sua casa e/ou trabalho).</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>150</p><p>O conceito de robô pode abordar diversas áreas do conhecimento, tais como</p><p>engenharia, ciência da computação, física, entre outras, sendo que em cada área</p><p>pode ser necessário conhecer conceitos de suas subáreas, assim como a inteli-</p><p>gência artificial (MATARIC, 2014).</p><p>Cada tipo de robô pode abordar conceitos próprios que lhe permitam realizar</p><p>tarefas específicas, por exemplo, para andar no solo de Marte, o robô pode pre-</p><p>cisar de movimentação e autonomia para enfrentar um território desconhecido,</p><p>enquanto que um braço mecânico que atua em uma indústria pode ser respon-</p><p>sável por realizar uma única tarefa (RUSSELL; NORVIG, 2013).</p><p>Uma das principais características em uma definição de um robô é a ca-</p><p>pacidade de ser autônomo, perceber o ambiente no qual está inserido, e agir</p><p>sobre o local visando atingir algum objetivo específico. Essa definição pode</p><p>excluir, por exemplo, o braço mecânico como sendo um robô, pois ele não</p><p>151</p><p>pode não ter autonomia, além de depender de um humano para configurar</p><p>e realizar o seu trabalho (MATARIC, 2014).</p><p>A definição de um robô que tem autonomia, percebe e age sobre o am-</p><p>biente é similar aos conceitos de agentes inteligentes, porém, quando falamos</p><p>de robótica, estamos envolvendo também elementos físicos, já um agente</p><p>inteligente pode ser descrito somente como um software capaz de realizar</p><p>algumas tarefas de modo inteligente (RUSSELL; NORVIG, 2013).</p><p>Quando adicionamos o componente físico em um robô, é crucial pensar em</p><p>como esse componente irá interagir com os demais elementos do robô. Dessa forma,</p><p>podemos pensar que o robô é caracterizado pelos seguintes elementos: corporalida-</p><p>de, sensoriamento, ação, cérebro e músculos e autonomia (MATARIC, 2014).</p><p>Nesse mesmo sentido, Mataric (2014) ainda ressalta que essas características</p><p>podem ser aplicadas a diversos tipos de robôs. Se pensarmos em um robô para</p><p>realizar as tarefas diárias de uma casa, varrer, passar pano, tirar pó, entre outras,</p><p>ele precisa abordar todas estas características. Do mesmo modo, ao pensar em um</p><p>robô que faz a vigilância de um condomínio, por exemplo, os mesmos conceitos</p><p>de corporalidade, sensoriamento, ação, cérebros e músculos e autonomia devem</p><p>ser abordados na sua montagem e construção.</p><p>Assim, a definição desses conceitos é de suma importância na constru-</p><p>ção e desenvolvimento de um robô, seja para ele realizar tarefas simples ou</p><p>complexas em um determinado ambiente.</p><p>A corporalidade de um robô define características relacionadas ao corpo</p><p>do robô, como são seus componentes, como se movimenta, quais as limita-</p><p>ções de movimentos, qual a velocidade dos movimentos realizados, entre</p><p>outros fatores (MATARIC, 2014).</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>152</p><p>Tomando como exemplo os robôs aspiradores, eletroportátil lançado há pouco</p><p>tempo, a movimentação se dá por meio de rodas, e mesmo uma análise maior</p><p>dos dispositivos pode indicar formas de rodas diferentes, tal como uma roda de</p><p>um carro, ou no formato de roda similares aos tanque de guerra.</p><p>Estes robôs precisam “entender” que a sua movimentação é limitada de acor-</p><p>do com o terreno da casa, ou seja, podem não se movimentar sobre um</p><p>tapete muito felpudo, sobre a grama ou pedras, e essa movimentação tem a</p><p>sua limitação de velocidade. Em relação à velocidade, nesse caso, deve ser</p><p>pensado que o robô se movimenta em uma velocidade na qual é possível</p><p>aspirar/limpar a sujeira enquanto passa por uma superfície, caso contrário,</p><p>ele pode passar de forma muito rápida sobre um local, e não conseguir limpar</p><p>toda a sujeira presente, inviabilizando a sua função de limpar, e necessitando</p><p>passar novamente no mesmo local (MATARIC, 2014).</p><p>Se pensarmos em um robô que faz entregas de comida, por exemplo , um</p><p>drone, a corporalidade envolve a forma como o drone irá voar – pode ser no</p><p>153</p><p>formato similar a um avião, no formato de um helicóptero, ou outras formas</p><p>possíveis. Além disso, a corporalidade desse tipo de robô levará em conta a velo-</p><p>cidade que o drone se movimenta, as limitações de acesso em relação à distância</p><p>a ser percorrida e a altura na qual consegue voar.</p><p>Para um robô na forma humanoide, similar ao robô do filme Eu, Robô,</p><p>a sua corporalidade tem como objetivo ser similar ao corpo humano, com</p><p>pernas, braços, cabeça e tronco, e movimentações também similares às hu-</p><p>manas nesses membros. Isso permite à movimentação correr, abaixar, pular,</p><p>segurar objetos e demais mobilidades, tal qual um humano.</p><p>Em relação ao sensoriamento de um robô, este conceito descreve a forma</p><p>como o robô percebe o mundo externo, como ele visualiza o ambiente, como ele</p><p>armazena as informações do ambiente em um estado interno, para depois realizar</p><p>um processamento e decidir qual ação executar (MATARIC, 2014).</p><p>O sensoriamento em robôs pode ser realizado por meio de diversos tipos de</p><p>sensores. Um exemplo de sensor, que está presente em grande parte dos celulares</p><p>hoje em dia, é o acelerômetro.</p><p>Por meio do acelerômetro, o sistema operacional</p><p>do celular consegue indicar se o usuário está utilizando o celular na posição hori-</p><p>zontal ou vertical e se adequa à forma de visualização mais eficaz para o usuário.</p><p>Outros tipos de sensores incluem os de temperatura, de luminosidade, de presen-</p><p>ça (detector de movimentos), de distância, sensor para captar e analisar quantidade</p><p>de chuva, sensor de som e muitos outros tipos que podem ser utilizados em diversos</p><p>projetos – tais como casas inteligentes, braços robóticos, robôs etc. (POOLE, 1998).</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>154</p><p>No exemplo do robô aspirador de pó, podem estar inclusos sensores de dis-</p><p>tância, para saber a distância entre um local e outro, de impacto, para detectar</p><p>colisões com objetos, além de outros tipos.</p><p>Agora, analisando o caso do drone que realiza entregas de comida, é ne-</p><p>cessário um GPS para saber a sua posição específica na cidade e conseguir</p><p>se deslocar (corporalidade) para o seu destino. É preciso também o acelerô-</p><p>metro, para saber a sua posição/orientação, sensores de colisão, de distância</p><p>e também pode ser necessária uma câmera (que é um tipo de sensor, pois</p><p>pode perceber como está o mundo por meio da foto aliada a técnicas de</p><p>processamento de imagens e reconhecimento de padrões).</p><p>Para o humanoide similar ao que aparece no filme Eu, Robô, em relação ao</p><p>sensoriamento, precisaríamos de uma câmera para analisar o que acontece no</p><p>mundo, e, por meio do processamento, decidir o que fazer. Poderíamos pensar</p><p>também que o robô possui sensores de distância, proximidade, de temperatura</p><p>e demais que possam auxiliar na sua movimentação, interação com outros robôs</p><p>e humanos e manipulação de objetos (MATARIC, 2014).</p><p>A ação de um robô envolve o que ele pode</p><p>fazer, tanto em relação a sua movimentação</p><p>por meio dos elementos de corporalidade</p><p>(rodas, pernas etc.), quanto em relação à</p><p>forma como ele vai manipular o mundo (as-</p><p>pirar o pó, pegar objetos, deixar objetos etc.)</p><p>155</p><p>A ação de um robô envolve o que ele pode fazer, tanto em relação a sua movimen-</p><p>tação por meio dos elementos de corporalidade (rodas, pernas etc.), quanto em re-</p><p>lação à forma como ele vai manipular o mundo (aspirar o pó, pegar objetos, deixar</p><p>objetos etc.). Essas características podem parecer similares, mas têm especificações</p><p>relacionadas a cada ação que se quer realizar por um robô (MATARIC, 2014).</p><p>Em um robô que se movimenta, por exemplo, a ação determina o mo-</p><p>vimento por meio das rodas, que também pode determinar que um braço</p><p>do robô pegue um objeto, interaja com outros objetos e/ou robôs e realize</p><p>determinadas tarefas. Já, por outro lado, se pensarmos em um manipulador</p><p>robótico temos uma situação parecida, na qual um braço robótico pode rea-</p><p>lizar a ação de montagem de um dispositivo em uma fábrica, realizar tarefas</p><p>por meio do braço, no entanto, sem movimentações (LEE, 2019).</p><p>Independentemente se o robô se movimenta ou não, as ações determinam o</p><p>que ele pode realizar, em conjunto com as características da sua corporalidade,</p><p>que determinam o que ele tem e o que ele pode usar (MATARIC, 2014).</p><p>Considerando o nosso exemplo do robô aspirador de pó, uma das principais</p><p>ações realizadas por ele é a ação de aspirar, no entanto, qualquer ação possível</p><p>de se movimentar, gerar sinais sonoros ou luminosos pode ser considerada uma</p><p>ação. Note que em qualquer tipo de robô, a ação dependerá da corporalidade</p><p>que ele possui, ou seja, quais mecanismos físicos ele pode utilizar para realizar</p><p>determinada tarefa (LEE, 2019).</p><p>No caso de um robô móvel que faz delivery de comidas, a ação é responsável</p><p>pela movimentação do drone por meio de seu dispositivo de locomoção (hélices,</p><p>turbinas etc.), pegar/soltar os pedidos, receber pagamentos dos clientes, e qual-</p><p>quer outra ação possível para realizar a tarefa.</p><p>Quando falamos de um robô humanoide que realiza tarefas domésticas, qual-</p><p>quer ação efetuada pode ser considerada, inclusive a movimentação, interação com</p><p>outros objetos, humanos e outros robôs. Note que cada ação ainda é dependente</p><p>de outras características, como a corporalidade do robô, os sensores presentes, e a</p><p>forma de raciocínio utilizada por ele, uma vez que, para realizar uma determinada</p><p>ação, o robô normalmente percebe algo no ambiente, identifica e processa o fato,</p><p>para então raciocinar, tomar uma decisão e agir (MATARIC, 2014).</p><p>A forma de agir e pensar de um robô é caracterizada por seu cérebro e “mús-</p><p>culos”, os responsáveis pelos “pensamentos” e pela escolha das melhores ações a</p><p>serem realizadas. Toda a questão de pensamentos de um robô envolve o processa-</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>156</p><p>mento por meio de um software dotado de inteligência artificial, com capacidade</p><p>de, por meio de uma percepção, escolher a melhor ação possível a ser realizada,</p><p>dentre um rol possível de ações disponíveis.</p><p>O raciocinar para um robô pode abranger diversos conceitos que en-</p><p>volvam a Inteligência Artificial. A forma como a informação é armazenada</p><p>(representação do conhecimento) pode influenciar a tomada de decisão; a</p><p>análise de dados (aprendizagem de máquina) pode auxiliar a escolha basea-</p><p>da em um conjunto de dados previamente coletados; o raciocínio utilizado,</p><p>auxilia na hora de buscar uma solução possível (métodos de busca). Todas as</p><p>características da área da inteligência artificial podem ser levadas em conta</p><p>ao desenvolver um robô, algumas áreas com maior ênfase, outras com menor,</p><p>de acordo com a forma/objetivo do robô (MATARIC, 2014).</p><p>Outros pontos de raciocínio podem envolver calcular o gasto de energia</p><p>necessário para realizar determinada tarefa, e somente realizar de acordo com</p><p>a quantidade de energia existente. Poderíamos, nesse ponto, definir n tipos de</p><p>raciocínio que um robô pode realizar, para cada dispositivo possível, e analisar a</p><p>complexidade do raciocínio e as áreas da IA que a envolvem. No entanto, a análise</p><p>pode ser feita de forma mais abrangente, considerando que robôs “pensam” e o ra-</p><p>ciocínio é de acordo com o objetivo e propósito dele (RUSSELL; NORVIG, 2013).</p><p>Vamos analisar nossos três exemplos, do robô aspirador, de um drone para</p><p>entrega de comida, e um robô humanoide para auxiliar nas tarefas diárias. Um</p><p>robô aspirador pode raciocinar a partir do momento que entra em funcionamen-</p><p>to, mapeando a posição dos móveis quando tromba com um, a posição da base</p><p>na qual o robô se recarrega, caso seja autônomo, a quantidade de bateria restante,</p><p>a quantidade de espaço no “cesto de sujeira”, entre outras características. Essas</p><p>análises podem fazer com que o robô realize a tarefa de limpar de forma mais</p><p>eficiente, por exemplo, calculando e traçando uma rota de menor caminho até um</p><p>quarto, e ou otimizando o caminho até um cômodo (RUSSELL e NORVIG, 2013).</p><p>Já para um drone, o raciocínio pode envolver traçar a rota de modo similar</p><p>ao robô aspirador, no entanto, o grau de dificuldade de um drone aumenta, pois</p><p>estamos pensando em três dimensões. Além disso, o drone também precisa se</p><p>preocupar com a quantidade de bateria, otimizar rotas e demais processamentos</p><p>necessários para seu funcionamento (MATARIC, 2014).</p><p>157</p><p>No caso de um humanoide, qualquer ação a ser realizada deve ser processada</p><p>antes, uma vez que o robô não age por impulso. Essas características de pensa-</p><p>mento do robô podem envolver ensinar aos robôs as três Leis de Isaac Asimov</p><p>(LEE, 2019):</p><p>■ um robô não pode ferir um ser humano;</p><p>■ os robôs devem obedecer às ordens dos humanos, a menos que a ordem</p><p>conflite com a 1ª lei;</p><p>■ um robô deve proteger a sua existência, exceto quando a proteção conflite</p><p>com as demais leis.</p><p>Tais leis foram determinadas por Asimov e são descritas antes mesmo da Ciência</p><p>da Computação ter a capacidade de processamento existente nos dias atuais,</p><p>Asimov apresentou-as em seu livro Eu, Robô, em 1950 (ASIMOV, 1978).</p><p>Por fim, uma característica importante de um robô é a autonomia, que define</p><p>a característica de como ele se comporta e realiza as atividades. Um determinado</p><p>robô pode realizar tarefas somente quando é solicitado,</p><p>Nesta época, Newell e Simon desenvolveram o GPS (General Problem Solver),</p><p>ou “solucionador de problemas gerais”, que tratava a resolução de problemas tais</p><p>como os humanos resolvem. O GPS gerou requisitos para outros dois pesqui-</p><p>sadores, Nathaniel Rochester e Herbert Gelernter, desenvolverem o Geometry</p><p>Problem Solver (Solucionador de problemas da geometria), que demonstrava</p><p>teoremas matemáticos (RUSSEL; NORVIG, 2013).</p><p>Outro exemplo de acontecimentos importantes nessa fase, é o trabalho</p><p>de Arthur Samuel, que desenvolveu testes com um jogo de dama. Ao jogar</p><p>damas contra o computador, o programa coletava informações sobre as movi-</p><p>mentações e utilizava as informações destas jogadas para decidir qual seria a</p><p>sua movimentação no jogo. Em um primeiro momento, Arthur jogava damas</p><p>contra o computador e sempre ganhava, no entanto, Arthur decidiu colocar</p><p>o computador para jogar contra o computador, realizando, assim, uma coleta</p><p>de dados em uma quantidade muito grande (LUGER, 2013).</p><p>Ao efetuar essa modificação e voltar a jogar contra o seu programa, Arthur</p><p>não conseguia mais ganhar no jogo, pois o programa, jogando contra ele mes-</p><p>mo, coletou muitas informações sobre movimentações e cenários possíveis, que</p><p>conseguia prever as movimentações de Arthur, e jogar visando a derrota do ad-</p><p>versário. Esse avanço fez com que o computador tivesse um desempenho melhor</p><p>15</p><p>do que quem o ensinou a tarefa de jogar, e estas operações são comuns na área</p><p>de Aprendizagem de Máquina na atualidade.</p><p>McCarthy também trabalhou, nessa época, no Advice Taker, um dos primei-</p><p>ros sistemas de IA completo que utilizava técnicas para raciocínio lógico, para</p><p>responder perguntas e respostas, e para unir conceitos de raciocínio e planeja-</p><p>mento com robótica (RUSSEL; NORVIG, 2013).</p><p>Outro pesquisador que deixou a sua influência foi Frank Rosemblatt, que</p><p>contribuiu com conceitos relacionados à perceptrons, um conceito similar a um</p><p>neurônio, e à atualização dos pesos visando aprendizagem.</p><p>Com o passar do tempo, as expectativas se tornavam cada vez mais altas em</p><p>relação às tarefas que a inteligência artificial poderia executar. Herbert Simon,</p><p>por exemplo, por volta do ano de 1966, previu que, em 10 anos, um computador</p><p>ganharia uma partida de um jogador profissional de xadrez, ou conseguiria pro-</p><p>var um teorema matemático (RUSSEL; NORVIG, 2013).</p><p>Caro(a) aluno(a), imagine uma situação em que você irá programa um jogo no computa-</p><p>dor, ensina o computador a jogar, e não conseguir mais derrotar o computador no jogo!</p><p>Este foi o caso de Arthur Samuel com o jogo de damas.</p><p>Pense em um jogo simples, como o jogo da velha, e realize a implementação do jogo.</p><p>Imagine os casos possíveis de jogada, e tente implementar um modo para fazer que o</p><p>computador nunca perca uma partida.</p><p>Fonte: Adaptado de RUSSELL e NORVIG, 2013.</p><p>PENSANDO JUNTOS</p><p>Porém, estas atividades ocorreram somente em aproximadamente 40 anos ao</p><p>invés de 10. A vitória de uma inteligência artificial sobre um humano em um</p><p>jogo de xadrez não foi possível antes, pois os testes que eram executados com os</p><p>sistemas de IA eram muito simples, diferentemente da “vida real” e de “problemas</p><p>reais”. Isso acarretou uma nova etapa para a história da IA, chamada de uma dose</p><p>de realidade (DE MEDEIROS, 2013).</p><p>Grande parte dos problemas que eram resolvidos com sistema de inteligência,</p><p>nessa época, eram problemas com pouco conhecimento e/ou domínio limitado,</p><p>o que acarretava sucesso em testes simples, mas falhas em testes mais complexos.</p><p>Um dos exemplos clássicos descritos foi o problema de tradução entre duas</p><p>linguagens. O governo americano visava utilizar dois programas inteligentes para</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>16</p><p>agilizar a tradução de documentos russos, no entanto, a complexidade de lingua-</p><p>gens naturais, como russo ou inglês, trazia consigo problemas de ambiguidade em</p><p>traduções simples. Atualmente, traduções de documentos ainda não são perfeitas,</p><p>pois envolvem conhecimento do domínio, contexto, entre outras características.</p><p>Estes conceitos de ambiguidade relacionados às traduções são aspectos do Pro-</p><p>cessamento de Linguagens Natural (RUSSEL; NORVIG, 2013).</p><p>Russel e Norvig (2013) ainda ressaltam que, em termos da computação em si,</p><p>a intratabilidade de problemas também impactou a desaceleração na resolução</p><p>dos problemas. Suposições sobre o poder ilimitado dos computadores facilitavam</p><p>a resolução dos problemas, porém, a maior parte dos problemas requisitava um</p><p>hardware que ainda não estava disponível para ser utilizado.</p><p>Além disso, uma complexidade de problemas maiores ainda, os chamados</p><p>Problemas NP-Completos, precisavam de abordagens e métodos diferentes para</p><p>resolução, o que impossibilitou resolvê-los (CORMEN, 2012).</p><p>Uma citação clássica de Minsky, que trabalhou com perceptrons, destaca que</p><p>“os perceptrons podem aprender qualquer coisa que eles são capazes de repre-</p><p>sentar, mas eles podem representar muito pouco”, indicando que a capacidade</p><p>dos perceptrons ainda se manteve alta, no entanto, a complexidade do mundo</p><p>real, e dos problemas do mundo real era inferior ao que um perceptron pode</p><p>representar (RUSSEL; NORVIG, 2013).</p><p>O passar dos anos mostrou que a IA visava resolver problemas complexos,</p><p>mas a complexidade dos problemas era muito maior do que o esperado, o que</p><p>fez com que a IA focasse em sistemas com domínios específicos, ou sistemas</p><p>baseados no conhecimento.</p><p>A ideia era que, ao invés de trabalhar com uma IA que conseguisse resolver</p><p>qualquer tipo de problema, utilizar um programa que fosse possível resolver</p><p>todos os problemas específicos da química, por exemplo, caso que gerou o pro-</p><p>grama DENDRAL, com domínio específico e aplicado à área química (RUSSEL;</p><p>NORVIG, 2013). Russell e Norvig (2013) ainda destacam outro exemplo relevante</p><p>dessa época, o MYCIN, que focava em diagnóstico de doenças infecciosas com</p><p>um grande espectro composto por mais de 450 doenças.</p><p>Trabalhar com estes tipos de sistemas especializados em uma área tornava</p><p>a IA mais completa e eficiente, o que resultou em novas formas de representar</p><p>e armazenar o conhecimento (DE MEDEIROS, 2018). O uso desse tipo de</p><p>sistema também fez com que diversos domínios no mundo inteiro os adotas-</p><p>17</p><p>sem, criando novas empresas com faturamentos altos, e grande quantidade de</p><p>funcionários, fazendo com que a IA se tornasse uma indústria (RUSSELL;</p><p>NORVIG, 2013). O ano de 1980, por exemplo, já fazia com que a indústria</p><p>relacionada a IA atingisse um lucro na casa de milhões de dólares, e que, rapi-</p><p>damente (1988), chegasse à casa de bilhões de dólares.</p><p>Um grupo de pesquisa de IA, no DEC, teve 40 projetos entregues, e outros</p><p>grupos estavam trabalhando constantemente para aprimorar técnicas e soluções</p><p>para empresas privadas e para o governo (LUGER, 2013).</p><p>O retorno no uso de redes neurais, que começou nos anos 40 e 50,</p><p>voltou a ganhar foco no final dos anos 80. A introdução de novos conceitos</p><p>aos algoritmos de perceptrons, como o conceito de retropropagação ,fez com</p><p>que novas perspectivas pudessem ser abordadas, aumentando o alcance deste</p><p>tipo de recurso (RUSSEL; NORVIG, 2013).</p><p>Em relação aos eventos recentes na IA, o avanço das tecnologias relacio-</p><p>nadas aos computadores, os algoritmos também evoluíram, visando tratar esses</p><p>novos dados. Como exemplos, pode-se citar os algoritmos para processamento de</p><p>imagem, aliados à evolução das câmeras digitais, e também o impulsionamento</p><p>dos dispositivos que fazem o processamento de som/fala (DE MEDEIROS, 2018).</p><p>Outro aspecto importante que ganhou força a partir dos anos 90 foi o uso</p><p>de redes de crença, que trabalham visando a representação e o processamento</p><p>de incertezas, representações diferentes do 0 e 1 tradicional, tal como exemplo a</p><p>Lógica Fuzzy e a Lógica Modal (LUGER, 2013).</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>18</p><p>Atualmente, diversas empresas e entidades têm grandes projetos sendo desen-</p><p>volvidos utilizando IA como recurso base. A NASA, por exemplo, vem usando</p><p>de conceitos relacionados ao planejamento autônomo e escalonamento para</p><p>já outros tipos podem</p><p>perceber que uma tarefa precisa ser realizada e agir antes mesmo de ser solicita-</p><p>do. Além disso, normalmente ao efetuarem suas ações, os robôs gastam energia</p><p>– diante deste fato, há os que retornam automaticamente para uma base para</p><p>recarregar, enquanto outros continuam o seu funcionamento de forma normal,</p><p>e devem ser retornados à base com ajuda de um humano.</p><p>No caso do aspirador de pó, o mapeamento realizado pelo dispositivo permite</p><p>que o cérebro do robô calcule e saiba a quantidade de energia necessária para ir de</p><p>um ponto até a base para recarregar. Assim, se a energia ficar abaixo desse valor,</p><p>o robô não conseguirá retornar para a base. O cérebro do robô pode, então, não</p><p>decidir ir para um ponto mais distante da base, pois já “sabe” de antemão que a</p><p>bateria pode não ser suficiente para a tarefa.</p><p>No caso do drone, podemos ter a mesma lógica do aspirador de pó, mas a ação</p><p>de calcular a energia gasta para ir e voltar para um local X pode ser feita antes da</p><p>viagem, bastando saber qual o local de origem e o local de destino.</p><p>Por fim, o exemplo do robô humanoide pode também ser similar ao</p><p>caso do aspirador de pó, no qual o robô vai para a base durante a noite e se</p><p>recarrega para efetuar as tarefas durante o dia.</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>158</p><p>Vamos imaginar outro tipo de robô similar ao humanoide, mas que tem apenas</p><p>um objetivo, jogar xadrez com um humano, quando é desafiado para uma partida.</p><p>Em relação à corporalidade, o robô pode ser similar a um humano, com cabeça,</p><p>tronco, mãos e pés, no entanto, podemos desenvolver um robô somente com</p><p>“olhos” e um braço mecânico que se apoia no tabuleiro de xadrez.</p><p>Quanto mais complexa a estrutura corporal do robô, maior a complexi-</p><p>dade de processamento para gerar uma ação por meio dele, em, consequen-</p><p>temente, mais gasto de bateria será necessário.</p><p>Em relação ao sensoriamento, o robô pode ter uma câmera que detecta uma</p><p>movimentação de uma peça do tabuleiro e identifica também movimento inválidos</p><p>realizados pelo humano. Note que, quando dizemos detecta, isto envolve o proces-</p><p>samento da informação adquirida pelo sensor (imagem), algoritmos de processa-</p><p>mento de imagens e reconhecimento de padrões, realizadas pelo cérebro do robô.</p><p>A ação pode envolver o uso do braço mecânico para segurar uma peça e</p><p>movimentá-la para uma posição específica. Note também que, nesse caso, para</p><p>a movimentação da peça, o robô precisa estar ciente da posição dele no mundo,</p><p>saber a posição do tabuleiro, para que a movimentação de uma peça seja para</p><p>outra posição específica do tabuleiro.</p><p>Basicamente, o cérebro do robô é o algoritmo que permite ao robô jogar xa-</p><p>drez, isto quer dizer, conhecer as regras para cada peça específica, e pode envolver</p><p>conceitos mais avançados, como aberturas especiais, além de estratégias para</p><p>vencer no jogo. Como o robô envolve movimentação e manipulação de objetos</p><p>(peças), o cérebro também é responsável por calcular e definir a movimentação,</p><p>indicando, por exemplo, para o braço mecânico quando ele deve “fechar a mão”</p><p>para pegar uma peça, e quando deve “abrir a mão” para soltar uma peça. Nova-</p><p>mente, isso envolve estar ciente da sua localização física no mundo e das posições</p><p>e localizações de cada uma das casas do tabuleiro.</p><p>NOVAS DESCOBERTAS</p><p>As Leis de Isaac Asimov foram tomadas como base para o filme de</p><p>mesmo nome, Eu, Robô, estrelado por Will Smith e lançado em 2004.</p><p>Assista ao filme e analise as características da corporalidade, sensoria-</p><p>mento, ação cérebros e músculos e autonomia do robô.</p><p>https://apigame.unicesumar.edu.br/qrcode/14027</p><p>159</p><p>Por fim, a questão da autonomia pode não ser necessária se o robô é ligado</p><p>diretamente à fonte de energia. Entretanto, caso o robô não seja ligado à energia,</p><p>ele pode decidir não começar uma partida depois de 6 horas, por exemplo, pois</p><p>já sabe (cérebro) que está na hora de recarregar as baterias.</p><p>Os conceitos de robótica se tornaram mais fáceis de serem projetados com o</p><p>uso de dispositivos mais recentes, como Arduino e Raspberry Pi (DE OLIVEI-</p><p>RA, 2017), pois eles facilitam a montagem e utilização dos conceitos de robótica</p><p>em projetos simples, e também alguns mais complexos.</p><p>O Arduino é uma plataforma de desenvolvimento, na qual seu hardware é</p><p>formado por um microcontrolador da família do ATMega328, e a unidade central</p><p>de processamento do chip é responsável por buscar, decodificar e executar as ins-</p><p>truções. A CPU também realiza a interação com dispositivos externos conectados</p><p>nos pinos da placa (DE OLIVEIRA, 2017).</p><p>A placa ainda contém uma memória do tipo EEPROM, que é não volátil, ou</p><p>seja, as informações na EEPROM são mantidas as desligar o Arduino, e contém</p><p>também uma memória flash, que é volátil, ou seja, as informações armazenadas</p><p>na memória flash são perdidas quando o dispositivo é desligado.</p><p>O Arduino ainda é formado por seis pinos analógicos (A0 a A5) e 14 pinos</p><p>digitais (0 a 13), que podem ser utilizados para entrada ou saídas digitais. A co-</p><p>municação com o computador é realizada por meio de uma interface USB que</p><p>permite a programação e a prototipação de robôs, braços mecânicos, e diversos</p><p>projetos. O Arduino e suas conexões podem ser vistas na Figura 1</p><p>Descrição da Imagem: A</p><p>Figura 1 apresenta a placa</p><p>de desenvolvimento Ar-</p><p>duino, com suas conexões</p><p>de energia, conexões ana-</p><p>lógicas e digitais, além da</p><p>conexão de energia com o</p><p>computador, microcontro-</p><p>lador, regulador de volta-</p><p>gem, botão de reset, chip</p><p>de comunicação.</p><p>Figura 1 – Placa de Desen-</p><p>volvimento Arduino</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>160</p><p>Como forma de construir robôs e dispositivos robóticos, o Arduino permite a</p><p>utilização de sensores e atuadores em seus pinos digitais e analógicos. Entre os</p><p>sensores, podemos utilizar os de temperatura, de umidade, de som, de presença,</p><p>entre outros. A Figura 2 representa alguns tipos de sensores do Arduino.</p><p>Descrição da Imagem: A figura apresenta seis dispositivos eletrônicos na forma de sensores para conexão</p><p>com o Arduino apresentados da esquerda para a direita: Sensor Ultrassônico, Sensor de Gás Metano,</p><p>Sensor de Monóxido de Carbono, Sensor Infravermelho, Sensor de Gás Metano, Sensor Ultrassônico,</p><p>Figura 2 – Exemplos de Sensores que podem ser usados no Arduino (Sensor de Gás Metano,</p><p>Sensor de Monóxido de Carbono, Sensor Ultrassônico, Sensor Infravermelho)</p><p>161</p><p>Já em relação aos atuadores, podemos ter servos, motores, LEDs (luzes), sinais</p><p>sonoros e diversos tipos de componentes. Alguns exemplos destes componentes</p><p>podem ser vistos na Figura 3.</p><p>Descrição da Imagem: A Figura 3 apresenta um dispositivo eletrônico para conectar ao Arduino, apre-</p><p>sentando quatro Leds, um amarelo, um azul, um verde e um vermelho, dois botões na forma de joystick,</p><p>dois botões simples, quatro displays de 7 segmentos, buzzer, resistor, e 8 pinos conectores</p><p>Figura 3 – Exemplo de Atuadores que podem ser utilizados no Arduino (Botão de Joystick, Display,</p><p>Leds, Buzzer)</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>162</p><p>Além disso, o Arduino permite a conexão de Shields, que são placas extras de</p><p>expansão, desenvolvidas para realizar as mais diversas tarefas. Alguns exemplos</p><p>de Shields são descritos na Tabela 1 a seguir:</p><p>Shield Função</p><p>Shield Ethernet Permite conexão do Arduino à Internet</p><p>Sensor Shield</p><p>Contém diversos tipos de sensores (som, gás, temperatu-</p><p>ra, umidade, luz, entre outros)</p><p>GPS Shield Utiliza o sistema de posicionamento global (GPS)</p><p>Shield com Mo-</p><p>tores</p><p>Permite a conexão simplificada com motores e servomo-</p><p>tores</p><p>Shield XBee</p><p>Permite conexão com outros dispositivos que utilizam a</p><p>comunicação XBee</p><p>Shield GSM</p><p>GPRS</p><p>Permite conexão por meio de chip de celulares</p><p>Fonte: o autor.</p><p>163</p><p>Cada shield tem suas características próprias para auxiliar em tarefas específicas.</p><p>A shield Ethernet possibilita a conexão do Arduino à Internet, permitindo que</p><p>um robô ou dispositivo seja controlado por meio de uma aplicação Web.</p><p>Com o uso de uma shield GPS, é possível saber a localização exata do Arduino,</p><p>auxiliando na movimentação de robôs,</p><p>por exemplo, e permitindo controlar e</p><p>gerenciar melhor a movimentação. Já a shield GSM GPRS permite que o usuário</p><p>utilize uma conexão de telefone, similar à um chip de celular, conectado ao Ardui-</p><p>no, possibilitando enviar mensagens para outros celulares, e utilizar os recursos</p><p>de um celular para gerenciar e controlar seus dispositivos. Estas Shields, GPS e</p><p>GSM GPRS podem ser vistas nas Figuras a seguir.</p><p>Descrição da Imagem: A Figura 4 apresenta uma representação das estruturas de conexão de um Arduino</p><p>ao lado esquerdo, com um módulo GPS no lado direito. Uma representação de um fio vermelho conecta</p><p>o pino 5V do Arduino com o pino VCC do módulo GPS, uma representação de um fio preto conecta o pino</p><p>GND do Arduino ao GND do módulo, uma representação de um fio verde conecta o pino 3 do Arduino ao</p><p>pino RXD do módulo e uma representação do fio azul conecta o pino 4 do Arduino ao pino TXD do módulo.</p><p>Figura 4 - Representação lógica da conexão de um Arduino com um Módulo GPS</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>164</p><p>A partir da prototipação do hardware, o Arduino possui uma interface de pro-</p><p>gramação na qual é possível escrever um código, em uma linguagem similar à</p><p>linguagem C, para controlar e gerenciar a placa e seus componentes.</p><p>Utilizando dos componentes do Arduino, podemos desenvolver um robô</p><p>com sensores, cérebro, e corporalidade, que atua em um ambiente qualquer, rea-</p><p>lizando tarefas específicas, ou para simples diversão. As Figuras 6, 7, 8 e 9 a seguir</p><p>representam exemplos de robôs que utilizam o Arduino como base, além dos</p><p>sensores para perceber o ambiente, atuadores para agir e se movimentar, e o</p><p>cérebro (código do robô), para decidir o que fazer com base no sensoriamento.</p><p>Descrição da Imagem: A Figura 5 apresenta a representação lógica da ligação de um Arduino do lado</p><p>esquerdo com um módulo GSM GPRS do lado direito e uma representação de uma bateria do lado direito</p><p>superior. Uma representação conecta o pino GND do Arduino ao pino GND do módulo e ao conector da</p><p>bateria, uma representação de um fio vermelho conecta a bateria ao pino VCC do módulo, uma repre-</p><p>sentação de um fio azul conecta o pino 11 do Arduino ao pino RX0 do módulo, e uma representação de</p><p>um fio verde conecta o pino 10 do Arduino ao pino TX0 do módulo.</p><p>Figura 5 - Representação lógica das conexões de um Arduino com um módulo GSM GPRS</p><p>165</p><p>Descrição da Imagem: A Figura 6 apresenta um robô similar à um carro, formado por duas rodas, os mo-</p><p>tores para cada roda, uma placa Arduino, um sensor de proximidade na sua frente, e conexões eletrônicas</p><p>Figura 6 – Exemplo de robô.</p><p>Descrição da Imagem:A Figura 7 apresenta um robô com duas rodas, sensores de proximidade para</p><p>perceber objetos durante o percurso, motores para movimentar as rodas, uma placa Arduino, e</p><p>conexões eletrônicas entre seus componentes</p><p>Figura 7 – Exemplo de robô</p><p>UNICESUMAR</p><p>UNIDADE 5</p><p>166</p><p>Descrição da Imagem:A Figura 8 apresenta um robô na forma de carro, com 4 rodas, sensores de</p><p>proximidade ultrassônico para perceber objetos à frente, motores para movimentação do robô,</p><p>servomotores para virar o carro para direita e esquerda, uma placa Arduino, e suas conexões</p><p>eletrônicas. O robô é construído sobre uma base de acrílico transparente.</p><p>Figura 8 – Exemplo de robô</p><p>Descrição da Imagem:A Figura 9 apresenta um robô em uma estrutura de madeira, na qual o robô</p><p>tem duas rodas, motores para acionamento das rodas em cada um dos lados do robô, uma placa</p><p>Arduino para gerenciar e controlar o robô, um suporte de bateria, e as conexões eletrônicas entre</p><p>os componentes</p><p>Figura 9 – Exemplo de robô</p><p>167</p><p>Vale ressaltar que, quando a robótica é utilizada com o Arduino, podemos ter um</p><p>robô sem autonomia, tal como os exemplos anteriormente apresentados, na qual</p><p>a fonte de alimentação do robô é baterias ou pilhas. No entanto, podemos utilizar</p><p>painéis solares para fornecer autonomia ao robô, permitindo, assim, englobar</p><p>todas as características de um robô descritas nesta unidade.</p><p>Caro estudante, agora vamos realizar a nossa última</p><p>conversa com a Alexa, interagindo e descobrindo um</p><p>pouco mais com ela sobre robótica. Acompanhe ouvindo o</p><p>podcast</p><p>UNICESUMAR</p><p>https://apigame.unicesumar.edu.br/qrcode/11017</p><p>UNIDADE 5</p><p>168</p><p>QualquerCoisa</p><p>ObjetosAbstratos</p><p>Conjuntos Números Objetos representacionais Intervalo Lugares Objetos físicos Processos</p><p>Categorias Sentenças Medidas Momentos Coisas Material</p><p>Tempos Pesos Animais Agentes</p><p>Humanos</p><p>Sólido Líquido Gás</p><p>EventosGeneralizados</p><p>Descrição da Imagem:A Figura 12 apresenta uma estrutura na forma de árvore, na qual o nó raiz é</p><p>‘QualquerCoisa’, que tem dois filhos chamados: ‘ObjetosAbstratos’ e ‘EventosGeneralizados’. O nó</p><p>‘ObjetosAbstratos’ tem três filhos: ‘Conjuntos’, ‘Números’ e ‘ObjetosRepresentacionais’. ‘Conjuntos’</p><p>por sua vez tem um filho chamado ‘Categorias’; ‘ObjetosRepresentacionais’ tem dois filhos, um</p><p>chamado ‘Sentenças’ e outro ‘Medidas’; e ‘Medidas’ por sua vez tem dois filhos chamados ‘Tempos’</p><p>e ‘Pesos’. ‘EventosGeneralizados’ tem quatro filhos: ‘Intervalor’, ‘Lugares’, ‘ObjetosFísicos’ e ‘Proces-</p><p>sos’. Intervalo tem um filho chamado: ‘Momentos’; e ‘ObjetosFísicos’ tem dois filhos, um chamado</p><p>‘Coisas’ e outro chamado ‘Material’. ‘Coisas’ por sua vez tem dois filhos, um chamado ‘Animais’ e</p><p>um chamado ‘Agentes’, que compartilham um filho chamado ‘Humanos’. E, por fim, ‘Material’ tem</p><p>três filhos, um chamado ‘Sólido’, um chamado ‘Líquido’ e um chamado ‘Gás’.</p><p>Figura 12 – Representação de uma ontologia do mundo / Fonte: Russel, Norving, 2013.</p><p>Quando nos utilizamos da robótica ou de técnicas de inteligência artificial em</p><p>softwares, precisamos representar o conhecimento de um determinado tipo de</p><p>problema. Para isso, a área da inteligência artificial tem usado de técnicas de re-</p><p>presentação do conhecimento, visando retratar e generalizar as informações</p><p>que são armazenadas em um programa.</p><p>Se pensarmos em um problema de busca de rotas entre duas cidades, preci-</p><p>samos representar as cidades, distâncias, tempo, entre outras características. Isso</p><p>pode ser reproduzido em uma ontologia similar à descrita na Figura 10.</p><p>169</p><p>A partir da representação indicada na imagem, a descrição de um cenário de</p><p>um jogo no computador pode ser categorizada e representada por meio de fatos,</p><p>os quais poderiam representar o personagem, os objetos do cenário, os eventos</p><p>que o personagem realiza como atacar ou defender, e qualquer representação</p><p>necessária para descrever o jogo (RUSSELL; NORVIG, 2013)</p><p>Sendo assim, a inteligência artificial se preocupa com a forma como as infor-</p><p>mações vão ser armazenadas, uma vez que, depois que elas estiverem armazena-</p><p>da, devem ser processadas, e um armazenamento incorreto ou impreciso pode</p><p>levar a problemas no processamento (LUGER, 2013).</p><p>O nosso dia a dia está cercado de dispositivos inteligentes e também de</p><p>robôs. Alguns destes robôs não têm corporalidade, sendo somente um soft-</p><p>ware que monitora determinada ações, gerando respostas de acordo com a</p><p>nossa interação com o mundo.</p><p>Exemplos desses tipos de robôs podem ser observados quando um filme</p><p>similar a outro que você já assistiu é sugerido para um usuário em um serviço</p><p>de streaming, ou da mesma forma quando um serviço de streaming de música</p><p>sugere um artista similar a outro que você já ouve. São robôs que analisam o</p><p>seu padrão de comportamento dentro de um aplicativo ou rede social, e geram</p><p>possibilidades de produtos que você pode consumir.</p><p>Esses robôs podem não ter a corporalidade que vemos no cinema, mas seguem</p><p>características similares. Além disso, cada dispositivo dotado de inteligência preci-</p><p>sa ter uma forma de representar o conhecimento que está presente nele, utilizando</p><p>de técnicas de representação de conhecimento para executar estas tarefas.</p><p>No mercado de trabalho, situações similares podem ser encontradas, por</p><p>exemplo, analisar os dados de compra de um supermercado para entender o</p><p>perfil de compra dos clientes por idade, sexo e outras características. Uma análise</p><p>desse</p><p>tipo pode favorecer o estabelecimento de promoções de produtos que, na</p><p>maioria das vezes, são vendidos em conjunto.</p><p>UNICESUMAR</p><p>170</p><p>1. Suponha que você vai construir um robô na forma de um humano, descreva as ca-</p><p>racterísticas básicas que o robô precisa ter, relacionando os conceitos de sensores,</p><p>atuadores, corporalidade, cérebro e músculos do robô.</p><p>2. A robótica está cada vez mais presente no nosso dia a dia por meio de dispositivos</p><p>eletrônicos inteligentes. Sobre os robôs e o seu comportamento, analise as afirma-</p><p>ções a seguir e assinale a alternativa INCORRETA.</p><p>a) Um robô percebe o ambiente no qual está inserido por meio de sensores, e atua</p><p>no ambiente por meio de atuadores.</p><p>b) Um robô com autonomia pode recarregar suas fontes de energia e continuar seu</p><p>funcionamento a menos que seja interrompido.</p><p>c) O cérebro de um robô é responsável por analisar as percepções, processar e</p><p>gerar uma resposta para os atuadores sobre o que fazer.</p><p>d) A corporalidade de um robô descreve somente a forma como os pés e mãos do</p><p>robô deve interagir com os objetos.</p><p>e) Uma câmera pode ser utilizada como sensor em um robô, funcionando tal como</p><p>a visão em humanos, no entanto, o cérebro do robô deve ser capaz de identificar</p><p>objetos e itens de interesse por meio da câmera.</p><p>3. Um robô pode ser descrito por meio das características dos sensores, atuadores,</p><p>corporalidade e o seu “cérebro”. Com base nas características de um robô, analise</p><p>as afirmações a seguir e assinale a alternativa incorreta.</p><p>a) Os sensores de um robô permitem captar informações sobre o ambiente no qual</p><p>o robô está inserido.</p><p>b) Atuadores de um robô permitem a interação com objetos do ambiente.</p><p>c) O funcionamento de um robô segue a ideia de um agente inteligente, na qual uma</p><p>percepção é percebida e processada para gerar uma resposta para os atuadores.</p><p>d) O cérebro deve processar a informação que está representada no robô sem</p><p>interagir com o ambiente no qual ele está inserido.</p><p>e) As ações que um robô realiza são baseadas em suas percepções e na tomada</p><p>de decisão do robô</p><p>171</p><p>UNIDADE 1</p><p>CORMEN, T. Algoritmos — Teoria e prática. [S.l.]: GEN LTC. 2012.</p><p>DE MEDEIROS, L. F. Inteligência Artificial Aplicada: uma abordagem introdutória. Rio de Ja-</p><p>neiro: Intersaberes, 2018.</p><p>LIMA, W. D. Computadores e Inteligência: uma explicação elucidativa sobre o teste de Tu-</p><p>ring. Outras Palavras, v. 13, n. 1, 2017.</p><p>LUGER, G. F. Inteligência Artificial. São Paulo: Pearson, 2013.</p><p>RUSSELL, S.; NORVIG, P. Inteligência Artificial. 3. ed. Rio de Janeiro: Elsevier, 2013.</p><p>TURING, A. Intelligent Machinery (1948). In: COPELAND, B. J. (ed.). The Essential Turing: se-</p><p>minal writings in computing, logic, philosophy, artificial intelligence, and artificial life: plus the</p><p>secrets of enigma. Oxford: Clarendon, 2004.</p><p>TURING, A. M.; HAUGELAND, J. Computing Machinery and Intelligence. Cambridge: MIT,</p><p>1950.</p><p>UNIDADE 2</p><p>DE MEDEIROS, L. F. Inteligência Artificial Aplicada: uma abordagem introdutória. Rio de Ja-</p><p>neiro: Intersaberes, 2018.</p><p>GOODRICH, M. T.; TAMASSIA, R. Estruturas de Dados & Algoritmos em Java. [S.l.]: Bookman,</p><p>2013.</p><p>LEE, K. F. Inteligência Artificial. Rio de Janeiro: Globo Livros, 2019.</p><p>LORENA, A. C.; GAMA, J.; FACELI, K. Inteligência Artificial: uma abordagem de aprendizado de</p><p>máquina. [S.l.]: Grupo Gen-LTC, 2000.</p><p>LUGER, G. F. Inteligência Artificial. São Paulo: Pearson, 2013.</p><p>RUSSELL, S.; NORVIG, P. Inteligência Artificial. 3. ed. Rio de Janeiro: Elsevier, 2013.</p><p>TAULLI, T. Introdução à Inteligência Artificial: uma abordagem não técnica. [S.l.]: Novatec,</p><p>2020.</p><p>UNIDADE 3</p><p>DE MEDEIROS, L. F. de. Inteligência Artificial Aplicada: uma abordagem introdutória. Rio de</p><p>Janeiro: InterSaberes, 2018.</p><p>172</p><p>LEE, K. F. Inteligência Artificial. Rio de Janeiro: Globo Livros, 2019.</p><p>LORENA, A. C.; GAMA, J.; FACELI, K. Inteligência Artificial: uma abordagem de aprendizado de</p><p>máquina. [S.l.]: Grupo Gen-LTC, 2000.</p><p>LUGER, G. F. Inteligência Artificial. São Paulo: Pearson, 2013.</p><p>RUSSELL, S.; NORVIG, P. Inteligência Artificial. 3. ed. Rio de Janeiro: Elsevier, 2013.</p><p>TAULLI, T. Introdução à Inteligência Artificial: uma abordagem não técnica. [S.l.]: Novatec, 2020.</p><p>UNIDADE 4</p><p>LEE, K. Inteligência Artificial. Rio de Janeiro: Globo Livros, 2019.</p><p>LUGER, G. F. Inteligência Artificial. São Paulo: Pearson, 2013.</p><p>MEDEIROS, L. F. de. Inteligência Artificial Aplicada: uma abordagem introdutória. Curitiba:</p><p>InterSaberes, 2018.</p><p>POOLE, D. I. Computational Intelligence: a logical approach. Oxford: Oxford University, 1998.</p><p>RUSSELL, S.; NORVIG, P. Inteligência Artificial. Tradução: Regina Célia Simille. 3. ed. Rio de</p><p>Janeiro: Elsevier, 2013.</p><p>TAULLI, T. Introdução à Inteligência Artificial: uma abordagem não técnica. São Paulo: No-</p><p>vatec, 2020.</p><p>UNIDADE 5</p><p>ASIMOV, I. Eu, Robô. São Paulo: Exped, 1978.</p><p>DE OLIVEIRA, S. Internet das Coisas com ESP8266, Arduino e Raspberry PI. [S.l.]: Novatec,</p><p>2017.</p><p>LEE, K. F. Inteligência Artificial. Rio de Janeiro: Globo Livros, 2019.</p><p>LUGER, G. F. Inteligência Artificial. São Paulo: Pearson, 2013.</p><p>MATARIC, M. J. Introdução à Robótica. São Paulo: Unesp: Blucher, 2014.</p><p>POOLE, D. I. Computational Intelligence: a logical approach. Oxford: Oxford University, 1998.</p><p>RUSSELL, S.; NORVIG, P. Inteligência Artificial. 3. ed. Rio de Janeiro: Elsevier, 2013.</p><p>173</p><p>UNIDADE 1</p><p>1. D.</p><p>a. Correta, o agente utiliza os sensores (sensor de luz, sensor de temperatura etc.)</p><p>para receber informações sobre o ambiente, e pode atuar utilizando os atuadores</p><p>(sinal sonoro, acender uma luz).</p><p>b. Correta, em um ambiente parcialmente observável, o agente não consegue</p><p>perceber todas as características do ambiente, assim, o agente pode precisar</p><p>de uma representação interna de como está o ambiente (agente baseado em</p><p>modelo), para utilizar quando não conseguir extrair informações dos sensores.</p><p>c. Correta, o agente reativo simples é formado de regras condição-ação do tipo,</p><p>“se são 18 horas, ligue a luz da garagem”, na qual a condição a ser satisfeita é</p><p>“se são 18 horas”, e a ação a ser executada é “ligar a luz da garagem”.</p><p>d. Incorreta, o agente baseado em modelo tem um modelo de como o ambiente</p><p>evolui enquanto não está “olhando”, tal qual quando olhamos para o retrovisor</p><p>do carro, percebemos um carro se aproximando, olhamos de volta para a estrada,</p><p>e sabemos que o carro que estava se aproximando vai estar mais próximo, ou</p><p>seja, sabemos que o mundo vai evoluir de modo que o carro que estava distante</p><p>estará mais próximo. Este modelo de como o mundo evolui pode não ser perfeito,</p><p>por exemplo, no caso de o carro frear e reduzir a velocidade.</p><p>e. Correta, o agente baseado em objetivo tem seu objetivo definido, por exemplo,</p><p>ganhar um jogo de xadrez, e sabe também o que o resultado de suas ações fa-</p><p>zem, por exemplo, capturar a rainha do adversário me deixa mais próximo do</p><p>meu objetivo.</p><p>174</p><p>2. C.</p><p>a. Incorreta, o projetista de um agente pode inserir informações para o agente, que</p><p>pode melhorar o seu comportamento inicial.</p><p>b. Incorreta, um agente com aprendizagem é formado dos sensores, atuadores, o</p><p>elemento de aprendizado, crítico, elemento de desempenho e gerador de pro-</p><p>blemas.</p><p>c. Correta, o nome deste componente é o gerador de problemas, é utilizado em</p><p>casos nos quais pode-se não “capturar” uma peça do xadrez, visando a vitória</p><p>nas jogadas futuras.</p><p>d. Incorreta, o elemento de aprendizado não trabalha de forma independente, ele</p><p>recebe informações do crítico sobre como o agente está funcionando, e, a partir</p><p>dessas informações, pode determinar se o elemento de desempenho deve ou</p><p>não ser alterado para funcionar de forma melhor.</p><p>e. Incorreta, o crítico é um dos componentes de um agente com aprendizado, e</p><p>é responsável por informar o elemento de aprendizado como o agente está se</p><p>comportando, no entanto, o crítico não é modificado pelo agente.</p><p>3. O elemento de desempenho sabe quais são as jogadas válidas e inválidas do xadrez. O</p><p>crítico observa as jogadas do adversário e repassa para o elemento de aprendizagem</p><p>sobre as movimentações do adversário. O elemento de aprendizagem pode gerar</p><p>regras indicando que uma movimentação foi boa ou ruim, e também pode instalar</p><p>uma nova regra no elemento de desempenho. O gerador de problemas pode sugerir</p><p>oferecer uma peça para o adversário “capturar” com o objetivo de ter uma vitória nas</p><p>próximas jogadas.</p><p>4. Um agente reativo simples é formado de regras na forma condição-ação, assim, para</p><p>cada percepção possível que o agente tem, deverá existir uma regra que case com a</p><p>percepção para o agente efetuar uma ação. Se a percepção não encontra uma regra</p><p>correspondente, não há nada a fazer. Esta limitação implica que o agente reativo</p><p>simples é bom em um ambiente completamente observável, pois tudo pode ser</p><p>percebido pelo agente, e este deve ter a maior quantidade de regras possíveis para</p><p>agir quando perceber algo, no entanto, a quantidade de regras pode se tornar muito</p><p>grande, ficando inviável a utilização do agente.</p><p>175</p><p>UNIDADE 2</p><p>1. D.</p><p>a. Incorreta, pois a busca em largura utiliza uma fila, porém, ela não é ordenada</p><p>pelo custo dos nós.</p><p>b. Incorreta, pois a busca em profundidade não utiliza uma lista, e sim uma pilha</p><p>c. Incorreta, pois a busca pelo custo mínimo utiliza uma fila ordenada pelo custos</p><p>dos nós</p><p>e. Incorreta, pois a busca em profundidade e busca em largura podem ser execu-</p><p>tadas somente com um nó inicial, não sendo necessário a definição de objetivo</p><p>2. Começando o busca em largura pelo nó 0, serão visitados os dois nós à distância 1 do</p><p>nó 0, os nós 1 e 3. Na sequência, serão visitados os nós de distância 2 do nó 0, os nós</p><p>5 e 7, e por fim, os três nós restantes (2, 6 e 3) são visitados por último, pois estão na</p><p>distância 3 do nó inicial 0.</p><p>A árvore resultante pode ser vista na figura a seguir:</p><p>0</p><p>1 3</p><p>5 7</p><p>2 6 4</p><p>Descrição da Imagem: a figu-</p><p>ra apresenta uma elipse com</p><p>a inscrição 0 em seu interior, e</p><p>esta elipse por sua vez tem uma</p><p>seta apontando para outra elipse</p><p>com a inscrição 1. A elipse com a</p><p>inscrição 1 tem uma seta apon-</p><p>tando para outra elipse com a</p><p>inscrição 5, e esta por sua vez</p><p>tem duas setas apontando para</p><p>duas elipses, uma com a inscri-</p><p>ção 2, e outra com a inscrição 3.</p><p>A elipse com a inscrição 3 tem</p><p>uma seta apontando para outra</p><p>elipse com a inscrição 7, e a elip-</p><p>se com a inscrição 7 tem duas se-</p><p>tas apontando para duas elipses,</p><p>uma com a inscrição 4 e outra</p><p>com a inscrição 6.</p><p>176</p><p>3. Começando a busca pelo nó 0, visita-se o nó 1 e explora-se os caminhos a partir dele.</p><p>A partir do nó 1, tem-se somente um caminho não explorado que faz com que o nó</p><p>5 seja visitado. A partir do nó 5, visitamos o nó 2, e chegamos a um ponto sem novos</p><p>caminhos, assim, a busca retorna para o nó 5, que segue outro caminho alcançando</p><p>o nó 3. A partir do nó 3, chegamos ao nó 4, e a partir de 4, todos os nós já foram ex-</p><p>plorados, retornando a busca para o nó 7, que segue para visitar o nó 6, que já tem</p><p>todos os seus vizinhos visitados, e retornando para o nó 5, que não tem novos vizinhos</p><p>para visitar, assim como os demais nós (1 e 0). Dessa forma, a busca é finalizada e a</p><p>árvore resultante pode ser vista na figura a seguir:</p><p>0</p><p>1</p><p>5</p><p>2 3</p><p>7</p><p>4 6</p><p>Descrição da Imagem: a figura apre-</p><p>senta uma elipse com a inscrição 0</p><p>em seu interior, e esta elipse por</p><p>sua vez tem uma seta apontando</p><p>para outra elipse com a inscrição 1.</p><p>A elipse com a inscrição 1 tem uma</p><p>seta apontando para outra elipse</p><p>com a inscrição 5, e esta por sua vez</p><p>tem duas setas apontando para duas</p><p>elipses, uma com a inscrição 2, e ou-</p><p>tra com a inscrição 3. A elipse com a</p><p>inscrição 3 tem uma seta apontando</p><p>para outra elipse com a inscrição 7, e</p><p>a elipse com a inscrição 7 tem duas</p><p>setas apontando para duas elipses,</p><p>uma com a inscrição 4 e outra com</p><p>a inscrição 6.</p><p>177</p><p>UNIDADE 3</p><p>1. C.</p><p>Para colocar o 1 na posição correta = 2 movimentos.</p><p>Para colocar o 2 na posição correta = 0 movimento.</p><p>Para colocar o 3 na posição correta = 2 movimentos.</p><p>Para colocar o 4 na posição correta = 1 movimento.</p><p>Para colocar o 5 na posição correta = 1 movimento.</p><p>Para colocar o 6 na posição correta = 0 movimentos.</p><p>Para colocar o 7 na posição correta = 2 movimentos.</p><p>Para colocar o 8 na posição correta = 2 movimentos.</p><p>Total = 10.</p><p>2. C.</p><p>a. INCORRETA, pois a heurística define a estimativa de custo do problema.</p><p>b. INCORRETA, pois heurística complexa pode atrasar o processo de busca.</p><p>d INCORRETA, pois a heurística não define o modo como o processo de busca trata</p><p>a vizinhança, ela é utilizada pelos métodos de busca.</p><p>e. INCORRETA, pois a busca em largura e a busca em profundidade não utilizam de</p><p>heurísticas em seus processos de busca.</p><p>3. A.</p><p>b. INCORRETA, pois não utiliza somente o valor da heurística.</p><p>c. INCORRETA, pois não utiliza o custo total para definir a ordem dos nós, utiliza a</p><p>heurística somada ao custo dos nós.</p><p>178</p><p>d INCORRETA, pois não define heurística fixa.</p><p>e. INCORRETA, pois a Busca A* utiliza heurísticas.</p><p>UNIDADE 4</p><p>1. A ordem de avaliação dos nós deve ser: E – F – A – B – C – D, pois E e F têm quatro</p><p>arestas (restrições), A, B e C têm três arestas (restrições), e D tem somente uma aresta</p><p>(restrição). Como critério de desempate entre esses nós, foi utilizada a ordem alfabé-</p><p>tica, e, utilizando a ordem RGB (red, green, blue), temos que:</p><p>E = red.</p><p>F = green (não pode red, porque E = red).</p><p>A = green (não pode red, porque E = red).</p><p>B = blue (não pode red, porque E = red, e não pode green, porque A e F são green).</p><p>C = blue (não pode red, porque E = red, e não pode green, porque A e F são green).</p><p>D = red.</p><p>A representação gráfica pode ser vista na figura a seguir:</p><p>B</p><p>D</p><p>A</p><p>E</p><p>F</p><p>C</p><p>Descrição da Imagem: : a figura apresenta seis elipses com letras em seu interior, sendo que a elipse com</p><p>a letra A está ligada por uma linha a outras três elipses, B, C e E. A elipse com a letra B está conectada a</p><p>outras três elipses, A, B e F. A elipse com a letra C está conectada a outras três elipses, A, E e F. A elipse com</p><p>a letra D está conectada somente a uma elipse, F. A elipse com a letra E está conectada a outras quatro</p><p>elipses, A, B, C e F. Por fim, a elipse com a letra F está conectada a outras quatro elipses, B, C, D e E. Além</p><p>disso, as elipses D e E estão pintadas de vermelho, as elipses A e F estão pintadas de verde, e as elipses B</p><p>e C estão pintadas de azul.</p><p>Figura 1 – Exemplo de exercício</p><p>de coloração de mapas em um</p><p>grafo. Fonte: / o autor.</p><p>179</p><p>2. O domínio de uma variável</p><p>em um PSR são os valores</p><p>possíveis para cada uma</p><p>das variáveis, e é represen-</p><p>tado pela tabela a seguir.</p><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p><p>A</p><p>8</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>6,</p><p>7}</p><p>3</p><p>2</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>6,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>5,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>6,</p><p>7,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>7,</p><p>9}</p><p>4</p><p>B</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>7}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>4,</p><p>5,</p><p>6,</p><p>7}</p><p>D</p><p>=</p><p>{2</p><p>,4</p><p>,6</p><p>,7</p><p>}</p><p>3</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>6,</p><p>8,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>9}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>7,</p><p>9}</p><p>D</p><p>=</p><p>{2</p><p>,5</p><p>,6</p><p>,7</p><p>,9</p><p>}</p><p>C</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>6}</p><p>9</p><p>D</p><p>=</p><p>{1</p><p>,2</p><p>,4</p><p>,6</p><p>}</p><p>7</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>5}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>5,</p><p>6}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>5,</p><p>6}</p><p>8</p><p>D</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>7}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>7,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>7,</p><p>8}</p><p>D</p><p>=</p><p>{4</p><p>,5</p><p>,6</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{4</p><p>,5</p><p>,6</p><p>,7</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>7,</p><p>9}</p><p>3</p><p>2</p><p>1</p><p>E</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,7</p><p>}</p><p>D</p><p>=</p><p>{2</p><p>,3</p><p>,4</p><p>,5</p><p>,6</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{2</p><p>,4</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{4</p><p>,5</p><p>,6</p><p>,8</p><p>,9</p><p>}</p><p>1</p><p>D</p><p>=</p><p>{3</p><p>,4</p><p>,5</p><p>,7</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{5</p><p>,6</p><p>,7</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{4</p><p>,5</p><p>,7</p><p>,8</p><p>,9</p><p>}</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>6,</p><p>7}</p><p>F</p><p>6</p><p>1</p><p>9</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>8}</p><p>D</p><p>=</p><p>{2</p><p>,3</p><p>,4</p><p>,5</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>7}</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>7,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>5,</p><p>7,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>7}</p><p>G</p><p>2</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>7}</p><p>D</p><p>=</p><p>{</p><p>4,</p><p>7}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>5,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>5,</p><p>7,</p><p>9}</p><p>8</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>7}</p><p>6</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>5,</p><p>7}</p><p>H</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>7}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>7,</p><p>8}</p><p>5</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>4,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>4,</p><p>7,</p><p>9}</p><p>6</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>7,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>1,</p><p>3,</p><p>7,</p><p>8}</p><p>D</p><p>=</p><p>{</p><p>2,</p><p>3,</p><p>7}</p><p>I</p><p>1</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>6,</p><p>7,</p><p>8}</p><p>D</p><p>=</p><p>{3</p><p>,6</p><p>,7</p><p>,8</p><p>}</p><p>D</p><p>=</p><p>{</p><p>5,</p><p>9}</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>5,</p><p>7}</p><p>2</p><p>4</p><p>D</p><p>=</p><p>{</p><p>3,</p><p>5,</p><p>7,</p><p>8}</p><p>9</p><p>Ta</p><p>be</p><p>la</p><p>1</p><p>–</p><p>D</p><p>om</p><p>ín</p><p>io</p><p>d</p><p>o</p><p>Su</p><p>do</p><p>ku</p><p>d</p><p>a</p><p>Q</p><p>ue</p><p>st</p><p>ão</p><p>2</p><p>/</p><p>F</p><p>on</p><p>te</p><p>: o</p><p>a</p><p>u</p><p>to</p><p>r.</p><p>180</p><p>3. O domínio das variáveis do Sudoku binário</p><p>pode ser visto na tabela a seguir.</p><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>A</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>B</p><p>0</p><p>0</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>0}</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>C</p><p>0</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>E</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>F</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>0</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>T</p><p>ab</p><p>el</p><p>a</p><p>2</p><p>–</p><p>D</p><p>om</p><p>ín</p><p>io</p><p>d</p><p>o</p><p>Su</p><p>do</p><p>ku</p><p>b</p><p>in</p><p>ár</p><p>io</p><p>d</p><p>a</p><p>Q</p><p>ue</p><p>st</p><p>ão</p><p>3</p><p>/</p><p>F</p><p>on</p><p>te</p><p>: o</p><p>a</p><p>ut</p><p>or</p><p>.</p><p>181</p><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>A</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>B</p><p>0</p><p>0</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>0}</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>C</p><p>0</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>D</p><p>=</p><p>{</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>E</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>1</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>F</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>0</p><p>D</p><p>=</p><p>{</p><p>0,</p><p>1}</p><p>T</p><p>ab</p><p>el</p><p>a</p><p>2</p><p>–</p><p>D</p><p>om</p><p>ín</p><p>io</p><p>d</p><p>o</p><p>Su</p><p>do</p><p>ku</p><p>b</p><p>in</p><p>ár</p><p>io</p><p>d</p><p>a</p><p>Q</p><p>ue</p><p>st</p><p>ão</p><p>3</p><p>/</p><p>F</p><p>on</p><p>te</p><p>: o</p><p>a</p><p>ut</p><p>or</p><p>.</p><p>UNIDADE 5</p><p>1. O robô pode ser descrito com a corporalidade similar à de um humano, com pernas,</p><p>braços, tronco e cabeça e articulações. Como sensores, podem ser adicionados uma</p><p>câmera para visão, sensores de temperatura, de proximidade e sensores de gás.</p><p>Como forma de atuação, um robô pode ter as mãos para interagir com objetos, e</p><p>som para interagir por meio da fala. E o robô pode ter seu funcionamento ou seu</p><p>cérebro voltado para realizar ações que um humano solicita, como segurar objetos,</p><p>buscar objetos, realizar tarefas diárias e qualquer outra interação com os humanos.</p><p>2. D. A corporalidade não leva em conta somente os pés e mãos de um robô, pois o robô</p><p>pode não ter pés e mãos na mesma forma que um humano. Um robô na forma de</p><p>carro não tem pés e mãos, e sim os mecanismos para se movimentar que definem a</p><p>sua corporalidade</p><p>3. D. O robô precisa interagir com o ambiente para captar informações, processá-las e</p><p>depois executar ações.</p><p>A Rotina Hospitalar - Como a Psicopedagogia Pode Ajudar?</p><p>Ensino e Aprendizagem e o Contexto Hospitalar: Reflexões e Prática do Psicopedagogo</p><p>Atuação Psicopedagógica com Pacientes no Ambiente Hospitalar</p><p>Trabalho do Psicopedagogo</p><p>Projeto Político Pedagógico,</p><p>_30j0zll</p><p>_30j0zll</p><p>_30j0zll</p><p>_1fob9te</p><p>_30j0zll</p><p>_30j0zll</p><p>_1fob9te</p><p>_GoBack</p><p>_3znysh7</p><p>Button 14:</p><p>Button 16:</p><p>Página 9:</p><p>Botão 21:</p><p>Botão 22:</p><p>Button 25:</p><p>Button 26:</p><p>Button 27:</p><p>Botão 23:</p><p>Button 23:</p><p>Button 24:</p><p>explorar superfícies desconhecidas, como a de Marte (DE MEDEIROS, 2013).</p><p>A IBM vem trabalhando em supercomputadores, tal como o Deep Blue,</p><p>que venceu o campeão mundial de xadrez em 1996, e vem sendo evoluído</p><p>com novas atualizações e versões que incorporam cada vez mais tecnologia</p><p>e IA (RUSSEL; NORVIG, 2013).</p><p>O ALVINN (Veículo Terrestre Autônomo em Rede Neural) é um exemplo de</p><p>carro autônomo desenvolvido por pesquisadores da Universidade de Carnegie</p><p>Mellon, incorporando conceitos de visão computacional. O ALVINN foi precur-</p><p>sor dos carros das famosas Google e Tesla, que a cada dia que passa, melhoram</p><p>e incorporam características relevantes aos seus carros.</p><p>Além dos carros inteligentes, programas que realizam o diagnósticos de</p><p>doenças estão cada vez mais eficazes, descobrindo sinais que nem os médicos</p><p>percebem. Ainda na área médica, micros e nanos robôs vêm executando cirurgias</p><p>e micro cirurgias em pacientes, utilizando, além da visão computacional, a com-</p><p>putação gráfica, processamento e reconhecimento de imagens (LUGER, 2013).</p><p>Como descrito neste breve relato histórico da IA, a área engloba diversos cam-</p><p>pos do conhecimento, desde os que têm base como a matemática e estatística, bem</p><p>como a filosofia, robótica e a matemática. A união dos conceitos destas diversas es-</p><p>feras define as características presentes na Inteligência Artificial, na qual, cada uma</p><p>delas contribuiu com diversos conceitos; e alguns destes são apresentados a seguir.</p><p>A Filosofia contribui de forma significativa para a IA, o estudo da lógica e das</p><p>formas de raciocínio, tal como o silogismo de Aristóteles. Esta ideia do silogismo</p><p>pode ser aplicada, atualmente, nos computadores, quando eles fazem deduções. O</p><p>silogismo utiliza de duas afirmações, pelas quais é possível deduzir uma terceira.</p><p>Por exemplo, a partir de “Todo homem é mortal” e “Gregos são homens”, podemos</p><p>deduzir que “Gregos são mortais” (RUSSEL; NORVIG, 2013).</p><p>Outro filósofo que contribuiu para a IA é Thomas Hobbes, que propôs um</p><p>tipo de raciocínio semelhante ao raciocínio computacional numérico. Leonardo</p><p>da Vinci e Wilhelm Leibniz também foram contribuintes da IA por meio de suas</p><p>construções; da Vinci com um projeto de calculadora mecânica, e Leibniz com</p><p>a primeira máquina de calcular conhecida.</p><p>19</p><p>Entender como funciona a mente é importante para a IA, pois, se desejamos</p><p>ter uma inteligência artificial, precisamos entender o comportamento da mente</p><p>para, então, reproduzir este comportamento artificialmente. Nesse sentido, duas</p><p>teorias também acabaram contribuindo com a IA: o dualismo, de René Des-</p><p>cartes, que dizia, de forma simplificada, que a mente é isenta das leis da física,</p><p>e por isso consegue realizar tarefas complexas; e também o Materialismo, que</p><p>descrevia que todas as coisas do mundo, incluindo mente e cérebro, funciona-</p><p>vam conforme as leis físicas (DE MEDEIROS, 2018).</p><p>Além de compreender como a mente funciona, entender como o conheci-</p><p>mento é criado também é importante para a nossa matéria – estudar a origem</p><p>do conhecimento e como ele é transmitido. Alguns autores divergiam sobre estes</p><p>conceitos. Francis Bacon defendia o empirismo, no qual o conhecimento é baseado</p><p>na observação e na experiência. As teorias baseadas nos princípios da indução de</p><p>Hume também influenciaram a IA, que, a partir de premissas específicas, afirmam</p><p>ser possível se chegar a conclusões generalizadas (RUSSELL; NORVIG, 2013).</p><p>Os autores ainda destacam a contribuição de Ludwig Wittgestein e Bertrand, com</p><p>o positivismo lógico, que define que as observações do mundo real têm relação com</p><p>as observações de um robô que está explorando um solo desconhecido, por exemplo.</p><p>A teoria da confirmação, que inclui autores como Carnap e Carl Hempel, que visava</p><p>explicar como os conhecimentos podem ser adquiridos por meio da experiência,</p><p>também teve seu papel de influência na inteligência artificial que conhecemos hoje.</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>20</p><p>A matemática é a base para a Ciência da Computação, não é à toa que Alan Turing,</p><p>um matemático, é considerado o pai da Computação. Turing definiu um modelo</p><p>matemático para a resolução de problemas, também conhecido como Máquina de</p><p>Turing (MT). A partir das premissas da MT, sua configuração e arquitetura evoluiu</p><p>para se tornar o que conhecemos hoje como computador (TURING, 1948).</p><p>Além da MT, Turing também definiu diretrizes para a IA em si, com o chama-</p><p>do Teste de Turing (TURING, 1950). O Teste de Turing seria uma forma de medir</p><p>se um computador é dotado de inteligência. Ele funcionaria de modo que um</p><p>entrevistador poderia realizar perguntas em uma interface para o computador, e</p><p>o entrevistador, com base nas respostas, poderia saber se quem está respondendo</p><p>é um computador ou uma pessoa. A ideia do teste é que, se o computador con-</p><p>seguir enganar uma pessoa em uma conversa, este computador seria dotado de</p><p>inteligência, tal como mostra a figura a seguir.</p><p>Homem</p><p>Computador</p><p>Computador</p><p>(teletipo)Barreira</p><p>Barreira</p><p>Perguntas</p><p>Perguntas</p><p>Perguntas</p><p>Respostas</p><p>Respostas</p><p>Respostas</p><p>Para a�rmar que o</p><p>computador é</p><p>inteligente é necessário</p><p>que o homem abaixo</p><p>não consiga discernir</p><p>quem é o computador e</p><p>quem é o homem,</p><p>mediante suas respostas.</p><p>Interrogador</p><p>Figura 1 - Representação do Teste de Turing / Fonte: Lima, 2017, p. 4</p><p>Descrição da Imagem: A Figura 1 ilustra do lado direito a representação de um homem chamado interrogador,</p><p>acompanhado de um ponto de interrogação. Acima dele há o texto “Para afirmar que o computador é inteligente,</p><p>é necessário que o homem abaixo não consiga discernir quem é o computador e quem é o homem, mediante</p><p>suas respostas”, separado no lado esquerdo por uma barreira na vertical, na qual o lado esquerdo da barreira</p><p>contém, na parte superior, outra representação de um homem acompanhada de uma caixa de texto com a</p><p>descrição “Homem”, e na parte inferior, também separado por uma barreira horizontal, a representação de</p><p>um humanoide acompanhada de uma caixa de texto com a descrição “Computador”. Estes elementos do lado</p><p>esquerdo se comunicam, por meio de setas de chegada e saída, a um comutador do lado direito da barreira</p><p>horizontal. As setas que saem do comutador em direção aos elementos estão com a descrição “Perguntas”, e</p><p>as setas de chegada estão nomeadas como “Respostas”, e este comunicador se comunica com o interrogador</p><p>também por meio de setas, porém a seta de saída está nomeada como “Respostas” e a de chegada é “Perguntas”.</p><p>21</p><p>Para a resolução do Teste atualmente, o computador precisaria utilizar de algumas</p><p>técnicas computacionais em diversas áreas (LUGER, 2013), tais como:</p><p>■ processamento de linguagem natural, para entender o que o entrevistador diz;</p><p>■ representação do conhecimento, para ser capaz de armazenar e consultar</p><p>informações armazenadas;</p><p>■ raciocínio automático, para realizar inferências, e raciocinar sobre os con-</p><p>teúdos e sobre as questões; e</p><p>■ aprendizagem de máquina, para extrair informações a partir dos dados,</p><p>mesmo com informações faltantes.</p><p>Dentre esses conceitos que envolvem o Teste de Turing, alguns deles vocês verão</p><p>durante o andamento do nosso curso de Ciência de Dados.</p><p>Ainda em relação ao Teste de Turing, uma segunda versão, chamada de Teste</p><p>de Turing Total, ainda é conceituada, na qual, além das características descritas</p><p>acima, o entrevistador poderia passar objetos para o computador, que agiria como</p><p>um robô que consegue interagir com o ser humano (RUSSEL; NORVIG, 2013).</p><p>Para que haja essa interação, o robô precisaria ainda da visão compu-</p><p>tacional, que é perceber objetos por meio de um sensor – uma câmera, por</p><p>exemplo –, reconhecer objetos por meio de reconhecimento de padrões, uti-</p><p>lizando-se do processamento de imagens e computação gráfica. Além disso,</p><p>seria necessário se utilizar de conceitos de robótica para que o robô possa</p><p>coletar objetos e interagir com o entrevistador (TURING, 1950).</p><p>Com a MT, Turing também se utilizou do seu modelo para definir os concei-</p><p>tos da indecidibilidade, que diz que, se um problema</p><p>pode ser resolvido em uma</p><p>MT, ele pode ser resolvido em um computador, no entanto ,alguns problemas</p><p>não são possíveis de se resolver (TURING, 1948).</p><p>Ainda na área da matemática, os conceitos de representação formal e de</p><p>lógica clássica também influenciaram a IA, que se utiliza, por exemplo, da</p><p>lógica booleana para representação das informações e para realizar inferên-</p><p>cias lógicas (RUSSEL; NORVIG, 2013).</p><p>O autor ainda destaca a importância da Teoria da probabilidade, descrita</p><p>por Gerolamo Cardano, e a análise Bayesiana de Tomas Bayes. Ambas as teo-</p><p>rias também tiveram sua importância na definição de regras para quantificar</p><p>as probabilidades subjetivas, ou as incertezas.</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>22</p><p>Pode-se dizer que a economia estuda como as pessoas fazem escolhas que levam</p><p>a resultados preferenciais, e, como a IA deseja representar parte do comporta-</p><p>mento humano, esta base da economia serve de influência para a IA, ao buscar</p><p>absorver e entender as características e conceitos destas escolhas. Tópicos como</p><p>a teoria da utilidade, a teoria da decisão e a teoria dos jogos e comportamentos</p><p>econômicos também estão presentes nas bases da IA (DE MEDEIROS, 2018).</p><p>Se a inteligência artificial deseja reproduzir a forma como os neurônios</p><p>funcionam, é necessário entender o seu comportamento, e a neurociência é a</p><p>base para esse conhecimento. Isso aconteceu a partir dos estudos de Paul Broca</p><p>com pacientes com deficiências na fala; com base nas técnicas de coloração dos</p><p>neurônios ativos em determinadas situações; ou com estudos pioneiros das es-</p><p>truturas dos neurônios – todo conhecimento necessário para entender seu com-</p><p>portamento influenciou a IA que temos atualmente (RUSSEL; NORVIG, 2013).</p><p>Os autores ressaltam também a importância do estudo do comportamen-</p><p>to, que visa entender a mente humana e as técnicas comportamentalistas e que</p><p>estuda os conceitos de estímulos e respostas tiveram seu impacto, bem como a</p><p>psicologia cognitiva, que trabalha o cérebro como um dispositivo que processa</p><p>informações, tal como um computador.</p><p>Kenneth Craik foi um dos autores que a teoria na psicologia pode ser relacionada</p><p>com um agente baseado em conhecimento. A teoria diz que, a partir de estímulos, as</p><p>informações são armazenadas internamente no agente, para depois serem manipu-</p><p>ladas por algum processo (neurônios ou programa de computador, no caso da IA), e,</p><p>assim, gerar novos conhecimentos que podem se traduzir em ações (LUGER, 2013).</p><p>A Teoria de Controle e Cibernética também é uma área base para a IA. Isso</p><p>pode ser percebido em projetos de sistemas que maximizem o objetivo, tal como</p><p>um robô que deve explorar o solo de Marte, no entanto, tem uma quantidade limita-</p><p>da de combustível. Este robô deve “pensar” em um caminho no qual consiga coletar</p><p>e analisar a maior quantidade de informações, maximizando o objetivo definido</p><p>por seus programadores dentro de suas limitações (RUSSEL; NORVIG, 2013).</p><p>A linguística também tem sua importância para a inteligência artificial que co-</p><p>nhecemos na atualidade. Nesse sentido, destacam-se o estudo de como aprendemos</p><p>as linguagens quando criança realizado por Skinner; e os estudos de Chomsky, mos-</p><p>trando como uma criança que nunca ouviu nada pode compreender e formar frases.</p><p>A junção da IA com a linguística gerou uma nova área de pesquisas e estudos,</p><p>a linguística computacional ou também chamado de Processamento de Lingua-</p><p>23</p><p>gem Natural, que se destina a estudar como entender, armazenar e se comunicar</p><p>do modo como os seres humanos se comunicam (RUSSELL; NORVIG, 2013).</p><p>Os autores ressaltam que um dos exemplos é um chatbot, programa que pode</p><p>substituir atendentes em serviços de atendimento ao consumidor. O chatbot precisa</p><p>entender como os seres humanos se comunicam, e extrair significado a partir de</p><p>cada frase escrita ou falada. Entender essas frases pode gerar uma complexidade</p><p>grande, pois, normalmente, um computador só trabalha com linguagens formais,</p><p>que não possuem ambiguidade. Entretanto, ao processar a linguagem natural, os</p><p>computadores podem se deparar com ambiguidades e frases sem sentido.</p><p>Além disso, a representação do conhecimento existente também é fator impor-</p><p>tante para um dispositivo dotado de IA, pois, a partir do conhecimento, o disposi-</p><p>tivo deve ser capaz de utilizar e manipular a informação existente (LUGER, 2013).</p><p>A Computação é o artefato que a IA utiliza para demonstrar e gerar a inteligência.</p><p>Com base nos modelos propostos por Alan Turing, o computador tem a capacidade</p><p>de realizar a leitura das informações, realizar algum processamento interno, e gerar</p><p>uma saída para o mundo. Isso é feito por meio de atuadores e sensores em um robô, ou</p><p>por meio da inserção de informações em um software que vai gerar o processamento</p><p>e exibição das informações na tela do computador (TURING, 1950).</p><p>A partir dos modelos de Turing, e da máquina eletromecânica que quebrou</p><p>a criptografia da Máquina Enigma, diversos modelos foram criados, sendo o</p><p>ENIAC (Eletronic Numerical Integrator and Computer), que é considerado um</p><p>dos primeiros computadores – os conceitos utilizados no ENIAC ainda podem</p><p>ser vistos nos computadores atuais (RUSSEL; NORVIG, 2013).</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>24</p><p>Caro(a) estudante, a partir de agora, encerramos os conceitos relacionados à</p><p>história da IA e suas bases. Vamos, então, para os conteúdos relacionados aos</p><p>agentes da IA, aos ambientes nos quais um agente atua e seus tipos.</p><p>Dado todo o contexto histórico da IA, e a base na qual a inteligência artifi-</p><p>cial se solidificou, o que representa um dispositivo inteligente? Os dispositivos</p><p>inteligentes podem ser chamados de agentes que atuam sobre um ambiente. Um</p><p>agente pode perceber como o ambiente está a partir de sensores, e pode atuar</p><p>sobre este ambiente utilizando os seus atuadores (DE MEDEIROS, 2018). Uma</p><p>representação gráfica do modelo de um agente pode ser vista na figura a seguir</p><p>Ambiente</p><p>?</p><p>Agente</p><p>Sensores</p><p>Figura 2 - Modelo de agente / Fonte: Russell, Norvig (2013) página 31</p><p>Descrição da Imagem: A Figura 2 apresenta uma elipse ao lado esquerdo com as palavras “ambiente” dentro</p><p>do círculo, e, deste círculo, sai uma seta para uma elipse do lado direito, com a palavra “agente” dentro. Uma seta</p><p>sai da elipse da direita e incide na elipse no lado esquerdo. A representação do agente como uma elipse tem</p><p>ainda duas pernas e um braço que, e uma representação de um olho que é indicado como sendo os sensores do</p><p>agente, acompanho de uma seta que aponta para um retângulo (que se encontra no interior da elipse “agente”)</p><p>com um ponto de interrogação em seu centro.</p><p>Pensando em humanos, podemos considerar que os sensores são os sentidos, tal</p><p>como olfato, audição, tato, paladar, e que os atuadores são os braços, pés etc., em que</p><p>ao perceberem algo podemos atuar em resposta a isso (RUSSEL; NORVIG, 2013).</p><p>Os autores destacam também que, quando pensamos em um programa de</p><p>computador, as percepções podem ser vistas como entradas inseridas em um</p><p>teclado, informações recebidas pela rede, ou quaisquer representações codificadas</p><p>em bits no computador. Nesse sentido, os atuadores podem ser representados da</p><p>25</p><p>mesma forma, uma nova saída que é gerada a partir de uma entrada, uma luz que</p><p>se acende para indicar que determinada tarefa foi realizada.</p><p>Ao analisar um agente, tal como um dispositivo inteligente na forma de</p><p>um robô, os sensores podem ser descritos como sensores de presença, de</p><p>proximidade, de temperatura, de umidade, uma câmera térmica, detectores</p><p>infravermelho, câmeras que tiram foto e gravam, entre outros tipos de sen-</p><p>sores. Nesse caso, os atuadores podem envolver braços mecânicas, motores,</p><p>luzes e outros dispositivos (DE MEDEIROS, 2018).</p><p>Independentemente do tipo de agente, a partir de uma percepção, é realizada uma</p><p>ação, no entanto, essa ação só pode ser realizada com base em uma percepção, ou com</p><p>base em várias percepções realizadas ao longo do tempo (RUSSELL, NORVIG, 2013).</p><p>Imagine a situação de um jogo de xadrez, na qual, ao realizar</p><p>uma movimen-</p><p>tação, um agente inteligente deve levar em conta todas as outras movimentações</p><p>realizadas anteriormente, não somente o que o agente pode perceber no tabuleiro</p><p>neste momento. Nesse caso, o agente se baseia no histórico de percepções, ou seja,</p><p>na sequência de percepções do agente. O problema com esse tipo de abordagem, é</p><p>que, em determinados casos, armazenar estas percepções consome muita memória.</p><p>Um outro exemplo é uma situação de um jogo de pôquer, no qual, ao</p><p>considerar somente as cartas que o agente possui e as cartas da mesa, as in-</p><p>formações passadas sobre o jogo não influenciam nas decisões que um agente</p><p>precisa tomar (DE MEDEIROS, 2018).</p><p>Esse mapeamento, que a partir de uma percepção deve ser realizada uma ação,</p><p>é chamado de função agente, e, como vimos, pode depender de uma percepção</p><p>ou de uma sequência de percepções (RUSSELL; NORVIG, 2013).</p><p>Os autores ainda destacam que, para compreender estes conceitos, uma ideia é</p><p>criar cenários fictícios e visualizar como um agente se comportaria analisando as ca-</p><p>racterísticas do agente, e também as características do ambiente ao qual o agente está</p><p>inserido, uma vez que o agente percebe o ambiente e também age sobre o ambiente.</p><p>Um dos exemplos utilizados na literatura é o chamado mundo do aspira-</p><p>dor de pó inteligente. Neste exemplo, temos um aspirador de pó inteligente</p><p>que consegue perceber quando um ambiente está sujo, e, assim, pode limpá-</p><p>-lo. O ambiente imaginário deste exemplo são salas que estão ligadas entre</p><p>si. Na representação deste arquétipo, considere duas salas ligadas, tal como</p><p>mostra a figura a seguir.</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>26</p><p>A figura apresenta as duas salas (A e B), a representação do aspirador de pó,</p><p>e uma representação de sujeira pelos pontos em cinza. A ideia do aspirador</p><p>é limpar as salas, assim, ele deve perceber se está sujo – se estiver, será neces-</p><p>sário aspirar/limpar, e então pode se movimentar para a outra sala e realizar</p><p>o mesmo trabalho (RUSSEL; NORVIG, 2013).</p><p>O funcionamento de um aspirador deste tipo é muito simples, no entanto, algu-</p><p>mas questões podem levantar dúvidas importantes sobre o problema. Imagine a si-</p><p>tuação que o aspirador está na sala A, que está suja, a sala é limpa ,e depois o aspirador</p><p>move-se para a sala B, que também está suja e também é limpa. Nesse caso, será que é</p><p>necessário voltar para a sala A, sabendo que ela acabou de ser limpa? Outra questão</p><p>que surge também é, depois de quanto tempo a sala se torna suja após ser limpa?</p><p>Essas questões são importantes, pois se um robô similar a esse fizer muitas</p><p>movimentações desnecessárias, ele pode gastar rapidamente sua bateria/energia</p><p>e precisar ser recarregado ou algo do tipo (DE MEDEIROS, 2018).</p><p>Isso leva a determinar o que o agente deve fazer, se o que utilizarmos como critério</p><p>para o que o agente (aspirador) deve fazer é limpar, um robô que fica a todo momen-</p><p>to aspirando e indo de um lado para o outro nas salas será ótimo em eficiência. No</p><p>entanto, a definição de que os agentes devem fazer o que é o correto, normalmente,</p><p>depende de várias medidas de desempenho (RUSSEL; NORVIG, 2013).</p><p>A B</p><p>Figura 3 - Representação do mundo do aspirador de pó inteligente / Fonte: Russell; Norvig, 2013, p. 32</p><p>Descrição da Imagem: A Figura 3 apresenta dois quadrados adjacentes, sendo que o quadrado do lado esquer-</p><p>do, denominado como A, contém uma representação simples de um aspirador de pó, e uma representação de su-</p><p>jeira, enquanto que o quadrado do lado direito, denominado como B, contém apenas a representação da sujeira.</p><p>27</p><p>Nesse caso do aspirador de pó, podemos considerar a sala limpa como uma me-</p><p>dida de desempenho, mas também podemos considerar o gasto de energia como</p><p>um critério. Dessa forma, um dos modos possíveis de melhorar o agente é ter uma</p><p>representação de seu estado interno, que seja tal como um temporizador, que não</p><p>permita que ele se mova de volta para a sala, sendo que ela acabou de ser limpa,</p><p>melhorando seu desempenho em relação ao gasto de energia.</p><p>Nesse exemplo, diversas melhorias podem ser consideradas, tanto em</p><p>relação ao agente, incluindo sensores, atuadores e medidas de desempenho,</p><p>quanto em relação ao ambiente. Essas quatro características, sensores, atua-</p><p>dores, medidas de desempenho e ambiente, são as principais características</p><p>no projeto de um agente inteligente, pois elas definem como, onde, e com o</p><p>que o agente vai interagir (RUSSEL; NORVIG, 2013).</p><p>Suponha, agora, outro problema a ser resolvido por um agente, a resolução de</p><p>um cubo mágico por um robô formado de um braço mecânico. Os sensores para</p><p>um agente desse tipo podem ser uma câmera para tirar fotos ou filmar como está</p><p>uma das faces do cubo mágico. Os atuadores precisam ser capazes de girar o cubo</p><p>mágico na horizontal e na vertical. O ambiente é formado pelo próprio braço me-</p><p>cânico do agente e a posição na qual o cubo é segurada, e, por fim, a medida de de-</p><p>sempenho pode ser o tempo para a resolução do problema (DE MEDEIROS, 2018).</p><p>Tomando como exemplo um agente que faz o reconhecimento de face, os sen-</p><p>sores também seriam formados por câmeras que geram arquivos de imagens com</p><p>a representação de cada cor nos pixels da imagem. Os atuadores geram a classifi-</p><p>cação da pessoa, indicando se é um indivíduo que está cadastrado no sistema ou</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>28</p><p>não, podendo, por exemplo, liberar a passagem em uma porta, caso a pessoa esteja</p><p>cadastrada, ou bloquear, caso contrário. O ambiente é formado pela própria câmera</p><p>que captura a imagem e repassa a representação para o agente. Este, por sua vez,</p><p>analisa e repassa a resposta aos atuadores, e a medida de desempenho é realizar o</p><p>controle de entrada em uma porta, por exemplo. Cada ambiente difere de outros</p><p>em diversas características, a seguir veremos algumas destas características.</p><p>Um ambiente pode ser parcialmente observável ou totalmente observá-</p><p>vel, e esta característica relaciona como o agente consegue observar e captar as</p><p>informações do ambiente. Se o agente consegue perceber, por meio dos sensores,</p><p>todas as características relevantes do ambiente, então, o agente é totalmente ob-</p><p>servável. Agora, se o agente não consegue perceber totalmente o ambiente, então</p><p>o agente é parcialmente observável (RUSSEL; NORVIG, 2013).</p><p>Nos casos onde o agente é parcialmente observável, é necessário que ele tenha</p><p>uma representação interna do estado do ambiente, para o momento que ele não</p><p>conseguir perceber uma característica ele consultar o estado interno.</p><p>Um exemplo de ambiente totalmente observável pode ser considerado um</p><p>programa inteligente que joga xadrez contra um ser humano. O programa con-</p><p>segue perceber as movimentações feitas pelo jogador em qualquer uma das 64</p><p>posições do tabuleiro (8 x 8), e, de acordo com essas movimentações, o programa</p><p>pode agir e fazer a movimentação que desejar, ou seja, o agente consegue perceber</p><p>todas as características relevantes do ambiente (DE MEDEIROS, 2018).</p><p>O parcialmente observável, se considerarmos o caso do jogo de xadrez, seria o</p><p>caso de o agente não conseguir ver uma peça, pois outra peça estar encobrindo a</p><p>visão. Um outro exemplo que pode facilitar o entendimento, é o caso de um robô</p><p>que dirige um carro, no qual, a partir da visão do motorista, existe um ponto cego</p><p>na direção, onde não é possível ver um motociclista que está em uma determinada</p><p>posição. Assim, o agente que realiza a tarefa de observar o movimento, não con-</p><p>segue perceber todo o ambiente, sendo necessário armazenar um estado interno</p><p>do agente, que memoriza como estava o mundo quando ele conseguiu perceber</p><p>alguma coisa, ou ,no caso, se algum motociclista estava vindo em direção e poderia</p><p>passar pelo ponto cego em um determinado momento (RUSSEL; NORVIG, 2013).</p><p>O conceito de ambiente determinístico representa que o próximo estado do</p><p>ambiente depende exclusivamente do estado atual; enquanto que um ambiente</p><p>estocástico depende de outros fatores além do estado atual. Um exemplo a ser</p><p>considerado é o caso de um agente que realiza o lançamento</p><p>de uma moeda, por</p><p>29</p><p>exemplo. O lançamento da moeda não depende dos estados anteriores do mundo,</p><p>apenas do estado atual, então é determinístico (LUGER, 2013).</p><p>O mesmo exemplo de um agente que joga xadrez se torna estocástico, pois</p><p>há diversos fatores que podem influenciar, como o tempo do jogo, as jogadas</p><p>anteriores realizadas pelo agente, entre outras percepções.</p><p>Um ambiente episódico é dividido em várias repetições de percepção e ação,</p><p>sendo que cada uma dessas percepções e ações são independentes entre si. Já em</p><p>um ambiente sequencial, a décima percepção depende das percepções e ações</p><p>anteriores realizadas (RUSSEL; NORVIG, 2013).</p><p>O exemplo do jogo de xadrez, diante disso, enquadra-se em ambiente sequen-</p><p>cial, pois a percepção e ação em um determinado momento depende das percep-</p><p>ções e ações realizadas anteriormente. Já um agente que faz a limpeza das salas,</p><p>conforme descrito acima, desconsiderando as questões relacionadas à medida de</p><p>desempenho, o agente seria episódico, pois ele realiza a limpeza de uma sala, se</p><p>movimentando para outra, realizando ou não limpeza, independentemente das</p><p>ações anteriores. No caso do episódico, o agente basicamente faz a percepção do</p><p>ambiente, se está sujo, limpa, e depois se movimenta.</p><p>Outra característica do ambiente, é se o ele se altera enquanto o agente toma a</p><p>decisão. Um ambiente que muda enquanto o agente percebe e toma a decisão de</p><p>agir é um ambiente dinâmico, por outro lado, um ambiente estático é um am-</p><p>biente que não muda após o agente realizar a percepção (DE MEDEIROS, 2018).</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>30</p><p>Novamente utilizando o jogo de xadrez, após realizar uma percepção de como está o</p><p>tabuleiro, as posições das peças não irão mudar, então o xadrez é estático. Já o exemplo</p><p>de um agente que dirige um carro, o agente pode perceber o sinal verde, continuar</p><p>acelerando, o sinal mudar para amarelo, ele precisa realizar uma nova percepção e</p><p>gerar uma nova ação de reduzir a velocidade (RUSSEL; NORVIG, 2013).</p><p>Um ambiente discreto é formado por uma quantidade limitada de per-</p><p>cepções, já um ambiente contínuo dispõe de incontáveis variáveis que pre-</p><p>cisam ser observadas e analisadas.</p><p>Utilizando o nosso exemplo do jogo de xadrez, a quantidade de análises que um</p><p>agente precisa realizar é baseado na quantidade de casas do tabuleiro (64), sendo</p><p>assim, discreto. Já o exemplo de dirigir um carro pode ser classificado como contí-</p><p>nuo, pois a quantidade de variáveis a serem observadas é incontável, já que existem</p><p>diversos elementos que podem mudar a ação do agente (DE MEDEIROS, 2018).</p><p>A partir destas características de um ambiente, podemos definir os elementos dos</p><p>agentes, que são formados pelo programa do agente e pela arquitetura. O programa</p><p>do agente define uma função que, para cada percepção possível, indica uma ação que</p><p>deve ser realizada. A arquitetura do agente envolve as questões de como o ele obtém</p><p>as percepções e de como são executadas as ações realizadas sobre o ambiente.</p><p>Para o funcionamento do agente, então, é necessário um espaço na me-</p><p>mória para armazenar as percepções do agente sobre o mundo – assim, ele</p><p>realiza uma percepção e atualiza a memória interna conforme a percepção</p><p>atual. A partir desse ponto, o agente escolhe a melhor ação consultando a</p><p>memória, e salva novamente a leitura da percepção atual com a ação escolhida</p><p>na memória interna (RUSSEL; NORVIG, 2013).</p><p>A escolha da ação depende de um mapeamento que indica que, para cada</p><p>percepção, deve-se realizar uma ação específica, no entanto, se considerarmos</p><p>o caso do jogo de xadrez, a quantidade de cenários possíveis é muito grande</p><p>e pode gerar um grande custo de armazenamento.</p><p>Assim, com base nessas características do agente e do ambiente, podemos</p><p>dividir os agentes conforme o comportamento e suas características, e como</p><p>o agente interage com o ambiente. Uma representação genérica de um agente</p><p>pode ser visto na figura a seguir ,na qual os sensores captam as informações</p><p>do ambiente, essas informações são processadas e a ação a ser efetuada é</p><p>repassada para os atuadores, que agem sobre o ambiente (LUGER, 2013). O</p><p>modo como o agente age que divide os agentes em tipos.</p><p>31</p><p>Agente Sensores</p><p>Atuadores</p><p>A</p><p>m</p><p>bi</p><p>en</p><p>te</p><p>Descrição da Imagem: A Figura 4 apresenta um retângulo no lado esquerdo com a inscrição “agente”</p><p>em seu interior, no qual, dentro do retângulo, existe uma representação para os sensores, que direciona</p><p>uma seta para uma representação de um ponto de interrogação, que por sua vez direciona uma seta</p><p>para uma representação dos atuadores. Os atuadores direcionam uma seta para um outro retângulo</p><p>à direita, que representa o ambiente, este, aponta uma seta para os sensores presentes no agente</p><p>novamente, formando um ciclo entre ambiente, sensores, atuadores e ambiente.</p><p>Figura 4 - Representação de um agente e o ambiente no qual está inserido.</p><p>Fonte: Russell; Norvig, 2013 p. 32</p><p>Caro estudante, agora vamos conversar sobre o conceito</p><p>de agente inteligentes como a Alexa, e saber um pouco</p><p>mais sobre as suas funções básicas, o que ela pode nos</p><p>ajudar, e como explorar ao máximo as suas habilidades.</p><p>Um Agente Reativo Simples realiza suas ações com base no que percebe do</p><p>ambiente, e isso é feito por regras chamadas de condição-ação. Estas regras de</p><p>aprendizado indicam ações que se devem fazer quando uma condição é satisfei-</p><p>ta, tal como dispositivos mais novos, como a Alexa, fazem. Ao utilizar lâmpadas</p><p>inteligentes, pode-se programar um regra condição-ação que faça com que as</p><p>18:00 horas a luz se acenda, ou seja, a condição a ser satisfeita é o horário, e a ação</p><p>é acender as luzes (RUSSEL; NORVIG, 2013).</p><p>UNICESUMAR</p><p>https://apigame.unicesumar.edu.br/qrcode/11013</p><p>UNIDADE 1</p><p>32</p><p>Uma representação de um Agente Reativo Simples pode ser vista na figura a se-</p><p>guir. O agente percebe como o mundo está e consulta as regras de condição-ação</p><p>existentes para tomar uma decisão e agir sob o ambiente (DE MEDEIROS, 2018).</p><p>Agente Sensor</p><p>Atuador</p><p>A</p><p>m</p><p>bi</p><p>en</p><p>te</p><p>Como o mundo</p><p>está agora?</p><p>Que ação eu devo</p><p>realizar agora?</p><p>Regras</p><p>condição-ação</p><p>Figura 5 – Representação de um Agente Reativo Simples / Fonte: Russell, Norvig, 2013 página 44</p><p>Descrição da Imagem: A Figura 5 apresenta dois retângulos, sendo o do lado direito representa o</p><p>ambiente, e o do lado esquerdo representa o agente. Dentro do retângulo do agente, estão a represen-</p><p>tação dos sensores, que apontam uma seta para os dizeres “Como o mundo está agora?”, que apontam</p><p>uma seta para “Que ação eu devo realizar agora”. Este, por sua vez, recebe uma seta a partir de um</p><p>elemento chamado “Regras condição-ação”, e aponta uma seta para o Atuador. O Atuador, por sua vez,</p><p>aponta para o ambiente, que torna novamente a apontar uma seta para o sensor, formando um ciclo.</p><p>Esse tipo de agente é bem popular, no entanto, acaba se tornando limitado pelo</p><p>fato de não tratar condições que não estão armazenadas nele mesmo, ou seja, se</p><p>uma condição é satisfeita, mas não existe uma regra com esta condição, o agente</p><p>não irá agir. Em exemplos da Alexa ou Google Assistente, a ideia é que você deve</p><p>cadastrar todas as regras condição-ação diretamente no aplicativo para que sejam</p><p>executadas. Este tipo de agente funcionará somente se o ambiente é totalmente</p><p>observável, pois, se não conseguir garantir uma condição na regra, não executará</p><p>a ação (RUSSEL; NORVIG, 2013).</p><p>Um Agente Reativo Baseado em Modelo visa trabalhar com ambientes</p><p>parcialmente observáveis, e, para isso, ele utiliza de um modelo do mundo, que</p><p>mostra como o mundo evolui enquanto o agente não consegue perceber o am-</p><p>biente (DE MEDEIROS, 2018).</p><p>33</p><p>Para isso, o agente deve saber duas informações adicionais, como o mundo evolui</p><p>“quando não estou olhando”, e como a ação do agente afeta o mundo. A primeira</p><p>informação se deve ao fato do ambiente ser parcialmente observável, assim, o</p><p>agente precisa saber como o ambiente se comporta nos momentos em que ele</p><p>não consegue percebê-lo. A segunda característica é necessária, pois, ao realizar</p><p>uma</p><p>ação no ambiente, o agente pode mudá-lo, então precisa dessa informação.</p><p>O modo como um agente trata destas duas características pode ser re-</p><p>presentado de diversas formas, de acordo com sua própria complexidade</p><p>(RUSSEL; NORVIG, 2013).</p><p>Os autores ainda destacam que uma representação de um Agente Reativo</p><p>Baseado em Modelo pode ser vista na figura a seguir, na qual os sensores captam</p><p>as informações do ambiente, e também informações do estado interno do agente,</p><p>para entender como o ambiente está. A partir dessas informações, o agente deve</p><p>processar a informação, analisando o que ele pode fazer, e as regras condição-ação</p><p>existentes para escolher uma ação a ser realizada e repassá-la para os atuadores.</p><p>Sensor</p><p>Atuador</p><p>A</p><p>m</p><p>bi</p><p>en</p><p>te</p><p>Como o mundo</p><p>está agora?</p><p>Que ação eu devo</p><p>realizar agora?</p><p>Regras</p><p>condição-ação</p><p>O que minhas</p><p>ações fazem</p><p>Como o ambiente</p><p>evolui</p><p>Estado interno</p><p>Figura 6 - Representação de um Agente Reativo Baseado em Modelo</p><p>Fonte: Russell, Norvig, 2013 página 45</p><p>Descrição da Imagem: A Figura 6 apresenta um retângulo no lado esquerdo representando o agente, e</p><p>esta representação contém textos descritos como: “Estado Interno”, “Como o ambiente evolui”, “O que</p><p>minhas ações fazem”, e esses estando com setas direcionadas à representação “Como o mundo está</p><p>agora?; Além disso, há um outro texto indicando “Regras condição-ação” com uma seta direcionada à</p><p>“Que ação eu devo realizar agora?”. Além destes, uma representação de sensor e atuador está presente</p><p>no retângulo, sendo que o atuador aponta para outro retângulo à esquerda que representa o ambiente,</p><p>e este retângulo aponta para o sensor do retângulo à esquerda.</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>34</p><p>Um Agente Reativo Baseado em Modelo tem como limitação o fato de saber</p><p>como está o mundo, como o mundo evolui, e o que as ações fazem com o</p><p>mundo não é suficiente para tomar decisões, assim, o agente acaba novamente</p><p>limitado pelas regras condição-ação existentes.</p><p>Um Agente Baseado em Objetivos tem uma tarefa e um objetivo a ser rea-</p><p>lizado. A partir dessa informação, o agente sabe como o mundo evolui, o que as</p><p>ações do agente fazem com o mundo e traça ações visando alcançar um objetivo</p><p>(RUSSEL; NORVIG, 2013). A seleção dessas ações pode ser realizada de duas</p><p>formas – direta, quando uma única ação do agente atinge o objetivo, ou mais</p><p>complexa, quando são necessárias diversas ações para se atingir o objetivo.</p><p>Um exemplo relacionado à seleção das ações pode ser imaginado em uma</p><p>situação do jogo de xadrez, que envolve ações mais complexas. Por exemplo,</p><p>tomar a rainha do adversário enfraquece-o e me deixa mais próximo do meu</p><p>objetivo, que é vencer uma partida. Já um exemplo de seleção simples é o caso</p><p>de um primeiro lançamento em uma pista de boliche, não importam as ações</p><p>passadas, a seleção é nova a cada lançamento (RUSSEL; NORVIG, 2013).</p><p>Os Agentes Baseados em Objetivos tem os objetivos definidos, porém, para</p><p>alcançá-los, é preciso traçar traçadas metas e realizar um planejamento. Este pla-</p><p>nejamento envolve o uso de algoritmos de busca que facilitem e/ou deixem o</p><p>agente mais próximo de atingir o objetivo. Os algoritmos e conceitos relacionados</p><p>aos algoritmos de busca serão objeto de estudo da próxima unidade.</p><p>Com o planejamento e os algoritmos de busca, o agente pode antecipar resulta-</p><p>dos de suas ações, analisando as ações a serem tomadas, e os resultados das ações, e</p><p>tomando um caminho que melhore a chance de atingir o objetivo (LUGER, 2013).</p><p>A representação de um Agente Baseado em Objetivos pode ser vista na figura</p><p>a seguir, na qual os sensores captam informações do ambiente, alimentando um</p><p>estado interno de como está o mundo, e analisando como o mundo evolui, para</p><p>depois analisar como estará o mundo se o agente realizar determinada ação, e</p><p>entre as várias ações possíveis escolher uma ação para realizar, repassando a ação</p><p>para os atuadores que agirão no mundo do agente (DE MEDEIROS, 2013).</p><p>35</p><p>Este tipo de agente é mais flexível que um agente reativo simples, pois</p><p>somente uma mudança de objetivo é necessária para o agente realizar</p><p>outras tarefas, não sendo necessário a mudança das regras condição-ação.</p><p>SensorAgente</p><p>Atuador</p><p>A</p><p>m</p><p>bi</p><p>en</p><p>te</p><p>Como o mundo</p><p>está agora?</p><p>Que ação eu devo</p><p>realizar agora?</p><p>Como o mundo ficará</p><p>se eu fizer a ação X?</p><p>Objetivos</p><p>O que minhas</p><p>ações fazem</p><p>Como o ambiente</p><p>evolui</p><p>Estado interno</p><p>Descrição da Imagem: A Figura7 apresenta dois retângulos, um a esquerda com seu interior com o</p><p>texto “agente” e outro a direita denominado ambiente. Dentro do retângulo à esquerda estão caixas</p><p>com dizeres “Sensores”, “Como está o mundo agora?”, “Estado interno”, “Como o ambiente evolui”,</p><p>“Como o mundo ficará se eu fizer a ação x”, “O que minhas ações fazem”, “Que ação eu devo realizar</p><p>agora?”, “Objetivos”, e “Atuador” representando as funções do agente. Ainda no retângulo à esquerda,</p><p>há setas a partir de “estado interno” para “como está o mundo agora?”, de “como o ambiente evolui?”</p><p>para “como está o mundo agora?” e para “como o mundo ficará se eu fizer a ação x”, de “o que minhas</p><p>ações fazem” para “como o mundo está agora?” e para “como o mundo ficará se eu fizer a ação x”, de</p><p>objetivos para “que ação eu devo realizar agora?”, de sensor para “como o mundo está agora?”, de “como</p><p>o mundo está agora?” para “como o mundo ficará se eu fizer a ação x”, e de “como o mundo ficará se</p><p>eu fizer a ação x” para “que ação eu devo realizar agora?”. Enquanto que, no retângulo à direita, do</p><p>ambiente, uma seta sai do ambiente apontando para os sensores do agente, e uma seta sai do atuador</p><p>do agente apontando para o ambiente.</p><p>Figura 7 - Representação de um Agente Baseado em Objetivo</p><p>Fonte: Russell; Norvig, 2013 p. 46</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>36</p><p>Outra limitação deste tipo de agente é o fato</p><p>que ter um objetivo não garante o melhor fun-</p><p>cionamento do agente. Suponha o caso de um</p><p>agente que deseja sair de São Paulo e ir para o</p><p>Rio de Janeiro, uma solução que atinge o obje-</p><p>tivo é sair de São Paulo, ir para Belém, depois</p><p>Manaus, Porto Alegre e depois para o Rio de Ja-</p><p>neiro. Este tipo de agente atinge o objetivo, mas</p><p>a garantia do melhor comportamento para o</p><p>agente depende de como é feito o planejamento</p><p>das suas ações, que seriam melhores executadas</p><p>se o agente tomar a decisão de ir direto para o</p><p>Rio de Janeiro (LUGER, 2013).</p><p>O quarto tipo de agente é o Agente</p><p>Baseado na Utilidade, na qual a utilidade</p><p>representa o grau de utilidade de um estado</p><p>para o agente. A função utilidade é utilizada</p><p>como sendo uma função que mapeia um</p><p>estado para um número real, que indica o</p><p>grau de satisfação com o estado (RUSSEL;</p><p>NORVIG, 2013).</p><p>Tomando o exemplo de ir de São Paulo</p><p>para Rio de Janeiro citado acima, o agente po-</p><p>deria pensar que sair de São Paulo e ir para</p><p>Belém não é útil, pois Belém está mais longe</p><p>do seu objetivo do que São Paulo, desse modo,</p><p>o agente poderia tomar ações visando atingir</p><p>o objetivo de forma mais planejada.</p><p>O Agente Baseado em Utilidade pode</p><p>ser visto na figura a seguir, na qual, no mo-</p><p>mento da decisão de escolher qual caminho</p><p>tomar, a função utilidade é usada, fazendo</p><p>com que a escolha da direção seja a que tra-</p><p>ga mais utilidade para o agente.</p><p>37</p><p>Este tipo de agente pode facilitar sua própria execução em um ambiente desconhe-</p><p>cido, tal como enviar um robô para Marte para explorar o solo, e realizar outras</p><p>tarefas. O robô pode se deparar com um morro, e perceber que não é útil ele tentar</p><p>descer o morro, sendo mais viável tentar contornar, ficando assim mais próximo de</p><p>seu objetivo, e trazendo uma utilidade maior para o agente (LUGER, 2013).</p><p>Os agentes descritos acima têm informação sobre o mundo e sobre suas ações</p><p>inseridas pelo projetista do agente, sendo que o agente em si não aprende nenhu-</p><p>ma informação sozinho. Para um agente aprender determinado comportamento,</p><p>as características diferem dos quatro agentes vistos acima, sendo que um agente</p><p>Sensor</p><p>Agente Atuador</p><p>A</p><p>m</p><p>bi</p><p>en</p><p>te</p><p>Como o mundo</p><p>está agora?</p><p>Quão feliz serei se ir</p><p>para o tal estado?</p><p>Que ação eu devo</p><p>realizar agora?</p><p>Como o mundo ficará</p><p>se eu fizer a ação?</p><p>Utilidade</p><p>O que minhas</p><p>ações fazem</p><p>Como o ambiente</p><p>evolui</p><p>Estado interno</p><p>Descrição da Imagem: A Figura 8 apresenta dois retângulos, um à esquerda representando o agente,</p><p>e um à direita representando o ambiente. O retângulo à esquerda do agente é composto de caixas</p><p>que representam as funções do agente, com os dizeres “Sensor”, “Estado interno”, “Como o mundo</p><p>está agora”, “Como o ambiente evolui”, “Como o mundo ficará se eu fizer a ação”, “O que minhas ações</p><p>fazem”, “Quão feliz serei se ir para tal estado”, “Utilidade”, “Que ação eu devo fazer agora”, e “Atuador”.</p><p>Há setas partido de “estado interno” para “como o mundo está agora”, de “como o ambiente evolui” para</p><p>“como o mundo está agora” e para “como o mundo ficará se eu fizer a ação”, de “o que minhas ações</p><p>fazem” para “como o mundo está agora” e para “como o mundo ficará se eu fizer a ação”, de “utilidade”</p><p>para “quão feliz serei se ir para tal estado”, de “sensor” para “como o mundo está agora”, de “como o</p><p>mundo está agora” para “como o mundo ficará se fizer a ação”, de “como o mundo ficará se fizer a ação”</p><p>para “quão feliz serei se ir para tal estado”, de “quão feliz serei se ir para tal estado” para “que ação eu</p><p>devo fazer agora”, e de “que ação eu devo fazer agora” para “atuador”. Neste retângulo ainda temos</p><p>uma seta apontando de “atuador” para “ambiente” e uma seta apontando de “ambiente” para “sensor”.</p><p>Figura 8 - Representação do Agente Baseado em Utilidade</p><p>Fonte: Russell, Norvig, 2013 página 48</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>38</p><p>com aprendizagem pode atuar em ambientes desconhecidos, melhorando a sua</p><p>performance e eficácia, incorporando novas ações conforme o tempo passa.</p><p>Estes agentes com aprendizagem são formados por quatro componentes</p><p>básicos: o elemento de aprendizado, o crítico, o elemento de desempenho e</p><p>um gerador de problemas (RUSSEL; NORVIG, 2013). Segundo os autores, o</p><p>elemento de desempenho é responsável por selecionar as ações do agente, rece-</p><p>bendo as percepções e decidindo sobre quais ações executar. Já o crítico, envia</p><p>informações para o elemento de aprendizado sobre o comportamento do agen-</p><p>te, baseando-se em um padrão predeterminado de desempenho. Esse elemento</p><p>se faz necessário uma vez que somente as percepções e ações do agente não</p><p>apresentam nenhum indicativo de sucesso, no entanto, o agente não o modifica.</p><p>O elemento de aprendizado, por sua vez, recebe informações do crítico so-</p><p>bre o comportamento do agente, e repassa essas informações para o elemento</p><p>de desempenho sobre como melhorar o comportamento do agente. Por fim, o</p><p>gerador de problemas é responsável por tentar propor ações que gerem novas</p><p>experiências e expectativas, tal como uma ação que, a um curto prazo, não parece</p><p>ótima, porém, pode ser ótima a longo prazo.</p><p>A forma como estes elementos se comunicam em um agente com aprendi-</p><p>zagem pode ser vista na figura a seguir.</p><p>39</p><p>Estes conceitos de agentes estão inseridos no dia a dia do profissional que tra-</p><p>balha com inteligência artificial. Um exemplo que pode ser visto na prática é a</p><p>implementação de “skills” para a Alexa, os aplicativos feitos para serem usados</p><p>junto com a assistente virtual.</p><p>Um dos modos de trabalhar com a Alexa é desenvolver skills estáticas, que</p><p>são respostas específicas para perguntas específicas, tal como uma skill que pode</p><p>informar sobre dados de filmes e séries. Você poderia perguntar para a Alexa,</p><p>qual episódio de sua série favorita aparece o ator X. A Alexa precisaria procurar</p><p>os episódios na base de dados, e quais atores participam de quais episódios.</p><p>Este modo de trabalhar com a Alexa facilita diversas atividades, pois podemos</p><p>utilizá-la para consultar informações sobre quaisquer dados.</p><p>No entanto, quando uma informação não está armazenada na base de</p><p>dados, a Alexa não conseguiria responder à pergunta. Por exemplo, se você</p><p>Sensor</p><p>Agente Atuador</p><p>A</p><p>m</p><p>bi</p><p>en</p><p>te</p><p>Elemento de</p><p>desempenho</p><p>Gerador de</p><p>problemas</p><p>Elemento de</p><p>aprendizado</p><p>Crítico</p><p>Descrição da Imagem: A Figura 9 apresenta dois retângulos, sendo que o do lado direito representa o</p><p>agente, e apresenta as inscrições de “Sensor”, “Crítico”, “Elemento de aprendizado”, “Elemento de Desem-</p><p>penho”, “Gerador de problemas” e “Atuador”. Há uma seta apontando de “sensor” para “crítico” e para</p><p>“elemento de desempenho”, uma seta de “crítico” para “elemento de aprendizado”, uma de “elemento</p><p>de aprendizado” para “gerador de problemas” e para “elemento de desempenho”, uma de “gerador de</p><p>problemas” para “elemento de desempenho”, uma de “elemento de desempenho” para “elemento de</p><p>aprendizado” e para “atuador”. Neste retângulo há ainda uma seta apontando de “atuador” para o retân-</p><p>gulo à esquerda, que contém os dizeres “ambiente”. E uma seta aponta do “ambiente” para o “sensor”.</p><p>Figura 9 - Representação de um Agente com Aprendizagem</p><p>Fonte: Russell, Norvig, 2013 página 49</p><p>UNICESUMAR</p><p>UNIDADE 1</p><p>40</p><p>não cadastrou informação sobre a série How I Met Your Mother, nenhuma</p><p>resposta sobre a série será dada.</p><p>Isto é tal como um banco de dados, no qual a Alexa executa uma consulta e</p><p>responde à pergunta caso a informação seja encontrada.</p><p>O segundo modo de utilizar as skills da Alexa é o modo dinâmico, no qual</p><p>você faz uma pergunta para a Alexa, e ela consulta a Internet para respondê-la,</p><p>tal como quando é perguntado sobre a previsão do tempo. A resposta à pergunta</p><p>da previsão do tempo muda conforme o tempo na sua cidade muda, enquanto</p><p>que a resposta para uma pergunta sobre um ator de um filme é sempre a mesma.</p><p>Nesse segundo modo de implementar a skill para a Alexa, o seu programa</p><p>precisa trabalhar com as diversas formas de perguntar algo, por exemplo, a per-</p><p>gunta sobre a previsão do tempo pode ser feita de várias formas: vai chover hoje?</p><p>Como está o tempo hoje? Qual a previsão do tempo para hoje? Preciso de guar-</p><p>da-chuva hoje? Qual a temperatura esperada para hoje? Estas diversas formas de</p><p>fazer uma pergunta devem ser possibilitadas, utilizando-se do processamento de</p><p>linguagens naturais para fazer com que a Alexa entenda que é uma pergunta sobre</p><p>o tempo, e que o usuário quer saber sobre o tempo na sua cidade, diferentemente</p><p>de perguntar se vai chover em São Paulo hoje.</p><p>No tratamento das perguntas pela Alexa, pode ser levado em conta o funcio-</p><p>namento dos agentes, que, ao verificar uma percepção em um sensor, faz uma ação</p><p>com os atuadores. Do mesmo modo a Alexa, ao detectar uma pergunta sobre um</p><p>41</p><p>filme, série ou sobre o tempo, precisa gerar uma resposta para o usuário, sendo esta</p><p>resposta buscada em uma base de dados, ou a partir de informações na Internet.</p><p>Se analisarmos maneiras diferentes de agente, podemos pensar no funcionamento</p><p>prático da mesma forma, por exemplo ,um agente baseado em objetivo. Se eu indico</p><p>para Alexa que quero economizar energia desligando luzes desnecessárias durante o dia,</p><p>ela pode desligar uma luz que ficou acesa no período da manhã de forma automática.</p><p>Para realizar tal tarefa, ela precisa saber qual é o seu objetivo, economizar</p><p>luz durante o dia, saber que para economizar é preciso que as luzes estejam</p><p>apagadas e perceber uma luz acesa durante o dia. Assim, para atingir o obje-</p><p>tivo dela, ela precisa agir e desligar a luz acesa.</p><p>A implementação destas tarefas em dispositivos novos como Alexa, Google</p><p>Assistente, e outros, é similar à ideia apresentada nesta Unidade, como a descrição</p><p>de fatos históricos da Inteligência Artificial.</p><p>O jogo proposto por Arthur Samuel para jogar damas contra o computador,</p><p>ensinou o computador que comer uma peça do usuário o deixa mais próximo</p><p>do seu objetivo, que é a vitória, assim, ao perceber uma possibilidade como essa,</p><p>o computador pode agir de acordo para atingir o seu objetivo.</p><p>No seu dia a dia, você poderá esbarrar com situações tal como a de Arthur</p><p>Samuel, ou de desenvolver algo para Alexa, ou outra solução que envolva a</p><p>inteligência artificial. Conhecer os meios e formas de tratar a IA é essencial</p>