2 """Partition-descriptor ordering and noise placement validation. 4 Emits order-and-noise audits for one continuity case, the boundary-heavy 4-qubit 5 microcase, and one structured-family case. Verifies that partition descriptors 6 preserve exact within-partition order and keep noise placement explicit as 7 first-class descriptor content. 10 python benchmarks/density_matrix/planner_surface/descriptor_ordering_validation.py 13 from __future__
import annotations
18 from pathlib
import Path
20 REPO_ROOT = Path(__file__).resolve().parents[3]
21 if str(REPO_ROOT)
not in sys.path:
22 sys.path.insert(0, str(REPO_ROOT))
24 from benchmarks.density_matrix.planner_surface.common
import (
25 build_phase2_continuity_vqe,
26 build_software_metadata,
28 from benchmarks.density_matrix.planner_surface.workloads
import (
29 build_microcase_descriptor_set,
30 build_microcase_surface,
31 build_structured_descriptor_set,
32 build_structured_surface,
33 iter_structured_descriptor_sets,
35 from squander.partitioning.noisy_planner
import (
36 PLANNER_OP_KIND_NOISE,
37 build_phase3_continuity_partition_descriptor_set,
38 build_phase3_continuity_planner_surface,
41 SUITE_NAME =
"phase3_planner_surface_descriptor_ordering" 42 ARTIFACT_FILENAME =
"descriptor_ordering_bundle.json" 43 DEFAULT_OUTPUT_DIR = (
49 /
"descriptor_ordering" 51 ARTIFACT_CORE_FIELDS = (
63 member[
"canonical_operation_index"]
64 for partition
in payload[
"partitions"]
65 for member
in partition[
"members"]
72 for partition
in payload[
"partitions"]
73 for member
in partition[
"members"]
78 surface_payload = surface.to_dict()
79 descriptor_payload = descriptor_set.to_dict()
80 expected_names = [operation[
"name"]
for operation
in surface_payload[
"operations"]]
84 == list(range(surface_payload[
"operation_count"]))
85 and actual_names == expected_names
86 and descriptor_payload[
"noise_count"]
88 member[
"kind"] == PLANNER_OP_KIND_NOISE
89 for partition
in descriptor_payload[
"partitions"]
90 for member
in partition[
"members"]
95 "case_kind": case_kind,
96 "case_name": descriptor_payload[
"workload_id"],
98 "ordering_pass": ordering_pass,
99 "requested_mode": descriptor_payload[
"requested_mode"],
100 "source_type": descriptor_payload[
"source_type"],
101 "workload_id": descriptor_payload[
"workload_id"],
102 "qbit_num": descriptor_payload[
"qbit_num"],
103 "partition_count": descriptor_payload[
"partition_count"],
104 "descriptor_member_count": descriptor_payload[
"descriptor_member_count"],
105 "gate_count": descriptor_payload[
"gate_count"],
106 "noise_count": descriptor_payload[
"noise_count"],
107 "boundary_mixed_partition_count": sum(
108 partition[
"gate_count"] > 0
and partition[
"noise_count"] > 0
109 for partition
in descriptor_payload[
"partitions"]
111 "expected_name_sequence": expected_names,
112 "actual_name_sequence": actual_names,
113 "descriptor_partitions": descriptor_payload[
"partitions"],
114 "metadata": metadata,
122 {
"qbit_num": 4,
"workload_id":
"phase2_xxz_hea_q4_continuity"},
128 "microcase_4q_partition_boundary_triplet" 131 "microcase_4q_partition_boundary_triplet" 134 "boundary_microcase",
136 "case_name":
"microcase_4q_partition_boundary_triplet",
137 "noise_pattern":
"dense",
141 boundary_descriptor_set,
146 structured_metadata[
"family_name"],
147 qbit_num=structured_metadata[
"qbit_num"],
148 noise_pattern=structured_metadata[
"noise_pattern"],
149 seed=structured_metadata[
"seed"],
152 structured_metadata[
"family_name"],
153 qbit_num=structured_metadata[
"qbit_num"],
154 noise_pattern=structured_metadata[
"noise_pattern"],
155 seed=structured_metadata[
"seed"],
161 structured_descriptor_set,
164 cases = [continuity_case, boundary_case, structured_case]
166 print(
"Descriptor ordering and noise placement:")
169 " {case_name}: members={descriptor_member_count}, mixed_partitions={boundary_mixed_partition_count}, ordering_pass={ordering_pass}".format(
177 ordering_passes = sum(case[
"ordering_pass"]
for case
in cases)
178 passed_cases = sum(case[
"status"] ==
"pass" for case
in cases)
180 "suite_name": SUITE_NAME,
182 if passed_cases == len(cases)
and ordering_passes == len(cases)
184 "requested_mode":
"partitioned_density",
187 "total_cases": len(cases),
188 "passed_cases": passed_cases,
189 "ordering_passes": ordering_passes,
190 "continuity_cases": sum(
191 case[
"case_kind"] ==
"continuity" for case
in cases
193 "boundary_microcases": sum(
194 case[
"case_kind"] ==
"boundary_microcase" for case
in cases
196 "structured_family_cases": sum(
197 case[
"case_kind"] ==
"structured_family" for case
in cases
202 missing = [field
for field
in ARTIFACT_CORE_FIELDS
if field
not in bundle]
205 "Descriptor ordering bundle missing required fields: {}".format(
213 output_dir.mkdir(parents=
True, exist_ok=
True)
214 output_path = output_dir / ARTIFACT_FILENAME
215 output_path.write_text(json.dumps(bundle, indent=2, sort_keys=
True) +
"\n")
219 def main(argv: list[str] |
None =
None) -> int:
220 parser = argparse.ArgumentParser(description=__doc__)
224 default=DEFAULT_OUTPUT_DIR,
225 help=
"Directory to write the descriptor ordering bundle into.",
230 help=
"Suppress per-case console output.",
232 args = parser.parse_args(argv)
239 print(
"Wrote {}".format(output_path))
241 return 0
if bundle[
"status"] ==
"pass" else 1
244 if __name__ ==
"__main__":
245 raise SystemExit(
main())
def write_artifact_bundle
def build_microcase_descriptor_set
def build_phase2_continuity_vqe
def build_phase3_continuity_planner_surface
Build a canonical planner surface from a Phase 2 continuity VQE instance.
def build_microcase_surface
def _flatten_canonical_indices
def iter_structured_descriptor_sets
def build_phase3_continuity_partition_descriptor_set
def build_software_metadata()
def _flatten_member_names
def build_artifact_bundle
def build_structured_descriptor_set
def build_structured_surface