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 . An online version can be downloaded at 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