The CBLIB base of scripts and tools
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cblib
LICENSE
README

README

-------------------------------------------------------------------------------
The CBLIB base of scripts and tools
-------------------------------------------------------------------------------

The Conic Benchmark Library is organised as follows.

  ./docs/
      format.pdf        The CBF file format

  ./instances/
      ./cbf/            Instances in CBF format
      ref.bib           BibTeX references
      ref.csv           Contributors, descriptions and reference keys

  ./scripts/
      filter.py         Filter out instances of interest
      run.py            Run instances
      summary.py        Analyse solutions

  ./tools/
      Makefile.cbftool  Convert from CBF to other file formats (GNU makefile)


Additional files are included for administrative purposes.

  ./scripts/
      ./admin/
          pack.py                 Archieve a new selection from CBLIB
          print-bibtable.py       Print table of citations based on 'ref.bib'
          print-reftable.py       Print table of references based on 'ref.csv'
          print-stattable.py      Print table of statistics based on 'stat.csv'
          make-stattable.py       Create new 'stat.csv'
          update-stattable.py     Update 'stat.csv' based on solution files
          update-autogen-tags.py  Add metadata to instances based on 'ref.csv'


-------------------------------------------------------------------------------
 filter.py: Filter out instances of interest.
-------------------------------------------------------------------------------

Usage examples:

  All instances:
    python filter.py ""

  Mixed-integer second-order cone instances:
    python filter.py "||int|| and ||cones|so|| and not ||psdcones||"

  Continuous second-order cone instances:
    python filter.py "not ||int|| and ||cones|so|| and not ||psdcones||"

  Instances with more than 100000 second-order cones:
    python filter.py "||cones|so|| >= 100000"

  Instances with less than 4 members per second-order cone on average:
    python filter.py "||entries|so|| / ||cones|so|| <= 4"


The argument is a string which can be evaluated to True or False in Python,
when filter tags on the form ||TAGNAME|| are substituted out. Substitution
is based on function ''getval'' in ./scripts/filters/TAGNAME.py.


-------------------------------------------------------------------------------
 run.py: Run instances.
-------------------------------------------------------------------------------

Usage examples:

  Solve 'qssp30.cbf' with mosek:
    python scripts/run.py runmosek -f ./instances/cbf/qssp30.cbf

  Solve problems listed in 'set-cblib2014.csv':
    python scripts/run.py runmosek -s ./instances/set-cblib2014.csv

Both commands will output time and solution summary onto the screen. Solution 
files are written to ./instances/cbf/qssp30.cbf.sol respectively 
./instances/set-cblib2014.csv.sol in these examples.


-------------------------------------------------------------------------------
 summary.py: Analyse solutions.
-------------------------------------------------------------------------------

Usage examples:

  Summary of 'qssp30.cbf.sol' solution file:
    python scripts/summary.py -f ./instances/cbf/qssp30.cbf

  Summary of solutions to problems listed in 'set-cblib2014.csv' (assuming
  solution files are found in ./instances/set-cblib2014.csv.sol):
    python scripts/summary.py -s ./instances/set-cblib2014.csv


-------------------------------------------------------------------------------
 cbftool: Convert from CBF to other file formats.
-------------------------------------------------------------------------------

This tool will have to be compiled from source using the GNU Makefile.

  make clean all -f Makefile.cbftool


Usage examples:

  Convert files from CBF to MPS format using the MOSEK 
  extension for cones (writes to the directory read from):
    cbftool -o mps-mosek CBFFILE1 CBFFILE2 CBFFILE3 ...

  Convert files from CBF to MPS format using the CPLEX 
  extension for cones (writes to the directory read from):
    cbftool -o mps-cplex CBFFILE1 CBFFILE2 CBFFILE3 ...

  Convert files from CBF to SDPA format and write files to 
  the ''../instances/sdpa'' directory:
    cbftool -o sdpa -opath ../instances/sdpa CBFFILE1 CBFFILE2 CBFFILE3 ...