Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/27/14 18:30:43 (10 years ago)
Author:
abeham
Message:

#2174:

  • Added analyzer operator that will call into the analyze function
  • Added helper class for creating a parameter vector
  • Added parameters to the interfaces and improved wiring
Location:
branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators
Files:
1 added
3 edited

Legend:

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

    r11393 r11396  
    2121
    2222using System;
    23 using System.Collections.Generic;
    2423using HeuristicLab.Common;
    2524using HeuristicLab.Core;
    2625using HeuristicLab.Data;
    27 using HeuristicLab.Encodings.BinaryVectorEncoding;
    28 using HeuristicLab.Encodings.IntegerVectorEncoding;
    29 using HeuristicLab.Encodings.PermutationEncoding;
    30 using HeuristicLab.Encodings.RealVectorEncoding;
    3126using HeuristicLab.Operators;
    3227using HeuristicLab.Optimization;
     
    7974      if (host.Instance == null) throw new InvalidOperationException("Problem definition instance is null.");
    8075      var config = ConfigurationParameter.ActualValue;
    81       var binDict = new Dictionary<string, BinaryVector>();
    82       var intDict = new Dictionary<string, IntegerVector>();
    83       var realDict = new Dictionary<string, RealVector>();
    84       var permDict = new Dictionary<string, Permutation>();
    85       foreach (var param in config.Parameters) {
    86         var binConfig = param.Value as BinaryParameterConfiguration;
    87         if (binConfig != null) {
    88           binDict.Add(param.Key, (BinaryVector)ExecutionContext.Scope.Variables[param.Key].Value);
    89           continue;
    90         }
    91         var intConfig = param.Value as IntegerParameterConfiguration;
    92         if (intConfig != null) {
    93           intDict.Add(param.Key, (IntegerVector)ExecutionContext.Scope.Variables[param.Key].Value);
    94           continue;
    95         }
    96         var realConfig = param.Value as RealParameterConfiguration;
    97         if (realConfig != null) {
    98           realDict.Add(param.Key, (RealVector)ExecutionContext.Scope.Variables[param.Key].Value);
    99           continue;
    100         }
    101         var permConfig = param.Value as PermutationParameterConfiguration;
    102         if (permConfig != null) {
    103           permDict.Add(param.Key, (Permutation)ExecutionContext.Scope.Variables[param.Key].Value);
    104           continue;
    105         }
    106         throw new InvalidOperationException("Parameter " + param.Key + " not found.");
    107       }
    108       var vector = new ParameterVector(
    109         binaryVectors: binDict.Count > 0 ? binDict : null,
    110         integerVectors: intDict.Count > 0 ? intDict : null,
    111         realVectors: realDict.Count > 0 ? realDict : null,
    112         permutations: permDict.Count > 0 ? permDict : null);
     76      var vector = Helper.Extract(ExecutionContext.Scope, config);
    11377      MoveQualityParameter.ActualValue = new DoubleValue(host.Instance.Evaluate(random, vector));
    11478      return base.InstrumentedApply();
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/ParameterVectorMoveGenerator.cs

    r11393 r11396  
    2121
    2222using System;
    23 using System.Collections.Generic;
    2423using System.Linq;
    2524using HeuristicLab.Common;
    2625using HeuristicLab.Core;
    2726using HeuristicLab.Data;
    28 using HeuristicLab.Encodings.BinaryVectorEncoding;
    29 using HeuristicLab.Encodings.IntegerVectorEncoding;
    30 using HeuristicLab.Encodings.PermutationEncoding;
    31 using HeuristicLab.Encodings.RealVectorEncoding;
    3227using HeuristicLab.Operators;
    3328using HeuristicLab.Optimization;
     
    7772      var sampleSize = SampleSizeParameter.ActualValue.Value;
    7873      var config = ConfigurationParameter.ActualValue;
    79       var binDict = new Dictionary<string, BinaryVector>();
    80       var intDict = new Dictionary<string, IntegerVector>();
    81       var realDict = new Dictionary<string, RealVector>();
    82       var permDict = new Dictionary<string, Permutation>();
    83       foreach (var param in config.Parameters) {
    84         var binConfig = param.Value as BinaryParameterConfiguration;
    85         if (binConfig != null) {
    86           binDict.Add(param.Key, (BinaryVector)ExecutionContext.Scope.Variables[param.Key].Value);
    87           continue;
    88         }
    89         var intConfig = param.Value as IntegerParameterConfiguration;
    90         if (intConfig != null) {
    91           intDict.Add(param.Key, (IntegerVector)ExecutionContext.Scope.Variables[param.Key].Value);
    92           continue;
    93         }
    94         var realConfig = param.Value as RealParameterConfiguration;
    95         if (realConfig != null) {
    96           realDict.Add(param.Key, (RealVector)ExecutionContext.Scope.Variables[param.Key].Value);
    97           continue;
    98         }
    99         var permConfig = param.Value as PermutationParameterConfiguration;
    100         if (permConfig != null) {
    101           permDict.Add(param.Key, (Permutation)ExecutionContext.Scope.Variables[param.Key].Value);
    102           continue;
    103         }
    104         throw new InvalidOperationException("Parameter " + param.Key + " not found.");
    105       }
    106       var vector = new ParameterVector(
    107         binaryVectors: binDict.Count > 0 ? binDict : null,
    108         integerVectors: intDict.Count > 0 ? intDict : null,
    109         realVectors: realDict.Count > 0 ? realDict : null,
    110         permutations: permDict.Count > 0 ? permDict : null);
     74      var vector = Helper.Extract(ExecutionContext.Scope, config);
    11175      var nbhood = host.Instance.GetNeighbors(random, vector).Take(sampleSize).ToList();
    11276
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveEvaluator.cs

    r11393 r11396  
    2121
    2222using System;
    23 using System.Collections.Generic;
    2423using HeuristicLab.Common;
    2524using HeuristicLab.Core;
    2625using HeuristicLab.Data;
    27 using HeuristicLab.Encodings.BinaryVectorEncoding;
    28 using HeuristicLab.Encodings.IntegerVectorEncoding;
    29 using HeuristicLab.Encodings.PermutationEncoding;
    30 using HeuristicLab.Encodings.RealVectorEncoding;
    3126using HeuristicLab.Operators;
    3227using HeuristicLab.Optimization;
     
    7469      if (host.Instance == null) throw new InvalidOperationException("Script instance is null, maybe the code doesn't compile.");
    7570      var config = ConfigurationParameter.ActualValue;
    76       var binDict = new Dictionary<string, BinaryVector>();
    77       var intDict = new Dictionary<string, IntegerVector>();
    78       var realDict = new Dictionary<string, RealVector>();
    79       var permDict = new Dictionary<string, Permutation>();
    80       foreach (var param in config.Parameters) {
    81         var binConfig = param.Value as BinaryParameterConfiguration;
    82         if (binConfig != null) {
    83           binDict.Add(param.Key, (BinaryVector)ExecutionContext.Scope.Variables[param.Key].Value);
    84           continue;
    85         }
    86         var intConfig = param.Value as IntegerParameterConfiguration;
    87         if (intConfig != null) {
    88           intDict.Add(param.Key, (IntegerVector)ExecutionContext.Scope.Variables[param.Key].Value);
    89           continue;
    90         }
    91         var realConfig = param.Value as RealParameterConfiguration;
    92         if (realConfig != null) {
    93           realDict.Add(param.Key, (RealVector)ExecutionContext.Scope.Variables[param.Key].Value);
    94           continue;
    95         }
    96         var permConfig = param.Value as PermutationParameterConfiguration;
    97         if (permConfig != null) {
    98           permDict.Add(param.Key, (Permutation)ExecutionContext.Scope.Variables[param.Key].Value);
    99           continue;
    100         }
    101         throw new InvalidOperationException("Parameter " + param.Key + " not found.");
    102       }
    103       var vector = new ParameterVector(
    104         binaryVectors: binDict.Count > 0 ? binDict : null,
    105         integerVectors: intDict.Count > 0 ? intDict : null,
    106         realVectors: realDict.Count > 0 ? realDict : null,
    107         permutations: permDict.Count > 0 ? permDict : null);
     71      var vector = Helper.Extract(ExecutionContext.Scope, config);
    10872      QualityParameter.ActualValue = new DoubleValue(host.Instance.Evaluate(random, vector));
    10973      return base.Apply();
Note: See TracChangeset for help on using the changeset viewer.