I like your first suggested interpretation - bounds are a known region within which the minimum lies (otherwise IMO they belong as constraints). The Matlab approach of clipping solutions to the bounds sounds pragmatic. Did you want to have a go at implementing that in the addon?
On Thu, Oct 17, 2013 at 2:35 AM, Thomas Costigliola <[email protected]>wrote: > Thanks Ric. Using a constraint function worked, but with noticeable > slowdown. > > I was looking at the page describing the algorithm that was linked in the > description of the add on. Without trying to get into too much detail and > unless I am misunderstanding it, it seems like if you have an existing > solution on the boundary that gets selected as the base vector then adding, > an essentially random, vector to it could cause it to go outside the > boundary. If a global minimum lies outside the given bounds then it can get > brought into the population. > > Indeed this very simple example will show this: > myf=:*: > deoptim 'myf';_10 ,: _5 > > I tried to look at some of the other code to see how it was handled. It > looked like the C++ code did not check boundary conditions for the new > candidates but the Matlab code clipped the new candidates to the bounds. > > Perhaps it is a matter of interpretation. Are the bounds a known region for > which the minimum lies (hence values outside should have worse utility) or > part of the definition of the feasible set of solutions? > > > > On Thu, Oct 10, 2013 at 4:53 PM, Ric Sherlock <[email protected]> wrote: > > > No I don't think so. My vague memory is that because the generation of > new > > solutions is essentially done by generating differences between existing > > legal solutions, the phenomena you describe should be unlikely. > > A workaround (that wouldn't involve modifying the addon) would be to > build > > bounds checking into your constraint function. > > > > Alternatively if you felt so inclined you could look at adding similar > > bounds checking to the main DE loop as occurs in the initial population > > generation. If the performance if fine then we could update the addon. > > > > > > > > > > On Fri, Oct 11, 2013 at 7:37 AM, Thomas Costigliola <[email protected] > > >wrote: > > > > > When using deoptim I am getting solutions outside of the bounds I am > > > providing. > > > > > > From looking at the code it looks like new populations are generated > > within > > > the bounds but the evolution step doesn't ensure the boundary > conditions. > > > Is that the intended behavior? > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
