APLEpy: An Open Source Algebraic Programming Language extension for Python


APLEpy is a collection of Python modules that provides the functionality of an algebraic modeling and programming software such as
AMPL, GAMS, Xpress-Mosel, AIMMS to name a few. You can read here a recent review of the software landscape for such products. APLEpy does not only mimic its commercial counterparts, but it also brings two crucial improvements: (1) it crosses the gap between general purpose programming languages and domain specific algebraic modeling languages, (2) provides an easy to use foundation for building new features and extensions.

You can read this brief tutorial (that also comes with the distribution) to get a flavor of how to describe a mathematical programming model in Python/APLEpy, and this white paper that describes what the author have in mind for future development.

December 29, 2005

Version 0.2 is released. This version utilizes the COIN-Osi (Open Solver Interface) library to link to solvers. Please see the COIN-OR web site for a list of Osi supported solvers. The binary distribution of APLEpy includes the open-source/free solvers Cbc/Clp and Glpk, and comes ready to use the XpressMP solver.

On the development side, a switch to the Boost C++ libraries was made to facilitate the use of Osi libraries from within Python.

A summary of modeling support in APLEpy
Linear/Integer models Quadratic NonLinear Stochastic Programming Constraint Programming
Yes No No Some No

A summary of solver support in APLEpy: commercial solvers.

CPLEX XpressMP Mosek Osl
- + - -
open-source/free solvers
SoPlex Cbc/Clp DyLP Glpk Symphony Vol
- + - + - -
(- requires recompiling, + included in v0.2)

Please note that the existence of a particular solver support does not necessarily mean that all the features of that solver are supported.

You can downloaded  version 0.2 here.

October 07, 2005

The first release, version 0.1, is made available on October 07, 2005.

The APLEpy package is available in both source code and in binary form.  The source package consists of pure Python modules (Python code) and C extension modules (C source code). Therefore, it can potentially be compiled and installed on any platform where Python is ported and a C compiler is available. A Linux binary package for i366 architecture is provided.

Python version 2.4 or later is required for APLEpy.

In version 0.1, only the XpressMP solver is supported. The vendor, Dash Optimization, currently offers an academic program, the members of which receive free licenses for research and teaching purposes. Support for other solvers are planned. This version supports Linear models and provides basic extensions for describing Stochastic Programming models.

Project files can be downloaded  here.


APLEpy is currently developed and maintained by Suleyman Karabuk of the University of Oklahoma.

SourceForge.net Logo