Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

199 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QUBODrivers.jl 🔴🟢🟣🔵

Introduction

This package aims to provide a common MOI-compliant API for QUBO sampling devices. It also contains a few additional tools, including utility samplers and a simple test suite.

QUBO

Problems assigned to solvers defined within QUBODrivers.jl's interface are given by

$$\begin{array}{rl} \text{QUBO}:~ \displaystyle \min_{\mathbf{x}} & \displaystyle \alpha \left[{ \mathbf{x}' Q \mathbf{x} + \ell' \mathbf{x} + \beta }\right] \\ \text{s.t.} & \displaystyle \mathbf{x} \in S \cong \mathbb{B}^{n} \end{array}$$

where $Q \in \mathbb{R}^{n \times n}$ is a strictly upper triangular matrix and $\mathbf{\ell} \in \mathbb{R}^{n}$.

Quick Start

Installation

julia> import Pkg

julia> Pkg.add("QUBODrivers")

Example

using JuMP
using QUBODrivers

model = Model(ExactSampler.Optimizer)

Q = [
    -1.0  2.0  2.0
     2.0 -1.0  2.0
     2.0  2.0 -1.0
]

@variable(model, x[1:3], Bin)
@objective(model, Min, x' * Q * x)

optimize!(model)

for i = 1:result_count(model)
    xi = value.(x; result=i)
    yi = objective_value(model; result=i)
    
    println("f($xi) = $yi")
end

Build your own driver

Sampler authors should start with the Implementing a Sampler tutorial for the @setup and sample interface, packaging checklist, and reference implementations. Use the Test Suite page to wire QUBODrivers.test into your package tests.

List of QUBODrivers.jl-powered packages

Package Solvers
QUBODrivers.jl ExactSampler RandomSampler IdentitySampler MIPSampler
QiskitOpt.jl QiskitOpt.QAOA QiskitOpt.VQE
DWave.jl DWave DWave.Neal
PySA.jl PySA
CIMOptimizer.jl CIMOptimizer
MQLib.jl MQLib

Badge

If your project is using QUBODrivers.jl, consider adding the official badge to your project's README file:

QUBODRIVERS

[![QUBODRIVERS](https://img.shields.io/badge/Powered%20by-QUBODrivers.jl-%20%234063d8)](https://github.com/JuliaQUBO/QUBODrivers.jl)

About

🔵 Interface and drivers for integrating Solvers and Samplers with the JuMP/MOI ecosystem

Resources

Stars

Watchers

Forks

Releases

Used by

Contributors

Languages