Changeset 3131
- Timestamp:
- 03/19/10 18:20:30 (15 years ago)
- Location:
- trunk/sources
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.LocalSearch/3.3/LocalSearch.cs
r3103 r3131 242 242 ISingleObjectiveMoveEvaluator oldMoveEvaluator = MoveEvaluator; 243 243 ClearMoveParameters(); 244 List<Type> moveTypes = MoveGenerator.GetType().GetInterfaces().Where(x => typeof(IMoveOperator).IsAssignableFrom(x)).ToList(); 245 foreach (Type type in moveTypes.ToList()) { 246 if (moveTypes.Any(t => t != type && type.IsAssignableFrom(t))) 247 moveTypes.Remove(type); 248 } 249 foreach (Type type in moveTypes) { 250 var operators = Problem.Operators.Where(x => type.IsAssignableFrom(x.GetType())).OrderBy(x => x.Name); 251 foreach (IMoveMaker moveMaker in operators.OfType<IMoveMaker>()) 252 MoveMakerParameter.ValidValues.Add(moveMaker); 253 foreach (ISingleObjectiveMoveEvaluator moveEvaluator in operators.OfType<ISingleObjectiveMoveEvaluator>()) 254 MoveEvaluatorParameter.ValidValues.Add(moveEvaluator); 255 } 256 if (oldMoveMaker != null) { 257 IMoveMaker mm = MoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveMaker.GetType()); 258 if (mm != null) MoveMaker = mm; 259 } 260 if (oldMoveEvaluator != null) { 261 ISingleObjectiveMoveEvaluator me = MoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveEvaluator.GetType()); 262 if (me != null) MoveEvaluator = me; 244 if (MoveGenerator != null) { 245 List<Type> moveTypes = MoveGenerator.GetType().GetInterfaces().Where(x => typeof(IMoveOperator).IsAssignableFrom(x)).ToList(); 246 foreach (Type type in moveTypes.ToList()) { 247 if (moveTypes.Any(t => t != type && type.IsAssignableFrom(t))) 248 moveTypes.Remove(type); 249 } 250 foreach (Type type in moveTypes) { 251 var operators = Problem.Operators.Where(x => type.IsAssignableFrom(x.GetType())).OrderBy(x => x.Name); 252 foreach (IMoveMaker moveMaker in operators.OfType<IMoveMaker>()) 253 MoveMakerParameter.ValidValues.Add(moveMaker); 254 foreach (ISingleObjectiveMoveEvaluator moveEvaluator in operators.OfType<ISingleObjectiveMoveEvaluator>()) 255 MoveEvaluatorParameter.ValidValues.Add(moveEvaluator); 256 } 257 if (oldMoveMaker != null) { 258 IMoveMaker mm = MoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveMaker.GetType()); 259 if (mm != null) MoveMaker = mm; 260 } 261 if (oldMoveEvaluator != null) { 262 ISingleObjectiveMoveEvaluator me = MoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveEvaluator.GetType()); 263 if (me != null) MoveEvaluator = me; 264 } 263 265 } 264 266 } -
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 } -
trunk/sources/HeuristicLab.Algorithms.TabuSearch/3.3/TabuSearch.cs
r3104 r3131 284 284 ITabuMoveMaker oldTabuMoveMaker = TabuMoveMaker; 285 285 ClearMoveParameters(); 286 List<Type> moveTypes = MoveGenerator.GetType().GetInterfaces().Where(x => typeof(IMoveOperator).IsAssignableFrom(x)).ToList(); 287 foreach (Type type in moveTypes.ToList()) { 288 if (moveTypes.Any(t => t != type && type.IsAssignableFrom(t))) 289 moveTypes.Remove(type); 290 } 291 foreach (Type type in moveTypes) { 292 var operators = Problem.Operators.Where(x => type.IsAssignableFrom(x.GetType())).OrderBy(x => x.Name); 293 foreach (IMoveMaker moveMaker in operators.OfType<IMoveMaker>()) 294 MoveMakerParameter.ValidValues.Add(moveMaker); 295 foreach (ISingleObjectiveMoveEvaluator moveEvaluator in operators.OfType<ISingleObjectiveMoveEvaluator>()) 296 MoveEvaluatorParameter.ValidValues.Add(moveEvaluator); 297 foreach (ITabuMoveEvaluator tabuMoveEvaluator in operators.OfType<ITabuMoveEvaluator>()) 298 TabuMoveEvaluatorParameter.ValidValues.Add(tabuMoveEvaluator); 299 foreach (ITabuMoveMaker tabuMoveMaker in operators.OfType<ITabuMoveMaker>()) 300 TabuMoveMakerParameter.ValidValues.Add(tabuMoveMaker); 301 } 302 if (oldMoveMaker != null) { 303 IMoveMaker mm = MoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveMaker.GetType()); 304 if (mm != null) MoveMaker = mm; 305 } 306 if (oldMoveEvaluator != null) { 307 ISingleObjectiveMoveEvaluator me = MoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveEvaluator.GetType()); 308 if (me != null) MoveEvaluator = me; 309 } 310 if (oldTabuMoveMaker != null) { 311 ITabuMoveMaker tmm = TabuMoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveMaker.GetType()); 312 if (tmm != null) TabuMoveMaker = tmm; 313 } 314 if (oldTabuMoveEvaluator != null) { 315 ITabuMoveEvaluator tme = TabuMoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveEvaluator.GetType()); 316 if (tme != null) TabuMoveEvaluator = tme; 286 if (MoveGenerator != null) { 287 List<Type> moveTypes = MoveGenerator.GetType().GetInterfaces().Where(x => typeof(IMoveOperator).IsAssignableFrom(x)).ToList(); 288 foreach (Type type in moveTypes.ToList()) { 289 if (moveTypes.Any(t => t != type && type.IsAssignableFrom(t))) 290 moveTypes.Remove(type); 291 } 292 foreach (Type type in moveTypes) { 293 var operators = Problem.Operators.Where(x => type.IsAssignableFrom(x.GetType())).OrderBy(x => x.Name); 294 foreach (IMoveMaker moveMaker in operators.OfType<IMoveMaker>()) 295 MoveMakerParameter.ValidValues.Add(moveMaker); 296 foreach (ISingleObjectiveMoveEvaluator moveEvaluator in operators.OfType<ISingleObjectiveMoveEvaluator>()) 297 MoveEvaluatorParameter.ValidValues.Add(moveEvaluator); 298 foreach (ITabuMoveEvaluator tabuMoveEvaluator in operators.OfType<ITabuMoveEvaluator>()) 299 TabuMoveEvaluatorParameter.ValidValues.Add(tabuMoveEvaluator); 300 foreach (ITabuMoveMaker tabuMoveMaker in operators.OfType<ITabuMoveMaker>()) 301 TabuMoveMakerParameter.ValidValues.Add(tabuMoveMaker); 302 } 303 if (oldMoveMaker != null) { 304 IMoveMaker mm = MoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveMaker.GetType()); 305 if (mm != null) MoveMaker = mm; 306 } 307 if (oldMoveEvaluator != null) { 308 ISingleObjectiveMoveEvaluator me = MoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldMoveEvaluator.GetType()); 309 if (me != null) MoveEvaluator = me; 310 } 311 if (oldTabuMoveMaker != null) { 312 ITabuMoveMaker tmm = TabuMoveMakerParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveMaker.GetType()); 313 if (tmm != null) TabuMoveMaker = tmm; 314 } 315 if (oldTabuMoveEvaluator != null) { 316 ITabuMoveEvaluator tme = TabuMoveEvaluatorParameter.ValidValues.FirstOrDefault(x => x.GetType() == oldTabuMoveEvaluator.GetType()); 317 if (tme != null) TabuMoveEvaluator = tme; 318 } 317 319 } 318 320 }
Note: See TracChangeset
for help on using the changeset viewer.