Skip to content

psrenergy/QiskitOpt.jl

Repository files navigation

QiskitOpt.jl

DOI QUBODRIVERS

IBM Qiskit Optimization Wrapper for JuMP

Installation

julia> import Pkg

julia> Pkg.add("QiskitOpt.jl")

Basic Usage

using JuMP
using QiskitOpt

# Using QAOA
model = Model(QiskitOpt.QAOA.Optimizer)

# Using VQE
model = Model(QiskitOpt.VQE.Optimizer)

Q = [
   -1  2  2
    2 -1  2
    2  2 -1
]

@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

API Token

To access IBM's Quantum Computers, it is necessary to create an account at IBM Q to obtain an API Token and run the following python code:

from qiskit import IBMQ

IBMQ.save_account("YOUR_TOKEN_HERE")

Another option is to set the IBMQ_API_TOKEN environment variable before loading QiskitOpt.jl:

$ export IBQM_API_TOKEN=YOUR_TOKEN_HERE

$ julia

julia> using QiskitOpt

Disclaimer: The IBM Qiskit Optimization Wrapper for Julia is not officially supported by IBM. If you are a commercial customer interested in official support for Julia from IBM, let them know!

Note: If you are using QiskitOpt.jl in your project, we recommend you to include the .CondaPkg entry in your .gitignore file. The PythonCall module will place a lot of files in this folder when building its Python environment.