Logo Passei Direto
Buscar
Material
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

IN
TELIG
ÊN
C
IA
 A
RTIFIC
IA
L
RA
ZER A
N
TH
O
M
 N
IZER RO
JA
S M
O
N
TA
Ñ
O
Código Logístico
59395
Fundação Biblioteca Nacional
ISBN 978-85-387-6635-3
9 7 8 8 5 3 8 7 6 6 3 5 3
Inteligência Artificial
Razer Anthom Nizer Rojas Montaño
IESDE BRASIL
2021
© 2021 – IESDE BRASIL S/A. 
É proibida a reprodução, mesmo parcial, por qualquer processo, sem autorização por escrito do autor e do detentor dos 
direitos autorais.
Projeto de capa: IESDE BRASIL S/A. 
Imagem da capa:phipatbig/ Carlos Amarillo/ Jemastock/ Jackie Niam/Shutterstock
Todos os direitos reservados.
IESDE BRASIL S/A. 
Al. Dr. Carlos de Carvalho, 1.482. CEP: 80730-200 
Batel – Curitiba – PR 
0800 708 88 88 – www.iesde.com.br
CIP-BRASIL. CATALOGAÇÃO NA PUBLICAÇÃO 
SINDICATO NACIONAL DOS EDITORES DE LIVROS, RJ
M765i
Montaño, Razer Anthom Nizer Rojas
Inteligência artificial / Razer Anthom Nizer Rojas Montaño. - 1. ed. - 
Curitiba [PR] : IESDE, 2021. 
146 p. : il.
Inclui bibliografia
ISBN 978-85-387-6635-3
1. Inteligência artificial. I. Título.
21-68548 CDD: 006.3
CDU: 004.8
Razer Anthom Nizer Rojas 
Montaño
Doutor em Ciência da Computação pela Universidade 
Federal do Paraná (UFPR) na área de inteligência 
computacional. Mestre e bacharel em Informática pela 
mesma instituição. Autor de artigos científicos nas áreas 
de inteligência artificial e engenharia de software. Tem 
experiência em desenvolvimento de software, análise e 
projeto de sistemas, inteligência artificial e aprendizado 
de máquina. Atua na área de tecnologia da informação 
há mais de 25 anos e como docente há mais de 20 anos. 
Atualmente, é professor adjunto na UFPR/SEPT, atuando 
nos cursos de Tecnologia em Análise e Desenvolvimento 
de Sistemas, Especialização em Desenvolvimento Ágil de 
Software e Especialização em Inteligência Artificial Aplicada.
Agora é possível acessar os vídeos do livro por 
meio de QR codes (códigos de barras) presentes 
no início de cada seção de capítulo.
Acesse os vídeos automaticamente, direcionando 
a câmera fotográ�ca de seu smartphone ou tablet 
para o QR code.
Em alguns dispositivos é necessário ter instalado 
um leitor de QR code, que pode ser adquirido 
gratuitamente em lojas de aplicativos.
Vídeos
em QR code!
SUMÁRIO
1 Fundamentos de inteligência artificial 9
1.1 O que é inteligência artificial 9
1.2 História da inteligência artificial 14
1.3 Aplicações da inteligência artificial 21
1.4 Questões éticas referentes à inteligência artificial 24
2 Resolução de problemas 33
2.1 Definição de problemas 33
2.2 Busca por soluções 38
2.3 Busca cega 41
2.4 Busca heurística 48
2.5 Busca competitiva: jogos 56
3 Raciocínio lógico e conhecimento 66
3.1 Agentes lógicos 66
3.2 Lógica 71
3.3 Raciocínio baseado em lógica 75
3.4 Planejamento 84
3.5 Representação do conhecimento 89
4 Aprendizado de máquina 95
4.1 Introdução ao aprendizado de máquina 95
4.2 Aprendizado supervisionado 99
4.3 Aprendizado não supervisionado 112
5 Computação evolucionária 122
5.1 Algoritmos genéticos 122
5.2 Métodos de seleção 131
5.3 Operadores genéticos 135
Gabarito 141
APRESENTAÇÃOVídeo
Atualmente, a inteligência artificial (IA) tem um papel importante na 
vida de todos, pois está presente em tudo que nos cerca. Em nossos 
smartphones, assistentes pessoais usam processamento de linguagem 
natural, reconhecimento de padrões e outras técnicas para responder às 
nossas demandas. Na área automobilística, desde sistemas multimídias 
inteligentes até veículos autônomos já são uma realidade. Na área médica, 
é possível contar com a ajuda de aplicações que fazem diagnósticos, 
analisando resultados de exames.
Basicamente, a IA tem como objetivo geral a automação do 
comportamento inteligente, com fundamentos sólidos na matemática e na 
ciência da computação. Aprofundando a discussão, a definição da IA pode 
considerar até aspectos de racionalidade e de simulação do comportamento 
humano. Seu estudo é muito amplo e pode ser aplicado em praticamente 
qualquer área do conhecimento, desde engenharias, passando pelo direito, 
até a medicina.
Nesta obra, buscou-se uma abordagem dos aspectos básicos da IA, 
apresentando subáreas e conceitos que são o alicerce de toda aplicação 
avançada da área. Os capítulos estão organizados de modo a apresentar os 
principais conceitos da IA gradualmente. 
Inicia-se com uma introdução conceitual e a história da IA, além de 
uma discussão ética sobre seu impactos. Então, são apresentados os 
conceitos de problemas e soluções, bem como alguns dos aspectos mais 
básicos da IA: os algoritmos de busca. A formalização do raciocínio lógico e 
a representação do conhecimento são apresentadas na sequência. Depois, 
um dos assuntos que mais evoluiu nos últimos anos também é abordado: o 
aprendizado de máquina. Por fim, o livro termina explicando a computação 
evolucionária, mais especificamente os algoritmos genéticos.
Resumindo, esta obra traz informações básicas sobre os principais 
aspectos da inteligência artificial, de maneira progressiva e clara, e se 
destina a estudantes tanto de cursos de informática como de outras áreas.
Bons estudos!
Fundamentos de inteligência artificial 9
1
Fundamentos de 
inteligência artificial
Quando se fala de inteligência artificial (IA), logo vêm à mente imagens de 
ficção científica, como as máquinas dominando o mundo, os robôs humanoides 
e a raça humana sendo substituída. Mas IA não tem a ver somente com robôs, 
e sim com um conjunto de tecnologias, não tão recentes como se imagina, que 
tem como objetivo a construção de máquinas ou softwares com comportamen-
to inteligente.
Desde jogar xadrez até planejar a rota de um veículo espacial, muitas tarefas 
simples para os humanos são extremamente complexas para as máquinas. Nos 
dias de hoje algumas dessas atividades já estão bem resolvidas, como é o caso 
do jogo de xadrez ou damas, ou até mesmo de treinar e reconhecer objetos. 
Todos os avanços vieram do desenvolvimento da ciência, descrito neste livro, e 
dos dispositivos de hardware.
Ao longo desta obra serão apresentados os mais diversos assuntos relacio-
nados à IA, e será dado um panorama do que é essa área do conhecimento. 
Com todo esse repertório teórico, será possível observar que ainda se está 
longe da ficção, mas que a tecnologia está avançando a passos largos.
Este capítulo está organizado da seguinte forma: na Seção 1.1 será apresen-
tada uma análise do conceito de inteligência artificial na literatura; na Seção 1.2 
serão vistos os marcos históricos da IA; na Seção 1.3 serão mostradas aplica-
ções práticas e teóricas da inteligência artificial; e na Seção 1.4 serão discutidos 
aspectos éticos referentes à IA.
Sh
ao
19
/W
ik
im
ed
ia
 C
om
m
on
s
1.1 O que é inteligência artificial 
Vídeo A inteligência artificial nunca teve tanto destaque na mídia como nos 
últimos anos. Essa visibilidade começou com filmes de ficção científi-
ca, que mostravam robôs humanoides inteligentes ou computadores 
que tomavam decisões complexas sozinhos e muitas vezes melhor 
que um humano. Essa exposição e o grande avanço da área na atua-
lidade dão a entender que a IA é algo mais simples do que realmente 
é. Sendo assim, vale uma análise mais aprofundada do assunto.
10 Inteligência Artificial
Segundo Luger (2013), a inteligência artificial é um ramo da ciência da computação 
responsável pela automação do comportamento inteligente.
Essa definição traz afirmações e questionamentos interessantes, como o fato 
de depositar a IA em um ramo da ciência da computação e de abrir uma discussão 
sobre o que é um comportamento inteligente.
Russel e Norvig (2013) apresentam um amplo debate sobre a definição de in-
teligência artificial com base em duas dimensões: processos de pensamento e ra-
ciocínio e processos de comportamento. São também ramificadas em outras duas 
abordagens: fidelidade em relação ao comportamento humano e racionalidade. 
Elas podem ser dispostas como mostraIn: 19º INTERNATIONAL JOINT 
CONFERENCE ON ARTIFICIAL INTELLIGENCE. Anais [...] Edinburgh, jul./ago. 2005. Disponível em: https://
ti.arc.nasa.gov/m/pub-archive/944h/0944%20(Bresina).pdf. Acesso em: 2 dez. 2020.
BYFORD, S. AlphaGo beats Lee Se-dol again to take Google DeepMind Challenge series. The Verge, 12 mar. 
2016. Disponível em: https://www.theverge.com/2016/3/12/11210650/alphago-deepmind-go-match-3-
result. Acesso em: 2 dez. 2020.
CADWALLADR, C.; GRAHAM-HARRISON, E. Revealed: 50 million Facebook profiles harvested for Cambridge 
Analytica in major data breach. The Guardian, 17 mar. 2018. Disponível em: https://www.theguardian.
com/news/2018/mar/17/cambridge-analytica-facebook-influence-us-election. Acesso em: 2 dez. 2020.
COOK, S. The complexity of theorem-proving procedures. In: 3º ANNUAL ACM SYMPOSIUM ON THEORY 
OF COMPUTING . Anais [...] Nova Iorque, maio. 1971.
COSTA, N. et al. Lógica paraconsistente aplicada. São Paulo: Atlas, 1999.
DADA, E. et al. Machine learning for email spam filtering: review, approaches and open research 
problems. Heliyon, v. 5, n. 6, jun. 2019. Disponível em: https://www.sciencedirect.com/science/article/pii/
S2405844018353404. Acesso em: 2 dez. 2020.
ESA. Robots in space. ESA – The European Space Agency, 14 jan. 2020. Disponível em: https://www.esa.int/
Enabling_Support/Preparing_for_the_Future/Discovery_and_Preparation/Robots_in_space2. Acesso em: 2 
dez. 2020.
EVANS, T. A heuristic program to solve geometric-analogy problems. In: AFIPS ‘64. Anais [...] Nova 
Iorque, abr. 1964.
FRIEDBERG, R. A learning machine: part I. IBM Journal of Research & Development, v. 2, n. 1, p. 2-13, jan. 1958.
FRIEDBERG, R.; DUNHAM, B.; NORTH, J. A learning machine: part II. IBM Journal of Research and Development, 
v. 3, n. 3, p. 282-287, jul. 1959.
FRUTUOSO, R. et al. Uso de algoritmos de reconhecimento de padrões aplicados ao problema de 
câncer de pele do tipo melanoma. In: 11º CONGRESSO BRASILEIRO DE INTELIGÊNCIA COMPUTACIONAL. 
Anais [...] Porto de Galinhas, 2013. Disponível em: http://abricom.org.br/wp-content/uploads/2016/03/
bricsccicbic2013_submission_321.pdf. Acesso em: 2 dez. 2020.
GARDNER, H. A nova ciência da mente. São Paulo: Unesp, 1996.
GOODMAN, D.; KEENE, R. Man versus machine: Kasparov versus Deep Blue. Manassas: H3 Publications, 1997.
HARNAD, S. Other bodies, other minds: a machine incarnation of an old philosophical problem. Minds and 
Machines, v. 1, p. 43-54, 1991.
HARRISON, J. Floating-point verification using theorem proving. Formal Methods for Hardware Verification, 
Berlin, v. 3.965, p. 211-242, 2006.
HART, P.; DUDA, R. PROSPECTOR: a computer-based consultation system for mineral exploration. 
International Association for Mathematical Geology, v. 10, n. 5-6, 1977.
HAYS, J.; EFROS, A. Scene completion using millions of photographs. Computer Graphics Proceedings, São 
Diego, v. 26, n. 3, 2007.
HOPFIELD, J. Neural networks and physical systems with emergent collective computational abilities. 
PNAS – Proceedings of the National Academy of Sciences of the United States of America, v. 79, n. 8, 
p. 2.554-2.558, abr. 1982. Disponível em: https://www.pnas.org/content/pnas/79/8/2554.full.pdf. Acesso 
em: 2 dez. 2020.
IBM. 704 Data Processing System. IBM, 2020a. Disponível em: https://www.ibm.com/ibm/history/exhibits/
mainframe/mainframe_PP704.html. Acesso em: 3 dez. 2020.
IBM. The IBM PC’s debut: at the beginning. IBM, 2020b. Disponível em: https://www.ibm.com/ibm/history/
Fundamentos de inteligência artificial 31
exhibits/pc25/pc25_intro.html. Acesso em: 2 dez. 2020.
IMAGENET. ImageNet, 2016. Página Inicial. Disponível em: http://image-net.org/. Acesso em: 2 dez. 2020.
IMAGENET. Large scale visual recognition challenge 2012 (ILSVRC2012). ImageNet, 2012. Disponível em: 
http://www.image-net.org/challenges/LSVRC/2012/results.html. Acesso em: 2 dez. 2020.
KRIZHEVSKY, A.; SUTSKEVER, I.; HINTON, G. ImageNet classification with deep convolutional neural 
networks. Advances in Neural Information Processing Systems 25 (NIPS 2012), 2012. Disponível em: https://
papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf. Acesso 
em: 2 dez. 2020.
KURZWEIL, R. The age of intelligent machines. Cambridge: MIT Press, 1990.
LECUN, Y. et al. Gradient-based learning applied to document recognition. Proceedings of the IEEE, v. 86, 
n. 11, p. 2.278-2.324, nov. 1998.
LIGHTHILL, J. Artificial intelligence: a general survey. Science Research Council, 1973. Disponível em: http://
www.chilton-computing.org.uk/inf/literature/reports/lighthill_report/p001.htm. Acesso em: 2 dez. 2020.
LIMA, I.; SANTOS, F.; PINHEIRO, C. Inteligência artificial. Rio de Janeiro: Elsevier, 2014.
LUGER, G. Inteligência artificial. 6. ed. São Paulo: Pearson Education do Brasil, 2013.
MCCARTHY, J. Programs with common sense. Symposium on Mechanization of Thought Processes, Teddington, 
1958. Disponível em: http://jmc.stanford.edu/articles/mcc59/mcc59.pdf. Acesso em: 2 dez. 2020.
MCCULLOCH, W.; PITTS, W. A logical calculus of the ideas immanent in nervous activity. The bulletin of 
mathematical biophysics, v. 5, p. 115-133, 1943.
MIT. MIT Computer Science and Artificial Intelligence Laboratory, 2020. Página inicial. Disponível em: 
https://www.csail.mit.edu. Acesso em: 2 dez. 2020.
MONTEIRO, R. et al. Contributions to the study of fake news in portuguese: new corpus and automatic 
detection results. In: 13º INTERNATIONAL CONFERENCE ON THE COMPUTATIONAL PROCESSING 
OF PORTUGUESE. Anais [...] Canela, jan. 2018. Disponível em: https://sites.icmc.usp.br/taspardo/
PROPOR2018-MonteiroEtAl.pdf. Acesso em: 2 dez. 2020.
MORIMOTO, C. E. Zettabyte (ZB). Hardware.com.br, 25 jun. 2005. Disponível em: https://www.hardware.
com.br/termos/zettabyte-zb. Acesso em: 2 dez. 2020.
NASA. Remote Agent. Nasa, 2020. Disponível em: https://ti.arc.nasa.gov/tech/asr/groups/planning-and-
scheduling/remote-agent/. Acesso em: 2 dez. 2020.
NEWELL, A.; SIMON, H. GPS, a program that simulates human thought. In: BILLING, H. (ed.). Lernende 
automaten. Munchen: R. Oldenbourg, 1961.
NGUYEN, T. et al. Deep learning for deepfakes creation and detection: a survey. Computer Vision and Pattern 
Recognition, v. 2, 28 jul. 2020. Disponível em: https://arxiv.org/pdf/1909.11573.pdf. Acesso em: 2 dez. 2020.
NILSSON, J. Artificial intelligence: a new syntesis. Burlington: Morgan Kaufmann, 1998.
NOGAROLI, R. Implicações ético-jurídicas da medicina robótica e inteligência artificial nas cirurgias e cuidados 
da saúde. In: 9º CONGRESSO BRASILEIRO DE DIREITO MÉDICO. Anais [...] Brasília: CFM, 4-5 set. 2019.
NOGUEIRA, L. Drone de combate vai lutar contra avião tripulado nos EUA. Olhar Digital, 5 jun. 2020. 
Disponível em: https://olhardigital.com.br/noticia/drone-de-combate-vai-lutar-contra-aviao-tripulado-
nos-eua/101781. Acesso em: 2 dez. 2020.
PASTOR, M. Data storage is the key to autonomous vehicles’ future. IoT Now, 12 fev. 2019. Disponível 
em: https://iotnowtransport.com/2019/02/12/71015-data-storage-key-autonomous-vehicles-future/. 
Acesso em: 2 dez. 2020.
PERUZZO, D. et al. Sistema especialista para auxiliar no diagnóstico de depressão. Saúde.com, v. 15, n. 2. 2019.
RADFORD, A. et al. Better language models and their implications. OpenAI, 14 fev. 2019. Disponível em: 
https://openai.com/blog/better-language-models/. Acesso em: 2 dez. 2020.
RAJANI, N. et al. Explain yourself! leveraging language models for commonsense reasoning. Proceedings of 
the Association for Computational Linguistics (ACL), Florença, v. 1, 6 jun. 2019. Disponível em: https://arxiv.
org/pdf/1906.02361.pdf. Acesso em: 2 dez. 2020.
REZENDE, S. Sistemas inteligentes: fundamentos e aplicações. Barueri: Manole, 2003.
RIDGWAY, A. Deepfakes: the fight against this dangerous use of AI. Science Focus, 12 nov. 2019. Disponível 
em: https://www.sciencefocus.com/future-technology/the-fight-against-deepfake/. Acesso em: 2 dez. 2020.
ROBINSON, J. A machine-oriented logic based on the resolution principle. Journalof the ACM, v. 12, n. 1, 
p. 23-41, jan. 1965.
ROSENBLATT, F. Principles of neurodynamics. Nova Iorque: Spartan, 1962.
ROSENBLATT, F. The Perceptron: a probabilistic model for information storage and organization in the 
brain. Psychological Review, v. 65, n. 6, p. 386-408, 1958.
RUMELHART, D.; HINTON, G.; WILLIAMS, R. Learning representations by back-propagating errors. Nature, 
v. 323, p. 533-536, 1986.
RUSSELL, S.; NORVIG, P. Inteligência artificial. 3. ed. Rio de Janeiro: Elsevier, 2013.
SAE INTERNATIONAL. Taxonomy and definitions for terms related to driving automation systems for 
32 Inteligência Artificial
on-road motor Vehicles. SAE – Society of Automotive Engineers, 15 jun. 2018. Disponível em: https://www.
sae.org/standards/content/j3016_201806/. Acesso em: 2 dez. 2020.
SALVADOR, S. O mundo esteve à beira da guerra nuclear e foi salvo por Petrov. Diário de Notícias, 26 set. 
2018. Disponível em: https://www.dn.pt/mundo/o-mundo-esteve-a-beira-da-guerra-nuclear-e-foi-salvo-
por-petrov-9906827.html. Acesso em: 2 dez. 2020.
SAMUEL, A. Some studies in machine learning using the game of checkers. IBM Journal of Research and 
Development, v. 3, n. 3, p. 210-229, 1959.
SCHAEFFER, J. et al. Checkers is solved. Sciencexpress, v. 317, p. 1.518-1.522, jul. 2007. 
SEAGATE. Data age 2025. Seagate, 2020. Disponível em: https://www.seagate.com/br/pt/our-story/data-
age-2025/. Acesso em: 2 dez. 2020.
SHORTLIFFE, E. H. Computer-based medical consultations: MYCIN. Amsterdã: Elsevier, 1976.
SPRENGER, P. Sun on privacy: ‘get over it’. Wired, 26 jan. 1999. Disponível em: https://www.wired.
com/1999/01/sun-on-privacy-get-over-it/. Acesso em: 2 dez. 2020.
THE MOONSHOT FACTORY. Brain – Bringing the benefits of AI and machine learning to everyone. X – 
The Moonshot Factory, 2019. Disponível em: https://x.company/projects/brain/. Acesso em: 2 dez. 2020.
TOLOSANA, R. et al. DeepFakes and beyond: a survey of face manipulation and fake detection. Information 
Fusion, v. 64, p. 131-148, 2020.
TRATOR autônomo da Case IH é a grande atração da Agrishow. Máquinas e Inovações Agrícolas, 4 maio 
2017. Disponível em: https://portalmaquinasagricolas.com.br/case-ih-apresenta-seu-trator-autonomo-
sem-cabine-e-sem-operador/. Acesso em: 6 out. 2020.
TRINDADE, R. Como acidente fatal mudou o programa de carros autônomos da Uber. Tilt, 16 nov. 2019. 
Disponível em: https://www.uol.com.br/tilt/noticias/redacao/2019/11/16/como-acidente-fatal-mudou-o-
programa-de-carros-autonomos-da-uber.htm. Acesso em: 6 out. 2020.
TURING, A. Computing machinery and intelligence. Mind, v. 59, n. 236, p. 433-460, out. 1950. Disponível 
em: https://academic.oup.com/mind/article/LIX/236/433/986238. Acesso em: 6 out. 2020.
UNIÃO EUROPEIA. Projeto de Relatório que contém recomendações à Comissão sobre disposições 
de Direito Civil sobre Robótica (2015/2013(INL)). Relatora Mady Delvaux. Publicado em 31 maio 2016. 
Disponível em: https://www.europarl.europa.eu/doceo/document/JURI-PR-582443_PT.pdf?redirect. 
Acesso em: 30 nov. 2020.
UNIÃO EUROPEIA. Resolução do Parlamento Europeu, de 16 de fevereiro de 2017, com recomendações 
à Comissão de Direito Civil sobre Robótica (2015/2103(INL)). Publicado em 16 fev. 2017. Disponível em: 
https://www.europarl.europa.eu/doceo/document/TA-8-2017-0051_EN.html?redirect#BKMD-12. Acesso 
em: 30 nov. 2020.
US GOVERNEMENT INFORMATION. Public Law 91-121, Statute 83, 1969. Disponível em: https://www.
govinfo.gov/content/pkg/STATUTE-83/pdf/STATUTE-83-Pg204.pdf. Acesso em: 30 nov. 2020.
VELASCO, C.; DOMINGOS, R. O que é um robô na web e como ele pode influenciar o debate nas redes? 
Especialistas explicam. G1 Economia, 12 dez. 2017. Disponível em: https://g1.globo.com/economia/
tecnologia/noticia/o-que-e-um-robo-na-web-e-como-ele-pode-influenciar-o-debate-nas-redes-
especialistas-explicam.ghtml. Acesso em: 6 out. 2020.
VINCENT, J. OpenAI has published the text-generating AI it said was too dangerous to share. The Verge, 
7 nov. 2019. Disponível em: https://www.theverge.com/2019/11/7/20953040/openai-text-generation-ai-
gpt-2-full-model-release-1-5b-parameters. Acesso em: 6 out. 2020.
VINCENT, J. Twitter taught Microsoft’s AI chatbot to be a racist asshole in less than a day. The Verge, 24 
mar. 2016. Disponível em: https://www.theverge.com/2016/3/24/11297050/tay-microsoft-chatbot-racist. 
Acesso em: 6 out. 2020.
VINGE, V. The coming technological singularity: how to survive in the post-human era. NASA Lewis Research 
Center, Vision 21: Interdisciplinary Science and Engineering in the Era of Cyberspace, 1993.
VINHOLES, T. Conheça o Atobá, o primeiro drone militar fabricado no Brasil. Airway, 31 ago. 2020. 
Disponível em: https://www.airway.com.br/empresa-do-rio-de-janeiro-lanca-o-primeiro-drone-militar-
fabricado-no-brasil/. Acesso em: 6 out. 2020.
WAYMO. Waymo, 2020. Página Inicial. Disponível em: https://waymo.com/. Acesso em: 6 out. 2020.
WEIZENBAUM, J. ELIZA – A computer program for the study of natural language communication between 
man and machine. Communications of the ACM, v. 9, n. 1, p. 36-45, jan. 1966.
WIDROW, B.; HOFF, M. Adaptive Switching Circuits. IRE WESCON Convention Record, p. 96-104, 1960.
WINSTON, H. Artificial intelligence. 3. ed. Boston: Addison-Wesley, 1992.
ZANELLA, V. Software auxilia diagnóstico virtual de problemas no cultivo de maçã, morango e pêssego. 
Embrapa, 28 abr. 2020. Disponível em: https://www.embrapa.br/busca-de-noticias/-/noticia/51743247/
software-auxilia-diagnostico-virtual-de-problemas-no-cultivo-de-maca-morango-e-pessego. Acesso em: 
6 out. 2020.
Resolução de problemas 33
2
Resolução de problemas
Um dos aspectos utilizados para determinar se um sistema é ou não inte-
ligente é a sua capacidade de resolver problemas. Assim, definir o que é um 
problema, determinar o que pode ser uma solução e escrever algoritmos que 
conseguem resolvê-lo são objetos de estudo da IA.
Dessa forma, este capítulo está organizado como descrito a seguir. 
Inicialmente, na Seção 2.1, é definido o conceito de problema e de suas 
soluções para que, assim, seja possível a definição dos algoritmos de busca 
a serem utilizados. Os algoritmos podem ser sem informações adicionais 
ou busca informada, assunto que será visto nas Seções 2.2, 2.3 e 2.4, nas 
quais serão trabalhadas a busca por soluções, a busca cega e a busca heu-
rística, respectivamente. Já na Seção 2.5, serão apresentados agentes que 
possuem objetivos conflituosos, levando à busca competitiva, como ocorre 
em jogos de xadrez.
2.1 Definição de problemas 
Vídeo Um agente é um elemento que pode perceber seu ambiente por meio de sen-
sores e agir sobre ele por meio de atuadores (RUSSEL; NORVIG, 2013). Exemplos 
de sensores no corpo humano são os olhos e ouvidos, e exemplos de atuadores 
são as mãos e pernas. Já em um agente robótico, uma câmera que capta imagens 
do ambiente pode ser um sensor, e motores que efetuam algum movimento po-
dem ser os atuadores. Um agente de software pode ter entradas de dados como 
sensores e a escrita de resultados em arquivos ou em tela como atuadores.
Para implementar a função do agente, que mapeia suas percepções em ações, 
projeta-se o programa do agente. Nesta obra, os programas dos agentes são sim-
ples: recebem leituras dos sensores como entrada e devolvem uma ação específica 
para os atuadores.
O primeiro impulso de implementação do agente é criar uma tabela em memó-
ria contendo todas as possíveis situações que pode perceber pelos sensores e, para 
cada uma delas, indicar a ação a ser tomada. Por exemplo, conside-
rando o número de jogadas possíveis do jogo de xadrez, tem-se 10120, 
número conhecido como o número de Shannon.
A quantidade de informação a ser armazenada e consultada é 
maior do que a capacidade de qualquer computador, e o tempo de 
computação seria maior do que o tempo de vida do universo antes 
de perecer por conta da entropia. Assim, um dos grandes objetivos 
Curiosidade
O número de Shannon é maior 
do que a quantidade estimada 
de átomos no universoe maior 
do que a quantidade estimada de 
nanosegundos que se passaram 
desde o Big Bang (LUGER, 2013).
34 Inteligência Artificial
da IA é conseguir escrever programas que não precisem armazenar e consultar ta-
belas de estados, como a citada para o programa de xadrez, e que consigam gerar 
um resultado satisfatório e racional.
Nesta seção, assume-se a implementação de agentes racionais, em especial 
os agentes de resolução de problemas, que se baseiam em objetivos (RUSSEL; 
NORVIG, 2013). Eles se caracterizam por possuírem uma representação do estado 
atual do ambiente, isto é, em que situação o agente se encontra, além de uma 
informação de objetivo que guia a tomada de decisão sobre ações que podem ser 
tomadas. Também são caracterizados por representar o mundo internamente de 
modo atômico, ou seja, cada estado é indivisível, sem estrutura interna. Por exem-
plo, o estado atual de um agente que tenta encontrar uma rota de uma cidade a 
outra pode representar esse estado como somente o nome da cidade atual.
O processo que procura uma sequência de ações que fazem o agente alcançar seu 
objetivo, isto é, que o levam do estado inicial até o estado objetivo, é chamado de busca.
Para a resolução de problemas, primeiramente é preciso definir o que é um 
problema, como representá-lo e o que é uma solução para ele. Segundo Russel e 
Norvig (2013), um problema pode ser definido por seus cinco componentes:
Tarapong Siri/
sh
utt
ers
toc
k
Estado 
inicial:
ponto de 
partida.
1
2
3
4
5
Ações possíveis de 
serem tomadas: 
conjunto de ações que 
podem ser tomadas caso 
o agente esteja em um 
estado s.
Modelo de transição: 
descrição do que cada 
ação faz; isto é, em um 
estado s, aplicando-se a 
ação a, o modelo indica 
qual é o resultado da 
aplicação de a em s.
Teste de objetivo: 
determina se um estado s 
é o estado objetivo.
Função de custo do 
caminho: atribui um custo 
numérico a cada caminho, 
dependendo do seu objetivo e 
da sua definição de eficiência. 
Aqui o custo do caminho será 
a soma dos custos individuais 
para tomar cada ação.
Tome como exemplo um agente que precisa sair da cidade romena de Arad e 
chegar à capital, Bucareste. Para isso, ele segue o mapa rodoviário simplificado da 
Figura 1. Nesse mapa são apresentadas algumas cidades da Romênia, as estradas 
entre cada uma delas e suas respectivas distâncias. Os valores de cada distância 
entre cidades são chamados de custos de passo, isto é, o custo de tomar uma 
ação estando em um determinado estado. Por exemplo, de acordo com a Figura 1, 
estando em Lugoj, o custo de passo para se movimentar para Timisoara é 111 e o 
custo de passo para se movimentar para Mehadia é 70.
Resolução de problemas 35
Figura 1
Mapa rodoviário simplificado de algumas cidades da Romênia
Oradea
71
75
118
Zerind
Arad
Timisoara
Lugoj
Mehadia
Dobreta
Craiova
Sibiu Fagaras
Bucareste
Giurgiu
Urziceni
Hirsova
Neamt
Iasi
Vaslui
Eforie
Pitesti
Rimnicu Vilcea
111
70
146
75
120
140
151
99
211
142
92
87
80
101
138
90
85 98
86
Fonte: Adaptada de Russel e Norvig, 2013.
Um espaço de estados é composto do estado inicial, das ações possíveis em 
cada estado e do modelo de transição. Em outras palavras, é o conjunto de todos 
os estados acessíveis a partir do estado inicial pela aplicação das ações possíveis. 
O espaço de estados pode ser definido como um grafo dirigido em que cada vértice 
é um estado e cada aresta é a aplicação de uma ação.
A Figura 1 apresenta o espaço de estados de um problema representado por 
um grafo não dirigido, mas, levando em consideração que uma estrada pode ser 
percorrida em ambos os sentidos, assume-se que cada ligação entre duas cidades 
é composta de duas arestas, uma em cada direção.
Um caminho do espaço de estados é uma sequência de estados conectados pela 
aplicação de ações. Uma solução para o problema é um caminho, ou uma sequên-
cia de ações, que leva o agente do estado inicial até o estado objetivo. Já uma solução 
ótima depende de uma medida de qualidade da solução ou custo de caminho, sen-
do a solução ótima a que possuir o menor custo dentre todas as soluções possíveis.
Dessa forma, o problema de partir de Arad para Bucareste pode ser descrito da 
seguinte maneira:
• Estado inicial: em Arad.
• Ações: observando o mapa da Figura 1, consegue-se descobrir as ações possíveis estando em qual-
quer cidade. Por exemplo, em Arad é possível se movimentar para Zerind, Sibiu e Timisoara, que são as 
cidades para as quais há estrada.
• Modelo de transição: novamente observando o mapa, consegue-se descrever o modelo para cada 
cidade. Por exemplo, estando em Arad e aplicando a ação de se movimentar para Zerind, o estado 
resultante do agente é estar em Zerind.
• Teste de objetivo: se a cidade onde o agente estiver for Bucareste, então o teste retorna positivo.
• Custo do caminho: se o agente se movimentou de Arad até Sibiu e depois até Fagaras, o custo do 
caminho é a soma de custos de passo para cada movimentação feita, ou seja, a soma das distâncias 
entre as cidades, que nesse caso seria 140 + 99 = 239.
36 Inteligência Artificial
Uma solução para esse problema é uma rota partindo de Arad e chegando a 
Bucareste.
Deve-se perceber que esse modelo matemático de definição de problemas não 
leva em consideração vários aspectos na representação do mundo real; por exemplo, 
quando se faz uma viagem de Arad a Bucareste, deve-se considerar aspectos como 
clima, paisagem, postos policiais etc. Ademais, várias ações foram omitidas, como 
aumentar a velocidade, mudar de faixa, ultrapassar, ligar o rádio, abrir a janela etc.
Esses aspectos omitidos são irrelevantes para o problema de encontrar a rota 
solicitada. O ato de remover detalhes não importantes para o problema é conheci-
do como abstração (RUSSEL; NORVIG, 2013).
Com relação aos problemas, pode-se distinguir os problemas do mundo real 
dos problemas simplificados. Os problemas do mundo real são aqueles cujas 
soluções interessam às pessoas, como rotas em estradas, problema do caixeiro-
-viajante, layout de circuitos eletrônicos, veículos autônomos etc. Em geral, eles 
possuem várias representações diferentes. Já os problemas simplificados são 
usados para ilustrar e exercitar técnicas de resolução de problemas e costumam 
ter uma descrição concisa e exata.
Um exemplo de problema simplificado é o quebra-cabeça de oito peças, que 
consiste em um tabuleiro de 3 x 3 com posições numeradas de 1 a 8 e uma posição 
vazia. Uma posição adjacente ao quadrado vazio pode ser deslocada para a posição 
deste. A Figura 2 apresenta um exemplo de estado inicial e estado objetivo.
Figura 2
Estados inicial e objetivo do quebra-cabeça de oito peças
3 8
4
12
6
7
5
3
1
4
76
2
5
8
Estado inicial Estado objetivo
Fonte: Adaptada de Russel e Norvig, 2013.
O problema do quebra-cabeça de oito peças é definido do seguinte modo:
• Estados: um estado é a descrição das posições das oito peças e do quadrado vazio.
• Estado inicial: qualquer estado pode ser o estado inicial.
• Ações: movimentação do quadrado vazio, que pode ser para esquerda, para direita, para cima ou 
para baixo.
• Modelo de transição: dado um estado e uma ação, o modelo devolve o estado resultante. Por 
exemplo, no estado inicial da Figura 2, aplicar a ação para direita move o quadrado branco para a 
direita trocando de posição com o 4.
• Teste de objetivo: verifica se o estado atual é o estado objetivo da Figura 2. Outros estados objetivo 
podem ser definidos.
• Custo do caminho: cada ação ou passo custa valor um, assim o custo do caminho é a quantidade 
de passos efetuados.
Resolução de problemas 37
Não há possibilidade de apresentar todo o espaço de estados do problema do 
quebra-cabeça de oito peças, pois ele possui 9!/2 = 181.440 estados. Uma variante 
contendo 24 peças em um tabuleiro 5 x 5 possui cerca de 1025 estados.
Outro problema conhecido em IA é o problema das oito rainhas. No jogo de 
xadrez, a peça conhecida como rainha ataca qualquerposição situada na mesma 
linha, coluna ou diagonal. O objetivo é posicionar oito rainhas em um tabuleiro de 
xadrez de modo que nenhuma ataque qualquer outra. A Figura 3 apresenta um 
tabuleiro possível, mas que não é uma solução, visto que as rainhas no canto su-
perior esquerdo e no canto inferior direito se atacam. No total, para um tabuleiro 
8 x 8, tem-se 92 disposições possíveis de oito rainhas que não se atacam. A Figura 4 
apresenta uma possível solução.
Figura 3
Tabuleiro do problema das oito rainhas
Fonte: Adaptada de Russel e Norvig, 2013.
Figura 4
Uma possível solução para o problema das oito rainhas
Fonte: Elaborada pelo autor.
A definição do problema é:
• Estados: qualquer disposição de nenhuma até oito rainhas.
• Estado inicial: tabuleiro vazio, sem qualquer rainha.
• Ações: colocar uma rainha em alguma casa vazia.
• Modelo de transição: devolve a rainha adicionada ao quadrado específico.
• Teste de objetivo: verifica se há oito rainhas no tabuleiro e nenhuma se ataca.
• Custo do caminho: irrelevante, pois o interesse é somente a disposição das rainhas no es-
tado objetivo.
Nessa definição do problema, sem qualquer melhoria, pode-se colocar as oito 
rainhas em qualquer casa vazia, ou seja, é a combinação de 64 elementos tomados 
oito a oito, em um total de 4.426.165.368 possíveis configurações.
Para melhorar a formulação do problema, pode-se proibir o depósito de uma 
rainha em uma coluna ou linha em que já haja uma rainha. Isso reduziria o espaço 
de estados para 8! = 40.320 possíveis configurações. Reduzindo ainda mais, colo-
ca-se uma rainha em uma casa que já estiver sob ataque (isso inclui as diagonais). 
Nessa formulação tem-se um espaço de estados de apenas 2.057 configurações. 
Saiba mais
Em análise combinatória, 
a combinação de elementos é 
dada por C = n!
r! (n–r)!
n
r . Assim, 
no problema das oito rainhas 
tem-se C = 64!
8! (64–8)!
64
8 = 
4.426.165.368 (GERSTING; IÓRIO, 
2012).
38 Inteligência Artificial
Para formular o problema dessa maneira, deve-se alterar a definição de estado e 
de ações do problema para:
• Estados: qualquer disposição de n rainhas (0 ≤ n ≤ 8), sem que qualquer rainha ataque outra.
• Ações: colocar uma rainha em alguma casa vazia na coluna mais à esquerda, de modo que não seja 
atacada por qualquer outra rainha.
A melhoria do espaço de estados de 4.426.165.368 para 2.057 configurações 
a serem buscadas pode não parecer significativa, em vista do poder computacio-
nal das máquinas atualmente. Porém, se o problema for estendido para 100 ra-
inhas, tem-se um espaço de estados de aproximadamente 10400 configurações sem 
melhorias, portanto intratável. Com as restrições aqui apresentadas, o espaço de 
estados diminui para cerca de 1052 estados, que é uma grande melhoria, mas o 
problema continua não sendo tratável.
Com os problemas e suas definições aqui apresentadas, percebe-se que, de-
pendendo da maneira com a qual os problemas são definidos e as restrições apli-
cadas, pode haver favorecimento para os algoritmos de busca pela solução. Assim, 
abstrair os aspectos importantes do problema e analisar o espaço de estado para 
tentar retirar casos infrutíferos (como adicionar uma rainha em uma casa que está 
sendo atacada) são tarefas de extrema importância no mapeamento de problemas.
2.2 Busca por soluções 
Vídeo Uma solução para os problemas apresentados é uma sequência de ações que 
devem ser praticadas para alcançar o objetivo. Os algoritmos de busca devem 
considerar ações possíveis a partir de um estado inicial, formando uma árvore de 
busca, a qual tem como raiz o estado inicial; os demais nós são outros estados do 
espaço, e as arestas que unem os estados são as ações efetuadas.
Considere o mapa apresentado na Figura 1 e o problema de encontrar uma 
rota partindo de Arad até Bucareste. O estado inicial de um agente que efetua uma 
busca é estar em Arad, que será representado por Em(Arad). O estado objetivo será 
representado por Em(Bucareste). A primeira tarefa é verificar se o estado atual é o 
estado objetivo. Como não é, deve-se escolher efetuar uma ação entre as disponí-
veis, processo conhecido como expansão do estado atual, que significa gerar mais 
estados a partir do atual.
O processo então se inicia no estado Em(Arad), conforme a Figura 5. Os nós e 
setas tracejadas indicam estados que ainda não foram gerados.
Resolução de problemas 39
Figura 5
Estado inicial da árvore de busca
Arad
Sibiu
Arad Oradea Arad AradFagaras Rimnicu
Vilcea
Lugoj Oradea
Timisoara Zerind
Fonte: Adaptada de Russel e Norvig, 2013.
No estado Em(Arad), o processo de expansão gera mais três estados filhos, 
a saber: Em(Sibiu), Em(Timisoara) e Em(Zerind). O processo de busca deverá esco-
lher entre um desses possíveis estados e deixar os demais para, se necessário, 
explorar mais tarde. A Figura 6 apresenta a árvore de busca após a geração dos 
filhos de Arad.
Figura 6
Árvore de busca após a geração dos filhos de Arad
Arad
Sibiu
Arad Oradea Arad AradFagaras Rimnicu
Vilcea
Lugoj Oradea
Timisoara Zerind
Fonte: Adaptada de Russel e Norvig, 2013.
Nesse ponto, o agente pode escolher entre várias ações, representadas aqui 
como: Ir(Sibiu), Ir(Timisoara) e Ir(Zerind). Na suposição de escolha do agente para ir 
a Sibiu, verifica-se que Em(Sibiu) não é o estado objetivo e que, portanto, o estado 
deve ser expandido. Nessa expansão são gerados mais quatro estados: Em(Arad), 
Em(Fagaras), Em(Oradea) e Em(Rimnicu Vilcea). A árvore parcial resultante pode ser 
observada na Figura 7.
Figura 7
Árvore de busca após a escolha de Sibiu
Arad
Sibiu
Arad Oradea Arad AradFagaras Rimnicu
Vilcea
Lugoj Oradea
Timisoara Zerind
Fonte: Adaptada de Russel e Norvig, 2013.
40 Inteligência Artificial
Nesse ponto, o agente pode escolher entre algum desses quatro estados ou 
escolher os estados que foram armazenados anteriormente: Em(Timisoara) e 
Em(Zerind). Esses seis nós são conhecidos como nós folha, pois não possuem fi-
lhos. O conjunto contendo todos os nós folha disponíveis para escolha (isto é, ex-
pansão) é conhecido como borda. Nas figuras 5, 6 e 7, a borda é representada por 
nós com contornos mais fortes, e os nós expandidos estão sombreados.
O processo continua até que o estado objetivo seja encontrado ou que não haja 
mais nós a expandir. A maneira com a qual os nós são escolhidos define a estraté-
gia de busca. O Algoritmo 1 apresenta o processo de busca em árvore.
Algoritmo: Busca em Árvore
Dados Recebidos: Problema
Retorno: Uma solução ou falha
1 Inicializar a Borda com o estado inicial
2 REPITA
3 SE Borda está Vazia ENTÃO
4 RETORNAR Falha
5 FIM SE
6 Escolher um nó folha
7 Remover da Borda
8 SE Nó escolhido contém o estado objetivo ENTÃO
9 RETORNAR Solução
10 FIM SE
11 Expandir o nó escolhido
12 Adicionar resultantes na Borda
13 FIM REPITA
Algoritmo 1
Busca em árvore
Fonte: Adaptado de Russel e Norvig, 2013.
Um aspecto importante a ser observado é que na expansão de Sibiu (Figura 7) 
aparece novamente Arad. Isso significa que, dependendo da estratégia de busca, 
o processo pode ficar preso em um caminho em laço, pois encontrou um estado 
repetido. Nesse ponto, a escolha por Arad leva ao estado inicial, depois novamente 
a Sibiu, depois a Arad etc.
Para evitar tal situação, deve-se armazenar os estados pelos quais o processo 
já passou, melhorando o Algoritmo 1 para armazenar o conjunto explorado, que 
contém todos os nós já expandidos. Essa melhoria pode ser vista no Algoritmo 2.
Resolução de problemas 41
Algoritmo: Busca em Grafo
Dados Recebidos: Problema
Retorno: Uma solução ou falha
Inicializar a Borda com o estado inicial
Inicializar o Conjunto Explorado com Vazio
REPITA
 SE Borda está Vazia ENTÃO
 RETORNAR Falha
 FIM SE
 Escolher um nó folha
 Remover da Borda
 SE Nó escolhido contém o estado objetivo ENTÃO
 RETORNAR Solução
 FIM SE
 Adicionar o nó ao Conjunto Explorado
 Expandir o nó escolhido
 PARA CADA Nó resultante da Expansão FAÇA
 SE Nó não está na Borda E nem noConjunto Explorado ENTÃO
 Adicionar nó na Borda
 FIM SE
 FIM PARA
FIM REPITA
Algoritmo 2
Busca em grafo
Fonte: Adaptado de Russel e Norvig, 2013.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Com as verificações, a árvore de busca gerada pelo Algoritmo 2 conterá somen-
te uma cópia de cada estado.
Os demais algoritmos de busca são obtidos com base nos dois algoritmos apre-
sentados anteriormente. Com relação ao passo de escolha de um novo, tem-se 
dois tipos de algoritmos: busca cega, ou busca sem informação, quando não se tem 
qualquer dado adicional sobre os estados; e busca heurística, ou busca informada, 
quando é dado ao algoritmo alguma informação que pode direcionar a escolha por 
um estado mais promissor.
2.3 Busca cega 
Vídeo Nos algoritmos de busca cega não é dado nenhum tipo de informação sobre 
os estados. Assim, são as estratégias de escolha de estados que fazem a distinção 
entre cada algoritmo. Nesta seção serão vistos os seguintes algoritmos: busca em 
largura, busca de custo uniforme e busca em profundidade.
42 Inteligência Artificial
2.3.1 Busca em largura
A busca em largura (BFS, do inglês Breadth-first Search) tem a estratégia de ex-
pandir todos os nós que estão no mesmo nível. Dessa forma, ela expande o estado 
raiz; depois, todos os filhos da raiz; então, expande todos os sucessores desses úl-
timos; e assim por diante. O próximo nó a ser expandido sempre é o menos recen-
temente adicionado à borda. Assim, a busca em largura encontra o caminho mais 
raso (isto é, com o menor número de passos) dos nós da borda até a raiz.
A Figura 8 apresenta um esquema de busca em largura em uma árvore simples. 
Perceba que, ao expandir o nó A, são gerados B e C. Ao expandir B, são gerados os 
nós D e E. Nesse ponto, o próximo nó escolhido é o C, isto é, o menos recentemente 
adicionado.
Figura 8
Esquema de busca em largura
A
B
A A A
B B CC CB C
D D D D FF F FE E E E GG G G
Em cada fase, o nó a ser expandido está indicado por uma seta.
Fonte: Adaptada de Russel e Norvig, 2013.
Para conseguir o comportamento de se obter o menos recentemente adicio-
nado, usa-se uma estrutura de dados Fila do tipo FIFO (do inglês First-In, First-Out), 
ou seja, o primeiro elemento inserido é o primeiro a ser removido (ZIVIANI, 2010).
Para que uma estrutura de fila possa ser utilizada, são definidas algumas ope-
rações básicas, a saber:
• CRIAR-FILA(): cria uma nova fila vazia.
• VAZIA(Fila): retorna verdadeiro se a fila estiver vazia.
• REMOVER(Fila): remove o elemento da frente da fila e o retorna.
• INSERIR(Fila, x): insere o elemento x no final da fila.
Sempre que um elemento é inserido na fila isso é feito na parte de trás, en-
quanto a remoção é feita na parte da frente. A Figura 9 mostra uma fila com alguns 
elementos já inseridos.
Figura 9
Fila Q
Fila Q
Frente
d a f b e
Trás
Fonte: Elaborada pelo autor.
Fila é uma estrutura de dados 
baseada em lista linear, em que 
todas as operações são feitas nas 
extremidades. O início da fila é 
chamado de Frente e o final, de 
Trás. O seu modelo intuitivo é o 
mesmo usado em filas de banco, 
aeroportos etc. Uma pessoa que 
chega na fila entra na extremidade 
de trás e a próxima pessoa que 
sai, para ser servida, é a que está 
no início (frente). Esse padrão é 
seguido na estrutura de dados Fila, 
portanto um elemento sempre é 
inserido na extremidade de trás 
e retirado da extremidade da 
frente. Como não há remoção ou 
inserção de elementos em outras 
posições da fila, duas operações 
de manipulação são permitidas: 
inserir ou enfileirar e remover ou 
desenfileirar (ZIVIANI, 2010).
Saiba mais
Resolução de problemas 43
Ao se inserir o elemento c na Fila Q, ele é colocado na parte de trás, logo após o 
elemento e. Com a inserção, a fila fica como mostrado na Figura 10.
Figura 10
Fila Q com a inserção do elemento c
Fila Q
Frente
d a f b e c
Trás
Fonte: Elaborada pelo autor.
Caso haja uma remoção na Fila Q, o elemento a ser removido é sempre o que 
se encontra na frente da fila, que no caso é o elemento d. Havendo uma remoção, 
a fila fica como mostrado na Figura 11.
Figura 11
Fila Q com a remoção de um elemento
Fila Q
Frente
a f b e c
Trás
Fonte: Elaborada pelo autor.
Para facilitar os algoritmos de busca, assume-se uma função chamada NÓ-FILHO, 
que recebe um nó e uma ação como parâmetro e devolve um nó filho resultado da 
aplicação da ação no nó passado. Por exemplo, na Figura 6 o estado atual é Em(Arad) e, 
a partir dele, tem-se três ações possíveis: Ir(Sibiu), Ir(Timisoara) e Ir(Zerind). Se o agente, 
estando em Arad, decide ir a Sibiu, o estado resultante é Em(Sibiu). Este é o objetivo da 
função NÓ-FILHO(Nó, Ação): calcular o nó resultante da aplicação de uma ação, e não 
efetivamente aplicar a ação, além de calcular o custo do caminho, que será o custo do 
nó passado adicionado do custo do passo para aplicar a ação.
O pseudocódigo do algoritmo de busca em largura pode ser visualizado no 
Algoritmo 3.
Algoritmo 3
Busca em largura
Algoritmo: Busca em Largura
Dados Recebidos: Problema
Retorno: Uma solução ou falha
Nó ← Estado inicial do problema
Custo-Caminho ← 0
SE Nó é Objetivo ENTÃO
 RETORNAR Solução
FIM SE
Borda ← CRIAR-FILA()
INSERIR(Borda, Nó)
Explorado ← ∅
REPITA
SE VAZIA(Borda) ENTÃO
1
2
3
4
5
6
7
8
9
10 (Continua)
44 Inteligência Artificial
 RETORNAR Falha
 FIM SE
 Nó ← REMOVER(Borda)
 Explorado ← Explorado ∪ {Nó}
 AçõesPossíveis ← Ações possíveis a partir de Nó
 PARA CADA Ação ∈ AçõesPossíveis FAÇA
 Filho ← NÓ-FILHO(Nó, Ação)
 SE Filho não está na Borda E
 Filho ∉ Explorado ENTÃO
 SE Filho Contém o estado Objetivo ENTÃO
 RETORNAR Solução
 FIM SE
 INSERIR(Borda, Filho)
 FIM SE
 FIM PARA
FIM REPITA
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Fonte: Adaptado de Russel e Norvig, 2013.
O grande problema do algoritmo de busca em largura é a quantidade de me-
mória utilizada para armazenar as estruturas de dados. Assuma que cada nó gera 
b filhos. Sabendo que o nó raiz gera b nós filhos e cada um destes gera também b 
nós, tem-se b x b, ou b2, nós na profundidade dois. Cada um deles gerando b nós 
resulta em b3 nós na profundidade três. Assim, assumindo um fator de ramificação 
b a uma profundidade d, a complexidade de espaço é O(bd).
Assumindo um fator de ramificação de 10 (isto é, a cada expansão são gerados 
outros dez nós) e que cada nó precisa de 1.000 bytes para ser armazenado, a pre-
visão de uso de memória da Tabela 1 pode ser esperada.
Tabela 1
Uso de memória da busca em largura
Profundidade Quantidade de nós Memória necessária
2 110 107 KB (kilobytes)
4 11.110 10,6 MB (megabytes)
6 106 1 GB (gigabyte)
8 108 103 GB (gigabytes)
10 1010 10 TB (terabytes)
12 1012 1 PB (petabyte)
14 1014 99 PB (petabytes)
16 1016 10 EB (exabytes)
Fonte: Adaptada de Russel e Norvig, 2013.
Essas estimativas dependem do tipo de problema sendo resolvido, mas proble-
mas com essas características exponenciais não podem ser solucionados em tem-
po/espaço hábil por algoritmos de busca em largura sem que sejam acrescentadas 
informações à busca, ou seja, usando-se métodos de busca heurística.
Resolução de problemas 45
2.3.2 Busca de custo uniforme
A busca de custo uniforme é uma extensão da busca em largura, na qual, em vez 
de expandir o nó mais raso na borda, expande-se o nó com menor custo de cami-
nho. Esse algoritmo é ótimo para a função de custo do passo, pois sempre encontra 
o caminho entre o estado inicial e o objetivo que tiver o menor custo.
A maneira de implementar essa estratégia é substituir a borda por uma fila de 
prioridades ordenada pela função de custo. Pela sua característica, essa fila pode 
ser usada tanto com altas prioridades quanto com baixas, dependendo da maneira 
pela qual os elementos estão ordenados.
Como a remoção ocorre no elemento da frente da fila, se ela estiver ordenada 
de maneira decrescente, sempre será removido o elemento que tiver o maior valor 
de prioridade. Se a fila estiverordenada de modo crescente, sempre será removido 
o elemento com a menor prioridade.
Aqui, a prioridade será representada pelo custo do caminho, portanto é utiliza-
da uma fila de prioridades ordenada crescentemente, para que as remoções sejam 
feitas nos elementos que possuírem o menor custo de caminho.
Para utilizar a fila de prioridades no algoritmo e para não haver confusão com a 
fila usada na busca em largura, são definidas as seguintes operações:
• CRIAR-FILA-PRIORIDADES(): cria uma nova fila de prioridades vazia.
• VAZIA(Fila): retorna verdadeiro se a fila estiver vazia.
• REMOVER-PRIORIDADES(Fila): remove o elemento da frente da fila, que será o que tem o menor 
custo de caminho, e o retorna.
• INSERIR-PRIORIDADES(Fila, x): insere ordenadamente o elemento x na fila, de maneira crescente 
pelo custo de caminho.
O Algoritmo 4 apresenta a busca de custo uniforme. Algumas alterações são 
feitas em relação à busca em largura. A primeira é que o teste de nó objetivo é feito 
quando o nó é selecionado para expansão, pois na primeira vez que um objetivo é 
encontrado, ele pode ter um valor abaixo do ótimo. A segunda diferença é a adição 
de um teste (Linhas 21 a 24) que verifica se um filho encontrado já está na borda 
com um custo de caminho maior do que o recém-gerado. Isso acontece quando um 
estado é atingido de dois caminhos diferentes, possuindo, assim, custos diferentes.
Algoritmo 4
Busca de custo uniforme
Algoritmo: Busca de Custo Uniforme
Dados Recebidos: Problema
Retorno: Uma solução ou falha
Nó ← Estado inicial do problema
Custo-Caminho ← 0
Borda ← CRIAR-FILA-PRIORIDADES()
INSERIR-PRIORIDADES(Borda, Nó)
Explorado ← ∅
1
2
3
4
5 (Continua)
Uma fila de prioridades é uma 
estrutura de fila com algumas 
alterações na inserção e remoção 
dos elementos. A remoção é 
baseada em uma informação, a 
prioridade, isto é, quando é efe-
tuada uma remoção, o elemento 
com maior prioridade é retirado da 
fila. Uma representação dessa es-
trutura é uma lista ordenada pela 
prioridade, na qual a operação de 
inserção adiciona o elemento em 
sua posição correta em relação à 
prioridade, e a operação de remo-
ção retira o primeiro elemento da 
fila (ZIVIANI, 2010).
Saiba mais
46 Inteligência Artificial
REPITA
 SE VAZIA(Borda) ENTÃO
 RETORNAR Falha
 FIM SE
 Nó ← REMOVER-PRIORIDADES(Borda)
 SE Nó é Objetivo ENTÃO
 RETORNAR Solução
 FIM SE
 Explorado ← Explorado ∪ {Nó}
 AçõesPossíveis ← Ações possíveis a partir de Nó
 PARA CADA Ação ∈ AçõesPossíveis FAÇA
 Filho ← NÓ-FILHO(Nó, Ação)
 SE Filho não está na Borda E
 Filho ∉ Explorado ENTÃO
 INSERIR-PRIORIDADES(Borda, Filho)
 SENÃO
 SE Filho Está na Borda E
 O custo de caminho na Borda é maior ENTÃO
 Substitui o nó na Borda por Filho
 FIM SE
 FIM SE
 FIM PARA
FIM REPITA
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Fonte: Adaptado de Russel e Norvig, 2013.
Tome como exemplo o mapa da Figura 1. Partindo de Arad, é possível chegar 
a Sibiu por dois caminhos (outros são possíveis, mas somente dois são analisados 
aqui): Arad → Sibiu, com distância 140; e Arad → Zerind → Oradea → Sibiu, com dis-
tância 297. Assumindo a distância como custo do caminho, se o algoritmo encontra 
primeiro o caminho mais longo até Sibiu e depois encontra o caminho mais curto, 
deve-se substituir na borda o caminho longo pelo mais curto, a fim de se conseguir 
o custo ótimo.
Uma grande diferença em relação à busca em largura, apesar de os algo-
ritmos serem muito parecidos, é que a busca de custo uniforme leva em con-
sideração sempre o custo do caminho, e não a profundidade da árvore ou o 
número de passos.
2.3.3 Busca em profundidade
A busca em profundidade (DFS, do inglês Depth-first Search) sempre expande o 
nó mais profundo na borda. Isto é, a busca continua sempre no nó que se encontra 
no nível mais alto da árvore até que não haja mais sucessores a serem explorados. 
A Figura 12 apresenta um exemplo de ordem de escolha dos nós na árvore de bus-
ca nesse tipo de busca. Deve-se perceber que sempre é escolhido o elemento mais 
recentemente adicionado na borda.
Resolução de problemas 47
Figura 12
Ordem da escolha dos nós na árvore de busca em uma busca em profundidade
A
B C
D F
H LJ NI MK O
E G
A
B C
D F
H LJ NI MK O
E G
A
B C
D F
H LJ NI MK O
E G
A
B C
D F
H LJ NI MK O
E G
A
B C
D F
LJ NI MK O
E G
A
B C
F
LJ NMK O
E G
A
B C
F
LJ NMK O
E G
A
B C
F
L NMK O
E G
A
C
F
L NM O
G
A
C
F
L NM O
G
A
C
F
L NM O
G
A
C
F
NM O
G
Fonte: Adaptada de Russel e Norvig, 2013.
Uma implementação possível é alterar o algoritmo de busca em largura para 
que, na escolha de um nó da borda, em vez de retornar o nó menos recentemente 
adicionado (o mais velho), retorne o mais recentemente adicionado (o mais novo). 
Essa alteração é feita com a troca da fila FIFO por uma pilha LIFO (do inglês Last-in, 
First-out).
Outra implementação possível é feita por meio de uma recursão e, nesse caso, 
sem a necessidade de uso da estrutura auxiliar de pilha (RUSSEL; NORVIG, 2013).
A busca em profundidade não é ótima. Considere o exemplo da Figura 12, se o 
nó C e o nó K forem nós objetivo, o primeiro a ser retornado é o nó K, mesmo sendo 
C o mais raso e possivelmente melhor. Assim, aparentemente, a busca em profun-
didade não possui vantagem alguma em relação à busca em largura.
Se em uma fila a inserção e 
remoção são feitas em extremos 
diversos (frente e trás), em uma 
pilha a inserção e remoção são 
realizadas no mesmo extremo, 
também conhecido como topo. 
Dessa forma, o último elemento 
adicionado na fila será o primeiro a 
ser removido (ZIVIANI, 2010).
Saiba mais
48 Inteligência Artificial
Contudo, ao se analisar em termos de espaço de armazenamento, percebe-se 
que a quantidade de memória necessária é muito menor. O grande motivo para 
isso é que não há necessidade de se armazenar em memória os nós expandidos 
cujos filhos foram totalmente explorados. É o caso do nó D e seus filhos na Figura 
12, quando no sexto passo o algoritmo passa a explorar o nó E.
Dessa forma, em uma árvore de busca com fator de ramificação b e profun-
didade máxima m, a busca em profundidade exige que somente O(bm) sejam 
armazenados. Levando em consideração as suposições da Tabela 1, na profundi-
dade 16, uma busca em profundidade exigiria somente 156 kilobytes de memó-
ria, e não 10 exabytes.
Apesar disso, um dos grandes problemas desse tipo de busca é quando o es-
paço de estados é infinito. Basicamente não há limite que leve uma busca em um 
ramo a parar de se aprofundar nas expansões. Para resolver essa questão, pode-se 
implementar a busca em profundidade limitada. Na prática, estipula-se um valor 
de profundidade limitante l e, assim, assume-se que os nós na profundidade l não 
possuem sucessores.
Infelizmente, essa estratégia adiciona outro problema. Se o valor de l escolhido 
for menor do que a profundidade do objetivo mais raso, então o algoritmo não o 
encontra. Percebe-se também que a busca em profundidade é um caso especial da 
busca em profundidade limitada quando l = ∞.
Conhecer a profundidade do objetivo pode não ser fácil ou direto, mas é possível 
ter uma estimativa ao se analisar o problema. Por exemplo, no mapa da Figura 1, 
tem-se 20 cidades, portanto qualquer solução deve ter no máximo comprimento 
19. Em uma análise mais profunda do mapa, percebe-se que uma cidade pode ser 
alcançada a partir de qualquer outra em, no máximo, nove passos. Assim, o valor 9 
dá um limitante melhor para a profundidade do algoritmo.
Outros algoritmos de busca podem ser encontrados na literatura e, em geral, 
são extensões dos vistos aqui. Como exemplos há a busca de profundamente in-
terativo, que efetua buscas em profundidade limitada, a qual é aumentada ao lon-
go das iterações, e a busca bidirecional, que executa duas buscas, uma do estado 
inicial até o estado objetivo e outra do estado objetivo até o estado inicial; quando 
ambasas buscas se encontrarem, a solução completa é dada.
2.4 Busca heurística 
Vídeo A busca heurística, ou busca informada, utiliza algum tipo de conhecimento es-
pecífico do problema para direcionar a estratégia e encontrar as soluções de modo 
mais eficiente (RUSSEL; NORVIG, 2013).
Para efetuar as expansões, os algoritmos usam uma função de avaliação f(n), 
que retorna a melhor escolha de nó a ser expandido. Essa função pode ser enten-
dida como uma estimativa do custo que aquele caminho terá até a solução, o que 
é diferente do custo do caminho (que dá o custo despendido até se chegar àquele 
nó). Assim, se a função de avaliação dá uma estimativa do custo da solução, o algo-
ritmo, aqui chamado de busca de melhor escolha, escolherá sempre o nó que tiver a 
menor estimativa, ou seja, o menor valor da função de avaliação.
Resolução de problemas 49
A implementação é idêntica à da busca de custo uniforme. Relembrando: é usa-
da uma fila de prioridades e a ordenação dos nós na borda é dada pelo custo do 
caminho, isto é, o custo acumulado desde o nó inicial até o nó corrente. Na busca 
de melhor escolha, em vez de se usar o custo do caminho (que aqui será denotado 
como g(n)), é usada uma função de avaliação f(n) para ordenar os nós que são in-
seridos na borda.
Escolher qual função de avaliação usar determina a estratégia de busca. A gran-
de maioria dos algoritmos usa uma função heurística h(n) como componente da 
função de avaliação, em que h(n) retorna o custo estimado do caminho de menor 
custo, partindo de n até um estado objetivo.
Percebe-se que a função h(n) não depende do caminho percorrido até se chegar 
a n, mas faz uma estimativa do custo do melhor caminho partindo de n até um 
objetivo. Isto é, no estado n, analisando-se todos os caminhos de n até o estado 
objetivo e observando-se o que tem o menor custo, h(n) estima o custo desse me-
lhor caminho. Por exemplo, dado o mapa da Figura 1, pode-se estimar o custo de 
menor caminho entre Arad e Bucareste (estado objetivo) pela distância em linha 
reta entre as cidades.
Para os algoritmos aqui descritos, assume-se que uma função heurística não 
retorna valores negativos e que h(n) = 0 se n for um estado objetivo.
2.4.1 Busca gulosa
A busca gulosa, ou busca gulosa de melhor escolha, sempre tenta expandir o 
nó que, pela função de avaliação f(n), está mais próximo do objetivo. Sua função de 
avaliação é simplesmente usar a heurística, ou seja, f(n) = h(n).
Como exemplo, no problema de sair de Arad e chegar a Bucareste (Figura 1), 
pode-se adicionar uma informação relevante, que é a distância em linha reta entre 
uma cidade e Bucareste. Essa função heurística é chamada aqui de hDLR. A Tabela 2 
mostra as distâncias em linha reta entre todas as cidades do mapa e Bucareste.
Tabela 2
Retorno de hDLR: distâncias em linha reta para Bucareste
Origem Distância Cidade Distância
Arad 366 Mehadia 241
Bucareste 0 Neamnt 234
Craiova 160 Oradea 380
Drobeta 242 Pitesti 100
Eforie 161 Rimnicu Vilcea 193
Fagaras 176 Sibiu 253
Giurgiu 77 Timisoara 329
Hirsova 151 Urziceni 80
Iasi 226 Vaslui 199
Lugoj 244 Zerind 374
Fonte: Adaptada de Russel e Norvig, 2013.
Convém ressaltar que as distâncias em linha reta não podem ser obtidas pela 
descrição do problema, portanto são uma informação adicional. Além disso, 
50 Inteligência Artificial
deve-se ter alguma experiência para saber que elas estão relacionadas com as dis-
tâncias das estradas, sendo, portanto, uma heurística útil.
A implementação da busca gulosa pode ser feita pela busca em árvore, apresen-
tada no Algoritmo 1, a qual altera o algoritmo para que a escolha do nó seja feita 
pela função de avaliação.
Considere o problema de partir de Arad e chegar a Bucareste. A Figura 14 apresenta 
o estado inicial da árvore de busca aplicando busca gulosa com a heurística hDLR.
Figura 14
Estado inicial da busca gulosa com hDLR
Arad
366
Fonte: Adaptada de Russel e Norvig, 2013.
A Figura 15 mostra a árvore após expandir Arad.
Figura 15
Estado após a expansão de Arad
Fonte: Adaptada de Russel e Norvig, 2013.
Arad
Sibiu Timisoara Zerind 
366
253 329 374
Como está sendo usada a heurística hDLR, o próximo nó escolhido para expansão 
é Sibiu, e a Figura 16 apresenta o resultado.
Figura 16
Estado após a expansão de Sibiu
Fonte: Adaptada de Russel e Norvig, 2013.
Arad
Sibiu Timisoara Zerind 
329
193380176366
Arad Fagaras Oradea Rimnicu 
Vicea
374
Nesse ponto, são analisadas todas as possíveis expansões, isto é, os nós na bor-
da, que agora são Arad, Fagaras, Oradea, Rimnicu Vilcea, Timisoara e Zerind. Pela 
heurística hDLR, Fagaras possui a menor distância em linha reta até Bucareste e, por-
Resolução de problemas 51
tanto, será escolhido. Na expansão de Fagaras (Figura 17), já se chega a Bucareste, 
que é o objetivo.
Figura 17
Estado após a expansão de Fagaras e chegada ao objetivo Bucareste
Fonte: Adaptada de Russel e Norvig, 2013.
Arad
Sibiu Timisoara
Sibiu
Zerind 
Bucareste
329
253
374
0
193380366
Arad Fagaras Oradea Rimnicu 
Vicea
A solução encontrada é: Arad → Sibiu → Fagaras → Bucareste; somando as dis-
tâncias das estradas, tem-se 450 km.
Nesse caso, a busca gulosa encontrou a solução, mas não foi uma solução óti-
ma. Analisando o mapa da Figura 1, o caminho de Sibiu até Bucareste via Fagaras, 
que foi o escolhido, tem 310 km. Se fosse escolhido o caminho por Rimnicu Vilcea, o 
resultado seria 278 km, uma diferença de 32 km. A razão para isso é que ela sempre 
tenta chegar o mais próximo possível do objetivo, mas só leva em consideração a 
heurística, que, como no caso da distância em linha reta, pode não favorecer deter-
minados caminhos.
A busca gulosa também não é completa, ou seja, havendo apenas um caminho, 
eventualmente ela pode não o encontrar. É o caso de partir de Iasi para Fagaras. 
Em Iasi, tem-se dois filhos (Neamt e Vaslui). Pelo mapa da Figura 1, percebe-se que 
Neamt é mais próximo em linha reta. Assim, o algoritmo expande Neamt, o que 
coloca Iasi novamente na borda. Como Neamt é um beco sem saída, a única rota 
é por Iasi; quando lá, Neamt é novamente colocada na borda. O algoritmo fica em 
laço nessas duas cidades, quando o real caminho a ser seguido é por Vaslui e de-
pois por Urziceni, Bucareste e, finalmente, Fagaras.
2.4.2 Busca A*
Para resolver os problemas encontrados na busca gulosa, pode-se usar a busca 
A* (“busca A estrela”). A grande alteração feita é na função de avaliação, a qual usa 
uma combinação de g(n), que é o custo para se alcançar um nó, e h(n), que é a esti-
mativa do custo para ir do nó até o objetivo. Assim:
f(n) = g(n) + h(n)
52 Inteligência Artificial
Dessa forma, f(n) dá o custo estimado da melhor solução passando por n. Isso 
significa que, em determinado momento na árvore de busca, vale a pena expandir 
o nó que tiver menor valor de f(n). Se a função h(n) satisfizer determinadas con-
dições, garante-se que o algoritmo é completo – isto é, sempre que houver uma 
solução, ele a encontra – e ótimo – ou seja, sempre encontra a melhor solução 
(RUSSEL; NORVIG, 2013).
O algoritmo da busca A* é muito parecido com a busca de custo uniforme, mas 
na A* a verificação do custo é feita por g(n) + h(n), e não somente por g(n), como no 
custo uniforme.
O Algoritmo 5 apresenta a busca A*. Deve-se perceber que a verificação para 
analisar se o nó é objetivo só é feita quando o nó é escolhido da borda. Isso garante 
que o caminho até o objetivo seja retornado.
Algoritmo: Busca A*
Dados Recebidos: Problema, hDLR
Retorno: Uma solução ou falha
Nó ← Estado inicial do problema
Custo-Caminho ← 0
Borda ← CRIAR-FILA-PRIORIDADES()
INSERIR-PRIORIDADES(Borda, Nó)
Explorado ← ∅
REPITA
 SE VAZIA(Borda) ENTÃO
 RETORNAR Falha
 FIM SE
 Nó ← REMOVER-PRIORIDADES(Borda)
 SE Nó é Objetivo ENTÃO
 RETORNAR Solução
 FIM SE
 Explorado ← Explorado ∪ {Nó}
 AçõesPossíveis ← Ações possíveis a partir de Nó
 PARA CADA Ação ∈ AçõesPossíveis FAÇA
 Filho ← NÓ-FILHO(Nó, Ação)
 SE Filho não está na Borda EFilho ∉ Explorado ENTÃO
 INSERIR-PRIORIDADES(Borda, Filho)
 SENÃO
 SE Filho Está na Borda E
 g(n)+h(n) na Borda é maior ENTÃO
 Substitui o nó na Borda por Filho
 FIM SE
 FIM SE
 FIM PARA
FIM REPITA
Algoritmo 5
Busca A*
Fonte: Adaptado de Russel e Norvig, 2013.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Resolução de problemas 53
Considere o problema de partir de Arad e chegar a Bucareste usando a heurísti-
ca de distância em linha reta. A Figura 18 apresenta o estado inicial em Arad. Os es-
tados estão assinados com: f(n) = g(n) + hDLR(n), em que g(n) é o custo do caminho, ou 
seja, o custo acumulativo até se chegar àquele nó, e hDLR é a heurística de distância 
em linha reta representada pela Tabela 2. Perceba que g(n) acumula as distâncias 
percorridas até se chegar ao nó.
Figura 18
Busca A*: estado inicial.
Arad
366 = 0 + 366 
Fonte: Adaptada de Russel e Norvig, 2013.
Expandindo Arad, obtém-se a árvore da Figura 19.
Figura 19
Busca A*: expansão de Arad
Fonte: Adaptada de Russel e Norvig, 2013.
Arad
Sibiu Timisoara Zerind 
393 = 140 + 253 447 = 118 + 329 449 = 75 + 374 
O nó expandido está com preenchimento, os nós na borda estão com seus cálculos de f(n) e o próximo nó a ser 
escolhido está apontado com uma seta.
Da expansão de Arad, três nós são obtidos: Sibiu (f(Sibiu) = 393), Timosoara 
(f(Timisoara) = 447) e Zerind (f(Zerind) = 449). Eles são os únicos na borda, e o es-
colhido é Sibiu, por possuir o menor valor de f(n). Expandindo Sibiu, obtém-se a 
árvore da Figura 20. Percebe-se que o nó Arad foi gerado novamente, mas agora 
sua função f(Arad) retornou 646. Isso ocorre porque f(Arad) = g(Arad) + hDLR(Arad). 
Como essa instância de Arad foi gerada pelo caminho Arad → Sibiu → Arad, o valor 
de g(Arad) é acumulativo, isto é, de Arad até Sibiu 140 km, de Sibiu até Arad 140 km, 
resultando em 280 km. Assim, f(Arad) = 280 + 366, resultando em 646.
Figura 20
Busca A*: expansão de Sibiu
Fonte: Adaptada de Russel e Norvig, 2013.
Arad
Sibiu Timisoara Zerind 
447 = 118 + 329
646 = 280 + 366 415 = 239 + 176 671 = 291 + 380 413 = 220 + 193 
449 = 75 + 374 
Arad Fagaras Oradea Rimnicu 
Vicea
54 Inteligência Artificial
Nesse momento, tem-se na borda: Arad (646), Fagaras (415), Oradea (671), 
Rimnicu Vilcea (413), Timisoara (447) e Zerind (449). O nó com menor valor de f(n) é 
Rimnicu Vilcea, que é expandido, e a árvore da Figura 21 é gerada.
Figura 21
Busca A*: expansão de Rimnicu Vilcea
Fonte: Adaptada de Russel e Norvig, 2013.
Arad
Sibiu Timisoara
Craiova Pitesti
Zerind 
Sibiu
447 = 118 + 329 449 = 75 + 374 
646 = 280 + 366 
426 = 366 + 160 417 = 317 + 100 553 = 300 + 253 
415 = 293 + 176 671 = 291 + 380 
Arad Fagaras Oradea Rimnicu 
Vicea
Analisando todos os nós na borda, escolhe-se Fagaras (415) para expandir. 
O resultado consta na Figura 22.
Figura 22
Busca A*: expansão de Fagaras
Fonte: Adaptada de Russel e Norvig, 2013.
Arad
Sibiu Timisoara
Sibiu Craiova Pitesti
Zerind 
Bucareste Sibiu
447 = 118 + 329
591 = 338 + 253
449 = 75 + 374 
450 = 450 + 0
646 = 280 + 366 
426 = 366 + 160 417 = 317 + 100 553 = 300 + 253 
671 = 291 + 380 
Arad Fagaras Oradea Rimnicu 
Vicea
Nesse ponto, houve a geração do nó Bucareste (f(Bucareste) = 450). Apesar de 
o nó objetivo estar na borda, ele só será testado quando for escolhido para ex-
pansão, garantindo que caminhos promissores (menor distância estimada) sejam 
antes avaliados. Esse é o caso de Pitesti, que está na borda e contém valor de 
f(n) = 417. Sua expansão gera a árvore da Figura 23.
Resolução de problemas 55
Figura 23
Busca A*: expansão de Pitesti
Fonte: Adaptada de Russel e Norvig, 2013.
Arad
Sibiu Timisoara
Sibiu Craiova
Bucareste
Pitesti
Craiova
Zerind 
Bucareste Sibiu
Rimnicu 
Vicea
447 = 118 + 329
591 = 338 + 253
449 = 75 + 374 
450 = 450 + 0
646 = 280 + 366 
426 = 366 + 160
418 = 418 + 0 615 = 455 + 160 607 = 414 + 193 
553 = 300 + 253 
671 = 291 + 380 
Arad Fagaras Oradea Rimnicu 
Vicea
Com a expansão de Pitesti é gerado Bucareste com um valor de f(n) = 418, me-
nor que todos os demais (inclusive de Bucareste gerado anteriormente, que era de 
450). O procedimento para e encontra a solução, que é: Arad → Sibiu → Rimnicu 
Vilcea → Pitesti → Bucareste, com 418 km.
Para o algoritmo A*, duas condições são necessárias para otimalidade, isto é, 
para que a solução encontrada seja sempre a ótima, referentes à função heurística. 
A primeira é que h(n) deve ser uma heurística admissível, ou seja, nunca superes-
tima o custo de atingir o objetivo (RUSSEL; NORVIG, 2013). No caso da hDLR apresen-
tada, uma distância em linha reta nunca será maior do que a distância pelas 
estradas, portanto é uma heurística admissível.
Outra condição é a consistência, ou monotonicidade, necessária apenas para 
implementação do A* como uma busca em grafos, como o caso do Algoritmo 5. 
Uma heurística é consistente se, a partir de um 
nó n e seus sucessores n’, o custo estimado para 
alcançar o objetivo a partir de n sempre for me-
nor ou igual ao custo de passo até n’ mais o cus-
to estimado de se alcançar o objetivo a partir de 
n’ (LUGER, 2013). Essa é uma forma de desigual-
dade triangular, que pode ser vista na Figura 24.
De Arad a Bucareste, o custo estimado é 366. 
De Arad a Bucareste, passando por Timisoara, 
o custo do passo adicionado à estimativa de 
Timisoara a Bucareste é 118 + 329. Assim, 366 
de busca possa ser ignorada, pois não levaria a posições promissoras. 
Isso é muito importante em espaços de estados gigantescos, como os do xadrez e 
do jogo de go. As funções de avaliação heurísticas são outro aspecto importante, 
porque dão uma estimativa de utilidade de um estado, sem a necessidade de reali-
zar uma busca completa. Quanto melhor a função de avaliação, mais precisas serão 
as estimativas (RUSSEL; NORVIG, 2013).
2.5.1 Valor minimax
Nesta subseção serão considerados jogos com dois jogadores, que serão cha-
mados de MAX (maximização) e MIN (minimização). MAX faz o primeiro movimen-
Resolução de problemas 57
to e depois os jogadores se alternam até o final da partida. Assim, pode-se definir 
formalmente um jogo como esse da seguinte forma:
• S
0
: estado inicial, como o jogo está no início.
• JOGADORES(s): retorna qual jogador deve se mover em um estado s.
• AÇÕES(s): retorna o conjunto de movimentos válidos no estado s.
• RESULTADO(s, a): modelo de transição; define o resultado da aplicação do movimento a no estado s.
• TESTE DE TÉRMINO(s): é o teste de objetivo, que retorna verdadeiro quando o jogo termina. Os estados 
em que o jogo termina são chamados estados terminais.
• UTILIDADE(s, p): função utilidade, objetivo ou compensação, que define um valor numérico para um 
jogo que termina no estado terminal s por um jogador p. Por exemplo, no xadrez tem-se vitória, der-
rota ou empate (+1, 0 ou ½).
Como exemplo, observe a Figura 25. Ela apresenta uma árvore de busca parcial 
do jogo da velha. Inicialmente o tabuleiro está vazio. MAX faz o primeiro movimen-
to colocando um X em uma das nove casas vazias. Logo após é a vez de MIN colocar 
um O nas oito casas vazias restantes. E assim o jogo segue sucessivamente. No jogo 
da velha, analisando-se todas as jogadas possíveis, tem-se nove possibilidades na 
primeira jogada, oito na segunda, sete na terceira, e assim por diante. Isso dá 9 x 8 
x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 9! = 362.880 jogadas possíveis.
É tarefa de MAX descobrir qual a sua melhor jogada em um determinado ponto 
do jogo. O termo árvore de busca é usado aqui para denotar a árvore que está 
sobreposta à arvore de jogo completa, sendo que nela serão examinados os nós 
que darão a MAX a possibilidade de escolher a próxima jogada.
Figura 25
Árvore de busca parcial do jogo da velha
MAX(X)
MIN(O)
MAX(X)
MIN(O)
Terminal
Utilidade: –1 0 +1
...
............
X X X
X X X
X X X
X X XO O
O
X X X X
XX
O O O
X X X
X X
X X X
X
XX X
O O O
O O
O O
O
O
O
Fonte: Adaptada de Russel e Norvig, 2013.
58 Inteligência Artificial
Em uma tarefa de busca simples, bastaria MAX encontrar um caminho que 
leve a um estado terminal no qual é vitorioso. Mas MIN tem influência nessa 
escolha; portanto, deve-se estabelecer uma estratégia que gere o primeiro mo-
vimento de MAX, que depois gere o movimento de MAX após a jogada de MIN, 
e assim por diante.
Considere a árvore de jogo da Figura 26. No estado inicial A, MAX pode fazer as 
jogadas a1, a2 e a3; no estado B, que é a jogada a1 de MAX, MIN pode fazer as jogadas 
b1, b2 e b3; no estado C, que é a jogada a2 de MAX, MIN pode fazer as jogadas c1, c2 
e c3; e assim sucessivamente. Esse jogo, em especial, termina após uma jogada de 
MAX e uma jogada de MIN. As utilidades nos estados terminais vão de 2 a 14.
Figura 26
Árvore de jogos simples
Fonte: Adaptada de Russel e Norvig, 2013.
MAX
MIN
A
B C D
3
3 2 2
3 12 8 2 4 6 14 5 2
a1
a3a2
b1 c1 d1b2 c2 d2b3 c3 d3
A estratégia ótima em uma árvore de jogo pode ser dada pelo valor minimax 
de cada nó, que será representado aqui por VALOR-MINIMAX(n). O valor minimax 
retornado em um nó é o valor utilidade para MAX de se encontrar no estado n.
Supõe-se que ambos os jogadores têm desempenho ótimo do estado n até o 
final do jogo, isto é, que seu oponente vai jogar da melhor forma possível. Para um 
estado terminal, o valor minimax é sua própria utilidade. Em nós em que há uma 
escolha de jogada, MAX vai preferir se movimentar para um estado com valor má-
ximo e MIN vai preferir se movimentar para um estado com o valor mínimo. Assim, 
VALOR-MINIMAX(n) é:
 • UTILIDADE(n), se TESTE DE TÉRMINO(n) é verdadeiro;
 • Maxa∈AÇÕES(n) VALOR-MINIMAX(RESULTADO(s, a)), se JOGADOR(n) = MAX;
 • Mina∈AÇÕES(n) VALOR-MINIMAX(RESULTADO(s, a)), se JOGADOR(n) = MIN.
Na árvore de jogo da Figura 26, MAX está no estado A e precisa decidir qual 
jogada fazer. Iniciam-se os cálculos, e os valores minimax dos nós terminais são 
atribuídos pelos seus valores utilidade, ou seja, o valor numérico para aquele esta-
do do jogo. Aqui, valores altos favorecem MAX e valores pequenos favorecem MIN.
No estado B, que é uma jogada de MIN, a melhor escolha para MIN é jogar b1, 
pois dá o menor valor entre todas as possíveis jogadas, que é 3. O mesmo vale para 
o estado C, em que MIN escolhe c1, com valor 2; no estado D, MIN escolhe d3, com 
valor de utilidade 2. Dessa forma, os nós B, C e D possuem seus valores minimax 
Resolução de problemas 59
atribuídos (3, 2 e 2 respectivamente) conforme a escolha de MIN, assumindo que 
MIN sempre faz a melhor jogada.
No estado A, MAX precisa escolher entre as ações a1, a2 e a3, que levam aos 
estados B, C e D respectivamente. MAX escolhe qual jogada fazer observando o 
valor minimax dos nós e decide jogar a1, pois é o que tem maior valor minimax, 
indicando maiores chances de ganhar. Essa decisão de qual jogada MAX deve fazer, 
estando no estado n, é chamada decisão minimax (RUSSEL; NORVIG, 2013).
Resumindo: MIN sempre escolhe uma jogada que leva a um estado com valor 
minimax menor, pois o favorece, e MAX sempre escolhe uma jogada que leva a um 
estado com valor minimax maior, pois favorece a sua vitória.
Para calcular a decisão minimax que MAX deve fazer em um estado, tem-se o 
algoritmo MINIMAX, o qual efetua uma recursão até os nós terminais, calcula suas 
utilidades e retorna propagando o valor minimax até chegar ao estado corrente 
(RUSSEL; NORVIG, 2013).
Esse processo pode ser visto no Algoritmo 6. A função MIN(x, y) retorna o menor valor 
entre x e y. A função MAX(x, y) retorna o maior valor entre x e y. O procedimento principal 
(MINIMAX) retorna a ação à que dá o maior valor de VALOR-MAX(RESULTADO(estado, a)), 
isto é, a ação que tem o maior valor de utilidade quando são feitas as jogadas de MAX 
(RESULTADO(estado, a)) e MIN fez suas escolhas (VALOR-MIN).
Algoritmo 6
Algoritmo MINIMAX
Algoritmo: MINIMAX
FUNÇÃO MINIMAX(estado) RETORNA ação
 v ← VALOR-MAX(estado)
 RETORNAR Ação a que possui valor v
FIM FUNÇÃO
 
FUNÇÃO VALOR-MAX(estado) RETORNA valor utilidade
 SE TESTE DE TÉRMINO(estado) ENTÃO
 RETORNAR UTILIDADE(estado)
 FIM SE
 v ← -∞
 PARA a ∈ AÇÕES(estado) FAÇA
 filho ← RESULTADO(s, a)
 valor_filho ← VALOR-MIN(filho)
 v ← MAX(v, valor_filho)
 FIM PARA
 RETORNAR v
FIM FUNÇÃO
FUNÇÃO VALOR-MIN (estado) RETORNA valor utilidade
 SE TESTE DE TÉRMINO(estado) ENTÃO
 RETORNAR UTILIDADE(estado)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(Continua)
60 Inteligência Artificial
 FIM SE
 v ← +∞
 PARA a ∈ AÇÕES(estado) FAÇA
 filho ← RESULTADO(s, a)
 valor_filho ← VALOR-MAX(filho)
 v ← MIN(v, valor_filho)
 FIM PARA
 RETORNAR v
FIM FUNÇÃO
20
21
22
23
24
25
26
27
28
Fonte: Adaptado de Russel e Norvig, 2013.
Um problema com o MINIMAX é que ele executa uma busca em profundi-
dade na árvore de jogo. Se a profundidade dessa árvore é m e tem-se b movi-
mentos válidos em cada estado, então a complexidade de tempo é O(bm). Dessa 
forma, o tempo de execução é impraticável e são necessárias técnicas para 
melhorar seu desempenho.
2.5.2 Poda alfa-beta
Uma técnica muito usada é a poda alfa-beta. Uma poda em árvore é um corte, 
um ramo inteiro que é deixado de lado sem explorar, pois já é sabido que seu valor 
nãomelhorará o resultado final. No MINIMAX a ideia é não explorar jogadas que 
não influenciam a decisão de MAX (LUGER, 2013). Na poda alfa-beta são propaga-
dos dois parâmetros:
 • α: o valor mais alto encontrado até o momento ao longo do caminho para 
MAX, indicando que jogadas com valores menores que α podem ser ignora-
das, pois MAX nunca as escolherá.
 • β: o valor mais baixo encontrado até o momento ao longo do caminho para 
MIN, indicando que jogadas com valores maiores que β podem ser ignoradas, 
pois MIN nunca as escolherá.
Ao longo da busca, os valores de α e β são atualizados e o processo termina no 
momento em que o valor do nó corrente se torna pior que os valores de α e β para 
MAX ou MIN, respectivamente.
Suponha, em uma árvore de busca, que em determinado estado α = 9. Como 
MAX sempre escolhe a ação com o maior valor, não irá escolher qualquer nó abaixo 
dele que retorne um valor menor que 9. Como os nós abaixo são nós do jogador 
MIN e como MIN sempre escolherá o valor menor, se for encontrada uma jogada 
que retorne um valor menor ou igual a 9, já se sabe que, pelo menos, MIN escolhe-
rá essa jogada (ou outra com valor de utilidade menor). Desse modo, as ações se-
guintes não precisam ser avaliadas. O procedimento MINIMAX com poda alfa-beta 
pode ser visto no Algoritmo 7.
Resolução de problemas 61
Algoritmo 7
Algoritmo MINIMAX com poda alfa-beta
Algoritmo: MINIMAX COM PODA ALFA-BETA
FUNÇÃO MINIMAX-ALFA-BETA(estado) RETORNA ação
 v ← VALOR-MAX(estado, -∞, +∞)
 RETORNAR Ação a que possui valor v
FIM FUNÇÃO
FUNÇÃO VALOR-MAX(estado, α, β) RETORNA valor utilidade
 SE TESTE DE TÉRMINO(estado) ENTÃO
 RETORNAR UTILIDADE(estado)
 FIM SE
 v ← -∞
 PARA a ∈ AÇÕES(estado) FAÇA
 filho ← RESULTADO(s, a)
 valor_filho ← VALOR-MIN(filho)
 v ← MAX(v, valor_filho)
 SE v ≥ β ENTÃO RETORNAR v
 α ← MAX(α, v)
 FIM PARA
 RETORNAR v
FIM FUNÇÃO
FUNÇÃO VALOR-MIN(estado, α, β) RETORNA valor utilidade
 SE TESTE DE TÉRMINO(estado) ENTÃO
 RETORNAR UTILIDADE(estado)
 FIM SE
 v ← + ∞
 PARA a ∈ AÇÕES(estado) FAÇA
 filho ← RESULTADO(s, a)
 valor_filho ← VALOR-MAX(filho)
 v ← MIN(v, valor_filho)
 SE v ≤ α ENTÃO RETORNAR v
 β ← MIN(β, v)
 FIM PARA
 RETORNAR v
FIM FUNÇÃO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Fonte: Adaptado de Russel e Norvig, 2013.
Algumas diferenças são observadas no uso da poda. Ao longo das funções 
VALOR-MAX e VALOR-MIN, os valores de α e β são atualizados e propagados. Perceba 
que dentro do laço de ações na linha 14 do procedimento VALOR-MAX, por exemplo, há 
uma comparação que pergunta se o valor recebido daquela possível jogada é maior ou 
igual ao valor β. Como exemplo, veja a árvore de jogo da Figura 27.
62 Inteligência Artificial
Figura 27
Árvore de jogo com poda alfa-beta
Fonte: Adaptada de Luger, 2013.
MAX
MIN
MAX
MIN
C
A
B
D E
3
3
3
3
20
0
5
2 2 15
0 2
c1
c3c2
a1 e1d1a2
e2
d2
Observe que o nó A (jogada de MIN) tem β = 3, ou seja, nesse momento, na pior 
das hipóteses, MIN fará a jogada a1. Assim, quando o nó B (jogada de MAX) é expan-
dido e é retornado o valor 5 do estado terminal, sabe-se que MAX escolherá uma 
jogada com o valor no mínimo 5, isto é, se as demais expansões retornarem um 
valor menor que 5, serão ignoradas, e se retornarem um valor maior que 5, serão 
escolhidas. O fato é que o nó B terá um valor no mínimo 5 e que, portanto, pode ser 
podado, já que MIN nunca escolherá a jogada a2.
O nó C (jogada de MAX), nesse ponto, possui α = 3, indicando que na pior das 
hipóteses escolherá a jogada c1. Então, ocorre a expansão de D, que é uma jogada 
de MIN. Como a jogada d1 resultou em valor 0, MIN escolherá ela ou uma jogada 
com valor menor. Em qualquer caso, ambas possuem um valor menor do que α = 3, 
o que indica que MAX nunca escolherá c2. Dessa forma, analisando o nó D, não há 
necessidade de aplicar a jogada d2, portanto toda subárvore pode ser podada. Com 
o nó E ocorre o mesmo caso, portanto a ação e2 nunca será avaliada.
Pode-se perceber que a efetividade da poda alfa-beta depende da ordem em 
que os estados são avaliados. Se no estado D a execução de d1 gerasse um valor 
maior que três, seria necessário avaliar d2 para saber qual ação MIN escolheria. Se 
a ação d2 gerasse como resultado estados com valor menor que 3, a ação d1, e toda 
a subárvore de sua aplicação, teria sido analisada em vão.
Não há como efetuar uma ordenação perfeita, pois isso levaria a um jogo perfei-
to. A tomada de uma ação aleatória para ser analisada já melhora o procedimento 
do MINIMAX, levando sua complexidade de tempo a O(b3m/4). Estratégias de orde-
nação podem ser usadas no xadrez para, por exemplo, tentar capturas primeiro 
e depois ameaças, movimentos para frente, movimentos para trás etc., fazendo 
com que se consiga analisar uma árvore de jogo aproximadamente duas vezes 
mais profunda, O(bm/2).
Apesar de atualmente os programas terem vencido mestres humanos em jogos 
difíceis, implementá-los não é tarefa fácil. Deve-se levar em conta que muitos jogos 
não possuem informações perfeitas, como xadrez ou damas; muitos deles acres-
centam o acaso, como o gamão e jogos em que não se observam todos os estados, 
Resolução de problemas 63
como jogos de cartas. Para esses jogos, outras estratégias avançadas são aplicadas. 
Além disso, de acordo com Arbulu (2020), os robôs já estão se aventurando em 
jogos que demandam habilidades físicas, como o caso do robô que recentemente 
venceu atletas de curling.
Atividade 1
Considere o mapa rodoviário simplificado da Romênia e a tabela de distâncias em 
linha reta até Bucareste que estão a seguir.
Agora, construa e apresente a árvore de busca final na aplicação do algoritmo de busca gulosa para 
encontrar o caminho partindo de Lugoj até Bucareste. Para cada nó da árvore, apresente os valores de 
h(n). Também indique em cada nó a ordem em que as expansões foram feitas.
Oradea
71
75
118
Zerind
Arad
Timisoara
Lugoj
Mehadia
Dobreta
Craiova
Sibiu Fagaras
Bucareste
Giurgiu
Urziceni
Hirsova
Neamt
Iasi
Vaslui
Eforie
Pitesti
Rimnicu Vilcea
111
70
146
75
120
140
151
99
211
142
92
87
97
101
138
90
85 98
86
Origem Distância Cidade Distância
Arad 366 Mehadia 241
Bucareste 0 Neamnt 234
Craiova 160 Oradea 380
Drobeta 242 Pitesti 100
Eforie 161 Rimnicu Vilcea 193
Fagaras 176 Sibiu 253
Giurgiu 77 Timisoara 329
Hirsova 151 Urziceni 80
Iasi 226 Vaslui 199
Lugoj 244 Zerind 374
Atividade 2
Veja o mapa rodoviário simplificado da Romênia e a tabela de distâncias em linha 
reta até Bucareste que estão na questão anterior. Agora, construa e apresente a árvore 
de busca final na aplicação do algoritmo A* para encontrar o caminho partindo de 
Lugoj até Bucareste. Para cada nó da árvore, apresente os valores de f(n), g(n) e h(n). 
Também indique em cada nó a ordem em que as expansões foram feitas.
Atividade 3
Dê uma formulação de problema (estados, estado inicial, ações, modelo de transição, 
teste de objetivo e custo do caminho) para o problema de colorir o mapa do Brasil 
usando somente quatro cores.
64 Inteligência Artificial
CONSIDERAÇÕES FINAIS
Este capítulo apresentou formalmente o que é um problema e determinou o que é 
uma solução. Foram abordados dois tipos de problemas: os problemas cuja solução é 
uma sequência fixa de ações e os problemas competitivos, como os jogos.
Para os problemas que possuem como solução uma sequência de ações, foram 
apresentados os procedimentos de busca por uma solução, a saber: busca cega e 
busca heurística. Na primeira, foram apresentados os algoritmos de busca em largura, 
busca de custo uniforme e busca em profundidade. Na segunda, foram definidos os 
conceitos de heurística e as condições para que uma boa heurística possa ser desen-
volvida. Também foram apresentados a busca gulosa e o algoritmo A*.
Para os problemas competitivos, como os jogos, foi apresentadoa Figura 1.
Figura 1
Abordagens da inteligência artificial
Agindo 
racionalmente
Agindo como um 
humano
Pensando 
racionalmente
Pensando como um 
humano
Inteligência 
artificial
Fonte: Adaptado de Russell e Norvig, 2013. 
Cada uma dessas abordagens é seguida por grupos de pesquisadores diferen-
tes e cada uma possui métodos distintos de estudo, que se complementam no en-
tendimento da IA e no desenvolvimento da área. A seguir serão discutidas essas 
quatro abordagens.
1.1.1 Agindo como um humano
Um computador agindo de maneira humana não implica a implementação de 
processos cognitivos humanos ou mesmo de mecanismos de pensamento dos 
quais os humanos dispõem. É a percepção de que o resultado dado pelo computa-
dor é o resultado a que um humano chegaria.
Nessa linha, o Teste de Turing, proposto por Alan Turing 
(1912-1954) em 1950, foi projetado para verificar se um compu-
tador apresenta um nível satisfatório de inteligência. É formado 
por um interrogador humano, que deve fazer perguntas a uma 
pessoa e a um computador. Os integrantes estão separados fisi-
camente, pois a simulação física de uma pessoa não é necessária 
para a identificação da inteligência. No teste a pessoa deve dar 
O vídeo Inteligência 
Artificial – IBM, da Discovery 
Brasil, mostra como a 
inteligência artificial está 
impactando o mundo.
Disponível em: https://youtu.be/
W95YlM5-iPk. Acesso em: 2 dez. 2020.
Vídeo
Visual Generation/Shutterstock
https://youtu.be/W95YlM5-iPk
https://youtu.be/W95YlM5-iPk
Fundamentos de inteligência artificial 11
respostas verdadeiras, ajudando o interrogador. Já o computador deve convencer 
o interrogador de que é um humano. Se quem faz as perguntas não conseguir 
descobrir se as respostas são dadas por uma pessoa ou uma máquina, então o 
computador passa no teste. Não há qualquer tentativa de se definir o que é pen-
samento e mesmo de implementar algum processo automático que siga essa de-
finição. Basicamente o computador deve imitar o comportamento humano, o que 
Turing chamou de o jogo da imitação (do inglês the imitation game) (TURING, 1950).
Programar um computador para passar no Teste de Turing é uma tarefa árdua, pois 
a máquina deve ter as seguintes habilidades implementadas (RUSSELL; NORVIG, 2013):
Ire
nD
/S
hu
tte
rs
to
ck
Processamento de linguagem natural: a 
comunicação entre as partes em determinado 
idioma é a interface do teste.
Representação do conhecimento: ter uma 
base de conhecimento pré-definida, bem 
como armazenar as informações que recebe 
durante o teste.
Raciocínio automatizado: necessário para 
poder tirar conclusões com base em seu 
conhecimento prévio e nas informações 
recebidas.
Aprendizado de máquina: necessário para 
aprender novos padrões e se adaptar.
Harnad (1991) apresenta o Teste de Turing total, incluindo capacidades de visão 
computacional e robótica, o qual tem como objetivo testar se o computador con-
segue fazer, no mundo real, coisas com objetos de maneira indistinguível a um hu-
mano. Assim, seria possível detectar capacidades de reconhecimento e percepção 
de objetos, manipulação e movimentação.
As capacidades necessárias para uma máquina passar no Teste de Turing tratam 
da maior parte dos assuntos estudados em IA. Mesmo assim, pesquisadores dedi-
cam mais esforços ao estudo dos princípios básicos da inteligência do que propria-
mente a criar uma máquina para passar no teste (RUSSELL; NORVIG, 2013).
1.1.2 Pensando como um humano
Antes de implementar uma máquina que pense como uma pessoa, deve-se es-
tabelecer a forma como os seres humanos pensam, isto é, descobrir de maneira 
precisa os processos envolvidos no pensamento, para que possam ser reproduzi-
dos em uma máquina. Russell e Norvig (2013) descrevem três formas de mapear os 
processos do pensamento:
O filme O jogo da imitação 
retrata uma parte da vida 
de Alan Turing, quando o 
Reino Unido, na época da 
Segunda Guerra Mundial, 
reúne cientistas para que-
brar o código criptográfico 
que os alemães usavam 
para se comunicar com 
seus submarinos.
Direção: Morten Tyldum. Reino Unido: 
Studio Canal; EUA: The Weinstein 
Company, 2014.
Filme
12 Inteligência Artificial
Introspecção:
captando os pensamentos à 
medida que vão aparecendo e se 
desenvolvendo.
Experimentos psicológicos:
observando a pessoa agindo em 
cada circunstância.
Imagens cerebrais:
observando o cérebro agindo em 
cada circunstância.
seam
uss/ Shutterstock
Após o mapeamento, seria possível implementar esses processos como progra-
mas de computador. Assim, observa-se se as entradas e saídas coincidem com o 
que se espera do comportamento humano. Em caso afirmativo, pode-se dizer que 
os processos implementados nos programas estão presentes também nos seres 
humanos.
Essa abordagem se relaciona com a ciência cognitiva, que é uma área de 
estudo multidisciplinar voltada ao estudo dos processos de funcio-
namento da mente humana, muitas vezes de modo empírico, princi-
palmente em termos do conhecimento e de seu desenvolvimento e 
emprego (GARDNER, 1996).
Mapear o pensamento humano e implementá-lo pode não ser 
uma tarefa viável. Isso se deve ao fato de que o comportamento e 
o pensamento humano estão adaptados a um ambiente específico, 
uma coleção de acontecimentos e como cada humano tratou dessas 
diversas situações. Também devem ser levados em consideração os 
estímulos sofridos por cada pessoa, de tal forma que cada um pode 
apresentar, inclusive, um comportamento diferente em situações seme-
lhantes. Contudo, as áreas da computação, mais especificamente da IA, 
e das ciências cognitivas estão em constante evolução, cada uma dando 
suporte à outra.
1.1.3 Pensando racionalmente
Essa abordagem tem como finalidade codificar o que Russell e Norvig (2013) 
chamaram de pensamento correto, ou seja, modelar o processo do raciocínio de 
modo que o resultado seja logicamente correto.
Os primeiros estudos surgiram com Aristóteles (384-322 a.C) e os silogismos. Um 
silogismo (do grego syllogismus, que significa “conclusão” ou “inferência”) é o termo 
pelo qual o filósofo definiu um argumento composto de três proposições, sendo 
Andrey Suslov/Shutterstock
Fundamentos de inteligência artificial 13
que duas delas são afirmativas (ou premissas) e uma é conclusão. O silogismo defi-
ne que a conclusão é deduzida com base nas afirmações (BLANCHÉ; DUBUCS, 1996).
Um exemplo clássico de silogismo é:
Sócrates é um homem.
Todo homem é mortal.
Portanto, Sócrates é mortal.
Essa regra deu início à lógica. Os estudiosos dessa área desenvolveram nota-
ções que tornam possível escrever problemas em linguagem lógica e, assim, aplicar 
programas de computadores que resolvem um problema empregando as regras 
(como os silogismos) para tirar conclusões precisas com base em premissas.
Apesar de ser uma abordagem interessante, nem todo problema é de fácil re-
presentação lógica, e frequentemente se tem extensões da lógica clássica sendo 
aplicadas na representação dos problemas. Por exemplo, quando se precisa traba-
lhar com informações que podem ser contraditórias, deve-se estudar lógica 
paraconsistente (COSTA et al., 1999).
Outro obstáculo enfrentado por essa abordagem é 
a quantidade de recursos computacionais necessária 
para que um problema seja resolvido na prática. Ao se 
debruçar sobre a lógica matemática e a sua aplicação 
em inteligência artificial, logo se percebe que mesmo um 
problema pequeno consegue rapidamente esgotar os re-
cursos computacionais disponíveis para resolvê-lo, seja em 
termos de espaço em memória e armazenamento, seja em 
tempo de execução.
1.1.4 Agindo racionalmente
Russell e Norvig (2013) chamam essa abordagem de agente racional. Um agen-
te é alguma coisa que age; no caso da IA, é uma entidade computacional, isto é, um 
programa, uma máquina etc. Nesse sentido, um agente racional age em situações 
que buscam encontrar o melhor resultado ou o melhor resultado possível quando 
a situação é desconhecida ou incerta.
Essa abordagem possui vantagem em relação à visãoo algoritmo 
MINIMAX e a poda alfa-beta. Os conceitos de problemas e suas soluções, bem 
como seus algoritmos, não estão limitados a esse conteúdo. Problemas com in-
formações parciais (nos quais o agente não tem a visão do estado como um todo), 
problemas com agentes em ambientes desconhecidos, jogos estocásticos (que 
incluem um elemento aleatório), entre outros, são domínio da inteligência artificial 
e muita pesquisa se faz sobre eles.
REFERÊNCIAS
ARBULU, R. Robô vence atletas de curling usando novo método de deep learning. Olhar Digital, 24 set. 
2020. Disponível em: https://olhardigital.com.br/noticia/robo-vence-atletas-de-curling-usando-novo-
metodo-de-deep-learning/107594. Acesso em: 19 nov. 2020.
GERSTING, J. L.; IÓRIO, V. M. Fundamentos matemáticos para a ciência da computação: um tratamento 
moderno de matemática discreta. 5. ed. Rio de Janeiro: LTC, 2012.
LUGER, G. Inteligência artificial. 6. ed. São Paulo: Pearson Education do Brasil, 2013.
RUSSELL, S.; NORVIG, P. Inteligência artificial. 3. ed. Rio de Janeiro: Elsevier Brasil, 2013.
ZIVIANI, N. Projeto de algoritmos com implementações em Pascal e C. 3. ed. São Paulo: Cengage Learning, 
2010.
66 Inteligência Artificial
3
Raciocínio lógico e 
conhecimento
Raciocinar sobre fatos é um dos aspectos entendidos como inteligência. 
Dotar agentes computacionais de inteligência, portanto, tem como um dos pas-
sos fazê-los representar conhecimento e raciocinar sobre ele. Tirar conclusões 
lógicas demanda um formalismo muito bem definido, bem como operações 
que possam deduzir novas afirmações com base em um conjunto de afirma-
ções conhecidas. O formalismo matemático que pode ser usado com esse pro-
pósito é a lógica.
Nesse sentido, na Seção 3.1 são definidos os conceitos básicos necessários 
para o entendimento de agentes lógicos. Na Seção 3.2 é abordada a lógica, 
discorrendo sobre lógica proposicional, prova de teoremas, problemas de sa-
tisfatibilidade e lógica de primeira ordem. O raciocínio baseado em lógica é 
apresentado na seção 3.3. Já na Seção 3.4, o assunto planejamento é abordado. 
Por fim, a representação do conhecimento e as ontologias são apresentadas na 
Seção 3.5
3.1 Agentes lógicos 
Vídeo Analisando os agentes de resolução de problemas, o conhecimento sobre as 
transições de estados está impregnado no código e deve ser implementado para 
resolver aquele problema. Pode-se dizer que estão limitados a resolver um proble-
ma específico e não conseguem deduzir outras informações.
Os agentes baseados em conhecimento, por sua vez, usam o conhecimento 
sobre algum domínio que pode ser informado ao agente e, por meio de proces-
sos lógicos, podem tirar conclusões que não se limitam ao problema em questão. 
Eles são capazes de manter representações internas de conhecimento e operá-las 
como formas de raciocínio (RUSSEL; NORVIG, 2013).
O conhecimento que o agente possui e pode manipular é chamado de base de 
conhecimento (ou KB, do inglês Knowledge Base). Uma KB é basicamente um conjun-
to de afirmações sobre o mundo, denominadas sentenças. Quando as sentenças 
são dadas, isto é, não derivadas, podem ser chamadas de axiomas. Para adicionar 
novas sentenças à base de conhecimento, pode-se usar inferência, que é a aplica-
ção de regras lógicas que derivam novas afirmações. Para ilustrar esses processos, 
será usado aqui um problema clássico da área, chamado de Mundo de Wumpus.
O Mundo de Wumpus é uma caverna com um grande tesouro. Um guerreiro 
pode se aventurar nesse mundo para encontrá-lo, mas terá alguns obstáculos. Pri-
meiramente o mundo é composto de um labirinto de salas conectadas por passa-
Raciocínio lógico e conhecimento 67
gens, sendo que algumas salas possuem um poço sem fundo, que não dá chance 
ao guerreiro de se salvar caso caia nele. Além disso, o terrível monstro Wumpus 
habita a caverna e devora qualquer guerreiro que entra na sua sala. O guerreiro 
tem uma, e somente uma, flecha que pode atingir e matar Wumpus.
A Figura 1 apresenta um exemplo de instância do Mundo de Wumpus. Esse ce-
nário termina quando o guerreiro morre ou sai da caverna. O ambiente é composto 
de uma grade de 4 x 4 salas e o guerreiro sempre começa na posição 1 x 1. As po-
sições de Wumpus e do outro são escolhidas ao acaso e uma e uma sala, exceto a 
primeira, pode conter um poço com 20% de probabilidade.
Figura 1
Exemplo do Mundo de Wumpus
4
3
2
1
1 2 3 4
Fedor
Fedor
Ouro
Fedor
INÍCIO
Brisa
Brisa
Brisa
Brisa
BrisaBrisa
Poço
Poço
Poço
Fonte: Adaptada de Russel; Norvig, 2013.
O guerreiro pode se mover para frente, virar à esquerda 90º ou virar à direita 
90º. Ao se movimentar para frente, se houver uma parede, o guerreiro se mantém 
na mesma posição. Caso ele se mova para uma sala com o Wumpus vivo ou um 
poço, é morte instantânea. Também está disponível a ação atirar, que atira uma 
flecha em linha reta para frente do guerreiro. A flecha continua até que o Wumpus 
seja atingido, e nesse caso ele é morto, ou até que uma parede seja encontrada. O 
guerreiro também pode agarrar o objeto que se encontra na mesma sala, no caso 
o ouro. A última ação disponível para o guerreiro é escalar para sair da caverna, 
somente disponível na sala 1 x 1.
O guerreiro também possui cinco sensores, e cada um dá um tipo de informa-
ção que pode ser verdadeira ou falsa:
• Na sala onde está Wumpus e nas salas adjacentes (não diagonais), o guerreiro percebe um fedor.
• Nas salas adjacentes a um poço, o guerreiro percebe uma brisa.
• Na sala onde está o ouro, o guerreiro percebe um brilho.
• Se o guerreiro caminhar para uma parede, percebe um impacto.
• Quando Wumpus morre, ele emite um grito, percebido em todas as salas da caverna.
68 Inteligência Artificial
As percepções são dadas como uma lista de símbolos na seguinte ordem: fedor, 
brisa, brilho, impacto e grito. Um exemplo é: [Fedor, Brisa, Brilho, Nada, Nada], que 
seria exatamente o que o guerreiro receberia ao entrar na sala 2 x 3: fedor, brisa e 
brilho, sem impacto ou grito.
A implementação de um agente baseado em conhecimento para o Mundo de 
Wumpus deve indicar as ações do guerreiro para chegar até o ouro e sair da caver-
na. O principal desafio desse agente é o fato de desconhecer completamente o con-
teúdo das salas da caverna e, para conseguir atingir seu objetivo, precisa raciocinar 
sobre o que já conhece e as novas percepções.
Alguns ambientes podem ser inóspitos, com o ouro em um poço ou cercado por 
poços. Em alguns casos, portanto, o agente precisará decidir se sai da caverna sem 
a recompensa ou arrisca sua vida.
Com essas informações, pode-se analisar a exploração de uma caverna por um 
agente. O agente começa na sala [1, 1] e sabe que é uma sala segura. A Figura 2 
apresenta o conhecimento que o agente tem da caverna. A sala em que ele se en-
contra está assinalada com A e uma sala segura com OK.
Figura 2
Estado inicial do agente
Fonte: Adaptada de Russel; Norvig, 2013.
[1,4]
[1,3]
[1,2]
[1,1]
OK
A
[3,4]
[3,3]
[3,2]
[3,1]
[2,4]
[2,3]
[2,2]
[2,1]
[4,4]
[4,3]
[4,2]
[4,1]
A primeira percepção do agente é: [Nada, Nada, Nada, Nada, Nada]. Com isso, 
ele consegue deduzir que os quadrados vizinhos ([1,2] e [2,1]) são seguros. A Figura 
3 apresenta o resultado dessa conclusão.
Você pode jogar uma simulação 
do Mundo de Wumpus no link a 
seguir: http://thiagodnf.github.
io/wumpus-world-simulator/. 
Acesso em: 7 dez. 2020.
Site
http://thiagodnf.github.io/wumpus-world-simulator/
http://thiagodnf.github.io/wumpus-world-simulator/
Raciocínio lógico e conhecimento 69
Figura 3
Primeira conclusão do agente com base na percepção
Fonte: Adaptada de Russel; Norvig, 2013.
[1,4]
[1,3]
[1,2]
OK
[1,1]
OK OK
A
[3,4]
[3,3]
[3,2]
[3,1]
[2,4]
[2,3]
[2,2]
[2,1]
[4,4]
[4,3]
[4,2]
[4,1]
Assuma a movimentação do agente para frente, isto é, indo à sala [2, 1]. Nesse 
momento, o agente recebe a seguinte percepção: [Nada, Brisa, Nada, Nada, Nada]. 
Comohá brisa em [2, 1], ele conclui que há um poço em uma sala adjacente. As úni-
cas salas que não são seguras e sobre as quais o agente ainda não tem nenhuma 
informação (e, portanto, poderiam ter um poço) são [2, 2] e [3, 1]. A Figura 4 apre-
senta o resultado desse percurso. Uma sala visitada é marcada com V, a sala que 
contém brisa com B, e uma sala com poço com P. Como o agente não sabe onde 
está o poço, as duas salas candidatas são marcadas com P?.
Figura 4
Resultado de caminhar para a sala [2, 1]
Fonte: Adaptada de Russel; Norvig, 2013.
[1,4]
[1,3]
[1,2]
[1,1]
OK OK
OK
B
P?
P?
V
A
[3,4]
[3,3]
[3,2]
[3,1]
[2,4]
[2,3]
[2,2]
[2,1]
[4,4]
[4,3]
[4,2]
[4,1]
70 Inteligência Artificial
O agente precisa ser cauteloso, então não pode caminhar para uma sala onde 
não há garantia de que não há um poço. A única sala sabidamente segura e não 
visitada é a [1, 2]; portanto o agente faz toda a movimentação para chegar a ela. 
Assumindo que ele chega a essa sala, imediatamente recebe a percepção: [Fedor, 
Nada, Nada, Nada, Nada]. O Fedor indica que o Wumpus está ou na sala [1, 3] ou na 
[2, 2], já que a sala [1, 1] é sabidamente segura. Com certeza o Wumpus não está na 
sala [2, 2], senão o agente teria encontrado fedor ao analisá-la [2, 1]. Dessa forma, 
conclui-se que o Wumpus se encontra na sala [1, 3] (representado por W!!!).
Outra conclusão que pode ser inferida é a presença de poço na sala [3, 1], já que 
a falta de brisa na sala [1, 2] indica que não há poço em [1, 3], [2, 2] nem em [1, 1] 
(representado por P!!!).
Depois dessas inferências, o agente também conclui que a sala [2, 2] é segura e 
pode se movimentar para lá. A Figura 5 apresenta o conhecimento do agente após 
as inferências.
Figura 5
Resultado de caminhar para a sala [1, 2]
Fonte: Adaptada de Russel; Norvig, 2013.
[1,4]
[1,3]
[1,2]
[1,1]
OK OK
OKOK
B
P!!!V
A
[3,4]
[3,3]
[3,2]
[3,1]
[2,4]
[2,3]
[2,2]
[2,1]
[4,4]
[4,3]
[4,2]
[4,1]
Supondo que o agente consiga se mover para [2, 2] e depois para [2, 3], ele rece-
berá como uma das percepções o brilho. Ele agarra o objeto e volta pelo caminho 
percorrido até a entrada da caverna.
A principal característica do raciocínio lógico é que todas as conclusões que o 
agente infere são corretas, desde que as informações disponíveis estejam também 
corretas. Dessa forma, se, no Mundo de Wumpus, as afirmações iniciais e regras 
(como as que determinam onde tem poço ou Wumpus) estiverem corretas, aplicar 
um mecanismo de inferência que mantém a consistência da base gerará afirma-
ções derivadas que são seguramente verdadeiras.
W!!!
Raciocínio lógico e conhecimento 71
3.2 Lógica 
Vídeo A lógica é um dos formalismos usados para representar conhecimento e racio-
cinar sobre ele. Ela é basicamente uma linguagem contendo frases e sentenças, 
com as quais se pode representar e raciocinar sobre propriedades e elementos do 
mundo (LUGER, 2013).
Várias lógicas estão disponíveis, cada qual com um poder de re-
presentação diferente da outra. Nesta obra será abordada a mais 
simples: a lógica proposicional, ou cálculo proposicional. Nessa lógi-
ca, uma proposição, ou declaração, é uma sentença que pode ser 
verdadeira ou falsa (GERSTING; IÓRIO, 2012), por exemplo:
 • Cinquenta é igual a vinte.
 • A chuva molha.
 • Existe vida em outros planetas.
A primeira é uma proposição falsa; a segunda é verdadeira; já a 
terceira é uma proposição que pode ser verdadeira ou falsa, mas 
não sabemos ainda seu valor. Sentenças do tipo “Como você está?” 
e “Ele é vaidoso” não são consideradas proposições, pois, no caso 
da primeira, não possui um valor verdadeiro ou falso e, no caso da 
segunda, o sujeito não está definido.
Para agrupar sentenças, usam-se os conectivos, por exemplo: 
“tem sol e está frio”. No caso dessa frase, o conectivo e tem um signifi-
cado que dá o valor lógico da sentença como um todo. Aqui usam-se 
letras maiúsculas para denotar sentenças, conhecidas como letras de 
proposição, ou símbolos proposicionais. Já os elementos que combinam as senten-
ças para formar outras mais complicadas são os conectivos lógicos.
Assumindo que o conectivo lógico ∧ representa o e na frase, então pode-se es-
crever: P ∧ Q, assumindo P como sendo “Tem sol” e Q como sendo “está frio”. Para 
escrever as sentenças, usa-se um alfabeto, definido como:
• Símbolos proposicionais: {A, B, C, ...}.
• Parênteses: ( e ).
• Conectivos lógicos: ¬, ∧, ∨, → e ↔.
• Símbolos de valores verdade: V e F.
Toda lógica possui uma sintaxe e uma semântica. Uma sintaxe define quais 
sentenças são permitidas ou, mais formalmente, quais sentenças são bem forma-
das, também conhecidas como fórmulas bem formadas (FBF). A sintaxe da lógica 
proposicional pode ser definida pelas seguintes regras:
Vídeo
Para saber mais sobre 
como a lógica é tida como 
a ciência do raciocínio, 
recomenda-se o vídeo A 
Lógica como ciência do ra-
ciocínio, apresentado por 
Itala M. L. D’Ottaviano. 
Disponível em: https://youtu.be/
LxhOLJLuNcY. Acesso em: 7 dez. 
2020.
Saiba mais
Para o estudo mais avançado de 
inteligência artificial (IA), pode-se 
estudar a lógica de primeira ordem 
e as lógicas não clássicas, como 
as lógicas modais, dependendo 
do tipo de aspecto que se quer 
representar.
72 Inteligência Artificial
Todas os 
símbolos 
proposicionais 
e símbolos de 
valores verdade 
são fórmulas 
bem formadas.
Se α é uma 
fórmula bem 
formada, então 
(α) também é 
bem formada.
Se α é uma 
fórmula bem 
formada, 
então ¬α 
também é 
bem formada.
Se α e β são 
fórmulas bem 
formadas, então 
α ∧ β, α ∨ β, α 
→ β e α ↔ β 
também são 
bem formadas.
Somente 
são bem 
formadas as 
fórmulas que 
seguem essas 
regras.
Nessa definição, as letras α e β denotam qualquer fórmula bem formada, desde 
simples até complexas.
Define-se também um literal como sendo uma sentença atômica positiva ou 
negativa (com o conectivo de negação). Dessa forma, sejam P, Q, R e S letras propo-
sicionais, os seguintes exemplos são FBFs:
 • (P ∨ Q) ∧ R
 • ¬(¬S ∧ P) ∨ (Q ∨ ¬¬R)
Já os seguintes exemplos não são FBFs:
 • (P Q)
 • P ¬ Q
 • (P ∨ Q) ∧∧ R
A semântica da lógica proposicional define as regras para se determinar se uma 
sentença é verdadeira ou falsa com respeito a um estado do mundo. Por exemplo, 
a sentença “Está chovendo” depende de como está o clima. A atribuição de um valor 
verdade a sentenças é chamado de interpretação, que é uma situação de verdade ou 
falsidade em um mundo possível. Se a fórmula for verdadeira para uma interpre-
tação, então essa interpretação é chamada formalmente de modelo. Formalmente, 
diz-se que uma interpretação é um mapeamento dos símbolos proposicionais para { 
V, F }. A semântica da lógica proposicional pode ser definida da seguinte forma:
Uma interpretação 
é a atribuição de 
valores verdade V e 
F para cada símbolo 
proposicional.
O símbolo V tem 
valor verdadeiro e o 
símbolo F tem valor 
falso.
P ∨ Q é verdadeiro 
se, e somente 
se, P ou Q forem 
verdadeiros.
¬P é verdadeiro se, 
e somente se, P for 
falso.
P → Q é verdadeiro 
exceto se P for 
verdadeiro e Q 
falso.
P ∧ Q é verdadeiro 
se, e somente 
se, P e Q forem 
verdadeiros.
P ↔ Q é verdadeiro 
se, e somente 
se, ambos forem 
verdadeiros ou 
ambos forem falsos.
Com a apresentação da semântica, consegue-se construir uma tabela-verdade, 
com todos os possíveis valores lógicos dos elementos de uma sentença e o seu re-
sultado final. Sejam P e Q afirmações, a Tabela 1 mostra a tabela-verdade de todos 
Raciocínio lógico e conhecimento 73
os conectivos apresentados. Os valores lógicos Verdadeiro e Falso são representa-
dos por V e F respectivamente.
Tabela 1
Tabela-verdade dos conectivos
P Q ¬P P ∧ Q P ∨ Q P → Q P ↔Q
V V F V V V V
V F F F V F F
F V V F V V F
F F V F F V V
Fonte: Elaborada pelo autor.
Com base na sintaxe e na semântica, pode-se criar a tabela-verdade de qualquer 
sentença, simples ou complexa. Inicia-se listando todos os símbolos proposicionais 
à esquerda e todas as combinaçõesde valores verdade possíveis. Por exemplo, seja 
a sentença (P ∨ Q) → ¬R. Como há três símbolos proposicionais, tem-se 23 linhas na 
tabela, que são todas as interpretações possíveis.
Para facilitar a compreensão, pense na tabela-verdade construída por partes. 
Depois das combinações de valores verdade dos símbolos proposicionais, tem-se a 
aplicação das interpretações em (P ∨ Q) do lado esquerdo, em ¬R do lado direito, e 
da fórmula completa no meio, em destaque (Tabela 2).
Tabela 2
Tabela verdade de (P ∨ Q) → ¬R
P Q R P ∨ Q (P ∨ Q) → ¬R ¬R
V V V V F F
V V F V V V
V F V V F F
V F F V V V
F V V V F F
F V F V V V
F F V F V F
F F F F V V
Fonte: Elaborada pelo autor.
No caso dessa fórmula, diz-se, por exemplo, que a interpretação m = {P = verda-
deiro, Q = verdadeiro, R = falso} é um modelo.
Quando uma FBF α possui um modelo m, isto é, uma interpretação que torna a 
FBF verdadeira, diz-se que m satisfaz α. Assim, se uma FBF α possui uma interpreta-
ção que a torna verdadeira, diz-se que α é satisfatível (ou consistente). Denota-se 
M(α) a todos os modelos de uma FBF α.
Quando uma FBF α possui valor verdadeiro para todas as interpretações possí-
veis, α é chamada de tautologia, ou α é dita válida. Se uma FBF assume valor falso 
para todas as interpretações é chamada de contradição, ou inválida. Nesse caso, 
diz-se que α é insatisfatível (ou inconsistente).
Por exemplo, sejam as fórmulas P ∨ ¬P e ¬P ∧ (P ∧ ¬Q). A Tabela 3 apresenta a 
tabela-verdade da primeira fórmula, e a Tabela 4 mostra a tabela-verdade da se-
gunda. Conforme pode-se perceber, a primeira é uma tautologia, e a segunda uma 
contradição.
O problema de determinar se uma 
fórmula é satisfatível, isto é, se há 
uma atribuição que a torne verda-
deira, também conhecido como 
SAT, foi o primeiro problema pro-
vado ser NP-completo, em 1971 
por Stephen Cook (COOK, 1971). 
Muitos problemas da ciência da 
computação são essencialmente 
problemas de satisfatibilidade, 
como o caso dos problemas de 
satisfação de restrições (CSP).
Saiba mais
74 Inteligência Artificial
Tabela 3
Tabela-verdade de P ∨ ¬P
P P ∨ ¬P ¬P
V V F
F V V
Fonte: Elaborada pelo autor.
Tabela 4
Tabela-verdade de ¬P ∧ (P ∧ ¬Q)
P Q ¬P ¬P ∧(P ∧¬Q) (P ∧¬Q) ¬Q
V V F F F F
V F F F V V
F V V F F F
F F V F F V
Fonte: Elaborada pelo autor.
Duas fórmulas α e β são ditas logicamente equivalentes quando seus valores verda-
de dos símbolos proposicionais de α e β são os mesmos para todas as interpretações. 
Por exemplo, P e ¬(¬P) são logicamente equivalentes. Também são equivalentes P → Q 
e (¬P) ∨ Q. Denotam-se duas FBFs α e β equivalentes como α ≡ β. Desse conceito tiram-
-se várias equivalências notáveis, também chamadas de leis, a saber:
Elemento neutro de ∧: α ∧ V ≡ α.
Elemento neutro de ∨: α ∨ F ≡ α.
Elemento anulador de ∧: α ∧ F ≡ F.
Elemento anulador de ∨: α ∨ V ≡ V.
Comutatividade de ∧: α ∧ β ≡ β ∧ α.
Comutatividade de ∨: α ∨ β ≡ β ∨ α.
Associatividade de ∧: (α ∧ β) ∧ γ ≡ α ∧ (β ∧ γ).
Associatividade de ∨: (α ∨ β) ∨ γ ≡ α ∨ (β ∨ γ).
Dupla negação: ¬(¬α) ≡ α.
Contrapositiva: α → β ≡ ¬β → ¬α.
Condicional: α → β ≡ ¬α ∨ β.
Bicondicional: α ↔ β ≡ (α → β) ∧ (β → α).
De Morgan: ¬(α ∧ β) ≡ ¬α ∨ ¬β.
De Morgan: ¬(α ∨ β) ≡ ¬α ∧ ¬β.
Distributiva de ∧ sobre ∨: α ∧ (β ∨ γ) ≡ (α ∧ β) ∨ (α ∧ γ).
Distributiva de ∨ sobre ∧: α ∨ (β ∧ γ) ≡ (α ∨ β) ∧ (α ∨ γ).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Ha
ri 
Sy
ah
pu
tra
/ s
hu
tte
rs
to
ck
Raciocínio lógico e conhecimento 75
Perceba que essas leis funcionam em qualquer direção, isto é: p → q é equiva-
lente a ¬p ∨ q. Também, ¬a ∨ b é equivalente a a → b.
Foram usadas letras gregas nas leis para denotar que elas são como esquemas 
de substituição, ou seja, α pode ser uma afirmação bem complexa. Por exemplo, 
seja α a afirmação (p ∧ q) e seja β a afirmação (q → (r ∨ s)), então a lei do condicional 
pode ser aplicada da seguinte forma:
(p ∧ q) → (q → (r ∨ s)) ≡ ¬ (p ∧ q) ∨ (q → (r ∨ s))
Uma das grandes vantagens no uso da lógica para representar o conhecimento 
é que, junto com ela, tem-se noções de verdade, consequência e inferência natu-
ralmente ou com formalismo matemático. Todo o arcabouço formal apresentado, 
bem como as equivalências notáveis são a base de um mecanismo de raciocínio 
baseado em lógica.
3.3 Raciocínio baseado em lógica 
Vídeo Para raciocinar em lógica, usa-se o conceito de consequência lógica entre fór-
mulas. Uma fórmula β é consequência lógica de α, denotada por α ⊨ β, quando 
todo modelo de α também é modelo de β. Pode-se escrever da seguinte forma:
α ⊨ β se, e somente se, M (α) ⊆ M (β)
Convém ressaltar que essa definição é mais forte para α, isto é, todo modelo de 
α também é modelo de β, mas β pode ter outros modelos que não satisfazem α.
Representando a consequência lógica como tabelas-verdade, diz-se que α ⊨ β 
se, e somente se, α → β for uma tautologia. Pode-se dizer também que uma FBF β é 
consequência lógica de várias FBFs α1, α2, ..., αn, denotada como α1, α2, …, αn ⊨ β se, 
e somente, (α1 ∧ α2 ∧ ... αn ) → β for uma tautologia. Nesse caso, as fórmulas α1, α2, 
..., αn são chamadas de axiomas, ou premissas, de β. Por exemplo, seja α1 = (P → Q), 
α2 = ¬Q e β = ¬P. Para provar que (P → Q), ¬Q ⊨ ¬P, constrói-se a tabela-verdade de 
((P → Q) ∧ ¬Q) → ¬P, conforme a Tabela 5.
Tabela 5
Tabela-verdade de ((P → Q) ∧ ¬Q) → ¬P
P Q P → Q ¬Q (P → Q) ∧ ¬Q ((P → Q) ∧ ¬Q) → ¬P ¬P
V V V F F V F
V F F V F V F
F V V F F V V
F F V V V V V
Fonte: Adaptada de Chang; Lee, 1997.
Um outro conceito importante é que se β é consequência lógica de α1, α2, ..., αn, 
então a fórmula (α1 ∧ α2 ∧ ... αn ) → β é chamada de teorema e β é dita a conclusão 
do teorema (CHANG; LEE, 1997).
Assim, provar um teorema pode ser feito por meio da enumeração de todas as 
interpretações baseadas nos símbolos proposicionais e no cálculo do valor verdade 
do teorema. O problema dessa abordagem é que, como já visto, se a fórmula tiver 
76 Inteligência Artificial
n símbolos proposicionais, sua tabela-verdade terá 2n linhas, sendo exponencial em 
relação ao número de símbolos proposicionais.
Com base no conceito de satisfatibilidade, tem-se uma relação com a validade, 
a saber, uma FBF α é satisfatível se, e somente se, ¬α não for válida. Dessa forma, 
pode-se elaborar o seguinte:
α ⊨ β se, e somente se, α ∧ ¬β for insatisfatível
Essa técnica usada para provar que α ∧ ¬β não é satisfatível é clássica na mate-
mática e na lógica e é chamada reductio ad absurdum, ou redução ao absurdo, pro-
va por refutação ou prova por contradição. Em outras palavras, para se provar que 
β é consequência de α, assume-se que β seja falsa e demonstra-se que, juntamente 
com α, ela leva a uma contradição. Nesse caso, como ¬β gerou uma contradição a 
partir de α, β necessariamente deve ser verdadeira (RUSSEL; NORVIG, 2013).
Uma prova é uma sequência de conclusões tiradas das afirmações que levam 
ao objetivo. As conclusões são derivadas por meio de regras de inferência. A regra 
de inferência mais popular é a Modus Ponens, descrita como:
α → β, α
β
Essa regra diz que, se forem conhecidas as sentenças α → β e α, então pode-
-se deduzir β. Um exemplo de aplicação pode ser apresentado com as seguintes 
proposições: 
 • α: Chove.
 • β: Faz frio.
Assim, imagine as afirmações:
 • α → β: Se chove, então faz frio.
 • α: Chove.
As afirmações dizem que se chove, então faz frio. Depois, afirma-se que está 
chovendo, portanto deduz-se que está fazendo frio.
Outra regra de inferência conhecida é a Eliminação da Conjunção, que pode 
ser representada da seguinte forma:
α ∧ β
α
Essa regra diz que, se uma sentença com uma conjunção (um e) é verdadeira, 
então qualquer um dos lados da conjunção, sozinho, também é verdadeiro. Por 
exemplo, se a sentença “Chove e faz frio” for verdadeira, então “Chove” é verdadei-
ra e “Faz frio” também é (pois a conjunção é comutativa).
As regras de inferência também podem ser escritas com a notação de derivação 
com o símbolo ⊢. Por exemplo, Modus Ponens fica:
α → β, α⊢ β
As afirmações antes do símbolo ⊢ são conhecidas e o que vem depois é deduzi-
do. Uma diferença entre as regras de inferência e as leis é que as leis apresentam 
equivalências nos dois sentidos, já as regras de inferência não. Isto é, não é possível 
Raciocínio lógico e conhecimento 77
deduzir o lado esquerdo de uma regra a partir do lado direito. O Quadro 1 apresen-
ta as regras de inferência mais conhecidas.
Quadro 1
Regras de inferência
Nome Sigla Regra
Adição AD α⊢ α∨ β
Eliminação da conjunção EC α ∧ β ⊢ α
Conjunção CONJ α, β ⊢ α ∧ β
Absorção ABS α → β ⊢ α→ (α ∧ β)
Modus Ponens MP α → β, α ⊢ β
Modus Tollens MT α → β, ¬β ⊢ ¬α
Silogismo disjuntivo SD
α ∨ β, ¬α ⊢ ¬β
α ∨β, ¬β ⊢ ¬α
Silogismo hipotético SH α → β, β → γ ⊢ α → γ
Dilema construtivo DC α → β, γ→ δ, α ∨ γ ⊢ β ∨ δ
Dilema destrutivo DD α → β, γ → δ,¬β ∨ ¬δ ⊢¬α ∨ ¬γ
Fonte: Elaborado pelo autor.
Seja um conjunto de sentenças conhecidas, chamadas base de conhecimento 
(KB). Provar que uma sentença α é verdadeira em KB é efetuar uma prova de α 
usando como base KB. Uma maneira de provar α com base em KB é efetuar um 
encadeamento de regras de inferência e leis (equivalências notáveis) sobre KB até 
se conseguir a sentença α. Por exemplo, sejam as seguintes afirmações:
 • Se as uvas caem, então a raposa as come.
 • Se a raposa as come, então estão maduras.
 • As uvas estão verdes ou caem.
E tenha como objetivo provar que:
 • A raposa come as uvas se, e somente se, as uvas caem.
O primeiro passo é usar símbolos proposicionais para representar as afirma-
ções, por exemplo:
 • p: as uvas caem.
 • q: a raposa come as uvas.
 • r: as uvas estão maduras.
Dessa forma, as afirmações podem ser representadas pelas seguintes senten-
ças, rotuladas como Ri:
R1) p → q
R2) q → r
R3) ¬r ∨ p
E a conclusão a ser derivada é:
Q) q ↔ p
A partir de agora, a prova é feita aplicando-se as leis e regras de inferência até 
que a afirmação Q seja encontrada. Primeiramente se aplica a lei do condicional 
(α → β ≡ ¬α ∨ β) em R3, gerando uma nova afirmação como resultado (R4). Do lado 
78 Inteligência Artificial
direito será apontada a lei ou regra de inferência utilizada e as afirmações nas quais 
foram aplicadas. O traço separa as premissas das afirmações deduzidas. A base 
fica:
R1) p → q
R2) q → r
R3) ¬r ∨ p
R4) r → p (Condicional, R3)
Logo após, pode-se aplicar o silogismo hipotético em R2 e R4, sendo que a base 
fica:
R1) p → q
R2) q → r
R3) ¬r ∨ p
R4) r → p (Condicional, R3)
R5) q → p (SH, R2 e R4)
Usando as afirmações R5 e R1, pode-se aplicar a regra da conjunção. Perceba a 
ordem em que as afirmações são usadas para a regra, resultando na seguinte base:
R1) p → q
R2) q → r
R3) ¬r ∨ p
R4) r → p (Condicional, R3)
R5) q → p (SH, R2 e R4)
R6) (q → p) ∧ (p → q) (CONJ, R5 e R1)
Ao final, aplica-se a lei do bicondicional, resultando na seguinte base:
R1) p → q
R2) q → r
R3) ¬r ∨ p
R4) r → p (Condicional, R3)
R5) q → p (SH, R2 e R4)
R6) (q → p) ∧ (p → q) (CONJ, R5 e R1)
R7) q ↔ p (Bicondicional, R6)
A afirmação R7 é exatamente a que queríamos provar, o que demonstra que 
essa afirmação decorre da base de conhecimento inicial (R1, R2 e R3).
Raciocínio lógico e conhecimento 79
Uma vez definidas a sintaxe e semântica da lógica proposicional, pode-se usá-la 
para criar uma base de conhecimento para o Mundo de Wumpus. Para facilitar, 
serão usados símbolos proposicionais com índices subscritos para indicar as posi-
ções [x, y] em que um elemento se encontra:
 • Px,y é verdadeiro se existe um poço na posição [x, y].
 • Wx,y é verdadeiro se Wumpus está na posição [x, y].
 • Bx,y é verdadeiro se o agente percebe uma brisa na posição [x, y].
 • Sx,y é verdadeiro se o agente percebe um fedor na posição [x, y].
A base inicial contém informações imutáveis do mundo, isto é, são verdadeiras 
em qualquer mundo de Wumpus, pois fazem parte das regras do jogo, a saber:
 • R1: ¬P1,1
 • R2: B1,1 ↔ (P1,2 ∨ P2,1)
 • R3: B2,1 ↔ (P1,1 ∨ P2,2 ∨ P3,1)
Logo após o agente visitar as duas primeiras salas, inclui-se na base:
 • R4: ¬B1,1
 • R5: B2,1
Com a definição do processo de inferência, pode-se começar a tirar conclusões 
com base nas afirmações. Primeiramente elimina-se a bicondicional de R2, obten-
do-se R6 e a seguinte base:
R1: ¬P1,1
R2: B1,1 ↔ (P1,2 ∨ P2,1)
R3: B2,1 ↔ (P1,1 ∨ P2,2 ∨ P3,1)
R4: ¬B1,1
R5: B2,1
R6: ( B1,1 → (P1,2 ∨ P2,1) ) ∧ ( (P1,2 ∨ P2,1) → B1,1) (Bicondicional, R2)
Em seguida, aplica-se a eliminação da conjunção em R6:
R1: ¬P1,1
R2: B1,1 ↔ (P1,2 ∨ P2,1)
R3: B2,1 ↔ (P1,1 ∨ P2,2 ∨ P3,1)
R4: ¬B1,1
R5: B2,1
R6: ( B1,1 → (P1,2 ∨ P2,1) ) ∧ ( (P1,2 ∨ P2,1) → B1,1) (Bicondicional, R2)
R7: (P1,2 ∨ P2,1) → B1,1 (Elim.Conjunção, R6)
80 Inteligência Artificial
Depois, aplica-se a contrapositiva em R7, obtendo-se:
R1: ¬P1,1
R2: B1,1 ↔ (P1,2 ∨ P2,1)
R3: B2,1 ↔ (P1,1 ∨ P2,2 ∨ P3,1)
R4: ¬B1,1
R5: B2,1
R6: ( B1,1 → (P1,2 ∨ P2,1) ) ∧ ( (P1,2 ∨ P2,1) → B1,1) (Bicondicional, R2)
R7: (P1,2 ∨ P2,1) → B1,1 (Elim.Conjunção, R6)
R8: ¬B1,1 → ¬ (P1,2 ∨ P2,1) (Contrapositiva, R7)
Logo após, aplica-se Modus Ponens com R8 e a percepção do agente R4:
R1: ¬P1,1
R2: B1,1 ↔ (P1,2 ∨ P2,1)
R3: B2,1 ↔ (P1,1 ∨ P2,2 ∨ P3,1)
R4: ¬B1,1
R5: B2,1
R6: ( B1,1 → (P1,2 ∨ P2,1) ) ∧ ( (P1,2 ∨ P2,1) → B1,1) (Bicondicional, R2)
R7: (P1,2 ∨ P2,1) → B1,1 (Elim.Conjunção, R6)
R8: ¬B1,1 → ¬ (P1,2 ∨ P2,1) (Contrapositiva, R7)
R9: ¬ (P1,2 ∨ P2,1) (MP, R4, R8)
E finalmente aplica-se a Lei de Morgan em R9, obtendo-se R10, como pode ser 
observado a seguir:
R1: ¬P1,1
R2: B1,1 ↔ (P1,2 ∨ P2,1)
R3: B2,1 ↔ (P1,1 ∨ P2,2 ∨ P3,1)
R4: ¬B1,1
R5: B2,1
R6: (B1,1 → (P1,2 ∨ P2, 1)) ∧ ( (P1,2 ∨ P2,1) → B1,1) (Bicondicional, R2)
R7: (P1,2 ∨ P2,1) → B1,1 (Elim.Conjunção, R6)
R8: ¬B1,1 → ¬ (P1,2 ∨ P2,1) (Contrapositiva, R7)
R9: ¬ (P1,2 ∨ P2,1) (MP, R4, R8)
R10: ¬P1,2 ∧ ¬P2,1 (De Morgan, R9)
Raciocínio lógico e conhecimento 81
Pelo processo de inferência, a afirmação R10 é consequência lógica das regras 
R1, R2 e R3 e das percepções R4 e R5. Isto é, consegue-se provar que não há poço em 
[1, 2] (dado por ¬P1,2) e que não há poço em [2, 1] (dado por ¬P2,1). Dessa forma, per-
cebe-se que todo o processo de raciocínio pode ser mapeado para transformações 
de afirmações por meio de leis de equivalência e regras de inferência.
Como deve ter ficado evidente, muitos pontos de escolha aparecem nesse 
processo. Qual regra aplicar? Sobre quais afirmações aplicar? Como saber quais 
conclusões são necessárias? Se for implementado como um algoritmo de busca, fa-
cilmente a árvore de busca pode tomar proporções gigantescas. Se por acaso uma 
regra de inferência não for implementada, como o caso da bicondicional, a prova 
apresentada anteriormente não seria possível. Ademais, a grande diversidade de 
conectivos pode ser um fator de crescimento de possibilidades na busca.
Assim, para implementação de procedimentos de prova, classicamente pode-se 
transformar todas as afirmações em um formato padrão, conhecido como forma 
normal conjuntiva (CNF, do inglês Conjuntive Normal Form). Trata-se de um formato 
em que todas as fórmulas são convertidas para uma conjunção de disjunções, nas 
quais as negações incidem somente sobre símbolos proposicionais, por exemplo: 
(p ∨ ¬q ∨ r) ∧ (¬p ∨ s ∨ ¬r). Cada parte disjuntiva da fórmula é chamada de cláusula 
e, assim, uma base pode ser facilmente convertida para uma conjunção de várias 
cláusulas.
Por exemplo, a fórmula B1,1 ↔ (P1,2 ∨ P2,1) pode ser convertida para CNF a partir 
da aplicação das leis de equivalências, com os seguintes passos:
1. (B1,1 → (P1,2 ∨ P2,1)) ∧ ((P1,2 ∨ P2,1) → B1,1) (Bicondicional)
2. (¬B1,1 ∨ P1,2 ∨ P2,1) ∧ (¬(P1,2 ∨ P2,1) ∨ B1,1) (Condicional)
3. (¬B1,1 ∨ P1,2 ∨ P2,1) ∧ ((¬P1,2 ∧ ¬P2,1) ∨ B1,1) (De Morgan)
4. (¬B1,1 ∨ P1,2 ∨ P2,1) ∧ (¬P1,2 ∨ B1,1) ∧ (¬P2,1 ∨ B1,1) (Distributiva)
Como foram aplicadas leis de equivalência, pode-se dizer que:
B1,1 ↔ (P1,2 ∨ P2,1) ≡ (¬B1,1 ∨ P1,2 ∨ P2,1) ∧ (¬P1,2 ∨ B1,1) ∧ (¬P2,1 ∨B1,1)
Com todas as fórmulas em um padrão, pode-se definir um procedimento de in-
ferência baseada em somente uma regra de inferência: o Princípio da Resolução 
(ROBINSON, 1965). Esse princípio diz que dadas duas cláusulas C1 e C2, se houver 
um literal L em C1 que está de maneira complementar em C2, então pode-se remo-
ver L e seu complemento de C1 e C2 e construir uma disjunção de ambas as cláusu-
las. O resultado é chamado resolvente de C1 e C2 (CHANG; LEE, 1997). Por exemplo, 
sejam as duas cláusulas:
 • C1: P ∨ R
 • C2: ¬P ∨ Q
Como se observa a presença de P em C1 e ¬P em C2, pode-se aplicar o princípio 
da resolução em C1 e C2, obtendo como resolvente: R ∨ Q.
82 Inteligência Artificial
Uma importante propriedade é dada por um teorema que afirma que qualquer 
resolvente de duas cláusulas é uma consequência lógica dessas cláusulas. Caso se 
tenha duas cláusulas unitárias, isto é, contendo somente um literal, para as quais 
se pode aplicar o princípio da resolução, então, como resultado, obtém-se uma 
cláusula vazia, denotada por ⊥ e cujo valor verdade é sempre falso.
Dado um conjunto S de cláusulas, uma dedução de C a partir de S é uma sequên-
cia finita de cláusulas C1, C2, ..., Ck, tal que cada Ci ou é uma cláusula de S ou é um 
resolvente de cláusulas que precedem Ci e Ck = C. Uma dedução da cláusula vazia ⊥ 
é chamada refutação, ou prova de S (CHANG; LEE, 1997). Como consequência, deri-
var ⊥ a partir de um conjunto de cláusulas S indica que S é insatisfatível, isto é, não 
há qualquer valoração de seus literais que torne S verdadeira.
Esse conceito pode ser aplicado para definir um procedimento de prova com 
base no princípio da resolução. Dado um conjunto de cláusulas S, formado por C1, 
C2, ..., Ck, provar que Q é verdadeiro é o mesmo que provar que a fórmula C1 ∧ C2 ∧ ... 
∧ Ck → Q é válida. Como o conjunto de cláusulas pode ter um número muito grande 
de símbolos proposicionais, torna-se inviável calcular a tabela-verdade dessa fór-
mula. Então, pode-se provar que a seguinte fórmula é insatisfatível:
C1 ∧ C2 ∧ ... ∧ Ck ∧ ¬Q
Essa prova é conhecida como prova por refutação. Assim, basta aplicar uma se-
quência de princípios da resolução nesse novo conjunto de cláusulas até que seja 
derivado ⊥.
Para aplicar a prova por refutação no Mundo de Wumpus, segue-se o mesmo 
processo. Por exemplo, seja como base de conhecimento (KB) somente R2 e R4, para 
facilitar o processo. Dessas duas, deseja-se saber se não há poço em [1, 2], isto é, 
¬P1,2. Assim, a base de conhecimento é uma conjunção (conectivo e) de tudo o que 
é conhecido:
KB = R2 ∧ R4 = (B1,1 ↔ (P1,2 ∨ P2,1)) ∧ (¬B1,1)
Como apresentado anteriormente, para provar uma afirmação α, deve-se con-
verter KB ∧ ¬α em CNF e aplicar regras de inferência até que seja encontrada a 
cláusula vazia ⊥. Assim, convertendo para CNF, tem-se as seguintes cláusulas:
 • C1: ¬P2,1 ∨ B1,1
 • C2: ¬B1,1 ∨ P1,2 ∨ P2,1
 • C3: ¬P1,2 ∨ B1,1
 • C4: ¬B1,1
 • C5: P1,2
Aplicando-se o princípio da resolução em C3 e C4, obtém-se C6, a saber:
C1: ¬P2,1 ∨ B1,1
C2: ¬B1,1 ∨ P1,2 ∨ P2,1
C3: ¬P1,2 ∨ B1,1
C4: ¬B1,1
C5: P1,2
C6: ¬P1,2 RESOLUÇÃO, C3, C4
Raciocínio lógico e conhecimento 83
Aplicando-se o princípio da resolução em C5 e C6, obtém-se C7, que é a cláusula 
vazia, a saber:
C1: ¬P2,1 ∨ B1,1
C2: ¬B1,1 ∨ P1,2 ∨ P2,1
C3: ¬P1,2 ∨ B1,1
C4: ¬B1,1
C5: P1,2
C6: ¬P1,2 RESOLUÇÃO, C3, C4
C7: ⊥ RESOLUÇÃO, C5, C6
Dessa forma, está provado pela base de conhecimento que P1,2 gera uma con-
tradição, indicando que ¬P1,2 é uma consequência lógica de KB.
O processo apresentado anteriormente levou em consideração que se sabia 
exatamente quais cláusulas deveriam ser operadas. Contudo, em um processo de 
busca não há tal informação e deve-se ter alguma percepção nas escolhas a serem 
feitas. O Algoritmo 1 apresenta um processo simples de resolução, sem qualquer 
tipo de otimização ou heurística para a escolha de cláusulas a serem resolvidas.
Algoritmo: Resolução
Dados Recebidos: KB e α
Retorno: Verdadeiro ou Falso
1 Cláusulas ← Transformação de KB ∧ ¬α para CNF
2 Novas ← ∅
3 REPITA
4 PARA CADA Ci, Cj ∈ Cláusulas FAÇA
5 Resolventes ← RESOLVER(Ci, Cj)
6 SE Resolventes contém ⊥ ENTÃO
7 RETORNAR Verdadeiro
8 FIM SE
9 Novas ← Novas ∪ Resolventes
10 FIM PARA
11 SE Novas ⊆ Cláusulas ENTÃO
12 RETORNAR Falso
13 FIM SE
14 Cláusulas ← Cláusulas ∪ Novas
15 FIM REPITA
Algoritmo 1
Algoritmo de resolução simples
Fonte: Adaptado de Russel; Norvig, 2013.
Esse algoritmo tem vários desafios a serem abordados, que são objeto de pes-
quisa avançada na área. Dentre eles, têm-se:
84 Inteligência Artificial
Quais cláusulas 
escolher primeiro?
Como descobrir 
rapidamente que 
resolver duas 
cláusulas não 
está gerando 
informações já 
conhecidas?
Tendo duas 
cláusulas 
escolhidas, quais 
literais escolher 
para resolver 
primeiro?
Como detectar 
que, em algum 
momento, o 
procedimento não 
para porque não é 
possível se provar 
α?
Outros aspectos importantes se referem ao poder de representação da lógica 
proposicional. Nesse aspecto, outras representações e lógicas são usadas, como a 
lógica de primeira ordem em que se representam objetos e relações, bem como 
quantificação para os objetos. É possível escrever afirmações usando o símbolo ∀, 
que significa para todo, e ∃, que significa existe; por exemplo:
∀x Homem(x) → Mortal(x)
Homem(Sócrates)
Essas afirmações indicam que “Para todo x, se x é um homem, então x é mortal” 
e “Sócrates é homem”. Aplicando um procedimento de inferência, seria possível 
provar Mortal(Sócrates), isto é, “Sócrates é mortal”.
Ademais, outras lógicas podem ser empregadas para representação de outros 
aspectos, como tempo, valores parcialmente verdadeiros, crenças etc.
3.4 Planejamento 
Vídeo Como visto aqui, a IA se dedica também ao estudo de ações racionais, sendo 
o planejamento parte inerente e importante da IA. Pode-se definir planejamento 
como a elaboração de um plano de ação para atingir um objetivo.
Um agente de resolução de problemas baseado em busca pode encontrar se-
quências de ações até que um estado objetivo seja encontrado, mas como trata 
somente de estados atômicos, depende de boas heurísticas para ter um desempe-
nho aceitável. Já um agente baseado em inferência, como o do Mundo de Wumpus, 
sofre pela explosão combinatória quando há muitos estados e ações; por exemplo, 
a ação que move o agente um passo à frente deve ser repetida nas quatro direções, 
por vários passos no tempo e n2 localizações (tamanho da caverna).
Assim, uma representação mais adequada dos estados e ações, baseada na ex-
pressividade e nos processos de inferência da lógica, deve ser utilizada, como a 
PDDL (do inglês Planning Domain Description Language) (MCDERMOTT et al., 1998). 
Ela é uma linguagem derivada do Strips (do inglês Stanford Research Institute Pro-
blem Solver) e é uma forma simples de representar os estados, ações, pré-con-
dições e efeitos dessas ações. Em PDDL, cada estado é representado como uma 
conjunção de fluentes.
Um fluente é uma condição que pode mudar ao longo do tempo. Por exemplo, 
Em(Caminhão1, SãoPaulo) ∧ Em(Caminhão2, Curitiba) indica que o Caminhão1 está 
em São Paulo e o Caminhão2 está em Curitiba. Não são permitidos fluentes não ins-
tanciados em um estado, como Em(x, y), pois não se sabe qual é o caminhão nem 
Para entender um pouco 
sobre como era a navega-
ção autônoma do veículo 
de exploração espacial 
Curiosity, que usa um pla-
nejador, você pode assistir 
ao vídeo Curiosity Drives 
Itself With Autonav Tech.
Disponível em: https://youtu.be/
zZlonRahRMM. Acesso em: 7 dez. 
2020.
Vídeo
https://youtu.be/zZlonRahRMM
https://youtu.be/zZlonRahRMM
Raciocínio lógico e conhecimento 85
onde está, ou seja, as variáveis x e y não possuem valor ou não estão instanciadas. 
Nesse caso, é usada a suposição do mundo fechado, isto é, se alguma afirmação 
não está presente, então é assumida falsa. Dessa forma, em PDDL não se represen-
ta fluentes negativos em um estado, como¬Em(Caminhão1, RiodeJaneiro).
Um estado sempre é representado por uma conjunção de fluentes, em que 
todas as afirmações são positivas. Essa conjunção pode ser facilmente manipu-
lada por meio de regras de inferência. Já as ações são um conjunto de esquemas 
que descrevem o que muda e o que permanece o mesmo como resultado de sua 
aplicação.
Em planejamento clássico, considera-se que a aplicação de uma ação deixa a 
maioria das coisas inalteradas. Assim, no resultado de uma ação em PDDL é es-
pecificado somente o que muda; o que permanece inalterado não é mencionado.
Um esquema de ação deve especificar as pré-condições para aplicação da ação 
e qual é o seu efeito; por exemplo:
AÇÃO (Voar(p, de, para)
PRECOND: Em(p, de) ∧ Avião(p) ∧ Aeroporto(de) ∧ Aeroporto(para)
EFEITO: ¬Em(p, de) ∧ Em(p, para))
Esse esquema define a ação Voar(p, de, para), que, quando aplicada em um avião 
p, efetua o voo do aeroporto de até o aeroporto para. Os símbolos p, de e para são 
variáveis não instanciadas (isto é, sem valor). Como precondições, p deve estar no 
aeroporto de (Em(p, de)) e deve ser um avião (Avião(p)), e de e para devem ser ae-
roportos (Aeroporto(de) ∧ Aeroporto(para)). Como efeito, o avião deixa de estar no 
aeroporto de (¬Em(p, de)) e passa a estar no aeroporto para (Em(p, para)).
Uma ação instanciada ocorre quando são dados valores às variáveis; por 
exemplo:
AÇÃO(Voar(Voo1015, CWB, CGH)
PRECOND: Em(Voo1015, CWB) ∧ Avião(Voo1015) ∧ Aeroporto(CWB) ∧ Aeroporto(CGH)
EFEITO: ¬Em(Voo1015, CWB) ∧ Em(Voo1015, CGH))
Nesse exemplo, a variável p foi instanciada para Voo1015, a variável de tem o 
valor CWB e a variável para tem o valor CGH. Ou seja, todas as ocorrências foram 
substituídas.
Uma ação pode ser executada em um estado s se a sua precondição for uma 
consequência lógica de s. Assim, se as precondições de uma ação forem satisfeitas 
em um estado s, diz-se que a ação é aplicável em s. O resultado da aplicação de 
uma ação é um estado s’ formado pelos fluentes de s, removendo os fluentes que 
aparecem negativos nos efeitos da ação (também chamados de lista de exclusão) 
e adicionando os fluentes que aparecem positivos nos efeitos da ação (também 
chamados de lista de adição). No exemplo apresentado sobre a ação Voar(Voo1015, 
CWB, CGH), tem-se:
86 Inteligência Artificial
 • Lista de exclusão: Em(Voo1015, CWB).
 • Lista de adição: Em(Voo1015, CGH).
O estado inicial de um problema de planejamento é uma conjunção de fluen-
tes instanciados. Pela suposição do mundo fechado, qualquer fluente não mencio-
nado é falso.
O objetivo de um problema de planejamento é uma conjunção de fluentes, que 
pode conter variáveis e ser positivo ou negativo. O problema é resolvido quando 
é possível encontrar uma sequência de ações que gera um estado que satisfaz o 
objetivo. Por exemplo, seja como objetivo o seguinte estado: Em(p, CGH) ∧ Avião(p). 
Assim, os seguintes estados satisfazem esse objetivo:
 • Em(Voo1015, CGH) ∧ Avião(Voo1015).
 • Em(Voo8080, CGH) ∧ Avião(Voo8080) ∧ Avião(Voo3435) ∧ Em(Voo3435, CWB).
Como exemplo, seja um domínio famoso em planejamento conhecido como 
Mundo dos Blocos, o qual é formado por blocos sobre uma mesa e alguns blocos po-
dem estar sobre os outros. O problema inicia com os blocos em alguma disposição 
especificada e tem como objetivo encontrar quais ações devem ser efetuadas para 
que, ao final, eles estejam em outra disposição informada. A Figura 6 apresenta um 
possível problema no domínio do Mundo dos Blocos. São dados o estado inicial e 
o estado objetivo. As ações disponíveis são Mover(b, x, y), que move o bloco b que 
está sobre x para cima de y, e MoverParaMesa(b, x) que move o bloco b que está 
sobre x para cima da mesa.
Figura 6
Mundo dos Blocos
A
Estado Inicial Estado Objetivo
A
B
B
C
C
Fonte: Adaptada de Russel; Norvig, 2013.
Nessa descrição serão usadas letras maiúsculas para denotar os blocos A, B e C, 
bem como a Mesa. Letras minúsculas são usadas para denotar variáveis sem valor 
atrelado. Como afirmativas, tem-se:
 • Sobre(x, y): Verdadeiro quando o bloco x está sobre o bloco y.
 • Bloco(x): Verdadeiro se o elemento x for um bloco.
 • Livre(x): Verdadeiro se não há qualquer bloco sobre x.
 • x≠y: Verdadeiro se o elemento x é diferente de y.
Raciocínio lógico e conhecimento 87
O problema apresentado na Figura 6 pode ser descrito como apresentado a 
seguir, com base em uma adaptação simplificada de PDDL:
INÍCIO(Sobre(A, Mesa) ∧ Sobre(B, Mesa) ∧ Sobre(C, A) ∧ Bloco(A) ∧ Bloco(B) 
∧ Bloco(C) ∧ Livre(B) ∧ Livre(C))
OBJETIVO(Sobre(A, B), Sobre(B, C))
AÇÃO(Mover(b, x, y),
PRECOND: Sobre(b, x) ∧ Livre(b) ∧ Livre(y) ∧ Bloco(b) ∧ Bloco(y) ∧ (b≠x) ∧ 
(b≠y) ∧ (x≠y),
EFEITO: Sobre(b, y) ∧ Livre(x) ∧ ¬Sobre(b, x) ∧ ¬Livre(y))
AÇÃO(MoverParaMesa(b, x),
PRECOND: Sobre(b, x) ∧ Livre(b) ∧ Bloco(b) ∧ (b≠x),
EFEITO: Sobre(b, Mesa) ∧ Livre(x) ∧ ¬Sobre(b, x))
No caso desse problema, a solução é a seguinte sequência de ações:
1. MoverParaMesa(C, A).
2. Mover(B, Mesa, C).
3. Mover(A, Mesa, B).
A Figura 7 ilustra a aplicação dessas ações. Os blocos tracejados denotam as 
suas posições antigas, e a seta indica a movimentação efetuada.
Figura 7
Solução para o problema do Mundo dos Blocos
Fonte: Adaptada de Russe; Norvig, 2013.
A
A
Estado Inicial
Mover (B, Mesa, C)
MoverParaMesa(C, A)
Mover(A, Mesa, B) 
C
A
B
BB
B
B
C
C
C
C
A
A
88 Inteligência Artificial
Segundo Weld (1999), um algoritmo que resolve um problema de planejamento 
deve receber uma descrição das entidades do mundo e da situação atual, dos obje-
tivos, e das ações que podem ser aplicadas. Como resultado, esse algoritmo retor-
na a sequência de ações que levam um agente do estado atual ao estado objetivo.
Computacionalmente o problema de planejamento foi abordado pela primeira 
vez por Fikes e Nilsson (1971), com a proposta de representação em Strips. Con-
tudo, eles não obtiveram êxito em resolver problemas que hoje são considerados 
simples, devido à alta complexidade do problema (BYLANDER, 1994). Em 1992, 
Kautz e Selman (1992) apresentam uma proposta de tradução do problema de 
planejamento para satisfatibilidade, conhecido como SATPLAN. Embora promisso-
ra, essa abordagem gastava muitos recursos computacionais para representar os 
problemas e encontrar as soluções. Uma abordagem baseada em grafos surgiu 
em 1995, com a transformação do problema de planejamento em uma estrutura 
chamada Grafo de Planos. A partir desse trabalho, Kautz e Selman (1999) unificaram 
as abordagens baseadas em grafos e satisfatibilidade, melhorando ainda mais a 
representação dos problemas.
Esses algoritmos formaram a base de pesquisa na área de planejamento e fo-
ram inspiração para vários outros algoritmos, inclusive baseados em outros forma-
lismos e otimizações lógicas (MONTAÑO, 2006; RINTANEN, 2017). Contudo, apesar 
desses avanços, o planejamento no mundo real demanda representações e opera-
ções mais complexas. Como exemplos, têm-se o tratamento da duração que uma 
ação leva para ser executada e a restrição no uso de recursos. Dessa forma, no 
mundo real não é incomum um agente ter que planejar ações em ambientes incer-
tos ou com a ajuda ou impedimento de outros agentes.
Para representar e planejar usando tempo de execução e consumo de recur-
sos, deve-se estender a linguagem clássica para representar essas informações, 
além das restrições de ordem de execução. Planejar nesse ambiente pode ser feito 
com uma abordagem de planejamento e depois escalonamento. Primeiramente as 
ações precisam ser planejadas na ordem em que devem ser executadas, satisfa-
zendo os objetivos do problema. Depois é feito o escalonamento para atender as 
restrições temporais e de recursos (RUSSEL; NORVIG, 2013).
Quando a quantidade de estados, ações e possíveis ramificações gera um espa-
ço de ações muito grande, uma abordagem possível é o planejamento hierárqui-
co. Essa abordagem separa o problema em níveis de abstração diferentes por meio 
da decomposição hierárquica, fazendo com quese tenha vários níveis de planeja-
mento com um conjunto pequeno de ações (RUSSEL; NORVIG, 2013).
Por exemplo, para tirar férias de duas semanas em Fernando de Noronha, par-
tindo de Curitiba, um plano possível seria:
 • ir ao aeroporto de Curitiba;
 • pegar o Voo 1015 para Fernando de Noronha;
 • aproveitar as férias durante duas semanas;
 • ir ao aeroporto de Fernando de Noronha;
 • pegar o Voo 8080 para Curitiba;
 • ir para casa.
Raciocínio lógico e conhecimento 89
Claramente a ação Ir ao aeroporto de Curitiba pode ser decomposta em várias 
outras, como:
 • dirigir até o estacionamento do aeroporto de Curitiba;
 • estacionar;
 • pegar o transfer;
 • entrar no terminal.
Além disso, cada uma dessas ações pode ser decomposta até que se chegue em 
um nível de ações que a pessoa possa executar. Pode-se observar, portanto, que a 
tarefa de planejamento é complexa, principalmente quando aplicada a problemas 
do mundo real. Tratamento de recursos, tempo e ambientes parcialmente observá-
veis são somente alguns dos desafios que a área de planejamento tem.
3.5 Representação do conhecimento 
Vídeo Pode-se observar que, com o aumento exponencial da informação armazenada 
no mundo, técnicas de organização e interpretação têm tido um grande destaque 
em empresas e na área científica. O principal objetivo é melhorar o tratamento des-
sas informações, bem como o raciocínio sobre elas, processamento etc.
Dessa forma, faz-se necessário um mecanismo para representar o conhecimen-
to relativo a um domínio, por meio de regras que ditam as relações e a combinação 
de conceitos encontrados nele. Em domínios mais simples, a maneira pela qual o 
conhecimento é representado não é um aspecto muito importante, bastando que 
o formalismo tenha as características necessárias. Já em domínios complexos, 
como dirigir um automóvel, é necessária uma representação mais geral e flexível. 
Representar elementos gerais e abstratos, como objetos físicos, crenças, eventos e 
tempo, faz parte da engenharia ontológica (RUSSEL; NORVIG, 2013).
Pode-se definir ontologia 1 como um conjunto de conceitos bási-
cos e suas relações que representa a maneira como as pessoas in-
terpretam um assunto (ou domínio) de maneira formal, tornando-o 
compreensível para humanos e computadores (MIZOGUCHI, 2004).
Considerando um agente que precisa conhecer e interagir com 
o ambiente e com outras entidades presentes nele, pode-se tomar 
como exemplo o Mundo de Wumpus, em que o guerreiro precisa 
caminhar no ambiente, sentir as percepções, interagir com Wumpus 
(atirar) e com o ouro. Nessa interação com o mundo e com os agen-
tes pode haver problemas por falta de entendimento das proprieda-
des e características das entidades envolvidas. No caso de ambientes multiagentes, 
esses problemas são ampliados, pois todos os agentes precisam ter o mesmo en-
tendimento sobre o ambiente e as entidades.
Dessa forma, uma ontologia pode ser usada para representar a semântica dos 
conceitos e dos relacionamentos encontrados no domínio e nas entidades. A Figura 
8 mostra a estrutura geral de conceitos, conhecida como ontologia superior.
1
Ontologia vem do grego ontos (ser) 
e logia (estudo); é um ramo da 
filosofia que tem como objetivo o 
estudo dos seres e das suas pro-
priedades mais gerais e comuns. 
Pode-se dizer que abrange o 
estudo da classificação dos objetos 
para uma organização da realidade 
(GUARINO, 1998).
90 Inteligência Artificial
Figura 8
Ontologia superior
Fonte: Adaptada de Russel; Norvig, 2013.
QualquerCoisa
EventosGeneralizados
ObjetosRepresentacionais
ObjetosAbstratos
Conjuntos
Categorias Coisas
Animais Agentes Sólido Líquido Gás
Material
Humanos
Números
Sentenças Medidas
Intervalo
Momentos
Lugares ObjetosFísicos Processos
Tempos Pesos
Analisando o Mundo de Wumpus, percebe-se que o estudo de seus seres, isto é, 
sua ontologia, é muito simples. Por exemplo, com relação ao tempo, algo só acon-
tece quando o guerreiro age e todas as mudanças são instantâneas. Para melhorar 
a representação, poderia ser permitida a inclusão de outros poços ou espécies de 
animais (fora o Wumpus) na caverna. Para tal, seria necessária uma taxonomia bio-
lógica para que o guerreiro pudesse prever seus comportamentos.
Como a ontologia do Mundo de Wumpus é simples, algumas alterações como 
as apresentadas podem ser feitas para se obter uma ontologia mais geral. Isso é 
possível para qualquer ontologia específica.
Construir uma ontologia, portanto, deve levar em consideração que ela pode 
ser aplicada a qualquer domínio específico, incluindo-se axiomas específicos do 
domínio. Ou seja, não se pode usar nenhum artifício ou manobra artificial para ge-
rar as representações. Uma ontologia não é somente uma hierarquia de conceitos, 
mas também suas relações, restrições e axiomas, descrevendo relações semânti-
cas entre seus elementos.
Os objetos são comumente organizados em categorias. Apesar de grande par-
te do raciocínio ser feito em nível de objetos individuais, muito pode ser concluído 
em nível de categoria. Por exemplo, quando um usuário de um sistema de vendas 
on-line quer fazer uma compra, ele geralmente deseja comprar uma bola de bas-
quete qualquer, e não determinada bola de basquete (RUSSEL; NORVIG, 2013).
As categorias também são organizadas por meio de uma herança, isto é, uma 
subcategoria que pode herdar aspectos de outras categorias. Por exemplo, a sub-
categoria Fruta é uma subclasse de Alimento. Assim, elementos de uma categoria 
chamada Maçã, que herdam de Fruta, são ditos alimentos. Se todas as instâncias de 
alimentos forem sabidamente comestíveis, essa característica é herdada e pode-se 
afirmar que as maçãs são comestíveis também. A Figura 9 ilustra essa herança.
Raciocínio lógico e conhecimento 91
Figura 9
Herança de alimento
Alimentos
Frutas Verduras
AlfaceLaranjaMaça ...
Fonte: Elaborada pelo autor.
Essas relações de classe e subclasse formam o que se chama de taxonomia. 
Relações mais complexas, como composição (ser parte de), conjuntos disjuntos 
(ou é de um tipo ou de outro, mas não os dois), pertinência (fazer parte de um 
grupo), eventos (que ocorrem em determinado instante), eventos mentais (como 
crenças e saber) etc., são conceitos avançados que também devem ser possíveis 
de se representar.
Mas atenção! Não se deve confundir taxonomia com ontologia. Uma ontologia 
trata de estabelecer relações semânticas entre os elementos, enquanto uma ta-
xonomia organiza a informação de maneira hierárquica (VITAL; CAFE, 2011). Para 
representar esse conhecimento, faz-se necessário o uso de um formalismo, muitas 
vezes baseado na lógica matemática, que permita expressar os fatos e raciocinar 
sobre eles.
Muitos aspectos podem ser representados, por exemplo, em lógica de primeira 
ordem. Seja a representação de um objeto b como uma bola de basquete. Poderia 
ser feito como BolaDeBasquete(b) ou poderia ser representado por uma operação 
de reificação (ou coisificação), isto é, pela transformação da proposição em objeto. 
Dessa forma, poderia representar Elemento(b, BolasDeBasquete) ou b ∈ BolasDe-
Basquete. Da mesma forma é possível indicar que BolasDeBasquete é uma subca-
tegoria de Bolas, representado como: BolasDeBasquete ⊂ Bolas.
Regras também podem ser facilmente escritas. Por exemplo, a regra seguinte 
afirma que todo objeto que pertence à categoria das bolas de basquete é esférico:
(x ∈ BolasDeBasquete) → Esférica(x)
Para representar eventos, pode-se usar um formalismo alternativo chamado 
cálculo de eventos. Nele, o fluente Em(João, Curitiba) é um objeto que representa 
o fato de João estar em Curitiba, mas que, por si só, não indica se é verdadeiro ou 
não. Para tal, usa-se o predicado T; por exemplo: T(Em(João, Curitiba, t), que indica 
que João está em Curitiba no instante t. Outros predicados também são definidos 
para indicar que um evento inicia ou termina em um instante etc.
92 Inteligência Artificial
Para representar eventos mentais, como crenças, deve-se usar uma lógicamo-
dal. Na lógica clássica, pode-se expressar somente afirmações como “P é verda-
deiro”, enquanto na lógica modal, pode-se expressar afirmações como “A sabe P”, 
por meio de um operador modal de conhecimento, por exemplo: KA P
2 (RUSSEL; 
NORVIG, 2013).
Outro aspecto de representação que deve ser levado em consideração é que 
o aprendizado de novas afirmações, que antes eram desconhecidas ou conheci-
damente falsas, leva à quebra da monotonicidade das lógicas clássicas (RUSSEL; 
NORVIG, 2013). Uma lógica é monotônica quando a adição de novas afirmações na 
base de conhecimento não altera as afirmações que podem ser provadas. O pro-
cesso de raciocínio humano não é monotônico, visto que, a partir do momento que 
uma pessoa aprende (adiciona afirmações na sua base de conhecimento), algumas 
afirmações podem ser provadas e outras não mais, por conta do seu aprendizado.
Nesse aspecto entra o raciocínio default e dois formalismos muito conheci-
dos: a lógica default e a circunscrição. Esse raciocínio tenta abstrair o conceito de 
informações que são conhecidas, exceto se uma afirmação em contrário seja adi-
cionada. Por exemplo, quando uma pessoa olha um carro na rua, mesmo o vendo 
de lado, já tem uma conclusão subentendida de que esse automóvel tem quatro 
rodas, por mais que não esteja observando as quatro rodas. Essa conclusão é al-
cançada por default (RUSSEL; NORVIG, 2013).
A lógica default é um formalismo no qual se escrevem regras default, isto é, 
conclusões que podem ser tiradas a partir da base de dados. Por exemplo, pode-se 
tirar a conclusão de que se X é um pássaro, então, por default, X voa. Essa expres-
são em lógica de primeira ordem seria inconsistente, pois nem todos os pássaros 
voam (como os pinguins). Em lógica de primeira ordem são necessárias as especi-
ficações das exceções, e a lógica default cria regras sem precisar listá-las (SHANAH-
AN, 1997).
A circunscrição é um formalismo que mapeia o fato de um predicado ser “tão 
falso quanto possível”, ou seja, é falsa para todos os objetos, exceto aqueles que 
são sabidamente verdadeiros. Para obter tal representação, a circunscrição usa ló-
gica de segunda ordem para minimizar o valor de um predicado em uma base, isto 
é, para tornar o predicado verdadeiro somente naqueles objetos da base que o 
forçam a ser verdadeiro, e falso nos demais (SHANAHAN, 1997).
Pesquisas na área de representação do conhecimento e ontologias seguem 
promissoras. Ontologias também são aplicadas em assistentes virtuais pessoais 
(VPA, do inglês Virtual Personal Assistants) para dar contexto, rastrear diálogos etc. 
(WESSEL et al., 2018). Na área da saúde, elas também são muito usadas, como o 
exemplo do trabalho de Azzi, Iglewski e Nablesi (2018), que projetaram uma on-
tologia para auxiliar um sistema de suporte à decisão usado no diagnóstico de 
pneumonia.
Para representação de conhecimento na web, tem-se a RDF (do inglês Resource 
Description Framework), que é um modelo padrão de intercâmbio de informações 
na web (BRICKLEY; GUHA, 2004). A OWL (do inglês Ontology Web Language) define 
uma lógica de descrição de ontologias na web; ela foi projetada para dar significado 
A semântica da lógica modal 
é mais complexa e não será 
comentada aqui.
2
Vale ressaltar o projeto 
Protégé, da Universidade 
de Stanford, que é uma 
plataforma livre e gratuita 
para construção de ontolo-
gias e sistemas inteligentes.
Disponível em: https://protege.stan-
ford.edu/. Acesso em: 7 dez. 2020.
Saiba mais
No vídeo O que é Web 
Semântica?, publicado por 
Waldo Flores, o assunto 
Web Semântica é explicado 
usando exemplos do coti-
diano e até de filmes.
Disponível em: https://youtu.be/mz-
vot402R8s. Acesso em: 7 dez. 2020.
Vídeo
https://protege.stanford.edu/
https://protege.stanford.edu/
https://youtu.be/mzvot402R8s
https://youtu.be/mzvot402R8s
Raciocínio lógico e conhecimento 93
à informação, e não só representá-la, facilitando assim a interpretação de seu con-
teúdo (SMITH; WELTY; MCGUINNESS, 2004). Segundo Berners-Lee, Hendler e Lassila 
(2001), ontologias e OWL são tecnologias usadas na busca pela Web Semântica, isto 
é, uma visão da web na qual os dados estão vinculados, interligados e possuem 
significado.
Atividade 1
Defina agentes baseados em conhecimento.
Atividade 2
Usado as equivalências notáveis e regras de inferência, demonstre que se pode inferir 
q a partir de p → q, p ∧ r, isto é:
p → q, p ∧ r ⊢ q
Atividade 3
Usando as equivalências notáveis e regras de inferência, demonstre que se pode inferir 
¬p a partir de p → ¬q, r → q e r, isto é:
p → ¬q, r → q, r ⊢ ¬p
Atividade 5
Por que é necessário usar uma lógica não monotônica na representação do 
conhecimento?
Atividade 4
Dado o cenário do Mundo dos Blocos apresentado a seguir, mostre sua descrição usan-
do a versão simplificada de PDDL apresentada nesta obra. Depois, apresente a sequên-
cia de ações necessárias para sair da posição inicial e chegar ao objetivo.
A
Estado Inicial Estado Objetivo
A
B
B
C
C
CONSIDERAÇÕES FINAIS
Este capítulo apresentou agentes lógicos e baseados em formalismos matemáticos 
para expressar raciocínio sobre ações. Viu-se que eles não se limitam ao problema 
em questão, pois o conhecimento do mundo é representado de maneira geral e o 
mecanismo de raciocínio é aplicado sobre ele. Esse conhecimento geral foi represen-
tado por meio da lógica matemática e, para o processo de raciocínio, foram usadas as 
inferências lógicas.
94 Inteligência Artificial
Um dos grandes aspectos do raciocínio, visto neste capítulo, é o planejamento, 
isto é, dada uma situação inicial, uma situação final e um conjunto de possíveis ações, 
descobrir uma sequência de passos para sair da situação inicial até a final.
Por fim, representar o conhecimento do mundo é uma tarefa difícil, que demanda 
abstração e direcionamento ao domínio específico. Assim, discutiu-se também a re-
presentação do conhecimento e alguns mecanismos disponíveis para tal.
REFERÊNCIAS
AZZI, S.; IGLEWSKI, M.; NABLESI, V. Design of a Pneumonia Ontology for Diagnosis Decision Support 
System. International Journal of Health and Medical Engineering, v. 12, n. 10, 2018.
BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The Semantic Web: a new form of Web content that is 
meaningful to computers will unleash a revolution of new possibilities. Scientific American, maio 2001.
BRICKLEY, D.; GUHA, R. RDF vocabulary description language 1.0: RDF schema. World Wide Web Consortium. 
10 fev. 2004. Disponível em: https://www.w3.org/2001/sw/RDFCore/TR/WD-rdf-schema-20030117/. 
Acesso em: 7 dez. 2020.
BYLANDER, T. The computational complexity of propositional STRIPS planning. Artificial Intelligence, v. 69, 
n. 1-2, p. 165-204, 1994.
CHANG, C. L.; LEE, R. C. T. Symbolic Logic and Mechanical Theorem Proving. Orlando: Academic Press, 1997.
COOK, S. The complexity of theorem-proving procedures. STOC ‘71: Proceedings of the 3rd Annual ACM 
Symposium on the Theory of Computing, p. 151-158, maio 1971.
FIKES, R; NILSSON, N. Strips: a new approach to the application of theorem proving to problem solving. 
IJCAI’71: Proceedings of the 2nd international joint conference on Artificial intelligence, Londres, p. 608-
620, set. 1971.
GERSTING, J. L.; IÓRIO, V. de M. Fundamentos matemáticos para a ciência da computação: um tratamento 
moderno de matemática discreta. 5. ed. Rio de Janeiro: LTC, 2012.
GUARINO, N. Formal ontology and information systems. FOIS’98: 1st International Conference on Formal 
Ontologies in Information Systems, Toronto, jun. 1998.
KAUTZ, H.; SELMAN, B. Planning as satisfiability. ECAI’92: Proceedings of the Tenth European Conference 
on Artificial Intelligence, Viena, p. 359-363, ago. 1992.
KAUTZ, H.; SELMAN, B. Unifying SAT-based and graph-based planning. Workshop on Logic-Based Artificial 
Intelligence, Washington, jun. 1999.
LUGER, G. Inteligência artificial. 6. ed. São Paulo: Pearson Education do Brasil, 2013.
MCDERMOTT, D. et al. PDDL – The Planning Domain Definition Language. Technical Report CVCTR98003/
DCS TR1165. New Haven: Yale Center for Computational Vision and Control, 1998.
MIZOGUCHI, R. Tutorial on ontological engineering: part 3: Advanced course of ontological engineering. 
New Generation Computing, v. 22, n. 2, p. 198-220, 2004.
MONTAÑO, R. A. N. R. Aplicação de fórmulas não-clausais em planejamento com redes de Petri. 2006. 
Dissertação (Mestrado em Informática) – Pós-graduação em Informática, Universidade Federal do Paraná, 
Curitiba. Disponível em: https://acervodigital.ufpr.br/handle/1884/11334. Acesso em: 7 dez. 2020.
RINTANEN, J. Temporal planning with clock-based SMT encodings. IJCAI-17: Proceedings of the International 
Joint Conference on Artificial Intelligence, p. 743-749, 2017.
ROBINSON, J. A Machine-Oriented Logic Based on the Resolution Principle. Journal of the ACM, v. 12, n. 1, 
p. 23-41, 1965.
RUSSELL, S.; NORVIG, P. Inteligência Artificial. 3. ed. Rio de Janeiro: Elsevier Brasil, 2013.
SHANAHAN, M. Solving the Frame Problem: a mathematical investigation of the common sense law of 
inertia. Cambridge: The MIT Press, 1997.
SMITH, M. K.; WELTY, C.; MCGUINNESS, D. L. OWL Web Ontology Language Guide. 10 fev. 2004. Disponível 
em: https://www.w3.org/TR/owl-guide/. Acesso em: 7 dez. 2020.
VITAL, L. P.; CAFE, L. M. A. Ontologias e taxonomias: diferenças. Perspectivas em Ciência da Informação, Belo 
Horizonte, v. 16, n. 2, p. 115-130, jun. 2011. Disponível em: https://www.scielo.br/pdf/pci/v16n2/08.pdf. 
Acesso em: 7 dez. 2020.
WELD, D. Recent advances in AI planning. AI Magazine, v. 20, n. 2, p. 93-123, 1999.
WESSEL, M. et al. OntoVPA—An Ontology-Based Dialogue Management System for Virtual Personal 
Assistants. Advanced Social Interaction with Agents, p. 219-23, ago. 2018.
Aprendizado de máquina 95
4
Aprendizado de máquina
A cada dia que passa, a quantidade de informação gerada e armazenada no 
mundo cresce de maneira espantosa. Claramente, só com a atuação de huma-
nos a análise de toda essa massa de dados é impossível. Assim, a inteligência 
artificial (IA) desenvolveu métodos de análise de massas de dados para que um 
algoritmo possa aprender e posteriormente predizer resultados ou até mesmo 
para encontrar padrões desconhecidos escondidos em meio à enorme quanti-
dade de informação. Esse é o aprendizado de máquina.
Este capítulo está organizado como descrito a seguir. Inicialmente, na Seção 
3.1, são apresentadas as bases do aprendizado de máquina. O aprendizado su-
pervisionado e as tarefas preditivas são abordados na Seção 3.2, apresentando 
redes neurais, máquinas de vetores de suporte e árvores de decisão. Na Seção 
3.3, são abordados o aprendizado não supervisionado e as tarefas descritivas, 
como o agrupamento e as regras de associação.
4.1 Introdução ao aprendizado de máquina 
Vídeo Ao se analisar o comportamento inteligente, percebe-se que a capacidade de 
aprendizado é uma característica muito importante. Nos primórdios da IA, o pro-
cesso de aprendizagem muitas vezes era feito por meio de entrevistas com espe-
cialistas da área, com o objetivo de que fossem escritas regras usadas por sistemas 
especialistas para a tomada de decisão (FACELI et al., 2011). Porém, com o grande 
aumento da captura de dados em diversos setores, como redes sociais, sistemas 
de vendas, sensoriamento, entre outros, deu-se a 
necessidade de analisar e aprender padrões 
com base nessas informações de maneira 
mais autônoma devido ao seu volume e 
à sua complexidade.
Nesse contexto, segundo Mitchell 
(1997), o aprendizado de máquina 
(AM) é a capacidade de melhorar o 
 desempenho na realização de alguma 
tarefa por meio da experiência. Em ou-
tras palavras, significa utilizar dados an-
teriores para aprimorar uma atividade, 
como o reconhecimento de um padrão.
bu
ffa
lo
bo
y/
Sh
ut
te
rs
to
ck
96 Inteligência Artificial
Assim, usando a experiência passada, os processos de AM empregam um prin-
cípio de inferência chamado indução, que tira conclusões genéricas com base em 
exemplos ou amostras particulares. Dessa forma, os algoritmos de AM usam infor-
mações observadas de um determinado problema para induzir hipóteses ou fun-
ções capazes de resolvê-lo. Esses dados observados e utilizados pelos algoritmos 
são chamados de conjuntos de dados (FACELI et al., 2011).
As aplicações para AM são inúmeras, e podem-se citar algumas:
Predição de volume 
de madeira em 
florestas.
Diagnóstico de 
doenças com base em 
resultados de exames.
Detecção de fraude 
em cartões de crédito.
Análise de fidelidade 
de clientes em 
campanhas de 
marketing.
Reconhecimento 
de fala, usado em 
assistentes pessoais.
Aplicações 
para AM
Suponha, por exemplo, um conjunto de dados formado pelas informações so-
bre os pacientes de um hospital. Cada registro desse conjunto é uma tupla de 
elementos que se refere a um paciente específico e contém todas as suas 
informações, como nome, idade, sexo, sintomas, resultados de exame, 
diagnóstico etc. Esses elementos são chamados atributos. 
Em uma tarefa de aprendizado, um desses atributos é considerado 
um atributo de saída e é a informação que se quer aprender. Se nesse 
exemplo o objetivo é diagnosticar o paciente com as informações dos 
exames, então o atributo de saída é o diagnóstico.
Os demais atributos usados para o aprendizado do diagnóstico são os 
atributos de entrada. Percebe-se, então, que a definição de qual é o atributo 
de saída e quais são os atributos de entrada depende da tarefa e da informação a 
ser aprendida. Nesse exemplo, o nome do paciente não é considerado um atributo 
de entrada para aprender sobre o diagnóstico, pois não há qualquer relação entre 
o nome e a doença do paciente.
Assim, o objetivo de um algoritmo de AM é aprender um modelo, ou hipótese, 
com base em um conjunto observado de dados, também chamado conjunto de trei-
namento, que consegue relacionar os valores de entrada do conjunto com os valo-
res de saída. A tabela a seguir apresenta um exemplo de conjunto de treinamento 
de pacientes de um hospital 1 .
Como sugestão de conteú-
do introdutório ao aprendi-
zado de máquina, sugere-
-se o vídeo Aprendizado de 
Máquina: sua importância e 
aplicações, publicado pelo 
canal IGTI.
Disponível em: https://youtu.be/
pdQKyJ0N3jg. Acesso em: 18 dez. 
2020.
Vídeo
LeoWolfert/Shutterstock
Convém ressaltar que esse 
conjunto é completamente fictício 
e não representa a realidade mé-
dica de diagnóstico baseado em 
resultados de exames, servindo 
somente como massa de dados 
didática para a apresentação dos 
conceitos.
1
https://youtu.be/pdQKyJ0N3jg
https://youtu.be/pdQKyJ0N3jg
Aprendizado de máquina 97
Tabela 1
Conjunto de treinamento de pacientes
Nome Idade Sexo Eritrócitos Hemoglobina Glicemia Diagnóstico
Paciente1 25 F 4,3 15,3 82 Tendinite
Paciente2 19 M 8,2 14,0 93 Rinite
Paciente3 33 F 3,7 19,7 158 Gastrite
Paciente4 58 M 4,6 10,6 230 Diabetes
Fonte: Elaborada pelo autor.
Com base no conjunto de treinamento apresentado, usa-se um subconjunto 
de atributos de entrada para aplicar um algoritmo que aprende a diagnosticar os 
pacientes. No exemplo, o nome do paciente não é relevante, então pode-se usar 
idade, sexo, eritrócitos, hemoglobina e glicemia para treinar um modelo que dê o 
diagnóstico.
Esse aprendizado é consolidado em um modelo e pode ser aplicado a outros pa-
cientes para os quais ainda não se tem um diagnóstico. Após o treinamento do mo-
delo com o conjunto de dados, é possível apresentar outros pacientes ao modelo e 
este fará o diagnóstico baseando-se nos dados anteriores. Assim, ao se apresenta-
rem os dados da Tabela 2 a ele, pode-se obter um diagnóstico para cada paciente.
Tabela 2
Novo conjunto de dados de pacientes
Nome Idade Sexo Eritrócitos Hemoglobina Glicemia Diagnóstico
PacienteX 44 F 4,1 15,9 95 ?
PacienteY 15 M 8,9 13,1 214 ?
PacienteZ 28 F 2,6 18,4 110 ?
Fonte: Elaborada pelo autor.
Essa propriedade de aprender a diagnosticar novos pacientes além dos que es-
tão no conjunto de treinamento é a capacidade de generalização.
Quando um modelotreinado apresenta uma baixa capacidade de generalização 
(o que no exemplo pode ser traduzido como o fato de o modelo só conseguir diag-
nosticar com precisão os dados do conjunto de treinamento), diz-se que o modelo 
está sobreajustado aos dados de treinamento, que ocorreu overfitting. Seria como 
se o modelo tivesse decorado os dados de treinamento, mas, quando aplicado a 
outros, os resultados fossem ruins, pois ele não consegue generalizar.
Já quando o modelo não consegue resultados com precisão aceitável nem no 
conjunto de treinamento, diz-se que está subajustado, que ocorreu underfitting. 
Isso acontece quando há dados de treinamento pouco representativos ou o 
modelo treinado é muito simples para haver uma generalização satisfatória 
( REZENDE, 2003).
Várias tarefas de aprendizado são implementadas por algoritmos de AM e po-
dem ser classificas com base no tipo de realimentação dada ao algoritmo para 
aprender. O aprendizado indutivo pode ser classificado em aprendizado super-
visionado, aprendizado não supervisionado e aprendizado por reforço 2 (RUSSELL; 
NORVIG, 2013). A figura a seguir representa essa hierarquia.
Nesta obra, serão discutidos ape-
nas o aprendizado supervisionado 
e o não supervisionado.
2
98 Inteligência Artificial
Figura 1
Hierarquia de aprendizado
Classificação Agrupamento Regressão Associação 
Aprendizado indutivo
Por reforço Não supervisionado 
(descritivas) 
Supervisionado 
(preditivas) 
Fonte: Adaptada de Faceli et al., 2011.
No aprendizado supervisionado o algoritmo recebe um conjunto de dados 
observados que já possuem um resultado de saída (como o exemplo dos dados 
hospitalares mostrados anteriormente). Os dados de saída já apresentados for-
necem a realimentação necessária para direcionar o aprendizado. Dessa forma, o 
objetivo é aprender uma função que mapeia os dados de entrada com o resultado, 
de modo que quaisquer novos dados de entrada fornecidos possam ser mapeados 
para uma saída, gerando o aprendizado.
O aprendizado supervisionado é composto de duas tarefas preditivas de apren-
dizado: classificação e regressão. A classificação se dá quando o dado de saída, 
isto é, a informação que se quer aprender, faz parte de um conjunto finito de va-
lores, ou categorias, como as doenças que podem ser diagnosticadas (por exem-
plo: rinite, gastrite, tendinite, diabetes). Já a regressão ocorre quando o dado a ser 
aprendido é um número ou valor real, como a temperatura de amanhã, o valor de 
venda de um automóvel, entre outros.
No aprendizado não supervisionado os dados fornecidos não possuem reali-
mentação e, em geral, busca-se aprender relações entre os elementos ou até mesmo 
o agrupamento de elementos que possuem características semelhantes. Esse apren-
dizado é composto, ainda, de duas tarefas descritivas de aprendizado: agrupamento 
e associação. O agrupamento tem como objetivo analisar um conjunto de dados 
e, sem qualquer informação adicional além das fornecidas, agrupar as informações 
que possuem as mesmas características. A associação, por sua vez, tem como obje-
tivo analisar um conjunto de dados e encontrar relações entre objetos do conjunto.
No aprendizado por reforço não há informação previamente indicada para que 
um algoritmo aprenda. Em vez disso, a cada tarefa executada, um elemento externo 
fornece uma informação de recompensa ou punição, que direciona o algoritmo a 
aprender quais ações são válidas e quais não. Ao final de várias interações com o am-
biente, espera-se que a tarefa seja executada de maneira satisfatória. Por exemplo, 
um agente que aprende um jogo de computador fará várias interações com ele, sen-
do recompensado positivamente se fizer um movimento correto e negativamente se 
fizer um movimento errado. Assim, espera-se que ele aprenda a jogar.
Aprendizado de máquina 99
Percebe-se que cada tipo de aprendizado tem um objetivo diferente. Na im-
plementação de agentes que aprendem, deve-se analisar o problema e levar em 
consideração os objetivos a serem atingidos. Além disso, cada tarefa de aprendi-
zado possui uma gama de algoritmos que implementam técnicas diferentes para a 
abordagem do problema, que também devem ser analisadas e comparadas para 
se obter um resultado satisfatório.
4.2 Aprendizado supervisionado 
Vídeo O aprendizado supervisionado é efetuado por meio de algoritmos preditivos em 
dados rotulados. Um conjunto de dados é dito rotulado quando cada registro pos-
sui um rótulo ou etiqueta, que pode ser um valor discreto ou numérico. Se o rótulo 
for um valor discreto, não ordenado, também chamado de categórico, então a tare-
fa de predição é chamada classificação. Se o rótulo for um valor numé-
rico, ordenado, então a tarefa é chamada regressão. Um preditor 3 é 
também uma função que, dado um exemplo não rotulado, atribui 
uma classe (no caso do classificador) ou um valor numérico (no caso 
do regressor).
Assim, seja um conjunto de observações D = {(xi, f(xi)), i = 1, ...n}, em que xi são 
os dados e f(xi) é uma função desconhecida que atribui um rótulo a xi. Um preditor, 
obtido por um algoritmo de predição de AM, observa o conjunto D e aprende uma 
função f, que aproxima o comportamento de f para novas observações.
Nesse sentido, uma classificação é quando yi = f(xi ) ∈ {c1,…,cn}, isto é, f(xi) 
 assume valores de um conjunto discreto e não ordenado. Uma regressão é quan-
do yi = f(xi) ∈ ℝ, ou seja, f(xi) assume valores de um conjunto infinito e ordenado.
A Figura 2 ilustra as tarefas preditivas. Do lado esquerdo, está a tarefa de classi-
ficação, dados os valores observados e rotulados contendo dois atributos (exame 
de hemoglobina e de glicemia) e o rótulo (saudável ou doente), um classificador 
precisa encontrar uma fronteira de decisão que separa os elementos conforme sua 
classificação. Do lado direito, tem-se a tarefa de regressão; por exemplo, dado um 
conjunto de vendas por ano, um regressor visa encontrar uma função que aproxi-
ma os valores de venda considerando o ano.
Figura 2
Tarefas preditivas
Fonte: Adaptada de Faceli et al., 2011.
H
em
og
lo
bi
na
 
Ve
nd
a 
Glicemia Ano 
Função aproximada
Saudável
Doente
Fronteira de decisão 
3
Um preditor pode ser um classifi-
cador ou um regressor.
100 Inteligência Artificial
Com o classificador e o regressor encontrados, a Figura 3 mostra como seria 
sua aplicação em outra observação. Do lado esquerdo, dados os novos valores de 
exame de hemoglobina e glicemia, essa nova observação, representada pela es-
trela, situa-se em um lado da fronteira de decisão encontrada pelo classificador, 
nesse caso, saudável. Do lado direito, com um novo valor de ano, aplica-se a função 
encontrada pela regressão e esta retorna o valor estimado de venda, representado 
pela estrela.
Figura 3
Aplicação do classificador e regressor
Fonte: Elaborada pelo autor.
H
em
og
lo
bi
na
 
Ve
nd
a 
Glicemia Ano 
Função aproximada
Saudável
Doente
Fronteira de decisão 
Como exemplo de dados para classificação, observe a Tabela 3. Esses dados são 
de um conjunto famoso em AM chamado Iris, que contém 150 exemplos da planta 
íris, sendo 50 de cada espécie: setosa, versicolor e virginica (FISCHER, 1936). Os da-
dos contêm a medição do tamanho e da largura da sépala e da pétala.
Tabela 3
Fragmento da base de dados Iris
Tam. Sépala (cm) Larg. Sépala 
(cm)
Tam. Pétala 
(cm)
Larg. Pétala 
(cm) Espécie
6,2 2,9 4,3 1,3 Versicolor
5,1 2,5 3,0 1,1 Versicolor
6,3 3,3 6,0 2,5 Virginica
5,8 2,7 5,1 1,9 Virginica
4,6 3,1 1,5 0,2 Setosa
5,0 3,6 1,4 0,2 Setosa
Fonte: Adaptado de Fischer, 1936.
Para a base de dados Iris (Tabela 3), as quatro primeiras colunas são os atribu-
tos de entrada, também conhecidos com variáveis independentes. A coluna Espécie 
é a classe de cada observação, também conhecida como variável dependente, ou 
objetivo.
A Tabela 4 apresenta um fragmento da base de dados Swiss, que contém os 
dados de fertilidade de 47 províncias da Suíça em 1888. Nos dados encontram-se 
a província, a medida de fertilidade, a porcentagemde pensar racionalmen-
te, pois são estabelecidos critérios que definem o raciocínio correto por meio de 
regras bem definidas. Elas são somente um dos mecanismos envolvidos na racio-
nalidade, visto que há a necessidade de agir em caso de informações incompletas, 
por exemplo.
Outro caso é um ato reflexo, como afastar-se de um objeto em chamas, que não 
é resultado de uma análise da situação e uma deliberação da ação a ser tomada, 
e mesmo assim também é um comportamento racional que deve ser adicionado 
ao agente. A maneira de implementar um ato reflexo pode não ser por meio de 
processos complicados e demorados, mas usando mecanismos parecidos com os 
humanos. Como exemplo se tem o caso de um robô aspirador, o qual contém um 
Radachynskyi Serhii/Shutterstock
14 Inteligência Artificial
sensor antiqueda: assim que ele detecta uma escada, para de seguir adiante e muda 
de direção.
Outra vantagem é que essa abordagem é mais receptiva ao desenvolvimento 
científico do que aquelas baseadas tanto no comportamento quanto no pensa-
mento humano. Isso se dá porque o padrão de racionalidade deve ser geral e ma-
tematicamente bem definido para que possa ser implementado em agentes. Já o 
comportamento humano deve ser analisado em um ambiente específico, sendo a 
soma de tudo o que os indivíduos fazem.
Convém ressaltar que é inviável se conseguir a racionalidade perfeita em am-
bientes complexos, pois a demanda de recursos computacionais facilmente ex-
trapola as capacidades disponíveis. Ademais, cenários com informações parciais, 
incompletas e aleatórias podem ser um problema para os métodos racionais.
Depois da análise das quatro abordagens apresentadas, destaca-se que a inte-
ligência artificial está relacionada com o desenvolvimento de agentes inteligentes, 
que percebem seu ambiente e tomam ações racionais sobre ele com base em seus 
objetivos.
1.2 História da inteligência artificial 
Vídeo A tecnologia bélica sempre impulsionou os avanços da ciência, e com a inteligên-
cia artificial não foi diferente. Na década de 1940, no período da Segunda Guerra 
Mundial, começou o desenvolvimento do que hoje se conhece como computadores. 
O objetivo inicial era realizar cálculos balísticos, projetos de armas e quebra de 
Como sugestão de conteúdo adicional, 
recomenda-se a leitura do artigo A história da 
inteligência artificial, do Instituto de Engenharia.
Disponível em: https://www.institutodeengenharia.org.br/
site/2018/10/29/a-historia-da-inteligencia-artificial/. Acesso 
em: 2 dez. 2020.
Leitura
códigos (LIMA; SANTOS; PINHEIRO, 2014). Com o término da guerra, 
o uso dos computadores não se limitou mais aos militares, e empre-
sas, indústrias e universidades foram algumas das organizações que 
estimularam o desenvolvimento de aplicações e hardwares.
Esse entusiasmo, primeiro militar, mas depois comercial, com o 
uso dos computadores alavancou investimentos e pesquisas, desde 
computadores à válvula, como o Colossus em 1943 (Inglaterra) e o 
Eniac em 1946 (Estados Unidos), até o que se conhece hoje em dia, 
passando pelo desenvolvimento dos circuitos integrados, na década 
de 1950.
Warren McCulloch (1898-1969) e Walter Pitts (1923-1969) são co-
nhecidos como os precursores da IA, sendo deles o primeiro trabalho 
reconhecido da área de inteligência artificial (MCCULLOCH; PITTS, 1943). 
Em seu estudo, os autores propuseram uma arquitetura para uma rede 
neural, que se baseou no conhecimento básico de fisiologia e da função 
dos neurônios no cérebro, de lógica proposicional e da teoria da com-
putação de Turing. Basicamente eles projetaram um modelo de neurô-
nio artificial que possuía dois estados: ligado e desligado. Um neurônio 
passa para o estado ligado se houver estímulo suficiente em neurônios 
próximos aos quais está ligado.
TexasDex/Wikimedia Commons
Figura 2
Computador Eniac, desenvolvido em 1946
https://www.institutodeengenharia.org.br/site/2018/10/29/a-historia-da-inteligencia-artificial/
https://www.institutodeengenharia.org.br/site/2018/10/29/a-historia-da-inteligencia-artificial/
Fundamentos de inteligência artificial 15
McCulloch e Pitts demonstraram que funções computáveis poderiam 
ser calculadas por um tipo de rede neural e que conectivos lógicos (conjun-
ção, disjunção, negação etc.) podiam ser implementados por redes muito 
simples (RUSSELL; NORVIG, 2013). Outro aspecto apresentado foi a capacidade de 
aprendizado, mas foi só em 1949 que o neuropsicólogo Donald Hebb (1904-1985) 
propôs um esquema de aprendizado simples, que atualizava a intensidade das co-
nexões entre os neurônios. Esse esquema foi denominado aprendizado de Hebb.
Allan Turing apresentou um dos mais influentes trabalhos da área em 1950, 
com seu Teste de Turing. Ele mostrou os conceitos de aprendizado de máquina, 
aprendizado por reforço e algoritmos genéticos (TURING, 1950).
Em 1951, Marvin Lee Minsky (1927-2016) e Dean Edmonds construíram o Snarc 
(Calculadora Neural-Analógica Estocástica de Reforço – do inglês Stochastic Neural 
Analog Reinforcement Calculator), que era um computador com três mil válvulas e 
o mecanismo de piloto automático de um bombardeiro B-24. Essa máquina im-
plementava 40 neurônios com aprendizado de Hebb e simulava um rato saindo 
de um labirinto.
O termo inteligência artificial foi criado em 1956 por John McCarthy (1927-2011), 
em um seminário que durou dois meses, na Faculdade de Dartmouth (Estados 
Unidos). A proposta era um estudo de dois meses e com dez homens sobre IA. Vá-
rios pesquisadores importantes se encontraram nesse seminário e, apesar de não 
haver nenhuma novidade, apresentaram as personagens que iriam dominar a área 
de IA pelos próximos 20 anos (RUSSELL; NORVIG, 2013).
Nesse seminário, os pesquisadores Allen Newell (1927-1992) e Herbert Simon 
(1916-2001) apresentaram um programa de raciocínio chamado Logic Theorist (LT), 
que foi programado por John Clifford Shaw (1922-1991), programador da empresa 
RAND Corporation. Ele foi feito para imitar a capacidade dos humanos de resolver pro-
blemas e foi capaz de provar a maioria dos teoremas do Capítulo 2 do livro Principia 
mathematica (Princípios matemáticos), de Bertrand Russell (1872-1970) e Alfred North 
Whitehead (1861-1947) (RUSSELL; NORVIG, 2013).
Em 1957, Newell e Simon (1961) apresentaram o resolvedor geral de proble-
mas (GPS – do inglês General Problem Solver), que tinha como objetivo imitar a ma-
neira humana de resolver problemas, isto é, seguir a abordagem de pensar como 
humanos 1 . Levando em consideração as limitações da época, observou-se que a 
maneira pela qual o GPS dividia os problemas e calculava as ações possíveis de se-
rem aplicadas era parecida com a forma humana (RUSSELL; NORVIG, 2013).
Em 1958, no Massachusetts Institute of Technology (MIT), John McCarthy de-
finiu a linguagem Lisp de alto nível de programação, que se tornou dominante 
na área de IA por muitos anos. Nesse ano, também descreveu o programa hipo-
tético advice taker, o primeiro a usar lógica para representar informação em 
um computador, com o objetivo de encontrar soluções para problemas. Esse 
trabalho é considerado o primeiro da área da IA chamada de raciocínio de senso 
comum (MCCARTHY, 1958).
O Logic Theorist conseguiu 
provar 38 dos 52 teoremas 
iniciais do Capítulo 2 do 
livro Principia mathematica. 
Sugere-se a consulta ao 
livro para se vislumbrar 
os tipos de teoremas 
provados.
WHITEHEAD, A. N.; RUSSELL, B. 
Cambridge: The University Press, 1925.
Livro
Para saber mais do mecanismo de 
raciocínio do GPS, assista ao vídeo 
General Problem Solver (GPS) – 
Parte 1, disponível em: https://
youtu.be/T3m0qLT56JA. Acesso 
em: 2 dez. 2020.
1
O raciocínio de senso comum 
é uma subárea da IA preocupada 
em simular a habilidade humana 
de presumir propósito, intenção, 
propriedades físicas etc. com base 
em situações comuns do dia a dia. 
Além de poder fazer predições, os 
modelos devem ser responsá-
veis por entender contextos e 
relações causais de situações do 
mundo real e raciocinar sobre 
eles. Esse estudode homens que se ocupam de 
agricultura, dos respondentes que obtiveram altas notas em exames do exército, 
de pessoas com educação além do primário, de católicos (em oposição aos protes-
tantes) e a taxa de mortalidade 4 .
Figura 4
Iris setosa
AngieC333/Shutterstock
Porcentagem de nascidos vivos 
que morrem em menos de um 
ano.
4
Aprendizado de máquina 101
Tabela 4
Fragmento da base de dados Swiss
Província Medida de 
fertilidade
% Homens 
na 
agricultura
% Altas 
notas no 
exame de 
exército
% Educação 
além do 
primário
% Católicos Taxa de 
mortalidade
Courtelary 80,2 17,0 15 12 9,96 22,2
Delemont 83,1 45,1 6 9 84,84 22,2
Franches-Mnt 92,5 39,7 5 5 93,40 20,2
Moutier 85,8 36,5 12 7 33,77 20,3
Neuveville 76,9 43,5 17 15 5,16 20,6
Porrentruy 76,1 35,3 9 7 90,57 26,6
Fonte: Elaborada pelo autor.
A coluna da taxa de mortalidade é a variável dependente e, por isso, um regressor 
precisa relacionar os dados de entrada com essa variável, gerando, assim, uma fun-
ção aproximada f(x) em que, dada uma nova observação, retorna a mortalidade 
estimada.
Para que se gere o preditor, seja ele classificação ou regressão, várias técnicas e 
algoritmos estão disponíveis. Aqui serão trabalhadas as redes neurais artificiais, as 
árvores de decisão e o método Random Forest.
4.2.1 Redes neurais artificiais
As redes neurais artificiais (RNAs) são modelos matemáticos baseados no com-
portamento e na estrutura de neurônios biológicos, sendo esta representada de 
maneira simplificada na Figura 5. Seus principais componentes são os dendritos, o 
corpo celular e o axônio (FACELI et al., 2011).
Figura 5
Simplificação de um neurônio biológico
Sinapse 
Ve
ct
or
M
in
e/
Sh
ut
te
rs
to
ck
Dendritos
Sinapse 
Sinapse 
Sinapse 
Núcleo Núcleo Axônio Axônio
Dendritos
Impulso nervoso
Corpo celular Corpo celular
Impulso nervoso
Dendritos
Neurônio Neurônio
Os dendritos são responsáveis por receber estímulos de outros neurônios ou 
do ambiente, transmitindo para o corpo celular, ou soma, o qual recebe essas infor-
mações e depois as combina e processa. Dependendo da intensidade dos estímu-
los, o corpo celular pode gerar um novo impulso que, nesse caso, é enviado para o 
axônio. Este é um prolongamento do neurônio que tem como objetivo conduzir os 
impulsos do corpo celular até um local mais distante, em geral para outros neurô-
nios. O contato entre a terminação de um axônio e o dendrito de outro neurônio é 
chamado sinapse, que pode ser excitatória ou inibitória (HAYKIN, 2009).
Para uma introdução 
superficial de redes 
neurais, recomenda-se 
o vídeo Redes Neurais e 
Machine Learning, do canal 
Nerdologia.
Disponível em: https://youtu.
be/1_c_MA1F-vU. Acesso em: 21 
dez. 2020.
Vídeo
https://youtu.be/1_c_MA1F-vU
https://youtu.be/1_c_MA1F-vU
102 Inteligência Artificial
As RNAs se baseiam nesse modelo por meio de unidades simples de proces-
samento altamente conectadas, conhecidas como neurônios artificiais. Esses 
neurônios efetuam funções matemáticas usando dados recebidos e propagam 
seu resultado para outros neurônios, em geral de modo unidirecional. As ligações 
entre neurônios, que simulam as sinapses, em geral possuem pesos associados, 
responsáveis por ponderar a entrada recebida pelos neurônios. Esse conjunto de 
neurônios interligados é denominado rede neural artificial.
Os pesos das conexões podem assumir valores tanto positivos como negativos, 
dependendo do tipo de conexão (excitatória ou inibitória). O processo de aprendi-
zado modifica os valores desses pesos, gerando o conhecimento da rede.
A Figura 6 apresenta a estrutura básica de um neurônio artificial. As entradas, 
geralmente referenciadas por x1, x2, …, xn, são aplicadas ao neurônio e sofrem ação 
dos pesos w1, w2, …, wn por meio da multiplicação de cada entrada por seu peso 
respectivo.
Figura 6
Neurônio artificial
Entrada 1
Entrada 2
Entrada n
Direção do Sinal
Σ
...
w1
w2
u
fa(u)
Saída
wn
Fonte: Adaptada de Faceli et al., 2011.
Ao final, é feita uma somatória para gerar a entrada total do neurônio. Assumindo 
X como o vetor de entrada X = [x1,x2,…xn] e W o vetor de pesos W = [w1, w2, …wn], a 
entrada do neurônio é dada por:
u =
n
i=1
(xiwi)
Para definir a saída do neurônio, aplica-se uma função de ativação à sua entra-
da. Várias funções estão disponíveis e cada uma dá uma característica específica à 
rede. A figura a seguir mostra algumas delas.
Figura 7
Funções de ativação
fa(u)
u
fa(u)
u
fa(u)
u
fa(u)
u
1 1 1
1
Função linear Função limiar Função logística Função 
tangente-hiperbólica
Fonte: Adaptada de Faceli et al., 2011.
Estima-se que haja 86 bilhões 
de neurônios, dispostos em 
redes especializadas, no cérebro 
humano.
Curiosidade
Aprendizado de máquina 103
A função linear retorna exatamente o valor de u, isto é, fa(u) = u. A função limiar 
retorna 0 se u for menor que um valor preestabelecido (chamado de limiar) ou 
1, caso contrário. A função logística retorna valores entre 0 e 1 e sua fórmula é: 
fa(u) = 1
(1+e-u) . A tangente-hiperbólica, por sua vez, retorna valores entre –1 e 1, e sua 
fórmula é: fa(u) = (eu - e-u)
(eu + e-u)
.
O tipo de conexões entre os neurônios define algumas formas de redes neu-
rais. As mais comuns são as redes cujas conexões seguem o fluxo entrada para 
saída, sem retroalimentação, conhecidas como feed-forward. Já redes com retroali-
mentação são conhecidas como redes neurais recorrentes (RNN). Elas permitem que 
um neurônio receba como entrada uma saída gerada na mesma camada ou em 
camadas posteriores. Essas redes são comumente usadas em processamento de 
linguagem natural.
Para entender o aprendizado de uma rede neural, primeiro deve-se apontar 
na rede os elementos a serem treinados, que são os pesos das conexões entre 
os neurônios (entrada e saída). Inicialmente, considere a Figura 8, que mostra 
um neurônio simples, conhecido como perceptron, ou perceptron de Rosemblatt 
( ROSEMBLATT, 1958). Nesse neurônio foi adicionado um elemento chamado bias, 
ou viés, que possui sempre o valor 1, bem como sua indicação de peso (w0 = b). A 
função de ativação utilizada é a liminar.
Figura 8
Perceptron de Rosemblatt
Fonte: Elaborada pelo autor.
Bias
Entradas
...
w2
Neurônio
Saída
wn
xn
x2
x1
+1
w1
w0 = b
Esse neurônio pode ser usado para classificar um conjunto de dados em duas 
classes. Como usa a função de ativação limiar, seu resultado de saída é 0 ou 1, 
dependendo da classe à qual a entrada pertence. Assim, a saída desse neurônio é 
dada pela seguinte fórmula:
n
Saída =
0, se
1, se
n
i=1
i=1
(xiwi) + ba saída do neurônio é 1 (aplicação da função de 
ativação limiar). Como se esperava um resultado zero, esse neurônio precisa ter 
seus pesos ajustados, ou seja, de um treinamento do neurônio. Para isso, deve-se 
calcular o erro gerado pela predição quando se entra com os dados xi do conjunto 
de treinamento, que é dado por:
erroi = yi -f(xi)
Aprendizado de máquina 105
Nesse cálculo, yi é o valor observado da classificação da entrada xi (Tabela 5) e 
f(xi) é o valor predito pela rede, isto é, calculado quando se apresenta a entrada xi. 
Perceba que, se forem dadas dez entradas diferentes para a rede, são obtidos dez 
erros gerados, um para cada entrada.
Esse tipo de rede tem seus pesos ajustados, simplificadamente, conforme a 
equação seguinte:
wj 
t+1 = wj
t + η * xi
j * erroi
Nesse cálculo, wi
t é o peso wi no tempo t; yi é o rótulo esperado (observado) do 
dado de entrada; xi
j é o atributo j do dado de entrada xi , f(xi) é o resultado predito 
pelo neurônio quando se entra com o dado xi no instante t; e η 5 é um valor conhe-
cido como taxa de aprendizado.
O valor da taxa de aprendizado é um parâmetro de entrada da rede, que define 
a magnitude do ajuste feito em cada peso da rede. Assumindo uma taxa de 0,3, 
cada peso é ajustado da seguinte forma:
w0
2 = 0,5 + 0,3 * 1* (0 – 1) = 0,2
w1
2 = 0,5 + 0,3 * 6 * (0 – 1) = –1,3
w2
2 = 0,5 + 0,3 * 5 * (0 – 1) = –1
Assim, após essa rodada de ajustes, a rede fica como a figura a seguir.
Figura 11
Perceptron com pesos ajustados
Bias
Entradas
w2= –1 Neurônio
Saída
Saída 0
Como –12,6em especial na maneira com a qual os 
ajustes são feitos. Por exemplo, em modo batch, as atualizações são feitas uma vez 
a cada ciclo, isto é, após todos os dados serem apresentados à rede, baseando-se 
no erro médio encontrado.
4.2.2 Árvores de decisão e Random Forest
Outra abordagem ao problema de aprendizado de 
máquina se dá por meio da busca em um espaço de so-
luções. Aqui será abordada a estratégia de representação 
por árvores de decisão e regressão.
Árvore de decisão é uma estratégia que divide um 
problema em problemas menores e, recursivamente, 
vichie81/Shutterstock
 Inteligência Artificial Inteligência Artificial108108
Aprendizado de máquina 109
aplica o mesmo processo. Ao final, os subproblemas são combinados para formar 
a árvore e dar a solução do problema maior. O termo árvore de decisão é usado 
para resolver problemas de classificação; para problemas de regressão, é usada a 
 árvore de regressão. As estratégias são muito parecidas, com diferença nos valo-
res que os nós folha mantêm e em como são calculados.
Uma árvore de decisão é um grafo acíclico direcionado em que cada nó é ou 
um nó de decisão, contendo dois ou mais sucessores, ou um nó folha, que repre-
senta um resultado. Os nós de decisão possuem um teste condicional baseado 
em valores dos atributos de entrada. Por exemplo: Idade 5
>5
>5>5 >5
>5
>5
5
>5
>5>5 >5
>5
>5
diminui a variância.
A entropia de uma variável 
aleatória A que pode receber 
valores {a
1
, ..., a
n
}, de tal forma 
que a probabilidade de que cada 
um desses valores aparecer em A 
seja {p
1
, ..., p
n
}, e é dada por:
Entropia (A) = -
n
i=1
(p
i
log
2
p
i
)
Saiba mais
Outro método de aprendizado 
supervisionado disponível são os 
k-Vizinhos Mais Próximos (KNN, 
do inglês, k-nearest neighbors).
Curiosidade
Uma explicação mais 
aprofundada sobre árvore 
de decisão pode ser vista 
no vídeo Árvore de decisão 
– Como funciona (Machine 
Learning), publicado pelo 
canal Didática Tech.
Disponível em: https://youtu.be/
W7MfsE5av0c. Acesso em: 18 dez. 
2020.
Vídeo
https://youtu.be/W7MfsE5av0c
https://youtu.be/W7MfsE5av0c
112 Inteligência Artificial
4.3 Aprendizado não supervisionado 
Vídeo O aprendizado não supervisionado é composto de tarefas descritivas, que vi-
sam encontrar informações em uma base de dados sem que haja qualquer rótulo 
ou elemento externo que direcione o processo (FACELI et al., 2011). O principal 
objetivo é encontrar padrões ou tendências em dados não rotulados, segundo al-
gum critério de qualidade. Duas tarefas são as mais importantes: agrupamento e 
associação.
O agrupamento busca analisar os dados e encontrar objetos similares por 
meio de alguma métrica, sem que haja qualquer conhecimento prévio sobre suas 
classes ou categorias (MITCHEL, 1997). Por exemplo, se um engenheiro florestal 
recebe uma massa de dados de várias árvores sem qualquer informação sobre 
suas espécies, ele pode tentar inferir quais são similares com base em algoritmos 
de agrupamento.
Já a associação tem como objetivo encontrar padrões frequentes de associação 
entre elementos da base. Um exemplo clássico é uma base de dados de vendas 
feitas por um supermercado. Para direcionar suas campanhas de marketing, a di-
reção do estabelecimento precisa saber quais produtos são mais frequentemente 
comprados juntos. Isso é feito por meio da mineração de regras de associação en-
tre os elementos.
4.3.1 Agrupamento
Agrupamento (ou clustering) é uma técnica que visa encontrar grupos (ou 
 clusters) em uma base de dados de modo que elementos que participam do mes-
mo grupo compartilhem características semelhantes (FACELI et al., 2011).
As
tib
ua
g/
Sh
ut
te
rs
to
ck
Existem várias técnicas para agrupar os dados de uma base, mas o algoritmo 
mais simples para isso é o K-Means. Essa técnica se baseia em fixar k pontos de 
maneira aleatória, sendo k um parâmetro passado ao algoritmo. Para cada um dos 
Aprendizado de máquina 113
objetos da base de dados, calcula-se qual desses k pontos está mais próximo usan-
do alguma métrica de proximidade, e esse será seu grupo inicial.
Esses k elementos serão posteriormente recalculados e serão os centroides do 
grupo. Um centroide é o ponto central de um conjunto de dados, calculado pela 
média entre todos os dados desse conjunto. Após todos os objetos serem agrupa-
dos, cada um dos k centroides é recalculado e pode ser alterado.
Sejam os pontos (1, 1), (1, 3), (2, 3) e (3, 1) como exemplo e a Figura 17 com o 
gráfico da esquerda apresentando os pontos no espaço cartesiano. Para calcular o 
centroide (cx, cy), usa-se a mediana na seguinte forma:
cx=
1
n
n
i=1
xi
Nessa fórmula, n é o número de pontos e xi, a abscissa do ponto i. O mesmo 
cálculo é feito para a ordenada. Assim, tem-se:
cx=
1
4
1
4
n
i = 1
xi = (1 + 1 + 2 + 3) = 1,75
cy=
1
4
1
4
4
i = 1
yi = (1 + 3 + 3 + 1) = 2
Portanto, o centroide dos quatro pontos de exemplo é (1,75, 2) e está represen-
tado do lado direito da figura a seguir.
Figura 17
Exemplo de cálculo do centroide de quatro pontos
y
x
3
2
1
1 2 3
y
x
3
2
1
1 2 3
Fonte: Elaborada pelo autor.
Após a fixação dos k centroides, cada objeto da base é associado ao centroide 
mais próximo, calculando a sua distância até todos os centroides e escolhendo a 
menor. Quando todos os dados forem atribuídos, os centroides são recalculados e 
o processo recomeça com uma nova classificação dos indivíduos. O processo termi-
na quando os centroides não mais se alterarem na etapa de rearranjo.
Para visualizar o K-Means 
em uma aplicação com 
Python, recomenda-se o 
vídeo K-Means com Python 
Parte 1/2 Exemplo Visual, do 
Canal Sandeco.
Disponível em: https://youtu.be/
piDlrtfz58s. Acesso em: 18 dez. 2020.
Vídeo
https://youtu.be/piDlrtfz58s
https://youtu.be/piDlrtfz58s
114 Inteligência Artificial
Considere como exemplo a Figura 18, que contém uma base de dados.
Figura 18
Dados a serem agrupados
x
y
Fonte: Elaborada pelo autor.
Assumindo que se quer três grupos, então k tem valor 3 e o processo se inicia 
atribuindo três centroides de maneira aleatória. Agora suponha a atribuição apre-
sentada na Figura 19, cujos centroides estão representados pelos símbolos vaza-
dos (quadrado, estrela e losango).
Figura 19
Atribuição inicial de centroides
x
y
Fonte: Elaborada pelo autor.
Para cada elemento da base, calcula-se sua distância para todos os centroides. 
A menor distância indica de qual centroide o elemento faz parte. Na Figura 20, os 
dados foram transformados em seus símbolos (quadrado, estrela e losango) para 
indicar a qual grupo foi adicionado.
Figura 20
Agrupamento dos quatro primeiros elementos
Fonte: Elaborada pelo autor.
x
y
x
y
x
y
x
y
x
y
(a) (b) (c)
(d) (e)
Aprendizado de máquina 115
Na Figura 20a, a distância do elemento até os centroides é calculada para todos 
eles e, como está mais próximo do quadrado, o elemento é atribuído ao centroide 
quadrado, como pode ser observado na Figura 20b. O processo é repetido em 20c 
e 20d, até que, na Figura 20e, os quatro primeiros elementos são associados a um 
centroide.
Na Figura 21, mais quatro elementos são agrupados. O primeiro, na Figura 21a, 
é atribuído à classe losango; na Figura 21b, o segundo é atribuído à classe estrela; 
e assim sucessivamente em 21c, 21d até a Figura 21e.
Figura 21
Agrupamento dos próximos quatro elementos
Fonte: Elaborada pelo autor.
(a) (b) (c)
x
y
x
y
x
y
x
y
x
y
(e)(d)
A Figura 22 mostra o resultado das atribuições na primeira rodada do algoritmo, 
quando todos os elementos foram agrupados.
x
y
Figura 22
Resultado da primeira rodada
Fonte: Elaborada pelo autor.
O próximo passo é recalcular os centroides com base nos elementos recém-
-agrupados. Se nenhum centroide mudar de posição, o algoritmo termina; caso 
contrário, é feita mais uma rodada de agrupamento. A Figura 23 mostra os cen-
troides recalculados.
116 Inteligência Artificial
x
y
Figura 23
Recálculo dos centroides
Fonte: Elaborada pelo autor.
Uma nova rodada do algoritmo pode alterar as associações. Após o término de 
todas as rodadas, tem-se um exemplo de agrupamento na Figura 24.
Figura 24
Agrupamento final
Fonte: Elaborada pelo autor.
x
y
Para calcular a distância entre dois pontos, existem várias métricas. Aqui des-
tacam-se duas métricas muito conhecidas: distância euclidiana e distância de 
Manhattan.
Dados dois pontos em um espaço d-dimensional, x e y, em que cada um deles 
possui d atributos, a distância euclidiana é calculada pela seguinte equação:
d (x, y) =
d
k = 1
(xk – yk)
2
Já a distância de Manhattan é dada da seguinte forma:
d (x, y) =
d
k = 1
|xk – yk|
Para medir a distância entre atributos categóricos, pode-se usar ainda a dis-
tância de Hamming, que conta o número de atributos com valores diferentes nos 
dois objetos (FACELI et al., 2011). A escolha de qual métrica de distância será usada 
faz parte da parametrização do algoritmo, bem como da quantidade k de grupos a 
serem descobertos.
Uma fase importante na aplicação do K-Means é a interpretação dos grupos 
encontrados. Cabe ao profissional ou pesquisador analisar os grupos encontrados 
e interpretá-los, buscando as similaridades obtidas em seus elementos.
Existem outros algoritmos, como 
o Basic Sequential Algorithmic 
Scheme (BSAS), no qual não há 
necessidade de se conhecer a 
quantidadede grupos que são 
criados enquanto o algoritmo 
evolui.
Curiosidade
Aprendizado de máquina 117
4.3.2 Associação
Associação é a tarefa de encontrar (ou minerar) um 
conjunto de itens frequentes, também conhecido como 
itemset, e, com base neles, encontrar regras de associa-
ção entre itens, considerando parâmetros como a confian-
ça da regra (FACELI et al., 2011). O termo k-itemset é usado 
para designar um itemset de tamanho k.
Uma regra de associação é uma regra da forma A → B, em 
que A e B são itemsets e têm o significado de: SE A ocorre ENTÃO B tam-
bém ocorre. O objetivo é encontra regras de associação significativas com base nos 
itemsets observados no conjunto de transações. Tome como exemplo um conjunto 
de transações de vendas de um supermercado, como apresentado na Tabela 6.
Tabela 6
Transações de venda de um supermercado
Transação Vendas
1 { leite, café, queijo }
2 { pão, manteiga, café }
3 { leite, manteiga, queijo }
4 { leite, manteiga, café, queijo }
5 { leite, queijo }
6 { leite, manteiga, café }
7 { pão, manteiga }
8 { leite, manteiga, café, queijo }
9 { pão, manteiga, queijo }
10 { leite, café, queijo }
Fonte: Adaptada de Faceli et al., 2011.
Nesse conjunto de transações, deve-se encontrar os itemsets frequentes e, para 
tal, usa-se uma métrica de suporte. O suporte de um itemset é a quantidade de 
transações que possui esse itemset de produtos; sua medida é feita de maneira re-
lativa, em porcentagem, e o cálculo é feito pela contagem das vezes que o itemset 
aparece nas transações dividido pela quantidade de transações. Na busca pelos 
itemsets frequentes, o suporte mínimo é um parâmetro de entrada informado 
pelo usuário quando está analisando a base em busca das regras de associação, 
indicando ao algoritmo para considerar somente os itemsets que possuem uma 
frequência mínima no conjunto de transações.
Os itemsets podem ser de qualquer tamanho. Na Tabela 7 são apresentados 
itemsets de tamanhos 1, 2 e 3, com seus valores de suporte. São apresentados so-
mente os itemsets que possuem suporte maior ou igual a 0,3, isto é, que aparecem 
em mais de 30% das transações (suporte mínimo de 0,3). Por exemplo, o itemset 
{pão, queijo} não está listado pois aparece em somente uma transação, tendo, por-
tanto, 
1
10
= 0,1 de valor de suporte.
fizkes/Shutterstock
118 Inteligência Artificial
Tabela 7
Itemsets frequentes com suporte mínimo de 0,3
1-itemset 2-itemset 3-itemset
{leite}: 0,7 {manteiga, pão}: 0,3 {café, leite, manteiga}: 0,3
{pão}: 0,3 {café, leite}: 0,5 {café, leite, queijo}: 0,4
{manteiga}: 0,7 {café, queijo}: 0,4 {leite, manteiga, queijo}: 0,3
{café}: 0,6 {café, manteiga}: 0,4
{queijo}: 0,7 {leite, manteiga}: 0,4
{manteiga, queijo}: 0,4
{leite, queijo}: 0,6
Fonte: Adaptada de Faceli et al., 2011.
A partir do momento em que todos os itemsets foram gerados, para cada 
 k-itemset, são geradas 2k regras possíveis. Uma regra é da forma A → B, tal que 
A ∪ B é o próprio itemset. Por exemplo, para o 3-itemset {café, leite, queijo}, geram-
-se as possíveis regras:
 • {café} → {leite, queijo}
 • {leite} → {café, queijo}
 • {queijo} → {café, leite}
 • {café, leite} → {queijo}
 • {café, queijo} → {leite}
 • {leite, queijo} → {café}
 • {} → {café, queijo, leite}
 • {café, queijo, leite} → {}
Para facilitar o entendimento, aqui serão ignoradas as regras que geram um 
conjunto vazio do lado esquerdo ou direito. A escolha de qual regra fará parte das 
regras de associações encontradas depende de um parâmetro de utilidade, conhe-
cido como confiança. Dada uma regra A → B, sua confiança é dada pela fórmula:
confiança (A → B) = =
P (A ∪ B)
P (A)
suporte (A ∪ B)
suporte (A)
Nessa fórmula, P (A ∪ B) é a probabilidade de ocorrer o itemset A ∪ B no con-
junto de transações original e P(A) é a probabilidade de ocorrer o itemset A nesse 
conjunto. Esse cálculo da probabilidade é feito pela contagem do itemset dividido 
pelo tamanho do conjunto total de transações, que é exatamente igual ao suporte. 
Assim, a confiança mede a probabilidade do conjunto A ∪ B ocorrer, dado que A 
ocorre.
Por exemplo, para o 3-itemset analisado e para a regra possível que foi gerada 
anteriormente, {café, queijo} → {leite}, a confiança é dada por:
confiança ({café, queijo}→ {leite}) =
= = = 1,0
P ({café, leite, queijo})
P ({café, queijo})
0,4
0,4
suporte ({café, leite, queijo})
suporte ({café, queijo})
Aprendizado de máquina 119
Dessa forma, para essa regra, há uma confiança de 100% de que toda vez que 
alguém compra café e queijo também compra leite.
Para selecionar quais regras são relevantes, o usuário informa um valor de con-
fiança mínima; assim, o algoritmo só seleciona regras que possuem uma confian-
ça maior ou igual a esse parâmetro. Suponha uma confiança mínima de 80% (0,8), 
cujas regras extraídas podem ser vistas na Tabela 8. Com essas regras, consegue-se 
inferir que quem compra pão sempre compra manteiga (100% dos casos).
Tabela 8
Regras extraídas com confiança mínima de 0,8
Regra Confiança
{pão} → {manteiga} 1,0
{café, queijo} → {leite} 1,0
{queijo} → {leite} 0,857
{leite} → {queijo} 0,857
{café} → {leite} 0,833
{leite, café} → {queijo} 0,8
Fonte: Adaptada de Faceli et al., 2011.
O algoritmo Apriori foi um dos primeiros usados para minerar itemsets e regras 
de associação (AGRAWAL; IMIELINSKI; SWAMI, 1993; AGRAWAL; SRIKANT, 1994). Ele 
parte do princípio de que os subconjuntos de um itemset frequente também é um 
itemset frequente. Por exemplo, se o 3-itemset {café, leite, queijo} tem um suporte de 
0,4, então seus subconjuntos ({café, leite}, {café, queijo} e {leite, queijo}) possuem 
um suporte de, no mínimo, 0,4. Na Tabela 7, pode-se analisar que os suportes dos 
subconjuntos são 0,5, 0,4 e 0,6, respectivamente. Assim, o algoritmo Apriori efetua 
uma busca em largura gerando, em cada nível, os itemsets possíveis por meio dos 
itemsets frequentes gerados nos níveis anteriores (FACELI et al., 2011).
O aprendizado de regras de associação tem uma aplicação muito grande, prin-
cipalmente em análise de transações para direcionar atividades de marketing, pro-
moção de preços, sistemas de recomendação, bioinformática, entre outros.
Atividade 1
Descreva as diferenças entre aprendizado supervisionado e não supervisionado.
Atividade 2
Qual é a diferença entre classificação e regressão?
Para ver um exemplo de 
aplicação das regras de 
associação usando Python, 
você pode assistir ao vídeo 
Mineração de Regras de As-
sociação com Python, Apriori 
e SQL, publicado pelo canal 
IA Expert Academy.
Disponível em: https://youtu.be/
uhWUkmdAuVI. Acesso em: 21 dez. 
2020.
Vídeo
Outras medidas de qualidade 
das regras também podem ser 
aplicadas, como o coeficiente de 
interesse (conhecido como lift) e 
a convicção.
Curiosidade
https://youtu.be/uhWUkmdAuVI
https://youtu.be/uhWUkmdAuVI
120 Inteligência Artificial
Atividade 3
Observe a rede neural apresentada a seguir:
Considere que os neurônios N
1
, N
2
 e N
3
 possuem função de ativação linear. Assumindo que são entrados x
1
 = 8 e 
x
2
 = 1, qual é o valor da saída da rede?
Bias
Bias
Bias
Entradas N3
N1
N2
Saída
+1
+1
b1 = 0,3
w1 = 0,5
w3 = 0,2
w2 = 0,7
w4 = 0,1
b2 = 0,2
+1
b3= 0,1
w6= 0,2
w5= 0,4x1
x2
Atividade 4
Considere a árvore de decisão do exemplo a seguir, montada a partir da base de dados de Câncer de 
Mama:
Como seria classificado um novo indivíduo com as seguintes entradas: Cell.size = 5,2, Cl.Thickness = 4,8 e 
Cell.shape = 5?
Cl.thickness
Cell.size
Cell.shape
Benign Benign Benign BenignMalignant Malignant Malignant Malignant
Cell.shapeCell.shape Cell.shape
Cell.size
5
>5
>5>5 >5
>5
>5
{leite}: 0,7 {manteiga, pão}: 0,3 {café, leite, manteiga}: 0,3
{pão}: 0,3 {café, leite}: 0,5 {café, leite, queijo}: 0,4
{manteiga}: 0,7 {café, queijo}: 0,4 {leite, manteiga, queijo}: 0,3
{café}: 0,6 {café, manteiga}: 0,4
{queijo}: 0,7 {leite, manteiga}: 0,4
{manteiga, queijo}: 0,4
{leite, queijo}: 0,6
Aprendizado de máquina 121
CONSIDERAÇÕES FINAIS
Este capítulo apresentou os conceitos básicos de aprendizado de máquina, desta-
cando duas de suas três formas: aprendizado supervisionado e não supervisionado. 
Ao longo do texto, foram abordadas as tarefas de predição com base em redes neurais 
artificiais, árvores de decisão e sua combinação, Random Forest.
Também foram apresentados o aprendizado não supervisionado e as tarefas des-
critivas de agrupamento e associação. Para o agrupamento, abordou-se o algoritmo 
K-Means, e, para associação, o algoritmo Apriori foi comentado.
REFERÊNCIAS
AGRAWAL, R.; IMIELINSKI, T.; SWAMI, A. Mining association rules between sets of items in large databases. 
Proceedings of the ACM SIGMOD International Conference on Management of Data, Washington, v. 2, n. 22, 
p. 207-216, jun. 1993.
AGRAWAL, R.; SRIKANT, R. Fast algorithms for mining association rules in large databases. Proceedings of 
the 20th International Conference on Very Large Data Bases, Santiago, p. 478-499, set. 1994.
BREIMAN, L. et al. Classification and regression trees. Monterey: Wadsworth and Brooks, 1984.
CESTNIK, B.; KONONENKO, I.; BRATKO, I. ASSISTANT 86: a knowledge-elicitation tool for sophisticated 
users. EWSL’87: Proceedings of the 2nd European Conference on European Working Session on Learning, 
p. 31-45, maio 1987.
CYBENKO, G. Approximation by superpositions of a sigmoidal function. Mathematics of Control, Signals and 
Systems, n. 2, p. 303-314, 1989.
FACELI, K. et al. Inteligência Artificial: uma abordagem de aprendizado de máquina. Rio de Janeiro: LTC, 
2011.
FISCHER, R. The use of multiple measurements in taxonomic problems. Annual Eugenics, v. 7, n. 2, p. 
 179-188, 1936.
HAYKIN, S. Neural networks and learning machines. 3. ed. New Jersey: Pearson, 2009.
MITCHELL, T. Machine learning. Nova York: McGraw-Hill, 1997.
QUINLAN, J. discovering rules by induction from large collections of examples. Expert Systems in the 
 Micro-Electronic Age, Edinburgh, p. 168-201, 1979.
QUINLAN, J. C4.5: Programs for machine learning. San Francisco: Morgan Kaufmann Publishers Inc., 1993.
REZENDE, S. Sistemas inteligentes: fundamentos e aplicações. Barueri: Manole, 2003.
RIVEST, R. Learning decision lists. Mach Learn, n. 2, p. 229-246, 1987.
ROSEMBLATT, F. The Perceptron: a probabilistic model for information storage and organization in the 
brain. Psycological Reviews, n. 65, p. 53-65, 1958.
RUMELHART, D.; HINTON, G.; WILLIAMNS, R. Learning representations by back-propagating errors. Nature, 
v. 323, p. 533-536, 1986.
RUSSELL, S.; NORVIG, P. Inteligência Artificial. 3. ed. Rio de Janeiro: Elsevier Brasil, 2013.
WOLBERG, W. H. Breast Cancer Wisconsin (Original) Data Set. UCI Machine Learning Repository, 1992. 
Disponível em: https://archive.ics.uci.edu/ml/datasets/breast+cancer+wisconsin+(original). Acesso em: 
21 dez. 2020.
WIDROW, B.; HOFF, M. Adaptive switching circuits. IRE WESCON Convention Record, p. 96-104, 1960.
122 Inteligência Artificial
5
Computação evolucionária
A computação evolucionária, ou computação evolutiva, é um ramo 
da computação fundamentado nos processos evolutivos observados na 
natureza. É formada por algoritmos genéticos, estratégias de evolução e 
programação evolucionária.
Este capítulo tem como objetivo apresentar de maneira clara e con-
cisa os algoritmos genéticos, mostrando sua estrutura básica de fun-
cionamento e aspectos que os tornam tão poderosos na resolução de 
problemas. Assim, na Seção 5.1 são apresentadas as bases dos algo-
ritmos genéticos. A Seção 5.2 é dedicada à descrição dos métodos de 
seleção de indivíduos para reprodução. Já a Seção 5.3 apresenta alguns 
operadores genéticos usuais.
5.1 Algoritmos genéticos 
Vídeo Os algoritmos genéticos (AG) surgiram em meados dos anos 1950, quando cien-
tistas começaram a se inspirar na natureza para criar processos computacionais, 
que mais tarde ficaram conhecidos como inteligência artificial. Na primeira metade 
dos anos 1960, Rechenberg (1965) desenvolveu as estratégias evolucionárias, que 
eram usadas para otimizar parâmetros para dispositivos como aerofólios. Em se-
guida, Fogel, Owens e Walsh (1966) desenvolveram a programação evolucionária, 
uma técnica na qual as soluções candidatas eram representadas por máquinas de 
estados finitas, desenvolvidas aleatoriamente por meio de mutações. O trabalho 
de Holland a partir dos anos 1960, em especial, apresenta os AG como uma metá-
fora para os processos evolutivos (MITCHELL, 1996).
Os AG podem ser entendidos como algoritmos de busca. Para entender suas 
diferenças, mostra-se o exemplo a seguir. 
Considere o problema de encontrar o máximo da seguinte função:
f(x) = x sin (15x) + 1; -1 ≤ x ≤ 2
Isto é, deseja-se encontrar o valor x que possui o maior resultado f(x) para 
essa função. A Figura 1 apresenta um gráfico da função para melhor visualiza-
ção do processo.
Computação evolucionária 123
Figura 1
Gráfico da função f(x)
f(x
) =
 x
 s
in
 (1
5x
) +
 1
 
 -0,5 00 0,5
x
1,0 1,5 2,0
-1,0
-1,0
-0,5
00
0,5 
1,0
1,5
2,0
2,5
3,0
Fonte: Elaborada pelo autor.
Esse caso é um problema de otimização, pois o objetivo é encontrar o melhor 
estado (x) de acordo com a função dada (f(x)). Para resolver um problema dessa for-
ma, pode-se usar algoritmos diferentes das buscas clássicas, pois não há interesse 
em saber os estados analisados até se chegar ao resultado ótimo 1 .
Um algoritmo clássico para resolver esse tipo de problema é o algoritmo de subida 
de encosta (ou hill climbing), que é um tipo de busca gulosa local, isto é, ele procura 
um estado vizinho melhor que o estado atual sem decidir antecipadamente as demais 
movimentações (RUSSELL; NORVIG, 2013). A ideia central desse algoritmo é: dado um 
ponto inicial x aleatório, o algoritmo busca nas redondezas pontos vizinhos x’ que pos-
suem valores f(x’) maiores de f(x); quando encontrados, ele substitui x por x’ e efetua o 
mesmo processo, sempre caminhando para valores f(x’) maiores que os atuais.
A Figura 2 mostra o processo do algoritmo de subida de encosta. Partindo de um 
ponto inicial, o algoritmo procura na vizinhança pontos que gerem resultando da fun-
ção f(x) melhores até que não seja mais possível, ou seja, até encontrar o ponto máximo.
Figura 2
Subida de encosta
f(x
) =
 x
 s
in
 (1
5x
) +
 1
 
 -0,5 00 0,5
x
1,0 1,5 2,0
-1,0
-1,0
-0,5
00
0,5
1,0
1,5
2,0
2,5
3,0
Direção da busca
Ponto inicial 
 Solução 
(ponto máximo) 
Fonte: Elaborada pelo autor.
Outro problema que possui essas 
mesmas características é o pro-
blema das oito rainhas (RUSSELL; 
NORVIG, 2013).
1
124 Inteligência Artificial
Apesar de o algoritmo ser muito eficiente em termos de tempo de execução 
e ocupação de memória, fácil de implementar e muito intuitivo, ele sofre do 
problema de máximos locais. Por exemplo, a Figura 3 apresenta os máximos 
locais e o máximo global de f(x), sendo que o objetivo no exemplo é encontrar 
o máximo global.
Figura 3
Função f(x) com máximos locais e máximo global
f(x
) =
 x
 s
in
 (1
5x
) +
 1
 
 -0,5 00 0,5
x
1,0 1,5 2,0
-1,0
-1,0
-0,5
00
0,5
1,0
1,5
2,0
2,5
3,0
Máximos locais Máximo global 
Fonte: Elaborada pelo autor.
Se o ponto inicial for escolhido perto de um máximo local, o algoritmo, ao en-
contrá-lo, considera-o como sendo a resposta do problema, mas é uma resposta 
errada. A Figura 4 apresenta a escolha de um ponto inicial que leva o algoritmo a 
uma solução incorreta.
Figura 4
Algoritmo de subida de encosta que fica preso em um máximo local
f(x
) =
 x
 s
in
 (1
5x
) +
 1
 
 -0,5 00 0,5
x
1,0 1,5 2,0
-1,0
-1,0
-0,5
00
0,5
1,0
1,5
2,0
2,5
3,0
Direção da busca
Ponto inicial 
 Solução(ponto máximo) 
Máximo 
local (não é 
solução) 
Fonte: Elaborada pelo autor.
Computação evolucionária 125
Dessa forma, outras maneiras de se buscar pelas so-
luções são apresentadas e os algoritmos genéticos, em 
especial, fornecem um procedimento alternativo com um 
bom resultado.
Os AG são processos computacionais embasados 
em modelos biológicos, como a genética e a teoria da 
evolução de Darwin (ARTERO, 2009). Um dos primeiros 
trabalhos a usar a metáfora biológica aplicada à compu-
tação foi o de Holland (1975), que tratou do mapeamento 
do processo biológico de adaptação para áreas como econo-
mia, jogos e inteligência artificial.
O funcionamento dos AG se baseia em apontar uma população de possíveis 
soluções para um problema, aplicar uma função de aptidão para avaliá-las e decidir 
quais têm capacidade de contribuir para novas gerações de soluções. Então, por 
meio de operações que simulam transferências de genes na reprodução sexuada e 
na seleção natural, os candidatos mais aptos são combinados para criar uma nova 
geração de soluções candidatas (LUGER, 2013).
Já se consegue perceber algumas diferenças entre a busca com hill climbing 
apresentada e os AG. Enquanto o hill climbing assume um estado como atual e 
tenta encontrar um estado próximo que seja melhor, os AG trabalham com vários 
estados e não obtêm um estado vizinho como próximo a ser analisado, mas sim 
aplicam operações para obter novos estados.
Com esse processo, espera-se que as características que tornam soluções mais 
aptas sejam transferidas para a próxima geração e aquelas que as tornam me-
nos aptas sejam perdidas. Dessa forma, espera-se que novas gerações de soluções 
sejam criadas, fortalecendo características que as tornam mais aptas e, portanto, 
aproximando-as mais da perfeição (ARTERO, 2009).
No caso dos AG, busca-se resolver problemas para os quais uma solução algorít-
mica é difícil ou desconhecida. Então, gera-se um conjunto de valores aleatórios ini-
ciais, os indivíduos, que são prontamente avaliados para determinar se algum deles 
corresponde à solução do problema. Caso não corresponda, é criada uma nova ge-
ração de indivíduos por meio da combinação dos mais aptos, e o processo se repete.
Como os AG fazem uso de uma metáfora biológica baseada em seleção natural 
e genética, deve-se introduzir os termos utilizados que são emprestados da bio-
logia. Um gene é a representação de alguma característica de interesse ou uma 
parte de um número, dependendo de como os indivíduos estão sendo mapeados. 
Os genes podem ser representados por meio de letras, números inteiros, números 
decimais e até mesmo bits.
Um cromossomo é uma cadeia de genes que representa um indivíduo da 
população. Portanto, um cromossomo, ou indivíduo, é representado por uma 
cadeia de letras, números inteiros, números decimais, bits etc., dependendo de 
como é feita a representação dos genes no problema em questão. Já uma popu-
lação é um conjunto de indivíduos que competem pela sobrevivência e repro-
dução, cujo objetivo é perpetuar suas características em novas gerações. Uma 
Para uma introdução 
simplificada aos algoritmos 
genéticos, recomenda-se 
o vídeo História, conceito e 
aplicações dos algoritmos 
genéticos, publicado pelo 
canal Johann Hemmer. 
Disponível em: https://youtu.be/
x7oHgs52BAI. Acesso em: 28 dez. 
2020.
Vídeo
agic pictures/Shutterstock
https://youtu.be/x7oHgs52BAI
https://youtu.be/x7oHgs52BAI
126 Inteligência Artificial
geração é uma população em um determinado período 
no tempo, o que, em algoritmos genéticos, corresponde 
a cada iteração do algoritmo.
A medida de habilidade que é aplicada aos indivíduos 
para estimar a sua capacidade de sobreviver e se repro-
duzir é feita por uma função de aptidão (ou fitness). 
Em AG são usadas funções matemáticas que devem ser 
minimizadas ou maximizadas, dependendo do problema 
tratado. Por exemplo, no caso da maximização de uma fun-
ção, como apresentado na Figura 1, a função de aptidão pode 
ser a própria função f(x). Caso o problema seja encontrar o melhor caminho entre 
duas cidades, ela pode ser uma função de avaliação com componente heurística.
Como os AG são inspirados no processo de evolução, o conceito de seleção é 
aplicado em cada iteração. Isso deve ser feito de modo que os indivíduos mais ap-
tos possam ser selecionados mais frequentemente, propagando assim suas carac-
terísticas. Mesmo assim, os indivíduos menos aptos não podem ser simplesmente 
descartados da população, pois isso causaria a convergência genética prematura.
Convergência genética é quando uma população possui baixa diversidade 
(isto é, muitos indivíduos similares ou uniformes) e, portanto, não consegue evoluir 
para uma população muito diferente. A convergência para uma solução ótima é 
o que se espera de um AG; o problema ocorre quando há convergência genética 
prematura, ou seja, a população converge para indivíduos que possuem uma ap-
tidão relativamente boa e que dominam a população, mas o algoritmo leva a um 
máximo local.
O Algoritmo 1 apresenta o procedimento genérico de execução de um AG.
Algoritmo: Algoritmo Genético Genérico
tempo 0
Inicializar a população P(tempo)
ENQUANTO Condição de parada não satisfeita FAÇA
 Avaliar aptidão de cada membro de P(tempo)
 Selecionar membros mais aptos de P(tempo) 
 Produzir descendentes usando operadores genéticos
 Avaliar aptidão de cada descendente
 Gerar nova população 
 tempo tempo + 1
FIM ENQUANTO
1
2
3
4
5
6
7
8
9
10
Algoritmo 1
Procedimento de um algoritmo genético genérico
Fonte: Adaptado de Luger, 2013.
Na Linha 2, é gerada uma população aleatória com soluções candidatas. O ta-
manho da população é um parâmetro do AG e tem um papel importante, pois se 
o número de indivíduos for baixo, não há espaço para diversidade genética, o que 
faz com que o AG não encontre boas soluções. Se for grande demais, o AG pode 
Rawpixel.com/Shutterstock
Computação evolucionária 127
demorar muito para encontrar uma solução e, dependendo do caso, pode se apro-
ximar da busca exaustiva.
Na Linha 3, define-se que o AG executará até que uma condição de parada seja 
satisfeita. Essa condição pode ser, por exemplo, a existência de uma ou mais solu-
ções candidatas com aptidões que ultrapassam um limiar definido, um número de 
iterações a ser alcançado ou a melhora ou não na aptidão média nas últimas gera-
ções. Cada iteração do processo é uma geração, e um AG é executado tipicamente 
entre 50 e 500 gerações, podendo ocorrer mais vezes (MITCHELL, 1996).
Na Linha 4, todos os indivíduos da população são avaliados conforme sua apti-
dão, que é uma função f(x, t) indicando o valor de aptidão do candidato x no tempo 
t. Quanto maior sua aptidão, maior sua capacidade de sobrevivência e reprodução.
Após a avaliação de todos os indivíduos, na Linha 5 ocorre o passo da seleção, 
no qual são escolhidos pares de candidatos para serem usados em operadores 
genéticos, levando assim a novas soluções. São selecionados pares de candidatos 
baseados em seus valores de aptidão, mas alguns candidatos menos aptos podem 
também ser mantidos, pois podem conter elementos essenciais para a solução.
Para simplificar o entendimento do algoritmo, aqui serão selecionados dois indi-
víduos de maneira aleatória, sem a preocupação sobre a sua aptidão. Uma vez que 
os pares de indivíduos forem selecionados, na Linha 6 são aplicados os operadores 
genéticos para que uma nova população seja gerada. Espera-se que esse novo con-
junto de indivíduos seja mais apto que o anterior para que possa se perpetuar para 
a próxima geração.
Um operador genético é uma operação na qual são tomados dois indivíduos 
para uma recombinação que gera um terceiro elemento, simulando a reprodução 
sexuada. Esses operadores têm a função de criar novos indivíduos preservando 
genes bons, isto é, que chegam mais perto da solução ótima.
Duas operações serão vistas: crossover, ou recombinação, e mutação. 
O crossover é feito com dois indivíduos pais que são cortados em um pontoalea-
tório, gerando outros dois filhos por meio da recombinação de genes. Já na muta-
ção, genes são sorteados para terem seu valor alterado de alguma forma. Ambas 
as operações possuem uma probabilidade de acontecer, isto é, podem não ocorrer 
em todas as gerações.
Os indivíduos obtidos por meio das operações genéticas também são avaliados 
pela sua aptidão, conforme a Linha 7. Na Linha 8, é gerada uma nova população 
com os novos indivíduos, e esse processo é chamado de evolução. A evolução ocor-
re para escolher quais indivíduos serão mantidos na próxima geração e pode ser 
feita usando-se várias técnicas de substituição.
Dada uma população de tamanho n, a maneira mais simples de determinar a 
próxima geração é efetuar o crossover entre n indivíduos, gerando n filhos que 
substituirão completamente a população original. Essa técnica é a substituição 
geracional.
Percebe-se que, substituindo todos os indivíduos de uma população, pode-se 
perder bons indivíduos, com alta aptidão. Uma maneira de melhorar esse com-
128 Inteligência Artificial
portamento é implementar o elitismo, ou substituição geracional com elitismo, 
que mantém os k melhores indivíduos de uma geração (em geral um), os quais 
não devem ser descartados de uma geração para outra. Com isso, garante-se que 
o melhor indivíduo da geração t estará presente na geração t + 1 e que o melhor 
indivíduo dessa geração é pelo menos tão bom quanto o da geração t. Com isso, 
a avaliação do melhor indivíduo em cada geração é crescente (LINDEN, 2012).
O valor de k (quantidade de indivíduos a serem mantidos) em geral é um, pois 
aumentando k, cresce a pressão de seleção, isto é, o risco de convergência genética 
prematura. Outra maneira de substituir a população na próxima geração é usando 
a substituição steady state, na qual um ou dois filhos substituem os piores indi-
víduos da população. Assim, nessa técnica somente os indivíduos menos aptos são 
substituídos e, a cada iteração, pelo menos um indivíduo é trocado, garantindo que 
os menos aptos sejam eliminados.
A Linha 9 incrementa o contador de geração e o processo reinicia. Apesar de o 
algoritmo ser muito simples, seu poder de resolução de problemas está nas confi-
gurações das estratégias utilizadas, tanto na seleção dos indivíduos para reprodu-
ção como nos operadores genéticos a serem utilizados e nas estratégias evolutivas.
Considere como exemplo o problema de encontrar o máximo da seguinte função, 
que será chamada de função mérito, ou função objetivo, usando algoritmos genéticos:
f(x, y) =
3
2
e
(1 + (x - 1)2 + (y - 1)2)
1 5
2
- e 1
(1 + 1
4
(x + )21
2
+ 1
36
 (y - 1)2
+ 2 e
(1 + (x - 2)2 + (y - 2)2)
1
+ 2 e
(1 + (x - 1)2 + (y + 1)2)
1 ; -8 ≤ x ≤ 8 e -8 ≤ y ≤ 8
A Figura 5 apresenta a função no plano de três dimensões em três ângulos 
diferentes.
Figura 5
Função f(x, y) no espaço tridimensional visível em três ângulos diferentes
Fonte: Elaborada pelo autor.
O ponto ótimo dessa função pode ser visto na Figura 6 e é aproximadamente 
em x = 2,01 e y = 1,95, com valor máximo aproximado de f(x, y) = 6,06.
Figura 6
Ponto máximo de f(x, y)
Fonte: Elaborada pelo autor.
Para ver um exemplo 
de uso de algoritmos 
genéticos, assista ao vídeo 
Algoritmo genético aplicado 
ao problema da mochila, 
publicado pelo canal 
Ponto Ótimo, que mostra a 
aplicação de um AG em um 
problema.
Disponível em: https://youtu.be/
FYF6lS_BHKA. Acesso em: 28 dez. 
2020.
Vídeo
https://youtu.be/FYF6lS_BHKA
https://youtu.be/FYF6lS_BHKA
Computação evolucionária 129
Seguindo o Algoritmo 1, os primeiros passos são inicializar o tempo em zero 
e a população com a qual o algoritmo começará o processamento. Dessa forma, 
é necessário que seja decidido qual formato dos cromossomos dos indivíduos será 
usado, para que os genes possam ser usados nas operações genéticas.
Como a função objetivo recebe os valores x e y, o indivíduo será representado 
pela concatenação de valores x e y transformados em números binários. Para sim-
plificação, só serão usados valores inteiros. Assim, um indivíduo pode ser repre-
sentado por um vetor de números binários, em que a primeira metade representa 
o valor de x e a segunda metade, o valor de y. Como os números são pequenos, 
pode-se usar quatro bits para cada coordenada.
Assim, a Linha 2 gera um conjunto inicial aleatório de indivíduos, isto é, vetores 
de números binários. Com base nesses indivíduos iniciais é que o algoritmo inicia 
o processamento. Por exemplo, suponha que dentro da população gerada têm-se 
os seguintes indivíduos (x, y):
 • (1, 0)
 • (4, 5)
 • (-5, -2)
 • (-3, 3)
Assinalados no gráfico da função f(x, y), esses indivíduos podem ser vistos na 
Figura 7.
Figura 7
População inicial assinalada no gráfico de f(x,y)
Fonte: Elaborada pelo autor.
Assumindo uma representação de cada número com quatro bits, têm-se os se-
guintes indivíduos:
 • 0001 0000
 • 0100 0101
 • 1001 1110
 • 1101 0011
Na Linha 3, o critério de parada é estabelecido e assume-se que ocorrerá uma 
determinada quantidade de iterações; por exemplo: dez iterações. Na Linha 4, 
calcula-se a aptidão de cada elemento da população, que nesse caso é o valor de 
f(x, y), a saber:
Acessando o site de Carlos 
Rafael Gimenes das Neves, 
você pode obter a codifica-
ção dos números usando 
quatro bits.
Disponível em: https://carlosrafaelgn.
com.br/Aula/Binario.html. Acesso em: 
28 dez. 2020.
Site
https://carlosrafaelgn.com.br/Aula/Binario.html
https://carlosrafaelgn.com.br/Aula/Binario.html
130 Inteligência Artificial
 • Aptidão de 0001 0000 = f(1, 0) = 3,4448
 • Aptidão de 0100 0101 = f(4, 5) = 2,8356
 • Aptidão de 1001 1110 = f(-5, -2) = 2,6877
 • Aptidão de 1101 0011 = f(-3, 3) = 2,1969
A Linha 5, responsável pelo método de seleção, escolhe os indivíduos mais ap-
tos (nesse caso, aqueles que possuem o maior valor de f(x, y)) para serem usados 
na reprodução. Para simplificar o exemplo, pode-se selecionar dois indivíduos alea-
toriamente, a saber:
 • 1101 0011
 • 0100 0101
Após a seleção, a Linha 6 aplica operadores genéticos para encontrar os descen-
dentes, perpetuando as melhores características de cada indivíduo. Nesse exemplo 
será usado o crossover em um ponto. A Figura 8 ilustra esse processo. O ponto de 
corte é escolhido aleatoriamente; aqui será apresentado o exemplo de escolha do 
Ponto 3.
Figura 8
Crossover de dois indivíduos com ponto de corte no terceiro gene
1 1 0 1 0 0 1 1
0 1 0 0 0 1 0 1
Ponto de corte Crossover Novos indivíduos
Indivíduo 1
1 1 0 1 0 0 1 1
Indivíduo 2
0 1 0 0 0 1 0 1
1 1 0 1 0 0 1 1
0 1 0 0 0 1 0 1
0 1 0 1 0 0 1 1
1 1 0 0 0 1 0 1 
Fonte: Elaborada pelo autor.
Os operadores genéticos podem ser aplicados várias vezes, dependendo da 
estratégia implementada no algoritmo. Vamos supor aqui, com essa população 
de quatro indivíduos, que seja feita mais uma rodada de seleção dos pais e ope-
ração genética. Suponha também que os indivíduos 1001 1110 e 0001 0000 sejam 
selecionados. Aplicando-se o crossover no mesmo ponto, obtém-se: 1000 0000 e 
0001 1110.
Após essa etapa, deve-se avaliar os novos indivíduos obtidos, no caso:
 • Aptidão de 0101 0011 = f(5, 3) = 3,0195
 • Aptidão de 1100 0101 = f(-4, 5) = 2,4916
 • Aptidão de 1000 0000 = f(-8, 0) = 2,8903
 • Aptidão de 0001 1110 = f(1, -2) = 2,7288
Para a escolha da próxima geração, assume-se aqui que os filhos substituem os 
pais, mas outras técnicas podem ser aplicadas, inclusive levando em consideração 
a aptidão de todos os indivíduos recém-obtidos. A Figura 9 apresenta os novos in-
divíduos no gráfico de f(x, y).
Computação evolucionária 131
Figura 9
Nova população assinalada no gráfico de f(x, y)
Fonte: Elaborada pelo autor.
O processo é feito para todos os indivíduos, levando em consideração os parâ-
metros do AG que controlam as probabilidades nas quais as operações genéticas 
ocorrem. Com base nisso, espera-se que a população siga convergindo para a solu-
ção ótima. A Figura 10 mostra uma população, assinalada no gráfico, mais próxima 
do ponto ótimo.Figura 10
População em uma geração mais avançada
Fonte: Elaborada pelo autor.
Esse processo continua até que o critério de parada seja atingido. Então, esco-
lhe-se o indivíduo da população que possuir a maior aptidão; ele será a solução 
para o problema.
5.2 Métodos de seleção 
Vídeo O Algoritmo 1 apresenta pontos em que se pode escolher opções de processa-
mento. Na Linha 5, é feita a seleção dos elementos que serão alvo de operações 
genéticas e têm-se várias formas de seleção. Além disso, na Linha 6 são feitas as 
operações genéticas, que também possuem algumas variantes. A seleção pode ser 
feita de quatro formas: seleção aleatória, por torneio, por roleta e amostragem 
universal estocástica.
132 Inteligência Artificial
Na seleção aleatória, são tomados dois indivíduos de maneira aleatória para 
aplicação de operadores genéticos (ou reprodução). Como não leva em conside-
ração a aptidão dos candidatos, pode-se gerar filhos piores do que seus pais, com 
uma solução mais longe da ótima.
Na seleção por torneio, para selecionar k indivíduos para reprodução, são fei-
tas k disputas. Em cada uma dessas disputas são tomados n indivíduos ao acaso, 
e o melhor deles, segundo sua aptidão, é escolhido para reprodução. Geralmente, 
toma-se n com valor três. A Figura 11 ilustra o mecanismo para a escolha de qua-
tro indivíduos (k = 4) usando-se três indivíduos tomados aleatoriamente (n = 3). 
Perceba que para selecionar quatro indivíduos foram feitos quatro torneios e que 
cada torneio no exemplo é composto de três indivíduos aleatórios, para os quais é 
calculada sua função de aptidão. O indivíduo que tiver o maior valor é o escolhido 
naquele torneio.
Figura 11
Exemplo de seleção por torneio para k = 4 e n = 3 Escolhas
Disputa 1: Indivíduo 1 Indivíduo 2 Indivíduo 4 Aptidão Indivíduo 2
Disputa 2: Indivíduo 3 Indivíduo 1 Indivíduo 7 Aptidão Indivíduo 1
Disputa 3: Indivíduo 4 Indivíduo 5 Indivíduo 6 Aptidão Indivíduo 4
Disputa 4: Indivíduo 7 Indivíduo 6 Indivíduo 5 Aptidão Indivíduo 5
Fonte: Elaborada pelo autor.
Apesar de não haver um limite para o valor de n, o seu valor mínimo deve ser 2, 
pois caso contrário não há disputa. Além disso, se n for igual ao tamanho da popu-
lação, em todas as disputas todos os indivíduos participarão, e o resultado sempre 
será o mesmo. Se for escolhido um valor muito alto, próximo ao tamanho na po-
pulação, alguns indivíduos dominarão as disputas, pois aparecerão em várias delas 
(LINDEN, 2012).
Como a escolha dos indivíduos para os torneios é aleatória, pode ocorrer de al-
gum ser selecionado várias vezes no mesmo torneio. A probabilidade de ocorrência 
é baixa, mas não é nula, e não há qualquer impedimento para tal fenômeno. Isso 
gera um problema de diversidade, pois o pior indivíduo (o que possui menor apti-
dão) só tem chance de ser selecionado para reprodução se aparecer como único 
competidor em algum torneio.
Na seleção por roleta, calculam-se os valores de aptidão para todos os indiví-
duos da população. Os valores são então tomados de modo proporcional, como 
setores de uma roleta, na qual os maiores setores possuem mais chances de serem 
escolhidos. Então, gira-se a roleta (toma-se um número aleatório) para que seja 
escolhido o primeiro elemento. O processo se repete para a seleção do segundo 
indivíduo. A probabilidade de um indivíduo i ser escolhido, p(i), é dada por:
p(i) = 
f(i)
∑ k=1 f(k)n
Computação evolucionária 133
Nessa equação, f(i) é a aptidão do indivíduo i, e n é o número de indivíduos na 
população. O valor de p(i) pode então ser usado para construir a roleta, na qual 
indivíduos que possuem maior f(i) terão uma parcela maior da roleta e, por conse-
guinte, mais chances de serem escolhidos.
A Figura 12 mostra um exemplo de roleta depois do cálculo proporcional das 
aptidões de todos os indivíduos. Percebe-se que o Indivíduo 4 e o Indivíduo 6 pos-
suem setores maiores da roleta e, portanto, mais chances de serem selecionados 
para reprodução.
Figura 12
Exemplo de roleta
 Indivíduo 1 
 Indivíduo 2 
 Indivíduo 3 
 Indivíduo 4 
 Indivíduo 5 
 Indivíduo 6 
Cursor
Fonte: Adaptada de Artero, 2009.
Como o sorteio é aleatório, não há qualquer comprometimento de que os in-
divíduos sorteados apareçam somente uma vez. Há casos, inclusive, em que um 
mesmo indivíduo pode ser selecionado duas vezes no mesmo crossover, gerando 
filhos iguais aos pais e diminuindo a diversidade.
Um problema que ocorre no uso da roleta é quando a população possui um 
superindivíduo, o qual possui um valor de aptidão muito maior que os demais. Por 
exemplo, seja a Tabela 1 com cinco indivíduos e suas aptidões. O Indivíduo 4 possui 
uma aptidão muito maior e, portanto, é um superindivíduo.
Tabela 1
Tabela de população com um superindivíduo
Indivíduo i Aptidão (f(i))
Indivíduo 1 5
Indivíduo 2 8
Indivíduo 3 3
Indivíduo 4 7860
Indivíduo 5 9
Fonte: Elaborada pelo autor.
Efetuando-se o cálculo das probabilidades, o Indivíduo 4 tem 99,78% de proba-
bilidade de ser escolhido. Dessa forma, é muito possível que uma geração inteira 
de seleções seja feita com a escolha somente desse indivíduo, o que acaba com a 
diversidade da população.
134 Inteligência Artificial
Até então, pode não parecer que a presença de um superindivíduo traga proble-
mas para o algoritmo; pelo contrário, parece que a solução ótima foi encontrada ou 
está muito próxima. O problema é que em geral os superindivíduos estão próximos 
de um máximo local, fazendo com que toda a população siga para esse máximo e 
causando convergência genética prematura. Uma maneira de resolver esse proble-
ma é modificar a função de ativação por meio do escalonamento sigma, baseado 
no desvio padrão das aptidões (LINDEN, 2012).
Na amostragem universal estocástica, tem-se um processo semelhante à ro-
leta. Para selecionar k indivíduos, são utilizados k cursores igualmente espaçados 
em uma roleta, como ilustra a Figura 13. A roleta é girada e todos os cursores são 
afetados igualmente. Os indivíduos também podem ser dispostos na roleta de ma-
neira aleatória.
Figura 13
Exemplo de roleta para amostragem universal estocástica com k = 4
 Indivíduo 1 
 Indivíduo 2 
 Indivíduo 3 
 Indivíduo 4 
 Indivíduo 5 
 Indivíduo 6 
Cursor 4
Cursor 3
Cursor 2
Cursor 1
Fonte: Elaborada pelo autor.
A vantagem desse método em relação à roleta é que os resultados são menos 
variantes, ou seja, como a cada rodada da roleta os indivíduos com mais aptidão 
têm mais chances de serem escolhidos, com k cursores até mesmo indivíduos me-
nos aptos têm chance de serem usados.
Infelizmente, o efeito de dominância do superindivíduo, se este existir, é garan-
tido por essa técnica, pois vários cursores apontarão para ele. Ademais, o méto-
do tende a ser mais cruel com indivíduos que possuem baixa aptidão, pois estes 
tendem a desaparecer mais rapidamente da população, levando à convergência 
genética muito rapidamente.
Computação evolucionária 135
5.3 Operadores genéticos 
Vídeo Dado que os indivíduos foram selecionados com base em algum método de 
seleção apresentado, deve-se aplicar as operações genéticas para que uma nova 
população seja gerada. Vários operadores genéticos estão disponíveis para uso em 
AG, todos baseados na metáfora biológica da combinação e mutação genética.
O operador mais comum é a recom-
binação ou crossover, o qual é aplicado 
sobre duas soluções candidatas, divi-
dindo-as e trocando seus elementos 
para gerar dois novos candidatos. No 
crossover de um ponto, um ponto de 
corte é escolhido aleatoriamente e usa-
do para dividir os indivíduos (LINDEN, 
2012). Assumindo que os indivíduos 
são representados por uma cadeia de 
oito genes, em que cada gene é um bit, o ponto de corte define quais bits serão 
passados para os filhos na recombinação. A Figura 14 apresenta um exemplo de 
ponto de corte para o indivíduo 1100 1011 com ponto de corte 4.
Figura 14
Exemplo de ponto de corte
Genes numerados Ponto decorte
Indivíduo 
1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1
1 2 3 4 5 6 7 8 
1 1 0 0 1 0 1 1
1 2 3 4 5 6 7 8
Ponto de corte 4 
4 
Fonte: Elaborada pelo autor.
Assumindo como exemplo a seleção do Indivíduo 1 (1100 1011) e do Indivíduo 2 
(0110 0010) para o crossover, a Figura 15 apresenta o processo para o ponto de 
corte 4. Depois que as partes dos indivíduos são identificadas, são gerados dois 
novos indivíduos, cada um com uma parte de um dos pais, a saber: 0110 1011 e 
1100 0010.
Figura 15
Exemplo de crossover
1 1 0 0 1 0 1 1
0 1 1 0 0 0 1 0
Ponto de corte Crossover Novos indivíduos
Indivíduo 1
1 1 0 0 1 0 1 1
Indivíduo 2
0 1 1 0 0 0 1 0
1 1 0 0 1 0 1 1
0 1 1 0 0 0 1 0
0 1 1 0 1 0 1 1
1 1 0 0 0 0 1 0 
Fonte: Elaborada pelo autor.
Soleil Nordic/Shutterstock
136 Inteligência Artificial
No exemplo apresentado, foi usada a variação do crossover contendo somente 
um ponto de corte. A cada crossover sendo feito, ainda que na mesma iteração 
do algoritmo de AG, pode-se usar um ponto de corte diferente, aleatório. Efetuan-
do-se o ponto de corte em somente um ponto, têm-se várias condições genéticas 
que não podem ser preservadas. Por exemplo, imagine que o indivíduo 1000 1001 
possui os genes inicial (1) e final (1) como sendo importantes e fazendo parte da 
solução. Efetuando-se cortes de um ponto, as chances de perpetuação desses dois 
genes são pequenas.
Nesse caso, sugere-se o uso do crossover de dois pontos, que é uma variação 
na qual são usados dois pontos de corte para recombinação. Assim, sorteiam-se 
dois pontos de corte i e j que separam os genes do indivíduo em três partes, de tal 
forma que a primeira parte do indivíduo vai até o i-ésimo bit, a segunda parte vai 
até o j-ésimo bit e o restante é a terceira parte (LINDEN, 2012).
Para entender exatamente como funcionam os pontos de corte, numeram-se os 
genes do indivíduo e aplicam-se os cortes como mencionado. A Figura 16 apresenta 
um exemplo para o indivíduo 1100 1011 com pontos de corte 2 e 5.
Figura 16
Exemplo de pontos de corte
Genes numerados Ponto de corte
Indivíduo 
1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1
1 2 3 4 5 6 7 8
1 1 0 0 1 0 1 1
1 2 3 4 5 6 7 8
Ponto de corte 5 
2 e 5
Ponto de corte 2
Fonte: Elaborada pelo autor.
A Figura 17 apresenta um exemplo com dois indivíduos escolhidos para 
crossover (1100 1011 e 0110 0010), em que são sorteados os pontos de corte 2 e 5.
Figura 17
Exemplo de crossover de dois pontos: 2 e 5
1 1 0 0 1 0 1 1
0 1 1 0 0 0 1 0
Ponto de corte Crossover Novos indivíduos
Indivíduo 1
1 1 0 0 1 0 1 1
Indivíduo 2
0 1 1 0 0 0 1 0
1 1 0 0 1 0 1 1
0 1 1 0 0 0 1 0
1 1 1 0 0 0 1 1
0 1 0 0 1 0 1 0 
Fonte: Elaborada pelo autor.
Para aumentar os pontos de corte, há o crossover uniforme, que consegue 
combinar várias partes dos indivíduos em seus filhos. Seu funcionamento é assim: 
a cada reprodução, sorteia-se um número 0 ou 1 para cada gene, que será o padrão 
de combinação (LINDEN, 2012).
Assumem-se dois pais, chamados Pai 1 e Pai 2, que geram dois filhos denomina-
dos Filho 1 e Filho 2. Quando o sorteio do valor de um gene for 1, o Filho 1 recebe 
aquele gene do Pai 1; quando o sorteio de um gene for 0, o Filho 1 recebe aquele 
gene do Pai 2. Já para o Filho 2 é o contrário: se o sorteio do gene for 0, ele recebe 
o gene do Pai 1; se for 1, ele recebe o gene do Pai 2.
A Figura 18 mostra um exemplo de crossover uniforme. Os dois indivíduos 
1100 1011 e 0110 0010 são combinados usando o padrão aleatório 1001 1001. Perceba 
que nas posições em que o padrão é 1, o primeiro filho recebe o gene do Indivíduo 1; 
nas posições em que o padrão é 0, ele recebe do Indivíduo 2. Já o segundo filho recebe 
o gene do Indivíduo 2 quando o padrão for 1 e do Indivíduo 1 quando o padrão for 0.
Figura 18
Exemplo de crossover uniforme
Novos indivíduos
Indivíduo 1
1 1 0 0 1 0 1 1
Indivíduo 2
0 1 1 0 0 0 1 0
Padrão de combinação:
1 1 0 0 1 0 1 1
0 1 1 0 0 0 1 0
1 1 0 0 1 0 1 1
1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1
0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0
1 1 1 0 1 0 1 1
Fonte: Elaborada pelo autor.
A probabilidade, ou taxa de crossover, é um parâmetro do AG sendo imple-
mentado. Como no crossover é considerada a operação genética predominante, 
sua probabilidade de ocorrer deve ser maior que a da mutação, por exemplo, 50%. 
Como é um parâmetro, não há valor correto, e avaliações empíricas devem ser 
efetuadas para o seu ajuste correto.
Percebe-se que a operação genética de crossover, independentemente da 
modalidade, tende a preservar a igualdade dos indivíduos, propagando os genes 
em sua prole. Contudo, deve-se considerar alguma operação que possa injetar 
diversidade na população, inserindo novos cromossomos nela. Essa é a mutação 
(LINDEN, 2012).
A operação genética da mutação toma um indivíduo e troca aleatoriamente 
um de seus genes por um valor também aleatório. É uma operação de 
extrema importância em um AG, pois pode eliminar alguma carac-
terística indesejável e até mesmo fazer com que soluções fora do 
Irzhanova Asel/Shutterstock
Computação evolucionáriaComputação evolucionária 137137
138 Inteligência Artificial
limite da população sejam exploradas. A Figura 19 mostra um exemplo de mutação 
em um indivíduo.
Figura 19
Exemplo de mutação
Indivíduo
1 1 0 0 1 0 1 1
Escolha do gene
1 1 0 0 1 0 1 1
Mutação
1 0 0 0 1 0 1 1
Novo indivíduo
1 0 0 0 1 0 1 1
Fonte: Elaborada pelo autor.
No exemplo da Figura 19, o Gene 2 foi trocado de 1 para 0. No entanto, deve-se 
perceber que na técnica de mutação simples o bit 1 também tem chance de ser 
sorteado e essa mutação poderia ser inócua, isto é, não gerar um novo indivíduo.
Em uma população, a mutação ocorre de maneira aleatória, com uma probabili-
dade baixa, conhecida como taxa de mutação (por exemplo, 0,5%). Dado um indiví-
duo selecionado para mutação, cada um de seus genes possui essa probabilidade 
de sofrer a mutação. O operador de mutação então age sobre os genes que forem 
selecionados, alterando-os de maneira aleatória.
Existem outras variantes da mutação, como a inversão, que quando aplicada a 
um gene, em vez de sortear qual valor será substituído, inverte o valor de seu bit, 
no caso de uma codificação binária. Assim, ao contrário da técnica apresentada 
anteriormente, se a mutação ocorrer, um novo indivíduo será gerado.
A troca também é uma operação de mutação que pode ser aplicada. Basica-
mente, dois genes são escolhidos de maneira aleatória e trocados de posição, ge-
rando um novo indivíduo. A Figura 20 mostra um exemplo de mutação por troca.
Figura 20
Mutação por troca
Indivíduo
1 1 0 0 1 0 1 1
Novo indivíduo
1 0 0 0 1 1 1 1
Escolha dos 
genes
1 1 0 0 1 0 1 1
Troca
1 0 0 0 1 1 1 1
Fonte: Elaborada pelo autor.
Outras técnicas de mutação estão disponíveis e podem ser implementadas, mas 
as citadas aqui são as mais comuns. A discussão sobre a probabilidade de aplicação 
da mutação é bastante importante, visto que não é aplicada em toda iteração do AG.
Assim como na natureza, há uma probabilidade de que a mutação ocorra, e em 
geral não é alta. Mas se a probabilidade de ocorrer for muito baixa, o AG não conse-
guirá evoluir a população muito rapidamente e, depois de certo tempo, não haverá 
uma grande diversidade genética (LINDEN, 2012). Já se a probabilidade de a mu-
tação ocorrer for muito alta, o AG se comportará de modo similar a um algoritmo 
aleatório, perdendo suas características de manutenção de bons genes.
Esse dilema não tem uma solução direta, sendo que para cada problema o valor 
mais adequado pode ser diferente. Uma maneira de contorná-lo é usar uma taxa 
de mutação variável, ou seja, que se altera conforme o algoritmo execute. Essa 
variação pode ser feita de maneira determinística ou adaptativa (LINDEN, 2012):
Computação evolucionária 139
Na variação adaptativa, há algum tipo de 
feedback, ou retroalimentação, que direciona o valor da 
taxa de mutação na próxima geração. Por exemplo, a 
regra 1/5 de Rechenberg diz que se mais de 1/5 das 
mutaçõesé muito usado 
em processamento de linguagem 
natural (RAJANI et al., 2019).
Saiba mais
16 Inteligência Artificial
Ao contrário de outras iniciativas, o programa de McCarthy tentava incorporar 
o conhecimento geral do mundo; por exemplo, dado um conjunto de axiomas, era 
possível obter um plano para se chegar ao aeroporto e embarcar em um avião. Ou-
tra característica interessante era que a sua base de axiomas podia ser aumentada 
sem ser reprogramado. Em suma, o advice taker seria capaz de representar conhe-
cimento e raciocinar sobre ele, manipulando essa representação com processos 
dedutivos bem definidos (RUSSELL; NORVIG, 2013).
Também em 1958, Marvin Lee Minsky (1927-2016), que era grande colabora-
dor de McCarthy, foi para o MIT e juntos fundaram o Laboratório de Inteligência 
Artificial, hoje Laboratório de Ciência da Computação e Inteligência Artificial 
do MIT (MIT, 2020). Porém, a parceria desses dois cientistas começou a se desfazer, 
pois Minsky se preocupava em fazer os programas funcionarem e McCarthy dava 
mais ênfase à representação lógica e ao raciocínio formal.
Ainda em 1958, Richard Friedberg (1935-) apresentou estudos de evo-
lução automática, o que hoje é conhecido como algoritmos genéticos 
(FRIEDBERG, 1958; FRIEDBERG; DUNHAM; NORTH, 1959). A ideia era efetuar muta-
ções em programas em código de máquina, objetivando que o resultado fosse um 
programa com melhor desempenho. O conceito de seleção também era aplicado, de 
modo que somente as mutações úteis fossem preservadas. Infelizmente os resulta-
dos na época não foram promissores. Hoje, depois de estudos e melhoramentos na 
área, os algoritmos genéticos são ferramentas muito usadas para busca e otimiza-
ção, obtendo resultados satisfatórios (RUSSELL; NORVIG, 2013).
Além disso, ainda nesse ano, Frank Rosenblatt (1928-1972) elaborou um 
algoritmo de aprendizado para uma rede neural de única camada, que foi chamado 
de perceptron (LUGER, 2013; ROSENBLATT, 1958; ROSENBLATT, 1962). 
Robert Gelernter (1929-2015) construiu em 1959 um provador de teoremas 
chamado de Provador de Teoremas de Geometria (do inglês Geometry Theorem 
Prover), capaz de encontrar a solução de muitos problemas matemáticos em nível 
de ensino médio (RUSSELL; NORVIG, 2013).
Arthur Lee Samuel (1901-1990) popularizou o termo aprendizado 
de máquina e trabalhou em várias frentes na área, sendo mais co-
nhecido pelo seu jogador de damas. Esse estudo se iniciou em 1952, e 
Samuel conseguiu escrever um programa que jogava damas e apren-
dia como melhorar sua estratégia. Seu programa foi treinado jogando 
consigo mesmo milhares de vezes; em alguns dias, adquiriu um nível 
de jogo suficiente para ganhar do próprio Samuel. O programa foi de-
monstrado na televisão em fevereiro de 1952. Já em 1962, usando um 
computador IBM 704, derrotou Robert Nealy, jogador que se autopro-
clamava campeão (RUSSELL; NORVIG, 2013; SAMUEL, 1959).
Desde 1945 com Konrad Zuse (1910-1995), Norbert Wiener 
(1894-1064), conhecido como o fundador da cibernética, e mesmo 
Alan Turing em 1950, o xadrez sempre despertou muito interes-
se da área de inteligência artificial, por ser um jogo para o qual 
se deve pensar em uma jogada. Mas foi Claude Shannon (1916-
2001), considerado o pai da era da informação, em seu artigo de 
axioma: afirmação, também 
chamada de premissa, considerada 
necessariamente verdadeira.
Glossário
Para entender melhor os 
algoritmos genéticos, acesse o site 
a seguir: https://sites.icmc.usp.br/
andre/research/genetic/. Acesso 
em: 2 dez. 2020.
Site
O IBM 704 foi anunciado em 1954 
e era construído com válvulas. O 
tamanho da palavra era de 36 bits 
e continha o equivalente a 18 kb 
de memória principal. Era capaz de 
executar aproximadamente 12.000 
operações de ponto flutuante por 
segundo, isto é, 12 kflops, sendo 
seu processador de aproximada-
mente 0,000001 GHz (IBM, 2020a).
Saiba mais
Federico Leva/Wikimedia Commons
Figura 3
Computador IBM 704
https://sites.icmc.usp.br/andre/research/genetic/
https://sites.icmc.usp.br/andre/research/genetic/
Fundamentos de inteligência artificial 17
1950, que apresentou ideias robustas sobre o jogo, como a representação do 
tabuleiro, as estratégias de jogo e a busca de uma jogada (RUSSELL; NORVIG, 
2013). Os estudos com base em matemática continuaram e, em 1962, Thomas G. 
Evans (1934-) apresentou o Analogy, programa que resolvia problemas de analo-
gia em geometria, parecido com os apresentados em testes de QI (EVANS, 1964).
Em 1963, McCarthy fundou um laboratório de inteligência artificial em Stanford, 
cujo objetivo era usar lógica para construir o advice taker. Nesse mesmo ano, John 
Alan Robinson (1930-2016) apresentou o princípio da resolução, uma regra de infe-
rência única, que gerava um algoritmo de inferência completo, o qual foi um grande 
avanço nos procedimentos automáticos de prova de teoremas (ROBINSON, 1965). 
Esse princípio é o coração do funcionamento da linguagem de programação lógica 
Prolog (BRATKO, 2011).
Os trabalhos sobre redes neurais que se iniciaram em 1943 com McCulloch e 
Pitts tiveram avanços consideráveis. Em especial, o aprendizado de Hebb foi me-
lhorado por Bernard Widrow (1929-) e Marcian Hoff (1937-) em suas redes chama-
das de adalines (WIDROW; HOFF, 1960).
Em 1965 surgiu a Eliza, primeiro programa de processamento de linguagem 
natural usado para simulação de diálogo, comumente conhecido hoje em dia como 
chatbot (WEIZENBAUM, 1966). Com base nela, os programas de diálogo evoluíram 
muito, e atualmente qualquer celular contém um assistente que, além de conseguir 
responder, pode reconhecer as palavras com base na voz do interlocutor.
Marvin Minsky (1927-2016) e Seymour Papert (1928-2016) publicaram em 1969 
o livro Perceptrons, no qual apresentaram várias limitações dos modelos de redes 
neurais com base no perceptron, em especial a classificação de dados que não são 
linearmente separáveis. Isso levou a um desaquecimento dos estudos na área, e os 
recursos foram redirecionados a outras pesquisas (LIMA; SANTOS; PINHEIRO, 2014).
Até 1969, os financiamentos em pesquisas nos Estados Unidos podiam ser 
conduzidos sem um objetivo final, o que favoreceu o desenvolvimento da IA. Po-
rém, a partir de 1969, a Mansfield Emenda iniciou cortes em orçamentos de proje-
tos que não tinham um objetivo claro, sem a produção de algum resultado militar 
(Lei Pública 91-121, Estatuto 83, Seção 203) (US, 1969). Em 1974 os financiamentos 
de pesquisas em IA se tornaram escassos.
Em meados de 1973, James Lighthill (1924-1998) apresentou um relatório ao go-
verno do Reino Unido, mostrando os fracassos da IA no atingimento dos seus obje-
tivos. O relatório afirmava que tudo o que a IA se propunha a fazer poderia ser feito 
por meio de outras ciências e mencionava problemas como a explosão combinatória 
(intratabilidade) de problemas reais, já que a IA se apresentou adequada para resol-
ver versões muito simplificadas desses problemas (LIGHTHILL, 1973).
Esses vários acontecimentos levaram ao que se conhece como Inverno da IA, 
que durou até meados de 1980. Nesse período houve pouco interesse e reduzido 
financiamento de pesquisas em IA.
O interesse na área reapareceu com a publicação de alguns resultados 
importantes, como o algoritmo de retropropagação (backpropagation) 
Você ainda pode conversar com 
a Eliza acessando o link a seguir: 
https://www.masswerk.at/eliza-
bot/. Acesso em: 2 dez. 2020.
Site
Você pode ler o relatório 
de Lighthill, denominado 
Artificial intelligence: a 
general survey, no link a 
seguir. O texto está em 
inglês, mas você pode usar 
a ferramenta de tradução 
do seu navegador.
Disponível em: http://www.chilton-
-computing.org.uk/inf/literature/
reports/lighthill_report/p001.htm. 
Acesso em: 2 dez. 2020.
Leitura
https://www.masswerk.at/elizabot/
https://www.masswerk.at/elizabot/
http://www.chilton-computing.org.uk/inf/literature/reports/lighthill_report/p001.htm
http://www.chilton-computing.org.uk/inf/literature/reports/lighthill_report/p001.htm
http://www.chilton-computing.org.uk/inf/literature/reports/lighthill_report/p001.htmforem bem sucedidas, isto é, apresentarem 
filhos mais adaptados que seus pais, deve-se aumentar 
a taxa de mutação, pois o algoritmo está sendo conser-
vador demais. Já se menos de 1/5 das mutações forem 
bem sucedidas, deve-se diminuir a taxa de mutação, 
pois o algoritmo está sendo agressivo demais.
Na variação determinística, usa-se 
um parâmetro para calcular a taxa de 
mutação, como o número de gerações de-
corridas. Pode-se usar uma fórmula linear, 
quadrática ou exponencial, e cada uma 
possui características diferentes.
Assumindo cada indivíduo como uma solução candidata ao problema subjacen-
te, as operações genéticas tentam criar novas soluções. Assim, as operações gené-
ticas são o ponto central dos AG, pois é por meio delas que a população consegue 
evoluir, gerando novos indivíduos.
Atividade 1
Seja o problema de encontrar o ponto máximo da função f(x) = x2 e sejam dois 
indivíduos codificados em números binários de oito bits (com sinal) e selecionados 
para reprodução:
 Indivíduo 1: 0001 0000
 Indivíduo 2: 1100 0101
Faça o crossover de um ponto desses dois indivíduos com ponto de corte no bit 5. 
Apresente os filhos e indique qual é o mais adaptado. Dica: use o site de Carlos Rafael 
Gimenes das Neves (https://carlosrafaelgn.com.br/Aula/Binario.html) para fazer 
conversões de números binários.
Atividade 2
Considere o indivíduo 0100 0110 e que seu gene número 3 foi selecionado para 
mutação do tipo inversão. Qual é o indivíduo resultante?
Atividade 3
O que é um superindivíduo e quais são as suas implicações em um algoritmo 
genético?
CONSIDERAÇÕES FINAIS
Este capítulo apresentou conceitos de algoritmos genéticos, os quais são uma al-
ternativa à busca clássica na procura pela solução de um problema. Eles têm como 
uma vantagem não serem sensíveis a máximos locais, desde que parametrizados de 
maneira adequada.
Apesar de possuírem vários aspectos estocásticos, como pontos para operações 
genéticas e população inicial, os AG não são algoritmos totalmente aleatórios, pois 
usam informações da população atual para determinar a próxima, usando a função 
de adaptação.
Há muitas parametrizações disponíveis, como tamanho da população, taxa de 
aplicação de operações genéticas etc. Isso faz com que os AG sejam uma boa 
alternativa para o tratamento de problemas cujo espaço de estados é intratavel-
mente grande.
https://carlosrafaelgn.com.br/Aula/Binario.html
140 Inteligência Artificial
REFERÊNCIAS
ARTERO, A. Inteligência artificial: teórica e prática. São Paulo: Livraria da Física, 2009.
FOGEL, L.; OWENS, A.; WALSH, M. Artificial intelligence through simulated evolution. Nova York: Wiley, 1966.
HOLLAND, J. Adaptation in natural and artificial systems. Ann Arbor: University of Michigan Press, 1975.
LINDEN, R. Algoritmos genéticos. 3. ed. Rio de Janeiro: Ciência Moderna Ltda., 2012.
LUGER, G. Inteligência artificial. 6. ed. São Paulo: Pearson Education do Brasil, 2013.
MITCHELL, M. An introduction to genetic algorithms. Cambridge: The MIT Press, 1996.
RECHENBERG, I. Cybernetic solution path of an experimental problem. Farnborough: Ministry of Aviation, 
Royal Aircraft Establishment, 1965.
RUSSELL, S.; NORVIG, P. Inteligência artificial. 3. ed. Rio de Janeiro: Elsevier Brasil, 2013.Nos aliquam quo 
bea suntoritat exera nimaionsecum voloreste nem. Itat doluptatia sernatatur?
Gabarito 141
GABARITO 
1 Fundamentos de inteligência artificial
1. 
a) Agindo racionalmente. Pela definição de Nilsson, um artefato é inteligente se 
possui um desempenho inteligente, isto é, age de modo inteligente, racional.
b) Agindo como um humano. Pela definição de Kurzweil, máquinas executam 
funções que exigem inteligência da mesma forma que os humanos.
c) Pensando racionalmente. Pela explicação de Winston, a IA é a definição dos 
procedimentos de raciocinar a serem implementados em uma máquina.
d) Pensando como um humano. Pela explicação de Bellman, a IA é o estudo 
introspectivo, no humano, de como o pensamento funciona, de suas 
atividades etc., de modo a se tornar possível a sua implementação em uma 
máquina.
2. Como exemplo, tem-se: carros autônomos, detector de spam, jogadores de xadrez, 
tratores autônomos, verificadores de hardware, filtros do Instagram.
3. Princípio da resolução.
2 Resolução de problemas
1. 
Lugoj 
Mehadia 
Dobreta 
Craiova 
Pitesti 
Timisoara 
Lugoj 
Mehadia 
Dobreta 
Rimnicu 
Vilcea Craiova Bucareste 
Rimnicu 
Vilcea 
244
241
242
329
244
241
242
193 160 0
193
1ª Expansão 
2ª Expansão 
3ª Expansão 
4ª Expansão 
5ª Expansão 
160
100
142 Inteligência Artificial
2. 
Lugoj 
Bucareste 
Pitesti 
Mehadia 
Craiova 
Dobreta 
Timisoara 
Lugoj 
Mehadia 
Lugoj Arad
Timisoara 
Timisoara 
Lugoj 
Craiova Rimnicu 
Vilcea 
Lugoj Dobreta 
Mehadia
Dobreta Dobreta Rimnicu 
Vilcea 
Mehadia 
244 = 0 + 244
504 = 504 + 0 
503 = 403 + 100 
311 = 70 + 241
425 = 265 + 160
387 = 145 + 242 
461 = 220 + 241
384 = 140 + 244
440 = 111 + 329
466 = 111 + 329
451 = 210 + 241 
595 = 229 + 366
580 = 251 + 329
622 = 333 + 329
524 = 280 + 244
701 = 541 + 160693 = 500 + 193
534 = 290 + 244 627 = 385 + 242
533 = 292 + 241 
527 = 285 + 242 537 = 295 + 242 604 = 411 + 193
1ª Expansão 
10ª Expansão 
2ª Expansão 
5ª Expansão 
6ª Expansão 
4ª Expansão 
8ª Expansão 
3ª Expansão 
9ª Expansão 
7ª Expansão 
3. 
• Estados: qualquer versão do mapa com ou sem cores.
• Estado inicial: mapa sem qualquer cor.
• Ações: colocar em um estado no mapa uma cor diferente das cores dos 
estados adjacentes.
• Modelo de transição: devolve uma cor colocada em um estado.
• Teste de objetivo: verifica se todos os estados estão coloridos, de modo que 
os adjacentes tenham cores diferentes.
• Custo do caminho: irrelevante, o interesse é nas cores finais.
3 Raciocínio lógico e conhecimento
1. Os agentes baseados em conhecimento são capazes de manter representações 
internas de conhecimento e operá-las como formas de raciocínio.
2. 
1: p → q
2: p ∧ r
3: p (Elim. Conjunção, 2)
4: q (Modus Ponens, 1, 3)
3. 
1: p → ¬q
2: r → q
3: r
4: ¬q → ¬r (Contrapositiva, 2)
5: p → ¬r (Silog. Hipotético, 1, 4)
6: ¬¬r → ¬p (Contrapositiva, 5)
7: r → ¬p (Dupla negação, 6)
8: ¬p (Modus Ponens, 3, 7)
Gabarito 143
4. 
INÍCIO(Sobre(A, Mesa) ∧ Sobre(C, A) ∧ Sobre(B, C) ∧ Bloco(A) ∧ Bloco(B) ∧ Bloco(C) 
∧ Livre(B))
OBJETIVO(Sobre(A, B), Sobre(B, C))
AÇÃO(Mover(b, x, y),
PRECOND: Sobre(b, x) ∧ Livre(b) ∧ Livre(y) ∧ Bloco(b) ∧ Bloco(y) ∧ (b≠x) ∧ (b≠y) 
∧ (x≠y),
EFEITO: Sobre(b, y) ∧ Livre(x) ∧ ¬Sobre(b, x) ∧ ¬Livre(y))
AÇÃO(MoverParaMesa(b, x),
PRECOND: Sobre(b, x) ∧ Livre(b) ∧ Bloco(b) ∧ (b≠x),
EFEITO: Sobre(b, Mesa) ∧ Livre(x) ∧ ¬Sobre(b, x))
Sequência de ações:
 • MoverParaMesa(B, C)
 • MoverParaMesa(C, A)
 • Mover(B, Mesa, C)
 • Mover(A, Mesa, B)
5. Porque as lógicas monotônicas (lógicas clássicas) não permitem que afirmações 
que são dedutíveis deixem de ser, isto é, se tornem falsas, à medida que novas 
afirmações são aprendidas. Esse é um aspecto do aprendizado e percepção 
humanos, que, com novas observações, pode falsificar afirmativas que antes eram 
conhecidas.
4 Aprendizado de máquina
1. Aprendizado supervisionado se dá quando o conjunto de dados observados já está 
rotulado, isto é, já possui um resultado de saída. São efetuadas as tarefas preditivas 
classificação e regressão e são utilizadas as técnicas redes neurais, árvores de decisão 
e Random Forest. Já no aprendizado não supervisionado, o conjunto de dados 
observados não está rotulado. São efetuadas as tarefas descritivas agrupamento e 
associação e são utilizadas as técnicas K-Means e Apriori.
2. Ambas são tarefas preditivas do aprendizado supervisionado. A classificação 
tem como objetivo aprender a categorizar dados, predizer um valor categórico 
com base em uma categorização apresentada (dados rotulados), enquanto a 
regressão visa aprender uma função que aproxima o resultado apresentado 
nos dados rotulados, ou seja, predizer um valornumérico.
3. Analisando a rede, o neurônio N1 tem sua saída dada pela seguinte equação:
N1 = fa (x1 * w1 + x2 * w2 + b1)
N1 = fa (8 * 0,5 + 1 * 0,7 + 0,3)
N1 = fa (5) = 5
O neurônio N2 tem sua saída dada pela equação:
N2 = fa (x1 * w3 + x2 * w4 + b2)
N2 = fa (8 * 0,2 + 1 * 0,1 + 0,2)
N2 = fa (1,9) = 1,9
144 Inteligência Artificial
E o neurônio N3 tem sua saída dada pela equação:
N3 = fa (N1 * w5 + N2 * w6 + b3)
N3 = fa (5 * 0,4 + 1,9 * 0,2 + 0,1)
N3 = fa (2,48) = 2,48
4. Caminhando pela árvore com os dados informados, descobre-se que é benigno 
(benign) e a figura a seguir mostra o caminho percorrido:
Cl.thickness
Cell.size
Cell.shape
Benign Benign Benign BenignMalignant Malignant Malignant Malignant
Cell.shape Cell.shape
5
>5
>5>5 >5
>5
>5
18 Inteligência Artificial
em redes perceptrons de múltiplas camadas (LIMA; SANTOS; PINHEIRO, 
2014). Apesar de o algoritmo ter sido descoberto na década de 1960, na 
área da engenharia, seu uso em redes neurais foi difundido por David 
Rumelhart (1942-2011), Geoffrey Hinton (1947-) e Ronald Williams (1949-) ape-
nas em 1986 (RUMELHART; HINTON; WILLIAMS, 1986).
Convém ressaltar que os avanços da tecnologia microeletrônica também im-
pulsionaram as pesquisas. Em 1981 a IBM lança o primeiro PC (personal compu-
ter), o que disseminou a computação ainda mais (IBM, 2020b). Outro aspecto que 
reacendeu o interesse pelas redes neurais foi uma publicação de John Hopfield 
(1933-) em 1982, a qual apresentou redes neurais recorrentes com propriedades 
associativas (HOPFIELD, 1982).
Resultados importantes em sistemas especialistas também tiveram sua parte na 
ascensão da IA. Edward Hance Shortliffe (1947-) apresentou em 1975 o Mycin, um sis-
tema especialista com base em regras, usado para identificar infecções sanguíneas 
(SHORTLIFFE, 1976). O Mycin conseguia um desempenho tão bom quanto o de espe-
cialistas e era mais eficaz que médicos em início de carreira (RUSSELL; NORVIG, 2013).
Ao mesmo tempo, a IA começou a ser aplicada na indústria, por meio dos 
sistemas especialistas. O primeiro sistema especialista bem-sucedido foi o R1 
da DEC (Digital Equipment Corporation) em 1982. Em 1986 o R1 gerava uma 
economia de 40 milhões de dólares por ano, configurando pedidos de novos 
sistemas e computadores. Em 1988 a DEC já tinha quarenta sistemas especia-
listas em operação. A empresa DuPont possuía aproximadamente 100 sistemas 
especialistas em operação, gerando uma economia de 10 milhões de dólares 
por ano (RUSSELL; NORVIG, 2013). Em 1980 o sistema especialista prospector 
descobriu um depósito de molibdênio nos Estados Unidos, analisando dados 
geológicos (HART; DUDA, 1977).
Com resultados impressionantes com os sistemas especialistas, a indústria de 
IA expandiu-se muito. Grande parte das corporações tinha um grupo de IA usan-
do ou pesquisando sistemas especialistas. Porém, as promessas que esses grupos 
propunham muitas vezes eram ambiciosas demais. Assim, a área passou por mais 
um período de desaquecimento, conhecido como o Segundo Inverno da IA, que se 
iniciou aproximadamente no final dos anos 1980 até início dos anos 1990.
Essa segunda estagnação foi logo superada. Na metade dos anos 1990 hou-
ve a explosão da internet comercial, e as redes começaram a usar IA para inde-
xação de conteúdo, sistemas de navegação etc. Trabalhos como os de Allen 
Newell (1927-1992), John Laird (1954-) e Paul Rosenbloom (1920-2005) com agentes 
inteligentes foram potencializados com a internet de tal forma que os bots (robôs 
de software) hoje em dia são amplamente usados (RUSSELL; NORVIG, 2013).
Retornando ao desenvolvimento de jogos, em 1990, o programa jogador de da-
mas Chinook, de Jonathan Schaeffer (1957-), ficou em segundo lugar em um cam-
peonato aberto de damas nos Estados Unidos e se classificou para o campeonato 
mundial. Em 1994 o Chinook se tornou oficialmente o campeão mundial, vencendo 
Marion Tinsley, que tinha sido campeão por 40 anos e perdido apenas três jogos. 
molibdênio: metal usado 
principalmente para formar ligas 
resistentes de aço, aço inoxidável, 
carbono etc. 
Glossário
Em 2007 Schaeffer et al. (2007) resolveram o jogo de 
damas, mostrando que jogadas perfeitas de ambos os 
jogadores levam ao empate.
Um grande marco no desenvolvimento da IA em jo-
gos foi a vitória do Deep Blue da IBM sobre o campeão 
mundial de xadrez Garry Kasparov, em 1997. Foram 
dois encontros de seis partidas. No primeiro encontro, 
em 1996, Kasparov ganhou por 4 a 2. No segundo, em 
1997, em um confronto de seis partidas, o Deep Blue ga-
nhou duas, foi derrotado em uma e houve três empates 2
(GOODMAN; KEENE, 1997).
Após essa vitória da máquina sobre um campeão mundial de xadrez, o jogo de 
Go passou a ser considerado o exemplo de jogo em que humanos superam as má-
quinas. Isso ocorreu até 2015, quando o AlphaGo, do grupo DeepMind, da Google, 
venceu Lee Sedol, 18 vezes campeão mundial (BYFORD, 2016).
Em 1997 a Administração Nacional da Aeronáutica e Espaço (NASA) lan-
çou um veículo em Marte chamado Soujorner, cuja operação era manual. Já o 
Remote Agent, que era um software de planejamento, foi lançado em 1999 a 
bordo da espaçonave Deep Space 1, para planejar e controlar operações de 
maneira autônoma (NASA, 2020). Anos depois foi criado o Mapgen, considerado 
o primeiro software de inteligência artificial a planejar o trabalho de robôs fora 
do planeta Terra. Ele foi empregado para ajudar na operação dos veículos Spirit 
e Opportunity, em Marte (BRESINA et al., 2005).
Em 1998 surgiram as redes neurais convolucionais com a conhecida LeNet-5 
(LECUN et al., 1998), mas elas só tiveram destaque em 2012, quando a rede 
AlexNet ganhou uma competição de reconhecimento de imagens da ImageNet 
usando placas gráficas (GPUs) para sua implementação (KRIZHEVSKY; SUTSKEVER; 
HINTON, 2012; IMAGENET, 2012).
Com relação à aplicação da IA, já em 2002 uma empresa lança o primeiro 
robô de limpeza autônomo, que é muito comum hoje em dia. Isso demonstra 
como a IA começou a se aproximar ainda mais das pessoas e a ajudar em tare-
fas cotidianas.
Ao longo dos anos 2000 a disponibilidade de dados acabou levando alguns pes-
quisadores a se interessarem mais pela quantidade de informação do que pela 
aplicação dos algoritmos em si. Hoje em dia termos como big data são bastante co-
nhecidos e dizem respeito à estruturação e à análise de uma quantidade 
enorme de dados.
Hays e Efros (2007) apresentaram um algoritmo para preen-
chimento de fundos de fotos; por exemplo, quando se usa uma 
aplicação gráfica para remover uma pessoa indesejada, mas 
fica com uma área que precisa corresponder ao fundo. Ao usa-
rem uma base de dados com 10 mil fotos, obtiveram um pés-
simo desempenho, mas, ao usarem um banco de dados com 2 
milhões de fotos, o resultado foi excelente.
LightField Studios/Shutterstock
Cada partida conta 1 ponto e cada 
empate 0,5 pontos, portanto o 
resultado foi de 3,5 a 2,5 para o 
Deep Blue.
2
Para entender melhor as re-
des neurais convolucionais, 
assista ao vídeo Introdução a 
redes neurais convolucionais, 
da IA Expert Academy.
Disponível em: https://youtu.be/7ds-
DHb6qKYI. Acesso em: 2 dez. 2020.
Vídeo
Yuriy Maksymiv/Shutterstock
Fundamentos de inteligência artificialFundamentos de inteligência artificial 1919
https://youtu.be/7dsDHb6qKYI
https://youtu.be/7dsDHb6qKYI
20 Inteligência Artificial
Em 2007 Fei Fei Li (1976-) liderou a iniciativa ImageNet, que se refere à criação 
de um grande banco de dados de imagens para suprir pesquisadores da área (IMA-
GENET, 2016). Em 2009 a Google começou a testar um carro sem motorista em 
seu projeto de carro autônomo, agora conhecido como empresa Waymo (WAYMO, 
2020). Nesse mesmo ano surgiu o StatsMonkey, um sistema capaz de redigir auto-
maticamente uma notícia sobre esportes, em especial beisebol, contendo narrati-
va, estatísticas e resultados (ALLEN et al., 2010).
Em 2011 surgiu o Google Brain, um grupo de pesquisadores de IA e aprendiza-
gem profunda. Em 2012 um simulador conseguiu aprender sozinho a reconhecer 
um gato por meio de vídeos do YouTube. Em 2016 o grupo implementou duas inte-
ligências artificiais que criaram seu próprio algoritmo de criptografia, sem qualquer 
informação inicial (THE MOONSHOT FACTORY, 2019).
Com a tecnologia de processamento e reconhecimento de imagens sendo mais di-
fundida e com recursos computacionais mais disponíveis, outras tecnologias também 
se proliferaram, como é o caso do deepfake. Apesar dos estudos sobre essa tecnolo-
gia terem surgido há algum tempo, só em 2017 se tornaram amplamente populares. 
O deepfake é um vídeo criado por técnicas de IA que reproduzem a aparência, as 
expressões e a voz de uma pessoa real (NGUYEN et al., 2020; TOLOSANA et al., 2020). 
Sua popularidade veio porque um usuário da redesocial Reddit criou um software 
que trocava o rosto de atrizes em filmes adultos pelo de qualquer celebridade.
Claramente o mau uso dessa tecnologia pode levar a notícias falsas, inci-
tar violência, fraudar eleições etc., por isso houve grande movimentação contra 
ela (RIDGWAY, 2019). Mesmo assim, a indústria cinematográfica tem usado o deep-
fake na produção de filmes, em especial Projeto Gemini (2019) e O Irlandês (2019), 
que usaram o rejuvenescimento artificial dos atores.
Em 2018 o centro aeroespacial alemão (DLR) lançou um assistente controlado 
por voz e com base em IA para ajudar astronautas, chamado de Cimon. As pesqui-
sas para uso de IA no espaço estão em pleno desenvolvimento (ESA, 2020).
O GPT-2 da OpenAI é uma plataforma de geração automática de texto lançada 
em 2019. Foi treinado com 40 gb de textos retirados da rede social Reddit, assim 
sendo capaz de gerar parágrafos de texto estruturados e encaixados com um tex-
to passado como ponto de partida (RADFORD et al., 2019). Como a qualidade dos 
textos gerados era sem precedentes, a OpenAI decidiu não revelar suas pesquisas, 
com medo do uso inapropriado para a geração de notícias falsas (conhecidas como 
fake news). Desde seu lançamento, partes foram publicadas e, no final de 2019, uma 
versão completa se tornou disponível (VINCENT, 2019).
Nos dias de hoje a IA passou a fazer parte de muitas aplicações, como siste-
mas de recomendação de produtos ou de filmes e séries, mecanismos de pesquisa, 
agregadores de conteúdo, filtros de imagens e vídeos em redes sociais, automóveis 
autônomos, assistentes pessoais etc.
Muitos pesquisadores defendem que a IA deveria retornar às raízes, isto é, em 
vez de criar versões melhores para as aplicações em tarefas específicas, retomar 
estudos para se conseguir máquinas que pensam, aprendem e criam. Segundo 
Russell e Norvig (2013), isso é chamado de IA de nível humano (HLAI).
Para saber mais sobre o 
que é o deep fake e a sua 
influência no dia a dia, veja 
o vídeo Deep Fake, publica-
do pelo canal Nerdologia.
Disponível em: https://youtu.be/GBea-
vecUwB8. Acesso em: 2 dez. 2020.
Vídeo
No filme Projeto Gemini, o 
assassino Herny Brogan é 
perseguido por um agente que 
consegue até mesmo prever seus 
movimentos. No decorrer da trama 
ele descobre que esse agente é um 
clone seu. Para desenvolver essa 
cópia, o ator contracenou sozinho 
e com dublês. Nas cenas em que 
interpretou seu clone jovem, 
marcações foram usadas no 
rosto para que depois fosse feito o 
mapeamento correto da pele.
Saiba mais
Para saber mais sobre o 
GPT-3, leia o artigo Por que 
o programa de inteligência 
artificial GPT-3 é incrível, 
mas superestimado.
Disponível em: https://forbes.
com.br/forbes-insider/2020/07/
por-que-o-programa-de-inteligencia-
-artificial-gpt-3-e-incrivel-mas-supe-
restimado/. Acesso em: 2 dez. 2020.
Leitura
https://youtu.be/GBeavecUwB8
https://youtu.be/GBeavecUwB8
https://forbes.com.br/forbes-insider/2020/07/por-que-o-programa-de-inteligencia-artificial-gpt-3-e-incrivel-mas-superestimado/
https://forbes.com.br/forbes-insider/2020/07/por-que-o-programa-de-inteligencia-artificial-gpt-3-e-incrivel-mas-superestimado/
https://forbes.com.br/forbes-insider/2020/07/por-que-o-programa-de-inteligencia-artificial-gpt-3-e-incrivel-mas-superestimado/
https://forbes.com.br/forbes-insider/2020/07/por-que-o-programa-de-inteligencia-artificial-gpt-3-e-incrivel-mas-superestimado/
https://forbes.com.br/forbes-insider/2020/07/por-que-o-programa-de-inteligencia-artificial-gpt-3-e-incrivel-mas-superestimado/
Fundamentos de inteligência artificial 21
1.3 Aplicações da inteligência artificial 
Vídeo Atualmente a inteligência artificial tem um grande 
papel em todo tipo de tecnologia. Aplicações na 
robótica vêm crescendo cada vez mais, des-
de parafusadeiras robóticas usadas em 
montadoras de automóveis até robôs utili-
zados na área militar e nas cirurgias robóti-
cas. Na tecnologia aeroespacial a robótica já 
vem sendo empregada há muito tempo; 
braços robóticos programados para execu-
ção de tarefas são um dos exemplos. Na in-
dústria em geral, como fábricas de 
automóveis, os robôs também desempenham 
um papel importante, pois evitam que humanos 
se exponham a produtos tóxicos ou a esforços 
extremos.
Outro exemplo de uso da IA é a visão computacional, um 
processo de modelagem da visão humana com base em imagens 
usando recursos computacionais. Ela envolve não somente a 
captação das imagens feita por câmeras, mas também a interpreta-
ção e a análise dos aspectos presentes. Para um humano, esse pro-
cesso é simples – desde cedo crianças identificam objetos de maneira 
rápida e precisa –, mas para um computador, interpretar uma cena 
gera dificuldades grandes.
Uma das grandes áreas de aplicação da visão computacional é 
a médica, como no diagnóstico de doenças analisando imagens de 
radiografia, tomografia etc. Outra grande utilização ocorre nos 
veículos autônomos, que devem ser capazes de reconhecer 
sinalizações de vias, outros automóveis, detectar pistas, 
distância entre objetos e outros automóveis etc.
Já a área de processamento de linguagem natural 
(NLP – do inglês Natural Language Processing) se preocu-
pa em gerar e compreender de maneira automática a 
linguagem humana. As aplicações se dão em análise de 
discursos, sumarização automática, tradução automática 
etc. Além de entender o que um humano diz em lingua-
gem natural (português, por exemplo), a NLP se ocupa de 
dar respostas ao usuário, seja por meio de texto ou áudio. 
Exemplos clássicos são os assistentes virtuais dos smartphones 
(Siri, Bixby, Google etc.) ou de aparelhos dedicados, como a Alexa, 
da Amazon.
Outros exemplos que têm se tornado muito comuns são os 
chatbots 3 , presentes em aplicativos de mensagens e atendimento 
Jenson/Shutterstock
Vídeo
O vídeo O que é visão 
computacional? Conceito 
e Aplicações, publicado 
pelo canal Programação 
Dinâmica, explica um pouco 
mais a visão computacional 
e suas aplicações.
Disponível em: https://youtu.be/
RSkbjZZb-1c. Acesso em: 2 dez. 2020.
Yaran/Shu
tte
rst
oc
k
3
Para conhecer um pouco mais dessa 
tecnologia, assista ao vídeo Chatbots, 
do canal Nerdologia, disponível em: 
https://youtu.be/VhC_wAsw2-c. 
Acesso em: 2 dez. 2020.
https://youtu.be/RSkbjZZb-1c
https://youtu.be/RSkbjZZb-1c
22 Inteligência Artificial
ao cliente. Hoje em dia é possível ser atendido quase que completamente sem a 
intervenção de um humano. Convém ressaltar que a complexidade desses assis-
tentes deve levar em consideração não somente o significado de algo que foi dito 
ou escrito, mas também o contexto e até os sentimentos.
A tradução automática também é uma área relacionada ao processamento de 
linguagem natural. Para traduzir um texto de uma língua para outra, deve-se enten-
der o contexto e interpretar a frase, isto é, não é só transpor a sintaxe e os termos 
de uma língua para outra; isso sem contar as questões culturais.
Os sistemas especialistas (SE) são outro ramo em que a inteligência artificial é 
utilizada. Trata-se de aplicações construídas com base no conhecimento de um ou 
mais profissionais da área em que o sistema irá atuar. Um SE é composto de regras 
e sentenças que possibilitam o raciocínio para inferência do resultado esperado. 
Também possui um motor de inferência, responsável pelo raciocínio propriamente 
dito (REZENDE, 2003).
Dessa forma, é possível usar um SE em qualquer área em que se possa 
representar o conhecimento e traduzir as consultas necessárias como in-
ferência desse conhecimento. Como exemplo, tem-se um SE para auxiliar 
no diagnóstico da depressão, com conhecimentos da área de psicologia e 
psiquiatria (PERUZZO et al., 2019). Outro exemplo é o SE lançado pela Embrapa 
para diagnosticar pragas, doenças e distúrbios fisiológicos no cultivo de maçã, 
morango e pêssego (ZANELLA, 2020).
Na indústria a IA é muito usada e dá ótimos resultados, por meio da redução de 
erros em processos repetitivos, da automação desses processos, da redução de 
custos e doaumento de lucros. Em especial, consegue-se direcionar a IA para a 
resolução de tarefas operacionais, como linhas de produção, permitindo o uso do 
ser humano em tarefas mais importantes.
Além disso, na agricultura tem-se cada vez mais a adoção 
da IA na previsão de ganhos, nas colheitas inteligentes, na 
previsão meteorológica e no monitoramento de lavoura. 
Há também o desenvolvimento de veículos ou tratores 
autônomos, que conseguem efetuar tarefas automati-
camente, como é o caso do trator sem cabine da empre-
sa Case IH, que é programado via tablet (TRATOR, 2017).
Todas as aplicações atuais da IA usam várias 
tecnologias, algoritmos e técnicas. Uma delas é o 
reconhecimento de padrões, usado, por exem-
plo, por meio de uma câmera que precisa reconhe-
cer uma pessoa para saber se um local está sendo 
invadido, em um veículo autônomo que precisa reco-
nhecer obstáculos para poder parar ou desviar, ou apli-
cado na área da saúde para analisar imagens e reconhecer um 
melanoma (FRUTUOSO et al., 2013). A identificação de padrões pode ser aplica-
da não só a imagens, mas também para detectar e-mails spam, por exemplo, ao 
aprender um padrão de e-mail e aplicá-lo em e-mails novos (DADA et al., 2019).
No artigo How Google is 
using emerging AI techniques 
to improve language trans-
lation quality, Kyle Wiggers 
discorre sobre como a 
Google incorpora tecnolo-
gias emergentes de IA em 
seu tradutor. Vale a pena 
conferir! O texto está em 
inglês, mas você pode usar 
a ferramenta de tradução 
do seu navegador.
Disponível em: https://venturebeat.
com/2020/06/03/how-googleis-u-
sing-emerging-ai-techniques-to-im-
prove-language-translation-quality/. 
Acesso em: 2 dez. 2020.
Leitura
Suwin/Shutterstock
melanoma: tipo de câncer de pele.
Glossário
https://venturebeat.com/2020/06/03/how-googleis-using-emerging-ai-techniques-to-improve-language-tra
https://venturebeat.com/2020/06/03/how-googleis-using-emerging-ai-techniques-to-improve-language-tra
https://venturebeat.com/2020/06/03/how-googleis-using-emerging-ai-techniques-to-improve-language-tra
https://venturebeat.com/2020/06/03/how-googleis-using-emerging-ai-techniques-to-improve-language-tra
A área de jogos, em especial os de tabuleiro, por possuírem aspectos estratégi-
cos e de raciocínio, sempre foi um grande laboratório para o desenvolvimento de 
técnicas de IA. A inteligência artificial já conseguiu superar jogadores humanos em 
vários jogos, como visto na seção anterior, no caso do jogo de xadrez (Deep Blue) e 
do jogo de Go (Alpha Go).
As áreas de provas automáticas de teoremas e lógica, apesar de parecerem 
pertinentes somente à matemática, são as grandes bases para o desenvolvimento 
de técnicas da IA, já que envolvem raciocínio lógico, representação do conhecimen-
to, planejamento etc. Um provador automático de teoremas é um programa que 
decide se determinada afirmação é válida ou não, isto é, se é um teorema. Basi-
camente, tem-se um problema representado por meio de uma linguagem formal, 
como a lógica clássica, sobre o qual são aplicados algoritmos que executam regras 
de dedução, ou regras de inferência.
Muitas das descobertas em prova de teoremas e lógica são usadas em outras áreas, 
desde sistemas especialistas até verificação de hardware. O caso mais conhecido foi o 
erro de divisão dos computadores Pentium FDIV. Em 1994 foi descoberto que a divisão 
de números em ponto flutuante (instrução FDIV) retornava um valor errado em alguns 
casos. A partir daí, tanto Intel quanto AMD e IBM começaram a aplicar prova automáti-
ca de teoremas na verificação de circuitos (HARRISON, 2006).
As técnicas de IA vêm sendo aplicadas com sucesso na área de planejamento 
autônomo e escalonamento, como foi visto no caso da espaçonave Deep Space 1 
e do software Mapgen.
Os veículos autônomos atualmente têm estado em bastante evidência, tanto 
pela tecnologia envolvida quanto pelos problemas encontrados. São seis níveis de 
automação, desde o nível 0, sem qualquer tipo de automação ou assistência, até o 
nível 5, em que não há qualquer interação do ser humano em qualquer condição 
de clima e estrada (SAE INTERNATIONAL, 2018).
Sensores externos, câmeras estéreas com capacidade de detecção de profundi-
dade, radar, sonar e uma grande variedade de dispositivos são usados para captu-
rar dados do ambiente. A quantidade de dados gerada é imensa, de 5 TB a 20 TB 
por dia, por veículo, e deve ser processada instantaneamente, pois um atraso pode 
significar um acidente (PASTOR, 2019).
Com relação aos problemas, vários acidentes são mostrados na mídia envolven-
do carros autônomos e geram discussão sobre a viabilidade da tecnologia. Cons-
tantemente as empresas envolvidas precisam rever suas implementações 
e estratégias (TRINDADE, 2019).
Vale ressaltar que atualmente, com a tecnologia 
disponível em termos de recursos computacionais, 
a internet e a miniaturização de dispositivos, cada 
vez mais a inteligência artificial vem sendo aplica-
da no cotidiano, pois seu uso se tornou viável. A 
tendência é que isso aumente à medida que as so-
luções vão se consolidando e novas necessidades 
são observadas.
Zapp2Photo/Shutterstock
Fundamentos de inteligência artificialFundamentos de inteligência artificial 2323
24 Inteligência Artificial
1.4 Questões éticas referentes à inteligência artificial 
Vídeo Levando em consideração o que foi apresentado até agora, percebe-se que há 
mais efeitos positivos do que negativos no desenvolvimento da IA. Mesmo assim, 
se houver uma grande probabilidade de os efeitos negativos sobrepujarem os posi-
tivos, os pesquisadores precisarão tomar decisões morais sobre o direcionamento 
das pesquisas.
A ciência está repleta de exemplos de tecnologias com efeitos colaterais nega-
tivos não intencionais. Para citar um: a fissão nuclear, que abastece muitos países, 
mas que pode ser usada para a criação de armamento atômico.
Assim, questões éticas sobre a IA, cedo ou tarde, precisarão ser discutidas além 
da fronteira da computação. Alguns questionamentos são:
As pessoas 
poderiam 
perder seus 
empregos para IA/
computação?
A IA poderia 
ser usada 
para fins 
indesejados?
A IA poderia 
levar à perda de 
responsabilidade em 
tarefas delicadas?
O sucesso da IA 
poderia levar ao fim 
da raça humana?
tu
lp
ah
n/
 s
hu
tte
rs
to
ck
Cada uma dessas questões será abordada a seguir.
1.4.1 Perda dos empregos
Essa discussão sempre ocorre quando uma tecnologia disruptiva é criada. Isso 
aconteceu recentemente, na informática em si, com a “uberização” de vários servi-
ços, e com o desenvolvimento da IA não é diferente.
Vale ressaltar que muitas tarefas desempenhadas por IA não existiriam ou 
seriam tão trabalhosas que o custo de se manter os seres humanos responsá-
veis faria com que o trabalho deixasse de existir. Também se deve considerar 
a explosão da quantidade de dados gerados pelos humanos. Estima-se que são 
Para se aprofundar em 
questões éticas do uso 
da IA, assista às seguintes 
palestras TEDx Talks:
 • O viés humano e a ética por trás da 
inteligência artificial. Disponível em: 
https://youtu.be/PVs9jg1XRU8.
 • Questões éticas da inteligência 
artificial. Disponível em: https://
youtu.be/pk5T1sLhO5U.
 • Riscos e benefícios da inteligência 
artificial. Disponível em: https://
youtu.be/6kTrYWXI3f8.
Acessos em: 2 dez. 2020.
Vídeo
uberização: termo usado para 
designar modelos de negócio de 
economia compartilhada, em 
que a empresa faz o intermédio 
entre os trabalhadores, na maioria 
das vezes informais, com os 
demandantes do serviço.
Glossário
Fundamentos de inteligência artificial 25
gerados 1,7 mb de dados por segundo por cada pessoa na Terra, o que equi-
vale a 2,5 quintilhões de bytes a cada dia. Em 2018 o volume de dados era de 
aproximadamente 33 zettabytes, e até 2025 poderia chegar aos impressionantes 
175 zettabytes (SEAGATE, 2020).
São exemplos de trabalhos feitos por máquinas e que não seriam viáveis por 
humanos: análises detalhadas de dados financeiros; detecção de fraudes; tarefasrepetitivas em fábricas; manipulação de elementos perigosos; e tarefas em Marte 
(pelo menos por enquanto).
Outro aspecto importante é que, se por um lado a IA se coloca no lugar do humano 
em algumas tarefas, outras posições de trabalho mais bem remuneradas são criadas. 
Arquitetos de soluções, cientistas de dados, especialistas em machine learning são 
exemplos do que o mercado oferece hoje para profissionais capacitados.
Precisa-se levar em consideração que as soluções de IA hoje em dia estão mais 
posicionadas para ajudar o humano, com uma pequena perda ou substituição de 
empregos, ao contrário do que se imaginava anos atrás por alguns profissionais, de 
que a IA poderia substituir o humano.
1.4.2 Uso para fins indesejados
Essa é uma preocupação constante no desenvolvimento das ciências, em espe-
cial na IA. Sistemas autônomos cada vez mais têm sido usados na área militar, em 
aeronaves e veículos. Os Estados Unidos, potência militar, testa, inclusive, o com-
portamento da IA implementada em seus Vants (Veículos Aéreos não Tripulados) 
contra aviões de guerra tripulados (NOGUEIRA, 2020). O Brasil também possui al-
guns drones em operação e tem tecnologia para a construção de Vants, como é o 
caso do Atobá, desenvolvido pela Stella Tecnologia (VINHOLES, 2020).
Uma questão inerente à aplicação da IA na área militar é a possibilidade de o 
software tomar uma decisão que leve à matança de civis inocentes, gerando um 
risco adicional. Isso precisa ser mitigado por meio de salvaguardas, verificações, 
interações humanas etc. Outro ponto é que uma nação que contém um grande 
poder bélico pode se sentir mais confiante para entrar em guerra de maneira 
mais imprudente do que outras nações. Uma IA eficiente nessa área pode gerar 
mais desequilíbrio.
Saindo da questão armamentista, um dos grandes problemas nos dias de hoje é 
a proliferação de fake news. Além do fator humano na geração dessas notícias, os 
avanços na tecnologia de deepfake e a elaboração automática de textos levaram a 
formação de boatos, calúnias e notícias mentirosas a outro patamar.
Os bots estão muito populares. Eles podem criar discussões fictícias, levantar 
hashtags nas redes sociais, disseminar e até criar notícias falsas (VELASCO; DO-
MINGOS, 2017). Esses comportamentos influenciam a opinião pública e podem até 
mudar o rumo de uma disputa política (CADWALLADR; GRAHAM-HARRISON, 2018).
Em termos de comparação, 
1 zettabyte (zb) é igual a 
270 bytes, o mesmo que 
1.099.511.627.776 gigabytes (gb). 
Imagine que um filme em definição 
muito boa (Full HD, dependendo do 
formato que é armazenado) possui 
em torno de 4 gb. Assim, 175 zb é o 
mesmo que aproximadamente 48 
trilhões de filmes. Seriam necessários 
94 bilhões de HDs externos de 2 tb 
para armazenar todos esses filmes 
(MORIMOTO, 2005).
Saiba mais
machine learning: ou 
aprendizado de máquina, área da 
IA que estuda o reconhecimento 
de padrões e a construção de 
agentes que aprendem sem serem 
explicitamente programados.
Glossário
26 Inteligência Artificial
Mas se a IA pode ser usada para causar 
prejuízos, também pode ser empregada 
no auxílio da detecção e prevenção de no-
tícias falsas. Esse é o caso da pesquisa fei-
ta na Universidade de São Paulo (USP) e na 
Universidade Federal de São Carlos (Ufscar), 
na qual foi desenvolvido um aplicativo para 
WhatsApp com 90% de precisão na detecção 
de notícias falsas (MONTEIRO et al., 2018).
Outro problema crescente, que se acentua 
com ameaças terroristas e criminalidade, é a perda 
das liberdades civis. A tendência é que a IA possa facilitar a 
vigilância em massa da população, visto que as técnicas de reconhecimento de 
voz e de pessoas estão cada vez mais precisas e acessíveis. Ademais, aplicações 
baseadas em IA podem ser capazes de analisar a imensa quantidade de dados 
gerada ao redor do mundo, seja em e-mails, ligações telefônicas, transações em 
sites, aplicativos de mensagens ou qualquer outro meio. A perda da privacidade é 
uma preocupação constante e não é recente. Scott McNealy (1954-), CEO da antiga 
Sun Microsystems, disse já em 1999: “Você tem zero privacidade de qualquer for-
ma, acostume-se com isso” (SPRENGER, 1999, p. 1).
1.4.3 Perda de responsabilidade
A perda de responsabilidade tem uma conotação legal. Suponha um sistema 
especialista que auxilia um médico na tomada de decisão relativa a um diagnóstico. 
A discussão ocorre quando o diagnóstico estiver errado: como o médico seria res-
ponsabilizado se foi orientado de maneira equivocada pelo sistema especialista? 
Nenhum software tem 100% de acerto, até porque a dinâmica de treinamento não 
leva em conta casos desconhecidos e situações que estão por vir.
Apesar de ser uma situação delicada, o médico ainda tem o controle e pode 
tomar uma decisão divergente da IA. Os softwares de IA são considerados ferra-
mentas auxiliares. Por outro lado, se os sistemas especialistas se tornarem mais 
confiáveis e precisos do que diagnósticos humanos, no futuro o médico poderá ser 
responsabilizado por não usar a recomendação de uma IA (RUSSELL; NORVIG, 2013). 
No caso dos robôs médicos, cada vez mais autônomos, as autoridades têm tomado 
providências, como uma resolução do parlamento europeu, de 16 de fevereiro de 
2017, que apresenta recomendações sobre disposições de direito civil sobre robó-
tica, e o Guia Ético de 2019 (NOGAROLI, 2019; UNIÃO EUROPEIA, 2016, 2017).
Também um robô se tornar completamente autônomo e ser considerado uma 
pessoa é uma questão apenas filosófica por enquanto, pois não há utilidade prá-
tica ou viabilidade para isso. Os robôs são considerados produtos, pois seus fabri-
cantes determinam os algoritmos implementados (NOGAROLI, 2019).
Convém ressaltar que muitas implicações jurídicas ainda estão sendo analisa-
das e desenvolvidas. Por enquanto, a lei humana corre atrás do desenvolvimento 
tecnológico.
STEKLO/Shutterstock
Fundamentos de inteligência artificial 27
1.4.4 Fim da raça humana
Talvez a principal questão, de um modo geral, é se a IA irá um dia subjugar e 
acabar com a raça humana. Fazendo uma análise das tecnologias disponíveis, qual-
quer uma teria capacidade de causar danos graves aos humanos, caindo em mãos 
erradas. A própria IA poderia se tornar consciente (RUSSELL; NORVIG, 2013). Essas 
considerações são muito alimentadas pela ficção científica, pois desde livros como 
Frankenstein (1818) até filmes como O Exterminador do Futuro (1984) e Matrix (1999) 
trazem a tecnologia conquistando o mundo.
Na realidade, um dos riscos grandes que um sistema de IA pode gerar é a 
propagação de erros. Por exemplo, se um sistema de defesa autônomo contra 
mísseis detecta um ataque ou uma ameaça erroneamente, ele poderia lançar um 
contra-ataque e iniciar uma guerra, ou até mesmo exterminar a raça humana.
Implementar a IA pode ser uma tarefa difícil. Imagine um sistema que age para 
diminuir algum aspecto, como minimizar o sofrimento humano. Se for considerado 
que o indivíduo pode sempre encontrar uma maneira de sofrer, mesmo nas me-
lhores condições, o sistema pode decidir exterminar a raça humana 
imediatamente, pois se não houver seres humanos não haverá 
sofrimento (RUSSELL; NORVIG, 2013). Dessa forma, projetistas 
precisam ter cuidado, pois sistemas são literais nas instruções, 
já seres humanos podem raciocinar sobre as nuances do que 
“minimizar o sofrimento humano” significa.
Além do risco da literalidade, um sistema de aprendiza-
gem pode evoluir e adquirir um comportamento inadequado. 
Se uma máquina ultrainteligente evoluir e superar a inteligên-
cia humana em todos os aspectos, ela poderia projetar me-
lhores máquinas e sistemas, e assim sucessivamente, levando 
a uma explosão de inteligência. Vernor Vinge (1944-) chamou esse 
ponto de singularidade tecnológica (VINGE, 1993).
Levando em consideração predições de especialistas e não especialistas da 
área, Armstrong e Sotala (2012) encontraram diversas divergências, mas também 
um consenso de que a singularidade tecnológica poderia surgir em meados de2040. Mesmo assim, terminaram seu artigo com a seguinte afirmação: “Há, portan-
to, fortes motivos para aumentar drasticamente a incerteza sobre qualquer previ-
são de linha do tempo de IA” (ARMSTRONG; SOTALA, 2012, p. 19).
Convém ressaltar que desde que Cook (1971) apresentou um dos maiores re-
sultados da complexidade computacional (o problema da satisfatibilidade é um 
problema NP-completo), sabe-se que muitos problemas possuem uso de espa-
ço de armazenamento e tempo de execução inviáveis para sua resolução com a 
tecnologia atual. Da mesma forma, a velocidade da luz é um limitante em termos 
de velocidade e distância em que uma informação pode trafegar. Se a proprieda-
de da inteligência só puder ser reproduzida por algoritmos que estão fora desses 
limites, mesmo um progresso exponencial de tecnologia não será suficiente para 
implementá-la (RUSSELL; NORVIG, 2013).
Isso de fato ocorreu em 1983, 
quando o tenente-coronel 
Stanislav Petrov era responsável 
por monitorar o sistema de 
alertas contra mísseis em plena 
Guerra Fria. O sistema de alertas 
em um bunker, pouco depois da 
meia-noite, começou a indicar que 
um míssil dos Estados Unidos es-
tava em direção à União Soviética. 
Petrov ponderou que se os estadu-
nidenses atacassem os soviéticos, 
não seria com somente um míssil, 
portanto considerou o alarme 
como falso (SALVADOR, 2018).
Saiba mais
Phonlamai Photo/Shutterstock
Para entender um pouco 
mais da singularidade 
tecnológica, assista ao 
vídeo Ultron e a revolução 
da inteligência artificial, do 
canal Nerdologia.
Disponível em: https://youtu.be/CRy-
2g_-SqKY. Acesso em: 2 dez. 2020.
Vídeo
https://youtu.be/CRy2g_-SqKY
https://youtu.be/CRy2g_-SqKY
28 Inteligência Artificial
Mesmo assim, se essa ultrainteligência puder mesmo ser alcançada, os humanos 
precisam projetar as máquinas e os sistemas de IA de modo que, quando forem pro-
jetar as novas gerações, tratem-os bem. Isaac Asimov (1920-1992), escritor de ficção 
científica, descreve três leis da robótica em seu conto Runaround (ASIMOV, 1942):
Um robô não pode ferir um ser 
humano ou, por inação, permitir 
que sofra algum mal.
Um robô deve obedecer às 
ordens que lhe sejam dadas 
por seres humanos, exceto 
nos casos em que tais ordens 
entrem em conflito com a 
Primeira Lei.
Um robô deve proteger sua 
própria existência desde que tal 
proteção não entre em conflito 
com a Primeira ou a Segunda 
Leis.
Go
od
_S
to
ck
/S
hu
tte
rs
to
ck
Mais tarde, Asimov (1985, p. 203) ainda adicionou a Lei Zero: “Um robô não 
pode causar mal à humanidade ou, por omissão, permitir que a humanidade so-
fra algum mal”.
Apesar de terem sido escritas para a ficção científica, essa foi a primeira vez que 
a questão de os robôs fazerem algum mal à humanidade foi abordada. Essas leis, 
ou algo parecido, não são lógicas absolutas, mas deve haver algum tipo de ponde-
ração entre elas, inclusive com o meio. Por exemplo, não é útil que um robô não 
permita que um humano atravesse a rua porque calculou um alto risco de atrope-
lamento (RUSSELL; NORVIG, 2013).
A grande questão é desenvolver uma IA com um sistema de pesos e contra-
pesos em seu processo de aprendizagem, que possa ser ponderado de modo 
a evoluir e continuar sendo amigável (não prejudicar os seres humanos). Esses 
pesos e contrapesos também precisam evoluir, pois a moral muda ao longo do 
tempo.
Outro aspecto importante é que um sistema de pesos evolutivo também pode 
levar a um comportamento indesejado. Por exemplo, se a IA identificar que os 
humanos podem matar insetos porque são seres primitivos, ela poderia chegar à 
conclusão de que os humanos não são tão evoluídos quanto ela, ou seja, são primi-
tivos, então é moral matar seres humanos (RUSSELL; NORVIG, 2013).
Assim, mesmo que seja escrito um sistema para apenas jogar xadrez ou de-
monstrar teoremas, se ele tiver capacidade de aprender e alterar a si mesmo, 
devem ser implementadas salvaguardas desde o começo. A questão de se con-
ceber a IA amigável deve ser considerada desde o início dos projetos, pois as 
falhas podem não ter a ver com o algoritmo em si, mas sim com a forma que 
os softwares evoluem ao longo do tempo e como resultado da interação com 
outros softwares e outras pessoas.
O filme Eu, Robô, cujo 
roteiro se baseia na obra 
de Isaac Asimov, retrata 
o detetive Del Spooner 
em 2035, responsável por 
uma investigação quando 
se depara com Sonny, um 
robô que aparentemente 
pode violar as três leis da 
robótica.
Direção: Alex Proyas. EUA: 20th 
Century Fox, 2004.
Filme
Fundamentos de inteligência artificial 29
Um caso interessante é o do chatbot Tay, da Microsoft, liberado em 2016 para 
conversar com as pessoas na rede social Twitter. Essa IA foi programada para 
evoluir e aprender enquanto interagia com as pessoas. Em menos de 24 horas, 
usuários do Twitter conseguiram fazer a Tay se transformar em racista, xenofóbica, 
transfóbica e defender ideias questionáveis (VINCENT, 2016). A Microsoft retirou a 
IA do ar e apagou as publicações feitas.
Da mesma forma, se os robôs se tornarem conscientes, deverão ser toma-
das medidas para que tenham em seus programas o conceito de moralidade, 
certo e errado. Isso porque pode ser imoral considerá-los somente máquinas e 
segregá-los.
Atividade 1
Considere as seguintes definições de inteligência artificial:
a. “Está relacionada a um desempenho inteligente de artefatos” (NILSSON, 1998, 
p. 1).
b. “A arte de criar máquinas que executam funções que exigem inteligência 
quando executadas por pessoas” (KURZWEIL, 1990, p. 117).
c. “O estudo das computações que tornam possível perceber, raciocinar e agir” 
(WINSTON, 1992, p. 5).
d. “Automatização de atividades que associamos ao pensamento humano, ativi-
dades como a tomada de decisões, a resolução de problemas, o aprendizado” 
(BELLMAN, 1978, p. 12).
Agora combine cada definição com uma abordagem apresentada: pensando como um 
humano, agindo como um humano, pensando racionalmente, agindo racionalmente.
Atividade 2
Cite cinco aplicações em que há o emprego da inteligência artificial.
Atividade 2
Qual é o nome da regra de inferência utilizada na linguagem de programação 
Prolog?
CONSIDERAÇÕES FINAIS
Este capítulo apresentou uma introdução à inteligência artificial, mostrando como 
abordar o conceito do que é uma máquina inteligente. Foram dadas quatro aborda-
gens: agir como humanos, pensar como humanos, pensar racionalmente e agir racio-
nalmente. Destacou-se que a abordagem de agir racionalmente é a mais geral e que 
engloba aspectos das demais.
Também foi apresentado um histórico da IA até os dias atuais, com as principais 
tecnologias e os avanços da ciência na área. As aplicações mais interessantes da IA 
também foram mostradas. Como foi possível observar, a IA está presente em todo 
tipo de aplicação, desde as mais simples, como um filtro em uma rede social, até em 
espaçonaves explorando Marte.
30 Inteligência Artificial
Ao final foi apresentada uma discussão ética sobre a IA, analisando questões perti-
nentes sobre o mercado de trabalho, a utilização indevida da IA, a perda de responsa-
bilidade dos humanos e se um dia a raça humana será subjugada.
REFERÊNCIAS
ALLEN, N. D. et al. StatsMonkey: a data-driven sports narrative writer. AAAI Fall Symposium Series, nov. 2010.
ARMSTRONG, S.; SOTALA, K. How we’re predicting AI – or failing to. Beyond AI: Artificial Dreams, Pilsen, 
p. 56-75, 2012. Disponível em: https://intelligence.org/files/PredictingAI.pdf. Acesso em: 2 dez. 2020.
ASIMOV, I. Robots and empire. Nova Iorque: Doubleday Books, 1985.
ASIMOV, I. Runaround. Norwalk: Astounding Science Fiction, 1942.
BELLMAN, R. An introduction to artificial intelligence: can computers think? São Francisco: Boyd & Fraser 
Publishing Company, 1978.
BLANCHÉ, R.; DUBUCS, J. História da lógica. Lisboa: Edições 70, 1996.
BRATKO, I. Prolog programming for artificial intelligence. 4. ed. Ontário: Pearson Education Canada, 2011.
BRESINA, J. et al. Mixed-initiative activity planning for mars rovers.

Mais conteúdos dessa disciplina