- Timestamp:
- 11/25/15 16:22:37 (9 years ago)
- Location:
- branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3
- Files:
-
- 3 added
- 17 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj
r11961 r13396 128 128 <Compile Include="Crossovers\PositionBasedCrossover.cs" /> 129 129 <Compile Include="Crossovers\UniformLikeCrossover.cs" /> 130 <Compile Include="Interfaces\IPermutationInversionMoveQualityOperator.cs" /> 131 <Compile Include="Interfaces\IPermutationLocalImprovementOperator.cs" /> 132 <Compile Include="Interfaces\IPermutationScrambleMoveQualityOperator.cs" /> 130 133 <Compile Include="Interfaces\IPermutationScrambleMoveOperator.cs" /> 131 134 <Compile Include="Interfaces\IPermutationMultiNeighborhoodShakingOperator.cs" /> 135 <Compile Include="Interfaces\IPermutationSolutionsOperator.cs" /> 136 <Compile Include="Interfaces\IPermutationSolutionOperator.cs" /> 137 <Compile Include="Interfaces\IPermutationSwap2MoveQualityOperator.cs" /> 132 138 <Compile Include="Interfaces\IPermutationSwap2MoveOperator.cs" /> 133 139 <Compile Include="Interfaces\IPermutationCreator.cs" /> … … 136 142 <Compile Include="Interfaces\IPermutationMoveOperator.cs" /> 137 143 <Compile Include="Interfaces\IPermutationOperator.cs" /> 144 <Compile Include="Interfaces\IPermutationTranslocationMoveQualityOperator.cs" /> 138 145 <Compile Include="Interfaces\IPermutationTranslocationMoveOperator.cs" /> 139 146 <Compile Include="Interfaces\IPermutationInversionMoveOperator.cs" /> -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Interfaces/IPermutationCreator.cs
r13366 r13396 28 28 /// An interface which represents an operator for creating permutations. 29 29 /// </summary> 30 public interface IPermutationCreator : IPermutation Operator, ISolutionCreator<Permutation> {30 public interface IPermutationCreator : IPermutationSolutionOperator, ISolutionCreator<Permutation> { 31 31 IValueLookupParameter<IntValue> LengthParameter { get; } 32 ILookupParameter<Permutation> PermutationParameter { get; }33 32 IValueParameter<PermutationType> PermutationTypeParameter { get; } 34 33 } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Interfaces/IPermutationInversionMoveQualityOperator.cs
r13393 r13396 21 21 22 22 using HeuristicLab.Core; 23 using HeuristicLab.Data; 23 24 24 25 namespace HeuristicLab.Encodings.PermutationEncoding { 25 public interface IPermutationInversionMove Operator : IPermutationMoveOperator {26 ILookupParameter< InversionMove> InversionMoveParameter { get; }26 public interface IPermutationInversionMoveQualityOperator : IPermutationInversionMoveOperator { 27 ILookupParameter<DoubleValue> MoveQualityParameter { get; } 27 28 } 28 29 } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Interfaces/IPermutationManipulator.cs
r12012 r13396 20 20 #endregion 21 21 22 using HeuristicLab.Core;23 22 using HeuristicLab.Optimization; 24 23 … … 27 26 /// An interface which represents an operator for manipulating solutions. 28 27 /// </summary> 29 public interface IPermutationManipulator : IPermutationOperator, IManipulator { 30 ILookupParameter<Permutation> PermutationParameter { get; } 31 } 28 public interface IPermutationManipulator : IPermutationSolutionOperator, IManipulator { } 32 29 } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Interfaces/IPermutationScrambleMoveQualityOperator.cs
r13393 r13396 21 21 22 22 using HeuristicLab.Core; 23 using HeuristicLab.Data; 23 24 24 25 namespace HeuristicLab.Encodings.PermutationEncoding { 25 public interface IPermutationScrambleMove Operator : IPermutationMoveOperator {26 ILookupParameter< ScrambleMove> ScrambleMoveParameter { get; }26 public interface IPermutationScrambleMoveQualityOperator : IPermutationScrambleMoveOperator { 27 ILookupParameter<DoubleValue> MoveQualityParameter { get; } 27 28 } 28 29 } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Interfaces/IPermutationSwap2MoveQualityOperator.cs
r13393 r13396 21 21 22 22 using HeuristicLab.Core; 23 using HeuristicLab.Data; 23 24 24 25 namespace HeuristicLab.Encodings.PermutationEncoding { 25 public interface IPermutationSwap2Move Operator : IPermutationMoveOperator {26 ILookupParameter< Swap2Move> Swap2MoveParameter { get; }26 public interface IPermutationSwap2MoveQualityOperator : IPermutationSwap2MoveOperator { 27 ILookupParameter<DoubleValue> MoveQualityParameter { get; } 27 28 } 28 29 } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Interfaces/IPermutationTranslocationMoveQualityOperator.cs
r13393 r13396 21 21 22 22 using HeuristicLab.Core; 23 using HeuristicLab.Data; 23 24 24 25 namespace HeuristicLab.Encodings.PermutationEncoding { 25 public interface IPermutationTranslocationMove Operator : IPermutationMoveOperator {26 ILookupParameter< TranslocationMove> TranslocationMoveParameter { get; }26 public interface IPermutationTranslocationMoveQualityOperator : IPermutationTranslocationMoveOperator { 27 ILookupParameter<DoubleValue> MoveQualityParameter { get; } 27 28 } 28 29 } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Scramble/ScrambleMoveMaker.cs
r12012 r13396 31 31 [Item("ScrambleMoveMaker", "Peforms a scramble move on a given permutation and updates the quality.")] 32 32 [StorableClass] 33 public class ScrambleMoveMaker : SingleSuccessorOperator, IPermutationScrambleMove Operator, IMoveMaker, ISingleObjectiveOperator {33 public class ScrambleMoveMaker : SingleSuccessorOperator, IPermutationScrambleMoveQualityOperator, IMoveMaker, ISingleObjectiveOperator { 34 34 public override bool CanChangeName { 35 35 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveHardTabuCriterion.cs
r12012 r13396 35 35 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")] 36 36 [StorableClass] 37 public class Swap2MoveHardTabuCriterion : SingleSuccessorOperator, IPermutationSwap2Move Operator, ITabuChecker {37 public class Swap2MoveHardTabuCriterion : SingleSuccessorOperator, IPermutationSwap2MoveQualityOperator, ITabuChecker { 38 38 public override bool CanChangeName { 39 39 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveMaker.cs
r12012 r13396 31 31 [Item("Swap2MoveMaker", "Peforms a swap-2 move on a given permutation and updates the quality.")] 32 32 [StorableClass] 33 public class Swap2MoveMaker : SingleSuccessorOperator, IPermutationSwap2Move Operator, IMoveMaker, ISingleObjectiveOperator {33 public class Swap2MoveMaker : SingleSuccessorOperator, IPermutationSwap2MoveQualityOperator, IMoveMaker, ISingleObjectiveOperator { 34 34 public override bool CanChangeName { 35 35 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveSoftTabuCriterion.cs
r12012 r13396 35 35 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")] 36 36 [StorableClass] 37 public class Swap2MoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationSwap2Move Operator, ITabuChecker {37 public class Swap2MoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationSwap2MoveQualityOperator, ITabuChecker { 38 38 public override bool CanChangeName { 39 39 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/Swap2/Swap2MoveTabuMaker.cs
r12012 r13396 29 29 [Item("Swap2MoveTabuMaker", "Declares a given swap-2 move as tabu, by adding its attributes to the tabu list and also store the solution quality or the move quality (whichever is better).")] 30 30 [StorableClass] 31 public class Swap2MoveTabuMaker : TabuMaker, IPermutationSwap2Move Operator {31 public class Swap2MoveTabuMaker : TabuMaker, IPermutationSwap2MoveQualityOperator { 32 32 public ILookupParameter<Permutation> PermutationParameter { 33 33 get { return (ILookupParameter<Permutation>)Parameters["Permutation"]; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveHardTabuCriterion.cs
r12012 r13396 34 34 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")] 35 35 [StorableClass] 36 public class TranslocationMoveHardTabuCriterion : SingleSuccessorOperator, IPermutationTranslocationMove Operator, ITabuChecker {36 public class TranslocationMoveHardTabuCriterion : SingleSuccessorOperator, IPermutationTranslocationMoveQualityOperator, ITabuChecker { 37 37 public override bool CanChangeName { 38 38 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveMaker.cs
r12012 r13396 31 31 [Item("TranslocationMoveMaker", "Peforms a translocation or insertion move (3-opt) on a given permutation and updates the quality.")] 32 32 [StorableClass] 33 public class TranslocationMoveMaker : SingleSuccessorOperator, IPermutationTranslocationMove Operator, IMoveMaker, ISingleObjectiveOperator {33 public class TranslocationMoveMaker : SingleSuccessorOperator, IPermutationTranslocationMoveQualityOperator, IMoveMaker, ISingleObjectiveOperator { 34 34 public override bool CanChangeName { 35 35 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveSoftTabuCriterion.cs
r12012 r13396 34 34 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")] 35 35 [StorableClass] 36 public class TranslocationMoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationTranslocationMove Operator, ITabuChecker {36 public class TranslocationMoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationTranslocationMoveQualityOperator, ITabuChecker { 37 37 public override bool CanChangeName { 38 38 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/ThreeOpt/TranslocationMoveTabuMaker.cs
r12012 r13396 29 29 [Item("TranslocationMoveTabuMaker", "Declares a given translocation or insertion move (3-opt) as tabu, by adding its attributes to the tabu list.")] 30 30 [StorableClass] 31 public class TranslocationMoveTabuMaker : TabuMaker, IPermutationTranslocationMove Operator {31 public class TranslocationMoveTabuMaker : TabuMaker, IPermutationTranslocationMoveQualityOperator { 32 32 public ILookupParameter<Permutation> PermutationParameter { 33 33 get { return (ILookupParameter<Permutation>)Parameters["Permutation"]; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveHardTabuCriterion.cs
r12012 r13396 35 35 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")] 36 36 [StorableClass] 37 public class InversionMoveHardTabuCriterion : SingleSuccessorOperator, IPermutationInversionMove Operator, ITabuChecker {37 public class InversionMoveHardTabuCriterion : SingleSuccessorOperator, IPermutationInversionMoveQualityOperator, ITabuChecker { 38 38 public override bool CanChangeName { 39 39 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveMaker.cs
r12012 r13396 31 31 [Item("InversionMoveMaker", "Peforms an inversion move (2-opt) on a given permutation and updates the quality.")] 32 32 [StorableClass] 33 public class InversionMoveMaker : SingleSuccessorOperator, IPermutationInversionMove Operator, IMoveMaker, ISingleObjectiveOperator {33 public class InversionMoveMaker : SingleSuccessorOperator, IPermutationInversionMoveQualityOperator, IMoveMaker, ISingleObjectiveOperator { 34 34 public override bool CanChangeName { 35 35 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveSoftTabuCriterion.cs
r12012 r13396 35 35 If the aspiration condition is activated, a move will not be considered tabu against a move in the tabu list if it leads to a better solution than the quality recorded with the move in the tabu list.")] 36 36 [StorableClass] 37 public class InversionMoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationInversionMove Operator, ITabuChecker {37 public class InversionMoveSoftTabuCriterion : SingleSuccessorOperator, IPermutationInversionMoveQualityOperator, ITabuChecker { 38 38 public override bool CanChangeName { 39 39 get { return false; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/Moves/TwoOpt/InversionMoveTabuMaker.cs
r12012 r13396 29 29 [Item("InversionMoveTabuMaker", "Declares a given inversion move (2-opt) as tabu, by adding its attributes to the tabu list and also store the solution quality or the move quality (whichever is better).")] 30 30 [StorableClass] 31 public class InversionMoveTabuMaker : TabuMaker, IPermutationInversionMove Operator {31 public class InversionMoveTabuMaker : TabuMaker, IPermutationInversionMoveQualityOperator { 32 32 public ILookupParameter<Permutation> PermutationParameter { 33 33 get { return (ILookupParameter<Permutation>)Parameters["Permutation"]; } -
branches/ProblemRefactoring/HeuristicLab.Encodings.PermutationEncoding/3.3/PermutationEncoding.cs
r13366 r13396 145 145 typeof (IPermutationScrambleMoveOperator), 146 146 typeof (IPermutationSwap2MoveOperator), 147 typeof (IPermutationTranslocationMoveOperator) 147 typeof (IPermutationTranslocationMoveOperator), 148 typeof (IPermutationLocalImprovementOperator), 149 typeof (IPermutationSolutionOperator), 150 typeof (IPermutationSolutionsOperator), 148 151 }; 149 152 } … … 160 163 #endregion 161 164 162 public override void ConfigureOperators(IEnumerable<I Operator> operators) {165 public override void ConfigureOperators(IEnumerable<IItem> operators) { 163 166 ConfigureCreators(operators.OfType<IPermutationCreator>()); 164 167 ConfigureCrossovers(operators.OfType<IPermutationCrossover>()); … … 170 173 ConfigureSwap2MoveOperators(operators.OfType<IPermutationSwap2MoveOperator>()); 171 174 ConfigureTranslocationMoveOperators(operators.OfType<IPermutationTranslocationMoveOperator>()); 175 ConfigureLocalImprovementOperators(operators.OfType<IPermutationLocalImprovementOperator>()); 176 ConfigureSolutionOperators(operators.OfType<IPermutationSolutionOperator>()); 177 ConfigureSolutionsOperators(operators.OfType<IPermutationSolutionsOperator>()); 172 178 } 173 179 … … 176 182 foreach (var creator in creators) { 177 183 creator.LengthParameter.ActualName = LengthParameter.Name; 178 creator.PermutationParameter.ActualName = Name;179 184 creator.PermutationTypeParameter.Value.Value = Type; 180 185 } … … 187 192 } 188 193 private void ConfigureManipulators(IEnumerable<IPermutationManipulator> manipulators) { 189 foreach (var manipulator in manipulators) { 190 manipulator.PermutationParameter.ActualName = Name; 191 } 194 // IPermutationManipulator does not contain additional parameters (already contained in IPermutationSolutionOperator) 192 195 } 193 196 private void ConfigureShakingOperators(IEnumerable<IPermutationMultiNeighborhoodShakingOperator> shakingOperators) { … … 221 224 } 222 225 } 223 226 private void ConfigureLocalImprovementOperators(IEnumerable<IPermutationLocalImprovementOperator> localImprovementOperators) { 227 // IPermutationLocalImprovementOperator does not contain additional parameters (already contained in IPermutationSolutionOperator) 228 } 229 private void ConfigureSolutionOperators(IEnumerable<IPermutationSolutionOperator> solutionOperators) { 230 foreach (var solutionOperator in solutionOperators) { 231 solutionOperator.PermutationParameter.ActualName = Name; 232 } 233 } 234 private void ConfigureSolutionsOperators(IEnumerable<IPermutationSolutionsOperator> solutionsOperators) { 235 foreach (var solutionsOperator in solutionsOperators) { 236 solutionsOperator.PermutationsParameter.ActualName = Name; 237 } 238 } 224 239 #endregion 225 240 }
Note: See TracChangeset
for help on using the changeset viewer.