Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/07/14 21:44:36 (11 years ago)
Author:
bburlacu
Message:

#1772: Cleaned up the design of the generic genealogy analyzer and related classes, created generic genealogy graph view. Added instrumentation code to TravelingSalesmapProblem.cs allowing genealogy tracking. Merged trunk changes (instrumentation for multi operators).

Location:
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.TravelingSalesman
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.TravelingSalesman

    • Property svn:mergeinfo set to (toggle deleted branches)
      /stable/HeuristicLab.Problems.TravelingSalesmanmergedeligible
      /trunk/sources/HeuristicLab.Problems.TravelingSalesmanmergedeligible
      /branches/Algorithms.GradientDescent/HeuristicLab.Problems.TravelingSalesman5516-5520
      /branches/Benchmarking/sources/HeuristicLab.Problems.TravelingSalesman6917-7005
      /branches/CloningRefactoring/HeuristicLab.Problems.TravelingSalesman4656-4721
      /branches/DataAnalysis Refactoring/HeuristicLab.Problems.TravelingSalesman5471-5808
      /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Problems.TravelingSalesman5815-6180
      /branches/DataAnalysis/HeuristicLab.Problems.TravelingSalesman4458-4459,​4462,​4464
      /branches/GP.Grammar.Editor/HeuristicLab.Problems.TravelingSalesman6284-6795
      /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Problems.TravelingSalesman5060
      /branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.Problems.TravelingSalesman6123-9799
      /branches/NET40/sources/HeuristicLab.Problems.TravelingSalesman5138-5162
      /branches/ParallelEngine/HeuristicLab.Problems.TravelingSalesman5175-5192
      /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.TravelingSalesman7568-7810
      /branches/QAPAlgorithms/HeuristicLab.Problems.TravelingSalesman6350-6627
      /branches/Restructure trunk solution/HeuristicLab.Problems.TravelingSalesman6828
      /branches/RuntimeOptimizer/HeuristicLab.Problems.TravelingSalesman8943-9078
      /branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TravelingSalesman7787-8333
      /branches/SlaveShutdown/HeuristicLab.Problems.TravelingSalesman8944-8956
      /branches/SuccessProgressAnalysis/HeuristicLab.Problems.TravelingSalesman5370-5682
      /branches/Trunk/HeuristicLab.Problems.TravelingSalesman6829-6865
      /branches/UnloadJobs/HeuristicLab.Problems.TravelingSalesman9168-9215
      /branches/VNS/HeuristicLab.Problems.TravelingSalesman5594-5752
      /branches/histogram/HeuristicLab.Problems.TravelingSalesman5959-6341
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs

    r9848 r10300  
    3434using HeuristicLab.PluginInfrastructure;
    3535using HeuristicLab.Problems.Instances;
     36using HeuristicLab.Problems.TravelingSalesman.Analyzers;
    3637
    3738namespace HeuristicLab.Problems.TravelingSalesman {
     
    8485    private SingleObjectivePopulationDiversityAnalyzer SingleObjectivePopulationDiversityAnalyzer {
    8586      get { return Operators.OfType<SingleObjectivePopulationDiversityAnalyzer>().FirstOrDefault(); }
     87    }
     88
     89    private TSPGenealogyAnalyzer TSPGenealogyAnalyzer {
     90      get { return Operators.OfType<TSPGenealogyAnalyzer>().FirstOrDefault(); }
     91    }
     92    private IPermutationCrossover TSPCrossover {
     93      get { return Operators.OfType<IPermutationCrossover>().FirstOrDefault(); }
     94    }
     95
     96    private IPermutationManipulator TSPManipulator {
     97      get { return Operators.OfType<IPermutationManipulator>().FirstOrDefault(); }
    8698    }
    8799    #endregion
     
    240252      Operators.Add(new TSPAlleleFrequencyAnalyzer());
    241253      Operators.Add(new SingleObjectivePopulationDiversityAnalyzer());
     254      Operators.Add(new TSPGenealogyAnalyzer());
    242255      ParameterizeAnalyzers();
    243256      var operators = new HashSet<IPermutationOperator>(new IPermutationOperator[] {
     
    326339        SingleObjectivePopulationDiversityAnalyzer.SimilarityCalculator = Operators.OfType<TSPSimilarityCalculator>().SingleOrDefault();
    327340      }
     341
    328342    }
    329343    private void ParameterizeOperators() {
     
    369383        op.SolutionVariableName = SolutionCreator.PermutationParameter.ActualName;
    370384        op.QualityVariableName = Evaluator.QualityParameter.ActualName;
     385      }
     386      if (TSPGenealogyAnalyzer != null) {
     387        if (TSPCrossover != null) {
     388          TSPGenealogyAnalyzer.CrossoverParentsParameterName = TSPCrossover.ParentsParameter.Name;
     389          TSPGenealogyAnalyzer.CrossoverChildParameterName = TSPCrossover.ChildParameter.Name;
     390        }
     391        if (TSPManipulator != null) {
     392          TSPGenealogyAnalyzer.ManipulatorChildParameterName = TSPManipulator.PermutationParameter.Name;
     393        }
     394        TSPGenealogyAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
     395        if (Evaluator is ITSPPathEvaluator) {
     396          TSPGenealogyAnalyzer.PopulationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName;
     397        } else {
     398          throw new Exception("Unknown Evaluator. Could not parameterize genealogy analyzer.");
     399        }
    371400      }
    372401    }
Note: See TracChangeset for help on using the changeset viewer.