Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/27/17 13:45:01 (7 years ago)
Author:
bwerth
Message:

#2780 worked on SAPBA; added IndividualStrategy

Location:
branches/SAPBA/HeuristicLab.Algorithms.SAPBA
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SAPBA/HeuristicLab.Algorithms.SAPBA

    • Property svn:global-ignores set to
      .vs
      obj
    • Property svn:ignore set to
      new 2.txt
  • branches/SAPBA/HeuristicLab.Algorithms.SAPBA/Strategies/GenerationalStrategy.cs

    r14893 r14894  
    3737      if (RegressionSolution != null && Generations < NoGenerations.Value) Generations++;
    3838      else {
    39         foreach (var indi in individuals) Evaluate(indi.RealVector(), random);
     39        foreach (var indi in individuals) EvaluateSample(indi.RealVector(), random);
    4040        BuildRegressionSolution(random);
    4141        Generations = 0;
  • branches/SAPBA/HeuristicLab.Algorithms.SAPBA/Strategies/StrategyBase.cs

    r14893 r14894  
    3838    #region Properties
    3939    [Storable]
    40     private SurrogateAssistedPopulationBasedAlgorithm Algorithm;
     40    protected SurrogateAssistedPopulationBasedAlgorithm Algorithm;
    4141    [Storable]
    4242    private List<Tuple<RealVector, double>> Samples;
     
    9292
    9393        if (!globalResults.ContainsKey(BestQualityResultName)) globalResults.Add(new Result(BestQualityResultName, new DoubleValue(0.0)));
    94         ((DoubleValue)globalResults[BestQualityResultName].Value).Value = qualities[bestIdx];
    95         if (!globalResults.ContainsKey(BestSolutionResultName)) globalResults.Add(new Result(BestQualityResultName, new RealVector()));
    96         globalResults[BestSolutionResultName].Value = individuals[bestIdx].RealVector();
     94        ((DoubleValue)globalResults[BestQualityResultName].Value).Value = Samples[bestIdx].Item2;
     95        if (!globalResults.ContainsKey(BestSolutionResultName)) globalResults.Add(new Result(BestSolutionResultName, new RealVector()));
     96        globalResults[BestSolutionResultName].Value = Samples[bestIdx].Item1;
    9797
    9898        DataTable table;
     
    135135    }
    136136    protected Tuple<RealVector, double> EvaluateSample(RealVector point, IRandom random) {
     137      Cancellation.ThrowIfCancellationRequested();
     138      if (Samples.Count >= Algorithm.MaximumEvaluations) { Algorithm.OptimizationAlgorithm.Stop(); return new Tuple<RealVector, double>(point, 0.0); }
    137139      var p = new Tuple<RealVector, double>(point, Algorithm.Problem.Evaluate(GetIndividual(point), random));
    138140      Samples.Add(p);
     
    140142    }
    141143    protected Tuple<RealVector, double> EstimateSample(RealVector point, IRandom random) {
     144      if (Samples.Count == Algorithm.InitialEvaluations && RegressionSolution == null) BuildRegressionSolution(random);
    142145      return Samples.Count < Algorithm.InitialEvaluations ? EvaluateSample(point, random) : new Tuple<RealVector, double>(point, RegressionSolution.Model.GetEstimation(point));
    143146    }
Note: See TracChangeset for help on using the changeset viewer.