Free cookie consent management tool by TermsFeed Policy Generator

Changeset 18117


Ignore:
Timestamp:
12/14/21 14:37:01 (3 years ago)
Author:
chaider
Message:

#3140 merged trunk to branch

Location:
branches/3140_NumberSymbol
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • branches/3140_NumberSymbol

  • branches/3140_NumberSymbol/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding

  • branches/3140_NumberSymbol/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Analyzers/SymbolicExpressionTreeLengthAnalyzer.cs

    r17180 r18117  
    5252    }
    5353
    54     public ILookupParameter<IntValue> MaximumSymbolicExpressionTreeLengthParameter {
    55       get { return (ILookupParameter<IntValue>)Parameters[MaximumSymbolicExpressionTreeLengthParameterName]; }
     54    public IValueLookupParameter<IntValue> MaximumSymbolicExpressionTreeLengthParameter {
     55      get { return (IValueLookupParameter<IntValue>)Parameters[MaximumSymbolicExpressionTreeLengthParameterName]; }
    5656    }
    5757    public ValueLookupParameter<DataTable> SymbolicExpressionTreeLengthsParameter {
     
    102102      : base() {
    103103      Parameters.Add(new ScopeTreeLookupParameter<ISymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression tree whose length should be calculated."));
    104       Parameters.Add(new LookupParameter<IntValue>(MaximumSymbolicExpressionTreeLengthParameterName, "The maximum allowed symbolic expression tree length"));
     104      Parameters.Add(new ValueLookupParameter<IntValue>(MaximumSymbolicExpressionTreeLengthParameterName, "The maximum allowed symbolic expression tree length"));
    105105      Parameters.Add(new ValueLookupParameter<DataTable>(SymbolicExpressionTreeLengthsParameterName, "The data table to store the symbolic expression tree lengths."));
    106106      Parameters.Add(new ValueLookupParameter<DataTableHistory>(SymbolicExpressionTreeLengthsHistoryParameterName, "The data table to store the symbolic expression tree lengths history."));
     
    118118    [StorableHook(HookType.AfterDeserialization)]
    119119    private void AfterDeserialization() {
     120      // reset MaximumSymbolicExpressionTreeLengthParameterName to ValueLookupParameter
     121      if (Parameters.TryGetValue(MaximumSymbolicExpressionTreeLengthParameterName, out IParameter treeLengthParam) && !(treeLengthParam is ValueLookupParameter<IntValue>))
     122        Parameters.Remove(MaximumSymbolicExpressionTreeLengthParameterName);
     123      if(!Parameters.ContainsKey(MaximumSymbolicExpressionTreeLengthParameterName))
     124        Parameters.Add(new ValueLookupParameter<IntValue>(MaximumSymbolicExpressionTreeLengthParameterName, "The maximum allowed symbolic expression tree length"));
     125
    120126      // check if all the parameters are present and accounted for
    121       if (!Parameters.ContainsKey(StoreHistoryParameterName)) {
     127      if (!Parameters.ContainsKey(StoreHistoryParameterName))
    122128        Parameters.Add(new ValueParameter<BoolValue>(StoreHistoryParameterName, "True if the tree lengths history of the population should be stored.", new BoolValue(false)));
    123       }
    124       if (!Parameters.ContainsKey(UpdateIntervalParameterName)) {
     129     
     130      if (!Parameters.ContainsKey(UpdateIntervalParameterName))
    125131        Parameters.Add(new ValueParameter<IntValue>(UpdateIntervalParameterName, "The interval in which the tree length analysis should be applied.", new IntValue(1)));
    126       }
     132
    127133      //necessary code to correct UpdateCounterParameter - type was changed from LookupParameter to ValueParameter
    128       if (Parameters.ContainsKey(UpdateCounterParameterName) && (Parameters[UpdateCounterParameterName] is LookupParameter<IntValue>))
     134      if (Parameters.TryGetValue(UpdateCounterParameterName, out IParameter updateCounterParam) && updateCounterParam is LookupParameter<IntValue>)
    129135        Parameters.Remove(UpdateCounterParameterName);
    130136      if (!Parameters.ContainsKey(UpdateCounterParameterName)) {
  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis

  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression

  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4

  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/ShapeConstrainedRegressionSingleObjectiveProblem.cs

    r17964 r18117  
    2828  [StorableType("B35ADCA7-E902-4BEE-9DDE-DF8BBC1E27FE")]
    2929  [Creatable(CreatableAttribute.Categories.GeneticProgrammingProblems, Priority = 150)]
    30   public class ShapeConstrainedRegressionSingleObjectiveProblem : SymbolicRegressionSingleObjectiveProblem {
     30  public class ShapeConstrainedRegressionSingleObjectiveProblem : SymbolicRegressionSingleObjectiveProblem, IShapeConstrainedRegressionProblem {
    3131    [StorableConstructor]
    3232    protected ShapeConstrainedRegressionSingleObjectiveProblem(StorableConstructorFlag _) : base(_) { }
     
    3434    public override IDeepCloneable Clone(Cloner cloner) { return new ShapeConstrainedRegressionSingleObjectiveProblem(this, cloner); }
    3535
     36    public ShapeConstrainedRegressionProblemData ShapeConstrainedRegressionProblemData {
     37      get => (ShapeConstrainedRegressionProblemData)ProblemData;
     38      set => ProblemData = value;
     39    }
    3640    public ShapeConstrainedRegressionSingleObjectiveProblem()
    3741      : base(new ShapeConstrainedRegressionProblemData(), new NMSESingleObjectiveConstraintsEvaluator(), new SymbolicDataAnalysisExpressionTreeCreator()) {
     
    5155
    5256    public override void Load(IRegressionProblemData data) {
    53       var scProblemData = new ShapeConstrainedRegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable,
    54                                                                     data.TrainingPartition, data.TestPartition) {
    55         Name = data.Name,
    56         Description = data.Description
    57       };
     57      if (data is ShapeConstrainedRegressionProblemData scProblemData) {
     58      } else {
     59        scProblemData = new ShapeConstrainedRegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable,
     60                                                                  data.TrainingPartition, data.TestPartition) {
     61          Name = data.Name,
     62          Description = data.Description
     63        };
     64      }
    5865
    5966      base.Load(scProblemData);
  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4

  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs

    r17180 r18117  
    9292
    9393    #region Import & Export
    94     public void Load(T data) {
     94    public virtual void Load(T data) {
    9595      Name = data.Name;
    9696      Description = data.Description;
     
    9898    }
    9999
    100     public T Export() {
     100    public virtual T Export() {
    101101      return ProblemData;
    102102    }
  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblem.cs

    r17960 r18117  
    2424using HeuristicLab.Core;
    2525
    26 namespace HeuristicLab.Problems.DataAnalysis{
     26namespace HeuristicLab.Problems.DataAnalysis {
    2727  [StorableType("B53C4C71-3715-4BB1-9A95-4E969D8135C6")]
    2828  [Item("Shape-constrained Regression Problem", "A regression problem with shape constraints.")]
    29   public class ShapeConstrainedRegressionProblem : DataAnalysisProblem<IShapeConstrainedRegressionProblemData>, IShapeConstrainedRegressionProblem {
     29  public class ShapeConstrainedRegressionProblem : DataAnalysisProblem<IRegressionProblemData>, IShapeConstrainedRegressionProblem {
    3030    [StorableConstructor]
    3131    protected ShapeConstrainedRegressionProblem(StorableConstructorFlag _) : base(_) { }
     
    3333    public override IDeepCloneable Clone(Cloner cloner) { return new ShapeConstrainedRegressionProblem(this, cloner); }
    3434
     35    public ShapeConstrainedRegressionProblemData ShapeConstrainedRegressionProblemData {
     36      get => (ShapeConstrainedRegressionProblemData)ProblemData;
     37      set => ProblemData = value;
     38    }
    3539    public ShapeConstrainedRegressionProblem() : base(new ShapeConstrainedRegressionProblemData()) { }
     40
     41
     42    public override void Load(IRegressionProblemData data) {
     43      if (data is ShapeConstrainedRegressionProblemData scProblemData) {
     44        // use directly
     45      } else {
     46        scProblemData = new ShapeConstrainedRegressionProblemData(data.Dataset, data.AllowedInputVariables, data.TargetVariable,
     47                                                                      data.TrainingPartition, data.TestPartition) {
     48          Name = data.Name,
     49          Description = data.Description
     50        };
     51      }
     52      base.Load(scProblemData);
     53    }
    3654  }
    3755}
  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstrainedRegressionProblemData.cs

    r18034 r18117  
    145145      : this(regressionProblemData.Dataset, regressionProblemData.AllowedInputVariables, regressionProblemData.TargetVariable,
    146146          regressionProblemData.TrainingPartition, regressionProblemData.TestPartition, regressionProblemData.Transformations,
    147           (regressionProblemData is ShapeConstrainedRegressionProblemData) ? ((ShapeConstrainedRegressionProblemData)regressionProblemData).ShapeConstraints : null, 
     147          (regressionProblemData is ShapeConstrainedRegressionProblemData) ? ((ShapeConstrainedRegressionProblemData)regressionProblemData).ShapeConstraints : null,
    148148          regressionProblemData.VariableRanges) {
    149149    }
     
    159159      if (sc == null) sc = new ShapeConstraints();
    160160      Parameters.Add(new FixedValueParameter<ShapeConstraints>(ShapeConstraintsParameterName, "Specifies the shape constraints for the regression problem.", (ShapeConstraints)sc.Clone()));
    161 
     161      if (variableRanges != null) {
     162        foreach (var entry in variableRanges.GetVariableIntervals())
     163          VariableRanges.SetInterval(entry.Item1, entry.Item2);
     164      }
    162165      RegisterEventHandlers();
    163166    }
  • branches/3140_NumberSymbol/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IShapeConstrainedRegressionProblem.cs

    r17960 r18117  
    2424namespace HeuristicLab.Problems.DataAnalysis {
    2525  [StorableType("C6E9D32A-7727-487E-859C-DF24EDCC5922")]
    26   public interface  IShapeConstrainedRegressionProblem : IDataAnalysisProblem<IShapeConstrainedRegressionProblemData> {
     26  public interface IShapeConstrainedRegressionProblem : IRegressionProblem {
     27    ShapeConstrainedRegressionProblemData ShapeConstrainedRegressionProblemData { get; set; }
    2728  }
    2829}
  • branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis

  • branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanBonus9.cs

    r18032 r18117  
    7474      if (targetNoise != null) data.Add(targetNoise);
    7575
    76       //var targetNoise = GetNoisyTarget(r, rand);
    77       //if (targetNoise != null) data.Add(targetNoise);
    78 
    7976      return data;
    8077    }
  • branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanLargeInstanceProvider.cs

    r17805 r18117  
    3535
    3636
    37       var noiseRatio = new double?[] { null, 0.1, 0.3, 1 };
     37      var noiseRatio = new double?[] { null, 0.1, 0.25, 0.50, 0.75 };
    3838
    3939      #region types
  • branches/3140_NumberSymbol/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/FeynmanSmallInstanceProvider.cs

    r17805 r18117  
    3535
    3636
    37       var noiseRatio = new double?[] { null, 0.1, 0.3, 1 };
     37      var noiseRatio = new double?[] { null, 0.1, 0.25, 0.50, 0.75 };
    3838
    3939      #region types
  • branches/3140_NumberSymbol/HeuristicLab.Problems.QuadraticAssignment.Views

  • branches/3140_NumberSymbol/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj

    r16565 r18117  
    225225
    226226call PreBuildEvent.cmd
    227 SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\Plugin.cs.frame" "%25ProjectDir%25\Plugin.cs"
    228227</PreBuildEvent>
    229228    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
Note: See TracChangeset for help on using the changeset viewer.