3.75

3.8 | 4 ratings Rate this file 37 downloads (last 30 days) File Size: 229.7 KB File ID: #13115

OpenOpt

by Dmitrey Kroshko

 

25 Nov 2006 (Updated 21 Jul 2009)

Code covered by the BSD License  

nonSmoothSolve (similar to fsolve), non-smooth & noisy local + some global solvers; works in Octave

Download Now | Watch this File

File Information
Description

OpenOpt is a free MATLAB Toolbox, which is also run in Octave

Particularly, it contains non-smooth solvers
ralg (medium-scale, for nVars=1...1000)
ShorEllipsoid (small-scale, for nVars=1...10)
(both can handle lb, ub, Ax<=b, Aeq*x=beq, c(x)<=0, h(x)=0; providing gradients/sub gradients df, dc, dh is appreciated)

nonSmoothSolve - fsolve analog for nonsmooth & noisy funcs (try benchmarking in nonSmoothSolveEx.m).

Graphics output is also enabled (for Octave users still there are some problems).

2 lines are enough to solve your problem -
prob = ooAssign (ObjFun, x0, <optional params>)
r = ooRun (prob, solver)
Example of output structure r:
r=
xf: [10x1 double] % x final
             ff: -0.0719 % fval final
            alg: 'Kennedy J., Eberhart R.C. (1995): Particle swarm optimization. In: Proc.'
         author: 'Alexandros Leontitsis, me00743-at-cc.uoi.gr, University of Ioannina, Greece'
(+some other fields)

Regrads, Dmitrey. 15.02.2007,
Cherkassy, Ukraine.

P.S. You are welcome to our homepage http://openopt.org, where we have provided some more free numerical optimization software (however, non-MATLAB language).

MATLAB release MATLAB 7.3 (R2006b)
Other requirements for Octave users - Octave v 2.9.9+ or preferable 2.9.10
Zip File Content  
Other Files
license.txt,
OpenOpt/ChangeLog.txt,
OpenOpt/doc/authors.doc,
OpenOpt/doc/OOUserGUIDE.doc,
OpenOpt/doc/OpenOpt.doc,
OpenOpt/doc/solvers.xls,
OpenOpt/Examples/example2.jpg,
OpenOpt/Examples/Hilb.jpg,
OpenOpt/Examples/Lemarechal.jpg,
OpenOpt/Examples/nonSmoothSolveEx.m,
OpenOpt/Examples/ooexample.m,
OpenOpt/Examples/ooexample1.m,
OpenOpt/Examples/ooexample2.m,
OpenOpt/Examples/ooexample3.m,
OpenOpt/Examples/ooexample4.m,
OpenOpt/Examples/ooexample5.m,
OpenOpt/Examples/template.m,
OpenOpt/Examples/Thumbs.db,
OpenOpt/graphics/oodraw.m,
OpenOpt/install.txt,
OpenOpt/Kernel/assignScript.m,
OpenOpt/Kernel/innerIterFCN.m,
OpenOpt/Kernel/log_funcs/errorTextByNum.m,
OpenOpt/Kernel/log_funcs/ooassert.m,
OpenOpt/Kernel/log_funcs/ooerr.m,
OpenOpt/Kernel/log_funcs/oohint.m,
OpenOpt/Kernel/log_funcs/ooinfo.m,
OpenOpt/Kernel/log_funcs/oowarn.m,
OpenOpt/Kernel/misc/ExtractRoutineParamsFromProb.m,
OpenOpt/Kernel/misc/isUC.m,
OpenOpt/Kernel/misc/ooGetViolations.m,
OpenOpt/Kernel/misc/ooPWarn.m,
OpenOpt/Kernel/misc/ooRandInfo.m,
OpenOpt/Kernel/misc/strtrim2.m,
OpenOpt/Kernel/msgstop.m,
OpenOpt/Kernel/nonSmoothAssign.m,
OpenOpt/Kernel/objFunRelated/oo_c.m,
OpenOpt/Kernel/objFunRelated/oo_d2f.m,
OpenOpt/Kernel/objFunRelated/oo_dc.m,
OpenOpt/Kernel/objFunRelated/oo_df.m,
OpenOpt/Kernel/objFunRelated/oo_dh.m,
OpenOpt/Kernel/objFunRelated/oo_f.m,
OpenOpt/Kernel/objFunRelated/oo_h.m,
OpenOpt/Kernel/ooAssign.m,
OpenOpt/Kernel/ooCheck.m,
OpenOpt/Kernel/ooCheckGradient.m,
OpenOpt/Kernel/ooCheckSolution.m,
OpenOpt/Kernel/ooInit.m,
OpenOpt/Kernel/ooIter.m,
OpenOpt/Kernel/oor.m,
OpenOpt/Kernel/ooRun.m,
OpenOpt/Kernel/ooRunProbSolver.m,
OpenOpt/Kernel/oover.m,
OpenOpt/Kernel/stopcase.m,
OpenOpt/Octave.README.txt,
OpenOpt/solvers.txt,
OpenOpt/solvers/anneal.m,
OpenOpt/solvers/buscarnd.m,
OpenOpt/solvers/GAconstrain.m,
OpenOpt/solvers/hPSO.m,
OpenOpt/solvers/quazi/nonSmoothSolve.m,
OpenOpt/solvers/quazi/ominsearch.m,
OpenOpt/solvers/quazi/ooSolveIterFcn.m,
OpenOpt/solvers/quazi/parseMATLABOptimToolboxOptions.m,
OpenOpt/solvers/UkrOpt/ralg.m,
OpenOpt/solvers/UkrOpt/ShorEllipsoid.m,
OpenOpt/test/dSimpleFun.m,
OpenOpt/test/fsolve_fun1.m,
OpenOpt/test/fsolvefun.m,
OpenOpt/test/GHilbert.m,
OpenOpt/test/GLemarechal.m,
OpenOpt/test/GMinusHilbert.m,
OpenOpt/test/Gpowers12.m,
OpenOpt/test/gpowers2.m,
OpenOpt/test/GRosenbrockBanana.m,
OpenOpt/test/HilbC.m,
OpenOpt/test/Hilbert.m,
OpenOpt/test/icosaedr.m,
OpenOpt/test/Lemarechal.m,
OpenOpt/test/LemC.m,
OpenOpt/test/LemDC.m,
OpenOpt/test/LemDH.m,
OpenOpt/test/LemH.m,
OpenOpt/test/MinusHilbert.m,
OpenOpt/test/MinusLemarechal.m,
OpenOpt/test/my_ceq.m,
OpenOpt/test/powers12.m,
OpenOpt/test/rb_c.m,
OpenOpt/test/rb_dc.m,
OpenOpt/test/rb_dh.m,
OpenOpt/test/rb_h.m,
OpenOpt/test/RosenbrockBanana.m,
OpenOpt/test/simpleFun.m,
OpenOpt/test/solve1.m,
OpenOpt/test/solve2.m,
OpenOpt/wrappers/Lin2NonLin/lin2nonlin.m,
OpenOpt/wrappers/Lin2NonLin/lin2nonlinC.m,
OpenOpt/wrappers/Lin2NonLin/lin2nonlinDC.m,
OpenOpt/wrappers/Lin2NonLin/lin2nonlinDH.m,
OpenOpt/wrappers/Lin2NonLin/lin2nonlinH.m,
OpenOpt/wrappers/nlc/cnl_c.m,
OpenOpt/wrappers/nlc/cnl_d2c.m,
OpenOpt/wrappers/nlc/cnl_d2f.m,
OpenOpt/wrappers/nlc/cnl_d2h.m,
OpenOpt/wrappers/nlc/cnl_dc.m,
OpenOpt/wrappers/nlc/cnl_df.m,
OpenOpt/wrappers/nlc/cnl_dh.m,
OpenOpt/wrappers/nlc/cnl_f.m,
OpenOpt/wrappers/nlc/cnl_h.m,
OpenOpt/wrappers/nlc/nonlinconstr.m,
OpenOpt/wrappers/nlc/nonLinConstrIterFcn.m,
OpenOpt/wrappers/nlc/updateLM.m
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (10)
28 Nov 2006 Dmitrey openopt@ukr.net

If any bugs will be obtained, contact via icq 275976670

30 Nov 2006 Dmitrey Kroshko

According to Mathworks rules, we can't update OpenOpt more than once per 2 monthes here. CVS/subversion is also under development.
So currently you can check for latest versions from
http://www.box.net/public/6bsuq765t4
now (11/30/06) v 0.16 is available
bugfixes:
+/- sign in ooAssign;
bugfix in the end of ooexample.m
new param prob.fEnough is available (solvers will stop if fEnough is reached)
prob.assert() implemented

30 Jan 2007 Nas Maleki

OpenOpt is a fantastic Toolbox. Thanks Dmitrey for sharing it.

16 Feb 2007 Dmitrey openopt@ukr.net

15.02.2007
OpenOpt 0.35 is reliesed (download- from here, now http://www.box.net/public/6bsuq765t4 will contain only pathces & previous OpenOpt versions. If you'll obtain a error "you must pass (size prob.n x 1) vector x to the iterfcn" please download and replace ooIter.m from the URL).

Changes:
new functions: nonSmoothSolve() & ominsearch(), with same syntax as MATLAB fsolve & fminsearch;

now solver ralg() (non-smooth optimizer, fminsearch() analog, can handle ill-conditioned problems) can handle all types of linear & non-linear constraints:

lb<=x<=ub, A*x<=b, Aeq*x=beq, c(x)<=0, h(x)=0
(and ShorEllipsoid() too)

user-provided gradients/subgradients to constraints prob.dc(), prob.dh() also can be used in ralg;
prob.parallel.f=1 turnes on parallel calculation of objFun (sub)gradient via dfeval() (MDCE, jobmanagers, workers must be properly started). Octave users must provide func with similar to dfeval syntax in prob.parallel.fun.
prob.parallel.c & prob.parallel.h will be (I hope) in future OpenOpt version.

+LOTS of minor changes;

graphics:

-new marker (right-pointing triangle), reporting that MaxTime, MaxCPUTime, MaxIter, MaxFunEvals or etc is exeeded;

-graphic output speed is increased.
(some problems in Octave graphics still remain, but it's because of temporary Octave incompabilities & problems with connecting to gnuplot)

29 May 2007 Paul Strefling

I have been using OpenOpt to solve both smooth and non smooth optimization problems with excellent success. It has outperformed all commertial solvers that I have tried, in both convergence time and optimal solution. It's perfromace is second to none, thank you Dmitery.

08 Aug 2007 Luke Rosenberg

doesn't work at all - everything i tried returned errors! Not enough documentation to work out what was going on. nonSmoothSolve() does not work exactly the same as fsolve.

22 Nov 2007 Emmanuel FARHI

Works like a charm. However, I have a few remarks to improve the package. All suggested methods are available on Matlab Central:
1-a simplex method equivalent to fminsearch would be appreciated, suggesting the State Machine Simplex Minimizer.
2-a Levenberg Marquardt method would also be appreciated, e.g. LMFsolve.
3- a Genetic Algorithm method without constrains would also be nice, especially as GA is provided with the GAconstrain method. The gaevolv could also be good.
4- the powell method seems quite efficient and could be in OpenOpt
5- There are other swam optimizers, such as 'swarm' and 'PSO'. Are they slower/less efficient that the hPSO ?
Finally, thanks for this package. Probably a better documentation would be nice, e.g. regarding the many options in ooAssign, which depend on packages.

06 Dec 2007 Dmitrey Kroshko

hi all,
I should inform you: some months ago OpenOpt had migrated to Python programming language, and no support and further development for MATLAB/Octave version will be provided.
Thanks all for your comments.
Regards, D.
http://scipy.org/scipy/scikits/wiki/OpenOpt
http://openopt.blogspot.com/

04 Jul 2008 E W

Is there further documentation available?

16 Mar 2009 Dmitrey Kroshko

No, documentation is available for Python version only,
http://openopt.org/Doc

Please login to add a comment or rating.
Updates

bugfix (`Feb2007' undefined near line 4 column 5) while using graphics on

16 Feb 2007

new funcs nonSmoothSolve & ominsearch
ralg (non-smooth,fminsearch analog) can handle: lb<=x<=ub, A*x<=b, Aeq*x=beq, c(x)<=0, h(x)=0
+user (sub)gradients can be used
graphic output speed is increased
+LOTS of minor changes

22 Feb 2007

bugfix (`Feb2007' undefined near line 4 column 5) while using graphics on

18 Jul 2009

change license from GPL to BSD

21 Jul 2009

license changed to BSD

Tag Activity for this File
Tag Applied By Date/Time
optimization Dmitrey Kroshko 22 Oct 2008 08:50:14
local Dmitrey Kroshko 22 Oct 2008 08:50:14
global Dmitrey Kroshko 22 Oct 2008 08:50:14
solver Dmitrey Kroshko 22 Oct 2008 08:50:14
noisy Dmitrey Kroshko 22 Oct 2008 08:50:14
gpl Dmitrey Kroshko 22 Oct 2008 08:50:14
nonsmooth Dmitrey Kroshko 22 Oct 2008 08:50:14
octave Dmitrey Kroshko 22 Oct 2008 08:50:14
optimization Patrick 17 Dec 2009 23:29:04
 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com