sitemeter

    Home    About    Documentation    Install    Newsline    Links    Feedback    Appeal    Guestbook

html countersince 2007/10/24

OpenOpt TODO list

The page is obsolete, we have moved to openopt.org

TaskImportanceDifficultyDetailsStatus
Some openopt code clean up1010for efficient further OO development code clean up is required, especially for files runProbSolver.py, Residuals.py, objFunRelated.py (latter should be modified before dependency patterns implementation). More object-oriented code and attributes should be added instead of the lines like "if p.probType in [LP, QP, ...]" Some % are done
Fix nssolve graphics output for constrained problems22it's better to do after some openopt code clean up, especially in ooGraphics.pyDone
Unified text output for all NLP solvers (that should be stored in single py-file), including those w/o native callback function55 Done
implement handling of maximization problems + correct graphic & text output for the ones44 Not ready for some classes yet (ready for NLP, NSP)
Create some converters like QP -> NLP, LLSP -> QP104*(number of the converters)I intend to do something like p = QP(...), r=p.solve('nlp:ralg'), so converter qp2nlp will translate p to NLP and use ralg solver. Of course specialized solvers usually show much better results but they can fail to be compiled/installed and/or currently absent in OO at allDone
Create DFP class (Data Fit), with syntax similar to MATLAB's lsqcurvefit (+constraints), provide solver(s)8-97-8For UC problems converter to MINPAC's leastsq could be used, for constrained - converter dfp2nlp. DFP could be very convenient (vs LSP) for translating MATLAB code with lsqcurvefit or nonlinfitrequires converter dfp2nlp implementation
Write or connect NLSP solver with blockwise decomposition4?
Add scaling to lpSolve11 Done
Provide {OO} <-> {ALGENCAN v.2.0} bridge10?(4-5)Done
Provide integer problems handling by GLP solver galileo7-82-3 Done
Create OO web doc page entry with description of graphic arguments22color, show, etc
Create OO web doc page entry with description of NLP parameters22maxTime, maxCPUTime, maxIter, contol etc
Make available at least one constrained NLP solver with 2nd derivatives10?Most inconvenient issue is lots of sparse matrix formats in Python, incompatible with each other: PySparse, CVXOPT (is required in CVXOPT nlp solver), scipy.sparse, simple list of [i,j,val] (ALGENCAN style), so it requires lots of translatrs from each one to another one. Maybe, it's better to wait till numpy will have native sparse matrices
Connect bvls.f to scipy?very simple for those who are very skilled in fortran & f2py I want to implement callback function (for using native OO stop criteria like maxTime, maxCPUTime, text & graphic output), but it requires more advanced knowledge of f2py
Implement LLAVP class (linear least absolute value problem), connect solver(s)4-54-5toms/615 could be usedDone (converter llavp2nsp is temporary solution)
Connect IPOPT10 ? most famous free NLP solver from coin-or project, license: CPLDone (Linux-only)
Implement dependency patterns108-9main problems are avoiding slow Python loops and minimizing memory consumption via sparse matrices or somehow elseDone via oofun, see /examples/oofun/set_deps.py
Add scaling87-8 Done, see OO Doc page or examples/badlyScaled.py
Connect a GLP (global) solver8?scipy.optimize.anneal doesn't work correctly; I had tried to rewrite this and this MATLAB fileexchange solvers to Python (latter is especially good because it is vectorized) but it still don't work properly"galileo" solver (license: GPL) has been connected
Add more GLP solvers?? currently single GLP galileo solver, AFAIK w/o efficient vectorization and loops avoidingpswarm has been connected
Connect CLP85-6?another free solver from coin-or for LP, license: CPL; the connection is obsolete NumArray-based
Connect constrained LLSP solver9-105-6the one would be a good candidatebvls connected
Connect constrained NLLSP solver8??converter to NLP has been written
Connect QP solver w/o copyleft8??I have tried to connect qld but is yields strange (and seems incorrect) results
Enhance ralg solution precision97-9current implementation will hardly give solution with better precision than deltaX ~1e-6, while its possible (like in ralg Fortran version) to achieve deltaX ~1e-20...1e-30Some enhancements have been done, some more is intended to be implemented in future
Implement ralg-4 instead of ralg-57-87-8See chapter 2 from "Other ralg features" here
Implement SDP class, connect solver(s)9-10?? CVXOPT native and DSDP solvers have been connected
Implement MINLP class (mixed-integer NLP), connect solver(s)5-7?? mb something like "branch and bound" would be useful; mb translating of fminconset (MATLAB-written routine) + OO NLP solver(s)?
Implement MMP class (mini-max), connect solver(s)5-7?? Done. Some ralg-based code is temporary solution
Possibility to obtain 1st derivatives df, dc, dh via parallel calculations10?mb something from here could be useful
fix iterValues issue with converters4 4
connect Soplex5 8-9 LP/MILP solver, free for academic usage, one of most powerful
connect NEWUOA7-8 8-9 one of most powerful NLP solvers, BSD license (or free at all?)
position to add your own task

OOFun TODO

TaskImportanceDifficultyDetailsStatus
Implement oovar (openopt variable) 10 7-8 Done
Possibility for named inputs-outputs (via Python list or class) 10 7-8 currently users should each time code/decode variables from vector(s) (or list(s), tuple(s))
Possibility to have separate diffInt for each oofun input 3-4 3-4 currently each oofun has single self.diffInt (default = 1.5e-8) Done
Automatic oofun derivatives check 10 4-5 something similar to p.checkdf, p.checkdc, p.checkdh should be done (currently they are unsuitable for prob instance with oofuns) Done
Implement fixed variables handling 10 4-5 Done
Force linear constraints to go A,Aeq instead of c, h 10 4-5 Currently only lb-ub go to lb-ub, other linear constraints go to c, h. oolin on oovars should go A, Aeq, preferably recursively

See also

  • OpenOpt Foreword (brief introduction to numerical optimization problems and related software)
  • Why OpenOpt? (is one of best choices for users) >>>
  • Some reasons to connect your solvers to OpenOpt (Info for optimization software owners/developers) >>>