Symbolic AI
A IA simbólica, ou GOFAI, raciocina com símbolos legíveis por humanos usando regras explícitas e lógica. Veja como funcionam os sistemas especialistas, seus limites e a IA neurossimbólica.
A IA simbólica é uma abordagem à inteligência artificial (AI) que representa o conhecimento com símbolos legíveis por humanos, como bird, penguin ou «Sócrates é um homem», e raciocina sobre eles com regras explícitas, lógica e pesquisa. Dominou a investigação em IA desde o workshop de Dartmouth, em 1956, até à década de 1980; em 1985, o filósofo John Haugeland chamou-lhe mais tarde «IA à moda antiga» (GOFAI). É possível rastrear cada conclusão a que um sistema simbólico chega até às regras escritas e legíveis por uma pessoa, o que o torna auditável; por outro lado, todo o conhecimento tem de ser introduzido manualmente, o que dificulta a escalabilidade.
Como funciona a IA simbólica#
Um sistema simbólico tem duas partes. A base de conhecimento armazena factos («Sócrates é um homem») e regras («todos os homens são mortais») numa linguagem formal, como a lógica de primeira ordem, regras de produção se-então ou um grafo de conhecimento. O motor de inferência aplica as regras para deduzir factos que não estavam armazenados («Sócrates é mortal»). O encadeamento para a frente parte dos factos conhecidos e ativa todas as regras cujas condições se verificam, até não surgirem novos factos. O encadeamento para trás parte de um objetivo e recua até aos factos que o provariam; é a estratégia incorporada na linguagem de programação lógica Prolog.
A teoria por detrás desta abordagem é a hipótese do sistema físico de símbolos de Allen Newell e Herbert Simon, de 1976, segundo a qual a manipulação de símbolos é necessária e suficiente para a inteligência geral. Um motor de encadeamento para a frente cabe em poucas linhas de Python simples:
# Knowledge base: IF every premise is a known fact THEN add the conclusion
rules = [
({"has_feathers", "lays_eggs"}, "bird"),
({"bird", "cannot_fly", "swims"}, "penguin"),
]
facts = {"has_feathers", "lays_eggs", "cannot_fly", "swims"}
# Forward chaining: keep firing rules until no new fact appears
changed = True
while changed:
changed = False
for premises, conclusion in rules:
if premises <= facts and conclusion not in facts:
facts.add(conclusion)
changed = True
print(f"{conclusion} <- {sorted(premises)}")O motor imprime bird <- ['has_feathers', 'lays_eggs'] e depois penguin <- ['bird', 'cannot_fly', 'swims']: a segunda regra só é ativada porque a primeira adicionou bird, e cada linha impressa explica por completo por que razão a conclusão é válida. Este tipo de registo de raciocínio é o que os métodos de IA explicável (XAI) tentam reconstruir para redes neurais.
Sistemas especialistas#
A IA simbólica chegou à indústria nas décadas de 1970 e 1980 sob a forma de sistemas especialistas. O MYCIN, de Stanford, identificava as bactérias responsáveis por infeções graves e recomendava antibióticos com base em cerca de 600 regras obtidas junto de médicos; o XCON, da Digital Equipment Corporation, configurava encomendas de computadores VAX. Os sistemas especialistas complementam o motor básico com um engenheiro do conhecimento, que entrevista especialistas no domínio e codifica o que sabem sob a forma de regras, e uma funcionalidade de explicação, que reproduz as regras que sustentam cada resposta.
A etapa das entrevistas tornou-se o principal obstáculo. Os especialistas têm dificuldade em formular as suas intuições como regras, as grandes bases de regras falham em casos que ninguém previu e os sistemas não conseguem aprender com dados. O projeto Cyc, de Doug Lenat, iniciado em 1984 para codificar manualmente o senso comum, tem-se dedicado a esse problema há décadas. Quando os orçamentos para sistemas especialistas entraram em colapso no final da década de 1980, o campo entrou no seu segundo «inverno da IA».
IA simbólica vs. IA estatística#
A IA estatística aprende padrões a partir de exemplos e está na base da aprendizagem automática (ML) e da aprendizagem profunda (DL) modernas. Os dois paradigmas falham em situações opostas:
- IA simbólica: Exata, transparente e utilizável sem quaisquer dados de treino, é adequada para aritmética, planeamento, regulamentos e demonstrações formais. Não consegue lidar com perceção em bruto, pois ninguém consegue escrever regras que reconheçam um gato a partir dos valores dos píxeis, e falha perante entradas não previstas pelas suas regras.
- IA estatística: Aprende perceção e linguagem diretamente a partir dos dados e tolera ruído, mas precisa de grandes conjuntos de dados, é difícil inspecionar as suas decisões e os modelos de linguagem podem produzir respostas fluentes, mas erradas, conhecidas como alucinações.
Onde se usa hoje a IA simbólica#
- Motores de regras e conformidade: O software fiscal e os motores de regras empresariais codificam os regulamentos como regras explícitas, pelo que cada resultado pode ser associado à cláusula que o produziu.
- Planeamento e escalonamento: Os planeadores automatizados pesquisam descrições simbólicas de ações, pré-condições e efeitos para organizar operações logísticas, trabalho fabril e operações de naves espaciais.
- Verificação formal: Solucionadores SAT e SMT, como o Z3 da Microsoft, demonstram propriedades de chips e software; assistentes de demonstração, como o Lean, verificam demonstrações matemáticas passo a passo.
- Grafos de conhecimento: Os motores de pesquisa e o Wikidata armazenam milhares de milhões de factos como entidades e relações que podem ser percorridas por consultas.
IA neurossimbólica#
A IA neurossimbólica combina os dois paradigmas: as redes neurais tratam da perceção e do reconhecimento de padrões, e os componentes simbólicos tratam das regras, restrições e do raciocínio exato. Os modelos de linguagem que recorrem a uma calculadora, a uma base de dados SQL ou a um interpretador de código através da invocação de funções usam a mesma divisão de tarefas. Nos pipelines de visão, um detetor, como o Ultralytics YOLO26, converte os píxeis em símbolos — os nomes das classes dos objetos detetados —, sobre os quais regras simples podem raciocinar:
from ultralytics import YOLO
# Perceção neural: detetar objetos e guardar os nomes das respetivas classes como factos simbólicos
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
facts = {result.names[int(c)] for c in result.boxes.cls}
# Raciocínio simbólico: SE estiverem presentes um autocarro E uma pessoa, ENTÃO emitir um alerta
if {"bus", "person"} <= facts:
print("Rule fired: pedestrians next to a bus")Alterar a regra muda imediatamente o comportamento do sistema, sem necessidade de o treinar de novo. O AlphaGeometry da Google DeepMind aplica a mesma divisão à matemática: um modelo de linguagem neural propõe construções auxiliares, um motor de dedução simbólico demonstra o resultado a partir delas e, em conjunto, resolveram 25 dos 30 problemas de geometria da Olimpíada Internacional de Matemática num artigo da Nature de 2024.










