Changeset 14128 for branches/HeuristicLab.BinPacking/HeuristicLab.Problems.BinPacking/3.3/Encodings/PackingSequence/Moves/GroupingMoveSoftTabuCriterion.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/GroupingMoveSoftTabuCriterion.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; … … 38 39 get { return false; } 39 40 } 40 public ILookupParameter<IPackingMove > PackingMoveParameter {41 get { return (ILookupParameter<IPackingMove >)Parameters["PackingMove"]; }41 public ILookupParameter<IPackingMove<Permutation>> PackingMoveParameter { 42 get { return (ILookupParameter<IPackingMove<Permutation>>)Parameters["PackingMove"]; } 42 43 } 43 public ILookupParameter<P ackingSequenceEncoding> PackingSequenceParameter {44 get { return (ILookupParameter<P ackingSequenceEncoding>)Parameters["PackingSequence"]; }44 public ILookupParameter<Permutation> PackingSequenceParameter { 45 get { return (ILookupParameter<Permutation>)Parameters["PackingSequence"]; } 45 46 } 46 47 public ILookupParameter<ItemList<IItem>> TabuListParameter { … … 65 66 public SequenceMoveSoftTabuCriterion() 66 67 : base() { 67 Parameters.Add(new LookupParameter<IPackingMove >("PackingMove", "The move to evaluate."));68 Parameters.Add(new LookupParameter<P ackingSequenceEncoding>("PackingSequence", "The solution to evaluate."));68 Parameters.Add(new LookupParameter<IPackingMove<Permutation>>("PackingMove", "The move to evaluate.")); 69 Parameters.Add(new LookupParameter<Permutation>("PackingSequence", "The solution to evaluate.")); 69 70 Parameters.Add(new LookupParameter<BoolValue>("MoveTabu", "The variable to store if a move was tabu.")); 70 71 Parameters.Add(new LookupParameter<ItemList<IItem>>("TabuList", "The tabu list.")); … … 81 82 ItemList<IItem> tabuList = TabuListParameter.ActualValue; 82 83 SequenceMove move = PackingMoveParameter.ActualValue as SequenceMove; 83 PackingSequenceEncoding PackingSequence = PackingSequenceParameter.ActualValue;84 int length = PackingSequence.PackingSequence.Length;85 84 double moveQuality = MoveQualityParameter.ActualValue.Value; 86 bool maximization = MaximizationParameter.ActualValue.Value; 85 bool maximization = MaximizationParameter.ActualValue.Value; 87 86 bool useAspiration = UseAspirationCriterionParameter.Value.Value; 88 bool isTabu = IsMoveTabu(tabuList, move, PackingSequence,moveQuality, maximization, useAspiration);87 bool isTabu = IsMoveTabu(tabuList, move, moveQuality, maximization, useAspiration); 89 88 90 89 MoveTabuParameter.ActualValue = new BoolValue(isTabu); … … 92 91 } 93 92 94 private bool IsMoveTabu(ItemList<IItem> tabuList, SequenceMove move, PackingSequenceEncoding PackingSequence,double moveQuality, bool maximization, bool useAspiration) {93 private bool IsMoveTabu(ItemList<IItem> tabuList, SequenceMove move, double moveQuality, bool maximization, bool useAspiration) { 95 94 bool isTabu = false; 96 var attributes = tabuList.FindAll(ta => ta.GetType() .Equals(move.GetMoveAttributeType()));95 var attributes = tabuList.FindAll(ta => ta.GetType() == move.GetMoveAttributeType()); 97 96 98 97 foreach (IItem attr in attributes) { … … 103 102 || !maximization && moveQuality >= gvAttr.MoveQuality)) { 104 103 105 isTabu = move.BelongsToAttribute(gvAttr, false); 104 isTabu = move.BelongsToAttribute(gvAttr, false); // only difference to hard tabu criterion 106 105 } 107 106 if (isTabu) break;
Note: See TracChangeset
for help on using the changeset viewer.