Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/03/08 10:51:50 (16 years ago)
Author:
gkronber
Message:

moved creation of default init and manipulation operators from !GPOperatorGroup into the functions (ticket #225 "Simplify GP infrastructure (GPOperatorLibrary and Functions)")

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Functions/Constant.cs

    r229 r425  
    2828using HeuristicLab.Constraints;
    2929using HeuristicLab.DataAnalysis;
     30using HeuristicLab.Operators;
     31using HeuristicLab.Random;
    3032
    3133namespace HeuristicLab.Functions {
     
    4850      AddVariable(value);
    4951
     52      SetupInitialization();
     53      SetupManipulation();
     54
    5055      // constant can't have suboperators
    5156      AddConstraint(new NumberOfSubOperatorsConstraint(0, 0));
    5257    }
     58
     59    private void SetupInitialization() {
     60      // initialization operator
     61      AddVariableInfo(new VariableInfo(INITIALIZATION, "Initialization operator-graph for constants", typeof(IOperatorGraph), VariableKind.None));
     62      GetVariableInfo(INITIALIZATION).Local = false;
     63      CombinedOperator combinedOp = new CombinedOperator();
     64      SequentialProcessor initSeq = new SequentialProcessor();
     65      UniformRandomizer randomizer = new UniformRandomizer();
     66      randomizer.Min = -20.0;
     67      randomizer.Max = 20.0;
     68
     69      combinedOp.OperatorGraph.AddOperator(initSeq);
     70      combinedOp.OperatorGraph.AddOperator(randomizer);
     71      combinedOp.OperatorGraph.InitialOperator = initSeq;
     72      initSeq.AddSubOperator(randomizer);
     73      AddVariable(new HeuristicLab.Core.Variable(INITIALIZATION, combinedOp));
     74    }
     75
     76    private void SetupManipulation() {
     77      // manipulation operator
     78      AddVariableInfo(new VariableInfo(MANIPULATION, "Manipulation operator-graph for constants", typeof(IOperatorGraph), VariableKind.None));
     79      GetVariableInfo(MANIPULATION).Local = false;
     80      CombinedOperator combinedOp = new CombinedOperator();
     81      SequentialProcessor manipulationSeq = new SequentialProcessor();
     82      NormalRandomAdder valueAdder = new NormalRandomAdder();
     83      valueAdder.Mu = 0.0;
     84      valueAdder.Sigma = 0.1;
     85
     86      combinedOp.OperatorGraph.AddOperator(manipulationSeq);
     87      combinedOp.OperatorGraph.AddOperator(valueAdder);
     88      combinedOp.OperatorGraph.InitialOperator = manipulationSeq;
     89      manipulationSeq.AddSubOperator(valueAdder);
     90      AddVariable(new HeuristicLab.Core.Variable(MANIPULATION, combinedOp));
     91    }
     92
    5393    public override void Accept(IFunctionVisitor visitor) {
    5494      visitor.Visit(this);
Note: See TracChangeset for help on using the changeset viewer.