Differences between revisions 1 and 2
Revision 1 as of 2014-04-20 17:49:59
Size: 708
Editor: JendrikSeipp
Comment: add very short description of successor generator
Revision 2 as of 2014-04-20 17:57:04
Size: 2767
Editor: JendrikSeipp
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
This page describes the output format of the preprocessor component of Fast Downward. The preprocessor takes the {{{output.sas}}} file generated by the translator and adds three sections. The common sections are described in TranslatorOutputFormat. This page describes the output format of the preprocessor component of Fast Downward. The output has the filename {{{output}}}, but is sometimes called ''PRE''. The preprocessor takes the {{{output.sas}}} file generated by the translator and adds three sections. The common sections are described in TranslatorOutputFormat.
Line 17: Line 17:

<<Anchor(dtg)>>
=== Preprocessor file format: Domain Transition Graphs section ===

There is one section {{{begin_DTG ... end_DTG}}} for each variable of
the problem. The k-th section of this kind corresponds to the DTG for
variable #k.

Each section has the following structure:

{{{
begin_DTG
[Block for value 0]
[Block for value 1]
...
[Block for last value]
end_DTG
}}}

Each block describes the outgoing arcs of the corresponding node in
the DTG. So for example, the fifth block (#4) in the third (#2) DTG
section describes the outgoing transitions in the DTG for variable #2
for the value #4. Such a value block looks like follows:

{{{
number of transitions
[description of first transition]
[description of second transition]
...
[description of last transition]
}}}

Each description of a transition looks like the following:

{{{
target value
operator/axiom number
number of conditions for the transition
variable/value pair for the first transition condition
variable/value pair for the second transition condition
...
variable/value pair for the last transition condition
}}}

The "target value" is the value for the DTG variable that is achieved
by the transition.

The operator/axiom number is the number of the operator or axiom that
is associated with the transition. (Whether it refers to an axiom or
operator depends on whether the DTG variable is derived or not.)
Operators and axioms are numbered in the order in which they appear in
the PRE file; counting starts from 0 in both cases.

The description of the variable/value pairs is the same as elsewhere
(e.g. in operator preconditions).

For example, the description for a given transition could look like this:

{{{
1
16
2
4 0
40 0
}}}

This means that this transition reaches value #1, corresponds to
operator or axiom #16, and has two associated conditions: variable #4
must have the value 0, and variable #40 must also have the value 0.

Output of the Fast Downward preprocessor

This page describes the output format of the preprocessor component of Fast Downward. The output has the filename output, but is sometimes called PRE. The preprocessor takes the output.sas file generated by the translator and adds three sections. The common sections are described in TranslatorOutputFormat.

Preprocessor file format

The following sections are added:

  1. Successor Generator section

  2. Domain Transition Graphs section

  3. Causal Graph section

Preprocessor file format: Successor Generator section

This section is a textual representation of the successor generator that is used when the search computes a state's successors.

Preprocessor file format: Domain Transition Graphs section

There is one section begin_DTG ... end_DTG for each variable of the problem. The k-th section of this kind corresponds to the DTG for variable #k.

Each section has the following structure:

begin_DTG
[Block for value 0]
[Block for value 1]
...
[Block for last value]
end_DTG

Each block describes the outgoing arcs of the corresponding node in the DTG. So for example, the fifth block (#4) in the third (#2) DTG section describes the outgoing transitions in the DTG for variable #2 for the value #4. Such a value block looks like follows:

number of transitions
[description of first transition]
[description of second transition]
...
[description of last transition]

Each description of a transition looks like the following:

target value
operator/axiom number
number of conditions for the transition
variable/value pair for the first transition condition
variable/value pair for the second transition condition
...
variable/value pair for the last transition condition

The "target value" is the value for the DTG variable that is achieved by the transition.

The operator/axiom number is the number of the operator or axiom that is associated with the transition. (Whether it refers to an axiom or operator depends on whether the DTG variable is derived or not.) Operators and axioms are numbered in the order in which they appear in the PRE file; counting starts from 0 in both cases.

The description of the variable/value pairs is the same as elsewhere (e.g. in operator preconditions).

For example, the description for a given transition could look like this:

1
16
2
4 0
40 0

This means that this transition reaches value #1, corresponds to operator or axiom #16, and has two associated conditions: variable #4 must have the value 0, and variable #40 must also have the value 0.