Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/16/13 13:13:41 (11 years ago)
Author:
spimming
Message:

#1888:

  • Merged revisions from trunk
Location:
branches/OaaS
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/OaaS

  • branches/OaaS/HeuristicLab.Problems.TestFunctions

    • Property svn:mergeinfo set to (toggle deleted branches)
      /trunk/sources/HeuristicLab.Problems.TestFunctionsmergedeligible
      /branches/Algorithms.GradientDescent/HeuristicLab.Problems.TestFunctions5516-5520
      /branches/Benchmarking/sources/HeuristicLab.Problems.TestFunctions6917-7005
      /branches/CMAES/HeuristicLab.Problems.TestFunctions9121-9257
      /branches/CloningRefactoring/HeuristicLab.Problems.TestFunctions4656-4721
      /branches/DataAnalysis Refactoring/HeuristicLab.Problems.TestFunctions5471-5808
      /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Problems.TestFunctions5815-6180
      /branches/DataAnalysis/HeuristicLab.Problems.TestFunctions4458-4459,​4462,​4464
      /branches/GP.Grammar.Editor/HeuristicLab.Problems.TestFunctions6284-6795
      /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Problems.TestFunctions5060
      /branches/NET40/sources/HeuristicLab.Problems.TestFunctions5138-5162
      /branches/ParallelEngine/HeuristicLab.Problems.TestFunctions5175-5192
      /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.TestFunctions7568-7810
      /branches/QAPAlgorithms/HeuristicLab.Problems.TestFunctions6350-6627
      /branches/Restructure trunk solution/HeuristicLab.Problems.TestFunctions6828
      /branches/RuntimeOptimizer/HeuristicLab.Problems.TestFunctions8943-9078
      /branches/ScatterSearch (trunk integration)/HeuristicLab.Problems.TestFunctions7787-8333
      /branches/SlaveShutdown/HeuristicLab.Problems.TestFunctions8944-8956
      /branches/SuccessProgressAnalysis/HeuristicLab.Problems.TestFunctions5370-5682
      /branches/Trunk/HeuristicLab.Problems.TestFunctions6829-6865
      /branches/UnloadJobs/HeuristicLab.Problems.TestFunctions9168-9215
      /branches/VNS/HeuristicLab.Problems.TestFunctions5594-5752
      /branches/histogram/HeuristicLab.Problems.TestFunctions5959-6341
  • branches/OaaS/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs

    r7442 r9363  
    2020#endregion
    2121
    22 using System;
    23 using System.Collections.Generic;
    24 using System.Linq;
     22using HeuristicLab.Analysis;
    2523using HeuristicLab.Common;
    2624using HeuristicLab.Core;
     
    3129using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3230using HeuristicLab.PluginInfrastructure;
     31using System;
     32using System.Collections.Generic;
     33using System.Linq;
    3334
    3435namespace HeuristicLab.Problems.TestFunctions {
     
    6970    private BestSingleObjectiveTestFunctionSolutionAnalyzer BestSingleObjectiveTestFunctionSolutionAnalyzer {
    7071      get { return Operators.OfType<BestSingleObjectiveTestFunctionSolutionAnalyzer>().FirstOrDefault(); }
     72    }
     73    private SingleObjectivePopulationDiversityAnalyzer SingleObjectivePopulationDiversityAnalyzer {
     74      get { return Operators.OfType<SingleObjectivePopulationDiversityAnalyzer>().FirstOrDefault(); }
    7175    }
    7276    #endregion
     
    123127    }
    124128
    125     private bool IsNotFieldReferenced(IOperator x) {
    126       return !(x == strategyVectorCreator
    127         || x == strategyVectorCrossover
    128         || x == strategyVectorManipulator);
    129     }
    130 
    131129    #region Events
    132130    protected override void OnSolutionCreatorChanged() {
     
    139137    protected override void OnEvaluatorChanged() {
    140138      base.OnEvaluatorChanged();
    141       ParameterizeEvaluator();
     139      bool problemSizeChange = ProblemSize.Value < Evaluator.MinimumProblemSize
     140        || ProblemSize.Value > Evaluator.MaximumProblemSize;
     141      if (problemSizeChange) {
     142        ProblemSize.Value = Math.Max(Evaluator.MinimumProblemSize, Math.Min(ProblemSize.Value, Evaluator.MaximumProblemSize));
     143      } else {
     144        ParameterizeEvaluator();
     145      }
    142146      UpdateMoveEvaluators();
    143147      ParameterizeAnalyzers();
    144148      Maximization.Value = Evaluator.Maximization;
    145149      BoundsParameter.Value = Evaluator.Bounds;
    146       if (ProblemSize.Value < Evaluator.MinimumProblemSize)
    147         ProblemSize.Value = Evaluator.MinimumProblemSize;
    148       else if (ProblemSize.Value > Evaluator.MaximumProblemSize)
    149         ProblemSize.Value = Evaluator.MaximumProblemSize;
    150150      BestKnownQuality = new DoubleValue(Evaluator.BestKnownQuality);
    151151      Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged);
     
    247247    }
    248248    private void ParameterizeAnalyzers() {
    249       BestSingleObjectiveTestFunctionSolutionAnalyzer.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    250       BestSingleObjectiveTestFunctionSolutionAnalyzer.ResultsParameter.ActualName = "Results";
    251       BestSingleObjectiveTestFunctionSolutionAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
    252       BestSingleObjectiveTestFunctionSolutionAnalyzer.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name;
    253       BestSingleObjectiveTestFunctionSolutionAnalyzer.BestKnownSolutionParameter.ActualName = BestKnownSolutionParameter.Name;
    254       BestSingleObjectiveTestFunctionSolutionAnalyzer.MaximizationParameter.ActualName = MaximizationParameter.Name;
    255       BestSingleObjectiveTestFunctionSolutionAnalyzer.EvaluatorParameter.ActualName = EvaluatorParameter.Name;
    256       BestSingleObjectiveTestFunctionSolutionAnalyzer.BoundsParameter.ActualName = BoundsParameter.Name;
     249      if (BestSingleObjectiveTestFunctionSolutionAnalyzer != null) {
     250        BestSingleObjectiveTestFunctionSolutionAnalyzer.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
     251        BestSingleObjectiveTestFunctionSolutionAnalyzer.ResultsParameter.ActualName = "Results";
     252        BestSingleObjectiveTestFunctionSolutionAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
     253        BestSingleObjectiveTestFunctionSolutionAnalyzer.BestKnownQualityParameter.ActualName = BestKnownQualityParameter.Name;
     254        BestSingleObjectiveTestFunctionSolutionAnalyzer.BestKnownSolutionParameter.ActualName = BestKnownSolutionParameter.Name;
     255        BestSingleObjectiveTestFunctionSolutionAnalyzer.MaximizationParameter.ActualName = MaximizationParameter.Name;
     256        BestSingleObjectiveTestFunctionSolutionAnalyzer.EvaluatorParameter.ActualName = EvaluatorParameter.Name;
     257        BestSingleObjectiveTestFunctionSolutionAnalyzer.BoundsParameter.ActualName = BoundsParameter.Name;
     258      }
     259
     260      if (SingleObjectivePopulationDiversityAnalyzer != null) {
     261        SingleObjectivePopulationDiversityAnalyzer.MaximizationParameter.ActualName = MaximizationParameter.Name;
     262        SingleObjectivePopulationDiversityAnalyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
     263        SingleObjectivePopulationDiversityAnalyzer.ResultsParameter.ActualName = "Results";
     264        SingleObjectivePopulationDiversityAnalyzer.SimilarityCalculator = Operators.OfType<SingleObjectiveTestFunctionSimilarityCalculator>().SingleOrDefault();
     265      }
    257266    }
    258267    private void InitializeOperators() {
     268      Operators.Add(new SingleObjectiveTestFunctionImprovementOperator());
     269      Operators.Add(new SingleObjectiveTestFunctionPathRelinker());
     270      Operators.Add(new SingleObjectiveTestFunctionSimilarityCalculator());
     271
    259272      Operators.Add(new BestSingleObjectiveTestFunctionSolutionAnalyzer());
     273      Operators.Add(new SingleObjectivePopulationDiversityAnalyzer());
    260274      ParameterizeAnalyzers();
    261275      Operators.AddRange(ApplicationManager.Manager.GetInstances<IRealVectorOperator>().Cast<IOperator>());
     
    308322      Evaluator.PointParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    309323      Evaluator.PointParameter.Hidden = true;
    310       BestKnownSolutionParameter.Value = Evaluator.GetBestKnownSolution(ProblemSize.Value);
     324      try {
     325        BestKnownSolutionParameter.Value = Evaluator.GetBestKnownSolution(ProblemSize.Value);
     326      }
     327      catch (ArgumentException e) {
     328        ErrorHandling.ShowErrorDialog(e);
     329        ProblemSize.Value = Evaluator.MinimumProblemSize;
     330      }
    311331    }
    312332    private void ParameterizeOperators() {
    313       foreach (IRealVectorCrossover op in Operators.OfType<IRealVectorCrossover>()) {
     333      foreach (var op in Operators.OfType<IRealVectorCrossover>()) {
    314334        op.ParentsParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    315335        op.ParentsParameter.Hidden = true;
     
    319339        op.BoundsParameter.Hidden = true;
    320340      }
    321       foreach (IRealVectorManipulator op in Operators.OfType<IRealVectorManipulator>()) {
     341      foreach (var op in Operators.OfType<IRealVectorManipulator>()) {
    322342        op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    323343        op.RealVectorParameter.Hidden = true;
     
    325345        op.BoundsParameter.Hidden = true;
    326346      }
    327       foreach (IRealVectorMoveOperator op in Operators.OfType<IRealVectorMoveOperator>()) {
    328         op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    329         op.RealVectorParameter.Hidden = true;
    330       }
    331       foreach (IRealVectorMoveGenerator op in Operators.OfType<IRealVectorMoveGenerator>()) {
     347      foreach (var op in Operators.OfType<IRealVectorMoveOperator>()) {
     348        op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
     349        op.RealVectorParameter.Hidden = true;
     350      }
     351      foreach (var op in Operators.OfType<IRealVectorMoveGenerator>()) {
    332352        op.BoundsParameter.ActualName = BoundsParameter.Name;
    333353        op.BoundsParameter.Hidden = true;
    334354      }
    335       foreach (ISingleObjectiveTestFunctionAdditiveMoveEvaluator op in Operators.OfType<ISingleObjectiveTestFunctionAdditiveMoveEvaluator>()) {
     355      foreach (var op in Operators.OfType<ISingleObjectiveTestFunctionAdditiveMoveEvaluator>()) {
    336356        op.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName;
    337357        op.QualityParameter.Hidden = true;
     
    339359        op.RealVectorParameter.Hidden = true;
    340360      }
    341       foreach (IRealVectorParticleCreator op in Operators.OfType<IRealVectorParticleCreator>()) {
     361      foreach (var op in Operators.OfType<IRealVectorParticleCreator>()) {
    342362        op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    343363        op.RealVectorParameter.Hidden = true;
     
    347367        op.ProblemSizeParameter.Hidden = true;
    348368      }
    349       foreach (IRealVectorParticleUpdater op in Operators.OfType<IRealVectorParticleUpdater>()) {
     369      foreach (var op in Operators.OfType<IRealVectorParticleUpdater>()) {
    350370        op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    351371        op.RealVectorParameter.Hidden = true;
     
    353373        op.BoundsParameter.Hidden = true;
    354374      }
    355       foreach (IRealVectorSwarmUpdater op in Operators.OfType<IRealVectorSwarmUpdater>()) {
     375      foreach (var op in Operators.OfType<IRealVectorSwarmUpdater>()) {
    356376        op.RealVectorParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
    357377        op.RealVectorParameter.Hidden = true;
     
    363383        op.RealVectorParameter.Hidden = true;
    364384      }
     385      foreach (var op in Operators.OfType<ISingleObjectiveImprovementOperator>()) {
     386        op.SolutionParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
     387        op.SolutionParameter.Hidden = true;
     388      }
     389      foreach (var op in Operators.OfType<ISingleObjectivePathRelinker>()) {
     390        op.ParentsParameter.ActualName = SolutionCreator.RealVectorParameter.ActualName;
     391        op.ParentsParameter.Hidden = true;
     392      }
     393      foreach (var op in Operators.OfType<SingleObjectiveTestFunctionSimilarityCalculator>()) {
     394        op.SolutionVariableName = SolutionCreator.RealVectorParameter.ActualName;
     395        op.QualityVariableName = Evaluator.QualityParameter.ActualName;
     396        op.Bounds = Bounds;
     397      }
    365398    }
    366399    private void UpdateStrategyVectorBounds() {
    367       DoubleMatrix strategyBounds = (DoubleMatrix)Bounds.Clone();
     400      var strategyBounds = (DoubleMatrix)Bounds.Clone();
    368401      for (int i = 0; i < strategyBounds.Rows; i++) {
    369402        if (strategyBounds[i, 0] < 0) strategyBounds[i, 0] = 0;
Note: See TracChangeset for help on using the changeset viewer.