Size: 4662
Comment:
|
Size: 7490
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
Quick Directions: * Input, Ouput and Instance Specification * Package Submission Templates * Checker Format |
==== Quick Directions ==== * [[#package-submission|Package Submission Instructions]] * [[#package-example|Sample Package Download]] * [[#package-submission|Input and Output and Instance Formats]] * [[#checker|Checker Format]] |
Line 9: | Line 9: |
== Package Submission Templates == | |
Line 11: | Line 10: |
* '''Preliminary submission''' (see [[#package-example|Example]]) can be done by providing problem name and problem specification only; we encourage to provide an ASP encoding and sample instances also. * '''Complete problem specifications''' (see [[#package-example|Example]]) shall be sent by email to [[mailto:benchmark_submission_REPLACE_WITH_AT_mat.unical.it|Benchmark Submission]] enclosed in a single compressed package (zip, rar, and tar.gz are allowed formats), containing: have to be packaged in a single compressed archive named {{{benchmark_name-contributor_name.zip}}} (or {{{tar.gz}}}) containing: 1. a {{{benchmark_name.spec.txt}}} file containing the textual problem description (a template is available, see below); 2. a {{{benchmark_name.enc.asp}}} file containing a proposed encoding in ASP for the problem ''(details about the language will follow)''; 3. a folder named {{{checker}}} containing the sources of a correctness checker together with a README.txt file containing the instructions for (possibly building and) running it; 4. a folder named {{{samples}}} containing some instances (one instance per text file). {{{benchmark_name}}} and {{{contributor_name}}} should be substituted with their actual value. |
== Package Submission Instructions == * '''Preliminary submission''' (see [[#package-example|Example]]) simply requires problem name and description/specification only, even if the submission of sample instances is encouraged. In case you want to propose the problem for the System Competition, an ASP encoding is also strongly suggested. * '''Complete problem specifications''' (see [[#package-example|Example]]) must be sent by email to [[mailto:aspcomp_benchmarks_submission@yahoogroups.com|Benchmark Submission]], packaged in a single compressed archive named {{{benchmark_name-contributor_name.zip}}} containing: 1. a {{{specification.txt}}} file containing the textual problem description, with a clear specification of the input and output formats. Names and arguments of input and output predicates must be clearly specified (see [[ProblemIOSpecification|Problem I/O]]); (a template example is available, see below); 1. a {{{encoding.asp}}} file containing a proposed encoding in ASP for the problem (only required for thee System Competition); 1. a folder named {{{checker}}} containing a startup file {{{checker.sh }}}and possibly further sources of a correctness checker; see [[#checker|Checker Description]] for details 1. a folder named {{{instances}}} containing at least 50 instances instances (one instance per text file) or the generator thereof (together with a README.txt, that provides instructions for building and running it). 1. a folder named {{{example}}} containing an example instance {{{instance.asp }}}and the expected outcome {{{outcome.txt}}}'' ''in order to help in disambiguating blurred specifications |
Line 28: | Line 20: |
Line 29: | Line 22: |
* ''Sample Package Download'' [[attachment:GraphColouring.zip||&do=get]] * ''Preliminary Submission Example'' [[attachment:GraphColouring.txt||&do=get]] |
* ''Preliminary Submission Example'' [[attachment:GraphColouringPreliminary.zip||&do=get]] * ''Complete Submission Example'' [[attachment:GraphColouring.zip||&do=get]] |
Line 33: | Line 26: |
=== Problem Input-Output predicates and Instance Specification === | |
Line 35: | Line 27: |
== Problem Input-Output predicates and Instance Specification (mandatory for the System Competition) == | |
Line 37: | Line 30: |
==== Problem Input and Output. ==== | === Problem Input and Output. === Benchmark problems specifications have to clearly indicate the vocabulary of input and output predicates, i.e., a list of predicate names for the input and a list of predicate names for the output and their arity in the usual logic programming notation (e.g. {{{edge/2}}} denotes the binary predicate {{{edge}}}). |
Line 39: | Line 33: |
Benchmark problems specifications have to clearly indicate the vocabulary of input and output predicates, i.e., a list of predicate names for the input and a list of predicate names for the output and their arity in the usual logic programming notation (e.g. {{{p/2}}} denotes the binary predicate {{{p}}}). | === Instance Specification. === Input instance are sequences of ''Facts'' (atoms followed by the dot "." character) with only predicates of the input vocabulary, possibly separated by spaces and line breaks, entirely saved in a text file (instances and files must be in 1-to-1 correspondence). Examples of facts: {{{node(a)}}}, {{{edge(a,b)}}}. The terms {{{a}}} and {{{b}}} can be positive integers, double quoted strings or unquoted strings belonging to the vocabulary {{{[a-zA-Z][a-zA-Z0-9]*}}}. |
Line 41: | Line 36: |
==== Instance Specification. ==== | <<Anchor(MAXINT-MAXLEVEL)>> |
Line 43: | Line 38: |
Input instance are sequences of ''Facts'' (atoms followed by the dot "." character) with only predicates of the input vocabulary, possibly separated by spaces and line breaks, entirely saved in a text file (only one instance per file is allowed). |
===== Maximum Integer and maximum function nesting level, ===== have to be provided in a per-instance basis. In particular, they are specified in the filename containing a given instance. We recall that instances must be named {{{XX-benchmark_name-MAXINT-MAXLEVEL.asp}}} where {{{XX}}} is the instance number, {{{MAXINT}}} is the maximum integer ({{{0}}} if not relevant/no arithmetics are required), and {{{MAXLEVEL}}} is the maximum function nesting level ({{{0}}} if not relevant). These data should be provided for those solvers needing an explicit bound on the range of integers and/or function symbols. One or both can be set to ''0'' if your problem domain does not use either numbers or function symbols or both. <<Anchor(checker)>> == Checker Description == The checker gets as parameters 1. the exit code from the solver, which is 10 for satisfiable instances, 20 for unsatisfiable instances, and any other value in case of an error (e.g. timeout, segmentation fault, etc.) 1. the file name of the problem instance If the solver exit code is 10, the checker reads from standard input a witness, i.e. an answer to the problem instance at hand. If the solver exit code is 20, it reads from standard input the constant string {{{INCONSISTENT}}}. If the solver exit code is any other value, it reads from standard input the constant string {{{INCOMPLETE.}}} The checker is expected to write to standard output a single row of text containing the string {{{OK}}} with exit code 0 if the solver exit code and standard input correspond to the expected output for the given instance. That is, the instance is satisfiable and the solver correctly returned 10 and produced and answer set, or the instance is unsatisfiable and the solver correctly returned 20 and the input to the checker was {{{INCONSISTENT.}}}The checker is expected to write a single row of text containing the string {{{FAIL}}} with exit code 1 if the solver result was wrong. That is, e.g., the solver produced an answer set of an inconsistent instance or returned 20 for a satisfiable one. '''Remark:''' Additionally, the checker may return 2 and the string {{{DO_NOT_KNOW}}} if the checker is not able to verify or falsify the solver result. This result should be avoided whenever possible, but might be used if it is computationally too costly to determine an answer, e.g., to verify an {{{INCONSISTENT }}}result (i.e. to prove that the instance is indeed unsatisfiable) or to prove minimality of an answer set of a disjunctive program. In summary, the following cases are possible: ||||<tablewidth="851px" tableheight="160px"style="text-align:center">'''Solver<<BR>>''' ||||<style="text-align:center">'''Checker<<BR>>''' || ||''exit code<<BR>>'' ||''standard output<<BR>>'' ||''standard input<<BR>>'' ||''possible outputs<<BR>>'' || ||10 ||an answer set ||an answer set ||{{{OK }}}with exit code 0 if the answer set is correct; {{{FAIL }}}with exit code 1 if the answer set is incorrect; {{{DO_NOT_KNOW }}}if the checker cannot verify the result || ||20 || ||{{{INCONSISTENT}}} ||{{{OK }}}with exit code 0 if the instance is indeed inconsistent; {{{FAIL }}}with exit code 1 if the instance is consistent || ||any other value || ||{{{INCOMPLETE}}} ||{{{FAIL }}}with exit code 1 || |
Line 48: | Line 63: |
<<Anchor(MAXINT-MAXLEVEL)>> ==== Maximum Integer and maximum function nesting level, ==== have to be provided in a per-instance basis. In particular, they are specified in the filename containing a given instance. We recall that instances must be named {{{XX-benchmark_name-MAXINT-MAXLEVEL.asp}}} where {{{XX}}} is the instance number, {{{MAXINT}}} is the maximum integer ({{{0}}} if not relevant/no arithmetics are required), and {{{MAXLEVEL}}} is the maximum function nesting level ({{{0}}} if not relevant). |
|
Line 52: | Line 64: |
<<Anchor(checker)>> === Checker format === The checker reads from standard input a witness and writes in standard output a single row of text containing the string {{{OK}}} (if the witness is correctly assessed as a solution), and the string {{{FAIL}}} otherwise. The string {{{OK}}} must be followed by a space-separated integer representing the witness cost in case of optimization problems. The checker outputs {{{WARN}}} and an exit code different from zero in all other cases (e.g. the witness is not syntactically correct, or the output {{{INCONSISTENT}}} has been incorrectly piped towards the checker). Informative messages can be output in standard error. |
|
Line 56: | Line 65: |
Note that witnesses are assumed to be inclusive of both instance facts (input predicates) and solution facts (output predicates). | Note that witnesses given in input to checkers are assumed to be inclusive of both instance facts (input predicates) and solution facts (output predicates), but the file name of the instance is additionally passed as second parameter to the checker. |
Line 58: | Line 67: |
'''Remark''': checkers provided by benchmark authors will be used only for checking existing witnesses. It is not up to the benchmark author to check validity of other outputs like {{{INCONSISTENT}}}. | The source code of the correctness checker has to be be included in the package; the provided software must be able to (be built and) run on the Debian i686 GNU/Linux(kernel ver. 2.6.26) operating system. A checker can be built on top of a logic specification for a solver of choice: in such a case binaries of the solver must be provided together with the checker encoding. |
Line 60: | Line 69: |
The source code of the correctness checker has to be be included in the package; moreover, the provided software must be able to (build and) run on the Debian i686 GNU/Linux(kernel ver. 2.6.26) operating system. A checker can be built on top of a logic specification for a solver of choice: in such a case binaries of the solver must be provided together with the checker encoding. | <<Anchor(checker-example)>> |
Line 62: | Line 71: |
'''Remark''': the development of checkers in form on ASP programs is preferable and strongly encouraged. | ==== Checker Example Download ==== * ''ASP-based Checker Download'' [[attachment:SampleChecker.zip||&do=get]] |
Problem Submission Specification: Input, Output, Checking
Quick Directions
Package Submission Instructions
Preliminary submission (see Example) simply requires problem name and description/specification only, even if the submission of sample instances is encouraged. In case you want to propose the problem for the System Competition, an ASP encoding is also strongly suggested.
Complete problem specifications (see Example) must be sent by email to Benchmark Submission, packaged in a single compressed archive named benchmark_name-contributor_name.zip containing:
a specification.txt file containing the textual problem description, with a clear specification of the input and output formats. Names and arguments of input and output predicates must be clearly specified (see Problem I/O); (a template example is available, see below);
a encoding.asp file containing a proposed encoding in ASP for the problem (only required for thee System Competition);
a folder named checker containing a startup file checker.sh and possibly further sources of a correctness checker; see Checker Description for details
a folder named instances containing at least 50 instances instances (one instance per text file) or the generator thereof (together with a README.txt, that provides instructions for building and running it).
a folder named example containing an example instance instance.asp and the expected outcome outcome.txt in order to help in disambiguating blurred specifications
Package Example Download
Preliminary Submission Example GraphColouringPreliminary.zip
Complete Submission Example GraphColouring.zip
Problem Input-Output predicates and Instance Specification (mandatory for the System Competition)
In the following it is specified the allowed format for specifying input and output of problems and instances. Samples are available in the competition web site.
Problem Input and Output.
Benchmark problems specifications have to clearly indicate the vocabulary of input and output predicates, i.e., a list of predicate names for the input and a list of predicate names for the output and their arity in the usual logic programming notation (e.g. edge/2 denotes the binary predicate edge).
Instance Specification.
Input instance are sequences of Facts (atoms followed by the dot "." character) with only predicates of the input vocabulary, possibly separated by spaces and line breaks, entirely saved in a text file (instances and files must be in 1-to-1 correspondence). Examples of facts: node(a), edge(a,b). The terms a and b can be positive integers, double quoted strings or unquoted strings belonging to the vocabulary [a-zA-Z][a-zA-Z0-9]*.
Maximum Integer and maximum function nesting level,
have to be provided in a per-instance basis. In particular, they are specified in the filename containing a given instance. We recall that instances must be named XX-benchmark_name-MAXINT-MAXLEVEL.asp where XX is the instance number, MAXINT is the maximum integer (0 if not relevant/no arithmetics are required), and MAXLEVEL is the maximum function nesting level (0 if not relevant). These data should be provided for those solvers needing an explicit bound on the range of integers and/or function symbols. One or both can be set to 0 if your problem domain does not use either numbers or function symbols or both.
Checker Description
The checker gets as parameters
- the exit code from the solver, which is 10 for satisfiable instances, 20 for unsatisfiable instances, and any other value in case of an error (e.g. timeout, segmentation fault, etc.)
- the file name of the problem instance
If the solver exit code is 10, the checker reads from standard input a witness, i.e. an answer to the problem instance at hand. If the solver exit code is 20, it reads from standard input the constant string INCONSISTENT. If the solver exit code is any other value, it reads from standard input the constant string INCOMPLETE.
The checker is expected to write to standard output a single row of text containing the string OK with exit code 0 if the solver exit code and standard input correspond to the expected output for the given instance. That is, the instance is satisfiable and the solver correctly returned 10 and produced and answer set, or the instance is unsatisfiable and the solver correctly returned 20 and the input to the checker was INCONSISTENT.The checker is expected to write a single row of text containing the string FAIL with exit code 1 if the solver result was wrong. That is, e.g., the solver produced an answer set of an inconsistent instance or returned 20 for a satisfiable one.
Remark: Additionally, the checker may return 2 and the string DO_NOT_KNOW if the checker is not able to verify or falsify the solver result. This result should be avoided whenever possible, but might be used if it is computationally too costly to determine an answer, e.g., to verify an INCONSISTENT result (i.e. to prove that the instance is indeed unsatisfiable) or to prove minimality of an answer set of a disjunctive program.
In summary, the following cases are possible:
Solver |
Checker |
||
exit code |
standard output |
standard input |
possible outputs |
10 |
an answer set |
an answer set |
OK with exit code 0 if the answer set is correct; FAIL with exit code 1 if the answer set is incorrect; DO_NOT_KNOW if the checker cannot verify the result |
20 |
|
INCONSISTENT |
OK with exit code 0 if the instance is indeed inconsistent; FAIL with exit code 1 if the instance is consistent |
any other value |
|
INCOMPLETE |
FAIL with exit code 1 |
Note that witnesses given in input to checkers are assumed to be inclusive of both instance facts (input predicates) and solution facts (output predicates), but the file name of the instance is additionally passed as second parameter to the checker.
The source code of the correctness checker has to be be included in the package; the provided software must be able to (be built and) run on the Debian i686 GNU/Linux(kernel ver. 2.6.26) operating system. A checker can be built on top of a logic specification for a solver of choice: in such a case binaries of the solver must be provided together with the checker encoding.
Checker Example Download
ASP-based Checker Download SampleChecker.zip