Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/26/14 22:57:18 (10 years ago)
Author:
abeham
Message:

#2174: enabled possibility to set different problem definitions than just scripted ones

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

Legend:

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

    r11363 r11393  
    4343    }
    4444
    45     public ILookupParameter<SingleObjectiveScript> ScriptParameter {
    46       get { return (ILookupParameter<SingleObjectiveScript>)Parameters["Script"]; }
     45    public ILookupParameter<ISingleObjectiveProblemDefinitionHost> ProblemDefinitionParameter {
     46      get { return (ILookupParameter<ISingleObjectiveProblemDefinitionHost>)Parameters["ProblemDefinition"]; }
    4747    }
    4848
     
    6464    public ParameterVectorMoveEvaluator() {
    6565      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
    66       Parameters.Add(new LookupParameter<SingleObjectiveScript>("Script", "The script that will execute the evaluation function and define the parameter vector."));
     66      Parameters.Add(new LookupParameter<ISingleObjectiveProblemDefinitionHost>("ProblemDefinition", "The host that holds the problem definition."));
    6767      Parameters.Add(new LookupParameter<Configuration>("Configuration", "An item that holds the problem's configuration."));
    6868      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality of the parameter vector."));
     
    7676    public override IOperation InstrumentedApply() {
    7777      var random = RandomParameter.ActualValue;
    78       var runner = ScriptParameter.ActualValue;
    79       if (runner.Instance == null) throw new InvalidOperationException("Script instance is null, maybe the code doesn't compile.");
     78      var host = ProblemDefinitionParameter.ActualValue;
     79      if (host.Instance == null) throw new InvalidOperationException("Problem definition instance is null.");
    8080      var config = ConfigurationParameter.ActualValue;
    8181      var binDict = new Dictionary<string, BinaryVector>();
     
    111111        realVectors: realDict.Count > 0 ? realDict : null,
    112112        permutations: permDict.Count > 0 ? permDict : null);
    113       MoveQualityParameter.ActualValue = new DoubleValue(runner.Instance.Evaluate(random, vector));
     113      MoveQualityParameter.ActualValue = new DoubleValue(host.Instance.Evaluate(random, vector));
    114114      return base.InstrumentedApply();
    115115    }
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/ParameterVectorMoveGenerator.cs

    r11363 r11393  
    4848    }
    4949
    50     public ILookupParameter<SingleObjectiveScript> ScriptParameter {
    51       get { return (ILookupParameter<SingleObjectiveScript>)Parameters["Script"]; }
     50    public ILookupParameter<ISingleObjectiveProblemDefinitionHost> ProblemDefinitionParameter {
     51      get { return (ILookupParameter<ISingleObjectiveProblemDefinitionHost>)Parameters["ProblemDefinition"]; }
    5252    }
    5353
     
    6363      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
    6464      Parameters.Add(new ValueLookupParameter<IntValue>("SampleSize", "The number of moves to sample."));
    65       Parameters.Add(new LookupParameter<SingleObjectiveScript>("Script", "The script that will execute the evaluation function and define the parameter vector."));
     65      Parameters.Add(new LookupParameter<ISingleObjectiveProblemDefinitionHost>("ProblemDefinition", "The host that holds the problem definition."));
    6666      Parameters.Add(new LookupParameter<Configuration>("Configuration", "An item that holds the problem's configuration."));
    6767    }
     
    7373    public override IOperation InstrumentedApply() {
    7474      var random = RandomParameter.ActualValue;
    75       var runner = ScriptParameter.ActualValue;
    76       if (runner.Instance == null) throw new InvalidOperationException("Script instance is null, maybe the code doesn't compile.");
     75      var host = ProblemDefinitionParameter.ActualValue;
     76      if (host.Instance == null) throw new InvalidOperationException("Problem definition instance is null.");
    7777      var sampleSize = SampleSizeParameter.ActualValue.Value;
    7878      var config = ConfigurationParameter.ActualValue;
     
    109109        realVectors: realDict.Count > 0 ? realDict : null,
    110110        permutations: permDict.Count > 0 ? permDict : null);
    111       var nbhood = runner.Instance.GetNeighbors(random, vector).Take(sampleSize).ToList();
     111      var nbhood = host.Instance.GetNeighbors(random, vector).Take(sampleSize).ToList();
    112112
    113113      var moveScopes = new Scope[nbhood.Count];
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/ParameterVectorMoveMaker.cs

    r11363 r11393  
    5050    protected ParameterVectorMoveMaker(ParameterVectorMoveMaker original, Cloner cloner) : base(original, cloner) { }
    5151    public ParameterVectorMoveMaker() {
    52       Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
    53       Parameters.Add(new LookupParameter<SingleObjectiveScript>("Script", "The script that will execute the evaluation function and define the parameter vector."));
    5452      Parameters.Add(new LookupParameter<Configuration>("Configuration", "An item that holds the problem's configuration."));
    5553      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality of the parameter vector."));
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Operators/SingleObjectiveEvaluator.cs

    r10850 r11393  
    4343    }
    4444
    45     public ILookupParameter<SingleObjectiveScript> ScriptParameter {
    46       get { return (ILookupParameter<SingleObjectiveScript>)Parameters["Script"]; }
     45    public ILookupParameter<ISingleObjectiveProblemDefinitionHost> ProblemDefinitionParameter {
     46      get { return (ILookupParameter<ISingleObjectiveProblemDefinitionHost>)Parameters["ProblemDefinition"]; }
    4747    }
    4848
     
    6060    public SingleObjectiveEvaluator() {
    6161      Parameters.Add(new LookupParameter<IRandom>("Random", "The random number generator to use."));
    62       Parameters.Add(new LookupParameter<SingleObjectiveScript>("Script", "The script that will execute the evaluation function and define the parameter vector."));
     62      Parameters.Add(new LookupParameter<ISingleObjectiveProblemDefinitionHost>("ProblemDefinition", "The host that holds the problem definition."));
    6363      Parameters.Add(new LookupParameter<Configuration>("Configuration", "An item that holds the problem's configuration."));
    6464      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality of the parameter vector."));
     
    7171    public override IOperation Apply() {
    7272      var random = RandomParameter.ActualValue;
    73       var runner = ScriptParameter.ActualValue;
    74       if (runner.Instance == null) throw new InvalidOperationException("Script instance is null, maybe the code doesn't compile.");
     73      var host = ProblemDefinitionParameter.ActualValue;
     74      if (host.Instance == null) throw new InvalidOperationException("Script instance is null, maybe the code doesn't compile.");
    7575      var config = ConfigurationParameter.ActualValue;
    7676      var binDict = new Dictionary<string, BinaryVector>();
     
    106106        realVectors: realDict.Count > 0 ? realDict : null,
    107107        permutations: permDict.Count > 0 ? permDict : null);
    108       QualityParameter.ActualValue = new DoubleValue(runner.Instance.Evaluate(random, vector));
     108      QualityParameter.ActualValue = new DoubleValue(host.Instance.Evaluate(random, vector));
    109109      return base.Apply();
    110110    }
Note: See TracChangeset for help on using the changeset viewer.