Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/02/09 17:23:05 (15 years ago)
Author:
gkronber
Message:

Improved structure of OffspringSelectionGP and StandardGP hard-coded algorithms. #224 (Simple frontend for GP for non-expert users (similar to HeurisicLab.SGA))

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.GP.StructureIdentification/OffspringSelectionGP.cs

    r1236 r1238  
    179179    }
    180180
     181    internal override IOperator CreateLoopCondition(IOperator loop) {
     182      SequentialProcessor seq = new SequentialProcessor();
     183      seq.Name = "Loop Condition";
     184      LessThanComparator generationsComparator = new LessThanComparator();
     185      generationsComparator.GetVariableInfo("LeftSide").ActualName = "Generations";
     186      generationsComparator.GetVariableInfo("RightSide").ActualName = "MaxGenerations";
     187      generationsComparator.GetVariableInfo("Result").ActualName = "GenerationsCondition";
     188
     189      LessThanComparator selPresComparator = new LessThanComparator();
     190      selPresComparator.GetVariableInfo("LeftSide").ActualName = "SelectionPressure";
     191      selPresComparator.GetVariableInfo("RightSide").ActualName = "SelectionPressureLimit";
     192      selPresComparator.GetVariableInfo("Result").ActualName = "SelectionPressureCondition";
     193     
     194      ConditionalBranch generationsCond = new ConditionalBranch();
     195      generationsCond.GetVariableInfo("Condition").ActualName = "GenerationsCondition";
     196
     197      ConditionalBranch selPresCond = new ConditionalBranch();
     198      selPresCond.GetVariableInfo("Condition").ActualName = "SelectionPressureCondition";
     199
     200      seq.AddSubOperator(generationsComparator);
     201      seq.AddSubOperator(selPresComparator);
     202      seq.AddSubOperator(generationsCond);
     203      generationsCond.AddSubOperator(selPresCond);
     204      selPresCond.AddSubOperator(loop);
     205
     206      return seq;
     207    }
     208
     209    internal override IOperator CreateLoggingOperator() {
     210      CombinedOperator loggingOperator = new CombinedOperator();
     211      loggingOperator.Name = "Logging";
     212      SequentialProcessor seq = new SequentialProcessor();
     213
     214      DataCollector collector = new DataCollector();
     215      ItemList<StringData> names = collector.GetVariable("VariableNames").GetValue<ItemList<StringData>>();
     216      names.Add(new StringData("BestQuality"));
     217      names.Add(new StringData("AverageQuality"));
     218      names.Add(new StringData("WorstQuality"));
     219      names.Add(new StringData("BestValidationQuality"));
     220      names.Add(new StringData("AverageValidationQuality"));
     221      names.Add(new StringData("WorstValidationQuality"));
     222      names.Add(new StringData("EvaluatedSolutions"));
     223      names.Add(new StringData("SelectionPressure"));
     224      QualityLogger qualityLogger = new QualityLogger();
     225      QualityLogger validationQualityLogger = new QualityLogger();
     226      validationQualityLogger.Name = "ValidationQualityLogger";
     227      validationQualityLogger.GetVariableInfo("Quality").ActualName = "ValidationQuality";
     228      validationQualityLogger.GetVariableInfo("QualityLog").ActualName = "ValidationQualityLog";
     229
     230      seq.AddSubOperator(collector);
     231      seq.AddSubOperator(qualityLogger);
     232      seq.AddSubOperator(validationQualityLogger);
     233
     234      loggingOperator.OperatorGraph.AddOperator(seq);
     235      loggingOperator.OperatorGraph.InitialOperator = seq;
     236      return loggingOperator;
     237    }
     238
     239
    181240    public override IEditor CreateEditor() {
    182241      return new OffspringSelectionGpEditor(this);
Note: See TracChangeset for help on using the changeset viewer.