Changeset 3131 for trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs
- Timestamp:
- 03/19/10 18:20:30 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs
r3101 r3131 293 293 ISingleObjectiveMoveEvaluator oldMoveEvaluator = MoveEvaluator; 294 294 ClearMoveParameters(); 295 List<Type> moveTypes = MoveGenerator.GetType().GetInterfaces().Where(x => typeof(IMoveOperator).IsAssignableFrom(x)).ToList(); 296 foreach (Type type in moveTypes.ToList()) { 297 if (moveTypes.Any(t => t != type && type.IsAssignableFrom(t))) 298 moveTypes.Remove(type); 299 } 300 foreach (Type type in moveTypes) { 301 var operators = Problem.Operators.Where(x => type.IsAssignableFrom(x.GetType())).OrderBy(x => x.Name); 302 foreach (IMoveMaker moveMaker in operators.OfType<IMoveMaker>()) 303 MoveMakerParameter.ValidValues.Add(moveMaker); 304 foreach (ISingleObjectiveMoveEvaluator moveEvaluator in operators.OfType<ISingleObjectiveMoveEvaluator>()) 305 MoveEvaluatorParameter.ValidValues.Add(moveEvaluator); 306 } 307 if (oldMoveMaker != null) { 308 IMoveMaker mm = MoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveMaker.GetType()); 309 if (mm != null) MoveMaker = mm; 310 } 311 if (oldMoveEvaluator != null) { 312 ISingleObjectiveMoveEvaluator me = MoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveEvaluator.GetType()); 313 if (me != null) MoveEvaluator = me; 295 if (MoveGenerator != null) { 296 List<Type> moveTypes = MoveGenerator.GetType().GetInterfaces().Where(x => typeof(IMoveOperator).IsAssignableFrom(x)).ToList(); 297 foreach (Type type in moveTypes.ToList()) { 298 if (moveTypes.Any(t => t != type && type.IsAssignableFrom(t))) 299 moveTypes.Remove(type); 300 } 301 foreach (Type type in moveTypes) { 302 var operators = Problem.Operators.Where(x => type.IsAssignableFrom(x.GetType())).OrderBy(x => x.Name); 303 foreach (IMoveMaker moveMaker in operators.OfType<IMoveMaker>()) 304 MoveMakerParameter.ValidValues.Add(moveMaker); 305 foreach (ISingleObjectiveMoveEvaluator moveEvaluator in operators.OfType<ISingleObjectiveMoveEvaluator>()) 306 MoveEvaluatorParameter.ValidValues.Add(moveEvaluator); 307 } 308 if (oldMoveMaker != null) { 309 IMoveMaker mm = MoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveMaker.GetType()); 310 if (mm != null) MoveMaker = mm; 311 } 312 if (oldMoveEvaluator != null) { 313 ISingleObjectiveMoveEvaluator me = MoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveEvaluator.GetType()); 314 if (me != null) MoveEvaluator = me; 315 } 314 316 } 315 317 }
Note: See TracChangeset
for help on using the changeset viewer.