OpenQUBO
OpenQUBO is a toolkit for analyzing, compiling, and solving Quadratic Unconstrained Binary Optimization (QUBO) problems across classical, quantum annealing, and gate-based quantum backends.
Developed by Micah Shaw
SemperKite Quantum Labs
https://semperkite.io
Overview
OpenQUBO provides tools for working with QUBO models in research and optimization workflows, including:
- QUBO normalization and graph analysis
- Gate-model layout optimization for quantum circuits
- Annealing topology and embedding selection
- Classical validation and solver pipelines
- Visualization tools for QUBO structure and embeddings
- CLI tools for running QUBO pipelines
The library is designed to work with modern quantum and classical toolchains such as:
- Qiskit
- D-Wave Ocean / dimod
- NetworkX
- NumPy
Features
QUBO Analysis
Parse and normalize QUBO inputs from:
- matrices
- dictionaries
- edge lists
Convert QUBO problems into graph representations for analysis and visualization.
Gate Model Backend
Analyze QUBO interaction graphs and map them onto quantum hardware coupling graphs.
Features include:
- layout method comparison
- routing method comparison
- circuit transpilation scoring
- logical → physical qubit mapping
Built using Qiskit transpiler tools.
Annealing Backend
Evaluate whether a QUBO problem fits annealing hardware topologies such as:
- Pegasus-like graphs
- Chimera-like graphs
Includes:
- embedding search (via minorminer)
- chain length analysis
- topology scoring
Solver Pipeline
Validate and solve QUBO models using classical solvers.
Capabilities include:
- QUBO ↔ Ising validation
- Binary Quadratic Model solving
- simulated annealing
- exact solver for small problems
- logical solution decoding
Uses dimod when available.
Visualization
OpenQUBO includes tools for visualizing:
- QUBO problem graphs
- coupling graphs
- logical → physical mappings
- annealing embeddings
These visualizations help debug optimization problems and understand hardware constraints.
Installation
Clone the repository and install locally:
pip install -e .
Or install dependencies manually:
pip install -r requirements.txt
CLI Usage
After installation the CLI command becomes available:
openqubo --help
Example workflows:
openqubo gate ...
openqubo anneal ...
Python Usage
Example usage inside Python:
from openqubo import normalize_qubo
qubo = {
(0,0): -1,
(1,1): -1,
(0,1): 2
}
normalized = normalize_qubo(qubo)
print(normalized.Q)
Project Structure
openqubo/
│
├── pyproject.toml
├── README.md
├── LICENSE
│
└── openqubo/
├── cli.py
├── qubo.py
├── gate.py
├── anneal.py
├── solver.py
├── viz.py
├── viz_gate.py
├── viz_anneal.py
│
└── compiler/
├── anneal_export.py
└── gate_export.py
Citation
If you use OpenQUBO in research or publications, please cite:
Micah Shaw
OpenQUBO
SemperKite Quantum Labs
https://semperkite.io
Example BibTeX:
@software{openqubo_semperkite,
author = {Micah Shaw},
title = {OpenQUBO},
institution = {SemperKite Quantum Labs},
year = {2026},
url = {https://semperkite.io}
}
License
MIT License
© 2026 Micah Shaw --- SemperKite Quantum Labs
See the LICENSE file for details.
About SemperKite Quantum Labs
SemperKite Quantum Labs develops open research software for quantum computing, optimization, and quantum simulation.
Learn more:
Metadata
Release files for openqubo 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openqubo-0.1.0.tar.gz | 29.7 kB | Without provenance | Details for openqubo-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openqubo-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for openqubo-0.1.0-py3-none-any.whl |
Total release size: 63.3 kB
Release files / openqubo-0.1.0.tar.gz
| Download URL | openqubo-0.1.0.tar.gz |
|---|---|
| Size | 29.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
755793a0873eabad7665c820b78ae5ff872949899eade65ebc67331ee5a3d72a
|
|
BLAKE2b-256 checksum How to use checksums |
05df309e31f26c1f0554274f178a2ba106f202c5fab2c8fe34c5677446dfd21c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|
Release files / openqubo-0.1.0-py3-none-any.whl
| Download URL | openqubo-0.1.0-py3-none-any.whl |
|---|---|
| Size | 33.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6b08f62e752b7ffe734f70226b403751c5f6b93865fcbf52ebde9ad733b38b7d
|
|
BLAKE2b-256 checksum How to use checksums |
5d47f75933b5ea601ca3e91ecd05c39d2d2880f9aee209ad9830d661ab41db2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|
Security for openqubo 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.