sitemeter

    Home    About    Documentation    Install    Newsline    Links    Feedback    Appeal    Guestbook


free html hit
counter
since 2007/10/24

OpenOpt history

OpenOpt was created as optimization toolbox for MATLAB/Octave in June 2006. It had been written by phd student Dmitrey Kroshko, cybernetics institute, NAS Ukraine.
Our department has lots of optimization-related code, however, almost all our software is implemented using Fortran or C language, so RAD (rapid application development) is impossible, and OpenOpt was intended to be solution of the problem mentioned. See also: SciPy/SciKits vs Fortran, C languages from SciPy FAQ

2 first solvers were ralg and ShorEllipsoid, both were implementations of algorithms invented by Naum Z. Shor.


Then, for some reasons, OpenOpt for MATLAB/Octave had been rewritten to Python. Some of the reasons are:

1. MATLAB is costly, while Python and scipy are 100% free, even w/o copyleft
2. Object-oriented tools in MATLAB are very badly implemented, at least for now (v. 2007)
3. Pass-by-copy makes some things very difficult to be implemented.
4. MATLAB programming constructs are very inconvenient in comparison to Python, for example operator "+=" is absent in MATLAB yet.

As for Octave, according to a message from MATLAB mail list, "all those Octave, SciLab? etc are tentative representations of MATLAB, while the latter is tentative representation of anything except matrices".
Also, Octave lacks a good IDE, has copyleft restriction (license: GPL) (hence it cannot be used by anyone), and depends on Mathworks decisions (to remain MATLAB-compatible), so they can't implement their own features and ideas into language.


Acknowledgements

The OpenOpt project was sponsored by Google throught the GSoC program (Google Summer of Code). Most of code was written by GSoC student Dmitrey Kroshko (last-year PHD, Optimization Department, Cybernetics Institute, Ukrainian Science Academy, and the department staff suggestions were very useful) under mentoring of Alan G Isaac and Jarrod Milman. Special thanks to Nils Wagner and GenericOpt developer Matthieu Brutcher.