Changeset 3616 for trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs
- Timestamp:
- 05/05/10 00:48:18 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs
r3504 r3616 71 71 get { return EvaluatorParameter; } 72 72 } 73 public OptionalValueParameter<ITSPSolutionsVisualizer> VisualizerParameter {74 get { return (OptionalValueParameter<ITSPSolutionsVisualizer>)Parameters["Visualizer"]; }75 }76 IParameter IProblem.VisualizerParameter {77 get { return VisualizerParameter; }78 }79 73 public OptionalValueParameter<DoubleValue> BestKnownQualityParameter { 80 74 get { return (OptionalValueParameter<DoubleValue>)Parameters["BestKnownQuality"]; } … … 118 112 get { return EvaluatorParameter.Value; } 119 113 } 120 public ITSPSolutionsVisualizer Visualizer {121 get { return VisualizerParameter.Value; }122 set { VisualizerParameter.Value = value; }123 }124 ISolutionsVisualizer IProblem.Visualizer {125 get { return VisualizerParameter.Value; }126 }127 114 public DoubleValue BestKnownQuality { 128 115 get { return BestKnownQualityParameter.Value; } … … 133 120 set { BestKnownSolutionParameter.Value = value; } 134 121 } 135 private List<I PermutationOperator> operators;122 private List<IOperator> operators; 136 123 public IEnumerable<IOperator> Operators { 137 get { return operators.Cast<IOperator>(); } 124 get { return operators; } 125 } 126 private BestTSPSolutionAnalyzer Analyzer { 127 get { return operators.OfType<BestTSPSolutionAnalyzer>().FirstOrDefault(); } 138 128 } 139 129 #endregion … … 143 133 RandomPermutationCreator creator = new RandomPermutationCreator(); 144 134 TSPRoundedEuclideanPathEvaluator evaluator = new TSPRoundedEuclideanPathEvaluator(); 145 BestPathTSPTourVisualizer visualizer = new BestPathTSPTourVisualizer();146 135 147 136 Parameters.Add(new ValueParameter<BoolValue>("Maximization", "Set to false as the Traveling Salesman Problem is a minimization problem.", new BoolValue(false))); … … 151 140 Parameters.Add(new ValueParameter<IPermutationCreator>("SolutionCreator", "The operator which should be used to create new TSP solutions.", creator)); 152 141 Parameters.Add(new ValueParameter<ITSPEvaluator>("Evaluator", "The operator which should be used to evaluate TSP solutions.", evaluator)); 153 Parameters.Add(new OptionalValueParameter<ITSPSolutionsVisualizer>("Visualizer", "The operator which should be used to visualize TSP solutions.", visualizer));154 142 Parameters.Add(new OptionalValueParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this TSP instance.")); 155 143 Parameters.Add(new OptionalValueParameter<Permutation>("BestKnownSolution", "The best known solution of this TSP instance.")); … … 166 154 ParameterizeSolutionCreator(); 167 155 ParameterizeEvaluator(); 168 ParameterizeVisualizer();169 156 170 157 Initialize(); … … 221 208 EvaluatorChanged(this, EventArgs.Empty); 222 209 } 223 public event EventHandler VisualizerChanged;224 private void OnVisualizerChanged() {225 if (VisualizerChanged != null)226 VisualizerChanged(this, EventArgs.Empty);227 }228 210 public event EventHandler OperatorsChanged; 229 211 private void OnOperatorsChanged() { … … 249 231 ParameterizeSolutionCreator(); 250 232 ParameterizeEvaluator(); 251 Parameterize Visualizer();233 ParameterizeAnalyzer(); 252 234 ParameterizeOperators(); 253 235 OnSolutionCreatorChanged(); … … 255 237 private void SolutionCreator_PermutationParameter_ActualNameChanged(object sender, EventArgs e) { 256 238 ParameterizeEvaluator(); 257 Parameterize Visualizer();239 ParameterizeAnalyzer(); 258 240 ParameterizeOperators(); 259 241 } … … 262 244 ParameterizeEvaluator(); 263 245 UpdateMoveEvaluators(); 264 Parameterize Visualizer();246 ParameterizeAnalyzer(); 265 247 ClearDistanceMatrix(); 266 248 OnEvaluatorChanged(); 267 249 } 268 250 private void Evaluator_QualityParameter_ActualNameChanged(object sender, EventArgs e) { 269 ParameterizeVisualizer(); 270 } 271 private void VisualizerParameter_ValueChanged(object sender, EventArgs e) { 272 ParameterizeVisualizer(); 273 OnVisualizerChanged(); 251 ParameterizeAnalyzer(); 274 252 } 275 253 private void MoveGenerator_InversionMoveParameter_ActualNameChanged(object sender, EventArgs e) { … … 298 276 EvaluatorParameter.ValueChanged += new EventHandler(EvaluatorParameter_ValueChanged); 299 277 Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 300 VisualizerParameter.ValueChanged += new EventHandler(VisualizerParameter_ValueChanged);301 278 } 302 279 303 280 private void InitializeOperators() { 304 operators = new List<IPermutationOperator>(); 305 operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>()); 281 operators = new List<IOperator>(); 282 operators.Add(new BestTSPSolutionAnalyzer()); 283 ParameterizeAnalyzer(); 284 operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>().Cast<IOperator>()); 306 285 ParameterizeOperators(); 307 286 UpdateMoveEvaluators(); … … 344 323 } 345 324 } 346 private void ParameterizeVisualizer() { 347 if (Visualizer != null) { 348 Visualizer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 349 if (Visualizer is ICoordinatesTSPSolutionsVisualizer) 350 ((ICoordinatesTSPSolutionsVisualizer)Visualizer).CoordinatesParameter.ActualName = CoordinatesParameter.Name; 351 if (Visualizer is IPathCoordinatesTSPSolutionsVisualizer) 352 ((IPathCoordinatesTSPSolutionsVisualizer)Visualizer).PermutationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName; 325 private void ParameterizeAnalyzer() { 326 if (Analyzer != null) { 327 Analyzer.QualityParameter.ActualName = Evaluator.QualityParameter.ActualName; 328 Analyzer.CoordinatesParameter.ActualName = CoordinatesParameter.Name; 329 Analyzer.PermutationParameter.ActualName = SolutionCreator.PermutationParameter.ActualName; 330 Analyzer.ResultsParameter.ActualName = "Results"; 353 331 } 354 332 }
Note: See TracChangeset
for help on using the changeset viewer.