Skip to main content

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:

https://semperkite.io

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openqubo-0.1.0.tar.gz (29.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openqubo-0.1.0-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

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

Hashes for openqubo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 755793a0873eabad7665c820b78ae5ff872949899eade65ebc67331ee5a3d72a
MD5 7d59df4cc76d8b6936d3e39818a2e31b
BLAKE2b-256 05df309e31f26c1f0554274f178a2ba106f202c5fab2c8fe34c5677446dfd21c

See more details on using hashes here.

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

Hashes for openqubo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b08f62e752b7ffe734f70226b403751c5f6b93865fcbf52ebde9ad733b38b7d
MD5 262c3f9b9049c84f3cae9408f3cee0dd
BLAKE2b-256 5d47f75933b5ea601ca3e91ecd05c39d2d2880f9aee209ad9830d661ab41db2a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page