OpenQUBO: QUBO analysis, compilation, visualization, and solver pipelines
Project description
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:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openqubo-0.1.0.tar.gz.
File metadata
- Download URL: openqubo-0.1.0.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
755793a0873eabad7665c820b78ae5ff872949899eade65ebc67331ee5a3d72a
|
|
| MD5 |
7d59df4cc76d8b6936d3e39818a2e31b
|
|
| BLAKE2b-256 |
05df309e31f26c1f0554274f178a2ba106f202c5fab2c8fe34c5677446dfd21c
|
File details
Details for the file openqubo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: openqubo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b08f62e752b7ffe734f70226b403751c5f6b93865fcbf52ebde9ad733b38b7d
|
|
| MD5 |
262c3f9b9049c84f3cae9408f3cee0dd
|
|
| BLAKE2b-256 |
5d47f75933b5ea601ca3e91ecd05c39d2d2880f9aee209ad9830d661ab41db2a
|