Skip to content

JuMP wrapper for IBMQ Optimization Algorithms (ft QUBODrivers.jl)

License

Notifications You must be signed in to change notification settings

SECQUOIA/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.

About

JuMP wrapper for IBMQ Optimization Algorithms (ft QUBODrivers.jl)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Julia 100.0%