Skip to content

Behery/pddl-parser

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PDDL Parser Build Status DOI

planning in Python

Source

  • action.py with an Action structure.
  • PDDL.py with a PDDL parser.
  • planner.py with a planner.
  • dinner folder with a PDDL example from Daniel Weld, the Dinner domain.

Parser execution

# Parser can be used separately
cd pddl-parser
python -B PDDL.py dinner/dinner.pddl dinner/pb1.pddl
# Output
----------------------------
['define',
 ['domain', 'dinner'],
 [':requirements', ':strips'],
 [':predicates', ['clean'], ['dinner'], ['quiet'], ['present'], ['garbage']],
 [':action',
  'cook',
  ':parameters',
  [],
  ':precondition',
  ['and', ['clean']],
  ':effect',
  ['and', ['dinner']]],
 [':action',
  'wrap',
  ':parameters',
  [],
  ':precondition',
  ['and', ['quiet']],
  ':effect',
  ['and', ['present']]],
 [':action',
  'carry',
  ':parameters',
  [],
  ':precondition',
  ['and', ['garbage']],
  ':effect',
  ['and', ['not', ['garbage']], ['not', ['clean']]]],
 [':action',
  'dolly',
  ':parameters',
  [],
  ':precondition',
  ['and', ['garbage']],
  ':effect',
  ['and', ['not', ['garbage']], ['not', ['quiet']]]]]
----------------------------
['define',
 ['problem', 'pb1'],
 [':domain', 'dinner'],
 [':init', ['garbage'], ['clean'], ['quiet']],
 [':goal', ['and', ['dinner'], ['present'], ['not', ['garbage']]]]]
----------------------------
Domain name: dinner
action: cook
  parameters: []
  positive_preconditions: [['clean']]
  negative_preconditions: []
  add_effects: [['dinner']]
  del_effects: []

action: wrap
  parameters: []
  positive_preconditions: [['quiet']]
  negative_preconditions: []
  add_effects: [['present']]
  del_effects: []

action: carry
  parameters: []
  positive_preconditions: [['garbage']]
  negative_preconditions: []
  add_effects: []
  del_effects: [['garbage'], ['clean']]

action: dolly
  parameters: []
  positive_preconditions: [['garbage']]
  negative_preconditions: []
  add_effects: []
  del_effects: [['garbage'], ['quiet']]

----------------------------
Problem name: pb1
Objects: {}
State: [['garbage'], ['clean'], ['quiet']]
Positive goals: [['dinner'], ['present']]
Negative goals: [['garbage']]

Planner execution

# Planning using BFS
cd pddl-parser
python -B planner.py dinner/dinner.pddl dinner/pb1.pddl
# Output
plan:
action: cook
  parameters: []
  positive_preconditions: [['clean']]
  negative_preconditions: []
  add_effects: [['dinner']]
  del_effects: []

action: wrap
  parameters: []
  positive_preconditions: [['quiet']]
  negative_preconditions: []
  add_effects: [['present']]
  del_effects: []

action: carry
  parameters: []
  positive_preconditions: [['garbage']]
  negative_preconditions: []
  add_effects: []
  del_effects: [['garbage'], ['clean']]

About

🐍 Planning in Python

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%