Data de entrega: 3 de junho
Essa fase foi proposta para que os alunos testem o Sat-solver, desenvolvido no segundo projeto dessa disciplina, para resolver problemas de planejamento. Além disso, essa fase servirá para que os alunos tenham um primeiro contato com uma CNF para SatPlan.
A CNF que será usada nesta fase é a de planejamento para o Jantar Surpresa (já totalmente codificada para o Sat-solver).
É importante que o aluno experimente a CNF SatPlan fazendo testes para diferentes problemas, i.e., testar se a saida gerada pelo seu Sat-solver é de fato um plano solução para o problema de entrada.
O que deve ser entregue?
Executar o SatPlan para pelo menos 2 problemas diferentes do Jantar Surpresa, além do problema que já está codificado. A
sua saida deve ser descrita pelas PROPOSIÇÕES do domínio Jantar Surpresa e NÃO por números e asteriscos.
Entregar pelo Panda um arquivo contendo:
- a CNF, a descrição (com as PROPOSIÇÕES) do estado inicial, estado final e o
plano solução para 3 problemas do jantar surpresa;- o código do Sat-solver
- um arquivo README explicando como usar o seu Sat-solver (manual de uso)
Data de entrega: 14 de junho
pick-up ( ?x - block ) o agente pega um bloco de cima da mesa e o segura put-down ( ?x - block ) o agente coloca o bloco que está segurando em cima da mesa stack ( ?x - block ?y - block ) o agente coloca o bloco que está segurando em cima de outro bloco unstack ( ?x - block ?y - block ) o agente pega um bloco de cima de outro bloco e o segura
Clique aqui para ver a especificação PDDL das ações do Mundo dos Blocos.
Clique aqui para ver as especificações PDDL de problemas para o Mundo dos Blocos.
Parser de PDDL para ações proposicionais:
O parser schema2ground.pl foi construído pelo meu ex-aluno de mestrado, Aldebaran Perseke.
Esse parser transforma ações PDDL para um dado problema, no seguinte formato (sem variáveis):
<nome da ação>
<lista de precondições/proposições separadas por ";">
<lista de efeitos/proposições separadas por ";" com negações indicadas por "~">
Vamos chamar esse formato de ações Strips-proposicionais. Exemplo de uma ação Strips-proposicional para o Mundo dos Blocos:
stack_a_b
holding_a;clear_b
~holding_a;~clear_b;clear_a;handempty;on_a_b
O que deve ser entregue?
Construir um parser que transforma um conjunto de ações Strips-proposicionais em uma CNF SatPlan.
Para economizar tempo, você encontra aqui as ações Strips-proposicionais, geradas pelo parser schema2ground.pl, para um conjunto de problemas do
RELATÓRIO FINAL
Data de entrega: 30 de junho
Implementar o algoritmo de construção do grafo de planejamento (algoritmo entregue em sala de aula) com a extração da cláusula de mutex.
Entregar: relatório final contendo uma análise comparativa entre o SatPlan e o BLACKBOX.
Para essa análise serão disponibilizados outros dois domínios de teste além do Mundo dos Blocos.
FASE 1: testes para diferentes problemas do Jantar Surpresa
Note que a CNF já inclui uma descrição de estado inicial e de estado
objetivo, como mostra a cópia abaixo:
==============================================
Estado Inicial:
lixo(1) ^ maos_limpas(1) ^ silencio(1) ^ ~jantar(1) ^ ~presente(1)
Estado Objetivo:
~lixo(4) ^ jantar(4) ^ presente(4)
==============================================
Vocês podem "brincar" com o SatPlan criando novos problemas, isto é, com
novas listas para o Estado Inicial e Estado Objetivo e me entregar os
planos gerados para cada problema criado.