[R] Optim with two constraints

From: Jens Hainmueller <jhainm_at_fas.harvard.edu>
Date: Thu 13 Oct 2005 - 11:52:30 EST


Hi R-list,

I am new to optimization in R and would appreciate help on the following question. I would like to minimize the following function using two constraints:

######
fn <- function(par,H,F){

      
     fval <- 0.5 * t(par) %*% H %*% par + F%*% par
     fval  
  

  }

# matrix H is (n by k)
# matrix F is (n by 1)
# par is a (n by 1) set of weights

# I need two constraints:
# 1. each element in par needs to be between 0 and 1
# 2. sum(par)=1 i.e. the elements in par need to sum to 1

## I try to use optim
res <- optim(c(runif(16),fn, method="L-BFGS-B", H=H, F=f ,control=list(fnscale=-1), lower=0, upper=1) ######

If I understand this correctly, using L-BFGS-B with lower=0 and upper=1 should take care of constraint 1 (box constraints). What I am lacking is the skill to include constraint no 2.

I guess I could solve this by reparametrization but I am not sure how exactly. I could not find (i.e. wasn't able to infer) the answer to this in the archives despite the many comments on optim and constrained optimization (sorry if I missed it there). I am using version 2.1.1 under windows XP.

Thank you very much.

Jens



R-help@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 Received on Thu Oct 13 12:06:44 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:40:42 EST