Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/17/11 08:57:23 (13 years ago)
Author:
gkronber
Message:

worked on data analysis feature exploration branch. #1142

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisProblem.cs

    r5275 r5305  
    155155
    156156    [Storable]
    157     private SymbolicTimeSeriesPrognosisGrammar grammar;
     157    private List<IOperator> operators;
    158158    [Storable]
    159     private List<IOperator> operators;
    160 
     159    private SymbolicTimeSeriesPrognosisGrammar timeSeriesPrognosisGrammar;
    161160    [StorableConstructor]
    162161    protected SymbolicTimeSeriesPrognosisProblem(bool deserializing) : base(deserializing) { }
     
    164163      : base(original, cloner) {
    165164      operators = original.operators.Select(x => (IOperator)cloner.Clone(x)).ToList();
    166       grammar = (SymbolicTimeSeriesPrognosisGrammar)cloner.Clone(original.grammar);
     165      timeSeriesPrognosisGrammar = cloner.Clone(original.timeSeriesPrognosisGrammar);
    167166      RegisterParameterEvents();
    168167      RegisterParameterValueEvents();
     
    171170      : base() {
    172171      SymbolicExpressionTreeCreator creator = new ProbabilisticTreeCreator();
    173       grammar = new SymbolicTimeSeriesPrognosisGrammar(1);
    174       var globalGrammar = new GlobalSymbolicExpressionGrammar(grammar);
     172      timeSeriesPrognosisGrammar = new SymbolicTimeSeriesPrognosisGrammar(1);
     173      var globalGrammar = new GlobalSymbolicExpressionGrammar(timeSeriesPrognosisGrammar);
    175174      var interpreter = new SymbolicTimeSeriesExpressionInterpreter();
    176175      Parameters.Add(new ValueParameter<SymbolicExpressionTreeCreator>("SolutionCreator", "The operator which should be used to create new symbolic time series prognosis solutions.", creator));
     
    179178      Parameters.Add(new ValueParameter<IntValue>("MaxExpressionLength", "Maximal length of the symbolic expression.", new IntValue(100)));
    180179      Parameters.Add(new ValueParameter<IntValue>("MaxExpressionDepth", "Maximal depth of the symbolic expression.", new IntValue(10)));
    181       Parameters.Add(new ValueParameter<IntValue>("MaxFunctionDefiningBranches", "Maximal number of automatically defined functions.", (IntValue)new IntValue(0).AsReadOnly()));
    182       Parameters.Add(new ValueParameter<IntValue>("MaxFunctionArguments", "Maximal number of arguments of automatically defined functions.", (IntValue)new IntValue(0).AsReadOnly()));
     180      Parameters.Add(new ValueParameter<IntValue>("MaxFunctionDefiningBranches", "Maximal number of automatically defined functions.", new IntValue(0)));
     181      Parameters.Add(new ValueParameter<IntValue>("MaxFunctionArguments", "Maximal number of arguments of automatically defined functions.", new IntValue(0)));
    183182      Parameters.Add(new ValueParameter<IntValue>("PredictionHorizon", "The number of time steps for which to create a forecast.", new IntValue(1)));
    184183      Parameters.Add(new ValueParameter<DoubleArray>("UpperEstimationLimit", "The upper limit for the estimated values for each component."));
     
    230229      UpdateGrammar();
    231230    }
    232     protected virtual void OnGrammarChanged(EventArgs e) { }
     231    protected virtual void OnGrammarChanged(EventArgs e) { UpdateGrammar(); }
    233232    protected virtual void OnOperatorsChanged(EventArgs e) { RaiseOperatorsChanged(e); }
    234233    protected virtual void OnSolutionCreatorChanged(EventArgs e) {
     
    245244
    246245    #region event handlers
     246    private void FunctionTreeGrammarParameter_ValueChanged(object sender, EventArgs e) {
     247      if (!(FunctionTreeGrammar is GlobalSymbolicExpressionGrammar))
     248        FunctionTreeGrammar = new GlobalSymbolicExpressionGrammar(FunctionTreeGrammar);
     249      OnGrammarChanged(e);
     250    }
    247251    private void SolutionCreatorParameter_ValueChanged(object sender, EventArgs e) {
    248252      OnSolutionCreatorChanged(e);
     
    268272    private void UpdateGrammar() {
    269273      var selectedTargetVariables = MultiVariateDataAnalysisProblemData.TargetVariables.CheckedItems;
    270       grammar.SetResultProducingBranches(selectedTargetVariables.Count());
    271 
    272       foreach (var varSymbol in grammar.Symbols.OfType<HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable>()) {
     274      timeSeriesPrognosisGrammar.SetResultProducingBranches(selectedTargetVariables.Count());
     275
     276      foreach (var varSymbol in FunctionTreeGrammar.Symbols.OfType<HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols.Variable>()) {
    273277        varSymbol.VariableNames = MultiVariateDataAnalysisProblemData.InputVariables.CheckedItems.Select(x => x.Value.Value);
    274278      }
    275279
    276       var globalGrammar = new GlobalSymbolicExpressionGrammar(grammar);
    277       globalGrammar.MaxFunctionArguments = MaxFunctionArguments.Value;
    278       globalGrammar.MaxFunctionDefinitions = MaxFunctionDefiningBranches.Value;
    279       FunctionTreeGrammar = globalGrammar;
     280      var globalGrammar = FunctionTreeGrammar as GlobalSymbolicExpressionGrammar;
     281      if (globalGrammar != null) {
     282        globalGrammar.MaxFunctionArguments = MaxFunctionArguments.Value;
     283        globalGrammar.MaxFunctionDefinitions = MaxFunctionDefiningBranches.Value;
     284      }
    280285    }
    281286    private void UpdateEstimationLimits() {
Note: See TracChangeset for help on using the changeset viewer.