Combean

JavaBeans for Combinatorial Optimization

hosted at
SourceForge.net Logo


Content


About Combean  License  Features  Environment  Download  Installation  Documentation  Support   


About Combean

Mission Statement: Combean is a Java framework for combinatorial structures like graphs or linear programs and optimization algorithms working with these structures. The objective of Combean is to integrate existing proven optimization packages as well as new implementations through a set of lean Java interfaces. Using a JavaBeans-based configuration mechanism, solvers for real-world optimization problems can be generated by plugging together the best-performing components. Combean as 'glue' between optimization packages leads to more interoperable, adaptable and flexible solutions.

You shall find Combean useful if you want to achieve one of the following objectives:

Combean works very well together with its sister project swIMP. swIMP makes existing C or C++ optimization codes available under Java and thus largely increases the set of available solvers for Combean. You can use swIMP if you are working on a POSIX-compatible UNIX platform. In particular, swIMP provides a Java-wrapper for the Open Solver Interface of the Coin-OR-project that allows access to numerous well-known solvers, like Cplex, XPRESS, GLPK or Clp.

Keywords: Combean, swIMP, Java, Combinatorial Optimization, Interfaces, Framework, Graph Theory, Linear Programming, LP, Integer Programming, IP, Operations Research, Open Source.

back to top



License

Combean is distributed under the GNU General Public License. The interfaces for combinatorial structures and optimization algorithms and some utility classes are also distributed binary form under a permissive license that allows you to redistribute it and to combine it with closed-source code. The purpose of this is to allow owners of commercial closed-source code to write wrappers based on the Combean interfaces.
back to top



Features

Interfaces for combinatorial structures and optimization algorithms

One main contribution of Combean is a set of interfaces for combinatorial data structures, like various kinds of graphs, and optimization algorithms, like shortest paths, flows or linear programming. The classes in Combean collaborate only through these interfaces such that the actual implementation can be easily exchanged.

The interfaces for linear programming are already quite mature, whereas the interfaces for graph theoretic problems are still under ongoing development and likely to change.

Wrappers to existing libraries

Currently, Combean works together with the following libraries (in brackets you find the version with which the current release of Combean has been tested and a short description of the license):

Convenient modelling of linear programs

Combean provides a framework for the transformation of problems in a specific application domain into linear programming models that can then be loaded into and solved by standard linear programming solvers. The Combean documentation contains a detailed example how to use this feature.

back to top



Environment

Acknowledgements

This product includes software developed by Vladimir R. Bossicard as well as other contributors (http://junit-addons.sourceforge.net/).
back to top



Download

Combean is available for download at the Sourceforge project page.

There are two variants of the Combean release:

see also the description of the licenses.

swIMP is in pre-alpha state. The code has been tested with a quite comprehensive automatic test suite and is supposed to run rather stable. The API may still be subject to heavy refactoring and major planned features (especially graph theoretic algorithms) are still missing. However, the part of the software that deals with LP models is already quite mature and you may consider using it already in the early stage of the Combean project. The most recent version is v0.1.

back to top



Installation

Building and installing Combean

The Combean jar-file is generated by executing ant build in the project root directory.

Combean automatically detects which packages that Combean provides wrappers for are installed (see the Features for a complete list). The command ant showfeatures show you which packages Combean has detected and for which the wrappers have been compiled and included in the jar-file.

After ant build has been executed, you find the jar-file in the dist-directory. It is ready for use. Make sure to include it in your CLASSPATH.

If some dependencies cannot be resolved during the build, please have a look at the paths defined in project.properties and adjust them as needed.

Running the automatic test suite

If you have all packages installed that the automatic test suite depends on (see the list of dependencies), you can verify the content of the jar-file by running the automatic test suite. This is done by executing ant testjar.

back to top



Documentation

For an overview of the API of the generated wrapper classes, please refer to the Javadoc.

Getting started

The following detailed descriptions of features of Combean are available:
back to top



Support

If you need support, please feel free to contact the project through the Sourceforge support tracker. We will do our best to answer in a timely manner.
back to top