This release is a pre-release and may not be stable for production use.
westquant-qiskit
Wave 1 deterministic representation search for Qiskit.
westquant-qiskit searches the compilation representation, not only compiler
parameters. A logical circuit is compiled through a reproducible grid of Qiskit
pipeline choices and every success, failure, metric delta, and verification
outcome is written to RepGraph/WQT-ready records.
v0.1 search space
The first deterministic engine searches the Cartesian product of:
- optimization level:
0, 1, 2, 3 - layout:
trivial, dense, sabre - routing:
basic, lookahead, sabre - translation:
translator, synthesis - fixed transpiler seeds
- approximation degree
The default training grid with three seeds contains 216 pipeline representations per circuit. This is intentionally deterministic: the same circuit, target, search-space version, and seeds reproduce the candidate set.
Run a smoke suite
pip install -e ../westquant-core
pip install -e .
python -m westquant_qiskit.cli --suite smoke --output results/qiskit-smoke
A larger local data-generation suite:
python -m westquant_qiskit.cli \
--suite train \
--seed-count 3 \
--output results/qiskit-train
Each challenge writes:
summary.json
repgraph.json
training.jsonl
training.jsonl is the primary WQT20 precursor format. Each row contains the
logical baseline metrics, one pipeline choice, compilation success/failure,
conservative equivalence verification, resulting metrics, metric deltas,
compile cost, Pareto membership, and rank.
Verification policy
WestQuant does not silently call a candidate equivalent. For small unitary
circuits of equal width, v0.1 uses
qiskit.quantum_info.Operator.from_circuit(...).equiv(...), which accounts for
stored transpiler layouts. Circuits that cannot be checked under that regime
are labeled UNKNOWN, not EXACT.
Current objective vector
Candidates are Pareto-compared by minimizing:
- two-qubit gate count
- SWAP count
- depth
- circuit size
- compile time
The lexicographic best is used only as a transparent deterministic default;
the full Pareto front and all losing candidates remain in the dataset.
Qiskit integration
The package also exposes alpha stage entry points for Qiskit's native transpiler-plugin mechanism. The plugin stages still delegate to Qiskit baselines in this Wave 1 build. The deterministic search engine is the first real WestQuant search implementation and will be wired into stage plugins after benchmarking and recursion guards are complete.
Sequential policy search
Wave 1 now also includes a policy-style sequential search mode. Instead of choosing a complete compiler pipeline in one Cartesian-grid action, WestQuant chooses an ordered sequence:
layout -> routing -> translation -> optimization
Each partial prefix is evaluated through an end-to-end rollout with unchosen later stages set to Qiskit's explicit defaults. A beam retains the strongest states under the deterministic objective vector. This intentionally uses only public Qiskit APIs while producing WQT-ready state/action/reward trajectories.
westquant-qiskit-search \
--suite smoke \
--search sequential \
--beam-width 3 \
--output results/qiskit-sequential
Each challenge writes trajectory.jsonl in addition to summary.json and
repgraph.json. A row contains state_id, stage, action, prefix before and
after the action, rollout pipeline, verification, metrics, reward vector,
baseline delta, and whether the state survived the beam.
Sequential 1000 dataset generator
Generate a frozen balanced manifest:
westquant-qiskit-1000 --output results/wq-qiskit-sequential-1000 --manifest-only
Pilot 25 challenges:
westquant-qiskit-1000 --output results/wq-qiskit-sequential-1000 --beam-width 3 --limit 25
Run/resume the full 1000:
westquant-qiskit-1000 --output results/wq-qiskit-sequential-1000 --beam-width 3
Regenerate statistics from raw saved outputs only:
westquant-qiskit-1000 --output results/wq-qiskit-sequential-1000 --stats-only
See docs/SEQUENTIAL-1000.md for the frozen design and failure-retention policy.
Release files for westquant-qiskit 0.1.0a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| westquant_qiskit-0.1.0a5.tar.gz | 36.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| westquant_qiskit-0.1.0a5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.2 kB
Release files / westquant_qiskit-0.1.0a5.tar.gz
| Download URL | westquant_qiskit-0.1.0a5.tar.gz |
|---|---|
| Size | 36.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a33006b5e8bb0513d0a83665b1dd03cd484eb97a7b680b8b40e6c3df9adf4765
|
|
BLAKE2b-256 checksum How to use checksums |
e126a13f6a80322e639d2cf7151dd317d12236585182486c8b244608ff1ddbe4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|
Release files / westquant_qiskit-0.1.0a5-py3-none-any.whl
| Download URL | westquant_qiskit-0.1.0a5-py3-none-any.whl |
|---|---|
| Size | 38.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6552bc8ec770cf5033a1842b52561f8d07d7f0ecae773d2b9aee8a621c0b78ef
|
|
BLAKE2b-256 checksum How to use checksums |
1c475b68fe6d1f5b65da7722737053dfd3a10b59cb73e13b7017dd86f49b13cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|