Changeset 11393 for branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/SingleObjectiveProgrammableProblem.cs
- Timestamp:
- 09/26/14 22:57:18 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/SingleObjectiveProgrammableProblem.cs
r11363 r11393 55 55 } 56 56 57 public IValueParameter< SingleObjectiveScript> ScriptParameter {58 get { return (IValueParameter< SingleObjectiveScript>)Parameters["Script"]; }59 } 60 61 p ublicIValueParameter<Configuration> ConfigurationParameter {57 public IValueParameter<ISingleObjectiveProblemDefinitionHost> ProblemDefinitionParameter { 58 get { return (IValueParameter<ISingleObjectiveProblemDefinitionHost>)Parameters["ProblemDefinition"]; } 59 } 60 61 protected IValueParameter<Configuration> ConfigurationParameter { 62 62 get { return (IValueParameter<Configuration>)Parameters["Configuration"]; } 63 } 64 65 public ISingleObjectiveProblemDefinitionHost ProblemDefinition { 66 get { return ProblemDefinitionParameter.Value; } 67 set { ProblemDefinitionParameter.Value = value; } 63 68 } 64 69 … … 76 81 public SingleObjectiveProgrammableProblem() 77 82 : base(new SingleObjectiveEvaluator(), new ParameterVectorCreater()) { 78 Parameters.Add(new ValueParameter< SingleObjectiveScript>("Script", "Defines the problem.", new SingleObjectiveScript() { Name = Name }));83 Parameters.Add(new ValueParameter<ISingleObjectiveProblemDefinitionHost>("ProblemDefinition", "Defines the problem.", new SingleObjectiveProblemDefinitionScript() { Name = Name })); 79 84 Parameters.Add(new ValueParameter<Configuration>("Configuration", "Describes which parameters exist, what they're called, what type they are and their bounds if any.")); 80 85 … … 100 105 101 106 private void RegisterEventHandlers() { 102 ScriptParameter.ValueChanged += ScriptParameterOnValueChanged; 103 RegisterScriptInstanceChanges(); 104 } 105 106 private void ScriptParameterOnValueChanged(object sender, EventArgs eventArgs) { 107 RegisterScriptInstanceChanges(); 108 } 109 110 private void RegisterScriptInstanceChanges() { 111 ScriptParameter.Value.InstanceChanged += ScriptOnInstanceChanged; 112 ScriptParameter.Value.NameChanged += ScriptOnNameChanged; 113 } 114 115 private void ScriptOnNameChanged(object sender, EventArgs eventArgs) { 116 if (sender != ScriptParameter.Value) return; 117 Name = ScriptParameter.Value.Name; 107 ProblemDefinitionParameter.ValueChanged += ProblemDefinitionParameterOnValueChanged; 108 RegisterHostInstanceChanges(); 109 } 110 111 private void ProblemDefinitionParameterOnValueChanged(object sender, EventArgs eventArgs) { 112 RegisterHostInstanceChanges(); 113 Parameterize(); 114 } 115 116 private void RegisterHostInstanceChanges() { 117 ProblemDefinitionParameter.Value.InstanceChanged += ProblemDefinitionHostOnInstanceChanged; 118 ProblemDefinitionParameter.Value.NameChanged += ProblemDefinitionHostOnNameChanged; 119 } 120 121 private void ProblemDefinitionHostOnNameChanged(object sender, EventArgs eventArgs) { 122 if (sender != ProblemDefinitionParameter.Value) return; 123 Name = ProblemDefinitionParameter.Value.Name; 118 124 } 119 125 120 126 protected override void OnNameChanged() { 121 127 base.OnNameChanged(); 122 ScriptParameter.Value.Name = Name; 123 } 124 125 protected virtual void ScriptOnInstanceChanged(object sender, EventArgs eventArgs) { 126 var instance = ScriptParameter.Value.Instance; 128 ProblemDefinitionParameter.Value.Name = Name; 129 } 130 131 protected virtual void ProblemDefinitionHostOnInstanceChanged(object sender, EventArgs eventArgs) { 132 Parameterize(); 133 } 134 135 protected virtual void Parameterize() { 136 var instance = ProblemDefinitionParameter.Value.Instance; 127 137 if (instance == null) return; 128 138 129 var configuration = instance.GetConfiguration(); 139 Configuration configuration; 140 try { 141 configuration = instance.GetConfiguration(); 142 } catch { return; } 130 143 ConfigurationParameter.Value = configuration; 131 144 Maximization.Value = instance.IsMaximizationProblem; … … 602 615 var generator = new ParameterVectorMoveGenerator(); 603 616 generator.ConfigurationParameter.ActualName = ConfigurationParameter.Name; 604 generator. ScriptParameter.ActualName = ScriptParameter.Name;617 generator.ProblemDefinitionParameter.ActualName = ProblemDefinitionParameter.Name; 605 618 606 619 var evaluator = new ParameterVectorMoveEvaluator(); 607 620 evaluator.ConfigurationParameter.ActualName = ConfigurationParameter.Name; 608 621 evaluator.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 609 evaluator. ScriptParameter.ActualName = ScriptParameter.Name;622 evaluator.ProblemDefinitionParameter.ActualName = ProblemDefinitionParameter.Name; 610 623 611 624 var maker = new ParameterVectorMoveMaker();
Note: See TracChangeset
for help on using the changeset viewer.