id summary reporter owner description type status priority milestone component version resolution keywords cc 2400 Setting new penalty values in VRP instances are not respected pfleck abeham "When setting a parameter, which is subject to constraint relaxation (e.g. panalties), setting a new `DoubleValue` behaves differently than setting the value of the current `DoubleValue`. This is the case because setting a new `DoubleValue` is used for constraint relaxation and the current value is reset when the problem instance is initialized. Using the setter of the penalty-property, the new value is set on a different parameter (eg. `CurrentOverloadPenaltyParameter`) instead of the actual parameter (`OverloadPenaltyParameter`). Therefore, setting a new `DoubleValue` to a penalty property has no effect since the `CurrentOverloadPenaltyParameter` it is reset when preparing the algorithm. {{{ public DoubleValue OverloadPenalty { get { DoubleValue currentOverloadPenalty = CurrentOverloadPenaltyParameter.Value; if (currentOverloadPenalty != null) return currentOverloadPenalty; else return OverloadPenaltyParameter.Value; } set { CurrentOverloadPenaltyParameter.Value = value; } } }}} This behavior is unintuitive and confusing and should be changed, without breaking the constraint relaxation. See also https://groups.google.com/forum/#!topic/heuristiclab/KCC0sWYJEcQ" enhancement closed medium HeuristicLab 3.3.12 Problems.VehicleRouting 3.3.11 done