A Julia package for automatic download and parsing of linear, quadratic and integer programming instances.
Please read and abide by the license of the dataset you plan to use.
- To list the datasets available, call
values(Dataset). - To list the instances from a
dataset, calllist_instances(dataset). - To read a specific instance given its
name, callread_instance(dataset, name). The return value is a tuple(problem, path)whereproblem isa QPSDatafrom QPSReader.jl andpathpoints to the decompressed source file on your computer.
See the docstrings for details.
The problem source files are downloaded automatically thanks to DataDeps.jl.
Note that each download has to be validated manually from the REPL.
This doesn't work well when the triggering line of code is executed with VSCode's Julia extension, you better run it in the REPL directly.
An alternative is to set ENV["DATADEPS_ALWAYS_ACCEPT"] = true.
The decompressed instances can be rather large (over 80 GB for the complete MIPLIB 2017 collection).
If you need to clean up some space, you can delete unneeded files inside the folder located at MathOptBenchmarkInstances.MPS_SCRATCH.
To contribute a new dataset:
- Add its name to the
Datasetenum. - Register a new
DataDepinside the__init__()function of the package. - Implement a reader based on the files downloaded by the
DataDep. This part might need decompression or file conversion steps, for which you can use theMPS_SCRATCHfolder. - Write documentation and tests.
You can (and should) draw inspiration from the implementation of existing datasets.