Changeset 3048 for trunk/sources/HeuristicLab.Algorithms.TS/3.3
- Timestamp:
- 03/15/10 23:49:54 (15 years ago)
- Location:
- trunk/sources/HeuristicLab.Algorithms.TS/3.3
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.TS/3.3/TS.cs
r3044 r3048 35 35 public sealed class TS : EngineAlgorithm { 36 36 /*#region Parameter Properties 37 private ValueParameter<Int Data> SeedParameter {38 get { return (ValueParameter<Int Data>)Parameters["Seed"]; }39 } 40 private ValueParameter<Bool Data> SetSeedRandomlyParameter {41 get { return (ValueParameter<Bool Data>)Parameters["SetSeedRandomly"]; }37 private ValueParameter<IntValue> SeedParameter { 38 get { return (ValueParameter<IntValue>)Parameters["Seed"]; } 39 } 40 private ValueParameter<BoolValue> SetSeedRandomlyParameter { 41 get { return (ValueParameter<BoolValue>)Parameters["SetSeedRandomly"]; } 42 42 } 43 43 private ConstrainedValueParameter<IMoveGenerator> MoveGeneratorParameter { 44 44 get { return (ConstrainedValueParameter<IMoveGenerator>)Parameters["MoveGenerator"]; } 45 45 } 46 private ValueParameter<Int Data> MaximumIterationsParameter {47 get { return (ValueParameter<Int Data>)Parameters["MaximumIterations"]; }46 private ValueParameter<IntValue> MaximumIterationsParameter { 47 get { return (ValueParameter<IntValue>)Parameters["MaximumIterations"]; } 48 48 } 49 49 #endregion 50 50 51 51 #region Properties 52 public Int DataSeed {52 public IntValue Seed { 53 53 get { return SeedParameter.Value; } 54 54 set { SeedParameter.Value = value; } 55 55 } 56 public Bool DataSetSeedRandomly {56 public BoolValue SetSeedRandomly { 57 57 get { return SetSeedRandomlyParameter.Value; } 58 58 set { SetSeedRandomlyParameter.Value = value; } … … 62 62 set { MoveGeneratorParameter.Value = value; } 63 63 } 64 public Int DataMaximumIterations {64 public IntValue MaximumIterations { 65 65 get { return MaximumIterationsParameter.Value; } 66 66 set { MaximumIterationsParameter.Value = value; } … … 79 79 public TS() 80 80 : base() { 81 Parameters.Add(new ValueParameter<Int Data>("Seed", "The random seed used to initialize the new pseudo random number generator.", new IntData(0)));82 Parameters.Add(new ValueParameter<Bool Data>("SetSeedRandomly", "True if the random seed should be set to a random value, otherwise false.", new BoolData(true)));81 Parameters.Add(new ValueParameter<IntValue>("Seed", "The random seed used to initialize the new pseudo random number generator.", new IntValue(0))); 82 Parameters.Add(new ValueParameter<BoolValue>("SetSeedRandomly", "True if the random seed should be set to a random value, otherwise false.", new BoolValue(true))); 83 83 Parameters.Add(new ConstrainedValueParameter<IMoveGenerator>("MoveGenerator", "The operator used to generate moves to the neighborhood of the current solution.")); 84 Parameters.Add(new ValueParameter<Int Data>("MaximumIterations", "The maximum number of generations which should be processed.", new IntData(1000)));84 Parameters.Add(new ValueParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed.", new IntValue(1000))); 85 85 86 86 RandomCreator randomCreator = new RandomCreator(); … … 96 96 randomCreator.Successor = solutionsCreator; 97 97 98 solutionsCreator.NumberOfSolutions = new Int Data(1);98 solutionsCreator.NumberOfSolutions = new IntValue(1); 99 99 solutionsCreator.Successor = tsMainLoop; 100 100 … … 206 206 private void ParameterizeSelectors() { 207 207 foreach (ISelector selector in Selectors) { 208 selector.CopySelected = new Bool Data(true);209 selector.NumberOfSelectedSubScopesParameter.Value = new Int Data(2 * (PopulationSizeParameter.Value.Value - ElitesParameter.Value.Value));208 selector.CopySelected = new BoolValue(true); 209 selector.NumberOfSelectedSubScopesParameter.Value = new IntValue(2 * (PopulationSizeParameter.Value.Value - ElitesParameter.Value.Value)); 210 210 ParameterizeStochasticOperator(selector); 211 211 } -
trunk/sources/HeuristicLab.Algorithms.TS/3.3/TSMainLoop.cs
r3044 r3048 39 39 get { return (ValueLookupParameter<IRandom>)Parameters["Random"]; } 40 40 } 41 public ValueLookupParameter<Bool Data> MaximizationParameter {42 get { return (ValueLookupParameter<Bool Data>)Parameters["Maximization"]; }43 } 44 public SubScopesLookupParameter<Double Data> QualityParameter {45 get { return (SubScopesLookupParameter<Double Data>)Parameters["Quality"]; }46 } 47 public ValueLookupParameter<Int Data> MaximumIterationsParameter {48 get { return (ValueLookupParameter<Int Data>)Parameters["MaximumIterations"]; }49 } 50 public ValueLookupParameter<Int Data> TabuTenureParameter {51 get { return (ValueLookupParameter<Int Data>)Parameters["TabuTenure"]; }41 public ValueLookupParameter<BoolValue> MaximizationParameter { 42 get { return (ValueLookupParameter<BoolValue>)Parameters["Maximization"]; } 43 } 44 public SubScopesLookupParameter<DoubleValue> QualityParameter { 45 get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; } 46 } 47 public ValueLookupParameter<IntValue> MaximumIterationsParameter { 48 get { return (ValueLookupParameter<IntValue>)Parameters["MaximumIterations"]; } 49 } 50 public ValueLookupParameter<IntValue> TabuTenureParameter { 51 get { return (ValueLookupParameter<IntValue>)Parameters["TabuTenure"]; } 52 52 } 53 53 public ValueLookupParameter<VariableCollection> ResultsParameter { … … 85 85 #region Create parameters 86 86 Parameters.Add(new ValueLookupParameter<IRandom>("Random", "A pseudo random number generator.")); 87 Parameters.Add(new ValueLookupParameter<Bool Data>("Maximization", "True if the problem is a maximization problem, otherwise false."));88 Parameters.Add(new SubScopesLookupParameter<Double Data>("Quality", "The value which represents the quality of a solution."));89 Parameters.Add(new ValueLookupParameter<Int Data>("MaximumIterations", "The maximum number of generations which should be processed."));90 Parameters.Add(new ValueLookupParameter<Int Data>("TabuTenure", "The length of the tabu list, and also means the number of iterations a move is kept tabu"));87 Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem, otherwise false.")); 88 Parameters.Add(new SubScopesLookupParameter<DoubleValue>("Quality", "The value which represents the quality of a solution.")); 89 Parameters.Add(new ValueLookupParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed.")); 90 Parameters.Add(new ValueLookupParameter<IntValue>("TabuTenure", "The length of the tabu list, and also means the number of iterations a move is kept tabu")); 91 91 Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored.")); 92 92 … … 124 124 EmptyOperator finished = new EmptyOperator(); 125 125 126 variableCreator.CollectedValues.Add(new ValueParameter<Int Data>("Iterations", new IntData(0)));127 variableCreator.CollectedValues.Add(new ValueParameter<Double Data>("Best Move Quality", new DoubleData(0)));128 variableCreator.CollectedValues.Add(new ValueParameter<Double Data>("Average Move Quality", new DoubleData(0)));129 variableCreator.CollectedValues.Add(new ValueParameter<Double Data>("Worst Move Quality", new DoubleData(0)));126 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Iterations", new IntValue(0))); 127 variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("Best Move Quality", new DoubleValue(0))); 128 variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("Average Move Quality", new DoubleValue(0))); 129 variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("Worst Move Quality", new DoubleValue(0))); 130 130 variableCreator.CollectedValues.Add(new ValueParameter<DataTable>("MoveQualities", new DataTable("MoveQualities"))); 131 131 132 resultsCollector.CollectedValues.Add(new LookupParameter<Int Data>("Iterations"));133 resultsCollector.CollectedValues.Add(new LookupParameter<Double Data>("Best Quality") { ActualName = "BestQuality" });134 resultsCollector.CollectedValues.Add(new LookupParameter<Double Data>("Best Move Quality"));135 resultsCollector.CollectedValues.Add(new LookupParameter<Double Data>("Average Move Quality"));136 resultsCollector.CollectedValues.Add(new LookupParameter<Double Data>("Worst Move Quality"));132 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Iterations")); 133 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality") { ActualName = "BestQuality" }); 134 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Move Quality")); 135 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Average Move Quality")); 136 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Worst Move Quality")); 137 137 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("MoveQualities")); 138 138 resultsCollector.ResultsParameter.ActualName = "Results"; … … 158 158 bestAverageWorstMoveQualityCalculator.WorstQualityParameter.ActualName = "Worst Move Quality"; 159 159 160 tabuSelector.NumberOfSelectedSubScopes = new Int Data(1);160 tabuSelector.NumberOfSelectedSubScopes = new IntValue(1); 161 161 162 162 moveMakingProcessor.Name = "MoveMaking processor (UniformSequentialSubScopesProcessor)"; … … 168 168 moveMaker.OperatorParameter.ActualName = "MoveMaker"; 169 169 170 valuesCollector.CollectedValues.Add(new LookupParameter<Double Data>("Best Move Quality"));171 valuesCollector.CollectedValues.Add(new LookupParameter<Double Data>("Average Move Quality"));172 valuesCollector.CollectedValues.Add(new LookupParameter<Double Data>("Worst Move Quality"));170 valuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Move Quality")); 171 valuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Average Move Quality")); 172 valuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Worst Move Quality")); 173 173 valuesCollector.DataTableParameter.ActualName = "MoveQualities"; 174 174 … … 176 176 177 177 iterationsCounter.Name = "Iterations Counter"; 178 iterationsCounter.Increment = new Int Data(1);178 iterationsCounter.Increment = new IntValue(1); 179 179 iterationsCounter.ValueParameter.ActualName = "Iterations"; 180 180 181 181 iterationsComparator.Name = "Iterations Comparator"; 182 iterationsComparator.Comparison = new Comparison Data(Comparison.Less);182 iterationsComparator.Comparison = new Comparison(ComparisonType.Less); 183 183 iterationsComparator.LeftSideParameter.ActualName = "Iterations"; 184 184 iterationsComparator.RightSideParameter.ActualName = "MaximumIterations"; -
trunk/sources/HeuristicLab.Algorithms.TS/3.3/TabuSelector.cs
r3044 r3048 42 42 /// The best found quality so far. 43 43 /// </summary> 44 public LookupParameter<Double Data> BestQualityParameter {45 get { return (LookupParameter<Double Data>)Parameters["BestQuality"]; }44 public LookupParameter<DoubleValue> BestQualityParameter { 45 get { return (LookupParameter<DoubleValue>)Parameters["BestQuality"]; } 46 46 } 47 47 /// <summary> 48 48 /// Whether to use the default aspiration criteria or not. 49 49 /// </summary> 50 public ValueLookupParameter<Bool Data> AspirationParameter {51 get { return (ValueLookupParameter<Bool Data>)Parameters["Aspiration"]; }50 public ValueLookupParameter<BoolValue> AspirationParameter { 51 get { return (ValueLookupParameter<BoolValue>)Parameters["Aspiration"]; } 52 52 } 53 53 /// <summary> 54 54 /// Whether the problem is a maximization problem or not. 55 55 /// </summary> 56 public IValueLookupParameter<Bool Data> MaximizationParameter {57 get { return (IValueLookupParameter<Bool Data>)Parameters["Maximization"]; }56 public IValueLookupParameter<BoolValue> MaximizationParameter { 57 get { return (IValueLookupParameter<BoolValue>)Parameters["Maximization"]; } 58 58 } 59 59 /// <summary> 60 60 /// The parameter for the move qualities. 61 61 /// </summary> 62 public ILookupParameter<ItemArray<Double Data>> MoveQualityParameter {63 get { return (ILookupParameter<ItemArray<Double Data>>)Parameters["MoveQuality"]; }62 public ILookupParameter<ItemArray<DoubleValue>> MoveQualityParameter { 63 get { return (ILookupParameter<ItemArray<DoubleValue>>)Parameters["MoveQuality"]; } 64 64 } 65 65 /// <summary> 66 66 /// The parameter for the tabu status of the moves. 67 67 /// </summary> 68 public ILookupParameter<ItemArray<Bool Data>> MoveTabuParameter {69 get { return (ILookupParameter<ItemArray<Bool Data>>)Parameters["MoveTabu"]; }68 public ILookupParameter<ItemArray<BoolValue>> MoveTabuParameter { 69 get { return (ILookupParameter<ItemArray<BoolValue>>)Parameters["MoveTabu"]; } 70 70 } 71 71 72 public Int DataNumberOfSelectedSubScopes {72 public IntValue NumberOfSelectedSubScopes { 73 73 set { NumberOfSelectedSubScopesParameter.Value = value; } 74 74 } … … 80 80 public TabuSelector() 81 81 : base() { 82 Parameters.Add(new LookupParameter<Double Data>("BestQuality", "The best found quality so far."));83 Parameters.Add(new ValueLookupParameter<Bool Data>("Aspiration", "Whether the default aspiration criterion should be used or not. The default aspiration criterion accepts a tabu move if it results in a better solution than the best solution found so far.", new BoolData(true)));84 Parameters.Add(new ValueLookupParameter<Bool Data>("Maximization", "Whether the problem is a maximization or minimization problem (used to decide whether a solution is better"));85 Parameters.Add(new SubScopesLookupParameter<Double Data>("MoveQuality", "The quality of the move."));86 Parameters.Add(new SubScopesLookupParameter<Bool Data>("MoveTabu", "The tabu status of the move."));82 Parameters.Add(new LookupParameter<DoubleValue>("BestQuality", "The best found quality so far.")); 83 Parameters.Add(new ValueLookupParameter<BoolValue>("Aspiration", "Whether the default aspiration criterion should be used or not. The default aspiration criterion accepts a tabu move if it results in a better solution than the best solution found so far.", new BoolValue(true))); 84 Parameters.Add(new ValueLookupParameter<BoolValue>("Maximization", "Whether the problem is a maximization or minimization problem (used to decide whether a solution is better")); 85 Parameters.Add(new SubScopesLookupParameter<DoubleValue>("MoveQuality", "The quality of the move.")); 86 Parameters.Add(new SubScopesLookupParameter<BoolValue>("MoveTabu", "The tabu status of the move.")); 87 87 } 88 88 … … 99 99 bool maximization = MaximizationParameter.ActualValue.Value; 100 100 double bestQuality = BestQualityParameter.ActualValue.Value; 101 ItemArray<Double Data> moveQualities = MoveQualityParameter.ActualValue;102 ItemArray<Bool Data> moveTabus = MoveTabuParameter.ActualValue;101 ItemArray<DoubleValue> moveQualities = MoveQualityParameter.ActualValue; 102 ItemArray<BoolValue> moveTabus = MoveTabuParameter.ActualValue; 103 103 104 104 IScope[] selected = new IScope[count];
Note: See TracChangeset
for help on using the changeset viewer.