- Timestamp:
- 01/22/11 15:18:20 (14 years ago)
- Location:
- trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithm.cs ¶
r4722 r5356 239 239 } 240 240 private IslandOffspringSelectionGeneticAlgorithmMainLoop MainLoop { 241 get { return (IslandOffspringSelectionGeneticAlgorithmMainLoop)IslandProcessor.Successor; } 241 get { 242 return (IslandOffspringSelectionGeneticAlgorithmMainLoop)( 243 (ResultsCollector)( 244 (UniformSubScopesProcessor)( 245 (VariableCreator)IslandProcessor.Successor 246 ).Successor 247 ).Successor 248 ).Successor; 249 } 242 250 } 243 251 [Storable] … … 300 308 UniformSubScopesProcessor ussp1 = new UniformSubScopesProcessor(); 301 309 SolutionsCreator solutionsCreator = new SolutionsCreator(); 310 VariableCreator variableCreator = new VariableCreator(); 311 UniformSubScopesProcessor ussp2 = new UniformSubScopesProcessor(); 312 SubScopesCounter subScopesCounter = new SubScopesCounter(); 313 ResultsCollector resultsCollector = new ResultsCollector(); 302 314 IslandOffspringSelectionGeneticAlgorithmMainLoop mainLoop = new IslandOffspringSelectionGeneticAlgorithmMainLoop(); 303 315 OperatorGraph.InitialOperator = randomCreator; … … 314 326 315 327 ussp1.Operator = solutionsCreator; 316 ussp1.Successor = mainLoop;328 ussp1.Successor = variableCreator; 317 329 318 330 solutionsCreator.NumberOfSolutionsParameter.ActualName = PopulationSizeParameter.Name; 319 331 solutionsCreator.Successor = null; 332 333 variableCreator.Name = "Initialize EvaluatedSolutions"; 334 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutions", new IntValue())); 335 variableCreator.Successor = ussp2; 336 337 ussp2.Operator = subScopesCounter; 338 ussp2.Successor = resultsCollector; 339 340 subScopesCounter.Name = "Increment EvaluatedSolutions"; 341 subScopesCounter.ValueParameter.ActualName = "EvaluatedSolutions"; 342 343 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", "", "EvaluatedSolutions")); 344 resultsCollector.ResultsParameter.ActualName = "Results"; 345 resultsCollector.Successor = mainLoop; 320 346 321 347 mainLoop.EmigrantsSelectorParameter.ActualName = EmigrantsSelectorParameter.Name; … … 339 365 mainLoop.MaximumSelectionPressureParameter.ActualName = MaximumSelectionPressureParameter.Name; 340 366 mainLoop.OffspringSelectionBeforeMutationParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name; 367 mainLoop.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions"; 341 368 mainLoop.Successor = null; 342 369 -
TabularUnified trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/IslandOffspringSelectionGeneticAlgorithmMainLoop.cs ¶
r5208 r5356 123 123 public ValueLookupParameter<IOperator> IslandAnalyzerParameter { 124 124 get { return (ValueLookupParameter<IOperator>)Parameters["IslandAnalyzer"]; } 125 } 126 public LookupParameter<IntValue> EvaluatedSolutionsParameter { 127 get { return (LookupParameter<IntValue>)Parameters["EvaluatedSolutions"]; } 125 128 } 126 129 #endregion … … 166 169 Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to the analyze the islands.")); 167 170 Parameters.Add(new ValueLookupParameter<IOperator>("IslandAnalyzer", "The operator used to analyze each island.")); 171 Parameters.Add(new LookupParameter<IntValue>("EvaluatedSolutions", "The number of times solutions have been evaluated.")); 168 172 #endregion 169 173 … … 177 181 Placeholder analyzer1 = new Placeholder(); 178 182 ResultsCollector resultsCollector1 = new ResultsCollector(); 179 ResultsCollector resultsCollector2 = new ResultsCollector();180 183 UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor(); 181 184 ConditionalBranch islandTerminatedBySelectionPressure1 = new ConditionalBranch(); … … 183 186 Placeholder islandAnalyzer2 = new Placeholder(); 184 187 ResultsCollector islandResultsCollector2 = new ResultsCollector(); 185 IntCounter islandEvaluatedSolutionsCounter = new IntCounter();186 Assigner islandEvaluatedSolutionsAssigner = new Assigner();187 188 Comparator islandSelectionPressureComparator = new Comparator(); 188 189 ConditionalBranch islandTerminatedBySelectionPressure2 = new ConditionalBranch(); … … 206 207 Placeholder comparisonFactorModifier = new Placeholder(); 207 208 Placeholder analyzer2 = new Placeholder(); 208 ResultsCollector resultsCollector3 = new ResultsCollector();209 209 ConditionalBranch generationsTerminationCondition = new ConditionalBranch(); 210 210 ConditionalBranch terminatedIslandsCondition = new ConditionalBranch(); … … 215 215 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("GenerationsSinceLastMigration", new IntValue(0))); 216 216 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("TerminatedIslands", new IntValue(0))); 217 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutions", new IntValue(0)));218 217 219 218 islandVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>(ResultsParameter.Name, new ResultCollection())); 220 islandVariableCreator.CollectedValues.Add(new ValueParameter<IntValue>("IslandEvaluatedSolutions", new IntValue(0)));221 219 islandVariableCreator.CollectedValues.Add(new ValueParameter<BoolValue>("TerminateSelectionPressure", new BoolValue(false))); 222 220 islandVariableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("SelectionPressure", new DoubleValue(0))); … … 243 241 resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name; 244 242 245 resultsCollector2.CopyValue = new BoolValue(true);246 resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));247 resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;248 249 243 islandTerminatedBySelectionPressure1.Name = "Island Terminated ?"; 250 244 islandTerminatedBySelectionPressure1.ConditionParameter.ActualName = "TerminateSelectionPressure"; … … 254 248 mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio"; 255 249 mainOperator.ElitesParameter.ActualName = ElitesParameter.Name; 256 mainOperator.EvaluatedSolutionsParameter.ActualName = "IslandEvaluatedSolutions";250 mainOperator.EvaluatedSolutionsParameter.ActualName = EvaluatedSolutionsParameter.Name; 257 251 mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 258 252 mainOperator.MaximizationParameter.ActualName = MaximizationParameter.Name; … … 274 268 islandResultsCollector2.ResultsParameter.ActualName = "Results"; 275 269 276 islandEvaluatedSolutionsCounter.Name = "Update EvaluatedSolutions";277 islandEvaluatedSolutionsCounter.ValueParameter.ActualName = "EvaluatedSolutions";278 islandEvaluatedSolutionsCounter.Increment = null;279 islandEvaluatedSolutionsCounter.IncrementParameter.ActualName = "IslandEvaluatedSolutions";280 281 islandEvaluatedSolutionsAssigner.Name = "Reset EvaluatedSolutions";282 islandEvaluatedSolutionsAssigner.LeftSideParameter.ActualName = "IslandEvaluatedSolutions";283 islandEvaluatedSolutionsAssigner.RightSideParameter.Value = new IntValue(0);284 285 270 islandSelectionPressureComparator.Name = "SelectionPressure >= MaximumSelectionPressure ?"; 286 271 islandSelectionPressureComparator.LeftSideParameter.ActualName = "SelectionPressure"; … … 352 337 maxEvaluatedSolutionsComparator.Name = "EvaluatedSolutions >= MaximumEvaluatedSolutions ?"; 353 338 maxEvaluatedSolutionsComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 354 maxEvaluatedSolutionsComparator.LeftSideParameter.ActualName = "EvaluatedSolutions";339 maxEvaluatedSolutionsComparator.LeftSideParameter.ActualName = EvaluatedSolutionsParameter.Name; 355 340 maxEvaluatedSolutionsComparator.ResultParameter.ActualName = "TerminateEvaluatedSolutions"; 356 341 maxEvaluatedSolutionsComparator.RightSideParameter.ActualName = "MaximumEvaluatedSolutions"; … … 361 346 analyzer2.Name = "Analyzer (placeholder)"; 362 347 analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name; 363 364 resultsCollector3.CopyValue = new BoolValue(true);365 resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));366 resultsCollector3.ResultsParameter.ActualName = ResultsParameter.Name;367 348 368 349 generationsTerminationCondition.Name = "Terminate (MaxGenerations) ?"; … … 386 367 comparisonFactorInitializer.Successor = analyzer1; 387 368 analyzer1.Successor = resultsCollector1; 388 resultsCollector1.Successor = resultsCollector2; 389 resultsCollector2.Successor = uniformSubScopesProcessor1; 369 resultsCollector1.Successor = uniformSubScopesProcessor1; 390 370 uniformSubScopesProcessor1.Operator = islandTerminatedBySelectionPressure1; 391 371 uniformSubScopesProcessor1.Successor = generationsCounter; … … 395 375 mainOperator.Successor = islandAnalyzer2; 396 376 islandAnalyzer2.Successor = islandResultsCollector2; 397 islandResultsCollector2.Successor = islandEvaluatedSolutionsCounter; 398 islandEvaluatedSolutionsCounter.Successor = islandEvaluatedSolutionsAssigner; 399 islandEvaluatedSolutionsAssigner.Successor = islandSelectionPressureComparator; 377 islandResultsCollector2.Successor = islandSelectionPressureComparator; 400 378 islandSelectionPressureComparator.Successor = islandTerminatedBySelectionPressure2; 401 379 islandTerminatedBySelectionPressure2.TrueBranch = terminatedIslandsCounter; … … 423 401 maxEvaluatedSolutionsComparator.Successor = comparisonFactorModifier; 424 402 comparisonFactorModifier.Successor = analyzer2; 425 analyzer2.Successor = resultsCollector3; 426 resultsCollector3.Successor = generationsTerminationCondition; 403 analyzer2.Successor = generationsTerminationCondition; 427 404 generationsTerminationCondition.TrueBranch = null; 428 405 generationsTerminationCondition.FalseBranch = terminatedIslandsCondition; -
TabularUnified trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithm.cs ¶
r4722 r5356 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Operators; 28 29 using HeuristicLab.Optimization; 29 30 using HeuristicLab.Optimization.Operators; … … 190 191 } 191 192 private OffspringSelectionGeneticAlgorithmMainLoop MainLoop { 192 get { return (OffspringSelectionGeneticAlgorithmMainLoop)SolutionsCreator.Successor; } 193 get { 194 return (OffspringSelectionGeneticAlgorithmMainLoop)( 195 (ResultsCollector)( 196 (SubScopesCounter)SolutionsCreator.Successor 197 ).Successor 198 ).Successor; 199 } 193 200 } 194 201 [Storable] … … 236 243 RandomCreator randomCreator = new RandomCreator(); 237 244 SolutionsCreator solutionsCreator = new SolutionsCreator(); 245 SubScopesCounter subScopesCounter = new SubScopesCounter(); 246 ResultsCollector resultsCollector = new ResultsCollector(); 238 247 OffspringSelectionGeneticAlgorithmMainLoop mainLoop = new OffspringSelectionGeneticAlgorithmMainLoop(); 239 248 OperatorGraph.InitialOperator = randomCreator; … … 247 256 248 257 solutionsCreator.NumberOfSolutionsParameter.ActualName = PopulationSizeParameter.Name; 249 solutionsCreator.Successor = mainLoop; 258 solutionsCreator.Successor = subScopesCounter; 259 260 subScopesCounter.Name = "Initialize EvaluatedSolutions"; 261 subScopesCounter.ValueParameter.ActualName = "EvaluatedSolutions"; 262 subScopesCounter.Successor = resultsCollector; 263 264 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", "", "EvaluatedSolutions")); 265 resultsCollector.ResultsParameter.ActualName = "Results"; 266 resultsCollector.Successor = mainLoop; 250 267 251 268 mainLoop.AnalyzerParameter.ActualName = AnalyzerParameter.Name; … … 255 272 mainLoop.CrossoverParameter.ActualName = CrossoverParameter.Name; 256 273 mainLoop.ElitesParameter.ActualName = ElitesParameter.Name; 274 mainLoop.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions"; 257 275 mainLoop.MaximumGenerationsParameter.ActualName = MaximumGenerationsParameter.Name; 258 276 mainLoop.MaximumSelectionPressureParameter.ActualName = MaximumSelectionPressureParameter.Name; -
TabularUnified trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainLoop.cs ¶
r5208 r5356 89 89 public ValueLookupParameter<BoolValue> OffspringSelectionBeforeMutationParameter { 90 90 get { return (ValueLookupParameter<BoolValue>)Parameters["OffspringSelectionBeforeMutation"]; } 91 } 92 public LookupParameter<IntValue> EvaluatedSolutionsParameter { 93 get { return (LookupParameter<IntValue>)Parameters["EvaluatedSolutions"]; } 91 94 } 92 95 #endregion … … 126 129 Parameters.Add(new ValueLookupParameter<DoubleValue>("MaximumSelectionPressure", "The maximum selection pressure that terminates the algorithm.")); 127 130 Parameters.Add(new ValueLookupParameter<BoolValue>("OffspringSelectionBeforeMutation", "True if the offspring selection step should be applied before mutation, false if it should be applied after mutation.")); 131 Parameters.Add(new LookupParameter<IntValue>("EvaluatedSolutions", "The number of times solutions have been evaluated.")); 128 132 #endregion 129 133 … … 133 137 Placeholder analyzer1 = new Placeholder(); 134 138 ResultsCollector resultsCollector1 = new ResultsCollector(); 135 ResultsCollector resultsCollector2 = new ResultsCollector();136 139 OffspringSelectionGeneticAlgorithmMainOperator mainOperator = new OffspringSelectionGeneticAlgorithmMainOperator(); 137 140 IntCounter generationsCounter = new IntCounter(); … … 141 144 Placeholder comparisonFactorModifier = new Placeholder(); 142 145 Placeholder analyzer2 = new Placeholder(); 143 ResultsCollector resultsCollector3 = new ResultsCollector();144 146 ConditionalBranch conditionalBranch1 = new ConditionalBranch(); 145 147 ConditionalBranch conditionalBranch2 = new ConditionalBranch(); … … 147 149 148 150 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); // Class OffspringSelectionGeneticAlgorithm expects this to be called Generations 149 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutions", new IntValue(0)));150 151 variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("SelectionPressure", new DoubleValue(0))); 151 152 variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("CurrentSuccessRatio", new DoubleValue(0))); … … 165 166 resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name; 166 167 167 resultsCollector2.CopyValue = new BoolValue(true);168 resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));169 resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;170 171 168 mainOperator.ComparisonFactorParameter.ActualName = ComparisonFactorParameter.Name; 172 169 mainOperator.CrossoverParameter.ActualName = CrossoverParameter.Name; 173 170 mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio"; 174 171 mainOperator.ElitesParameter.ActualName = ElitesParameter.Name; 175 mainOperator.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions";172 mainOperator.EvaluatedSolutionsParameter.ActualName = EvaluatedSolutionsParameter.Name; 176 173 mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 177 174 mainOperator.MaximizationParameter.ActualName = MaximizationParameter.Name; … … 200 197 201 198 maxEvaluatedSolutionsComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 202 maxEvaluatedSolutionsComparator.LeftSideParameter.ActualName = "EvaluatedSolutions";199 maxEvaluatedSolutionsComparator.LeftSideParameter.ActualName = EvaluatedSolutionsParameter.Name; 203 200 maxEvaluatedSolutionsComparator.ResultParameter.ActualName = "TerminateEvaluatedSolutions"; 204 201 maxEvaluatedSolutionsComparator.RightSideParameter.ActualName = "MaximumEvaluatedSolutions"; … … 209 206 analyzer2.Name = "Analyzer (placeholder)"; 210 207 analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name; 211 212 resultsCollector3.CopyValue = new BoolValue(true);213 resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));214 resultsCollector3.ResultsParameter.ActualName = ResultsParameter.Name;215 208 216 209 conditionalBranch1.Name = "MaximumSelectionPressure reached?"; … … 229 222 comparisonFactorInitializer.Successor = analyzer1; 230 223 analyzer1.Successor = resultsCollector1; 231 resultsCollector1.Successor = resultsCollector2; 232 resultsCollector2.Successor = mainOperator; 224 resultsCollector1.Successor = mainOperator; 233 225 mainOperator.Successor = generationsCounter; 234 226 generationsCounter.Successor = maxGenerationsComparator; … … 237 229 maxEvaluatedSolutionsComparator.Successor = comparisonFactorModifier; 238 230 comparisonFactorModifier.Successor = analyzer2; 239 analyzer2.Successor = resultsCollector3; 240 resultsCollector3.Successor = conditionalBranch1; 231 analyzer2.Successor = conditionalBranch1; 241 232 conditionalBranch1.FalseBranch = conditionalBranch2; 242 233 conditionalBranch1.TrueBranch = null; -
TabularUnified trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/OffspringSelectionGeneticAlgorithmMainOperator.cs ¶
r5208 r5356 129 129 UniformSubScopesProcessor uniformSubScopesProcessor2 = new UniformSubScopesProcessor(); 130 130 Placeholder evaluator1 = new Placeholder(); 131 IntCounter evaluationCounter1 = new IntCounter();131 SubScopesCounter subScopesCounter1 = new SubScopesCounter(); 132 132 WeightedParentsQualityComparator qualityComparer1 = new WeightedParentsQualityComparator(); 133 133 SubScopesRemover subScopesRemover1 = new SubScopesRemover(); … … 141 141 UniformSubScopesProcessor uniformSubScopesProcessor4 = new UniformSubScopesProcessor(); 142 142 Placeholder evaluator2 = new Placeholder(); 143 IntCounter evaluationCounter2 = new IntCounter();143 SubScopesCounter subScopesCounter2 = new SubScopesCounter(); 144 144 MergingReducer mergingReducer1 = new MergingReducer(); 145 145 UniformSubScopesProcessor uniformSubScopesProcessor5 = new UniformSubScopesProcessor(); … … 149 149 UniformSubScopesProcessor uniformSubScopesProcessor6 = new UniformSubScopesProcessor(); 150 150 Placeholder evaluator3 = new Placeholder(); 151 IntCounter evaluationCounter3 = new IntCounter();151 SubScopesCounter subScopesCounter3 = new SubScopesCounter(); 152 152 WeightedParentsQualityComparator qualityComparer2 = new WeightedParentsQualityComparator(); 153 153 SubScopesRemover subScopesRemover2 = new SubScopesRemover(); … … 176 176 evaluator1.OperatorParameter.ActualName = EvaluatorParameter.Name; 177 177 178 evaluationCounter1.Name = "EvaluatedSolutions++"; 179 evaluationCounter1.Increment = new IntValue(1); 180 evaluationCounter1.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 178 subScopesCounter1.Name = "Increment EvaluatedSolutions"; 179 subScopesCounter1.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 181 180 182 181 qualityComparer1.ComparisonFactorParameter.ActualName = ComparisonFactorParameter.Name; … … 209 208 evaluator2.OperatorParameter.ActualName = EvaluatorParameter.Name; 210 209 211 evaluationCounter2.Name = "EvaluatedSolutions++"; 212 evaluationCounter2.Increment = new IntValue(1); 213 evaluationCounter2.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 210 subScopesCounter2.Name = "Increment EvaluatedSolutions"; 211 subScopesCounter2.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 214 212 215 213 crossover2.Name = "Crossover (placeholder)"; … … 227 225 evaluator3.OperatorParameter.ActualName = EvaluatorParameter.Name; 228 226 229 evaluationCounter3.Name = "EvaluatedSolutions++"; 230 evaluationCounter3.Increment = new IntValue(1); 231 evaluationCounter3.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 227 subScopesCounter3.Name = "Increment EvaluatedSolutions"; 228 subScopesCounter3.ValueParameter.ActualName = EvaluatedSolutionsParameter.Name; 232 229 233 230 qualityComparer2.ComparisonFactorParameter.ActualName = ComparisonFactorParameter.Name; … … 272 269 crossover1.Successor = null; 273 270 uniformSubScopesProcessor2.Operator = evaluator1; 274 uniformSubScopesProcessor2.Successor = uniformSubScopesProcessor3; 275 evaluator1.Successor = evaluationCounter1; 276 evaluationCounter1.Successor = qualityComparer1; 271 uniformSubScopesProcessor2.Successor = subScopesCounter1; 272 evaluator1.Successor = qualityComparer1; 277 273 qualityComparer1.Successor = subScopesRemover1; 278 274 subScopesRemover1.Successor = null; 275 subScopesCounter1.Successor = uniformSubScopesProcessor3; 279 276 uniformSubScopesProcessor3.Operator = mutationBranch1; 280 277 uniformSubScopesProcessor3.Successor = conditionalSelector; … … 290 287 subScopesProcessor2.Successor = mergingReducer1; 291 288 uniformSubScopesProcessor4.Operator = evaluator2; 292 uniformSubScopesProcessor4.Successor = null;293 evaluator2.Successor = evaluationCounter2;294 evaluationCounter2.Successor = null;289 uniformSubScopesProcessor4.Successor = subScopesCounter2; 290 evaluator2.Successor = null; 291 subScopesCounter2.Successor = null; 295 292 mergingReducer1.Successor = null; 296 293 uniformSubScopesProcessor5.Operator = crossover2; … … 302 299 mutator2.Successor = null; 303 300 uniformSubScopesProcessor6.Operator = evaluator3; 304 uniformSubScopesProcessor6.Successor = null; 305 evaluator3.Successor = evaluationCounter3; 306 evaluationCounter3.Successor = qualityComparer2; 301 uniformSubScopesProcessor6.Successor = subScopesCounter3; 302 evaluator3.Successor = qualityComparer2; 307 303 qualityComparer2.Successor = subScopesRemover2; 308 304 subScopesRemover2.Successor = null; 305 subScopesCounter3.Successor = null; 309 306 offspringSelector.OffspringCreator = selector; 310 307 offspringSelector.Successor = subScopesProcessor3; -
TabularUnified trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASA.cs ¶
r4722 r5356 215 215 } 216 216 private SASEGASAMainLoop MainLoop { 217 get { return (SASEGASAMainLoop)VillageProcessor.Successor; } 217 get { 218 return (SASEGASAMainLoop)( 219 (ResultsCollector)( 220 (UniformSubScopesProcessor)( 221 (VariableCreator)VillageProcessor.Successor 222 ).Successor 223 ).Successor 224 ).Successor; 225 } 218 226 } 219 227 [Storable] … … 272 280 UniformSubScopesProcessor ussp1 = new UniformSubScopesProcessor(); 273 281 SolutionsCreator solutionsCreator = new SolutionsCreator(); 282 VariableCreator variableCreator = new VariableCreator(); 283 UniformSubScopesProcessor ussp2 = new UniformSubScopesProcessor(); 284 SubScopesCounter subScopesCounter = new SubScopesCounter(); 285 ResultsCollector resultsCollector = new ResultsCollector(); 274 286 SASEGASAMainLoop mainLoop = new SASEGASAMainLoop(); 275 287 OperatorGraph.InitialOperator = randomCreator; … … 286 298 287 299 ussp1.Operator = solutionsCreator; 288 ussp1.Successor = mainLoop;300 ussp1.Successor = variableCreator; 289 301 290 302 solutionsCreator.NumberOfSolutionsParameter.ActualName = PopulationSizeParameter.Name; 291 303 solutionsCreator.Successor = null; 304 305 variableCreator.Name = "Initialize EvaluatedSolutions"; 306 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutions", new IntValue())); 307 variableCreator.Successor = ussp2; 308 309 ussp2.Operator = subScopesCounter; 310 ussp2.Successor = resultsCollector; 311 312 subScopesCounter.Name = "Increment EvaluatedSolutions"; 313 subScopesCounter.ValueParameter.ActualName = "EvaluatedSolutions"; 314 315 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", "", "EvaluatedSolutions")); 316 resultsCollector.ResultsParameter.ActualName = "Results"; 317 resultsCollector.Successor = mainLoop; 292 318 293 319 mainLoop.NumberOfVillagesParameter.ActualName = NumberOfVillagesParameter.Name; … … 306 332 mainLoop.MaximumGenerationsParameter.ActualName = MaximumGenerationsParameter.Name; 307 333 mainLoop.OffspringSelectionBeforeMutationParameter.ActualName = OffspringSelectionBeforeMutationParameter.Name; 334 mainLoop.EvaluatedSolutionsParameter.ActualName = "EvaluatedSolutions"; 308 335 mainLoop.Successor = null; 309 336 -
TabularUnified trunk/sources/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/SASEGASAMainLoop.cs ¶
r5208 r5356 105 105 public ValueLookupParameter<BoolValue> OffspringSelectionBeforeMutationParameter { 106 106 get { return (ValueLookupParameter<BoolValue>)Parameters["OffspringSelectionBeforeMutation"]; } 107 } 108 public LookupParameter<IntValue> EvaluatedSolutionsParameter { 109 get { return (LookupParameter<IntValue>)Parameters["EvaluatedSolutions"]; } 107 110 } 108 111 #endregion … … 142 145 Parameters.Add(new ValueLookupParameter<IntValue>("MaximumGenerations", "The maximum genreation that terminates the algorithm.")); 143 146 Parameters.Add(new ValueLookupParameter<BoolValue>("OffspringSelectionBeforeMutation", "True if the offspring selection step should be applied before mutation, false if it should be applied after mutation.")); 147 Parameters.Add(new LookupParameter<IntValue>("EvaluatedSolutions", "The number of times solutions have been evaluated.")); 144 148 #endregion 145 149 … … 155 159 Placeholder analyzer1 = new Placeholder(); 156 160 ResultsCollector resultsCollector1 = new ResultsCollector(); 157 ResultsCollector resultsCollector2 = new ResultsCollector();158 161 UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor(); 159 162 ConditionalBranch villageTerminatedBySelectionPressure1 = new ConditionalBranch(); … … 161 164 Placeholder villageAnalyzer2 = new Placeholder(); 162 165 ResultsCollector villageResultsCollector2 = new ResultsCollector(); 163 IntCounter evaluatedSolutionsCounter = new IntCounter();164 Assigner villageEvaluatedSolutionsAssigner = new Assigner();165 166 Comparator villageSelectionPressureComparator = new Comparator(); 166 167 ConditionalBranch villageTerminatedBySelectionPressure2 = new ConditionalBranch(); … … 187 188 Comparator maximumEvaluatedSolutionsComparator = new Comparator(); 188 189 Placeholder analyzer2 = new Placeholder(); 189 ResultsCollector resultsCollector3 = new ResultsCollector();190 190 ConditionalBranch terminationCondition = new ConditionalBranch(); 191 191 ConditionalBranch maximumGenerationsTerminationCondition = new ConditionalBranch(); … … 195 195 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Generations", new IntValue(0))); // Class SASEGASA expects this to be called Generations 196 196 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("GenerationsSinceLastReunification", new IntValue(0))); 197 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedSolutions", new IntValue(0)));198 197 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("TerminatedVillages", new IntValue(0))); 199 198 … … 208 207 209 208 villageVariableCreator.CollectedValues.Add(new ValueParameter<ResultCollection>("Results", new ResultCollection())); 210 villageVariableCreator.CollectedValues.Add(new ValueParameter<IntValue>("VillageEvaluatedSolutions", new IntValue(0)));211 209 villageVariableCreator.CollectedValues.Add(new ValueParameter<BoolValue>("TerminateSelectionPressure", new BoolValue(false))); 212 210 villageVariableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("SelectionPressure", new DoubleValue(0))); … … 231 229 resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name; 232 230 233 resultsCollector2.CopyValue = new BoolValue(true);234 resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));235 resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;236 237 231 villageTerminatedBySelectionPressure1.Name = "Village Terminated ?"; 238 232 villageTerminatedBySelectionPressure1.ConditionParameter.ActualName = "TerminateSelectionPressure"; … … 242 236 mainOperator.CurrentSuccessRatioParameter.ActualName = "CurrentSuccessRatio"; 243 237 mainOperator.ElitesParameter.ActualName = ElitesParameter.Name; 244 mainOperator.EvaluatedSolutionsParameter.ActualName = "VillageEvaluatedSolutions";238 mainOperator.EvaluatedSolutionsParameter.ActualName = EvaluatedSolutionsParameter.Name; 245 239 mainOperator.EvaluatorParameter.ActualName = EvaluatorParameter.Name; 246 240 mainOperator.MaximizationParameter.ActualName = MaximizationParameter.Name; … … 262 256 villageResultsCollector2.ResultsParameter.ActualName = "Results"; 263 257 264 evaluatedSolutionsCounter.Name = "Update EvaluatedSolutions";265 evaluatedSolutionsCounter.ValueParameter.ActualName = "EvaluatedSolutions";266 evaluatedSolutionsCounter.Increment = null;267 evaluatedSolutionsCounter.IncrementParameter.ActualName = "VillageEvaluatedSolutions";268 269 villageEvaluatedSolutionsAssigner.Name = "Reset EvaluatedSolutions";270 villageEvaluatedSolutionsAssigner.LeftSideParameter.ActualName = "VillageEvaluatedSolutions";271 villageEvaluatedSolutionsAssigner.RightSideParameter.Value = new IntValue(0);272 273 258 villageSelectionPressureComparator.Name = "SelectionPressure >= MaximumSelectionPressure ?"; 274 259 villageSelectionPressureComparator.LeftSideParameter.ActualName = "SelectionPressure"; … … 360 345 maximumEvaluatedSolutionsComparator.Name = "EvaluatedSolutions >= MaximumEvaluatedSolutions"; 361 346 maximumEvaluatedSolutionsComparator.Comparison = new Comparison(ComparisonType.GreaterOrEqual); 362 maximumEvaluatedSolutionsComparator.LeftSideParameter.ActualName = "EvaluatedSolutions";347 maximumEvaluatedSolutionsComparator.LeftSideParameter.ActualName = EvaluatedSolutionsParameter.Name; 363 348 maximumEvaluatedSolutionsComparator.ResultParameter.ActualName = "TerminateEvaluatedSolutions"; 364 349 maximumEvaluatedSolutionsComparator.RightSideParameter.ActualName = "MaximumEvaluatedSolutions"; … … 366 351 analyzer2.Name = "Analyzer (placeholder)"; 367 352 analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name; 368 369 resultsCollector3.CopyValue = new BoolValue(true);370 resultsCollector3.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Solutions", null, "EvaluatedSolutions"));371 resultsCollector3.ResultsParameter.ActualName = ResultsParameter.Name;372 353 373 354 terminationCondition.ConditionParameter.ActualName = "TerminateSASEGASA"; … … 387 368 villageAnalyzer1.Successor = villageResultsCollector1; 388 369 analyzer1.Successor = resultsCollector1; 389 resultsCollector1.Successor = resultsCollector2; 390 resultsCollector2.Successor = uniformSubScopesProcessor1; 370 resultsCollector1.Successor = uniformSubScopesProcessor1; 391 371 uniformSubScopesProcessor1.Operator = villageTerminatedBySelectionPressure1; 392 372 uniformSubScopesProcessor1.Successor = generationsCounter; … … 396 376 mainOperator.Successor = villageAnalyzer2; 397 377 villageAnalyzer2.Successor = villageResultsCollector2; 398 villageResultsCollector2.Successor = evaluatedSolutionsCounter; 399 evaluatedSolutionsCounter.Successor = villageEvaluatedSolutionsAssigner; 400 villageEvaluatedSolutionsAssigner.Successor = villageSelectionPressureComparator; 378 villageResultsCollector2.Successor = villageSelectionPressureComparator; 401 379 villageSelectionPressureComparator.Successor = villageTerminatedBySelectionPressure2; 402 380 villageTerminatedBySelectionPressure2.TrueBranch = terminatedVillagesCounter; … … 433 411 maximumGenerationsComparator.Successor = maximumEvaluatedSolutionsComparator; 434 412 maximumEvaluatedSolutionsComparator.Successor = analyzer2; 435 analyzer2.Successor = resultsCollector3; 436 resultsCollector3.Successor = terminationCondition; 413 analyzer2.Successor = terminationCondition; 437 414 terminationCondition.TrueBranch = null; 438 415 terminationCondition.FalseBranch = maximumGenerationsTerminationCondition;
Note: See TracChangeset
for help on using the changeset viewer.