Opened 10 years ago
Closed 9 years ago
#2400 closed enhancement (done)
Setting new penalty values in VRP instances are not respected
Reported by: | pfleck | Owned by: | abeham |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.12 |
Component: | Problems.VehicleRouting | Version: | 3.3.11 |
Keywords: | Cc: |
Description (last modified by pfleck)
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
Change History (6)
comment:1 Changed 10 years ago by pfleck
- Description modified (diff)
comment:2 Changed 10 years ago by pfleck
comment:3 Changed 9 years ago by pfleck
- Status changed from new to accepted
comment:4 Changed 9 years ago by pfleck
- Owner changed from pfleck to abeham
- Status changed from accepted to reviewing
comment:5 Changed 9 years ago by abeham
- Status changed from reviewing to readytorelease
changes look okay, thanks for fixing this
comment:6 Changed 9 years ago by abeham
- Resolution set to done
- Status changed from readytorelease to closed
r12738: merged 12488 to stable
r12488