- Timestamp:
- 02/13/12 16:35:13 (12 years ago)
- 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 45 45 </ItemGroup> 46 46 <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" /> 48 52 <Compile Include="TSPLIBInstanceDescriptor.cs" /> 49 53 <Compile Include="TSPLIBTSPInstanceProvider.cs" /> … … 192 196 <EmbeddedResource Include="Data\TSP\vm1084.tsp" /> 193 197 <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" /> 194 233 <None Include="Plugin.cs.frame" /> 195 234 <Compile Include="Plugin.cs" /> … … 206 245 </ProjectReference> 207 246 </ItemGroup> 208 <ItemGroup> 209 <Folder Include="Data\ATSP\" /> 210 <Folder Include="Data\CVRP\" /> 211 </ItemGroup> 247 <ItemGroup /> 212 248 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 213 249 <PropertyGroup> -
branches/GeneralizedQAP/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBParser.cs
r7465 r7466 525 525 || edgeWeightFormat == TSPLIBEdgeWeightFormats.UPPER_ROW; 526 526 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; 529 529 bool finished = false; 530 530 while (!finished) { -
branches/GeneralizedQAP/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBTSPInstanceProvider.cs
r7465 r7466 45 45 var solutions = Assembly.GetExecutingAssembly() 46 46 .GetManifestResourceNames() 47 .Where(x => Regex.Match(x, @".*\.Data\.TSP\..*").Success) 47 48 .Where(x => x.EndsWith(".opt.tour")) 48 49 .ToDictionary(x => x.Substring(0, x.Length - ".opt.tour".Length) + ".tsp", x => x); 49 50 50 51 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)); 55 57 } 56 58 57 59 public override ITSPInstance GetInstance(IInstanceDescriptor id) { 58 60 var descriptor = (TSPLIBInstanceDescriptor)id; 59 var instance = new TSPLIB Instance();61 var instance = new TSPLIBTSPInstance(); 60 62 using (var stream = Assembly.GetExecutingAssembly() 61 63 .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 } 66 93 67 instance.Name = tspParser.Name;68 instance.Description = tspParser.Comment94 instance.Name = parser.Name; 95 instance.Description = parser.Comment 69 96 + Environment.NewLine + Environment.NewLine 70 97 + GetDescription(); … … 73 100 using (Stream solStream = Assembly.GetExecutingAssembly() 74 101 .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]; 78 105 } 79 106 }
Note: See TracChangeset
for help on using the changeset viewer.