package mccs

  1. Overview
  2. Docs

Description

This is a stripped-down version of the mccs solver (written in C++), including OCaml bindings based on the cudf library. Note that it includes some correctness fixes, and a few changes not present in the upstream yet.

Published: 22 Aug 2017

README

mccs OCaml library

mccs (which stands for Multi Criteria CUDF Solver) is a CUDF problem solver developed at UNS during the European MANCOOSI project.

This repository contains a stripped-down version of the mccs solver, taken from snapshot 1.1, with a binding as an OCaml library, and building with jbuilder.

The binding enables interoperation with binary CUDF data from the OCaml CUDF library, and removes the native C++ parsers and printers.

While mccs itself natively supports a wide array of underlying solvers (integer programming or pseudo-boolean), at the moment, the build system is set to link with glpk only. It's planned to extend it again to bring back support for lpsolve, and external lp solvers such as cplex, coinor-cbc or scip.

NOTE: the lib takes criteria as a string, in the format accepted by mccs (see mccs -h), assuming -lexagregate[CRITERIA]. There are two important differences:

  • the semicolon after properties can be omitted -count[version-lag,true] rather than -count[version-lag:,true]

  • the boolean parameter for count[] has a different meaning: it restricts the criterion to packages appearing in the request, rather than to packages newly installed. Example: -removed,-count[version-lag,true],-changed,-count[version-lag,false]

Build using opam install . (opam 2.0), or jbuilder build.

Note: this depends on a C++ compiler, and was only tested with g++.

Dependencies (5)

  1. conf-c++ build
  2. cudf >= "0.7"
  3. conf-glpk
  4. jbuilder >= "1.0+beta7"
  5. ocaml < "4.10"

Dev Dependencies

None

Used by

None

Conflicts

None