73
Comment:
|
← Revision 7 as of 2010-12-02 15:35:57 ⇥
1595
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Inserire una descrizione per RunModelSolve. | A {{{run}}} script example to be used for the Model & Solve competition follows. The script pipes input towards the DLV solver (you might replace with your own) and outputs data in the competition format. |
Line 4: | Line 5: |
#! /usr/bin/env bash | |
Line 5: | Line 7: |
try | set -o pipefail # Disable output buffering |
Line 7: | Line 9: |
if [ $# -ne 3 ]; then echo "This script must be invoked with three parameters!" exit fi MAXINT=$1 MAX_NESTING_LEVEL=$2 # NOTE: MAX_NESTING_LEVEL is not used in this version of DLV OUTPUT_PREDICATES=$3 SCRIPTDIR=`dirname $0` BIN=$SCRIPTDIR/dlv.i386-linux-elf-static.bin ENCODING=$SCRIPTDIR/my_encoding.dl # Execution with preprocessing and postprocessing: $SCRIPTDIR/preprocess.pl | $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent $ENCODING -- | $SCRIPTDIR/postprocess.pl ECODE=$? if [ $ECODE -ne 0 ]; then echo UNKNOWN; fi exit $ECODE |
|
Line 8: | Line 31: |
Note that {{{DLV}}} is invoked after a pre-processing perl script. The output of {{{DLV}}} is processed by a perl post-processing script. Your binary executable might not require a pre-processing script: in such a case the following instruction can be used in the script: {{{ # Execution with postprocessing only: $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent $ENCODING -- | $SCRIPTDIR/postprocess.pl }}} Similarly, if your binary executable does not require a post-processing script, the following instruction can be used in the script: {{{ # Execution with preprocessing only: $SCRIPTDIR/preprocess.pl | $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent $ENCODING -- }}} |
A run script example to be used for the Model & Solve competition follows. The script pipes input towards the DLV solver (you might replace with your own) and outputs data in the competition format.
#! /usr/bin/env bash set -o pipefail # Disable output buffering if [ $# -ne 3 ]; then echo "This script must be invoked with three parameters!" exit fi MAXINT=$1 MAX_NESTING_LEVEL=$2 # NOTE: MAX_NESTING_LEVEL is not used in this version of DLV OUTPUT_PREDICATES=$3 SCRIPTDIR=`dirname $0` BIN=$SCRIPTDIR/dlv.i386-linux-elf-static.bin ENCODING=$SCRIPTDIR/my_encoding.dl # Execution with preprocessing and postprocessing: $SCRIPTDIR/preprocess.pl | $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent $ENCODING -- | $SCRIPTDIR/postprocess.pl ECODE=$? if [ $ECODE -ne 0 ]; then echo UNKNOWN; fi exit $ECODE
Note that DLV is invoked after a pre-processing perl script. The output of DLV is processed by a perl post-processing script. Your binary executable might not require a pre-processing script: in such a case the following instruction can be used in the script:
# Execution with postprocessing only: $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent $ENCODING -- | $SCRIPTDIR/postprocess.pl
Similarly, if your binary executable does not require a post-processing script, the following instruction can be used in the script:
# Execution with preprocessing only: $SCRIPTDIR/preprocess.pl | $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent $ENCODING --