Skip to content

Latest commit

 

History

History
108 lines (86 loc) · 4.37 KB

README.md

File metadata and controls

108 lines (86 loc) · 4.37 KB

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

List of QUBODrivers.jl-powered packages

Package Solvers
QUBODrivers.jl ExactSampler RandomSampler IdentitySampler
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)