Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/05/10 18:54:00 (14 years ago)
Author:
abeham
Message:

#999

  • ported Island GA to Analyzers
  • ported OSGA to Analyzers
  • changed OSGA to use OSGA's main operator
File:
1 edited

Legend:

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

    r3479 r3650  
    4646      get { return (SubScopesLookupParameter<DoubleValue>)Parameters["Quality"]; }
    4747    }
    48     public ValueLookupParameter<DoubleValue> BestKnownQualityParameter {
    49       get { return (ValueLookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
    50     }
    5148    public ValueLookupParameter<IOperator> SelectorParameter {
    5249      get { return (ValueLookupParameter<IOperator>)Parameters["Selector"]; }
     
    7370      get { return (ValueLookupParameter<VariableCollection>)Parameters["Results"]; }
    7471    }
    75     public ValueLookupParameter<IOperator> VisualizerParameter {
    76       get { return (ValueLookupParameter<IOperator>)Parameters["Visualizer"]; }
    77     }
    78     public LookupParameter<IItem> VisualizationParameter {
    79       get { return (LookupParameter<IItem>)Parameters["Visualization"]; }
     72    public ValueLookupParameter<IOperator> AnalyzerParameter {
     73      get { return (ValueLookupParameter<IOperator>)Parameters["Analyzer"]; }
    8074    }
    8175    public ValueLookupParameter<DoubleValue> SuccessRatioParameter {
     
    120114      Parameters.Add(new ValueLookupParameter<IntValue>("MaximumGenerations", "The maximum number of generations which should be processed."));
    121115      Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored."));
    122       Parameters.Add(new ValueLookupParameter<IOperator>("Visualizer", "The operator used to visualize solutions."));
    123       Parameters.Add(new LookupParameter<IItem>("Visualization", "The item which represents the visualization of solutions."));
     116      Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation."));
    124117      Parameters.Add(new ValueLookupParameter<DoubleValue>("SuccessRatio", "The ratio of successful to total children that should be achieved."));
    125118      Parameters.Add(new ValueLookupParameter<DoubleValue>("ComparisonFactorLowerBound", "The lower bound of the comparison factor (start)."));
     
    131124
    132125      #region Create operators
    133       ConditionalBranch initializationBranch = new ConditionalBranch();
    134126      VariableCreator variableCreator = new VariableCreator();
    135       Assigner variableAssigner = new Assigner();
    136       BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer();
    137       BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer();
    138       BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator1 = new BestAverageWorstQualityCalculator();
    139       DataTableValuesCollector dataTableValuesCollector1 = new DataTableValuesCollector();
    140       DataTableValuesCollector selPressDataTableValuesCollector1 = new DataTableValuesCollector();
    141       QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator();
    142       Placeholder visualizer1 = new Placeholder();
    143       ResultsCollector resultsCollector = new ResultsCollector();
    144       Placeholder selector = new Placeholder();
    145       SubScopesProcessor subScopesProcessor1 = new SubScopesProcessor();
    146       ChildrenCreator childrenCreator = new ChildrenCreator();
    147       UniformSubScopesProcessor uniformSubScopesProcessor = new UniformSubScopesProcessor();
    148       Placeholder crossover = new Placeholder();
    149       ConditionalBranch osBeforeMutationBranch = new ConditionalBranch();
    150       Placeholder evaluator1 = new Placeholder();
    151       IntCounter evaluationCounter1 = new IntCounter();
    152       WeightedParentsQualityComparator qualityComparer1 = new WeightedParentsQualityComparator();
    153       StochasticBranch mutationBranch1 = new StochasticBranch();
    154       Placeholder mutator1 = new Placeholder();
    155       Placeholder evaluator2 = new Placeholder();
    156       IntCounter evaluationCounter2 = new IntCounter();
    157       StochasticBranch mutationBranch2 = new StochasticBranch();
    158       Placeholder mutator2 = new Placeholder();
    159       Placeholder evaluator3 = new Placeholder();
    160       IntCounter evaluationCounter3 = new IntCounter();
    161       WeightedParentsQualityComparator qualityComparer2 = new WeightedParentsQualityComparator();
    162       SubScopesRemover subScopesRemover = new SubScopesRemover();
    163       ConditionalSelector conditionalSelector = new ConditionalSelector();
    164       OffspringSelector offspringSelector = new OffspringSelector();
    165       SubScopesProcessor subScopesProcessor2 = new SubScopesProcessor();
    166       BestSelector bestSelector = new BestSelector();
    167       RightReducer rightReducer = new RightReducer();
    168       MergingReducer mergingReducer = new MergingReducer();
    169       IntCounter intCounter = new IntCounter();
    170127      Placeholder comparisonFactorModifier = new Placeholder();
    171       Comparator comparator1 = new Comparator();
    172       Comparator comparator2 = new Comparator();
    173       Assigner evaluatedSolutionsAssigner = new Assigner();
    174       ResultsCollector evalSolCollector = new ResultsCollector();
    175       BestQualityMemorizer bestQualityMemorizer3 = new BestQualityMemorizer();
    176       BestQualityMemorizer bestQualityMemorizer4 = new BestQualityMemorizer();
    177       BestAverageWorstQualityCalculator bestAverageWorstQualityCalculator2 = new BestAverageWorstQualityCalculator();
    178       DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector();
    179       DataTableValuesCollector selPressDataTableValuesCollector2 = new DataTableValuesCollector();
    180       QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator();
    181       Placeholder visualizer2 = new Placeholder();
     128      Placeholder analyzer1 = new Placeholder();
     129      ResultsCollector resultsCollector1 = new ResultsCollector();
     130      OffspringSelectionGeneticAlgorithmMainOperator mainOperator = new OffspringSelectionGeneticAlgorithmMainOperator();
     131      IntCounter generationsCounter = new IntCounter();
     132      Comparator maxGenerationsComparator = new Comparator();
     133      Comparator maxSelectionPressureComparator = new Comparator();
     134      Placeholder analyzer2 = new Placeholder();
     135      ResultsCollector resultsCollector2 = new ResultsCollector();
    182136      ConditionalBranch conditionalBranch1 = new ConditionalBranch();
    183137      ConditionalBranch conditionalBranch2 = new ConditionalBranch();
    184138
    185       initializationBranch.ConditionParameter.ActualName = "IsInitialized";
    186 
    187       variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); // this variable is referenced in SASEGASAMainLoop, do not change!
     139      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0)));
    188140      variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutions", new IntValue(0)));
    189141      variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("SelectionPressure", new DoubleValue(0)));
    190142      variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("CurrentSuccessRatio", new DoubleValue(0)));
    191       variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutionsResult", new IntValue(0)));
    192       variableCreator.CollectedValues.Add(new ValueParameter<BoolValue>("IsInitialized", new BoolValue(true)));
    193 
    194       variableAssigner.LeftSideParameter.ActualName = "ComparisonFactor"; // this variable is referenced in SASEGASA, OffspringSelectionGeneticAlgorithm, do not change!
    195       variableAssigner.RightSideParameter.ActualName = ComparisonFactorLowerBoundParameter.Name;
    196 
    197       bestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality";
    198       bestQualityMemorizer1.MaximizationParameter.ActualName = MaximizationParameter.Name;
    199       bestQualityMemorizer1.QualityParameter.ActualName = QualityParameter.Name;
    200 
    201       bestQualityMemorizer2.BestQualityParameter.ActualName = BestKnownQualityParameter.Name;
    202       bestQualityMemorizer2.MaximizationParameter.ActualName = MaximizationParameter.Name;
    203       bestQualityMemorizer2.QualityParameter.ActualName = QualityParameter.Name;
    204 
    205       bestAverageWorstQualityCalculator1.AverageQualityParameter.ActualName = "CurrentAverageQuality";
    206       bestAverageWorstQualityCalculator1.BestQualityParameter.ActualName = "CurrentBestQuality";
    207       bestAverageWorstQualityCalculator1.MaximizationParameter.ActualName = MaximizationParameter.Name;
    208       bestAverageWorstQualityCalculator1.QualityParameter.ActualName = QualityParameter.Name;
    209       bestAverageWorstQualityCalculator1.WorstQualityParameter.ActualName = "CurrentWorstQuality";
    210 
    211       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    212       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    213       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    214       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    215       dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));
    216       dataTableValuesCollector1.DataTableParameter.ActualName = "Qualities";
    217 
    218       selPressDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Selection Pressure", null, "SelectionPressure"));
    219       selPressDataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Maximum Selection Pressure", null, MaximumSelectionPressureParameter.Name));
    220       selPressDataTableValuesCollector1.DataTableParameter.ActualName = "SelectionPressures";
    221 
    222       qualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    223       qualityDifferenceCalculator1.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;
    224       qualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
    225       qualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality";
    226 
    227       visualizer1.Name = "Visualizer (placeholder)";
    228       visualizer1.OperatorParameter.ActualName = VisualizerParameter.Name;
    229 
    230       resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
    231       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    232       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    233       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    234       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    235       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));
    236       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest"));
    237       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest"));
    238       resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutionsResult"));
    239       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Curent Comparison Factor", null, "ComparisonFactor"));
    240       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Selection Pressure", null, "SelectionPressure"));
    241       resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Success Ratio", null, "CurrentSuccessRatio"));
    242       resultsCollector.CollectedValues.Add(new LookupParameter<IItem>("Solution Visualization", null, VisualizationParameter.Name));
    243       resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities"));
    244       resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("SelectionPressures"));
    245       resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
    246 
    247       selector.Name = "Selector (placeholder)";
    248       selector.OperatorParameter.ActualName = SelectorParameter.Name;
    249 
    250       childrenCreator.ParentsPerChild = new IntValue(2);
    251 
    252       crossover.Name = "Crossover (placeholder)";
    253       crossover.OperatorParameter.ActualName = CrossoverParameter.Name;
    254 
    255       osBeforeMutationBranch.Name = "Apply OS before mutation?";
    256       osBeforeMutationBranch.ConditionParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name;
    257 
    258       evaluator1.Name = "Evaluator (placeholder)";
    259       evaluator1.OperatorParameter.ActualName = EvaluatorParameter.Name;
    260 
    261       evaluationCounter1.Name = "EvaluatedSolutions++";
    262       evaluationCounter1.Increment = new IntValue(1);
    263       evaluationCounter1.ValueParameter.ActualName = "EvaluatedSolutions";
    264 
    265       qualityComparer1.ComparisonFactorParameter.ActualName = "ComparisonFactor";
    266       qualityComparer1.LeftSideParameter.ActualName = QualityParameter.Name;
    267       qualityComparer1.MaximizationParameter.ActualName = MaximizationParameter.Name;
    268       qualityComparer1.RightSideParameter.ActualName = QualityParameter.Name;
    269       qualityComparer1.ResultParameter.ActualName = "SuccessfulOffspring";
    270 
    271       mutationBranch1.ProbabilityParameter.ActualName = MutationProbabilityParameter.Name;
    272       mutationBranch1.RandomParameter.ActualName = RandomParameter.Name;
    273 
    274       mutator1.Name = "Mutator (placeholder)";
    275       mutator1.OperatorParameter.ActualName = MutatorParameter.Name;
    276 
    277       evaluator2.Name = "Evaluator (placeholder)";
    278       evaluator2.OperatorParameter.ActualName = EvaluatorParameter.Name;
    279 
    280       evaluationCounter2.Name = "EvaluatedSolutions++";
    281       evaluationCounter2.Increment = new IntValue(1);
    282       evaluationCounter2.ValueParameter.ActualName = "EvaluatedSolutions";
    283 
    284       mutationBranch2.ProbabilityParameter.ActualName = MutationProbabilityParameter.Name;
    285       mutationBranch2.RandomParameter.ActualName = RandomParameter.Name;
    286 
    287       mutator2.Name = "Mutator (placeholder)";
    288       mutator2.OperatorParameter.ActualName = MutatorParameter.Name;
    289 
    290       evaluator3.Name = "Evaluator (placeholder)";
    291       evaluator3.OperatorParameter.ActualName = EvaluatorParameter.Name;
    292 
    293       evaluationCounter3.Name = "EvaluatedSolutions++";
    294       evaluationCounter3.Increment = new IntValue(1);
    295       evaluationCounter3.ValueParameter.ActualName = "EvaluatedSolutions";
    296 
    297       qualityComparer2.ComparisonFactorParameter.ActualName = "ComparisonFactor";
    298       qualityComparer2.LeftSideParameter.ActualName = QualityParameter.Name;
    299       qualityComparer2.MaximizationParameter.ActualName = MaximizationParameter.Name;
    300       qualityComparer2.RightSideParameter.ActualName = QualityParameter.Name;
    301       qualityComparer2.ResultParameter.ActualName = "SuccessfulOffspring";
    302 
    303       subScopesRemover.RemoveAllSubScopes = true;
    304 
    305       conditionalSelector.CopySelected = new BoolValue(false);
    306       conditionalSelector.ConditionParameter.ActualName = "SuccessfulOffspring";
    307 
    308       offspringSelector.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio";
    309       offspringSelector.LuckyLosersParameter.ActualName = "OSLuckyLosers";
    310       offspringSelector.MaximumSelectionPressureParameter.ActualName = MaximumSelectionPressureParameter.Name;
    311       offspringSelector.SelectionPressureParameter.ActualName = "SelectionPressure";
    312       offspringSelector.SuccessRatioParameter.ActualName = SuccessRatioParameter.Name;
    313       offspringSelector.WinnersParameter.ActualName = "OSWinners";
    314 
    315       bestSelector.CopySelected = new BoolValue(false);
    316       bestSelector.MaximizationParameter.ActualName = MaximizationParameter.Name;
    317       bestSelector.NumberOfSelectedSubScopesParameter.ActualName = ElitesParameter.Name;
    318       bestSelector.QualityParameter.ActualName = QualityParameter.Name;
    319 
    320       intCounter.Increment = new IntValue(1);
    321       intCounter.ValueParameter.ActualName = "Generations";
    322143
    323144      comparisonFactorModifier.Name = "Modify ComparisonFactor (placeholder)";
    324145      comparisonFactorModifier.OperatorParameter.ActualName = ComparisonFactorModifierParameter.Name;
    325146
    326       comparator1.Comparison = new Comparison(ComparisonType.GreaterOrEqual);
    327       comparator1.LeftSideParameter.ActualName = "Generations";
    328       comparator1.ResultParameter.ActualName = "TerminateMaximumGenerations";
    329       comparator1.RightSideParameter.ActualName = MaximumGenerationsParameter.Name;
    330 
    331       comparator2.Comparison = new Comparison(ComparisonType.GreaterOrEqual);
    332       comparator2.LeftSideParameter.ActualName = "SelectionPressure";
    333       comparator2.ResultParameter.ActualName = "TerminateSelectionPressure";
    334       comparator2.RightSideParameter.ActualName = MaximumSelectionPressureParameter.Name;
    335 
    336       evaluatedSolutionsAssigner.LeftSideParameter.ActualName = "EvaluatedSolutionsResult";
    337       evaluatedSolutionsAssigner.RightSideParameter.ActualName = "EvaluatedSolutions";
    338 
    339       evalSolCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutionsResult"));
    340       evalSolCollector.ResultsParameter.ActualName = ResultsParameter.Name;
    341 
    342       bestQualityMemorizer3.BestQualityParameter.ActualName = "BestQuality";
    343       bestQualityMemorizer3.MaximizationParameter.ActualName = MaximizationParameter.Name;
    344       bestQualityMemorizer3.QualityParameter.ActualName = QualityParameter.Name;
    345 
    346       bestQualityMemorizer4.BestQualityParameter.ActualName = BestKnownQualityParameter.Name;
    347       bestQualityMemorizer4.MaximizationParameter.ActualName = MaximizationParameter.Name;
    348       bestQualityMemorizer4.QualityParameter.ActualName = QualityParameter.Name;
    349 
    350       bestAverageWorstQualityCalculator2.AverageQualityParameter.ActualName = "CurrentAverageQuality";
    351       bestAverageWorstQualityCalculator2.BestQualityParameter.ActualName = "CurrentBestQuality";
    352       bestAverageWorstQualityCalculator2.MaximizationParameter.ActualName = MaximizationParameter.Name;
    353       bestAverageWorstQualityCalculator2.QualityParameter.ActualName = QualityParameter.Name;
    354       bestAverageWorstQualityCalculator2.WorstQualityParameter.ActualName = "CurrentWorstQuality";
    355 
    356       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Best Quality", null, "CurrentBestQuality"));
    357       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Average Quality", null, "CurrentAverageQuality"));
    358       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Worst Quality", null, "CurrentWorstQuality"));
    359       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));
    360       dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));
    361       dataTableValuesCollector2.DataTableParameter.ActualName = "Qualities";
    362 
    363       selPressDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Selection Pressure", null, "SelectionPressure"));
    364       selPressDataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Maximum Selection Pressure", null, MaximumSelectionPressureParameter.Name));
    365       selPressDataTableValuesCollector2.DataTableParameter.ActualName = "SelectionPressures";
    366 
    367       qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest";
    368       qualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name;
    369       qualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest";
    370       qualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality";
    371 
    372       visualizer2.Name = "Visualizer (placeholder)";
    373       visualizer2.OperatorParameter.ActualName = VisualizerParameter.Name;
     147      analyzer1.Name = "Analyzer (placeholder)";
     148      analyzer1.OperatorParameter.ActualName = AnalyzerParameter.Name;
     149
     150      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
     151      resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
     152      resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Curent Comparison Factor", null, "ComparisonFactor"));
     153      resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Selection Pressure", null, "SelectionPressure"));
     154      resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Success Ratio", null, "CurrentSuccessRatio"));
     155      resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name;
     156
     157      mainOperator.ComparisonFactorParameter.ActualName = "ComparisonFactor";
     158      mainOperator.CrossoverParameter.ActualName = CrossoverParameter.Name;
     159      mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio";
     160      mainOperator.ElitesParameter.ActualName = ElitesParameter.Name;
     161      mainOperator.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions";
     162      mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name;
     163      mainOperator.MaximizationParameter.ActualName = MaximizationParameter.Name;
     164      mainOperator.MaximumSelectionPressureParameter.ActualName = MaximumSelectionPressureParameter.Name;
     165      mainOperator.MutationProbabilityParameter.ActualName = MutationProbabilityParameter.Name;
     166      mainOperator.MutatorParameter.ActualName = MutatorParameter.Name;
     167      mainOperator.OffspringSelectionBeforeMutationParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name;
     168      mainOperator.QualityParameter.ActualName = QualityParameter.Name;
     169      mainOperator.RandomParameter.ActualName = RandomParameter.Name;
     170      mainOperator.SelectionPressureParameter.ActualName = "SelectionPressure";
     171      mainOperator.SelectorParameter.ActualName = SelectorParameter.Name;
     172      mainOperator.SuccessRatioParameter.ActualName = SuccessRatioParameter.Name;
     173
     174      generationsCounter.Increment = new IntValue(1);
     175      generationsCounter.ValueParameter.ActualName = "Generations";
     176
     177      maxGenerationsComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual);
     178      maxGenerationsComparator.LeftSideParameter.ActualName = "Generations";
     179      maxGenerationsComparator.ResultParameter.ActualName = "TerminateMaximumGenerations";
     180      maxGenerationsComparator.RightSideParameter.ActualName = MaximumGenerationsParameter.Name;
     181
     182      maxSelectionPressureComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual);
     183      maxSelectionPressureComparator.LeftSideParameter.ActualName = "SelectionPressure";
     184      maxSelectionPressureComparator.ResultParameter.ActualName = "TerminateSelectionPressure";
     185      maxSelectionPressureComparator.RightSideParameter.ActualName = MaximumSelectionPressureParameter.Name;
     186
     187      analyzer2.Name = "Analyzer (placeholder)";
     188      analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name;
     189
     190      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Generations"));
     191      resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));
     192      resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Curent Comparison Factor", null, "ComparisonFactor"));
     193      resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Selection Pressure", null, "SelectionPressure"));
     194      resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Current Success Ratio", null, "CurrentSuccessRatio"));
     195      resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;
    374196
    375197      conditionalBranch1.Name = "MaximumSelectionPressure reached?";
     
    377199
    378200      conditionalBranch2.Name = "MaximumGenerations reached?";
    379       conditionalBranch2.ConditionParameter.ActualName = "TerminateMaximumGenerations"; // this variable is referenced in SASEGASAMainLoop, do not change!
     201      conditionalBranch2.ConditionParameter.ActualName = "TerminateMaximumGenerations";
    380202      #endregion
    381203
    382204      #region Create operator graph
    383       OperatorGraph.InitialOperator = initializationBranch;
    384       initializationBranch.FalseBranch = variableCreator;
    385       initializationBranch.Successor = selector;
    386       variableCreator.Successor = variableAssigner;
    387       variableAssigner.Successor = bestQualityMemorizer1;
    388       bestQualityMemorizer1.Successor = bestQualityMemorizer2;
    389       bestQualityMemorizer2.Successor = bestAverageWorstQualityCalculator1;
    390       bestAverageWorstQualityCalculator1.Successor = dataTableValuesCollector1;
    391       dataTableValuesCollector1.Successor = selPressDataTableValuesCollector1;
    392       selPressDataTableValuesCollector1.Successor = qualityDifferenceCalculator1;
    393       qualityDifferenceCalculator1.Successor = visualizer1;
    394       visualizer1.Successor = resultsCollector;
    395       resultsCollector.Successor = null;
    396       selector.Successor = subScopesProcessor1;
    397       subScopesProcessor1.Operators.Add(new EmptyOperator());
    398       subScopesProcessor1.Operators.Add(childrenCreator);
    399       subScopesProcessor1.Successor = offspringSelector;
    400       childrenCreator.Successor = uniformSubScopesProcessor;
    401       uniformSubScopesProcessor.Operator = crossover;
    402       uniformSubScopesProcessor.Successor = conditionalSelector;
    403       crossover.Successor = osBeforeMutationBranch;
    404       osBeforeMutationBranch.TrueBranch = evaluator1;
    405       osBeforeMutationBranch.FalseBranch = mutationBranch2;
    406       osBeforeMutationBranch.Successor = subScopesRemover;
    407       evaluator1.Successor = evaluationCounter1;
    408       evaluationCounter1.Successor = qualityComparer1;
    409       qualityComparer1.Successor = mutationBranch1;
    410       mutationBranch1.FirstBranch = mutator1;
    411       mutationBranch1.SecondBranch = null;
    412       mutationBranch1.Successor = null;
    413       mutator1.Successor = evaluator2;
    414       evaluator2.Successor = evaluationCounter2;
    415       evaluationCounter2.Successor = null;
    416       mutationBranch2.FirstBranch = mutator2;
    417       mutationBranch2.SecondBranch = null;
    418       mutationBranch2.Successor = evaluator3;
    419       mutator2.Successor = null;
    420       evaluator3.Successor = evaluationCounter3;
    421       evaluationCounter3.Successor = qualityComparer2;
    422       subScopesRemover.Successor = null;
    423       offspringSelector.OffspringCreator = selector;
    424       offspringSelector.Successor = subScopesProcessor2;
    425       subScopesProcessor2.Operators.Add(bestSelector);
    426       subScopesProcessor2.Operators.Add(new EmptyOperator());
    427       subScopesProcessor2.Successor = mergingReducer;
    428       bestSelector.Successor = rightReducer;
    429       rightReducer.Successor = null;
    430       mergingReducer.Successor = intCounter;
    431       intCounter.Successor = comparisonFactorModifier;
    432       comparisonFactorModifier.Successor = comparator1;
    433       comparator1.Successor = comparator2;
    434       comparator2.Successor = evaluatedSolutionsAssigner;
    435       evaluatedSolutionsAssigner.Successor = evalSolCollector;
    436       evalSolCollector.Successor = bestQualityMemorizer3;
    437       bestQualityMemorizer3.Successor = bestQualityMemorizer4;
    438       bestQualityMemorizer4.Successor = bestAverageWorstQualityCalculator2;
    439       bestAverageWorstQualityCalculator2.Successor = dataTableValuesCollector2;
    440       dataTableValuesCollector2.Successor = selPressDataTableValuesCollector2;
    441       selPressDataTableValuesCollector2.Successor = qualityDifferenceCalculator2;
    442       qualityDifferenceCalculator2.Successor = visualizer2;
    443       visualizer2.Successor = conditionalBranch1;
     205      OperatorGraph.InitialOperator = variableCreator;
     206      variableCreator.Successor = comparisonFactorModifier;
     207      comparisonFactorModifier.Successor = analyzer1;
     208      analyzer1.Successor = resultsCollector1;
     209      resultsCollector1.Successor = mainOperator;
     210      mainOperator.Successor = generationsCounter;
     211      generationsCounter.Successor = maxGenerationsComparator;
     212      maxGenerationsComparator.Successor = maxSelectionPressureComparator;
     213      maxSelectionPressureComparator.Successor = analyzer2;
     214      analyzer2.Successor = resultsCollector2;
     215      resultsCollector2.Successor = conditionalBranch1;
    444216      conditionalBranch1.FalseBranch = conditionalBranch2;
    445217      conditionalBranch1.TrueBranch = null;
    446218      conditionalBranch1.Successor = null;
    447       conditionalBranch2.FalseBranch = selector;
     219      conditionalBranch2.FalseBranch = mainOperator;
    448220      conditionalBranch2.TrueBranch = null;
    449221      conditionalBranch2.Successor = null;
Note: See TracChangeset for help on using the changeset viewer.