Levenberg Marquardt Optimization with minimum step
Page 1 of 1

Author:  M_Max [ Wed May 29, 2013 8:49 am ]
Post subject:  Levenberg Marquardt Optimization with minimum step

Hello everybody,

I have a function z = f(x,y) that I would like to minimize using Levenberg Marquardt optimization.

However, the variables x and y are integers.

Hence, the algorithm is stopped after few iterations because I convert the variables from double to integers when ALGLIB callback the function.

public static void  function1_fvec(double[] X, double[] fi, object obj)
    int x;
    int y;

     x = (int)X[0];
     y = (int)X[1];

    fi[0] = myOwnFunction(x,y); //x and y parameters are integers

f(1000,2000) = f(1000.1,2000.2) = f(1000.2,2000.1) = f(1000.2,2000.2) = ....

The algorithm stops because the function does not change anymore.

I know that there is a constraint for maximum step, but I didn't find one for minimum step.

How can I avoid a step less than 1 ?

Thank you very much for your help,

Kind regards.

Author:  Sergey.Bochkanov [ Wed May 29, 2013 9:39 am ]
Post subject:  Re: Levenberg Marquardt Optimization with minimum step

There is not easy and correct way of setting minimum step length for LM optimizer. Such modification is (a) very hard to implement, (b) will break convergence properties and stability of the optimizer.

If you want to solve integer optimization problem with LM, you should use something like genetic programming.

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group