Changeset 14128 for branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/Moves/GroupingMoveHardTabuCriterion.cs
- Timestamp:
- 07/20/16 14:02:36 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/Moves/GroupingMoveHardTabuCriterion.cs
r14046 r14128 24 24 using HeuristicLab.Core; 25 25 using HeuristicLab.Data; 26 using HeuristicLab.Encodings.PermutationEncoding; 26 27 using HeuristicLab.Operators; 27 28 using HeuristicLab.Optimization; … … 37 38 get { return false; } 38 39 } 39 public ILookupParameter<IPackingMove > PackingMoveParameter {40 get { return (ILookupParameter<IPackingMove >)Parameters["PackingMove"]; }40 public ILookupParameter<IPackingMove<Permutation>> PackingMoveParameter { 41 get { return (ILookupParameter<IPackingMove<Permutation>>)Parameters["PackingMove"]; } 41 42 } 42 public ILookupParameter<P ackingSequenceEncoding> PackingSequenceParameter {43 get { return (ILookupParameter<P ackingSequenceEncoding>)Parameters["PackingSequence"]; }43 public ILookupParameter<Permutation> PackingSequenceParameter { 44 get { return (ILookupParameter<Permutation>)Parameters["PackingSequence"]; } 44 45 } 45 46 public ILookupParameter<ItemList<IItem>> TabuListParameter { … … 64 65 public SequenceMoveHardTabuCriterion() 65 66 : base() { 66 Parameters.Add(new LookupParameter<IPackingMove >("PackingMove", "The move to evaluate."));67 Parameters.Add(new LookupParameter<P ackingSequenceEncoding>("PackingSequence", "The solutionto evaluate."));67 Parameters.Add(new LookupParameter<IPackingMove<Permutation>>("PackingMove", "The move to evaluate.")); 68 Parameters.Add(new LookupParameter<Permutation>("PackingSequence", "The solution candidate to evaluate.")); 68 69 Parameters.Add(new LookupParameter<BoolValue>("MoveTabu", "The variable to store if a move was tabu.")); 69 70 Parameters.Add(new LookupParameter<ItemList<IItem>>("TabuList", "The tabu list.")); … … 80 81 ItemList<IItem> tabuList = TabuListParameter.ActualValue; 81 82 SequenceMove move = PackingMoveParameter.ActualValue as SequenceMove; 82 PackingSequenceEncoding PackingSequence = PackingSequenceParameter.ActualValue;83 int length = PackingSequence.PackingSequence.Length;84 83 double moveQuality = MoveQualityParameter.ActualValue.Value; 85 84 bool maximization = MaximizationParameter.ActualValue.Value; 86 85 bool useAspiration = UseAspirationCriterionParameter.Value.Value; 87 bool isTabu = IsMoveTabu(tabuList, move, PackingSequence,moveQuality, maximization, useAspiration);86 bool isTabu = IsMoveTabu(tabuList, move, moveQuality, maximization, useAspiration); 88 87 89 88 MoveTabuParameter.ActualValue = new BoolValue(isTabu); … … 91 90 } 92 91 93 private bool IsMoveTabu(ItemList<IItem> tabuList, SequenceMove move, PackingSequenceEncoding PackingSequence,double moveQuality, bool maximization, bool useAspiration) {92 private bool IsMoveTabu(ItemList<IItem> tabuList, SequenceMove move, double moveQuality, bool maximization, bool useAspiration) { 94 93 bool isTabu = false; 95 var attributes = tabuList.FindAll(ta => ta.GetType() .Equals(move.GetMoveAttributeType()));94 var attributes = tabuList.FindAll(ta => ta.GetType() == move.GetMoveAttributeType()); 96 95 97 96 foreach (IItem attr in attributes) { … … 102 101 || !maximization && moveQuality >= gvAttr.MoveQuality)) { 103 102 104 isTabu = move.BelongsToAttribute(gvAttr, true); 103 isTabu = move.BelongsToAttribute(gvAttr, true); // only difference to soft tabu criterion 105 104 } 106 105 if (isTabu) break;
Note: See TracChangeset
for help on using the changeset viewer.