The MCFClass Project
|
This is the Doxygen documentation for the "pure LGPL part" of MCFClass project, a set of C++ solvers for (Linear or Convex Quadratic Separable) Min Cost Flow Problem solvers under the same interface seriving from the base class MCFClass.
The aim of MCFClass is to provide an abstraction layer between practitioners who need to solve MCF problems within complex applications and developers of MCF software. The idea is to provide an interface which caters for all the needs that a practitioner can have, thereby allowing him/her to use whichever algorithm - among those that have an implementation conforming to this interface - without bothering with the details of the implementation, and to easily switch between different algorithms.
MCFClass defines and "exports" the types of "flows" (MCFClass::FNumber), "costs" (MCFClass::CNumber) and so on, together with a set of comparison operators (ETZ, GTZ, ...) which automatically detect whether or not the underlying types are integers or floats, inserting appropriate "epsilons" in the latter case and avoiding them (for speed) in the former; these things are sorted out at compile time without user intervention.
This code is provided free of charge under the "GNU Lesser General Public License". There are actually two more complete solvers available under the MCFClass interface, namely CS2 and MCFZIB. These are, however, distributed under a more restrictive academic license, which has to be explicitly accepted before getting hold of the code. Request forms are available in the req folder
This release comprises:
docs/: this documentation, also available at
OPTUtils.h
file with a few minor utility functionsThere are two more complete solvers available under the MCFClass interface, namely CS2 and MCFZIB. These are, however, distributed under a more restrictive academic license, which has to be explicitly accepted before getting hold of the code. Request forms are available in the req folder.
A further solver, MCFIntPnt (based on Interior-Point algorithms) has been developed, but it has not yet reached a sufficient maturuty to be distributed; its principles are discussed at
http://pages.di.unipi.it/frangio/abstracts.html#SIOPT04
http://pages.di.unipi.it/frangio/abstracts.html#COAP06
http://pages.di.unipi.it/frangio/abstracts.html#OMS06
For installation instruction, check the ReadMe.