[GSoC-PortA] Adaptive Penalty Methods

Ross Bennett rossbennett34 at gmail.com
Wed Aug 14 20:33:09 CEST 2013


I am starting to work on the adaptive penalty methods section and I have a
few thoughts and questions.

Any guidance would be greatly appreciated.

Currently there is just a fixed penalty (default of 10,000) that is applied
in constrained_objective for both the constraints and objectives.

Adaptive Penalty for Constraints
Constraints are penalized in constrained_objective for anything that isn't
transformed in fn_map. We use the same penalty term for constraints and
objectives. Should we have separate penalty variables for constraints and
objectives (e.g. constr_penalty  and obj_penalty)?

The design thoughts vignettes also includes discussion of relaxing
constraints.
We can relax constraints in fn_map, the basic premise goes like this:
 - Try to transform the set of weights to satisfy the constraint
 - If we reach max_permutations, then relax the constraint by a random
amount
 - Attempt to relax the constraints up to 5 (this could easily be changed)
times
 - If the weights still do not satisfy the constraint after 5 attempts,
then penalize in constrained_objective

This relaxation technique only works for DEoptim and random portfolios,
because they support a mapping function, so I will have to be able to relax
the constraints for the pso and GenSA solvers. If we use normalize=TRUE,
then we can relax constraints via fn_map which is called on the weights
inside constrained_objective so we are transforming the weights outside
those solvers.

Do we need to relax constraints for the ROI solvers or are we simply at the
mercy of the solvers in this case?

Adaptive Penalty for Objectives
 For example, with DEoptim the iterations are tracked inside DEoptim (and
even printed to the screen), but how can we track the iterations in
constrained_objective to know the iteration number to apply and adaptive
penalty inside the function? How do we set limits on the penalty so it
doesn't increase to infinity with a large number of iterations?

Thanks,
Ross
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/gsoc-porta/attachments/20130814/e0e5d2f6/attachment.html>


More information about the GSoC-PortA mailing list