/// <summary> /// Creates the list of instances to train on using .mps files in the given directory. /// </summary> /// <param name="pathToInstanceFolder">Path to the folder containing the instance .mps files.</param> /// <param name="numSeedsToUse">The number of seeds.</param> /// <param name="rngSeed">The random number generator seed.</param> /// <returns> /// The created list. /// </returns> public static List <InstanceSeedFile> CreateInstances(string pathToInstanceFolder, int numSeedsToUse, int rngSeed) { try { // Find all .mps files in directory and set them as instances. var instanceDirectory = new DirectoryInfo(pathToInstanceFolder); var instanceSeedCombinations = new List <string>(); var instanceSeedFiles = new List <InstanceSeedFile>(); foreach (var instanceFilePath in instanceDirectory.EnumerateFiles() .Where(file => file.Extension.ToLower() == ".mps")) { var fileAndSeedCsv = instanceFilePath.FullName; foreach (var seed in GurobiUtils.SeedsToUse(numSeedsToUse, rngSeed)) { instanceSeedFiles.Add(new InstanceSeedFile(instanceFilePath.FullName, seed)); fileAndSeedCsv += $";{seed}"; } instanceSeedCombinations.Add(fileAndSeedCsv); } GurobiUtils.DumpFileSeedCombinations(instanceDirectory, instanceSeedCombinations); return(instanceSeedFiles); } catch (Exception e) { Console.Out.WriteLine(e.Message); Console.Out.WriteLine("Cannot open folder."); throw; } }