Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/04/10 04:52:28 (14 years ago)
Author:
swagner
Message:

Operator architecture refactoring (#95)

  • implemented reviewers' comments on version r2917.
Location:
trunk/sources/HeuristicLab.Algorithms.SGA/3.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGA.cs

    r2917 r2924  
    5252      get { return (ConstrainedValueParameter<ICrossover>)Parameters["Crossover"]; }
    5353    }
    54     private ConstrainedValueParameter<IManipulator> MutatorParameter {
    55       get { return (ConstrainedValueParameter<IManipulator>)Parameters["Mutator"]; }
     54    private OptionalConstrainedValueParameter<IManipulator> MutatorParameter {
     55      get { return (OptionalConstrainedValueParameter<IManipulator>)Parameters["Mutator"]; }
    5656    }
    5757    private ValueParameter<IntData> ElitesParameter {
     
    7575      Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions."));
    7676      Parameters.Add(new ValueParameter<DoubleData>("MutationProbability", "The probability that the mutation operator is applied on a solution.", new DoubleData(0.05)));
    77       Parameters.Add(new ConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));
     77      Parameters.Add(new OptionalConstrainedValueParameter<IManipulator>("Mutator", "The operator used to mutate solutions."));
    7878      Parameters.Add(new ValueParameter<IntData>("Elites", "The numer of elite solutions which are kept in each generation.", new IntData(1)));
    7979      Parameters.Add(new ValueParameter<IntData>("MaximumGenerations", "The maximum number of generations which should be processed.", new IntData(1000)));
  • trunk/sources/HeuristicLab.Algorithms.SGA/3.3/SGAOperator.cs

    r2908 r2924  
    9797      #region Create operator graph
    9898      VariableCreator variableCreator = new VariableCreator();
    99       ResultsCollector resultsCollector1 = new ResultsCollector();
     99      ResultsCollector resultsCollector = new ResultsCollector();
    100100      SubScopesSorter subScopesSorter1 = new SubScopesSorter();
    101101      Placeholder selector = new Placeholder();
     
    116116      Comparator comparator = new Comparator();
    117117      BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator = new BestAverageWorstQualityCalculator();
    118       ResultsCollector resultsCollector2 = new ResultsCollector();
    119118      DataTableValuesCollector dataTableValuesCollector = new DataTableValuesCollector();
    120119      ConditionalBranch conditionalBranch = new ConditionalBranch();
     
    122121      OperatorGraph.InitialOperator = variableCreator;
    123122
     123      variableCreator.CollectedValues.Add(new ValueParameter<IntData>("Generations", new IntData(0)));
     124      variableCreator.CollectedValues.Add(new ValueParameter<DoubleData>("Best Quality", new DoubleData(0)));
     125      variableCreator.CollectedValues.Add(new ValueParameter<DoubleData>("Average Quality", new DoubleData(0)));
     126      variableCreator.CollectedValues.Add(new ValueParameter<DoubleData>("Worst Quality", new DoubleData(0)));
    124127      variableCreator.CollectedValues.Add(new ValueParameter<DataTable>("Qualities", new DataTable("Qualities")));
    125       variableCreator.Successor = resultsCollector1;
    126 
    127       LookupParameter<DataTable> qualities = new LookupParameter<DataTable>("Qualities");
    128       qualities.ActualName = "Qualities";
    129       resultsCollector1.CollectedValues.Add(qualities);
    130       resultsCollector1.ResultsParameter.ActualName = "Results";
    131       resultsCollector1.Successor = subScopesSorter1;
     128      variableCreator.Successor = resultsCollector;
     129
     130      resultsCollector.CollectedValues.Add(new LookupParameter<IntData>("Generations"));
     131      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleData>("Best Quality"));
     132      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleData>("Average Quality"));
     133      resultsCollector.CollectedValues.Add(new LookupParameter<DoubleData>("Worst Quality"));
     134      resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities"));
     135      resultsCollector.ResultsParameter.ActualName = "Results";
     136      resultsCollector.Successor = subScopesSorter1;
    132137
    133138      subScopesSorter1.DescendingParameter.ActualName = "Maximization";
     
    196201      comparator.Successor = bestAverageWorstQualityCalculator;
    197202
    198       bestAverageWorstQualityCalculator.AverageQualityParameter.ActualName = "AverageQuality";
    199       bestAverageWorstQualityCalculator.BestQualityParameter.ActualName = "BestQuality";
     203      bestAverageWorstQualityCalculator.AverageQualityParameter.ActualName = "Average Quality";
     204      bestAverageWorstQualityCalculator.BestQualityParameter.ActualName = "Best Quality";
    200205      bestAverageWorstQualityCalculator.MaximizationParameter.ActualName = "Maximization";
    201206      bestAverageWorstQualityCalculator.QualityParameter.ActualName = "Quality";
    202       bestAverageWorstQualityCalculator.WorstQualityParameter.ActualName = "WorstQuality";
     207      bestAverageWorstQualityCalculator.WorstQualityParameter.ActualName = "Worst Quality";
    203208      bestAverageWorstQualityCalculator.Successor = dataTableValuesCollector;
    204209
    205       LookupParameter<DoubleData> bestQuality = new LookupParameter<DoubleData>("BestQuality");
    206       bestQuality.ActualName = "BestQuality";
    207       dataTableValuesCollector.CollectedValues.Add(bestQuality);
    208       LookupParameter<DoubleData> averageQuality = new LookupParameter<DoubleData>("AverageQuality");
    209       averageQuality.ActualName = "AverageQuality";
    210       dataTableValuesCollector.CollectedValues.Add(averageQuality);
    211       LookupParameter<DoubleData> worstQuality = new LookupParameter<DoubleData>("WorstQuality");
    212       worstQuality.ActualName = "WorstQuality";
    213       dataTableValuesCollector.CollectedValues.Add(worstQuality);
     210      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleData>("Best Quality"));
     211      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleData>("Average Quality"));
     212      dataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleData>("Worst Quality"));
    214213      dataTableValuesCollector.DataTableParameter.ActualName = "Qualities";
    215       dataTableValuesCollector.Successor = resultsCollector2;
    216 
    217       bestQuality = new LookupParameter<DoubleData>("BestQuality");
    218       bestQuality.ActualName = "BestQuality";
    219       resultsCollector2.CollectedValues.Add(bestQuality);
    220       averageQuality = new LookupParameter<DoubleData>("AverageQuality");
    221       averageQuality.ActualName = "AverageQuality";
    222       resultsCollector2.CollectedValues.Add(averageQuality);
    223       worstQuality = new LookupParameter<DoubleData>("WorstQuality");
    224       worstQuality.ActualName = "WorstQuality";
    225       resultsCollector2.CollectedValues.Add(worstQuality);
    226       resultsCollector2.ResultsParameter.ActualName = "Results";
    227       resultsCollector2.Successor = conditionalBranch;
     214      dataTableValuesCollector.Successor = conditionalBranch;
    228215
    229216      conditionalBranch.ConditionParameter.ActualName = "Terminate";
Note: See TracChangeset for help on using the changeset viewer.