Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/21/09 16:14:40 (15 years ago)
Author:
gkronber
Message:

Added new predefined function libraries for symbolic regression algorithms. Changed CEDMA dispatcher to choose a function library randomly. #813 (GP structure-identification algorithms that use only a simple function library)

Location:
trunk/sources/HeuristicLab.GP.StructureIdentification/3.3
Files:
5 added
2 deleted
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/DefaultStructureIdentificationOperators.cs

    r2553 r2566  
    3535      op.Name = "FunctionLibraryInjector";
    3636      SequentialProcessor seq = new SequentialProcessor();
    37       seq.AddSubOperator(new FunctionLibraryInjector());
    38       seq.AddSubOperator(new HL3TreeEvaluatorInjector());
    39       op.OperatorGraph.AddOperator(seq);
    40       op.OperatorGraph.InitialOperator = seq;
    41       return op;
    42     }
    43 
    44     public static IOperator CreateSimpleFunctionLibraryInjector() {
    45       CombinedOperator op = new CombinedOperator();
    46       op.Name = "FunctionLibraryInjector";
    47       SequentialProcessor seq = new SequentialProcessor();
    48       var funLibInjector = new FunctionLibraryInjector();
    49       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.CONSTANTS_ALLOWED, null, false).Data = true;
    50       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.VARIABLES_ALLOWED, null, false).Data = true;
    51       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.ADDITION_ALLOWED, null, false).Data = true;
    52       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.SUBTRACTION_ALLOWED, null, false).Data = true;
    53       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.MULTIPLICATION_ALLOWED, null, false).Data = true;
    54 
    55       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.AND_ALLOWED, null, false).Data = false;
    56       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.AVERAGE_ALLOWED, null, false).Data = false;
    57       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.COSINUS_ALLOWED, null, false).Data = false;
    58       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.DIFFERENTIALS_ALLOWED, null, false).Data = false;
    59       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.DIVISION_ALLOWED, null, false).Data = false;
    60       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.EQUAL_ALLOWED, null, false).Data = false;
    61       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.EXPONENTIAL_ALLOWED, null, false).Data = false;
    62       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.GREATERTHAN_ALLOWED, null, false).Data = false;
    63       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.IFTHENELSE_ALLOWED, null, false).Data = false;
    64       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.LESSTHAN_ALLOWED, null, false).Data = false;
    65       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.LOGARTIHM_ALLOWED, null, false).Data = false;
    66       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.NOT_ALLOWED, null, false).Data = false;
    67       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.OR_ALLOWED, null, false).Data = false;
    68       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.POWER_ALLOWED, null, false).Data = false;
    69       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.SIGNUM_ALLOWED, null, false).Data = false;
    70       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.SINUS_ALLOWED, null, false).Data = false;
    71       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.SQRT_ALLOWED, null, false).Data = false;
    72       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.TANGENS_ALLOWED, null, false).Data = false;
    73       funLibInjector.GetVariableValue<BoolData>(FunctionLibraryInjector.XOR_ALLOWED, null, false).Data = false;
    74       seq.AddSubOperator(funLibInjector);
     37      seq.AddSubOperator(new DefaultFunctionLibraryInjector());
    7538      seq.AddSubOperator(new HL3TreeEvaluatorInjector());
    7639      op.OperatorGraph.AddOperator(seq);
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/FunctionLibraryInjectors/DefaultFunctionLibraryInjector.cs

    r2564 r2566  
    2727
    2828namespace HeuristicLab.GP.StructureIdentification {
    29   public class FunctionLibraryInjector : FunctionLibraryInjectorBase {
     29  [SymbolicRegressionFunctionLibraryInjector]
     30  public class DefaultFunctionLibraryInjector : FunctionLibraryInjectorBase {
    3031    public const string MINTIMEOFFSET = "MinTimeOffset";
    3132    public const string MAXTIMEOFFSET = "MaxTimeOffset";
     
    6364    }
    6465
    65     public FunctionLibraryInjector()
     66    public DefaultFunctionLibraryInjector()
    6667      : base() {
    6768      AddVariableInfo(new VariableInfo(MINTIMEOFFSET, "Minimal time offset for all features", typeof(IntData), VariableKind.In));
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/HeuristicLab.GP.StructureIdentification-3.3.csproj

    r2553 r2566  
    8585    <Compile Include="BaseClasses\FunctionTreeBase.cs" />
    8686    <Compile Include="BaseClasses\TreeEvaluatorBase.cs" />
    87     <Compile Include="OffspringSelectionGPSimpleRegression.cs" />
    88     <Compile Include="StandardGPSimpleRegression.cs" />
     87    <Compile Include="FunctionLibraryInjectors\ArithmeticFunctionLibraryInjector.cs" />
     88    <Compile Include="FunctionLibraryInjectors\SymbolicRegressionFunctionLibraryInjectorAttribute.cs" />
     89    <Compile Include="FunctionLibraryInjectors\UnconstrainedFunctionLibraryInjector.cs" />
     90    <Compile Include="FunctionLibraryInjectors\DefaultFunctionLibraryInjector.cs" />
     91    <Compile Include="FunctionLibraryInjectors\SimpleFunctionLibraryInjector.cs" />
    8992    <Compile Include="DefaultStructureIdentificationOperators.cs" />
    9093    <Compile Include="Evaluators\NodeBasedVariableImpactCalculator.cs" />
     
    133136    <Compile Include="ITreeEvaluator.cs" />
    134137    <Compile Include="Evaluators\MeanAbsolutePercentageOfRangeErrorEvaluator.cs" />
    135     <Compile Include="FunctionLibraryInjector.cs" />
    136138    <Compile Include="Evaluators\CoefficientOfDeterminationEvaluator.cs" />
    137139    <Compile Include="Evaluators\UncertainMeanSquaredErrorEvaluator.cs" />
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/OffspringSelectionGPRegression.cs

    r2440 r2566  
    116116        problemInjector.OperatorGraph.AddOperator(value);
    117117        problemInjector.OperatorGraph.InitialOperator.AddSubOperator(value, 0);
     118      }
     119    }
     120
     121    public override IOperator FunctionLibraryInjector {
     122      get {
     123        CombinedOperator funLibInjector = (CombinedOperator)GetInitializationOperator().SubOperators[1];
     124        return funLibInjector.OperatorGraph.InitialOperator.SubOperators[0];
     125      }
     126      set {
     127        CombinedOperator funLibInjector = (CombinedOperator)GetInitializationOperator().SubOperators[1];
     128        IOperator seq = funLibInjector.OperatorGraph.InitialOperator;
     129        seq.RemoveSubOperator(0);
     130        seq.AddSubOperator(value, 0);
    118131      }
    119132    }
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/StandardGPRegression.cs

    r2440 r2566  
    117117        problemInjector.OperatorGraph.AddOperator(value);
    118118        problemInjector.OperatorGraph.InitialOperator.AddSubOperator(value, 0);
     119      }
     120    }
     121
     122    public override IOperator FunctionLibraryInjector {
     123      get {
     124        CombinedOperator funLibInjector = (CombinedOperator)GetInitializationOperator().SubOperators[1];
     125        return funLibInjector.OperatorGraph.InitialOperator.SubOperators[0];
     126      }
     127      set {
     128        CombinedOperator funLibInjector = (CombinedOperator)GetInitializationOperator().SubOperators[1];
     129        IOperator seq = funLibInjector.OperatorGraph.InitialOperator;
     130        seq.RemoveSubOperator(0);
     131        seq.AddSubOperator(value, 0);
    119132      }
    120133    }
Note: See TracChangeset for help on using the changeset viewer.