Skip to content

JuliaQUBO/QUBOTools.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

491 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

QUBOTools.jl

QUBOTools.jl
arXiv CI JuliaCon 2022 Docs DOI
Tools for Quadratic Unconstrained Binary Optimization models in Julia

Introduction

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

$$\begin{array}{rl} \min & \mathbf{x}'\ Q\ \mathbf{x} \\ \text{s.t.} & \mathbf{x} \in \mathbb{B}^{n} \end{array}$$

with symmetric $Q \in \mathbb{R}^{n \times n}$. Nevertheless, this package also fully supports Ising Models, given by

$$\begin{array}{rl} \min & \mathbf{s}'\ J\ \mathbf{s} + \mathbf{h}'\ \mathbf{s} \\ \text{s.t.} & \mathbf{s} \in \left\lbrace-1, 1\right\rbrace^{n} \end{array}$$

where $J \in \mathbb{R}^{n \times n}$ is triangular and $\mathbf{h} \in \mathbb{R}^{n}$.

Getting Started

Installation

import Pkg

Pkg.add("QUBOTools")

Build the Documentation Locally

From the repository root, use:

julia --project=docs -e 'using Pkg; Pkg.develop(path=pwd()); Pkg.instantiate()'
julia --project=docs docs/make.jl --skip-deploy

Basic Usage

using QUBOTools

model = QUBOTools.read_model("problem.json")

QUBOTools.write_model("problem.qubo", model)

Supported Formats

Format Read Write Model Solutions Start Metadata
BQPJSON βœ… βœ… βœ… βœ… ❌ βœ…
MiniZinc ❌ βœ… βœ… ❌ ❌ βœ…
QUBin βœ… βœ… βœ… βœ… βœ… βœ…
Qubist βœ… βœ… βœ… ❌ ❌ ❌
QUBO βœ… βœ… βœ… ❌ ❌ βœ…
Rudy βœ… βœ… βœ… ❌ ❌ βœ…

About

🧬 Tools for Quadratic Unconstrained Binary Optimization models in Julia

Topics

Resources

License

Stars

Watchers

Forks

Contributors