STRIPS

filósofo

o pioneiro do planejamento automatizado

STRIPS (Stanford Research Institute Problem Solver) foi o primeiro sistema de planejamento automatizado da história. Desenvolvido por Richard Fikes e Nils Nilsson no final dos anos 1960, ele estabeleceu paradigmas. Primeiramente, o sistema introduziu a representação de problemas como estados, ações e objetivos. Diferente de abordagens anteriores, STRIPS separou conhecimento do domínio do mecanismo de planejamento. Além disso, ele demonstrou que robôs poderiam planejar sequências de ações para alcançar objetivos. O sistema foi utilizado no robô Shakey, o primeiro robô móvel com raciocínio autônomo. Consequentemente, STRIPS se tornou a base para inúmeras linguagens e sistemas posteriores.

representação de ações em strips

Em STRIPS, cada ação possui três componentes fundamentais que definem seu comportamento. A lista de pré-condições especifica o que deve ser verdade antes da ação executar. Por outro lado, a lista de adição (add-list) descreve os predicados que se tornam verdade após a ação. Além disso, a lista de remoção (delete-list) descreve os predicados que deixam de ser verdade após a ação. Por exemplo, a ação “pegar(bloco)” exige “mão_vazia” e “bloco_livre” como pré-condições. Seus efeitos: adiciona “segurando(bloco)” e remove “mão_vazia” e “bloco_livre”. Dessa forma, essa estrutura captura como ações transformam o estado do mundo de forma determinística.

exemplo prático de domínio

Considere um domínio simples de transporte de pacotes com ações bem definidas. Ação “carregar(pacote, local)” requer “em(local)” e “pacote_em(pacote, local)” como pré-condições. Seus efeitos: adiciona “carregando(pacote)” e remove “pacote_em(pacote, local)”. Além disso, ação “descarregar(pacote, local)” requer “carregando(pacote)” e “em(local)” como pré-condições. Seus efeitos: adiciona “pacote_em(pacote, local)” e remove “carregando(pacote)”. Ação “mover(de, para)” requer “em(de)” e exclui “em(para)” já verdadeiro. Seus efeitos: adiciona “em(para)” e remove “em(de)”. Portanto, essas ações permitem planejar rotas completas de entrega.

algoritmo de planejamento strips

O algoritmo STRIPS utiliza busca no espaço de estados com encadeamento para trás. Primeiramente, ele começa com o objetivo e busca ações cujos efeitos satisfaçam partes do objetivo. Para cada ação candidata, o algoritmo verifica se suas pré-condições são satisfeitas no estado atual. Se alguma pré-condição não for satisfeita, ela se torna um subobjetivo a ser resolvido recursivamente. O algoritmo constrói um plano parcial e depois o executa na ordem inversa. Consequentemente, esse processo de regressão simplifica o problema de planejamento consideravelmente. Assim, STRIPS demonstrou que planejamento poderia ser feito de forma eficiente com essa abordagem.

legado e influência duradoura

O STRIPS deixou um legado que transcende sua implementação original como sistema. Primeiramente, sua representação de ações inspirou linguagens como PDDL, hoje padrão na área. Além disso, o conceito de pré-condições e efeitos se tornou universal em planejamento automatizado. A separação entre domínio e problema permitiu reutilização de conhecimento. Dessa forma, o algoritmo de regressão influenciou gerações de planejadores subsequentes. Atualmente, a família de linguagens baseadas em STRIPS continua sendo utilizada. Para iniciantes, estudar STRIPS é compreender as origens do planejamento automatizado em IA. Por fim, ele mostra como representação adequada de ações permite resolução estruturada de problemas complexos.

Planejamento Clássico

filósofo

1. Introdução: O que é o Planejamento Clássico?

O planejamento clássico é uma das áreas mais fundamentais da inteligência artificial. Ele trata do problema de encontrar uma sequência de ações que transforme um estado inicial em um estado desejado (meta), utilizando um conjunto de ações disponíveis [1]. Em termos práticos, é a capacidade da máquina de “pensar antes de agir”, elaborando um plano para atingir um objetivo, como um robô que precisa organizar objetos em uma sala ou um sistema de logística que deve otimizar rotas de entrega.

Para tornar esse problema matematicamente tratável, o planejamento clássico opera sob um conjunto de suposições simplificadoras [3]:

  • Ambiente determinístico: O resultado de uma ação é sempre único e previsível. Não há aleatoriedade ou falhas.
  • Observabilidade total: O agente tem conhecimento perfeito e completo do estado do mundo em todos os momentos.
  • Estados discretos: O mundo é descrito por um conjunto finito de proposições que são verdadeiras ou falsas.
  • Objetivos estáticos: O objetivo a ser alcançado não muda durante a execução do plano.

Essas suposições definem o paradigma fundamental do planejamento em IA, permitindo o desenvolvimento de algoritmos com garantias formais de correção e otimalidade [1].

2. A Representação STRIPS: A Base do Planejamento Clássico

Para descrever problemas de planejamento, a comunidade criou a representação STRIPS (Stanford Research Institute Problem Solver), que se tornou o padrão na área [7]. O STRIPS descreve o mundo por meio de três componentes principais [3]:

Componentes da Representação STRIPS:
Estado: Descrito como um conjunto de predicados atômicos (proposições) que são verdadeiros em um dado momento. Exemplo: “bloco_A_está_sobre_mesa” e “mão_vazia”.
Ações: Definidas por três elementos: pré-condições (o que deve ser verdade para executar a ação), efeitos positivos (predicados que se tornam verdade) e efeitos negativos (predicados que se tornam falsos) [7].
Plano: Uma sequência ordenada de ações que transforma o estado inicial no estado objetivo [3].

No STRIPS, assume-se que tudo o que não é mencionado nos efeitos de uma ação permanece inalterado, uma ideia conhecida como STRIPS assumption [7]. Essa representação simples e expressiva é a base do planejamento clássico e foi utilizada no famoso robô Shakey, um dos primeiros robôs da história da IA [2].

Exemplo Prático: O Mundo dos Blocos

Para ilustrar, considere o clássico problema do Mundo dos Blocos, onde o objetivo é empilhar blocos em uma determinada ordem [3].

  • Estado Inicial: Bloco A e Bloco B estão sobre a mesa. A mão do robô está vazia. Representação: sobre_mesa(A), sobre_mesa(B), mão_vazia.
  • Objetivo: Colocar o bloco A sobre o bloco B. Representação: sobre(A, B).
  • Ação “pegar(bloco)”:
    • Pré-condições: sobre_mesa(bloco) e mão_vazia.
    • Efeitos: Adiciona segurando(bloco); Remove sobre_mesa(bloco) e mão_vazia.
  • Ação “colocar(bloco, alvo)”:
    • Pré-condições: segurando(bloco) e livre(alvo).
    • Efeitos: Adiciona sobre(bloco, alvo) e mão_vazia; Remove segurando(bloco) e livre(alvo).

O plano seria: pegar(A), depois colocar(A, B).

3. Algoritmos de Planejamento Clássico

Para encontrar esses planos, uma variedade de algoritmos foi desenvolvida, baseados principalmente em técnicas de busca [1].

3.1 Busca no Espaço de Estados

Esta abordagem explora o grafo de estados possíveis, partindo do estado inicial e aplicando ações sucessivamente até encontrar um estado que satisfaça o objetivo. Planejadores como o Fast-Forward (FF) são exemplos notáveis, utilizando heurísticas derivadas de problemas relaxados para guiar a busca de forma eficiente [4]. A heurística FF, por exemplo, remove as pré-condições negativas das ações, criando um problema mais fácil de resolver, cuja solução serve como uma estimativa otimista para o problema original [9].

3.2 Busca no Espaço de Planos

Em vez de explorar estados, essa abordagem trabalha com planos parciais, refinando-os iterativamente até que se tornem completos e válidos. O algoritmo STRIPS original utilizava uma forma de busca para trás (regressão) a partir do objetivo [7].

3.3 Planejamento como Satisfatibilidade (SAT)

Nesta técnica, o problema de planejamento é codificado como uma fórmula de lógica proposicional. Um resolvedor SAT é então usado para encontrar uma atribuição de valores que satisfaça a fórmula, o que corresponde a um plano válido. Essa abordagem é poderosa, mas pode ser computacionalmente intensiva [1].

O campo também se beneficia de técnicas de reformulação, que transformam a representação do problema para melhorar a eficiência dos algoritmos, como a criação de macros de ações para reduzir a complexidade da busca [1].

4. Aplicações no Mundo Real

Apesar de suas suposições simplificadoras, o planejamento clássico tem aplicações em diversas áreas, especialmente onde o ambiente é bem estruturado e previsível [1]:

  • Robótica e Automação: Para planejar sequências de movimentos e manipulações em ambientes controlados, como em linhas de produção ou armazéns [2].
  • Logística e Transporte: Para otimizar rotas de entrega e alocação de recursos, como no planejamento de frotas de caminhões.
  • Planejamento de Defesa e Segurança: Para simular cenários e planejar ações em ambientes com múltiplos agentes (adversários) [8].

No entanto, a aplicação direta do planejamento clássico em problemas complexos do mundo real é limitada devido à falta de robustez contra ações de outros agentes, incertezas e observabilidade parcial [2].

5. A Revolução Neuro-Simbólica: Integrando Planejamento e Aprendizado

A limitação do planejamento clássico em ambientes complexos tem impulsionado a integração com novas técnicas de aprendizado de máquina, especialmente os Grandes Modelos de Linguagem (LLMs), criando a IA neuro-simbólica [6]. O consenso emergente é que o verdadeiro potencial dos LLMs no planejamento se desdobra quando eles são integrados a planejadores simbólicos tradicionais [5].

Abordagens Neuro-Simbólicas em Destaque:
1. Tradução de Linguagem Natural: LLMs traduzem descrições de tarefas em linguagem natural para problemas PDDL (Planning Domain Definition Language), que são então resolvidos por planejadores clássicos, garantindo otimalidade e factibilidade [5].
2. Geração de Heurísticas: LLMs podem gerar código para funções heurísticas específicas de um domínio, superando heurísticas projetadas manualmente [4].
3. Aprendizado de Modelos: Sistemas neurais são usados para aprender modelos PDDL diretamente de dados, como imagens ou trajetórias de ações, automatizando a engenharia de domínio [6].

Um estudo de caso na logística de paletes mostrou que, embora LLMs como GPT-4o lutem para gerar planos executáveis por si só, um framework que usa LLMs para construir arquivos de problema PDDL e depois delega a solução a um planejador clássico é robusto e eficaz [5]. Essa integração promete superar as limitações de cada abordagem isoladamente.

6. Desafios e Tendências Futuras

Apesar dos avanços, desafios permanecem. A engenharia de domínio (criação manual de modelos) ainda é um gargalo, e a escalabilidade dos planejadores clássicos em problemas de grande escala continua sendo uma área ativa de pesquisa [1]. A integração com LLMs também levanta questões sobre a validade formal dos planos gerados, exigindo camadas de verificação simbólica [6].

O futuro do planejamento clássico está em sua simbiose com o aprendizado de máquina. Sistemas que aprendem modelos a partir de experiências e generalizam para novos problemas, mantendo garantias de correção, são o horizonte de pesquisa. O planejamento clássico, com seus fundamentos sólidos, está se tornando um componente central de sistemas autônomos inteligentes e confiáveis, prontos para enfrentar a complexidade do mundo real.

Referências

  1. Alarnaouti, D., Baryannis, G., & Vallati, M. (2023). Reformulation techniques for automated planning: a systematic review. The Knowledge Engineering Review, 38. doi:10.1017/s0269888923000097
  2. Colombier, K., & Buendia, A. (2019). A la recherche d’une planification plus humaine. Conférence Nationale en Intelligence Artificielle, Toulouse, France.
  3. CSE 513T: Theory of Artificial Intelligence & Machine Learning. (2016). Classical STRIPS Planning. Washington University in St. Louis.
  4. Corrêa, A. B., et al. (2022). The FF Heuristic for Lifted Classical Planning. AAAI Conference on Artificial Intelligence. doi:10.1609/AAAI.V36I9.21206
  5. Göbel, K., Lorang, P., Staderini, V., & Zips, P. (2025). Integrating LLMs and Classical Planning for Pallet Logistics: A Case Study. IFAC PapersOnline, 59(18), 301–306. doi:10.1016/j.ifacol.2025.10.237
  6. Pallagani, V., et al. (2024). On the Prospects of Incorporating Large Language Models (LLMs) in Automated Planning and Scheduling (APS). Proceedings of the International Conference on Automated Planning and Scheduling, 34(1), 432–444. doi:10.1609/icaps.v34i1.31503
  7. Poole, D., & Mackworth, A. (2017). The STRIPS Representation. In Artificial Intelligence: Foundations of Computational Agents (2nd ed.). Cambridge University Press.
  8. Using Classical Planning in Adversarial Problems. (2020). IEEE Xplore. doi:10.1109/ICTAI.2019.00057
  9. Helmert, M., & Röger, G. (2008). How Good is Almost Perfect? AAAI Conference on Artificial Intelligence.