- Timestamp:
- 03/20/10 16:15:26 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs
r3131 r3141 74 74 get { return (ValueParameter<IntValue>)Parameters["MaximumIterations"]; } 75 75 } 76 private ValueParameter<IntValue> SampleSizeParameter { 77 get { return (ValueParameter<IntValue>)Parameters["SampleSize"]; } 78 } 76 79 #endregion 77 80 … … 124 127 #endregion 125 128 129 [StorableConstructor] 130 public TabuSearch(bool deserializing) : base() { } 126 131 public TabuSearch() 127 132 : base() { … … 135 140 Parameters.Add(new ValueParameter<IntValue>("TabuTenure", "The length of the tabu list.", new IntValue(10))); 136 141 Parameters.Add(new ValueParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed.", new IntValue(1000))); 142 Parameters.Add(new ValueParameter<IntValue>("SampleSize", "The neighborhood size for stochastic sampling move generators", new IntValue(20))); 137 143 138 144 RandomCreator randomCreator = new RandomCreator(); … … 163 169 } 164 170 165 [StorableConstructor]166 private TabuSearch(bool deserializing) : base() { }167 168 171 public override IDeepCloneable Clone(Cloner cloner) { 169 172 TabuSearch clone = (TabuSearch)base.Clone(cloner); … … 185 188 ParameterizeSolutionsCreator(); 186 189 ParameterizeMainLoop(); 190 ParameterizeMoveGenerators(); 187 191 ParameterizeMoveEvaluator(); 188 192 ParameterizeMoveMaker(); … … 204 208 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 205 209 base.Problem_EvaluatorChanged(sender, e); 210 } 211 protected override void Problem_VisualizerChanged(object sender, EventArgs e) { 212 ParameterizeStochasticOperator(Problem.Visualizer); 213 ParameterizeMainLoop(); 214 if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged); 215 base.Problem_VisualizerChanged(sender, e); 206 216 } 207 217 protected override void Problem_OperatorsChanged(object sender, EventArgs e) { … … 222 232 UpdateMoveParameters(); 223 233 ParameterizeMainLoop(); 234 ParameterizeMoveGenerators(); 224 235 ParameterizeMoveEvaluator(); 225 236 ParameterizeMoveMaker(); … … 249 260 private void TabuMoveEvaluator_MoveTabuParameter_ActualNameChanged(object sender, EventArgs e) { 250 261 ParameterizeMainLoop(); 262 } 263 private void Visualizer_VisualizationParameter_ActualNameChanged(object sender, EventArgs e) { 264 ParameterizeMainLoop(); 265 } 266 private void SampleSizeParameter_NameChanged(object sender, EventArgs e) { 267 ParameterizeMoveGenerators(); 251 268 } 252 269 #endregion … … 260 277 op.MoveQualityParameter.ActualNameChanged += new EventHandler(MoveEvaluator_MoveQualityParameter_ActualNameChanged); 261 278 } 279 if (Problem.Visualizer != null) Problem.Visualizer.VisualizationParameter.ActualNameChanged += new EventHandler(Visualizer_VisualizationParameter_ActualNameChanged); 262 280 } 263 281 MoveGeneratorParameter.ValueChanged += new EventHandler(MoveGeneratorParameter_ValueChanged); 264 282 MoveEvaluatorParameter.ValueChanged += new EventHandler(MoveEvaluatorParameter_ValueChanged); 265 283 TabuMoveEvaluatorParameter.ValueChanged += new EventHandler(TabuMoveEvaluatorParameter_ValueChanged); 284 SampleSizeParameter.NameChanged += new EventHandler(SampleSizeParameter_NameChanged); 266 285 } 267 286 private void UpdateMoveGenerator() { … … 269 288 MoveGeneratorParameter.ValidValues.Clear(); 270 289 if (Problem != null) { 271 foreach (IMoveGenerator generator in Problem.Operators.OfType<IMoveGenerator>().OrderBy(x => x.Name)) 290 foreach (IMoveGenerator generator in Problem.Operators.OfType<IMoveGenerator>().OrderBy(x => x.Name)) { 272 291 MoveGeneratorParameter.ValidValues.Add(generator); 292 } 273 293 } 274 294 if (oldMoveGenerator != null && MoveGeneratorParameter.ValidValues.Any(x => x.GetType() == oldMoveGenerator.GetType())) … … 330 350 } 331 351 private void ParameterizeMainLoop() { 352 MainLoop.BestKnownQualityParameter.ActualName = Problem.BestKnownQualityParameter.Name; 332 353 MainLoop.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name; 333 354 MainLoop.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName; … … 336 357 if (TabuMoveEvaluator != null) 337 358 MainLoop.MoveTabuParameter.ActualName = TabuMoveEvaluator.MoveTabuParameter.ActualName; 359 MainLoop.VisualizerParameter.ActualName = Problem.VisualizerParameter.Name; 360 if (Problem.Visualizer != null) 361 MainLoop.VisualizationParameter.ActualName = Problem.Visualizer.VisualizationParameter.ActualName; 338 362 } 339 363 private void ParameterizeStochasticOperator(IOperator op) { 340 364 if (op is IStochasticOperator) 341 365 ((IStochasticOperator)op).RandomParameter.ActualName = RandomCreator.RandomParameter.ActualName; 366 } 367 private void ParameterizeMoveGenerators() { 368 if (Problem != null) { 369 foreach (IMultiMoveGenerator generator in Problem.Operators.OfType<IMultiMoveGenerator>()) 370 generator.SampleSizeParameter.ActualName = SampleSizeParameter.Name; 371 } 342 372 } 343 373 private void ParameterizeMoveEvaluator() {
Note: See TracChangeset
for help on using the changeset viewer.