Semantics

The commands, given syntactically in the grammar, have the following interpretations:

"ErrFile"
Set the destination file for any error message outputs to the specified filename. If the file cannot be opened, this can be considered to be a RECOVERABLE or UNRECOVERABLE ERROR. PuzzleMuncher MUST be able to correctly handle the case in which this file name is the same as "OutFile" or "LogFile". If an ErrFile is specified, and then a different ErrFile is given later, the first file is flushed and closed and then the new file is opened. If the new file is identical to the old, the new data should be appended to the old data -- no data should be lost by this operation. Default value: Standard error.
"LogFile"
Set the destination file for the performance statistics output to the specified filename. If the file cannot be opened, this can be considered to be a RECOVERABLE or UNRECOVERABLE ERROR. PuzzleMuncher MUST be able to correctly handle the case in which this file name is the same as "OutFile" or "ErrFile". If a LogFile is specified, and then a different LogFile is given later, the first file is flushed and closed and then the new file is opened. If the new file is identical to the old, the new data should be appended to the old data -- no data should be lost by this operation. Default value: Standard output.
"OutFile"
Set the destination file for puzzle results output to the specified filename. If the file cannot be opened, this can be considered to be a RECOVERABLE or UNRECOVERABLE ERROR. PuzzleMuncher MUST be able to correctly handle the case in which this file name is the same as "LogFile" or "ErrFile". If an OutFile is specified, and then a different OutFile is given later, the first file is flushed and closed and then the new file is opened. If the new file is identical to the old, the new data should be appended to the old data -- no data should be lost by this operation. Default value: Standard output.
"Run"
Perform a search on the most recently defined PUZZLE and provide any output required by current RESULTS and STATS. If any of the bounds specified by SEARCH-CTRL are hit, the search MUST terminate and report no solution found, along with the reason for search termination. In this case, the RESULTS need not be reported (other than no solution found), but any requested STATS MUST be.
"Reset"
Reset all RESULTS, STATS, and SEARCH-CTRL settings to their default values. Note that this does not reset any of the output files; those remain until explicitly overridden or until the program terminates.
"SolnPathLen"
Report the number of MOVEs in the solution path (i.e., the number of MOVEs required to transform the START STATE to the GOAL STATE).
"StatePath"
Report the complete sequence of STATEs encountered on the solution path, including the START and GOAL STATEs. The output format for each state is specified under each puzzle in Section 3.1.
"MoveSeq"
Report the actual MOVEs taken along the solution path. The output format for each move is specified under each puzzle in Section 3.1. Note that this is distinct from SolnPathLen which only reports the number of moves along the solution path.
"NodesOpened"
Report the total number of nodes opened during the search.
"OpenListMaxLen"
Report the maximum number of nodes on the OPEN LIST at any point during the search.
"NodesClosed"
Report the total number of nodes on the CLOSED LIST at the end of the search.
"NumReopened"
Report the number of nodes moved from the CLOSED LIST to the OPEN LIST during the search.
"OpenClosedRatio"
Report the maximum and minimum ratios of the size of the OPEN LIST to the size of the CLOSED LIST during any point in the search. (For the purposes of this report, you can consider $ 0/0=1$ and $ x/0=x$.)
"OpenListBound"
Specifies the maximum number of elements that may be in the OPEN LIST. If this bound is exceeded, terminate the search. Default value:
java.lang.Integer.MAX_VALUE.
"TotalNodesBound"
Specifies the maximum number of nodes that can be in the search at one time (total of OPEN LIST and CLOSED LIST). If this bound is exceeded, terminate the search. Default value: java.lang.Integer.MAX_VALUE.
"TimeBound"
Maximum running time of the search, given in milliseconds (wall clock time, as reported by java.lang.System.currentTimeMillis()). If this bound is exceeded, terminate the search. Default value: java.lang.Long.MAX_VALUE.
HNAME
This argument to a puzzle description specifies the heuristic that will be used to solve this puzzle during the current search iteration.

By default, no RESULTS or STATS are generated -- all outputs must be explicitly specified.

All RESULTS, STATS, and SEARCH-CTRL settings are durable -- after being set, they remain in that state across multiple searches, until another value is assigned, a "Reset" is issued, or the search program terminates.

When the end of the input specification file is reached and all commands in the file have been completed, the program terminates. At termination, the program MUST flush and close all open files.

Terran Lane 2004-03-24