From: Ian S. <ian...@st...> - 2003-11-25 17:51:02
|
The optimisers we use are actually hidden in the v3p/netlib directory. We only wrote the nice c++ wrappers. The vnl optimiser code calls the optimiser code in netlib once per iteration so it would be possible from a programming point of view to insert constraints right there. However it is very unlikely that such an attempt will lead to the constrained solution. Optimisation theory suggests that constrained optimisation is not, in general, solved by constraining an unconstrained optimiser. And writing constrained optimisers for general cost functions is very difficult. Some specific solutions: 1. You might be able to constrain amoeba without any hassles. amoeba is a pretty stupid, slow, (but remarkably successful) optimiser that can take a bit of battering. There is probably some discussion of this in the literature. 2. Your problem might be one for which an constrained optimiser already exists. e.g. linearly constraints and linear or quadratic costs. We almost certainly have code for these cases hanging around somewhere. The usual solution to your problems are 1: work the constraints into your cost function, heavily penalising any breach in the constraints. 2: Find a transfer function T :[your constrained space]->R^n and use f(T^-1(x)) as your const function instead of f. All the difficult stuff currently in VNL is either a wrapper around peer-reviewed code, or was based on peer-reviewed published papers and books. The peer-reviewers in this case are the maths and numerical computing community. Ian. > -----Original Message----- > From: zu...@zu... [mailto:zu...@zu...] > Sent: Tuesday, November 25, 2003 10:22 AM > To: vxl...@li... > Subject: [Vxl-users] VNL bounds-constrained optimization question > > > This may be a naive question. For the non-linear > VNL optimizers I'd like to add the option of having > bounds on the values they produce. Is this as > simple as adding arrays or vectors of boundary > max/min values that are used as limits for the > generation of next-iteration coefficients? If > so, the default values can be MAX_DOUBLE and > MIN_DOUBLE giving unconstrained optimization > by default. > > If it is that simple, how can I have the code I > write peer reviewed and added to CVS? > > James Phillips > http://zunzun.com > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us help > YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > Vxl-users mailing list > Vxl...@li... > https://lists.sourceforge.net/lists/listinfo/vxl-users > |