Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/13/12 16:35:13 (12 years ago)
Author:
abeham
Message:

#1614

  • included TSLIB's ATSP and CVRP problems as well
Location:
branches/GeneralizedQAP/HeuristicLab.Problems.Instances.TSPLIB/3.3
Files:
5 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • branches/GeneralizedQAP/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj

    r7465 r7466  
    4545  </ItemGroup>
    4646  <ItemGroup>
    47     <Compile Include="TSPLIBInstance.cs" />
     47    <Compile Include="TSPLIBATSPInstance.cs" />
     48    <Compile Include="TSPLIBATSPInstanceProvider.cs" />
     49    <Compile Include="TSPLIBCVRPInstance.cs" />
     50    <Compile Include="TSPLIBCVRPInstanceProvider.cs" />
     51    <Compile Include="TSPLIBTSPInstance.cs" />
    4852    <Compile Include="TSPLIBInstanceDescriptor.cs" />
    4953    <Compile Include="TSPLIBTSPInstanceProvider.cs" />
     
    192196    <EmbeddedResource Include="Data\TSP\vm1084.tsp" />
    193197    <EmbeddedResource Include="Data\TSP\vm1748.tsp" />
     198    <EmbeddedResource Include="Data\ATSP\br17.atsp" />
     199    <EmbeddedResource Include="Data\ATSP\ft53.atsp" />
     200    <EmbeddedResource Include="Data\ATSP\ft70.atsp" />
     201    <EmbeddedResource Include="Data\ATSP\ftv170.atsp" />
     202    <EmbeddedResource Include="Data\ATSP\ftv33.atsp" />
     203    <EmbeddedResource Include="Data\ATSP\ftv35.atsp" />
     204    <EmbeddedResource Include="Data\ATSP\ftv38.atsp" />
     205    <EmbeddedResource Include="Data\ATSP\ftv44.atsp" />
     206    <EmbeddedResource Include="Data\ATSP\ftv47.atsp" />
     207    <EmbeddedResource Include="Data\ATSP\ftv55.atsp" />
     208    <EmbeddedResource Include="Data\ATSP\ftv64.atsp" />
     209    <EmbeddedResource Include="Data\ATSP\ftv70.atsp" />
     210    <EmbeddedResource Include="Data\ATSP\kro124p.atsp" />
     211    <EmbeddedResource Include="Data\ATSP\p43.atsp" />
     212    <EmbeddedResource Include="Data\ATSP\rbg323.atsp" />
     213    <EmbeddedResource Include="Data\ATSP\rbg358.atsp" />
     214    <EmbeddedResource Include="Data\ATSP\rbg403.atsp" />
     215    <EmbeddedResource Include="Data\ATSP\rbg443.atsp" />
     216    <EmbeddedResource Include="Data\ATSP\ry48p.atsp" />
     217    <EmbeddedResource Include="Data\CVRP\att48.vrp" />
     218    <EmbeddedResource Include="Data\CVRP\eil13.vrp" />
     219    <EmbeddedResource Include="Data\CVRP\eil22.vrp" />
     220    <EmbeddedResource Include="Data\CVRP\eil23.vrp" />
     221    <EmbeddedResource Include="Data\CVRP\eil30.vrp" />
     222    <EmbeddedResource Include="Data\CVRP\eil31.vrp" />
     223    <EmbeddedResource Include="Data\CVRP\eil33.vrp" />
     224    <EmbeddedResource Include="Data\CVRP\eil51.vrp" />
     225    <EmbeddedResource Include="Data\CVRP\eil7.vrp" />
     226    <EmbeddedResource Include="Data\CVRP\eilA101.vrp" />
     227    <EmbeddedResource Include="Data\CVRP\eilA76.vrp" />
     228    <EmbeddedResource Include="Data\CVRP\eilB101.vrp" />
     229    <EmbeddedResource Include="Data\CVRP\eilB76.vrp" />
     230    <EmbeddedResource Include="Data\CVRP\eilC76.vrp" />
     231    <EmbeddedResource Include="Data\CVRP\eilD76.vrp" />
     232    <EmbeddedResource Include="Data\CVRP\gil262.vrp" />
    194233    <None Include="Plugin.cs.frame" />
    195234    <Compile Include="Plugin.cs" />
     
    206245    </ProjectReference>
    207246  </ItemGroup>
    208   <ItemGroup>
    209     <Folder Include="Data\ATSP\" />
    210     <Folder Include="Data\CVRP\" />
    211   </ItemGroup>
     247  <ItemGroup />
    212248  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    213249  <PropertyGroup>
  • branches/GeneralizedQAP/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBParser.cs

    r7465 r7466  
    525525        || edgeWeightFormat == TSPLIBEdgeWeightFormats.UPPER_ROW;
    526526
    527       int dim1 = !upperTriangular ? (diagonal ? 0 : 1) : 0;
    528       int dim2 = upperTriangular ? (diagonal ? 0 : 1) : 0;
     527      int dim1 = !triangular && !upperTriangular ? (diagonal ? 0 : 1) : 0;
     528      int dim2 = !triangular && upperTriangular ? (diagonal ? 0 : 1) : 0;
    529529      bool finished = false;
    530530      while (!finished) {
  • branches/GeneralizedQAP/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBTSPInstanceProvider.cs

    r7465 r7466  
    4545      var solutions = Assembly.GetExecutingAssembly()
    4646        .GetManifestResourceNames()
     47        .Where(x => Regex.Match(x, @".*\.Data\.TSP\..*").Success)
    4748        .Where(x => x.EndsWith(".opt.tour"))
    4849        .ToDictionary(x => x.Substring(0, x.Length - ".opt.tour".Length) + ".tsp", x => x);
    4950
    5051      return Assembly.GetExecutingAssembly()
    51           .GetManifestResourceNames()
    52           .Where(x => x.EndsWith(".tsp"))
    53           .OrderBy(x => x)
    54           .Select(x => new TSPLIBInstanceDescriptor(GetPrettyName(x), GetDescription(), x, solutions.ContainsKey(x) ? solutions[x] : String.Empty));
     52        .GetManifestResourceNames()
     53        .Where(x => Regex.Match(x, @".*\.Data\.TSP\..*").Success)
     54        .Where(x => x.EndsWith(".tsp"))
     55        .OrderBy(x => x)
     56        .Select(x => new TSPLIBInstanceDescriptor(GetPrettyName(x), GetDescription(), x, solutions.ContainsKey(x) ? solutions[x] : String.Empty));
    5557    }
    5658
    5759    public override ITSPInstance GetInstance(IInstanceDescriptor id) {
    5860      var descriptor = (TSPLIBInstanceDescriptor)id;
    59       var instance = new TSPLIBInstance();
     61      var instance = new TSPLIBTSPInstance();
    6062      using (var stream = Assembly.GetExecutingAssembly()
    6163        .GetManifestResourceStream(descriptor.InstanceIdentifier)) {
    62         var tspParser = new TSPLIBParser(stream);
    63         tspParser.Parse();
    64         instance.Coordinates = tspParser.Vertices != null ? tspParser.Vertices : tspParser.DisplayVertices;
    65         instance.Distances = tspParser.Distances;
     64        var parser = new TSPLIBParser(stream);
     65        parser.Parse();
     66        instance.Dimension = parser.Dimension;
     67        instance.Coordinates = parser.Vertices != null ? parser.Vertices : parser.DisplayVertices;
     68        instance.Distances = parser.Distances;
     69        switch (parser.EdgeWeightType) {
     70          case TSPLIBEdgeWeightTypes.ATT:
     71            instance.DistanceMeasure = TSPDistanceMeasure.Att; break;
     72          case TSPLIBEdgeWeightTypes.CEIL_2D:
     73            instance.DistanceMeasure = TSPDistanceMeasure.UpperEuclidean; break;
     74          case TSPLIBEdgeWeightTypes.EUC_2D:
     75            instance.DistanceMeasure = TSPDistanceMeasure.RoundedEuclidean; break;
     76          case TSPLIBEdgeWeightTypes.EUC_3D:
     77            throw new InvalidDataException("3D coordinates are not supported.");
     78          case TSPLIBEdgeWeightTypes.EXPLICIT:
     79            instance.DistanceMeasure = TSPDistanceMeasure.Direct; break;
     80          case TSPLIBEdgeWeightTypes.GEO:
     81            instance.DistanceMeasure = TSPDistanceMeasure.Geo; break;
     82          case TSPLIBEdgeWeightTypes.MAN_2D:
     83            instance.DistanceMeasure = TSPDistanceMeasure.Manhattan; break;
     84          case TSPLIBEdgeWeightTypes.MAN_3D:
     85            throw new InvalidDataException("3D coordinates are not supported.");
     86          case TSPLIBEdgeWeightTypes.MAX_2D:
     87            instance.DistanceMeasure = TSPDistanceMeasure.Maximum; break;
     88          case TSPLIBEdgeWeightTypes.MAX_3D:
     89            throw new InvalidDataException("3D coordinates are not supported.");
     90          default:
     91            throw new InvalidDataException("The given edge weight is not supported by HeuristicLab.");
     92        }
    6693
    67         instance.Name = tspParser.Name;
    68         instance.Description = tspParser.Comment
     94        instance.Name = parser.Name;
     95        instance.Description = parser.Comment
    6996          + Environment.NewLine + Environment.NewLine
    7097          + GetDescription();
     
    73100          using (Stream solStream = Assembly.GetExecutingAssembly()
    74101            .GetManifestResourceStream(descriptor.SolutionIdentifier)) {
    75             var slnParser = new TSPLIBParser(solStream);
    76             slnParser.Parse();
    77             instance.BestKnownTour = slnParser.Tour[0];
     102            var tourParser = new TSPLIBParser(solStream);
     103            tourParser.Parse();
     104            instance.BestKnownTour = tourParser.Tour[0];
    78105          }
    79106        }
Note: See TracChangeset for help on using the changeset viewer.