Vicky Landsman
2005-Mar-24 19:38 UTC
[R] How to stop the minimization when the condition does not hold
Dear experts! I have a minimization problem with non-linear constraint and Objective function(theta)=lambda*(Constr)^2-f(x,theta). Theta is a vector of parameters. I'd like to stop the optimization after the value of the constraint is less or equal some constant value, say d, and save the last computed value of the function. For this purpose, I thought to define the Objective function like this: if (Constraint>d) fun<- .... else stop but this does not work with error message: Error in f(x, ...) : Object "fun" not found I am using nlm for minimization. Thanks a lot for help and suggestions, Vicky Landsman. [[alternative HTML version deleted]]
Aleš Žiberna
2005-Mar-25 08:16 UTC
[R] How to stop the minimization when the condition does not hold
First you have to be more specific, what are actually the parameters of the function that you want to optiomize and what are actually constants. So you would need to specify your objective function "function(theta)=lambda*(Constr)^2-f(x,theta)" (which is not realy writen the R-way) as fun<-function(Constr,theta){lambda*(Constr)^2-f(x,theta)} However, since, if I understand correclty, you don't want Constr to be smaller or equal to d, you should somehow build this into your objective function, like: fun<-function(Constr,theta){lambda*(Constr)^2-f(x,theta)+ifelse(Constr<=d, Inf, 0)} I hope this helps, Ales Ziberna ----- Original Message ----- From: "Vicky Landsman" <msvika at mscc.huji.ac.il> To: <r-help at stat.math.ethz.ch> Sent: Thursday, March 24, 2005 8:38 PM Subject: [R] How to stop the minimization when the condition does not hold> Dear experts! > I have a minimization problem with non-linear constraint and Objective > function(theta)=lambda*(Constr)^2-f(x,theta). Theta is a vector of > parameters. > I'd like to stop the optimization after the value of the constraint is > less > or equal some constant value, say d, and save the last computed value of > the > function. > For this purpose, I thought to define the Objective function like this: > > if (Constraint>d) fun<- .... > else stop > > but this does not work with error message: > Error in f(x, ...) : Object "fun" not found > > I am using nlm for minimization. > Thanks a lot for help and suggestions, > Vicky Landsman. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > >