Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
pedromxavier committed Apr 12, 2023
1 parent 0de212c commit 356feca
Showing 1 changed file with 12 additions and 13 deletions.
25 changes: 12 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
# QUBO.jl <img src="https://raw.githubusercontent.com/JuliaLang/julia/master/doc/src/assets/julia.ico" height="26"/> :left_right_arrow: :atom_symbol:
# QUBO.jl Documentation


## Introduction

`QUBO.jl` is an all-in-one package for working with QUBO formulations in [JuMP](https://github.com/jump-dev/JuMP.jl) and interfacing with QUBO solvers. This project aggregates three complementary packages: [`ToQUBO.jl`](https://github.com/psrenergy/ToQUBO.jl), [`QUBODrivers.jl`](https://github.com/psrenergy/QUBODrivers.jl) and [`QUBOTools.jl`](https://github.com/psrenergy/QUBOTools.jl).

## What is a QUBO?
## QUBO?

QUBO is an acronym for *Quadratic Unconstrained Binary Optimization*. So every QUBO problem is comprised of:
- an objective function at most quadratic
- a linear or quadratic objective function
- no constraints
- binary variables

We can represent a QUBO problem as follows.
We can represent such problem as follows:

```math
\begin{array}{rl}
\min & \mathbf{x}' Q\,\mathbf{x} \\
\mathrm{s.t.} & \mathbf{x} \in \mathbb{B}^{n}
\textrm{s.t.} & \mathbf{x} \in \mathbb{B}^{n}
\end{array}
```

QUBOs are suited for representing non-convex global optimization problems. With that said, the significant advances in computing systems and algorithms specialized for sampling QUBOs have contributed to their popularity.
QUBOs are suited for representing non-convex global optimization problems.
With that said, the significant advances in computing systems and algorithms specialized for sampling QUBOs have contributed to their popularity.

Some of the paradigms that stand out for running QUBOs are quantum gate-based optimization algorithms (QAOA and VQE), quantum annealers and hardware-accelerated platforms (Coherent Ising Machines and Simulated Bifurcation Machines).

Expand All @@ -46,10 +47,8 @@ julia> ]add https://github.com/psrenergy/QUBO.jl#master
### Example

```julia
using QUBO
using JuMP
ToQUBO = QUBO.ToQUBO
Anneal = QUBO.QUBODrivers
using QUBO

model = Model(() -> ToQUBO.Optimizer(ExactSampler.Optimizer))

Expand All @@ -60,14 +59,14 @@ model = Model(() -> ToQUBO.Optimizer(ExactSampler.Optimizer))
optimize!(model)

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

println("f($xi) = $yi")
end

```


<div align="center">
<h2>QUBO.jl Packages</h2>
<a href="https://github.com/psrenergy/ToQUBO.jl">
Expand Down

0 comments on commit 356feca

Please sign in to comment.