Changeset 8377 for branches/RAPGA
- Timestamp:
- 08/01/12 16:05:35 (12 years ago)
- Location:
- branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3
- Files:
-
- 4 added
- 3 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/DuplicatesSelector.cs
r8354 r8377 26 26 using HeuristicLab.Optimization; 27 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 using HeuristicLab.Selection; 28 29 29 namespace HeuristicLab. Selection{30 namespace HeuristicLab.Algorithms.RAPGA { 30 31 /// <summary> 31 32 /// A selection operator which considers a single solution representation and selects duplicates. 32 33 /// </summary> 33 [Item("DuplicateSelector", "A selection operator which considers a single solution representation and selects duplicates.")] 34 /// <remarks> 35 /// The remaining scope then contains unique solutions and the selected scope their duplicates. 36 /// </remarks> 37 [Item("DuplicatesSelector", "A selection operator which considers a single solution representation and selects duplicates. The remaining scope then contains unique solutions and the selected scope their duplicates.")] 34 38 [StorableClass] 35 public sealed class Duplicate Selector : SingleObjectiveSelector, ISingleObjectiveSelector, ISimilarityBasedOperator {39 public sealed class DuplicatesSelector : SingleObjectiveSelector, ISingleObjectiveSelector, ISimilarityBasedOperator { 36 40 #region ISimilarityBasedOperator Members 37 41 [Storable] … … 39 43 #endregion 40 44 41 public DuplicateSelector() : base() { }42 45 [StorableConstructor] 43 private Duplicate Selector(bool deserializing) : base(deserializing) { }44 private Duplicate Selector(DuplicateSelector original, Cloner cloner)46 private DuplicatesSelector(bool deserializing) : base(deserializing) { } 47 private DuplicatesSelector(DuplicatesSelector original, Cloner cloner) 45 48 : base(original, cloner) { 46 49 this.SimilarityCalculator = cloner.Clone(original.SimilarityCalculator); 47 50 } 51 public DuplicatesSelector() : base() { } 52 48 53 public override IDeepCloneable Clone(Cloner cloner) { 49 return new Duplicate Selector(this, cloner);54 return new DuplicatesSelector(this, cloner); 50 55 } 51 52 56 53 57 protected override IScope[] Select(List<IScope> scopes) { -
branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/HeuristicLab.Algorithms.RAPGA-3.3.csproj
r8349 r8377 97 97 </ItemGroup> 98 98 <ItemGroup> 99 <Compile Include="DuplicateSelector.cs" /> 99 <Compile Include="Analyzers\PopulationSizeAnalyzer.cs" /> 100 <Compile Include="DuplicatesSelector.cs" /> 101 <Compile Include="OffspringRestorer.cs" /> 102 <Compile Include="ProgressiveOffspringPreserver.cs" /> 100 103 <Compile Include="RAPGA.cs" /> 101 104 <Compile Include="RAPGAMainLoop.cs" /> -
branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/RAPGA.cs
r8359 r8377 76 76 get { return (IValueParameter<IntValue>)Parameters["Effort"]; } 77 77 } 78 private IValueParameter<IntValue> BatchSizeParameter { 79 get { return (IValueParameter<IntValue>)Parameters["BatchSize"]; } 80 } 78 81 public IConstrainedValueParameter<ISelector> SelectorParameter { 79 82 get { return (IConstrainedValueParameter<ISelector>)Parameters["Selector"]; } … … 131 134 set { EffortParameter.Value = value; } 132 135 } 136 public IntValue BatchSize { 137 get { return BatchSizeParameter.Value; } 138 set { BatchSizeParameter.Value = value; } 139 } 133 140 public ISelector Selector { 134 141 get { return SelectorParameter.Value; } … … 174 181 [Storable] 175 182 private BestAverageWorstQualityAnalyzer qualityAnalyzer; 183 [Storable] 184 private PopulationSizeAnalyzer populationSizeAnalyzer; 176 185 #endregion 177 186 … … 183 192 : base(original, cloner) { 184 193 qualityAnalyzer = cloner.Clone(original.qualityAnalyzer); 194 populationSizeAnalyzer = cloner.Clone(original.populationSizeAnalyzer); 185 195 Initialize(); 186 196 } … … 191 201 Parameters.Add(new ValueParameter<IntValue>("PopulationSize", "The size of the population of solutions.", new IntValue(100))); 192 202 Parameters.Add(new ValueParameter<IntValue>("MinimumPopulationSize", "The minimum size of the population of solutions.", new IntValue(2))); 193 Parameters.Add(new ValueParameter<IntValue>("MaximumPopulationSize", "The maximum size of the population of solutions.", new IntValue( 299)));203 Parameters.Add(new ValueParameter<IntValue>("MaximumPopulationSize", "The maximum size of the population of solutions.", new IntValue(300))); 194 204 Parameters.Add(new ValueParameter<DoubleValue>("ComparisonFactor", "The comparison factor.", new DoubleValue(0.0))); 195 Parameters.Add(new ValueParameter<IntValue>("Effort", "The maximum number of offspring created in each generation.", new IntValue(400))); 205 Parameters.Add(new ValueParameter<IntValue>("Effort", "The maximum number of offspring created in each generation.", new IntValue(1000))); 206 Parameters.Add(new ValueParameter<IntValue>("BatchSize", "The number of children that should be created during one iteration of the offspring creation process.", new IntValue(10))); 196 207 Parameters.Add(new ConstrainedValueParameter<ISelector>("Selector", "The operator used to select solutions for reproduction.")); 197 208 Parameters.Add(new ConstrainedValueParameter<ICrossover>("Crossover", "The operator used to cross solutions.")); … … 247 258 248 259 qualityAnalyzer = new BestAverageWorstQualityAnalyzer(); 260 populationSizeAnalyzer = new PopulationSizeAnalyzer(); 249 261 ParameterizeAnalyzers(); 250 262 UpdateAnalyzers(); … … 302 314 base.Problem_OperatorsChanged(sender, e); 303 315 } 304 void EffortParameter_ValueChanged(object sender, EventArgs e) {305 Effort.ValueChanged +=new EventHandler(Effort_ValueChanged);306 ParameterizeSelectors(); 307 } 308 void Effort_ValueChanged(object sender, EventArgs e) {316 void BatchSizeParameter_ValueChanged(object sender, EventArgs e) { 317 BatchSize.ValueChanged += new EventHandler(BatchSize_ValueChanged); 318 ParameterizeSelectors(); 319 } 320 void BatchSize_ValueChanged(object sender, EventArgs e) { 309 321 ParameterizeSelectors(); 310 322 } … … 337 349 ElitesParameter.ValueChanged += new EventHandler(ElitesParameter_ValueChanged); 338 350 Elites.ValueChanged += new EventHandler(Elites_ValueChanged); 339 EffortParameter.ValueChanged += new EventHandler(EffortParameter_ValueChanged);340 Effort.ValueChanged += new EventHandler(Effort_ValueChanged);351 BatchSizeParameter.ValueChanged += new EventHandler(BatchSizeParameter_ValueChanged); 352 BatchSize.ValueChanged += new EventHandler(BatchSize_ValueChanged); 341 353 if (Problem != null) { 342 354 Problem.Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); … … 365 377 foreach (ISelector selector in SelectorParameter.ValidValues) { 366 378 selector.CopySelected = new BoolValue(true); 367 selector.NumberOfSelectedSubScopesParameter.Value = new IntValue(2 * EffortParameter.Value.Value);379 selector.NumberOfSelectedSubScopesParameter.Value = new IntValue(2 * BatchSize.Value); 368 380 selector.NumberOfSelectedSubScopesParameter.Hidden = true; 369 381 ParameterizeStochasticOperator(selector); … … 381 393 qualityAnalyzer.ResultsParameter.ActualName = "Results"; 382 394 qualityAnalyzer.ResultsParameter.Hidden = true; 395 populationSizeAnalyzer.ResultsParameter.ActualName = "Results"; 396 populationSizeAnalyzer.ResultsParameter.Hidden = true; 383 397 if (Problem != null) { 384 398 qualityAnalyzer.MaximizationParameter.ActualName = Problem.MaximizationParameter.Name; … … 437 451 } 438 452 Analyzer.Operators.Add(qualityAnalyzer, qualityAnalyzer.EnabledByDefault); 453 Analyzer.Operators.Add(populationSizeAnalyzer, populationSizeAnalyzer.EnabledByDefault); 439 454 } 440 455 private void UpdateSimilarityCalculators() { -
branches/RAPGA/HeuristicLab.Algorithms.RAPGA/3.3/RAPGAMainLoop.cs
r8359 r8377 136 136 #region Create operators 137 137 VariableCreator variableCreator = new VariableCreator(); 138 IntCounter intCounter1 = new IntCounter();138 Assigner assigner1 = new Assigner(); 139 139 ResultsCollector resultsCollector = new ResultsCollector(); 140 140 Placeholder analyzer1 = new Placeholder(); … … 142 142 SubScopesProcessor subScopesProcessor1 = new SubScopesProcessor(); 143 143 ChildrenCreator childrenCreator = new ChildrenCreator(); 144 UniformSubScopesProcessor uniformSubScopesProcessor 1= new UniformSubScopesProcessor();144 UniformSubScopesProcessor uniformSubScopesProcessor = new UniformSubScopesProcessor(); 145 145 Placeholder crossover = new Placeholder(); 146 146 StochasticBranch stochasticBranch = new StochasticBranch(); 147 147 Placeholder mutator = new Placeholder(); 148 UniformSubScopesProcessor uniformSubScopesProcessor2 = new UniformSubScopesProcessor();149 148 Placeholder evaluator = new Placeholder(); 150 WeightedParentsQualityComparator comparator1 = new WeightedParentsQualityComparator(); 149 WeightedParentsQualityComparator weightedParentsQualityComparator = new WeightedParentsQualityComparator(); 150 SubScopesRemover subScopesRemover = new SubScopesRemover(); 151 151 SubScopesCounter subScopesCounter1 = new SubScopesCounter(); 152 IntCounter intCounter1 = new IntCounter(); 152 153 ConditionalSelector conditionalSelector = new ConditionalSelector(); 153 154 RightReducer rightReducer1 = new RightReducer(); 154 UniformSubScopesProcessor uniformSubScopesProcessor3 = new UniformSubScopesProcessor(); 155 SubScopesRemover subScopesRemover = new SubScopesRemover(); 156 DuplicateSelector duplicateSelector = new DuplicateSelector(); 157 LeftReducer leftReducer = new LeftReducer(); 155 DuplicatesSelector duplicateSelector = new DuplicatesSelector(); 156 LeftReducer leftReducer1 = new LeftReducer(); 157 ProgressiveOffspringPreserver progressiveOffspringSelector = new ProgressiveOffspringPreserver(); 158 158 SubScopesCounter subScopesCounter2 = new SubScopesCounter(); 159 Comparator comparator1 = new Comparator(); 160 ConditionalBranch conditionalBranch1 = new ConditionalBranch(); 159 161 Comparator comparator2 = new Comparator(); 160 ConditionalBranch conditionalBranch1 = new ConditionalBranch(); 161 BestSelector bestSelector1 = new BestSelector(); 162 BestSelector bestSelector2 = new BestSelector(); 162 ConditionalBranch conditionalBranch2 = new ConditionalBranch(); 163 LeftReducer leftReducer2 = new LeftReducer(); 164 SubScopesProcessor subScopesProcessor2 = new SubScopesProcessor(); 165 BestSelector bestSelector = new BestSelector(); 163 166 RightReducer rightReducer2 = new RightReducer(); 164 SubScopesProcessor subScopesProcessor2 = new SubScopesProcessor(); 165 BestSelector bestSelector3 = new BestSelector(); 166 RightReducer rightReducer3 = new RightReducer(); 167 ScopeCleaner scopeCleaner = new ScopeCleaner(); 168 OffspringRestorer offspringRestorer = new OffspringRestorer(); 167 169 MergingReducer mergingReducer = new MergingReducer(); 168 170 IntCounter intCounter2 = new IntCounter(); 171 SubScopesCounter subScopesCounter3 = new SubScopesCounter(); 169 172 Comparator comparator3 = new Comparator(); 170 173 Placeholder analyzer2 = new Placeholder(); 171 ConditionalBranch conditionalBranch2 = new ConditionalBranch(); 172 SubScopesCounter subScopesCounter3 = new SubScopesCounter(); 174 ConditionalBranch conditionalBranch3 = new ConditionalBranch(); 173 175 Comparator comparator4 = new Comparator(); 174 ConditionalBranch conditionalBranch3 = new ConditionalBranch(); 176 ConditionalBranch conditionalBranch4 = new ConditionalBranch(); 177 Assigner assigner2 = new Assigner(); 178 Assigner assigner3 = new Assigner(); 179 Assigner assigner4 = new Assigner(); 175 180 176 181 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); // Class RAPGA expects this to be called Generations 177 182 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("CurrentPopulationSize", new IntValue(0))); 178 179 intCounter1.Name = "Initialize CurrentPopulationSize"; 180 intCounter1.IncrementParameter.ActualName = PopulationSizeParameter.Name; 181 intCounter1.IncrementParameter.Value = null; 182 intCounter1.ValueParameter.ActualName = "CurrentPopulationSize"; 183 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("NumberOfCreatedOffspring", new IntValue(0))); 184 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("NumberOfSuccessfulOffspring", new IntValue(0))); 185 variableCreator.CollectedValues.Add(new ValueParameter<ScopeList>("OffspringList", new ScopeList())); 186 187 assigner1.Name = "Initialize CurrentPopulationSize"; 188 assigner1.LeftSideParameter.ActualName = "CurrentPopulationSize"; 189 assigner1.RightSideParameter.ActualName = PopulationSizeParameter.Name; 183 190 184 191 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Generations")); … … 194 201 childrenCreator.ParentsPerChild = new IntValue(2); 195 202 203 uniformSubScopesProcessor.Parallel.Value = true; 204 196 205 crossover.Name = "Crossover"; 197 206 crossover.OperatorParameter.ActualName = "Crossover"; … … 203 212 mutator.OperatorParameter.ActualName = "Mutator"; 204 213 205 uniformSubScopesProcessor2.Parallel.Value = true;206 207 214 evaluator.Name = "Evaluator"; 208 215 evaluator.OperatorParameter.ActualName = "Evaluator"; 209 216 210 comparator1.ComparisonFactorParameter.ActualName = ComparisonFactorParameter.Name; 211 comparator1.LeftSideParameter.ActualName = QualityParameter.Name; 212 comparator1.MaximizationParameter.ActualName = MaximizationParameter.Name; 213 comparator1.RightSideParameter.ActualName = QualityParameter.Name; 214 comparator1.ResultParameter.ActualName = "SuccessfulOffspring"; 215 216 subScopesCounter1.Name = "Increment EvaluatedSolutions"; 217 subScopesCounter1.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 217 weightedParentsQualityComparator.ComparisonFactorParameter.ActualName = ComparisonFactorParameter.Name; 218 weightedParentsQualityComparator.LeftSideParameter.ActualName = QualityParameter.Name; 219 weightedParentsQualityComparator.MaximizationParameter.ActualName = MaximizationParameter.Name; 220 weightedParentsQualityComparator.RightSideParameter.ActualName = QualityParameter.Name; 221 weightedParentsQualityComparator.ResultParameter.ActualName = "SuccessfulOffspring"; 222 223 subScopesRemover.RemoveAllSubScopes = true; 224 225 subScopesCounter1.Name = "Increment NumberOfCreatedOffspring"; 226 subScopesCounter1.ValueParameter.ActualName = "NumberOfCreatedOffspring"; 227 228 intCounter1.Name = "Increment EvaluatedSolutions"; 229 intCounter1.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 230 intCounter1.Increment = null; 231 intCounter1.IncrementParameter.ActualName = "NumberOfCreatedOffspring"; 218 232 219 233 conditionalSelector.ConditionParameter.ActualName = "SuccessfulOffspring"; … … 223 237 duplicateSelector.CopySelected.Value = false; 224 238 225 uniformSubScopesProcessor3.Parallel.Value = true;226 227 subScopesRemover.RemoveAllSubScopes = true;239 progressiveOffspringSelector.OffspringListParameter.ActualName = "OffspringList"; 240 progressiveOffspringSelector.ElitesParameter.ActualName = ElitesParameter.Name; 241 progressiveOffspringSelector.MaximumPopulationSizeParameter.ActualName = MaximumPopulationSizeParameter.Name; 228 242 229 243 subScopesCounter2.Name = "Count Successful Offspring"; 230 244 subScopesCounter2.ValueParameter.ActualName = "NumberOfSuccessfulOffspring"; 231 245 246 comparator1.Name = "NumberOfSuccessfulOffspring >= MaximumPopulationSize"; 247 comparator1.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 248 comparator1.LeftSideParameter.ActualName = "NumberOfSuccessfulOffspring"; 249 comparator1.RightSideParameter.ActualName = MaximumPopulationSizeParameter.Name; 250 comparator1.ResultParameter.ActualName = "Break"; 251 252 conditionalBranch1.Name = "Break?"; 253 conditionalBranch1.ConditionParameter.ActualName = "Break"; 254 255 comparator2.Name = "NumberOfCreatedOffspring >= Effort"; 232 256 comparator2.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 233 comparator2.LeftSideParameter.ActualName = "NumberOfSuccessfulOffspring"; 234 comparator2.RightSideParameter.ActualName = MaximumPopulationSizeParameter.Name; 235 comparator2.ResultParameter.ActualName = "SelectMaximum"; 236 237 conditionalBranch1.ConditionParameter.ActualName = "SelectMaximum"; 238 239 bestSelector1.CopySelected = new BoolValue(false); 240 bestSelector1.MaximizationParameter.ActualName = MaximizationParameter.Name; 241 bestSelector1.NumberOfSelectedSubScopesParameter.ActualName = MaximumPopulationSizeParameter.Name; 242 bestSelector1.QualityParameter.ActualName = QualityParameter.Name; 243 244 bestSelector2.CopySelected = new BoolValue(false); 245 bestSelector2.MaximizationParameter.ActualName = MaximizationParameter.Name; 246 bestSelector2.NumberOfSelectedSubScopesParameter.ActualName = "NumberOfSuccessfulOffspring"; 247 bestSelector2.QualityParameter.ActualName = QualityParameter.Name; 248 249 bestSelector3.CopySelected = new BoolValue(false); 250 bestSelector3.MaximizationParameter.ActualName = MaximizationParameter.Name; 251 bestSelector3.NumberOfSelectedSubScopesParameter.ActualName = "Elites"; 252 bestSelector3.QualityParameter.ActualName = QualityParameter.Name; 253 257 comparator2.LeftSideParameter.ActualName = "NumberOfCreatedOffspring"; 258 comparator2.RightSideParameter.ActualName = EffortParameter.Name; 259 comparator2.ResultParameter.ActualName = "Break"; 260 261 conditionalBranch2.Name = "Break?"; 262 conditionalBranch2.ConditionParameter.ActualName = "Break"; 263 264 bestSelector.CopySelected = new BoolValue(false); 265 bestSelector.MaximizationParameter.ActualName = MaximizationParameter.Name; 266 bestSelector.NumberOfSelectedSubScopesParameter.ActualName = "Elites"; 267 bestSelector.QualityParameter.ActualName = QualityParameter.Name; 268 269 intCounter2.Name = "Increment Generations"; 254 270 intCounter2.Increment = new IntValue(1); 255 271 intCounter2.ValueParameter.ActualName = "Generations"; 256 272 subScopesCounter3.Name = "Set CurrentPopulationSize"; 273 274 subScopesCounter3.ValueParameter.ActualName = "CurrentPopulationSize"; 275 subScopesCounter3.AccumulateParameter.Value = new BoolValue(false); 276 277 comparator3.Name = "Generations >= MaximumGenerations"; 257 278 comparator3.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 258 279 comparator3.LeftSideParameter.ActualName = "Generations"; … … 263 284 analyzer2.OperatorParameter.ActualName = "Analyzer"; 264 285 265 conditionalBranch2.ConditionParameter.ActualName = "Terminate"; 266 267 subScopesCounter3.Name = "Set CurrentPopulationSize"; 268 subScopesCounter3.ValueParameter.ActualName = "CurrentPopulationSize"; 269 subScopesCounter3.AccumulateParameter.Value = new BoolValue(false); 270 286 conditionalBranch3.Name = "Terminate?"; 287 conditionalBranch3.ConditionParameter.ActualName = "Terminate"; 288 289 comparator4.Name = "CurrentPopulationSize < MinimumPopulationSize"; 271 290 comparator4.Comparison = new Comparison(ComparisonType.Less); 272 291 comparator4.LeftSideParameter.ActualName = "CurrentPopulationSize"; … … 274 293 comparator4.ResultParameter.ActualName = "Terminate"; 275 294 276 conditionalBranch3.ConditionParameter.ActualName = "Terminate"; 295 conditionalBranch4.Name = "Terminate?"; 296 conditionalBranch4.ConditionParameter.ActualName = "Terminate"; 297 298 assigner2.Name = "Reset NumberOfCreatedOffspring"; 299 assigner2.LeftSideParameter.ActualName = "NumberOfCreatedOffspring"; 300 assigner2.RightSideParameter.Value = new IntValue(0); 301 302 assigner3.Name = "Reset NumberOfSuccessfulOffspring"; 303 assigner3.LeftSideParameter.ActualName = "NumberOfSuccessfulOffspring"; 304 assigner3.RightSideParameter.Value = new IntValue(0); 305 306 assigner4.Name = "Reset OffspringList"; 307 assigner4.LeftSideParameter.ActualName = "OffspringList"; 308 assigner4.RightSideParameter.Value = new ScopeList(); 277 309 #endregion 278 310 279 311 #region Create operator graph 280 312 OperatorGraph.InitialOperator = variableCreator; 281 variableCreator.Successor = intCounter1;282 intCounter1.Successor = resultsCollector;313 variableCreator.Successor = assigner1; 314 assigner1.Successor = resultsCollector; 283 315 resultsCollector.Successor = analyzer1; 284 316 analyzer1.Successor = selector; … … 286 318 subScopesProcessor1.Operators.Add(new EmptyOperator()); 287 319 subScopesProcessor1.Operators.Add(childrenCreator); 288 subScopesProcessor1.Successor = subScopesProcessor2;289 childrenCreator.Successor = uniformSubScopesProcessor 1;290 uniformSubScopesProcessor 1.Operator = crossover;291 uniformSubScopesProcessor 1.Successor = uniformSubScopesProcessor2;320 subScopesProcessor1.Successor = comparator1; 321 childrenCreator.Successor = uniformSubScopesProcessor; 322 uniformSubScopesProcessor.Operator = crossover; 323 uniformSubScopesProcessor.Successor = subScopesCounter1; 292 324 crossover.Successor = stochasticBranch; 293 325 stochasticBranch.FirstBranch = mutator; 294 326 stochasticBranch.SecondBranch = null; 295 stochasticBranch.Successor = null;296 327 mutator.Successor = null; 297 s ubScopesRemover.Successor = null;298 uniformSubScopesProcessor2.Operator = evaluator;299 uniformSubScopesProcessor2.Successor = subScopesCounter1;300 evaluator.Successor = comparator1;301 subScopesCounter1.Successor = conditionalSelector;328 stochasticBranch.Successor = evaluator; 329 evaluator.Successor = weightedParentsQualityComparator; 330 weightedParentsQualityComparator.Successor = subScopesRemover; 331 subScopesCounter1.Successor = intCounter1; 332 intCounter1.Successor = conditionalSelector; 302 333 conditionalSelector.Successor = rightReducer1; 303 rightReducer1.Successor = uniformSubScopesProcessor3;304 uniformSubScopesProcessor3.Operator = subScopesRemover;305 uniformSubScopesProcessor3.Successor = duplicateSelector;306 duplicateSelector.Successor = leftReducer;307 leftReducer.Successor = subScopesCounter2;308 subScopesCounter2.Successor= comparator2;309 co mparator2.Successor = conditionalBranch1;310 co nditionalBranch1.TrueBranch = bestSelector1;311 conditionalBranch 1.FalseBranch = bestSelector2;312 bestSelector1.Successor = rightReducer2;313 bestSelector2.Successor = rightReducer2;314 subScopesProcessor2.Operators.Add(bestSelector 3);315 subScopesProcessor2.Operators.Add( new EmptyOperator());334 rightReducer1.Successor = duplicateSelector; 335 duplicateSelector.Successor = leftReducer1; 336 leftReducer1.Successor = progressiveOffspringSelector; 337 progressiveOffspringSelector.Successor = subScopesCounter2; 338 comparator1.Successor = conditionalBranch1; 339 conditionalBranch1.FalseBranch = comparator2; 340 conditionalBranch1.TrueBranch = subScopesProcessor2; 341 comparator2.Successor = conditionalBranch2; 342 conditionalBranch2.FalseBranch = leftReducer2; 343 conditionalBranch2.TrueBranch = subScopesProcessor2; 344 leftReducer2.Successor = selector; 345 subScopesProcessor2.Operators.Add(bestSelector); 346 subScopesProcessor2.Operators.Add(scopeCleaner); 316 347 subScopesProcessor2.Successor = mergingReducer; 317 bestSelector3.Successor = rightReducer3; 318 rightReducer3.Successor = null; 348 bestSelector.Successor = rightReducer2; 349 rightReducer2.Successor = null; 350 scopeCleaner.Successor = offspringRestorer; 319 351 mergingReducer.Successor = intCounter2; 320 intCounter2.Successor = comparator3; 321 comparator3.Successor = analyzer2; 322 analyzer2.Successor = conditionalBranch2; 323 conditionalBranch2.FalseBranch = subScopesCounter3; 324 conditionalBranch2.TrueBranch = null; 325 conditionalBranch2.Successor = null; 326 subScopesCounter3.Successor = comparator4; 327 comparator4.Successor = conditionalBranch3; 328 conditionalBranch3.FalseBranch = selector; 352 intCounter2.Successor = subScopesCounter3; 353 subScopesCounter3.Successor = analyzer2; 354 analyzer2.Successor = comparator3; 355 comparator3.Successor = conditionalBranch3; 356 conditionalBranch3.FalseBranch = comparator4; 329 357 conditionalBranch3.TrueBranch = null; 330 358 conditionalBranch3.Successor = null; 359 comparator4.Successor = conditionalBranch4; 360 conditionalBranch4.FalseBranch = assigner2; 361 conditionalBranch4.TrueBranch = null; 362 conditionalBranch4.Successor = null; 363 assigner2.Successor = assigner3; 364 assigner3.Successor = assigner4; 365 assigner4.Successor = selector; 366 331 367 #endregion 332 368 }
Note: See TracChangeset
for help on using the changeset viewer.