Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.GoalSeekingProblem/HeuristicLab.GoalSeekingProblem/3.4/IGoalSeekingProblem.cs @ 14321

Last change on this file since 14321 was 14321, checked in by bburlacu, 8 years ago

#2679: Add goal seeking branch.

File size: 3.1 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23using System.Collections.Generic;
24using HeuristicLab.Core;
25using HeuristicLab.Data;
26using HeuristicLab.Optimization;
27using HeuristicLab.Problems.DataAnalysis;
28
29namespace HeuristicLab.ProcessParameterOptimization {
30  public interface IGoalSeekingProblem : IProblem {
31    IRegressionProblemData ProblemData { get; set; }
32    double GetVariableValue(string variableName);
33    void SetVariableValue(string variableName, double variableValue);
34
35    //rounding ?
36    double[] GetEstimatedGoalValues(IEnumerable<double> parameters, bool round = false);
37    int Row { get; set; }
38
39    //Models?
40    IEnumerable<IRegressionModel> Models { get; }
41    void AddModel(IRegressionModel model);
42    void RemoveModel(IRegressionModel model);
43    event EventHandler ModelsChanged;
44
45    #region targets
46    IEnumerable<string> ActiveTargets { get; }
47    IEnumerable<string> Targets { get; }
48    ICheckedItemList<StringValue> TargetList { get; }
49    double GetTargetGoal(string target);
50    void SetTargetGoal(string target, double goal);
51
52    //variance ?
53    double GetTargetWeight(string target);
54    void SetTargetWeight(string target, double weight);
55
56    double GetTargetVariance(string target);
57    void SetTargetVariance(string target, double variance);
58
59    double GetTargetStepSize(string target);
60    void SetTargetStepSize(string target, double stepSize);
61
62    event EventHandler TargetsChanged;
63    #endregion
64
65    #region parameters
66    IEnumerable<string> ActiveParameters { get; }
67    ICheckedItemList<StringValue> ControllableParameters { get; }
68    DoubleMatrix ControllableParameterBounds { get; }
69
70    IEnumerable<string> GetControllableParameters();
71    void SetControllableParameters(IEnumerable<string> parameterNames);
72
73    bool GetParameterActive(string parameter);
74    void SetParameterActive(string parameter, bool active);
75
76    double[] GetParameterBounds(string parameterName);
77    void SetParameterBounds(string parameterName, double min, double max, double step);
78    // set get ParameterStepSize, set get parameters active
79    // parameters changed event
80    double GetParameterStepSize(string parameter);
81    void SetParameterStepSize(string parameter, double stepSize);
82
83    event EventHandler ParametersChanged;
84    #endregion
85  }
86}
Note: See TracBrowser for help on using the repository browser.