Graphplan

0.6 – Planejamento
0.6.1 – Planejamento Classico
0.6.1.1 – STRIPS
0.6.1.2 – Graphplan
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

planejamento com estruturas de grafos

Graphplan é um algoritmo de planejamento que utiliza estruturas de grafos para encontrar soluções. Desenvolvido por Avrim Blum e Merrick Furst nos anos 1990, ele revolucionou a área. Diferente de abordagens anteriores, Graphplan constrói um grafo de planejamento que expande camadas alternadas. O grafo alterna entre camadas de proposições (estados) e camadas de ações. A construção prossegue até que o objetivo apareça na camada de proposições. Em seguida, o algoritmo extrai um plano válido a partir do grafo construído. Essa abordagem provou ser mais eficiente que planejadores baseados em busca tradicional.

construção do grafo de planejamento

O grafo de planejamento começa com a camada de proposições representando o estado inicial. A cada camada de ações, adicionamos todas as ações cujas pré-condições estão na camada anterior. Também incluímos ações “no-op” que mantêm proposições inalteradas. A camada seguinte de proposições contém todos os efeitos das ações da camada anterior. Por exemplo, se na camada 0 temos “mão_vazia” e “bloco_livre”, adicionamos ação “pegar”. Essa ação adiciona “segurando(bloco)” na próxima camada de proposições. O processo repete até que o objetivo apareça em alguma camada.

detecção de mutex e poda

Graphplan utiliza relações de exclusão mútua (mutex) para podar combinações inviáveis. Duas proposições são mutex se não podem ser verdadeiras simultaneamente em um plano. Duas ações são mutex se interferem entre si ou têm pré-condições mutex. Por exemplo, “segurando(A)” e “segurando(B)” são mutex porque a mão só segura um bloco. Ações “pegar(A)” e “pegar(B)” são mutex porque competem pelo recurso “mão_vazia”. Essas relações se propagam entre camadas, reduzindo drasticamente o espaço de busca. A detecção de mutex permite podar combinações impossíveis precocemente.

extração de planos

Após construir o grafo até o objetivo, Graphplan extrai um plano de forma regressiva. O algoritmo começa na camada onde o objetivo aparece e busca um conjunto de ações que o suportam. Para cada ação selecionada, suas pré-condições se tornam subobjetivos na camada anterior. O processo recursivo continua até alcançar a camada inicial do grafo. Se em algum ponto não encontrar suporte válido, o algoritmo retrocede e tenta alternativas. Esse processo de extração garante que o plano encontrado é consistente e executável. O algoritmo retorna o plano de comprimento mínimo correspondente ao grafo construído.

vantagens e impacto do graphplan

Graphplan trouxe avanços significativos em eficiência para planejamento clássico. Sua estrutura de grafo permite detectar inconsistências e podar combinações inviáveis precocemente. A abordagem provou ser mais rápida que planejadores baseados em busca tradicional. Graphplan inspirou o desenvolvimento de planejadores modernos como IPP e STAN. Suas ideias influenciaram também a área de verificação de modelos e sistemas de transição. Para iniciantes, Graphplan oferece uma visão alternativa ao planejamento baseado em busca. Ele demonstra como estruturas de dados podem transformar a complexidade de problemas. O algoritmo permanece um marco na história do planejamento automatizado.

Deixe um comentário