h2r / Task-Scoping

Remove irrelevant variables and operators from planning problems via static analysis!
2 stars 0 forks source link

Randomly-generated problem files scripts #28

Closed NishanthJKumar closed 1 year ago

NishanthJKumar commented 1 year ago

Adds all the original IPC problem files to the repo, as well as some scripts that will randomly generate problem files with irrelevance and then run experiments on these. The experiments will ignore generated problems that are unsolvable and will save node expansions + times for planning, as well as times for translating/scoping respectively for each different problem across some fixed number of runs. Finally, it will report these statistics across all problems. Note that this PR is still a work-in-progress (but should be somewhat close to done!)

Currently, the workflows are as follows:

  1. Pick a particular IPC problem and how much conditional irrelevance to generate. Then generate a set of problem files and save them in a particular folder.
  2. Run the scoper + FD on all problem files in this folder.

We probably want to manually run (1) a bunch of times to find a good set of randomly-generated problem files that have irrelevance enough for us to showcase a difference in planning times.

Example commands:

First, generate a bunch of new randomly-generated files:

python experiments/modify_prob_files.py --domain examples/IPC_domains_propositional/driverlog/domain.pddl --problem examples/IPC_domains_propositional/driverlog/prob15.pddl

Next, run experiments on these:

python experiments/fd_experiment.py 3 examples/IPC_domains_propositional/driverlog/domain.pddl examples/IPC_domains_propositional/driverlog/prob15.pddl ~/Documents/GitHub/downward/fast-downward.py ./logs --problems_dir randomly_generated_prob_files/driverlog/