[R] Fine tunning rgenoud
Ravi Varadhan
rvaradhan at jhmi.edu
Wed Jul 4 01:02:53 CEST 2007
Paul,
It should be easy enough to check that your solution is valid (i.e. a local
minimum): first, check to see if the solution satisfies all the
constraints; secondly, check to see if it is an interior point (i.e. none of
the constraints become equality); and finally, if the solution is an
interior point, check to see whether the gradient there is close to zero.
Note that if the solution is one of the vertices of the polyhedron, then the
gradient may not be zero.
Ravi.
----------------------------------------------------------------------------
-------
Ravi Varadhan, Ph.D.
Assistant Professor, The Center on Aging and Health
Division of Geriatric Medicine and Gerontology
Johns Hopkins University
Ph: (410) 502-2619
Fax: (410) 614-9625
Email: rvaradhan at jhmi.edu
Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html
----------------------------------------------------------------------------
--------
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Paul Smith
Sent: Tuesday, July 03, 2007 5:10 PM
To: R-help
Subject: Re: [R] Fine tunning rgenoud
On 7/3/07, Ravi Varadhan <rvaradhan at jhmi.edu> wrote:
> You had indicated in your previous email that you are having trouble
finding
> a feasible starting value for constrOptim(). So, you basically need to
> solve a system of linear inequalities to obtain a starting point. Have
you
> considered using linear programming? Either simplex() in the "boot"
package
> or solveLP() in "linprog" would work. It seems to me that you could use
any
> linear objective function in solveLP to obtain a feasible starting point.
> This is not the most efficient solution, but it might be worth a try.
>
> I am aware of other methods for generating n-tuples that satisfy linear
> inequality constraints, but AFAIK those are not available in R.
Thanks, Ravi. I had already conceived the solution that you suggest,
actually using "lpSolve". I am able to get a solution for my problem
with constrOptim, but I am not enough confident that the solution is
right. That is why I am trying to get a solution with rgenoud, but
unsuccessfully until now.
Paul
> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Paul Smith
> Sent: Tuesday, July 03, 2007 4:10 PM
> To: R-help
> Subject: [R] Fine tunning rgenoud
>
> 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.gene
> rations=150,max.generations=300,boundary.enforcement=2)
>
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
>
______________________________________________
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
and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list