Changeset 5356 for trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing
- Timestamp:
- 01/22/11 15:18:20 (14 years ago)
- Location:
- trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealing.cs
r4722 r5356 27 27 using HeuristicLab.Core; 28 28 using HeuristicLab.Data; 29 using HeuristicLab.Operators; 29 30 using HeuristicLab.Optimization; 30 31 using HeuristicLab.Optimization.Operators; … … 135 136 } 136 137 private SimulatedAnnealingMainLoop MainLoop { 137 get { return (SimulatedAnnealingMainLoop)SolutionsCreator.Successor; } 138 get { 139 return (SimulatedAnnealingMainLoop)( 140 (ResultsCollector)( 141 (VariableCreator)SolutionsCreator.Successor 142 ).Successor 143 ).Successor; 144 } 138 145 } 139 146 [Storable] … … 171 178 RandomCreator randomCreator = new RandomCreator(); 172 179 SolutionsCreator solutionsCreator = new SolutionsCreator(); 180 VariableCreator variableCreator = new VariableCreator(); 181 ResultsCollector resultsCollector = new ResultsCollector(); 173 182 SimulatedAnnealingMainLoop mainLoop = new SimulatedAnnealingMainLoop(); 174 183 OperatorGraph.InitialOperator = randomCreator; … … 182 191 183 192 solutionsCreator.NumberOfSolutions = new IntValue(1); 184 solutionsCreator.Successor = mainLoop; 193 solutionsCreator.Successor = variableCreator; 194 195 variableCreator.Name = "Initialize EvaluatedMoves"; 196 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("EvaluatedMoves", new IntValue())); 197 variableCreator.Successor = resultsCollector; 198 199 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Evaluated Moves", null, "EvaluatedMoves")); 200 resultsCollector.ResultsParameter.ActualName = "Results"; 201 resultsCollector.Successor = mainLoop; 185 202 186 203 mainLoop.MoveGeneratorParameter.ActualName = MoveGeneratorParameter.Name; … … 194 211 mainLoop.ResultsParameter.ActualName = "Results"; 195 212 mainLoop.AnalyzerParameter.ActualName = AnalyzerParameter.Name; 213 mainLoop.EvaluatedMovesParameter.ActualName = "EvaluatedMoves"; 196 214 197 215 foreach (IDiscreteDoubleValueModifier op in ApplicationManager.Manager.GetInstances<IDiscreteDoubleValueModifier>().OrderBy(x => x.Name)) -
trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealingMainLoop.cs
r4722 r5356 80 80 public ValueLookupParameter<VariableCollection> ResultsParameter { 81 81 get { return (ValueLookupParameter<VariableCollection>)Parameters["Results"]; } 82 } 83 public LookupParameter<IntValue> EvaluatedMovesParameter { 84 get { return (LookupParameter<IntValue>)Parameters["EvaluatedMoves"]; } 82 85 } 83 86 #endregion … … 115 118 Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation.")); 116 119 Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored.")); 120 Parameters.Add(new LookupParameter<IntValue>("EvaluatedMoves", "The number of evaluated moves.")); 117 121 #endregion 118 122 … … 129 133 UniformSubScopesProcessor moveEvaluationProcessor = new UniformSubScopesProcessor(); 130 134 Placeholder moveEvaluator = new Placeholder(); 135 SubScopesCounter subScopesCounter = new SubScopesCounter(); 131 136 ProbabilisticQualityComparator qualityComparator = new ProbabilisticQualityComparator(); 132 137 ConditionalBranch improvesQualityBranch = new ConditionalBranch(); … … 135 140 IntCounter iterationsCounter = new IntCounter(); 136 141 Comparator iterationsComparator = new Comparator(); 137 ResultsCollector resultsCollector2 = new ResultsCollector();138 142 SubScopesProcessor subScopesProcessor1 = new SubScopesProcessor(); 139 143 Placeholder analyzer2 = new Placeholder(); … … 158 162 moveEvaluator.Name = "Move evaluator (placeholder)"; 159 163 moveEvaluator.OperatorParameter.ActualName = MoveEvaluatorParameter.Name; 164 165 subScopesCounter.Name = "Increment EvaluatedMoves"; 166 subScopesCounter.ValueParameter.ActualName = EvaluatedMovesParameter.Name; 160 167 161 168 qualityComparator.LeftSideParameter.ActualName = MoveQualityParameter.Name; … … 180 187 iterationsComparator.ResultParameter.ActualName = "Terminate"; 181 188 iterationsComparator.Comparison.Value = ComparisonType.GreaterOrEqual; 182 183 resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Iterations"));184 resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Temperature"));185 resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name;186 189 187 190 analyzer2.Name = "Analyzer (placeholder)"; … … 198 201 subScopesProcessor0.Operators.Add(analyzer1); 199 202 subScopesProcessor0.Successor = sssp; 203 analyzer1.Successor = null; 200 204 sssp.Operators.Add(resultsCollector); 205 sssp.Successor = annealingOperator; 201 206 resultsCollector.Successor = null; 202 sssp.Successor = annealingOperator;203 207 annealingOperator.Successor = mainProcessor; 204 208 mainProcessor.Operator = moveGenerator; … … 206 210 moveGenerator.Successor = moveEvaluationProcessor; 207 211 moveEvaluationProcessor.Operator = moveEvaluator; 208 moveEvaluationProcessor.Successor = subScopes Remover;212 moveEvaluationProcessor.Successor = subScopesCounter; 209 213 moveEvaluator.Successor = qualityComparator; 210 214 qualityComparator.Successor = improvesQualityBranch; 211 215 improvesQualityBranch.TrueBranch = moveMaker; 216 improvesQualityBranch.FalseBranch = null; 217 improvesQualityBranch.Successor = null; 218 moveMaker.Successor = null; 219 subScopesCounter.Successor = subScopesRemover; 220 subScopesRemover.Successor = null; 212 221 iterationsCounter.Successor = iterationsComparator; 213 iterationsComparator.Successor = resultsCollector2; 214 resultsCollector2.Successor = subScopesProcessor1; 222 iterationsComparator.Successor = subScopesProcessor1; 215 223 subScopesProcessor1.Operators.Add(analyzer2); 216 224 subScopesProcessor1.Successor = iterationsTermination;
Note: See TracChangeset
for help on using the changeset viewer.