QiskitOpt.jl
JuMP wrapper for IBMQ Optimization Algorithms (ft QUBODrivers.jl)
Install / Use
/learn @JuliaQUBO/QiskitOpt.jlREADME
QiskitOpt.jl
IBM Qiskit Optimization Wrapper for JuMP
Installation
julia> import Pkg
julia> Pkg.add("QiskitOpt")
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
Updating optimization parameters
# Number of shots
MOI.set(model, VQE.NumberOfReads(), 1000) # or QAOA.NumberOfReads
# Maximum optimizer iterations
MOI.set(model, VQE.MaximumIterations(), 100) # or QAOA.MaximumIterations
# Ansatz
MOI.set(model, VQE.Ansatz(), QiskitOpt.qiskit.circuit.library.EfficientSU2) # or QAOA.Ansatz
# Number of QAOA ansatz repetitions (for QAOA only)
MOI.set(model, QAOA.NumberOfLayers(), 5)
Changing the backend and instance
MOI.set(model, VQE.IBMBackend(), "ibm_osaka") # or QAOA.IBMBackend
MOI.set(model, VQE.Instance(), "my/instance") # or QAOA.Instance
# Using a fake backend
MOI.set(model, VQE.IBMFakeBackend(), QiskitOpt.qiskit_ibm_runtime.fake_provider.FakeAlgiers) # or QAOA.IBMFakeBackend
List of fake backends available: Qiskit Documentation
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_ibm_runtime import QiskitRuntimeService
QiskitRuntimeService.save_account(channel='ibm_quantum', token="YOUR_TOKEN_HERE")
Another option is to set the IBMQ_API_TOKEN environment variable before loading QiskitOpt.jl:
$ export IBMQ_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.
Related Skills
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
