Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/16/17 07:56:01 (7 years ago)
Author:
gkronber
Message:

#2650: merged r14597:14737 from trunk to branch

Location:
branches/symbreg-factors-2650
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/symbreg-factors-2650

  • branches/symbreg-factors-2650/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs

    r14185 r14751  
    4747    protected abstract T LoadInstance(TSPLIBParser parser, IDataDescriptor descriptor = null);
    4848    protected abstract void LoadSolution(TSPLIBParser parser, T instance);
     49    protected abstract void LoadQuality(double? bestQuality, T instance);
    4950
    5051    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
     
    5758        }
    5859      }
     60
     61      Dictionary<string, double> qualities = new Dictionary<string, double>();
     62      var qualitiesArchiveName = GetResourceName(FileExtension + @"\.qual");
     63      if (!String.IsNullOrEmpty(qualitiesArchiveName)) {
     64        using (var qualitiesReader = new StreamReader(GetType().Assembly.GetManifestResourceStream(qualitiesArchiveName))) {
     65          while (!qualitiesReader.EndOfStream) {
     66            var line = qualitiesReader.ReadLine().Split(';');
     67            qualities.Add(line[0] + "." + FileExtension, double.Parse(line[1]));
     68          }
     69        }
     70      }
     71
    5972      var instanceArchiveName = GetResourceName(FileExtension + @"\.zip");
    6073      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
     
    6275      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
    6376        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
    64           yield return new TSPLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetInstanceDescription(), entry, solutions.ContainsKey(entry) ? solutions[entry] : String.Empty);
     77          yield return new TSPLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry),
     78                                                GetInstanceDescription(),
     79                                                entry,
     80                                                solutions.ContainsKey(entry) ? solutions[entry] : String.Empty,
     81                                                qualities.ContainsKey(entry) ? (double?)qualities[entry] : null);
    6582        }
    6683      }
     
    7592        var parser = new TSPLIBParser(stream);
    7693        var instance = LoadInstance(parser, id);
     94        LoadQuality(descriptor.BestQuality, instance);
    7795
    7896        if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
Note: See TracChangeset for help on using the changeset viewer.