Changeset 3097 for trunk/sources
- Timestamp:
- 03/18/10 05:37:06 (15 years ago)
- Location:
- trunk/sources
- Files:
-
- 5 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj
r3093 r3097 86 86 <None Include="HeuristicLabOptimizationPlugin.cs.frame" /> 87 87 <Compile Include="Algorithm.cs" /> 88 <Compile Include="Interfaces\ISolutionVisualizer.cs" /> 88 89 <Compile Include="Interfaces\IDiscreteDoubleValueModifier.cs" /> 89 90 <Compile Include="Interfaces\IMoveOperator.cs" /> -
trunk/sources/HeuristicLab.Problems.TSP/3.3/HeuristicLab.Problems.TSP-3.3.csproj
r3074 r3097 84 84 </ItemGroup> 85 85 <ItemGroup> 86 <Compile Include="Interfaces\IPathTSPTourVisualizer.cs" /> 87 <Compile Include="Interfaces\ITSPTourVisualizer.cs" /> 88 <Compile Include="TSPTour.cs" /> 89 <Compile Include="Visualizers\PathTSPTourVisualizer.cs" /> 86 90 <Compile Include="Evaluators\TSPCoordinatesPathEvaluator.cs" /> 87 91 <Compile Include="Evaluators\TSPEvaluator.cs" /> -
trunk/sources/HeuristicLab.Problems.TSP/3.3/TSPTour.cs
r2883 r3097 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-20 08Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 21 21 22 22 using System; 23 using System.Collections.Generic;24 using System.Text;25 using System.Xml;26 23 using HeuristicLab.Core; 27 24 using HeuristicLab.Data; 28 using HeuristicLab. Permutation;25 using HeuristicLab.Encodings.PermutationEncoding; 29 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 30 27 31 28 namespace HeuristicLab.Problems.TSP { 32 29 /// <summary> 33 /// Represent the tour of a TSP.30 /// Represents a tour of a Traveling Salesman Problem which can be visualized in the GUI. 34 31 /// </summary> 35 public class TSPTour : ItemBase, IVisualizationItem { 36 32 [Item("TSPTour", "Represents a tour of a Traveling Salesman Problem which can be visualized in the GUI.")] 33 [StorableClass] 34 public sealed class TSPTour : Item { 35 private DoubleMatrix coordinates; 37 36 [Storable] 38 private DoubleMatrixData myCoordinates; 39 /// <summary> 40 /// Gets or sets the coordinates of the current instance. 41 /// </summary> 42 public DoubleMatrixData Coordinates { 43 get { return myCoordinates; } 44 set { myCoordinates = value; } 37 public DoubleMatrix Coordinates { 38 get { return coordinates; } 39 set { 40 if (value == null) throw new ArgumentNullException(); 41 if (coordinates != value) { 42 coordinates = value; 43 OnCoordinatesChanged(); 44 } 45 } 46 } 47 private Permutation permutation; 48 [Storable] 49 public Permutation Permutation { 50 get { return permutation; } 51 set { 52 if (value == null) throw new ArgumentNullException(); 53 if (permutation != value) { 54 permutation = value; 55 OnPermutationChanged(); 56 } 57 } 45 58 } 46 59 47 [Storable] 48 private Permutation.Permutation myTour; 49 /// <summary> 50 /// Gets or sets the current permutation/tour of the current instance. 51 /// </summary> 52 public Permutation.Permutation Tour { 53 get { return myTour; } 54 set { myTour = value; } 60 private TSPTour() : base() { } 61 public TSPTour(DoubleMatrix coordinates, Permutation permutation) 62 : base() { 63 if ((coordinates == null) || (permutation == null)) throw new ArgumentNullException(); 64 this.coordinates = coordinates; 65 this.permutation = permutation; 55 66 } 56 67 57 58 /// <summary> 59 /// Initializes a new instance of <see cref="TSPTour"/>. 60 /// </summary> 61 public TSPTour() { } 62 /// <summary> 63 /// Initializes a new instance of <see cref="TSPTour"/> with the given <paramref name="coordinates"/> 64 /// and the given <paramref name="tour"/>. 65 /// </summary> 66 /// <param name="coordinates">The coordinates of the TSP.</param> 67 /// <param name="tour">The tour the current instance should represent.</param> 68 public TSPTour(DoubleMatrixData coordinates, Permutation.Permutation tour) { 69 myCoordinates = coordinates; 70 myTour = tour; 71 } 72 73 /// <summary> 74 /// Clones the current instance (deep clone). 75 /// </summary> 76 /// <remarks>Uses <see cref="cloner.Clone"/> method of class <see cref="Auxiliary"/> to clone 77 /// the coordinates.</remarks> 78 /// <param name="clonedObjects">Dictionary of all already cloned objects. (Needed to avoid cycles.)</param> 79 /// <returns>The cloned object as <see cref="TSPTour"/>.</returns> 80 public override IItem Clone(ICloner cloner) { 81 TSPTour clone = (TSPTour)base.Clone(cloner); 82 clone.myCoordinates = (DoubleMatrixData)cloner.Clone(Coordinates); 83 clone.myTour = Tour; 68 public override IDeepCloneable Clone(Cloner cloner) { 69 TSPTour clone = new TSPTour((DoubleMatrix)cloner.Clone(coordinates), (Permutation)cloner.Clone(permutation)); 70 cloner.RegisterClonedObject(this, clone); 84 71 return clone; 85 72 } 86 73 87 /// <summary>88 /// Occurs when the coordinates of the current instance have been changed.89 /// </summary>90 74 public event EventHandler CoordinatesChanged; 91 /// <summary> 92 /// Fires a new <c>CoordinatesChanged</c> event. 93 /// </summary> 94 protected virtual void OnCoordinatesChanged() { 75 private void OnCoordinatesChanged() { 95 76 if (CoordinatesChanged != null) 96 CoordinatesChanged(this, new EventArgs());77 CoordinatesChanged(this, EventArgs.Empty); 97 78 } 98 /// <summary> 99 /// Occurs when the tour of the current instance has been changed. 100 /// </summary> 101 public event EventHandler TourChanged; 102 /// <summary> 103 /// Fires a new <c>TourChanged</c> event. 104 /// </summary> 105 protected virtual void OnTourChanged() { 106 if (TourChanged != null) 107 TourChanged(this, new EventArgs()); 108 } 79 public event EventHandler PermutationChanged; 80 private void OnPermutationChanged() { 81 if (PermutationChanged != null) 82 PermutationChanged(this, EventArgs.Empty); 83 } 109 84 } 110 85 }
Note: See TracChangeset
for help on using the changeset viewer.