Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/16/13 16:11:31 (10 years ago)
Author:
mkommend
Message:

#1997: Updated symbolic island algorithm evaluators and added automatic wiring of evaluators.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis.IslandAlgorithms/HeuristicLab.Algorithms.DataAnalysis.Symbolic/3.3/ConsecutiveSamplesEvaluator.cs

    r10178 r10230  
    4747    private const string MaximumIterationsParameterName = "Maximum Iterations";
    4848
    49 
    5049    #region parameter properties
    5150    public ILookupParameter<IDataAnalysisProblemData> ProblemDataParameter {
     
    5958    }
    6059    public ILookupParameter<IntRange> FitnessCalculationPartitionParameter {
    61       get { return (IValueLookupParameter<IntRange>)Parameters[FitnessCalculationPartitionParameterName]; }
     60      get { return (ILookupParameter<IntRange>)Parameters[FitnessCalculationPartitionParameterName]; }
    6261    }
    6362    public ILookupParameter<IntRange> FixedSamplesPartitionParameter {
     
    128127      var fixedSamples = FixedSamplesPartitionParameter.ActualValue;
    129128
    130       //create fixed rows enumerable
    131       var rows = Enumerable.Range(fixedSamples.Start, fixedSamples.Size);
    132       //create consecutive rows enumerable
    133       if (ConsecutiveSamples > 0) {
    134         var dataMigrationInterval = DataMigrationIntervalParameter.ActualValue.Value;
    135         var islandIndex = IslandIndexParameter.ActualValue.Value;
    136         var generation = IterationsParameter.ActualValue.Value;
    137         var iteration = islandIndex + (generation / dataMigrationInterval);
    138         var consecutiveRows = GenerateRows(samples, fixedSamples, ConsecutiveSamples, Overlap, iteration);
    139         rows = rows.Concat(consecutiveRows);
     129      var dataMigrationInterval = DataMigrationIntervalParameter.ActualValue.Value;
     130      var generationValue = IterationsParameter.ActualValue;
     131      var generation = generationValue == null ? 0 : generationValue.Value;
     132
     133      //calculat new rows for evaluation
     134      if (generation % dataMigrationInterval == 0) {
     135        //create fixed rows enumerable
     136        var rows = Enumerable.Range(fixedSamples.Start, fixedSamples.Size);
     137        //create consecutive rows enumerable
     138        if (ConsecutiveSamples > 0) {
     139          var islandIndex = IslandIndexParameter.ActualValue.Value;
     140          var iteration = islandIndex + (generation / dataMigrationInterval);
     141          var consecutiveRows = GenerateRows(samples, fixedSamples, ConsecutiveSamples, Overlap, iteration);
     142          rows = rows.Concat(consecutiveRows);
     143        }
     144        //filter out test rows
     145        rows = rows.Where(r => r < problemData.TestPartition.Start || r > problemData.TestPartition.End);
     146
     147        //TODO change to lookup parameter
     148        ExecutionContext.Scope.Variables.Remove("Rows");
     149        ExecutionContext.Scope.Variables.Add(new HeuristicLab.Core.Variable("Rows", new EnumerableItem<int>(rows)));
    140150      }
    141       //filter out test rows
    142       rows = rows.Where(r => r < problemData.TestPartition.Start || r > problemData.TestPartition.End);
    143151
    144       //execution context is created manually to be able to clear the rows parameter easily
    145152      var executionContext = new ExecutionContext(ExecutionContext, evaluator, ExecutionContext.Scope);
    146 
    147       //TODO change to lookup parameter
    148       executionContext.Scope.Variables.Remove("Rows");
    149       executionContext.Scope.Variables.Add(new HeuristicLab.Core.Variable("Rows", new EnumerableItem<int>(rows)));
    150153      var successor = evaluator.Execute(executionContext, this.CancellationToken);
    151154      return new OperationCollection(successor, base.Apply());
Note: See TracChangeset for help on using the changeset viewer.