APLEpy: An
Open Source
Algebraic Programming Language extension for Python
Purpose
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.
open-source/free solvers
(- 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.
People
APLEpy is currently developed and maintained by Suleyman
Karabuk of
the University of Oklahoma.