[R] Fine tunning rgenoud

Paul Smith phhs80 at gmail.com
Tue Jul 3 22:10:19 CEST 2007


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)



More information about the R-help mailing list