The QUBOTools.jl
package implements codecs for QUBO (Quadratic Unconstrained Binary Optimization) instances.
Its purpose is to provide fast and reliable conversion between common formats used to represent such problems.
This allows for rapid leverage of many emergent computing architectures whose job is to solve this kind of optimization problem.
The term QUBO is widely used when referring to boolean problems of the form
with symmetric
where
import Pkg
Pkg.add("QUBOTools")
using QUBOTools
model = QUBOTools.read_model("problem.json")
QUBOTools.write_model("problem.qubo", model)
The r
and w
marks indicate that reading and writing modes are available for the corresponding file format, respectively.
QUBin rw
QUBOTools' home-brewed HDF5-based file format.
BQPJSON rw
The BQPJSON format was designed at LANL-ANSI to represent Binary Quadratic Programs in a platform-independet fashion.
This is accomplished by using .json
files validated using a well-defined JSON Schema.
QUBO rw
The QUBO specification appears as the input format in many of D-Wave's applications. A brief explanation about it can be found in qbsolv's repository README.
Qubist rw
This is the simplest of all current supported formats, where each row contains a pair of variable indices and their corresponding coefficient value.
MiniZinc w
MiniZinc is a constraint modelling language that can be used as input for many solvers.