Changeset 11968


Ignore:
Timestamp:
02/07/15 02:04:59 (7 years ago)
Author:
bburlacu
Message:

#1772: Small performance tweaks to the TraceCalculator. Reverted SubtreeCrossover to old behavior: do not clone subtrees (as it breaks tracing).

Location:
branches/HeuristicLab.EvolutionTracking
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SubtreeCrossover.cs

    r11965 r11968  
    109109        return parent0;
    110110      } else {
    111         var selectedBranch = (ISymbolicExpressionTreeNode)SelectRandomBranch(random, allowedBranches, internalCrossoverPointProbability).Clone();
     111        var selectedBranch = SelectRandomBranch(random, allowedBranches, internalCrossoverPointProbability);
    112112
    113113        if (crossoverPoint0.Child != null) {
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.EvolutionTracking.Views/3.4/HeuristicLab.EvolutionTracking.Views-3.4.csproj

    r11852 r11968  
    102102      <DependentUpon>FrequentFragmentsDialog.cs</DependentUpon>
    103103    </Compile>
    104     <Compile Include="GenealogyGraphChart.cs">
    105       <SubType>UserControl</SubType>
    106     </Compile>
     104    <Compile Include="GenealogyGraphChart.cs" />
    107105    <Compile Include="GenealogyGraphChart.Designer.cs">
    108106      <DependentUpon>GenealogyGraphChart.cs</DependentUpon>
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/TraceCalculator.cs

    r11925 r11968  
    9292      int si = subtreeIndex; // subtree index
    9393      int fi = 0; // fragment index
    94       while (g.Parents.Any()) {
     94      while (((List<IArc>)((IVertex)g).InArcs).Count > 0) {
     95        //      while (g.Parents.Any()) {
    9596        Debug.Assert(si < g.Data.Length);
    9697        var inArcs = (List<IArc>)((IVertex)g).InArcs;
     
    217218      int lastFi = lastTraceData.FragmentIndex; // last fragment index (index of the fragment in the previous trace node)
    218219      var td = new TraceData(si, fi, lastSi, lastFi); // trace data
    219       var arc = current.OutArcs.SingleOrDefault(a => a.Target == last && a.Data.Equals(td));
     220      //var arc = current.OutArcs.SingleOrDefault(a => a.Target == last && a.Data.Equals(td));
     221      var outArcs = (List<IArc>)((IVertex)current).OutArcs;
     222      var arc = outArcs.FirstOrDefault(a => a.Target == last && ((IArc<IDeepCloneable>)a).Data.Equals(td));
    220223      if (arc == null) {
    221224        arc = new GenealogyGraphArc(current, last) { Data = td };
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Tracking.sln

    r11881 r11968  
    1010    Local.testsettings = Local.testsettings
    1111    Performance1.psess = Performance1.psess
     12    Performance3.psess = Performance3.psess
    1213    PreBuildEvent.cmd = PreBuildEvent.cmd
    1314    TraceAndTestImpact.testsettings = TraceAndTestImpact.testsettings
     
    184185    HideSolutionNode = FALSE
    185186  EndGlobalSection
     187  GlobalSection(Performance) = preSolution
     188    HasPerformanceSessions = true
     189  EndGlobalSection
    186190  GlobalSection(TestCaseManagementSettings) = postSolution
    187191    CategoryFile = HeuristicLab.Tracking.vsmdi
Note: See TracChangeset for help on using the changeset viewer.