Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/08/20 11:21:57 (5 years ago)
Author:
abeham
Message:

#2521: some fixes and reusing handling of distance measure as defined in TSP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.Instances/3.3/Types/VRP/VRPData.cs

    r17226 r17529  
    2525  /// Describes instances of the Vehicle Routing Problem (VRP).
    2626  /// </summary>
    27   public class VRPData : IVRPData {
    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 customers and the depot
    39     /// </summary>
    40     public int Dimension { get; set; }
    41     /// <summary>
    42     /// The distance measure that is used to calculate the distance between
    43     ///the coordinates if no <see cref="Distances"/> is given.
    44     /// </summary>
    45     public DistanceMeasure DistanceMeasure { get; set; }
     27  public class VRPData : TSPData, IVRPData {
    4628    /// <summary>
    4729    /// Optional! The maximum number of vehicles that can be used.
     
    5335    /// </remarks>
    5436    public double? MaximumVehicles { get; set; }
    55     /// <remarks>
    56     /// Either Distances or the <see cref="Coordinates"/> need to be specified along
    57     /// with a distance measure.
    58     /// </remarks>
    59     public double[,] Distances { get; set; }
    60     /// <summary>
    61     /// Optional! A a matrix of dimension [N, 2] where each row is either the customer
    62     /// or the depot and the columns represent x and y coordinates respectively.
    63     /// </summary>
    64     /// <remarks>
    65     /// Either <see cref="Distances"/> or the Coordinates need to be specified along
    66     /// with a distance measure.
    67     /// </remarks>
    68     public double[,] Coordinates { get; set; }
    6937    /// <summary>
    7038    /// The demand vector that specifies how many goods need to be delivered.
     
    7644    /// Optional! The best-known solution as a list of tours in path-encoding.
    7745    /// </summary>
    78     public int[][] BestKnownTour { get; set; }
     46    public new int[][] BestKnownTour { get; set; }
    7947    /// <summary>
    8048    /// Optional! Specifies the used vehicle for a given tour.
    8149    /// </summary>
    8250    public int[] BestKnownTourVehicleAssignment { get; set; }
    83     /// <summary>
    84     /// Optional! The quality of the best-known solution.
    85     /// </summary>
    86     public double? BestKnownQuality { get; set; }
    87 
    88     /// <summary>
    89     /// If only the coordinates are given, can calculate the distance matrix.
    90     /// </summary>
    91     /// <returns>A full distance matrix between all cities.</returns>
    92     public double[,] GetDistanceMatrix() {
    93       return DistanceHelper.GetDistanceMatrix(DistanceMeasure, Coordinates, Distances, Dimension);
    94     }
    9551  }
    9652}
Note: See TracChangeset for help on using the changeset viewer.