- Timestamp:
- 05/05/10 02:52:59 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.LocalSearch/3.3/LocalSearchMainLoop.cs
r3376 r3621 68 68 get { return (ValueLookupParameter<IOperator>)Parameters["MoveMaker"]; } 69 69 } 70 public ValueLookupParameter<IOperator> VisualizerParameter {71 get { return (ValueLookupParameter<IOperator>)Parameters[" Visualizer"]; }72 } 73 public LookupParameter<IItem> VisualizationParameter {74 get { return ( LookupParameter<IItem>)Parameters["Visualization"]; }70 public ValueLookupParameter<IOperator> MoveAnalyzerParameter { 71 get { return (ValueLookupParameter<IOperator>)Parameters["MoveAnalyzer"]; } 72 } 73 public ValueLookupParameter<IOperator> AnalyzerParameter { 74 get { return (ValueLookupParameter<IOperator>)Parameters["Analyzer"]; } 75 75 } 76 76 … … 104 104 Parameters.Add(new ValueLookupParameter<IOperator>("MoveEvaluator", "The operator that evaluates a move.")); 105 105 106 Parameters.Add(new ValueLookupParameter<IOperator>(" Visualizer", "The operator used to visualize solutions."));107 Parameters.Add(new LookupParameter<IItem>("Visualization", "The item which represents the visualization of solutions."));106 Parameters.Add(new ValueLookupParameter<IOperator>("MoveAnalyzer", "The operator used to analyze the moves in each iteration.")); 107 Parameters.Add(new ValueLookupParameter<IOperator>("Analyzer", "The operator used to analyze each iteration.")); 108 108 Parameters.Add(new ScopeParameter("CurrentScope", "The current scope which represents a population of solutions on which the TS should be applied.")); 109 109 #endregion … … 111 111 #region Create operators 112 112 VariableCreator variableCreator = new VariableCreator(); 113 BestQualityMemorizer bestQualityMemorizer1 = new BestQualityMemorizer(); 114 BestQualityMemorizer bestQualityMemorizer2 = new BestQualityMemorizer(); 115 DataTableValuesCollector dataTableValuesCollector1 = new DataTableValuesCollector(); 116 QualityDifferenceCalculator qualityDifferenceCalculator1 = new QualityDifferenceCalculator(); 117 Placeholder visualizer1 = new Placeholder(); 118 ResultsCollector resultsCollector = new ResultsCollector(); 113 ResultsCollector resultsCollector1 = new ResultsCollector(); 114 UniformSubScopesProcessor uniformSubScopesProcessor0 = new UniformSubScopesProcessor(); 115 Placeholder analyzer1 = new Placeholder(); 119 116 UniformSubScopesProcessor mainProcessor = new UniformSubScopesProcessor(); 120 117 Placeholder moveGenerator = new Placeholder(); 121 118 UniformSubScopesProcessor moveEvaluationProcessor = new UniformSubScopesProcessor(); 122 119 Placeholder moveEvaluator = new Placeholder(); 120 Placeholder moveAnalyzer = new Placeholder(); 123 121 BestSelector bestSelector = new BestSelector(); 124 122 RightReducer rightReducer = new RightReducer(); … … 130 128 IntCounter iterationsCounter = new IntCounter(); 131 129 Comparator iterationsComparator = new Comparator(); 132 BestQualityMemorizer bestQualityMemorizer3 = new BestQualityMemorizer(); 133 BestQualityMemorizer bestQualityMemorizer4 = new BestQualityMemorizer(); 134 DataTableValuesCollector dataTableValuesCollector2 = new DataTableValuesCollector(); 135 QualityDifferenceCalculator qualityDifferenceCalculator2 = new QualityDifferenceCalculator(); 136 Placeholder visualizer2 = new Placeholder(); 130 ResultsCollector resultsCollector2 = new ResultsCollector(); 131 UniformSubScopesProcessor uniformSubScopesProcessor1 = new UniformSubScopesProcessor(); 132 Placeholder analyzer2 = new Placeholder(); 137 133 ConditionalBranch iterationsTermination = new ConditionalBranch(); 138 134 139 135 variableCreator.CollectedValues.Add(new ValueParameter<IntValue>("Iterations", new IntValue(0))); 140 136 141 bestQualityMemorizer1.BestQualityParameter.ActualName = BestKnownQualityParameter.Name; 142 bestQualityMemorizer1.MaximizationParameter.ActualName = MaximizationParameter.Name; 143 bestQualityMemorizer1.QualityParameter.ActualName = QualityParameter.Name; 144 145 bestQualityMemorizer2.BestQualityParameter.ActualName = "BestQuality"; 146 bestQualityMemorizer2.MaximizationParameter.ActualName = MaximizationParameter.Name; 147 bestQualityMemorizer2.QualityParameter.ActualName = QualityParameter.Name; 148 149 dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("BestQuality")); 150 dataTableValuesCollector1.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 151 dataTableValuesCollector1.DataTableParameter.ActualName = "Qualities"; 152 153 qualityDifferenceCalculator1.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; 154 qualityDifferenceCalculator1.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name; 155 qualityDifferenceCalculator1.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest"; 156 qualityDifferenceCalculator1.SecondQualityParameter.ActualName = "BestQuality"; 157 158 visualizer1.Name = "Visualizer (placeholder)"; 159 visualizer1.OperatorParameter.ActualName = VisualizerParameter.Name; 160 161 resultsCollector.CollectedValues.Add(new LookupParameter<IntValue>("Iterations")); 162 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Quality", null, "BestQuality")); 163 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 164 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Absolute Difference of Best Known Quality to Best Quality", null, "AbsoluteDifferenceBestKnownToBest")); 165 resultsCollector.CollectedValues.Add(new LookupParameter<DoubleValue>("Relative Difference of Best Known Quality to Best Quality", null, "RelativeDifferenceBestKnownToBest")); 166 resultsCollector.CollectedValues.Add(new LookupParameter<IItem>("Solution Visualization", null, VisualizationParameter.Name)); 167 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Qualities")); 168 resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name; 137 resultsCollector1.CollectedValues.Add(new LookupParameter<IntValue>("Iterations")); 138 resultsCollector1.ResultsParameter.ActualName = ResultsParameter.Name; 139 140 analyzer1.Name = "Analyzer (placeholder)"; 141 analyzer1.OperatorParameter.ActualName = AnalyzerParameter.Name; 169 142 170 143 mainProcessor.Name = "Solution processor (UniformSubScopesProcessor)"; … … 175 148 moveEvaluator.Name = "MoveEvaluator (placeholder)"; 176 149 moveEvaluator.OperatorParameter.ActualName = MoveEvaluatorParameter.Name; 150 151 moveAnalyzer.Name = "MoveAnalyzer (placeholder)"; 152 moveAnalyzer.OperatorParameter.ActualName = MoveAnalyzerParameter.Name; 177 153 178 154 bestSelector.CopySelected = new BoolValue(false); … … 204 180 iterationsComparator.ResultParameter.ActualName = "Terminate"; 205 181 206 bestQualityMemorizer3.BestQualityParameter.ActualName = BestKnownQualityParameter.Name; 207 bestQualityMemorizer3.MaximizationParameter.ActualName = MaximizationParameter.Name; 208 bestQualityMemorizer3.QualityParameter.ActualName = QualityParameter.Name; 209 210 bestQualityMemorizer4.BestQualityParameter.ActualName = "BestQuality"; 211 bestQualityMemorizer4.MaximizationParameter.ActualName = MaximizationParameter.Name; 212 bestQualityMemorizer4.QualityParameter.ActualName = QualityParameter.Name; 213 214 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("BestQuality")); 215 dataTableValuesCollector2.CollectedValues.Add(new LookupParameter<DoubleValue>("Best Known Quality", null, BestKnownQualityParameter.Name)); 216 dataTableValuesCollector2.DataTableParameter.ActualName = "Qualities"; 217 218 qualityDifferenceCalculator2.AbsoluteDifferenceParameter.ActualName = "AbsoluteDifferenceBestKnownToBest"; 219 qualityDifferenceCalculator2.FirstQualityParameter.ActualName = BestKnownQualityParameter.Name; 220 qualityDifferenceCalculator2.RelativeDifferenceParameter.ActualName = "RelativeDifferenceBestKnownToBest"; 221 qualityDifferenceCalculator2.SecondQualityParameter.ActualName = "BestQuality"; 222 223 visualizer2.Name = "Visualizer (placeholder)"; 224 visualizer2.OperatorParameter.ActualName = VisualizerParameter.Name; 182 resultsCollector2.CollectedValues.Add(new LookupParameter<IntValue>("Iterations")); 183 resultsCollector2.ResultsParameter.ActualName = ResultsParameter.Name; 184 185 analyzer2.Name = "Analyzer (placeholder)"; 186 analyzer2.OperatorParameter.ActualName = AnalyzerParameter.Name; 225 187 226 188 iterationsTermination.Name = "Iterations Termination Condition"; … … 230 192 #region Create operator graph 231 193 OperatorGraph.InitialOperator = variableCreator; 232 variableCreator.Successor = bestQualityMemorizer1; 233 bestQualityMemorizer1.Successor = bestQualityMemorizer2; 234 bestQualityMemorizer2.Successor = dataTableValuesCollector1; 235 dataTableValuesCollector1.Successor = qualityDifferenceCalculator1; 236 qualityDifferenceCalculator1.Successor = visualizer1; 237 visualizer1.Successor = resultsCollector; 238 resultsCollector.Successor = mainProcessor; 194 variableCreator.Successor = resultsCollector1; 195 resultsCollector1.Successor = uniformSubScopesProcessor0; 196 uniformSubScopesProcessor0.Operator = analyzer1; 197 uniformSubScopesProcessor0.Successor = mainProcessor; 198 analyzer1.Successor = null; 239 199 mainProcessor.Operator = moveGenerator; 240 200 mainProcessor.Successor = iterationsCounter; 241 201 moveGenerator.Successor = moveEvaluationProcessor; 242 202 moveEvaluationProcessor.Operator = moveEvaluator; 243 moveEvaluationProcessor.Successor = bestSelector; 203 moveEvaluationProcessor.Successor = moveAnalyzer; 204 moveAnalyzer.Successor = bestSelector; 244 205 bestSelector.Successor = rightReducer; 245 206 rightReducer.Successor = moveMakingProcessor; … … 253 214 moveMaker.Successor = null; 254 215 iterationsCounter.Successor = iterationsComparator; 255 iterationsComparator.Successor = bestQualityMemorizer3; 256 bestQualityMemorizer3.Successor = bestQualityMemorizer4; 257 bestQualityMemorizer4.Successor = dataTableValuesCollector2; 258 dataTableValuesCollector2.Successor = qualityDifferenceCalculator2; 259 qualityDifferenceCalculator2.Successor = visualizer2; 260 visualizer2.Successor = iterationsTermination; 216 iterationsComparator.Successor = resultsCollector2; 217 resultsCollector2.Successor = uniformSubScopesProcessor1; 218 uniformSubScopesProcessor1.Operator = analyzer2; 219 uniformSubScopesProcessor1.Successor = iterationsTermination; 220 analyzer2.Successor = null; 261 221 iterationsTermination.TrueBranch = null; 262 222 iterationsTermination.FalseBranch = mainProcessor;
Note: See TracChangeset
for help on using the changeset viewer.