Beta release for CMPL v.2 available

The CMPL team is pleased to announce the first beta version of CMPL 2.

CMPL has been (almost) completely redeveloped and comes with a lot of new functionalities. Examples are improved syntax, logical constraints, native support for SOS, the opportunity for users to write their own functions in CMPL and much more. Furthermore, CMPL has been extended with a new interactive interface to Excel. A user can read sets and parameters into the cmpl model and write results directly into an open excel file. This feature is availbale on Windows and macOS. In addition, pyCmpl, jCmpl and CmplServer have been revised and extended. For example, pyCmpl is now fully ported to Python 3. Python2 is no longer supported.

CMPL2 Binaries, Examples and Manual

The executable files for Windows, macOs and Linux, examples and the manual can be found under the following link: Binaries, Examples, Manual

The binaries will be continuously updated with bug fixes until the beta phase ends.

It would be great if you could test this version and report any errors. Please use the CMPL mailing list or report a issue at Github.

CMPL2 installation

Under Linux and Windows, installation is not required after unpacking the ZIP or tar.gz file. The CMPL package works out of the box in any folder. On macOS, a user must double-click the downloaded DMG file in the Finder. This disc image file contains a folder Cmpl2, which has to be copied into the folder Applications via drag-and-drop in the Finder. Then the cmplSetup script must be executed by double-clicking on the icon and a message window appears with "Cmpl setup has finished".

CMPL2 Source code

The source code is available on Github:

CMPL2
Coliop
pyCmpl
jCmpl


CMPL

CMPL (<Coliop|Coin> Mathematical Programming Language) is a mathematical programming language and a system for mathematical programming and optimisation of linear optimisation problems.

The CMPL syntax is similar in formulation to the original mathematical model but also includes syntactic elements from modern programming languages. CMPL is intended to combine the clarity of mathematical models with the flexibility of programming languages.

CMPL executes CBC (default), GLPK, SCIP, Gurobi and CPLEX directly to solve the generated model instance. Because it is also possible to transform the mathematical problem into MPS and Free-MPS files, alternative solvers can be used.

CMPL is an open source project licensed under GPLv3. It is written in C++ and is available for most of the relevant operating systems (Windows, macOS, Linux).

The CMPL distribution contains Coliop which is an IDE (Integrated Development Environment) for CMPL. Coliop is an open source project licensed under GPLv3. It is written in C++ and is an integral part of the CMPL distribution.

The CMPL package also contains pyCMPL, jCMPL and CMPLServer.

pyCMPL is the CMPL application programming interface (API) for Python and an interactive shell and jCMPL is CMPL's Java API. The main idea of this APIs is to define sets and parameters within the user application, to start and control the solving process and to read the solution(s) into the application if the problem is feasible. All variables, objective functions and constraints are defined in CMPL. These functionalities can be used with a local CMPL installation or a CMPLServer.

CMPLServer is an XML-RPC-based web service for distributed and grid optimisation that can be used with CMPL, pyCMPL and jCMPL. It is reasonable to solve large models remotely on the CMPLServer that is installed on a high performance system. CMPL provides four XML-based file formats for the communication between a CMPLServer and its clients. (CmplInstance, CmplSolutions, CmplMessages, CmplInfo).

pyCMPL, jCMPL and CMPLServer are licensed under LGPLv3.

CMPL, Coliop, pyCMPL, jCMPL and CMPLServer are COIN-OR projects initiated by the Technical University of Applied Sciences Wildau and the Institute for Operations Research and Business Management at the Martin Luther University Halle-Wittenberg.