<p>Fun domain!</p>
<p>You shouldn't have to be parsing the FD output for the plan. Just use <code>--plan-file plan.out</code> as a command-line option to write the plan to the <code>plan.out</code> file. Chances are that it's already creating a file for you locally and you may not have noticed.</p>

CC BY-SA 4.0
2022-07-01T10:58:08.670Z
Can you post the command line you're using?
haz
CC BY-SA 4.0
2022-07-03T21:21:08.540Z
Aye, but what's the actual command and what files exist after running it?
haz
CC BY-SA 4.0
2022-07-04T06:57:08.133Z
I have added more details to the question, I hope it will be clearer now, note that I'm not getting any plan: neither plan.out nor the default plan name!
Bilal
CC BY-SA 4.0
2022-07-04T07:24:28.913Z
it turns out that I didn't specify the type of search algortihm `--search "astar(lmcut())"` for example.
Bilal
CC BY-SA 4.0
2022-07-05T12:02:07.553Z
Yep, that's the issue. You can run it with `--show-aliases` to see the `--alias` options. Quite often that's how it's run.
haz
CC BY-SA 4.0
2022-06-29T13:52:24.993Z
2022-06-29T13:52:24.993Z
haz
<p>I'm using this <a href="http://editor.planning.domains/#read_session=7yXhxKBnwe" rel="nofollow noreferrer">domain/problem</a> with the <a href="https://www.fast-downward.org" rel="nofollow noreferrer">fast-downward</a> planner like this:</p>
<p><code>./fast-downward.py --plan-file plan.out ../test_domain.pddl ../test_problem.pddl </code></p>
<p>The issue here is that the <code>output.sas</code> contains hundreds of thousands of lines without a clear reference to the solution plan!</p>
<p>Here is the full output log of the planner:</p>
<pre><code>$ ./fast-downward.py --plan-file plan.out ../test_domain.pddl ../test_problem.pddl
INFO     planner time limit: None
INFO     planner memory limit: None

INFO     Running translator.
INFO     translator stdin: None
INFO     translator time limit: None
INFO     translator memory limit: None
INFO     translator command line string: /usr/bin/python3 /media/belal/WD//Planning/downward/builds/release/bin/translate/translate.py ../test_domain.pddl ../test_problem.pddl --sas-file output.sas
Parsing...
Parsing: [0.000s CPU, 0.001s wall-clock]
Normalizing task... [0.000s CPU, 0.000s wall-clock]
Instantiating...
Generating Datalog program... [0.000s CPU, 0.000s wall-clock]
Normalizing Datalog program...
Normalizing Datalog program: [0.000s CPU, 0.001s wall-clock]
Preparing model... [0.000s CPU, 0.000s wall-clock]
Generated 9 rules.
Computing model... [0.000s CPU, 0.000s wall-clock]
73 relevant atoms
28 auxiliary atoms
101 final queue length
157 total queue pushes
Completing instantiation... [0.000s CPU, 0.001s wall-clock]
Instantiating: [0.000s CPU, 0.003s wall-clock]
Computing fact groups...
Finding invariants...
5 initial candidates
Finding invariants: [0.000s CPU, 0.001s wall-clock]
Checking invariant weight... [0.000s CPU, 0.000s wall-clock]
Instantiating groups... [0.000s CPU, 0.000s wall-clock]
Collecting mutex groups... [0.000s CPU, 0.000s wall-clock]
Choosing groups...
4 uncovered facts
Choosing groups: [0.000s CPU, 0.000s wall-clock]
Building translation key... [0.000s CPU, 0.000s wall-clock]
Computing fact groups: [0.000s CPU, 0.001s wall-clock]
Building STRIPS to SAS dictionary... [0.000s CPU, 0.000s wall-clock]
Building dictionary for full mutex groups... [0.000s CPU, 0.000s wall-clock]
Building mutex information...
Building mutex information: [0.000s CPU, 0.000s wall-clock]
Translating task...
Processing axioms...
Simplifying axioms... [0.000s CPU, 0.000s wall-clock]
Translator axioms removed by simplifying: 0
Computing negative axioms... [0.000s CPU, 0.000s wall-clock]
Processing axioms: [0.000s CPU, 0.000s wall-clock]
Translating task: [0.000s CPU, 0.001s wall-clock]
24 effect conditions simplified
0 implied preconditions added
Detecting unreachable propositions...
0 operators removed
0 axioms removed
2 propositions removed
Detecting unreachable propositions: [0.000s CPU, 0.000s wall-clock]
Reordering and filtering variables...
6 of 6 variables necessary.
4 of 6 mutex groups necessary.
24 of 24 operators necessary.
0 of 0 axiom rules necessary.
Reordering and filtering variables: [0.000s CPU, 0.000s wall-clock]
Translator variables: 6
Translator derived variables: 0
Translator facts: 16
Translator goal facts: 2
Translator mutex groups: 4
Translator total mutex groups size: 12
Translator operators: 24
Translator axioms: 0
Translator task size: 204
Translator peak memory: 31884 KB
Writing output... [0.000s CPU, 0.000s wall-clock]
Done! [0.000s CPU, 0.007s wall-clock]
translate exit code: 0

INFO     Running search (release).
search needs --alias, --portfolio, or search options
</code></pre>
<p>Can you please tell me how can I interpret the generated plan?</p>

CC BY-SA 4.0
2022-06-30T03:01:55.010Z
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer.
Community
<planning><pddl><strips>
How to interpret the output plan of the fast-downward planner
Bilal
# How to interpret the output plan of the fast-downward planner

(Asked by: username_0 on 2022-06-29)

I'm using this domain/problem with the fast-downward planner like this:
./fast-downward.py --plan-file plan.out ../test_domain.pddl ../test_problem.pddl 
The issue here is that the output.sas contains hundreds of thousands of lines without a clear reference to the solution plan!
Here is the full output log of the planner:
$ ./fast-downward.py --plan-file plan.out ../test_domain.pddl ../test_problem.pddl
INFO     planner time limit: None
INFO     planner memory limit: None

INFO     Running translator.
INFO     translator stdin: None
INFO     translator time limit: None
INFO     translator memory limit: None
INFO     translator command line string: /usr/bin/python3 /media/belal/WD//Planning/downward/builds/release/bin/translate/translate.py ../test_domain.pddl ../test_problem.pddl --sas-file output.sas
Parsing...
Parsing: [0.000s CPU, 0.001s wall-clock]
Normalizing task... [0.000s CPU, 0.000s wall-clock]
Instantiating...
Generating Datalog program... [0.000s CPU, 0.000s wall-clock]
Normalizing Datalog program...
Normalizing Datalog program: [0.000s CPU, 0.001s wall-clock]
Preparing model... [0.000s CPU, 0.000s wall-clock]
Generated 9 rules.
Computing model... [0.000s CPU, 0.000s wall-clock]
73 relevant atoms
28 auxiliary atoms
101 final queue length
157 total queue pushes
Completing instantiation... [0.000s CPU, 0.001s wall-clock]
Instantiating: [0.000s CPU, 0.003s wall-clock]
Computing fact groups...
Finding invariants...
5 initial candidates
Finding invariants: [0.000s CPU, 0.001s wall-clock]
Checking invariant weight... [0.000s CPU, 0.000s wall-clock]
Instantiating groups... [0.000s CPU, 0.000s wall-clock]
Collecting mutex groups... [0.000s CPU, 0.000s wall-clock]
Choosing groups...
4 uncovered facts
Choosing groups: [0.000s CPU, 0.000s wall-clock]
Building translation key... [0.000s CPU, 0.000s wall-clock]
Computing fact groups: [0.000s CPU, 0.001s wall-clock]
Building STRIPS to SAS dictionary... [0.000s CPU, 0.000s wall-clock]
Building dictionary for full mutex groups... [0.000s CPU, 0.000s wall-clock]
Building mutex information...
Building mutex information: [0.000s CPU, 0.000s wall-clock]
Translating task...
Processing axioms...
Simplifying axioms... [0.000s CPU, 0.000s wall-clock]
Translator axioms removed by simplifying: 0
Computing negative axioms... [0.000s CPU, 0.000s wall-clock]
Processing axioms: [0.000s CPU, 0.000s wall-clock]
Translating task: [0.000s CPU, 0.001s wall-clock]
24 effect conditions simplified
0 implied preconditions added
Detecting unreachable propositions...
0 operators removed
0 axioms removed
2 propositions removed
Detecting unreachable propositions: [0.000s CPU, 0.000s wall-clock]
Reordering and filtering variables...
6 of 6 variables necessary.
4 of 6 mutex groups necessary.
24 of 24 operators necessary.
0 of 0 axiom rules necessary.
Reordering and filtering variables: [0.000s CPU, 0.000s wall-clock]
Translator variables: 6
Translator derived variables: 0
Translator facts: 16
Translator goal facts: 2
Translator mutex groups: 4
Translator total mutex groups size: 12
Translator operators: 24
Translator axioms: 0
Translator task size: 204
Translator peak memory: 31884 KB
Writing output... [0.000s CPU, 0.000s wall-clock]
Done! [0.000s CPU, 0.007s wall-clock]
translate exit code: 0

INFO     Running search (release).
search needs --alias, --portfolio, or search options

Can you please tell me how can I interpret the generated plan?

**Tags:** planning, pddl, strips

> **Comments:**
> **username_1**: Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer.  

---

## 1 answers

### Answer by username_2 on 2022-06-29. Score: 2 | Accepted answer

Fun domain!

You shouldn't have to be parsing the FD output for the plan. Just use `--plan-file plan.out` as a command-line option to write the plan to the `plan.out` file. Chances are that it's already creating a file for you locally and you may not have noticed.

> **Comments:**
> **username_2**: Can you post the command line you're using?  
> **username_2**: Aye, but what's the actual command and what files exist after running it?  
> **username_0**: I have added more details to the question, I hope it will be clearer now, note that I'm not getting any plan: neither plan.out nor the default plan name!  
> **username_0**: it turns out that I didn't specify the type of search algortihm `--search "astar(lmcut())"` for example.  
> **username_2**: Yep, that's the issue. You can run it with `--show-aliases` to see the `--alias` options. Quite often that's how it's run.  

---

