Reply to "Optimization with constraint" on March 14, 2008
One can get an accurate solutons applying the "Differential Evolution" algorithm
as implemented in the DEoptim package:
f2 <- function(x){
if (x[1] + x[2] < 1 || x[1] + x[2] > 1) {
r <- Inf
} else {
r <- x[1]^2 + x[2]^2
}
return(r)
}
lower <- c(0, 0)
upper <- c(1, 1)
DEoptim(f2, lower, upper, control=list(refresh=200))$bestmem
iteration: 200 best member: 0.5 0.5 best value: 0.5
This approach assumes nothing about the gradient, hessian or whatever. And the
equality is split into two inequalities assuming no relaxation or penalty.
Andreas Klein <klein82517 <at> yahoo.de> wrote:
Hello. I have some problems, when I try to model an optimization problem with some constraints. The original problem cannot be solved analytically, so I have to use routines like "Simulated Annealing" or "Sequential Quadric Programming". But to see how all this works in R, I would like to start with some simple problem to get to know the basics: The Problem: min f(x1,x2)= (x1)^2 + (x2)^2 s.t. x1 + x2 = 1 The analytical solution: x1 = 0.5 x2 = 0.5 Does someone have some suggestions how to model it in R with the given functions optim or constrOptim with respect to the routines "SANN" or "SQP" to obtain the analytical solutions numerically? Again, the simple example should only show me the basic working of the complex functions in R. Hope you can help me. With regards Andreas.