>From Spencer Graves:

>However, for an equality constraint, I've had good luck by with an objective function 
>that adds something like the
>following to my objective function: constraintViolationPenalty*(A%*%theta-c)^2, where 
>"constraintViolationPenalty" is
>passed via "..." in a call to optim.

I applied Spencer's suggestion to a set of eight different constrained portfolio 
optimization problems. It seems to give a usable practice to solve the portfolio 
problem, when the QP optimizer is not applicable. After all, practical portfolio 
management is more an art than a science.   

>I may first run optim with a modest value for constraintViolationPenalty then restart 
>it with the output of the 
>initial run as starting values and with a larger value for 
>constraintViolationPenalty. 

I wrote a loop that starts with a small value for the penalty and stops when the 
change of the function value, when increasing the penalty, is less than epsilon. I 
found that epsilon = 1e-06 provides a reasonable accuracy with respect to 
computational time.

Spencer, many thanks for your suggestion.

Hannu Kahra

______________________________________________
[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

Reply via email to