# Re: [ROOT] fixed step in fit

From: Edmond Offermann (edmondoffermann@yahoo.com)
Date: Tue Nov 30 2004 - 16:47:40 MET

```Hi Vitor,

Is it possible yes and no :

I assume that you have a mixed problem: some variables have to be
integer,
some not . In this case, I would optimize your problem with Minuit and
then
round the necessary variables to integer values . Next, check that your
objective
function is indeed at its minimum by calculating it for the integer
variables
changed by +/- step size .

However, your optimization problem is part of a special class of
problems
called Integer optimization . Some pointers to this topic:

-
http://www.caam.rice.edu/~timredl/caam376/LectureNotes/Lecture06/sld001.htm
- chapter 22 , in particular 22.5 , in Linear Programming by VanderBei
.
http://www.princeton.edu/~rvdb/LPbook/online.html

Of course a very famous example is the "traveling sales man" .

In ROOT we recently introduced a new library for "quadratic
programming",
see for instance tutorials/portfolio.C . As the name suggests it can
handle
quadratic objective functions with parameter constraints .

Chapter 22 of Robert's book explains how to use linear/quadratic prog
to solve an integer optimization problem using a branch-and-bound
technique .

Eddy

--- Vitor de Souza <vitor@astro.iag.usp.br> wrote:

> Hi Eddy,
> I agree that a good minimizing algorithm change its step size.
> However, because of physical constraints a given parameter may not be
>
> allowed to assumed all values within a limit.
> Suppose you want to fit a parameter which for physical reasons can
> only
> assume integer values. In this case, one would like to  fix the step
> size to a integer value.
>  In my case I would like to have parameter 1 of the fit only assuming
>
> mutiples of 100 in the interval between 500 and 1000.
> Is that possible ?
> Thanks,
> Vitor
>
> Edmond Offermann wrote:
>
> >Hi Vitor,
> >
> >I wonder why you want to fix the step size of the parameter search ?
> >An intelligent minimizing algorithm will change its step size !
> >
> >Eddy
> >
> >--- Vitor de Souza <vitor@astro.iag.usp.br> wrote:
> >
> >
> >
> >>Dear all,
> >>I would like to fix the step size of a parameter in a fit.
> >>I am using the code below:
> >>
> >>static double vstart[npar]; // inital point
> >>static double step[npar];   // step size
> >>TMinuit * theMinuit = new TMinuit(npar); // 3 parameter fit
> >>step[0]=10.0;
> >>step[1]=100.0;
> >>step[2]=1.0;
> >>theMinuit->mnparm(0,"n",vstart[0],step[0],0,0,ierflag);
> >>theMinuit->mnparm(1,"x",vstart[1],step[1],500,1000,ierflag);
> >>theMinuit->mnparm(2,"x0",vstart[2],step[2],0,0,ierflag);
> >>theMinuit->mnexcm("SET ERR", arglist,1,ierflag);
> >>double arglist[npar];
> >>int ierflag =0;
> >>arglist[0] = 1500;
> >>arglist[1] = 1.;
> >>theMinuit->mnexcm("MIGRAD", arglist , 2, ierflag);
> >>
> >>As far as I understood from the manual, the values set as step[] in
> >>the
> >>command  theMinuit->mnparm( ) is the size of only the first step in
> >>the
> >>fit procedure.
> >>Is there a way to fix the step size for the hole fit procedure ?
> >>Thank you,
> >>Vitor
> >>
> >>
> >>
> >>
> >
> >
> >
>
>
```

This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET