Skip to content

Use folder structure and relative paths to add encodings #61

@jorgefandinno

Description

@jorgefandinno

Currently, there is no nice way to exploit the file structure of the benchmark to recognize instances and encodings, and allow different encodings for different systems.

For example, let us assume our benchmark folder has the following structure:

- benchmarks/
  | - problem1/
  | - problem2/
  |- ...

and each problem directly contains the programs to be run. Then, we can add

<benchmark name="benchmark">
    <folder path="benchmarks"/>
</benchmark>

and all problems will be run and grouped in classes appropriately.

If on the other hand, each problem is separated into instances and encoding, we have to manually state which encoding to use with each instance. In this case, we may have the following structure:

- benchmarks/
  | - problem1/
      | - instances/
      | - encoding.sys1
      | - encoding.sys2
  | - problem2/
      | - instances/
      | - encoding.sys1
      | - encoding.sys2
  |- ...

It would be nice to be able to set this automatically as follows:

<benchmark name="benchmark">
    <folder path="benchmarks", instances="instances">
      <encoding relative="encoding" /encoding>
   </folder>
</benchmark>

<system name="sistem1" version="0"
      measures="clingo"
      config="seq">
      <setting name="baseline" cmdline="--stats 1" encoding_suffix=".sys1"/>
</system>

<system name="sistem2" version="0"
      measures="clingo"
      config="seq">
      <setting name="baseline" cmdline="--stats 1" encoding_suffix=".sys2"/>
</system>

For each folder in benchmarks, this expects a folder called instances. For each file benchmarks/problem1/instances/file, the solver will be called with the command lines

system1 {sys_cmd} {setting_cmd} benchmarks/problem1/instances/file benchmarks/problem1/encoding.sys1
system2 {sys_cmd} {setting_cmd} benchmarks/problem1/instances/file benchmarks/problem1/encoding.sys2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions