I think fine tuning the function might be in order. The function has just a single penalty for not meeting the constraints no matter how close it is to meeting them. A better approach is to have a penalty that depends on the amount by which all of the constraints are breached.
Patrick Burns [EMAIL PROTECTED] +44 (0)20 8525 0696 http://www.burns-stat.com (home of S Poetry and "A Guide for the Unwilling S User") Paul Smith wrote: >Dear All, > >I am trying to solve the following maximization problem, but I cannot >have rgenoud giving me a reliable solution. > >Any ideas? > >Thanks in advance, > >Paul > >---------------------------- >library(rgenoud) > >v <- 0.90 >O1 <- 10 >O2 <- 20 >O0 <- v*O1+(1-v)*O2 > >myfunc <- function(x) { > U0 <- x[1] > U1 <- x[2] > U2 <- x[3] > q0 <- x[4] > q1 <- x[5] > q2 <- x[6] > p <- x[7] > > if (U0 < 0) > return(-1e+200) > else if (U1 < 0) > return(-1e+200) > else if (U2 < 0) > return(-1e+200) > else if ((U0-(U1+(O1-O0)*q1)) < 0) > return(-1e+200) > else if ((U0-(U2+(O2-O0)*q2)) < 0) > return(-1e+200) > else if ((U1-(U0+(O0-O1)*q0)) < 0) > return(-1e+200) > else if ((U1-(U2+(O2-O1)*q2)) < 0) > return(-1e+200) > else if((U2-(U0+(O0-O2)*q0)) < 0) > return(-1e+200) > else if((U2-(U1+(O1-O2)*q1)) < 0) > return(-1e+200) > else if(p < 0) > return(-1e+200) > else if(p > 1) > return(-1e+200) > else if(q0 < 0) > return(-1e+200) > else if(q1 < 0) > return(-1e+200) > else if(q2 < 0) > return(-1e+200) > else > return(p*(sqrt(q0)-(O0*q0+U0))+(1-p)*(v*(sqrt(q1)-(O1*q1+U1))+(1-v)*(sqrt(q2)-(O2*q2+U2)))) > >} >genoud(myfunc,nvars=7,max=T,pop.size=6000,starting.values=runif(7),wait.generations=150,max.generations=300,boundary.enforcement=2) > >______________________________________________ >[email protected] mailing list >https://stat.ethz.ch/mailman/listinfo/r-help >PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >and provide commented, minimal, self-contained, reproducible code. > > > > ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
