IA Clássica / Simbólica
O que é IA Clássica / Simbólica?
IA clássica (classical AI) (ou IA simbólica (symbolic AI)) é a família de abordagens de inteligência artificial (artificial intelligence, AI) que representam conhecimento explicitamente — usando símbolos (symbols) como fatos, regras e objetos estruturados — e realizam raciocínio (reasoning) aplicando operações formais sobre esses símbolos. Em vez de “aprender” comportamento principalmente a partir de dados (como em muitos sistemas modernos de aprendizado de máquina (machine learning, ML)), a IA clássica frequentemente se concentra em:
- Lógica e inferência (derivar novas conclusões a partir de conhecimento declarado)
- Representação de conhecimento (knowledge representation) (modelar o mundo de forma interpretável por máquina)
- Busca (search) (explorar sistematicamente ações ou hipóteses possíveis)
- Planejamento (planning) (construir sequências de ações para atingir objetivos)
Esses métodos foram centrais no início da IA e continuam importantes hoje — especialmente em domínios em que correção, interpretabilidade, restrições e garantias importam.
Este tópico se conecta fortemente a Agentes e Planejamento, onde o planejamento simbólico e a busca frequentemente fornecem a camada “deliberativa” de um agente.
Por que símbolos? A ideia central
A IA simbólica assume que o comportamento inteligente pode ser alcançado manipulando representações estruturadas (structured representations) do mundo. Um pipeline (pipeline) típico se parece com:
- Representar o mundo (fatos, objetos, relações, regras, restrições)
- Especificar um objetivo ou consulta
- Raciocinar / buscar / planejar para produzir uma resposta, prova ou sequência de ações
Isso dá suporte a capacidades que muitas vezes são difíceis de garantir com abordagens puramente estatísticas:
- Explicabilidade (explainability): “Por que o sistema concluiu X?”
- Satisfação de restrições (constraint satisfaction): “Encontre uma solução que obedeça a todas as regras.”
- Composicionalidade (compositionality): construir ideias complexas a partir de partes mais simples
- Correção e verificação (correctness & verification): provas, checagens de consistência, garantias formais
Um breve contexto histórico (e por que ainda é relevante)
A IA clássica inclui áreas influentes como:
- Provação automática de teoremas (automated theorem proving) e raciocínio baseado em lógica
- Sistemas especialistas (expert systems) (sistemas de decisão baseados em regras amplamente implantados nas décadas de 1980–1990)
- Sistemas de planejamento (planning systems) (por exemplo, planejadores no estilo STRIPS, planejamento hierárquico)
- Resolução de restrições (constraint solving) (SAT/SMT, CSPs) que sustentam verificação e escalonamento modernos
Embora a IA moderna seja fortemente moldada pelo aprendizado de máquina (veja Redes Neurais e Arquitetura Transformer), métodos simbólicos permanecem essenciais em:
- Planejamento e escalonamento
- Análise de programas e verificação formal
- Configuração e diagnóstico
- Grafos de conhecimento e ontologias
- Sistemas híbridos “neuro-simbólicos” (neuro-symbolic) que combinam aprendizado com raciocínio (veja Métodos Neuro-Simbólicos)
Fundamentos teóricos
Lógica como modelo de raciocínio
A lógica fornece uma linguagem formal para expressar conhecimento e uma noção formal de inferência válida (valid inference).
Lógicas comuns na IA simbólica incluem:
- Lógica proposicional (propositional logic): fatos são variáveis verdadeiro/falso; inferência via satisfatibilidade.
- Lógica de primeira ordem (first-order logic, FOL): adiciona objetos, relações e quantificadores (∀, ∃).
- Lógicas de descrição (description logics): uma família projetada para raciocínio tratável sobre ontologias (usada em padrões da Web Semântica (Semantic Web), como OWL).
- Lógicas temporais e modais (temporal and modal logics): raciocinam sobre tempo, ações, necessidade/possibilidade.
- Lógicas não monotônicas (non-monotonic logics): modelam raciocínio por default (conclusões podem ser retiradas quando novas informações chegam).
Conceitos-chave:
- Sintaxe vs. semântica (syntax vs semantics): como as expressões se parecem vs. o que significam.
- Consequência lógica (entailment): uma base de conhecimento (knowledge base, KB) KB implica a afirmação q se q é verdadeira em todos os modelos de KB.
- Correção e completude (soundness and completeness): regras de inferência derivam apenas verdades (corretas) e podem derivar todas as verdades (completas).
Nota prática: muitos sistemas em produção dependem de lógicas restritas (restricted logics) para manter o raciocínio computacionalmente viável.
Representação de conhecimento (KR)
A representação de conhecimento (knowledge representation, KR) estuda como codificar informações de modo que elas suportem raciocínio eficiente. Representações comuns incluem:
- Regras (rules): “SE condições ENTÃO conclusão/ação”
- Redes semânticas / grafos (semantic networks / graphs): nós = entidades, arestas = relações
- Frames e slots (frames and slots): objetos estruturados com atributos
- Ontologias (ontologies): taxonomias e relações formalizadas (por exemplo, “todo cardiologista é médico”)
- Restrições (constraints): domínios de variáveis + restrições (no estilo CSP/SAT/SMT)
Uma boa representação de conhecimento equilibra:
- Expressividade (expressiveness) (consegue representar o que você precisa?)
- Tratabilidade computacional (computational tractability) (é possível raciocinar com eficiência?)
- Manutenibilidade (maintainability) (humanos conseguem atualizá-la com segurança?)
Busca como o motor da resolução de problemas
Muitas tarefas de IA simbólica se reduzem a buscar em um espaço de estados (state space):
- Estados: configurações do mundo
- Ações: transições entre estados
- Teste de objetivo (goal test): determina sucesso
- Custo de caminho (path cost): objetivo opcional de otimização
Algoritmos clássicos incluem:
- Busca em largura (breadth-first search, BFS), busca em profundidade (depth-first search, DFS)
- Busca de custo uniforme (uniform-cost search) (no estilo Dijkstra (Dijkstra-style))
- Busca heurística (heuristic search) como A* (veja Busca A*)
- Busca local (local search) (subida de encosta (hill climbing), recozimento simulado (simulated annealing))
A busca também é central para:
- Jogos (game-playing) (minimax, poda alfa-beta (alpha-beta pruning))
- Resolução de restrições (backtracking + propagação)
- Planejamento (busca no espaço de estados ou no espaço de planos)
Planejamento: de objetivos a sequências de ações
Planejamento pergunta: dado um modelo de ações e um estado inicial, encontre uma sequência de ações que atinja um objetivo.
O planejamento clássico frequentemente assume:
- Ações determinísticas
- Estados totalmente observáveis
- Tempo e estado discretos
Abordagens-chave:
- Planejamento no estilo STRIPS (STRIPS-style planning): ações têm pré-condições e efeitos
- Planejamento de ordem parcial (partial-order planning): raciocina sobre restrições de ordenação entre ações
- Planejamento por Rede Hierárquica de Tarefas (Hierarchical Task Network, HTN): refina tarefas de alto nível em subtarefas
- Planejamento temporal (temporal planning): ações têm durações; escalonamento importa
- Planejamento contingente/probabilístico (contingent/probabilistic planning): incerteza e ramificações (conecta-se a Processos de Decisão de Markov e Aprendizado por Reforço)
Planejamento é um pilar central de Agentes e Planejamento, especialmente para execução de tarefas com horizonte longo e com restrições.
Técnicas centrais na prática (com exemplos)
Sistemas baseados em regras (sistemas especialistas)
Um sistema baseado em regras (rule-based system) contém:
- Uma base de conhecimento (knowledge base): regras e fatos
- Um motor de inferência (inference engine): encadeamento para frente (forward chaining) ou encadeamento para trás (backward chaining)
Encadeamento para frente (forward chaining): começa de fatos conhecidos, aplica regras repetidamente para derivar novos fatos.
Encadeamento para trás (backward chaining): começa de uma consulta, tenta prová-la encontrando regras que a sustentem.
Regras de exemplo (informais):
- IF
feverANDrashTHENpossible_measles - IF
possible_measlesTHENrecommend_isolation
Pontos fortes:
- Altamente interpretáveis
- Fáceis de codificar políticas/requisitos do domínio
Limitações:
- Podem se tornar frágeis e difíceis de manter em escala (“explosão de regras (rule explosion)”)
- Lidar com incerteza exige extensões (regras probabilísticas, lógica fuzzy)
Programação lógica (no estilo Prolog)
Programação lógica (logic programming) expressa conhecimento como fatos e regras; o sistema responde a consultas via resolução (resolution) e unificação (unification).
Um pequeno exemplo no estilo Prolog (Prolog-like) para relações familiares:
parent(alice, bob).
parent(bob, charlie).
ancestor(X, Y) :- parent(X, Y).
ancestor(X, Y) :- parent(X, Z), ancestor(Z, Y).
Consulta:
ancestor(alice, charlie)?→ true
Isso ilustra uma vantagem simbólica: regras gerais podem se aplicar a novas combinações sem retreinamento.
Parentes modernos incluem Datalog (Datalog) (frequentemente usado em análise de programas e bancos de dados). Veja também Programação Lógica.
Satisfação de restrições (CSP) e SAT/SMT
Muitos problemas podem ser expressos como:
- Variáveis com domínios
- Restrições restringindo combinações válidas
Exemplos:
- Escalonar funcionários com restrições (cobertura, regras trabalhistas)
- Configurar pacotes de hardware/software
- Resolver Sudoku
Resolução de SAT (SAT solving) (satisfatibilidade booleana (Boolean satisfiability)) pergunta se uma fórmula proposicional pode ser satisfeita. SMT (satisfatibilidade módulo teorias (satisfiability modulo theories, SMT)) estende SAT com teorias como inteiros, arrays e vetores de bits.
Esses solucionadores são extremamente poderosos e amplamente usados em:
- Verificação formal
- Geração de testes
- Planejamento (codificações no estilo SATPlan)
- Análise de segurança
Relacionado: Problemas de Satisfação de Restrições, Solucionadores SAT
Busca heurística (exemplo de pathfinding com A*)
A* encontra um caminho de menor custo usando uma função de avaliação (evaluation function):
- ( f(n) = g(n) + h(n) )
- ( g(n) ): custo até agora
- ( h(n) ): estimativa heurística até o objetivo
Um esboço mínimo em estilo Python (não otimizado):
import heapq
def astar(start, goal, neighbors, cost, heuristic):
frontier = [(heuristic(start), 0, start)]
came_from = {start: None}
g = {start: 0}
while frontier:
_, g_cur, cur = heapq.heappop(frontier)
if cur == goal:
break
for nxt in neighbors(cur):
tentative = g_cur + cost(cur, nxt)
if nxt not in g or tentative < g[nxt]:
g[nxt] = tentative
f = tentative + heuristic(nxt)
heapq.heappush(frontier, (f, tentative, nxt))
came_from[nxt] = cur
# reconstruct path
path = []
cur = goal
while cur is not None:
path.append(cur)
cur = came_from.get(cur)
return list(reversed(path))
A IA simbólica frequentemente depende de boas heurísticas (heuristics), que codificam conhecimento do domínio. Heurísticas podem ser projetadas manualmente ou aprendidas (uma abordagem híbrida comum).
Planejamento clássico (exemplo no estilo STRIPS)
Um esquema de ação no estilo STRIPS:
- Ação (action):
pickup(x) - Pré-condições (preconditions):
on_table(x) ∧ clear(x) ∧ handempty - Efeitos (effects): adicionar
holding(x); removeron_table(x),handempty
Um pequeno esboço no estilo PDDL (Planning Domain Definition Language, PDDL):
(:action pickup
:parameters (?x)
:precondition (and (on_table ?x) (clear ?x) (handempty))
:effect (and (holding ?x)
(not (on_table ?x))
(not (handempty))))
Um planejador (planner) busca uma sequência dessas ações para alcançar um objetivo como (holding blockA).
Planejamento é usado em:
- Sequenciamento de tarefas em robótica (pegar/colocar, etapas de montagem)
- Pesquisa operacional (operations research) (com restrições temporais/de recursos)
- Agentes de jogos automatizados e solucionadores de quebra-cabeças
Relacionado: Algoritmos de Planejamento
Aplicações práticas hoje
Robótica e agentes incorporados
O planejamento simbólico frequentemente fica acima do controle de baixo nível:
- Alto nível: “busque a caixa de ferramentas e depois leve-a ao técnico”
- Planejador: decompõe em navegação + preensão + entrega
- Monitor de execução (execution monitor): replaneja se algo falhar (objeto ausente, porta fechada)
Essa é uma arquitetura comum em Agentes e Planejamento: deliberação + execução + monitoramento.
Escalonamento, logística e operações
Escalonamento de tripulações aéreas, atribuição de tarefas em armazéns e planejamento de produção dependem de:
- Restrições
- Otimização
- Planejamento temporal e escalonamento
- Métodos híbridos de programação por restrições (constraint programming, CP)-SAT / SMT
Configuração e diagnóstico
Exemplos clássicos incluem configuração de produtos (combinações válidas de componentes) e diagnóstico de falhas:
- Dados sintomas + modelo do sistema, inferir componentes provavelmente defeituosos
- Usar raciocínio abdutivo (abductive reasoning) ou diagnóstico baseado em modelos (model-based diagnosis)
Análise de programas e verificação formal
Raciocínio simbólico (especialmente SMT) é fundamental para:
- Provar propriedades de segurança
- Encontrar contraexemplos (counterexamples)
- Verificar hardware e software crítico
Grafos de conhecimento e ontologias
Em ambientes corporativos e científicos, ontologias viabilizam:
- Integração de dados entre esquemas
- Checagem de consistência
- Resposta a consultas (query answering) com relações inferidas
Relacionado: Grafos de Conhecimento
Pontos fortes e limitações
Pontos fortes
- Interpretabilidade (interpretability): regras e provas podem ser inspecionadas
- Eficiência de dados (data efficiency): pode funcionar com pouco/nenhum dado de treinamento
- Generalização composicional (compositional generalization): regras se aplicam a combinações novas
- Tratamento de restrições (constraint handling): excelente para requisitos rígidos
- Garantias formais (formal guarantees): possíveis em contextos de lógica/verificação
Limitações
- Gargalo de engenharia do conhecimento (knowledge engineering bottleneck): construir e manter bases de conhecimento é caro
- Fragilidade (brittleness): modelos incompletos podem falhar inesperadamente
- Explosão combinatória (combinatorial explosion): busca ingênua escala mal
- Tratamento de incerteza (handling uncertainty): exige extensões (lógica probabilística, lógica fuzzy)
- Ancoragem perceptiva (perception grounding): mapear dados brutos de sensores para símbolos é difícil
Muitos sistemas modernos lidam com isso por meio de projetos híbridos: aprendizado para percepção e heurísticas, símbolos para estrutura e garantias.
IA simbólica e aprendizado de máquina moderno: concorrência ou complemento?
IA simbólica e aprendizado de máquina diferem no que otimizam:
- Aprendizado de máquina se destaca em reconhecimento de padrões (pattern recognition), percepção e aprendizado a partir de dados.
- IA simbólica se destaca em estrutura explícita, restrições e raciocínio verificável.
Na prática, elas frequentemente são combinadas:
- Percepção aprendida → planejamento simbólico: visão detecta objetos; o planejador sequencia ações.
- Heurísticas aprendidas para busca simbólica: redes neurais guiam A* ou provadores de teoremas.
- Modelos de linguagem de grande porte (Large Language Models, LLMs) + ferramentas: Modelos de Linguagem de Grande Porte podem propor planos ou gerar PDDL, enquanto planejadores simbólicos validam e executam.
- Sistemas neuro-simbólicos (neuro-symbolic systems): integram aprendizado diferenciável com restrições lógicas (veja Métodos Neuro-Simbólicos).
Um modelo mental útil: sistemas simbólicos fornecem estrutura e correção, sistemas de aprendizado fornecem robustez e adaptabilidade.
Como escolher uma abordagem simbólica (regra prática)
IA simbólica é uma boa escolha quando:
- Requisitos são explícitos e rígidos (políticas, regulações, invariantes)
- Você precisa de explicações ou decisões auditáveis
- O domínio tem estrutura clara (objetos, relações, ações)
- Dados são limitados, mas conhecimento de especialistas está disponível
- Você pode se beneficiar de solucionadores (solvers) (SAT/SMT/CP) ou planejadores (planners)
Ela é menos adequada quando:
- A tarefa é dominada por percepção de alta dimensionalidade (imagens/áudio brutos)
- O ambiente é altamente incerto e difícil de modelar simbolicamente
- A base de conhecimento seria enorme e mudaria constantemente sem curadoria confiável
Resumo
IA clássica / simbólica é a tradição de construir sistemas inteligentes por meio de representações explícitas (lógica, regras, restrições, ontologias) e raciocínio algorítmico (algorithmic reasoning) (inferência, busca, planejamento). Apesar da mudança para aprendizado de máquina orientado por dados, métodos simbólicos continuam centrais em muitos sistemas do mundo real — particularmente onde planejamento, correção, restrições e interpretabilidade importam. Cada vez mais, os sistemas mais capazes combinam estrutura simbólica com componentes aprendidos, especialmente dentro de arquiteturas de agentes descritas em Agentes e Planejamento.