Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/27/11 09:22:20 (13 years ago)
Author:
abeham
Message:

#1465

  • updated branch from trunk
Location:
branches/histogram
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/histogram

  • branches/histogram/HeuristicLab.Algorithms.LocalSearch/3.3/LocalSearchImprovementOperator.cs

    r6046 r6055  
    200200      ParameterizeLSMainLoop();
    201201      ParameterizeAnalyzers();
     202      UpdateAnalyzers();
    202203    }
    203204
     
    234235    }
    235236
     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
    236264    private void UpdateMoveOperators() {
    237265      IMoveGenerator oldMoveGenerator = MoveGenerator;
Note: See TracChangeset for help on using the changeset viewer.