Tuesday, June 28, 2005

EMANS 0.1 is out!

It's finally working correctly. After using the stand-alone lp_solve executable, it's solving Linear Problems correctly now.

The parser for the configuration files still needs some work tho. And something's got to be done with that 3-4 second delay (for setting a timestamp & random string to make a temporary file). There has to be a better approach than refresh - add timestamp - refresh - solve - [refresh while waiting] - save output to file - show output.

Anyone got any ideas?

Friday, June 17, 2005

CVXOPT: A Python Package for Convex Optimization

At last, i can breath a sigh of relief. Seeing this python package made me realize how easy this project is gonna be. It's simple. I'll just make EMANS-OR dependent on CVXOPT.

From the site:

CVXOPT release 0.4 is a preliminary release of a Python package for convex optimization. It includes the following:
  • Python classes for storing and manipulating dense and sparse matrices
  • an interface to most of the double-precision real and complex BLAS
  • an interface to the dense linear equation solvers and eigenvalue routines from LAPACK
  • interfaces to the sparse LU and Cholesky solvers from UMFPACK and LDL
  • routines for specifying linear programs and convex optimization problems with piecewise-linear objective and constraint functions
  • a linear programming solver written in Python and interfaces to the LP solvers in GLPK and MOSEK.
Future releases will offer a more comprehensive set of convex optimization solvers (written in Python or based on external solvers) and modeling tools to support them.

The distribution also includes examples of convex optimization routines written in Python: an implementation of Newton's method for analytic centering, a maximum-likelihood covariance selection problem, an example illustrating norm and penalty approximation using linear programming, and a simple FIR filter design demo.

In developing CVXOPT we have several goals in mind:

  • create a software environment that makes it straightforward to build applications that use convex optimization
  • provide an interactive tool that allows students in convex optimization courses to easily specify and solve convex optimization problems
  • facilitate implementation and 'rapid prototyping' of convex optimization algorithms.
The installation requires Python version 2.3 or higher and the following libraries (not included with the distribution): ATLAS or BLAS/LAPACK and UMFPACK.

CVXOPT is distributed under the GNU General Public License.

Friday, June 03, 2005

Summer of code

I have submitted EMANS & EMANS-OR for the Summer of Code thingie by google. I hope i get accepted.



TITLE:
EMANS (Extensible Mathematical Analyser for Numerical Solutions) & EMANS-OR

SYNOPSIS:
EMANS is a web-based mathematical software. It relies on other solvers -- which are the actual programs solving problems. EMANS will serve as a front-end to various mathematical softwares. The main objective is to give a user-friendly interface to solve Math problems.
EMANS-OR is a solver for EMANS that solves problems on Operations Research (linear/nonlinear/integer/dynamic programming problems, transportation/assignment problems, and multi-criteria decision making)

DETAILS:
EMANS, basically, has three parts. (1) The core, (2) the glue, and (3) the solvers. (3) will be a collection of programs that can solve math problems. The information about how these solvers get input and show output is saved in configuration files, which are then interpreted by (2) and to make it be understandable to (1). (1) is the one responsible to make an html form to be filled up by the user to input the question; and will be responsible to show the solution/answer in html. This project will mostly involve text manipulation.
EMANS-OR however will be a glue+solver for EMANS. I'm still deciding whether to use Math::LP::Solve from CPAN, pycoin (a Python library for COIN-OR from IBM), or i code my own solver from scratch.

BRIEF HISTORY:
This started out as a project to replace a program by Hamdy A. Taha called TORA (Tool for Operations Research). We needed to replace it because the university's has cut the budget, which forbade us to use expensive licensed software (unless paid with our own money). With that, all the Operating Systems (previously, Windows) in the MathLab was replaced with GNU/Linux.
Since i was the student in Operations Research most familiar in GNU/Linux, i volunteered to make that my paper. However, i have barely put any work in it til now.

Sunday, May 15, 2005

EMANS Backpackit

This is the page dedicated to the EMANS (Extensible Mathematical Analyser) Project. EMANS is a software designed to create a web-based interface for other softwares that solve math problems.
A sample EMANS implementation could be seen at http://emans.dnsalias.com/ and http://emans.blogspot.com/ is the web log for it. If you want to help, just comment anywhere in that blog.
I’m currently working on a general numerical analysis module, an OR (Operations Research) module, and an accounting module.

Thursday, May 12, 2005

COIN-OR with PyCOIN

I could also use COIN-OR with the PyCOIN Python API.
I’ve been studying how to use Python all day. Now, i’m downloading PyCOIN & all other stuff it needs, to install it later.

Friday, February 04, 2005

LP_Solve with Math::LP::Solve

Here, LP_SOLVE could be used with the Math::LP::Solve Perl Module.
I’ve already evaluated Math::LP::Solve and found it lacking. For one, it fails to solve >= and = constraints.

Monday, December 27, 2004

Version Control with Subversion

I've decided to let subversion to control the version of EMANS and its modules. I haven't tried anything like it, tho. Right now, i'm still figuring out where to start.