- Timestamp:
- 04/14/10 03:52:07 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs
r3280 r3340 63 63 get { return (ConstrainedValueParameter<ISingleObjectiveMoveEvaluator>)Parameters["MoveEvaluator"]; } 64 64 } 65 private ConstrainedValueParameter<ITabuChecker> Tabu MoveEvaluatorParameter {66 get { return (ConstrainedValueParameter<ITabuChecker>)Parameters["Tabu MoveEvaluator"]; }67 } 68 private ConstrainedValueParameter<ITabuMaker> TabuM oveMakerParameter {69 get { return (ConstrainedValueParameter<ITabuMaker>)Parameters["TabuM oveMaker"]; }65 private ConstrainedValueParameter<ITabuChecker> TabuCheckerParameter { 66 get { return (ConstrainedValueParameter<ITabuChecker>)Parameters["TabuChecker"]; } 67 } 68 private ConstrainedValueParameter<ITabuMaker> TabuMakerParameter { 69 get { return (ConstrainedValueParameter<ITabuMaker>)Parameters["TabuMaker"]; } 70 70 } 71 71 private ValueParameter<IntValue> TabuTenureParameter { … … 101 101 set { MoveEvaluatorParameter.Value = value; } 102 102 } 103 public ITabuChecker Tabu MoveEvaluator {104 get { return Tabu MoveEvaluatorParameter.Value; }105 set { Tabu MoveEvaluatorParameter.Value = value; }106 } 107 public ITabuMaker TabuM oveMaker {108 get { return TabuM oveMakerParameter.Value; }109 set { TabuM oveMakerParameter.Value = value; }103 public ITabuChecker TabuChecker { 104 get { return TabuCheckerParameter.Value; } 105 set { TabuCheckerParameter.Value = value; } 106 } 107 public ITabuMaker TabuMaker { 108 get { return TabuMakerParameter.Value; } 109 set { TabuMakerParameter.Value = value; } 110 110 } 111 111 public IntValue TabuTenure { … … 135 135 Parameters.Add(new ConstrainedValueParameter<IMoveMaker>("MoveMaker", "The operator used to perform a move.")); 136 136 Parameters.Add(new ConstrainedValueParameter<ISingleObjectiveMoveEvaluator>("MoveEvaluator", "The operator used to evaluate a move.")); 137 Parameters.Add(new ConstrainedValueParameter<ITabuChecker>("Tabu MoveEvaluator", "The operator to evaluatewhether a move is tabu or not."));138 Parameters.Add(new ConstrainedValueParameter<ITabuMaker>("TabuM oveMaker", "The operator used to insert attributes of a move into the tabu list."));137 Parameters.Add(new ConstrainedValueParameter<ITabuChecker>("TabuChecker", "The operator to check whether a move is tabu or not.")); 138 Parameters.Add(new ConstrainedValueParameter<ITabuMaker>("TabuMaker", "The operator used to insert attributes of a move into the tabu list.")); 139 139 Parameters.Add(new ValueParameter<IntValue>("TabuTenure", "The length of the tabu list.", new IntValue(10))); 140 140 Parameters.Add(new ValueParameter<IntValue>("MaximumIterations", "The maximum number of generations which should be processed.", new IntValue(1000))); 141 Parameters.Add(new ValueParameter<IntValue>("SampleSize", "The neighborhood size for stochastic sampling move generators", new IntValue( 20)));141 Parameters.Add(new ValueParameter<IntValue>("SampleSize", "The neighborhood size for stochastic sampling move generators", new IntValue(100))); 142 142 143 143 RandomCreator randomCreator = new RandomCreator(); … … 159 159 tsMainLoop.MoveMakerParameter.ActualName = MoveMakerParameter.Name; 160 160 tsMainLoop.MoveEvaluatorParameter.ActualName = MoveEvaluatorParameter.Name; 161 tsMainLoop.Tabu MoveEvaluatorParameter.ActualName = TabuMoveEvaluatorParameter.Name;162 tsMainLoop.TabuM oveMakerParameter.ActualName = TabuMoveMakerParameter.Name;161 tsMainLoop.TabuCheckerParameter.ActualName = TabuCheckerParameter.Name; 162 tsMainLoop.TabuMakerParameter.ActualName = TabuMakerParameter.Name; 163 163 tsMainLoop.MaximumIterationsParameter.ActualName = MaximumIterationsParameter.Name; 164 164 tsMainLoop.RandomParameter.ActualName = RandomCreator.RandomParameter.ActualName; … … 178 178 public override void Prepare() { 179 179 if (Problem != null && MoveGenerator != null && MoveMaker != null && MoveEvaluator != null && 180 Tabu MoveEvaluator != null && TabuMoveMaker != null)180 TabuChecker != null && TabuMaker != null) 181 181 base.Prepare(); 182 182 } … … 191 191 } 192 192 foreach (ITabuChecker op in Problem.Operators.OfType<ITabuChecker>()) { 193 op.MoveTabuParameter.ActualNameChanged += new EventHandler(Tabu MoveEvaluator_MoveTabuParameter_ActualNameChanged);193 op.MoveTabuParameter.ActualNameChanged += new EventHandler(TabuChecker_MoveTabuParameter_ActualNameChanged); 194 194 } 195 195 ParameterizeSolutionsCreator(); … … 200 200 ParameterizeMoveEvaluator(); 201 201 ParameterizeMoveMaker(); 202 ParameterizeTabuMaker(); 203 ParameterizeTabuChecker(); 202 204 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 203 205 base.OnProblemChanged(); … … 214 216 ParameterizeMoveEvaluator(); 215 217 ParameterizeMoveMaker(); 218 ParameterizeTabuMaker(); 219 ParameterizeTabuChecker(); 216 220 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 217 221 base.Problem_EvaluatorChanged(sender, e); … … 232 236 } 233 237 foreach (ITabuChecker op in Problem.Operators.OfType<ITabuChecker>()) { 234 op.MoveTabuParameter.ActualNameChanged -= new EventHandler(Tabu MoveEvaluator_MoveTabuParameter_ActualNameChanged);235 op.MoveTabuParameter.ActualNameChanged += new EventHandler(Tabu MoveEvaluator_MoveTabuParameter_ActualNameChanged);238 op.MoveTabuParameter.ActualNameChanged -= new EventHandler(TabuChecker_MoveTabuParameter_ActualNameChanged); 239 op.MoveTabuParameter.ActualNameChanged += new EventHandler(TabuChecker_MoveTabuParameter_ActualNameChanged); 236 240 } 237 241 UpdateMoveGenerator(); … … 241 245 ParameterizeMoveEvaluator(); 242 246 ParameterizeMoveMaker(); 247 ParameterizeTabuMaker(); 248 ParameterizeTabuChecker(); 243 249 base.Problem_OperatorsChanged(sender, e); 244 250 } … … 247 253 ParameterizeMoveEvaluator(); 248 254 ParameterizeMoveMaker(); 255 ParameterizeTabuMaker(); 256 ParameterizeTabuChecker(); 249 257 } 250 258 private void MoveGeneratorParameter_ValueChanged(object sender, EventArgs e) { … … 255 263 ParameterizeMoveEvaluator(); 256 264 ParameterizeMoveMaker(); 265 ParameterizeTabuMaker(); 266 ParameterizeTabuChecker(); 257 267 } 258 268 private void MoveEvaluator_MoveQualityParameter_ActualNameChanged(object sender, EventArgs e) { … … 260 270 ParameterizeMoveEvaluator(); 261 271 ParameterizeMoveMaker(); 262 } 263 private void TabuMoveEvaluatorParameter_ValueChanged(object sender, EventArgs e) { 264 ParameterizeMainLoop(); 265 } 266 private void TabuMoveEvaluator_MoveTabuParameter_ActualNameChanged(object sender, EventArgs e) { 272 ParameterizeTabuMaker(); 273 ParameterizeTabuChecker(); 274 } 275 private void TabuCheckerParameter_ValueChanged(object sender, EventArgs e) { 276 ParameterizeMainLoop(); 277 } 278 private void TabuChecker_MoveTabuParameter_ActualNameChanged(object sender, EventArgs e) { 267 279 ParameterizeMainLoop(); 268 280 } … … 287 299 MoveGeneratorParameter.ValueChanged += new EventHandler(MoveGeneratorParameter_ValueChanged); 288 300 MoveEvaluatorParameter.ValueChanged += new EventHandler(MoveEvaluatorParameter_ValueChanged); 289 Tabu MoveEvaluatorParameter.ValueChanged += new EventHandler(TabuMoveEvaluatorParameter_ValueChanged);301 TabuCheckerParameter.ValueChanged += new EventHandler(TabuCheckerParameter_ValueChanged); 290 302 SampleSizeParameter.NameChanged += new EventHandler(SampleSizeParameter_NameChanged); 291 303 } … … 307 319 IMoveMaker oldMoveMaker = MoveMaker; 308 320 ISingleObjectiveMoveEvaluator oldMoveEvaluator = MoveEvaluator; 309 ITabuChecker oldTabuMoveEvaluator = Tabu MoveEvaluator;310 ITabuMaker oldTabuMoveMaker = TabuM oveMaker;321 ITabuChecker oldTabuMoveEvaluator = TabuChecker; 322 ITabuMaker oldTabuMoveMaker = TabuMaker; 311 323 ClearMoveParameters(); 312 324 if (MoveGenerator != null) { … … 323 335 MoveEvaluatorParameter.ValidValues.Add(moveEvaluator); 324 336 foreach (ITabuChecker tabuMoveEvaluator in operators.OfType<ITabuChecker>()) 325 Tabu MoveEvaluatorParameter.ValidValues.Add(tabuMoveEvaluator);337 TabuCheckerParameter.ValidValues.Add(tabuMoveEvaluator); 326 338 foreach (ITabuMaker tabuMoveMaker in operators.OfType<ITabuMaker>()) 327 TabuM oveMakerParameter.ValidValues.Add(tabuMoveMaker);339 TabuMakerParameter.ValidValues.Add(tabuMoveMaker); 328 340 } 329 341 if (oldMoveMaker != null) { … … 336 348 } 337 349 if (oldTabuMoveMaker != null) { 338 ITabuMaker tmm = TabuM oveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveMaker.GetType());339 if (tmm != null) TabuM oveMaker = tmm;350 ITabuMaker tmm = TabuMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveMaker.GetType()); 351 if (tmm != null) TabuMaker = tmm; 340 352 } 341 353 if (oldTabuMoveEvaluator != null) { 342 ITabuChecker tme = Tabu MoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveEvaluator.GetType());343 if (tme != null) Tabu MoveEvaluator = tme;354 ITabuChecker tme = TabuCheckerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveEvaluator.GetType()); 355 if (tme != null) TabuChecker = tme; 344 356 } 345 357 } … … 348 360 MoveMakerParameter.ValidValues.Clear(); 349 361 MoveEvaluatorParameter.ValidValues.Clear(); 350 Tabu MoveEvaluatorParameter.ValidValues.Clear();351 TabuM oveMakerParameter.ValidValues.Clear();362 TabuCheckerParameter.ValidValues.Clear(); 363 TabuMakerParameter.ValidValues.Clear(); 352 364 } 353 365 private void ParameterizeSolutionsCreator() { … … 361 373 if (MoveEvaluator != null) 362 374 MainLoop.MoveQualityParameter.ActualName = MoveEvaluator.MoveQualityParameter.ActualName; 363 if (Tabu MoveEvaluator != null)364 MainLoop.MoveTabuParameter.ActualName = Tabu MoveEvaluator.MoveTabuParameter.ActualName;375 if (TabuChecker != null) 376 MainLoop.MoveTabuParameter.ActualName = TabuChecker.MoveTabuParameter.ActualName; 365 377 MainLoop.VisualizerParameter.ActualName = Problem.VisualizerParameter.Name; 366 378 if (Problem.Visualizer != null) … … 389 401 } 390 402 } 403 private void ParameterizeTabuMaker() { 404 foreach (ITabuMaker op in Problem.Operators.OfType<ITabuMaker>()) { 405 op.QualityParameter.ActualName = Problem.Evaluator.QualityParameter.ActualName; 406 if (MoveEvaluator != null) 407 op.MoveQualityParameter.ActualName = MoveEvaluator.MoveQualityParameter.ActualName; 408 } 409 } 410 private void ParameterizeTabuChecker() { 411 foreach (ITabuChecker op in Problem.Operators.OfType<ITabuChecker>()) { 412 if (MoveEvaluator != null) 413 op.MoveQualityParameter.ActualName = MoveEvaluator.MoveQualityParameter.ActualName; 414 if (TabuChecker != null) 415 op.MoveTabuParameter.ActualName = TabuChecker.MoveTabuParameter.ActualName; 416 } 417 } 391 418 #endregion 392 419 }
Note: See TracChangeset
for help on using the changeset viewer.