July 14th, 2015, 11:19 am
QuoteOriginally posted by: MS5I'm reviving this thread only because I have an immediate need to implement LM with penalty functions and if my planned approach is a bad idea in practice, I'd be interested in hearing from those who have tried or know of better alternatives. Since one specifies the vector function whose square is the objective function, augment the dimension of this vector function by the number of penalty functions to hold the resulting scalar values of each penalty. The usual LM routines (e.g. from minpack or C++-izations of them) should then work as usual. The only concern/caveat at this moment I've thought of is the performance cost this may entail. One can always change the definition of the vector function so that it holds one non-trivial element--namely, the square root of the full objective function. However, convergence likely suffers and worsens with the size of the problem.Since no one has responded, here's my 2 cents;I fear LevMar with penalty might be slow (we have to solve a sequence of LevMar by making the parameter smaller), what about new independent variables and geting a) box consttaint (DEvol) of b) unconstrained (LevMar)?example in 2d0 <= x10 <= x2 <= x1/a (a > 0)0 <= x1 + a x2 <= 6// (a)X1 = x1 + a x2X2 = x2 - x1/a0 <= X1 <= 6-2 a <= X2 <= 0check(!! solve fore x1, x2)// (b) y1, y2 spaceX1 = 6 sin^2 y1X2 = -2 a + 2a sin^2 y2Now y1 1n y2 live in unconstrained space.That idea.I am guessing that constraints would not be too dissimilar to[$]\theta \geq 0 \\|\rho| \leq 1 \\\eta \geq 0 \\0 < \gamma < 1 \\\eta (1 + |\rho|) \leq 2[$]
Last edited by
Cuchulainn on July 13th, 2015, 10:00 pm, edited 1 time in total.