Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/05/16 14:25:28 (8 years ago)
Author:
gkronber
Message:

#2650: work in progress..

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/symbreg-factors-2650/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionConstantOptimizationEvaluator.cs

    r14232 r14237  
    205205          ConstantTreeNode constantTreeNode = node as ConstantTreeNode;
    206206          VariableTreeNode variableTreeNode = node as VariableTreeNode;
     207          FactorVariableTreeNode factorVariableTreeNode = node as FactorVariableTreeNode;
    207208          if (constantTreeNode != null)
    208209            c[i++] = constantTreeNode.Value;
    209210          else if (updateVariableWeights && variableTreeNode != null)
    210211            c[i++] = variableTreeNode.Weight;
     212          else if (updateVariableWeights && factorVariableTreeNode != null)
     213            c[i++] = factorVariableTreeNode.Weight;
    211214        }
    212215      }
     
    270273        ConstantTreeNode constantTreeNode = node as ConstantTreeNode;
    271274        VariableTreeNode variableTreeNode = node as VariableTreeNode;
     275        FactorVariableTreeNode factorVarTreeNode = node as FactorVariableTreeNode;
    272276        if (constantTreeNode != null)
    273277          constantTreeNode.Value = constants[i++];
    274278        else if (updateVariableWeights && variableTreeNode != null)
    275279          variableTreeNode.Weight = constants[i++];
     280        else if (updateVariableWeights && factorVarTreeNode != null)
     281          factorVarTreeNode.Weight = constants[i++];
    276282      }
    277283    }
     
    299305        return true;
    300306      }
    301       if (node.Symbol is Variable) {
    302         var varNode = node as VariableTreeNode;
     307      if (node.Symbol is Variable || node.Symbol is FactorVariable) {
     308        var varNode = node as VariableTreeNodeBase;
     309        var factorVarNode = node as FactorVariableTreeNode;
     310        // factor variable values are only 0 or 1 and set in x accordingly
    303311        var par = new AutoDiff.Variable();
    304312        parameters.Add(par);
    305313        variableNames.Add(varNode.VariableName);
    306         categoricalVariableValues.Add(string.Empty);   // as a value as placeholder (variableNames.Length == catVariableValues.Length)
     314        categoricalVariableValues.Add(factorVarNode != null ? factorVarNode.VariableValue : string.Empty);
    307315
    308316        if (updateVariableWeights) {
     
    313321          term = par;
    314322        }
    315         return true;
    316       }
    317       if (node.Symbol is FactorVariable) {
    318         // nothing to update in this case (like a variable without a weight)
    319         // values are only 0 or 1 and set in x accordingly
    320         var factorNode = node as FactorVariableTreeNode;
    321         var par = new AutoDiff.Variable();
    322         parameters.Add(par);
    323         variableNames.Add(factorNode.VariableName);
    324         categoricalVariableValues.Add(factorNode.VariableValue);
    325         term = par;
    326323        return true;
    327324      }
Note: See TracChangeset for help on using the changeset viewer.