Hybrid Dependency Hypergraphs for Quantum Computation
What is a HDH?
HDH (Hybrid Dependency Hypergraph) is an intermediate directed hypergraph-based representation designed to encode the dependecies arising in any quantum workload. It provides a unified structure that makes it easier to:
- Translate quantum programs (e.g., a circuit or a mbqc pattern) into a unified hypergraph format
- Analyze and visualize the logical and temporal dependencies within a computation
- Partition workloads across devices, taking into account hardware and network constraints
Current Capabilities
- Qiskit, Braket, Cirq and Pennylane circuit mappings to HDHs
- OpenQASM 2.0 file parsing
- Model-specific abstractions for:
- Quantum Circuits
- Measurement-Based Quantum Computing (MBQC)
- Quantum Walks
- Quantum Cellular Automata (QCA)
- Capability to partition HDHs and evaluate partitions
Installation
pip install hdh
Qiskit conversion works out of the box. Cirq, PennyLane, Amazon Braket, and the KaHyPar/METIS partitioners are optional and installed via extras:
pip install hdh[cirq] # Cirq conversion (needs Python >=3.11)
pip install hdh[pennylane] # PennyLane conversion (needs Python >=3.11)
pip install hdh[braket] # Amazon Braket conversion (needs Python >=3.11)
pip install hdh[kahypar] # KaHyPar-based partitioning
pip install hdh[metis] # METIS-based partitioning (metis_telegate)
pip install hdh[all] # everything above (needs Python >=3.11)
Tested against Cirq 1.7, PennyLane 0.45, and amazon-braket-sdk 1.125 — all
three now require Python >=3.11 upstream, so those extras aren't installable
on Python 3.10.
hdh[metis] installs the Python binding only — it talks to a
system-installed METIS C library via ctypes, so METIS itself must already be
available on your machine (e.g. via your OS package manager or built from
source). Without it, metis_telegate automatically falls back to a
Kernighan-Lin partition and reports which method it used.
Quickstart
From Qiskit
from qiskit import QuantumCircuit
from hdh.converters import from_qiskit
from hdh.visualize import plot_hdh
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
hdh = from_qiskit(qc)
plot_hdh(hdh)
From QASM file
from hdh.converters import from_qasm
from hdh.visualize import plot_hdh
qasm_path = os.path.join(os.path.dirname(__file__), 'test_qasm_file.qasm')
hdh = from_qasm('file', qasm_path)
plot_hdh(hdh)
Tests and Demos
All tests are under tests/ and can be run with:
pytest
Contributing
Pull requests welcome. Please open an issue or get in touch if you're interested in:
- SDK compatibility
- Frontend tools (visualization, benchmarking)
or if you've found a bug!
Citation
More formal citation and paper preprint coming soon. Stay tuned for updates.
Release files for hdh 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hdh-0.4.3.tar.gz | 38.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hdh-0.4.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.7 kB
Release files / hdh-0.4.3.tar.gz
| Download URL | hdh-0.4.3.tar.gz |
|---|---|
| Size | 38.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bcc80ece4ded515ee6b4708a4e8338687b2d9d2eff1d82353ba152379d44e260
|
|
BLAKE2b-256 checksum How to use checksums |
16ec6d67981f9ee5abd6bfc6c39c46da8d1c1f3cdd36187160b7fcb220d13b7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.14.7 Darwin/25.5.0
|
Release files / hdh-0.4.3-py3-none-any.whl
| Download URL | hdh-0.4.3-py3-none-any.whl |
|---|---|
| Size | 46.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
84399b33106223b4cd313ce93693fa270baca36195d544aba304b75eba13d830
|
|
BLAKE2b-256 checksum How to use checksums |
2dcd38819ae6d6d3fac9afa5cd076c96c2bd42a78f1dda08619687a77bca301a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.4.1 CPython/3.14.7 Darwin/25.5.0
|