Changeset 3622 for trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealingMainLoop.cs
- Timestamp:
- 05/05/10 03:30:34 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/SimulatedAnnealingMainLoop.cs
r3522 r3622 77 77 get { return (ValueLookupParameter<IOperator>)Parameters["AnnealingOperator"]; } 78 78 } 79 public ValueLookupParameter<IOperator> VisualizerParameter { 80 get { return (ValueLookupParameter<IOperator>)Parameters["Visualizer"]; } 81 } 82 public LookupParameter<IItem> VisualizationParameter { 83 get { return (LookupParameter<IItem>)Parameters["Visualization"]; } 79 public ValueLookupParameter<IOperator> AnalyzerParameter { 80 get { return (ValueLookupParameter<IOperator>)Parameters["Analyzer"]; } 84 81 } 85 82 public ValueLookupParameter<VariableCollection> ResultsParameter { … … 112 109 Parameters.Add(new ValueLookupParameter<IOperator>("AnnealingOperator", "The operator that modifies the temperature.")); 113 110 114 Parameters.Add(new ValueLookupParameter<IOperator>("Visualizer", "The operator used to visualize solutions.")); 115 Parameters.Add(new LookupParameter<IItem>("Visualization", "The item which represents the visualization of solutions.")); 111 Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each generation.")); 116 112 Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The variable collection where results should be stored.")); 117 113 #endregion … … 119 115 #region Create operators 120 116 VariableCreator variableCreator = new VariableCreator(); 121 BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer(); 122 BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer(); 123 QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator(); 124 Placeholder visualizer1 = new Placeholder(); 117 ResultsCollector resultsCollector1 = new ResultsCollector(); 118 Placeholder analyzer1 = new Placeholder(); 125 119 SubScopesProcessor sssp = new SubScopesProcessor(); 126 120 ResultsCollector resultsCollector = new ResultsCollector(); 127 121 Placeholder annealingOperator = new Placeholder(); 128 122 UniformSubScopesProcessor mainProcessor = new UniformSubScopesProcessor(); 129 DataTableValuesCollector valuesCollector = new DataTableValuesCollector();130 123 Placeholder moveGenerator = new Placeholder(); 131 124 UniformSubScopesProcessor moveEvaluationProcessor = new UniformSubScopesProcessor(); … … 137 130 IntCounter iterationsCounter = new IntCounter(); 138 131 Comparator iterationsComparator = new Comparator(); 139 BestQualityMemorizer bestQualityMemorizer3 = new BestQualityMemorizer(); 140 BestQualityMemorizer bestQualityMemorizer4 = new BestQualityMemorizer(); 141 QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator(); 142 Placeholder visualizer2 = new Placeholder(); 132 ResultsCollector resultsCollector2 = new ResultsCollector(); 133 Placeholder analyzer2 = new Placeholder(); 143 134 ConditionalBranch iterationsTermination = new ConditionalBranch(); 144 135 145 136 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Iterations", new IntValue(0))); 146 variableCreator.CollectedValues.Add(new ValueParameter<DataTable>("Qualities", new DataTable("Qualities")));147 137 variableCreator.CollectedValues.Add(new ValueParameter<DoubleValue>("Temperature", new DoubleValue(double.MaxValue))); 148 138 149 bestQualityMemorizer1.BestQualityParameter.ActualName = "BestQuality"; 150 bestQualityMemorizer1.MaximizationParameter.ActualName = MaximizationParameter.Name; 151 bestQualityMemorizer1.QualityParameter.ActualName = QualityParameter.Name; 152 153 bestQualityMemorizer2.BestQualityParameter.ActualName = BestKnownQualityParameter.Name; 154 bestQualityMemorizer2.MaximizationParameter.ActualName = MaximizationParameter.Name; 155 bestQualityMemorizer2.QualityParameter.ActualName = QualityParameter.Name; 156 157 qualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; 158 qualityDifferenceCalculator1.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name; 159 qualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest"; 160 qualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality"; 161 162 visualizer1.Name = "Visualizer (placeholder)"; 163 visualizer1.OperatorParameter.ActualName = VisualizerParameter.Name; 164 165 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Iterations")); 166 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(QualityParameter.Name)); 167 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality") { ActualName = "BestQuality" }); 168 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 169 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities")); 170 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Temperature")); 171 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest")); 172 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest")); 173 resultsCollector.CollectedValues.Add(new LookupParameter<IItem>("Solution Visualization", null, VisualizationParameter.Name)); 174 139 resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Iterations")); 140 resultsCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Temperature")); 141 resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name; 142 143 analyzer1.Name = "Analyzer (placeholder)"; 144 analyzer1.OperatorParameter.ActualName = AnalyzerParameter.Name; 145 175 146 annealingOperator.Name = "Annealing operator (placeholder)"; 176 147 annealingOperator.OperatorParameter.ActualName = AnnealingOperatorParameter.Name; 177 178 valuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Quality", null, QualityParameter.Name));179 valuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality"));180 valuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name));181 valuesCollector.DataTableParameter.ActualName = "Qualities";182 148 183 149 moveGenerator.Name = "Move generator (placeholder)"; … … 209 175 iterationsComparator.Comparison.Value = ComparisonType.GreaterOrEqual; 210 176 211 bestQualityMemorizer3.BestQualityParameter.ActualName = "BestQuality"; 212 bestQualityMemorizer3.MaximizationParameter.ActualName = MaximizationParameter.Name; 213 bestQualityMemorizer3.QualityParameter.ActualName = QualityParameter.Name; 214 215 bestQualityMemorizer4.BestQualityParameter.ActualName = BestKnownQualityParameter.Name; 216 bestQualityMemorizer4.MaximizationParameter.ActualName = MaximizationParameter.Name; 217 bestQualityMemorizer4.QualityParameter.ActualName = QualityParameter.Name; 218 219 qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; 220 qualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name; 221 qualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest"; 222 qualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality"; 223 224 visualizer2.Name = "Visualizer (placeholder)"; 225 visualizer2.OperatorParameter.ActualName = VisualizerParameter.Name; 177 resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Iterations")); 178 resultsCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Temperature")); 179 resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name; 180 181 analyzer2.Name = "Analyzer (placeholder)"; 182 analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name; 226 183 227 184 iterationsTermination.Name = "Iterations termination condition"; … … 231 188 #region Create operator graph 232 189 OperatorGraph.InitialOperator = variableCreator; 233 variableCreator.Successor = bestQualityMemorizer1; 234 bestQualityMemorizer1.Successor = bestQualityMemorizer2; 235 bestQualityMemorizer2.Successor = qualityDifferenceCalculator1; 236 qualityDifferenceCalculator1.Successor = visualizer1; 237 visualizer1.Successor = sssp; 190 variableCreator.Successor = resultsCollector1; 191 resultsCollector1.Successor = analyzer1; 192 analyzer1.Successor = sssp; 238 193 sssp.Operators.Add(resultsCollector); 239 194 resultsCollector.Successor = null; 240 195 sssp.Successor = annealingOperator; 241 196 annealingOperator.Successor = mainProcessor; 242 mainProcessor.Operator = valuesCollector;197 mainProcessor.Operator = moveGenerator; 243 198 mainProcessor.Successor = iterationsCounter; 244 valuesCollector.Successor = moveGenerator;245 199 moveGenerator.Successor = moveEvaluationProcessor; 246 200 moveEvaluationProcessor.Operator = moveEvaluator; … … 250 204 improvesQualityBranch.TrueBranch = moveMaker; 251 205 iterationsCounter.Successor = iterationsComparator; 252 iterationsComparator.Successor = bestQualityMemorizer3; 253 bestQualityMemorizer3.Successor = bestQualityMemorizer4; 254 bestQualityMemorizer4.Successor = qualityDifferenceCalculator2; 255 qualityDifferenceCalculator2.Successor = visualizer2; 256 visualizer2.Successor = iterationsTermination; 206 iterationsComparator.Successor = resultsCollector2; 207 resultsCollector2.Successor = analyzer2; 208 analyzer2.Successor = iterationsTermination; 257 209 iterationsTermination.TrueBranch = null; 258 210 iterationsTermination.FalseBranch = annealingOperator;
Note: See TracChangeset
for help on using the changeset viewer.