Skip to content

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

License

Notifications You must be signed in to change notification settings

JuliaQUBO/QUBODrivers.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 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

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)

About

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

Resources

License

Stars

Watchers

Forks

Languages