Changeset 6055 for branches/histogram/HeuristicLab.Algorithms.LocalSearch/3.3/LocalSearchImprovementOperator.cs
- Timestamp:
- 04/27/11 09:22:20 (13 years ago)
- Location:
- branches/histogram
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/histogram
- Property svn:mergeinfo changed
/trunk/sources merged: 6047-6048,6051-6054
- Property svn:mergeinfo changed
-
branches/histogram/HeuristicLab.Algorithms.LocalSearch/3.3/LocalSearchImprovementOperator.cs
r6046 r6055 200 200 ParameterizeLSMainLoop(); 201 201 ParameterizeAnalyzers(); 202 UpdateAnalyzers(); 202 203 } 203 204 … … 234 235 } 235 236 237 private bool IsSubclassOfGeneric(Type generic, Type toCheck) { 238 while (toCheck != typeof(object)) { 239 var cur = toCheck.IsGenericType ? toCheck.GetGenericTypeDefinition() : toCheck; 240 if (generic == cur) { 241 return true; 242 } 243 toCheck = toCheck.BaseType; 244 } 245 return false; 246 } 247 248 private void UpdateAnalyzers() { 249 Analyzer.Operators.Clear(); 250 if (problem != null) { 251 foreach (IAnalyzer analyzer in problem.Operators.OfType<IAnalyzer>()) { 252 if (!IsSubclassOfGeneric(typeof(AlleleFrequencyAnalyzer<>), analyzer.GetType()) && 253 !IsSubclassOfGeneric(typeof(PopulationDiversityAnalyzer<>), analyzer.GetType())) { 254 IAnalyzer clone = analyzer.Clone() as IAnalyzer; 255 foreach (IScopeTreeLookupParameter param in clone.Parameters.OfType<IScopeTreeLookupParameter>()) 256 param.Depth = 0; 257 Analyzer.Operators.Add(clone); 258 } 259 } 260 } 261 Analyzer.Operators.Add(qualityAnalyzer); 262 } 263 236 264 private void UpdateMoveOperators() { 237 265 IMoveGenerator oldMoveGenerator = MoveGenerator;
Note: See TracChangeset
for help on using the changeset viewer.