aqora / Tensor Network Simulation Challenge
SELECT * FROM data LIMIT 100easy, medium, hard, unreasonable) mirror the release authors’ empirical assessment of classical simulation difficulty. Qubit counts span 28–280, and gate-count columns summarize the operator mix per circuit. (The challenge instructions also mention “bonus_qec” circuits featuring mid-circuit magic-state injections, but that family is not present in the bundled Parquet artifact.)pytket_orig: pytket JSON retaining the original n-qubit gates (sometimes n > 2).pytket_decomp: pytket JSON where wide gates are decomposed into a standard 1–2 qubit gateset.qasm: OpenQASM 2.0 text derived from the decomposed circuit (qelib1.inc).
All six circuit columns store the exact UTF‑8 payload from the upstream archive so you can feed them directly into pytket, Qiskit, or other tooling. No additional files are needed once you load the Parquet.| Column | Type | Description |
|---|---|---|
circuit_name | String | Canonical identifier; matches the upstream filenames. |
family | String | Circuit family label (see list above). |
hardness | String | Upstream hardness estimate (easy, medium, hard, unreasonable). |
qubits | Integer | Number of qubits in the circuit. |
Rz, Rx, ZZPhase, XXPhase, CX, H, S, Sdg, T, CnX, PauliExpBox, Measure | Integer | Gate counts reported in the original release. |
suite_pytket_orig | String | pytket JSON text for the “forward” circuit (original gateset). |
suite_pytket_decomp | String | pytket JSON after gate decomposition. |
suite_qasm | String | OpenQASM 2.0 text generated from the decomposed circuit. |
dagger_pytket_orig | String | Dagger circuit (original gateset). |
dagger_pytket_decomp | String | Dagger circuit (decomposed). |
dagger_qasm | String | Dagger circuit (OpenQASM 2.0). |
null. This includes seven pytket_orig circuits (e.g., TFIM_square_obc_Jz=1.0_hx=8.0_dt=0.3_n_trotter_steps=20_Lx=8_Ly=7.json, uccsd_sto3g_CO2.json, several mvsp_*_d*_n*.json) and all dagger representations of t_injections_{balanced,high_distance,colour,steane,high_rate}. All other entries are present verbatim.
import polars as pl
from aqora_cli.pyarrow import dataset
df = pl.scan_pyarrow_dataset(dataset("aqora/tensor-network-simulation-challenge", "v0.1.0")).collect()
summary = (
df.groupby(["family", "hardness"])
.agg([
pl.count().alias("num_circuits"),
pl.col("qubits").mean().round(2).alias("avg_qubits"),
])
.sort(["family", "hardness"])
)
print(summary)
import pandas as pd
df = pd.read_parquet("aqora://aqora/tensor-network-simulation-challenge/v0.1.0")
print(df.head())
import polars as pl
from aqora_cli.pyarrow import dataset
df = (
pl.scan_pyarrow_dataset(dataset("aqora/tensor-network-simulation-challenge", "v0.1.0"))
.filter(pl.col("circuit_name") == "circ_8_mean_dict")
.select(["suite_qasm"])
.collect()
)
qasm_source = df.item(0, "suite_qasm")
with open("circ_8_mean_dict.qasm", "w", encoding="utf-8") as f:
f.write(qasm_source)
pl.col("Rz"), pl.col("XXPhase"), etc.) to compare hardness classes.family == "mvsp" to revisit the Gaussian/Cauchy/Ricker workloads described in the challenge.