source: branches/2520_PersistenceReintegration/HeuristicLab.Problems.Instances/3.3/Types/TSPData.cs @ 16462

Last change on this file since 16462 was 16462, checked in by jkarder, 2 years ago

#2520: worked on reintegration of new persistence

  • added nuget references to HEAL.Fossil
  • added StorableType attributes to many classes
  • changed signature of StorableConstructors
  • removed some classes in old persistence
  • removed some unnecessary usings
File size: 3.0 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22
23namespace HeuristicLab.Problems.Instances {
24  /// <summary>
25  /// Describes instances of the Traveling Salesman Problem (TSP).
26  /// </summary>
27  public class TSPData {
28    /// <summary>
29    /// The name of the instance
30    /// </summary>
31    public string Name { get; set; }
32    /// <summary>
33    /// Optional! The description of the instance
34    /// </summary>
35    public string Description { get; set; }
36
37    /// <summary>
38    /// The number of cities.
39    /// </summary>
40    public int Dimension { get; set; }
41    /// <summary>
42    /// Specifies the distance measure that is to be used.
43    /// </summary>
44    public DistanceMeasure DistanceMeasure { get; set; }
45    /// <summary>
46    /// Optional! The distances are given in form of a distance matrix.
47    /// </summary>
48    /// <remarks>
49    /// Either this property or <see cref="Coordinates"/> needs to be specified.
50    /// </remarks>
51    public double[,] Distances { get; set; }
52    /// <summary>
53    /// Optional! A a matrix of dimension [N, 2] matrix where each row is one of the cities
54    /// and the colmns represent x and y coordinates respectively.
55    /// </summary>
56    /// <remarks>
57    /// Either this property or <see cref="Distances"/> needs to be specified.
58    ///
59    /// If no distance matrix is given, the distances have to be calculated by the
60    /// specified distance measure. If a distance matrix is given in addtion to the
61    /// coordinates, the distance matrix takes precedence and the coordinates are
62    /// for display only.
63    /// </remarks>
64    public double[,] Coordinates { get; set; }
65
66    /// <summary>
67    /// Optional! The best-known tour in path-encoding.
68    /// </summary>
69    public int[] BestKnownTour { get; set; }
70    /// <summary>
71    /// Optional! The quality of the best-known tour.
72    /// </summary>
73    public double? BestKnownQuality { get; set; }
74
75    /// <summary>
76    /// If only the coordinates are given, can calculate the distance matrix.
77    /// </summary>
78    /// <returns>A full distance matrix between all cities.</returns>
79    public double[,] GetDistanceMatrix() {
80      return DistanceHelper.GetDistanceMatrix(DistanceMeasure, Coordinates, Distances, Dimension);
81    }
82  }
83}
Note: See TracBrowser for help on using the repository browser.