Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/27/14 20:02:35 (9 years ago)
Author:
mkommend
Message:

#2174: Added first version of refactored individuals.

Location:
branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveAnalyzer.cs

    r11559 r11598  
    5050      var definition = ProblemDefinitionParameter.ActualValue;
    5151      if (definition == null) throw new InvalidOperationException("Problem definition is null.");
    52       var config = EncodingParameter.ActualValue;
     52      var encoding = EncodingParameter.ActualValue;
    5353      var results = ResultsParameter.ActualValue;
    5454
     
    5757        scopes = scopes.Select(x => (IEnumerable<IScope>)x.SubScopes).Aggregate((a, b) => a.Concat(b));
    5858
    59       var vectors = scopes.Select(scope => Helper.Extract(scope, config)).ToArray();
    60       definition.Analyze(vectors, QualitiesParameter.ActualValue.Select(x => x.ToArray()).ToArray(), results);
     59      var individuals = scopes.Select(encoding.CreateIndividual).ToArray();
     60      definition.Analyze(individuals, QualitiesParameter.ActualValue.Select(x => x.ToArray()).ToArray(), results);
    6161      return base.Apply();
    6262    }
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/MultiObjectiveEvaluator.cs

    r11559 r11598  
    6868      var definition = ProblemDefinitionParameter.ActualValue;
    6969      if (definition == null) throw new InvalidOperationException("Problem definition is null.");
    70       var config = EncodingParameter.ActualValue;
    71       var vector = Helper.Extract(ExecutionContext.Scope, config);
    72       QualitiesParameter.ActualValue = new DoubleArray(definition.Evaluate(random, vector));
     70      var encoding = EncodingParameter.ActualValue;
     71      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
     72      QualitiesParameter.ActualValue = new DoubleArray(definition.Evaluate(random, individual));
    7373      return base.Apply();
    7474    }
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveAnalyzer.cs

    r11559 r11598  
    5050      var definition = ProblemDefinitionParameter.ActualValue;
    5151      if (definition == null) throw new InvalidOperationException("Problem definition is null");
    52       var config = EncodingParameter.ActualValue;
     52      var encoding = EncodingParameter.ActualValue;
    5353      var results = ResultsParameter.ActualValue;
    5454
     
    5757        scopes = scopes.Select(x => (IEnumerable<IScope>)x.SubScopes).Aggregate((a, b) => a.Concat(b));
    5858
    59       var vectors = scopes.Select(scope => Helper.Extract(scope, config)).ToArray();
    60       definition.Analyze(vectors, QualityParameter.ActualValue.Select(x => x.Value).ToArray(), results);
     59      var individuals = scopes.Select(encoding.CreateIndividual).ToArray();
     60      definition.Analyze(individuals, QualityParameter.ActualValue.Select(x => x.Value).ToArray(), results);
    6161      return base.Apply();
    6262    }
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveEvaluator.cs

    r11559 r11598  
    6868      var definition = ProblemDefinitionParameter.ActualValue;
    6969      if (definition == null) throw new InvalidOperationException("Problem definition is null.");
    70       var config = EncodingParameter.ActualValue;
    71       var vector = Helper.Extract(ExecutionContext.Scope, config);
    72       QualityParameter.ActualValue = new DoubleValue(definition.Evaluate(random, vector));
     70      var encoding = EncodingParameter.ActualValue;
     71      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
     72      QualityParameter.ActualValue = new DoubleValue(definition.Evaluate(random, individual));
    7373      return base.Apply();
    7474    }
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveImprover.cs

    r11559 r11598  
    7575      var maxAttempts = ImprovementAttemptsParameter.ActualValue.Value;
    7676      var sampleSize = SampleSizeParameter.ActualValue.Value;
    77       var vector = Helper.Extract(ExecutionContext.Scope, encoding);
    78       var quality = QualityParameter.ActualValue == null ? definition.Evaluate(random, vector) : QualityParameter.ActualValue.Value;
     77      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
     78      var quality = QualityParameter.ActualValue == null ? definition.Evaluate(random, individual) : QualityParameter.ActualValue.Value;
    7979
    8080      var count = 0;
     
    8282        Individual best = null;
    8383        var bestQuality = quality;
    84         foreach (var neighbor in definition.GetNeighbors(random, vector).Take(sampleSize)) {
     84        foreach (var neighbor in definition.GetNeighbors(random, individual).Take(sampleSize)) {
    8585          var q = definition.Evaluate(random, neighbor);
    8686          count++;
     
    9090        }
    9191        if (best == null) break;
    92         vector = best;
     92        individual = best;
    9393        quality = bestQuality;
    9494      }
    9595
    9696      LocalEvaluatedSolutionsParameter.ActualValue = new IntValue(count);
    97       Helper.Write(ExecutionContext.Scope, vector);
     97      individual.Copy(ExecutionContext.Scope);
    9898      return base.Apply();
    9999    }
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveEvaluator.cs

    r11559 r11598  
    7373      var definition = ProblemDefinitionParameter.ActualValue;
    7474      if (definition == null) throw new InvalidOperationException("Problem definition is null.");
    75       var config = EncodingParameter.ActualValue;
    76       var vector = Helper.Extract(ExecutionContext.Scope, config);
    77       MoveQualityParameter.ActualValue = new DoubleValue(definition.Evaluate(random, vector));
     75      var encoding = EncodingParameter.ActualValue;
     76      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
     77      MoveQualityParameter.ActualValue = new DoubleValue(definition.Evaluate(random, individual));
    7878      return base.InstrumentedApply();
    7979    }
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveGenerator.cs

    r11559 r11598  
    7373      var sampleSize = SampleSizeParameter.ActualValue.Value;
    7474      var encoding = EncodingParameter.ActualValue;
    75       var vector = Helper.Extract(ExecutionContext.Scope, encoding);
    76       var nbhood = definition.GetNeighbors(random, vector).Take(sampleSize).ToList();
     75      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
     76      var nbhood = definition.GetNeighbors(random, individual).Take(sampleSize).ToList();
    7777
    7878      var moveScopes = new Scope[nbhood.Count];
    7979      for (int i = 0; i < moveScopes.Length; i++) {
    8080        moveScopes[i] = new Scope(i.ToString(CultureInfo.InvariantCulture.NumberFormat));
    81         Helper.Write(moveScopes[i], nbhood[i]);
     81        nbhood[i].Copy(moveScopes[i]);
    8282      }
    8383      ExecutionContext.Scope.SubScopes.AddRange(moveScopes);
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveMoveMaker.cs

    r11559 r11598  
    6262
    6363      var encoding = EncodingParameter.ActualValue;
    64       Helper.Write(ExecutionContext.Scope.Parent, Helper.Extract(ExecutionContext.Scope, encoding));
     64      var individual = encoding.CreateIndividual(ExecutionContext.Scope);
     65      individual.Copy(ExecutionContext.Scope.Parent);
    6566
    6667      if (QualityParameter.ActualValue == null) QualityParameter.ActualValue = new DoubleValue(MoveQualityParameter.ActualValue.Value);
Note: See TracChangeset for help on using the changeset viewer.