package mccs

  1. Overview
  2. Docs
MCCS (which stands for Multi Criteria CUDF Solver) is a CUDF problem solver developed at UNS during the European MANCOOSI project

Install

Dune Dependency

Authors

Maintainers

Sources

mccs-1.1+18.tar.gz
md5=3fd6f609a02f3357f57570750fcacde0
sha512=9b2c6c32a2851dca2e2089c39b2894930a9463a0d70b78172e851e338a2f9990573be981023e3eef65351c9cc12f955ad3dc26e3bf4b83525b9d79ee9dbb4a99

Description

Published: 22 Aug 2024

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 dune. The GLPK source it links against is also included within src/glpk, at version 5.0 (unmodified, apart from many removed modules, corresponding to the parts that we don't use).

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

Only the GLPK backend and the lpsolve interface are compiled by default, but that can be tuned by setting the MCCS_BACKENDS environment variable, at compile-time, to a space-separated list of the following: GLPK, COIN, CLP, CBC, SYMPHONY. Note that, apart from GLPK, you will need the corresponding libraries installed, the backends will be dynamically linked, and these are experimental may not work as expected. Additionally, the compilation of the included GLPK version can be disabled by removing src/glpk/dune, and replaced by dynamic/static linking by renaming one of the dune-shared and dune-static files.

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 colon after properties can be omitted -count[version-lag,true] rather than -count[version-lag:,true]

  • the second parameter for count[] has been extended from a boolean to any one of request, new, changed, solution, for more expressivity. 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 (4)

  1. conf-c++ build
  2. cudf >= "0.7"
  3. dune >= "1.0"
  4. ocaml

Dev Dependencies

None

Used by (2)

  1. opam-check-npm-deps
  2. opam-solver >= "2.0.0~beta5"

Conflicts

None

OCaml

Innovation. Community. Security.