1 from __future__
import annotations
3 from copy
import deepcopy
4 from dataclasses
import dataclass, replace
5 from functools
import lru_cache
10 from benchmarks.density_matrix.correctness_evidence.common
import (
11 CORRECTNESS_EVIDENCE_REFERENCE_BACKEND_EXTERNAL,
12 CORRECTNESS_EVIDENCE_REFERENCE_BACKEND_INTERNAL,
13 build_correctness_evidence_selected_candidate,
14 build_validation_slice,
16 from benchmarks.density_matrix.partitioned_runtime.common
import build_initial_parameters
17 from benchmarks.density_matrix.planner_surface.common
import build_phase2_continuity_vqe
18 from benchmarks.density_matrix.planner_surface.workloads
import (
19 DEFAULT_STRUCTURED_SEED,
20 PHASE31_CONTROL_NOISE_PATTERNS,
21 PHASE31_CONTROL_STRUCTURED_FAMILY_NAMES,
22 PHASE31_PRIMARY_NOISE_PATTERNS,
23 PHASE31_PRIMARY_SEEDS,
24 PHASE31_PRIMARY_STRUCTURED_FAMILY_NAMES,
25 MANDATORY_NOISE_PATTERNS,
26 STRUCTURED_FAMILY_NAMES,
28 build_microcase_descriptor_set,
29 build_phase31_microcase_descriptor_set,
30 build_phase31_structured_descriptor_set,
31 build_structured_descriptor_set,
32 mandatory_microcase_definitions,
33 phase31_microcase_definitions,
35 from squander.partitioning.noisy_planner
import (
36 NoisyPartitionDescriptorSet,
37 build_phase3_continuity_partition_descriptor_set,
40 CORRECTNESS_EVIDENCE_CASE_KIND_CONTINUITY =
"continuity" 41 CORRECTNESS_EVIDENCE_CASE_KIND_MICROCASE =
"microcase" 42 CORRECTNESS_EVIDENCE_CASE_KIND_STRUCTURED =
"structured_family" 43 CORRECTNESS_EVIDENCE_CONTINUITY_QUBITS = (4, 6, 8, 10)
44 CORRECTNESS_EVIDENCE_EXTERNAL_REFERENCE_CONTINUITY_QUBITS = (4,)
45 PHASE31_CORRECTNESS_CONTINUITY_QUBITS = (4, 6)
48 PHASE31_BOUNDED_COUNTED_MICROCASE_IDS: tuple[str, ...] = (
49 "phase31_microcase_1q_u3_local_noise_chain",
50 "phase31_microcase_2q_cnot_local_noise_pair",
51 "phase31_microcase_2q_multi_noise_entangler_chain",
52 "phase31_microcase_2q_dense_same_support_motif",
56 @dataclass(frozen=
True)
58 metadata: dict[str, Any]
59 descriptor_set: NoisyPartitionDescriptorSet
60 parameters: np.ndarray
61 hamiltonian: Any |
None =
None 69 descriptor_set: NoisyPartitionDescriptorSet,
72 family_name: str |
None =
None,
73 noise_pattern: str |
None =
None,
74 seed: int |
None =
None,
75 topology: list[tuple[int, int]] |
None =
None,
77 external_reference_required = case_kind == CORRECTNESS_EVIDENCE_CASE_KIND_MICROCASE
or (
78 case_kind == CORRECTNESS_EVIDENCE_CASE_KIND_CONTINUITY
79 and descriptor_set.qbit_num
in CORRECTNESS_EVIDENCE_EXTERNAL_REFERENCE_CONTINUITY_QUBITS
83 "case_name": descriptor_set.workload_id,
84 "case_kind": case_kind,
85 "candidate_id": selected_candidate[
"candidate_id"],
86 "planner_family": selected_candidate[
"planner_family"],
87 "planner_variant": selected_candidate[
"planner_variant"],
88 "max_partition_qubits": selected_candidate[
"max_partition_qubits"],
89 "planner_settings": dict(selected_candidate[
"planner_settings"]),
90 "planner_calibration_selected_candidate_id": selected_candidate[
"selected_candidate_id"],
91 "planner_calibration_claim_selection_schema_version": selected_candidate[
92 "claim_selection_schema_version" 94 "planner_calibration_claim_selection_rule": selected_candidate[
"claim_selection_rule"],
95 "source_type": descriptor_set.source_type,
96 "workload_id": descriptor_set.workload_id,
97 "qbit_num": descriptor_set.qbit_num,
98 "parameter_count": descriptor_set.parameter_count,
99 "family_name": family_name,
100 "noise_pattern": noise_pattern,
102 "topology": list(topology)
if topology
is not None else None,
104 external_reference_required=external_reference_required
106 "external_reference_required": external_reference_required,
107 "reference_backend_internal": CORRECTNESS_EVIDENCE_REFERENCE_BACKEND_INTERNAL,
108 "reference_backend": (
109 CORRECTNESS_EVIDENCE_REFERENCE_BACKEND_EXTERNAL
if external_reference_required
else None 116 for qbit_num
in CORRECTNESS_EVIDENCE_CONTINUITY_QUBITS:
118 workload_id = f
"phase2_xxz_hea_q{qbit_num}_continuity" 121 workload_id=workload_id,
122 max_partition_qubits=max_partition_qubits,
126 case_kind=CORRECTNESS_EVIDENCE_CASE_KIND_CONTINUITY,
131 descriptor_set=descriptor_set,
133 hamiltonian=hamiltonian,
141 definition[
"case_name"],
142 max_partition_qubits=max_partition_qubits,
146 case_kind=CORRECTNESS_EVIDENCE_CASE_KIND_MICROCASE,
147 noise_pattern=definition[
"noise_pattern"],
151 descriptor_set=descriptor_set,
158 for family_name
in STRUCTURED_FAMILY_NAMES:
159 for qbit_num
in STRUCTURED_QUBITS:
160 for noise_pattern
in MANDATORY_NOISE_PATTERNS:
164 noise_pattern=noise_pattern,
165 seed=DEFAULT_STRUCTURED_SEED,
166 max_partition_qubits=max_partition_qubits,
170 case_kind=CORRECTNESS_EVIDENCE_CASE_KIND_STRUCTURED,
171 family_name=family_name,
172 noise_pattern=noise_pattern,
173 seed=DEFAULT_STRUCTURED_SEED,
177 descriptor_set=descriptor_set,
183 """Planning helper for the Phase 3.1 counted microcase surface. 185 This is intentionally separate from the default Phase 3 correctness package 186 until Phase 3.1 implementation work wires the new path into the bundle 193 definition[
"case_name"],
194 max_partition_qubits=max_partition_qubits,
198 case_kind=CORRECTNESS_EVIDENCE_CASE_KIND_MICROCASE,
199 noise_pattern=definition[
"noise_pattern"],
203 "claim_surface_id":
"phase31_bounded_mixed_motif_v1",
204 "representation_primary":
"kraus_bundle",
205 "fused_block_support_qbits": list(definition[
"support_qbits"]),
206 "contains_noise":
True,
207 "counted_phase31_case":
True,
212 descriptor_set=descriptor_set,
218 """Planning helper for the bounded Phase 3.1 continuity anchors.""" 221 for qbit_num
in PHASE31_CORRECTNESS_CONTINUITY_QUBITS:
223 workload_id = f
"phase2_xxz_hea_q{qbit_num}_continuity" 226 workload_id=workload_id,
227 max_partition_qubits=max_partition_qubits,
231 case_kind=CORRECTNESS_EVIDENCE_CASE_KIND_CONTINUITY,
236 "claim_surface_id":
"phase31_bounded_mixed_motif_v1",
237 "representation_primary":
"kraus_bundle",
238 "contains_noise":
True,
239 "counted_phase31_case":
True,
244 descriptor_set=descriptor_set,
246 hamiltonian=hamiltonian,
251 """Planning helper for the Phase 3.1 counted performance carry-forward set.""" 254 for family_name
in PHASE31_PRIMARY_STRUCTURED_FAMILY_NAMES:
255 for qbit_num
in STRUCTURED_QUBITS:
256 for noise_pattern
in PHASE31_PRIMARY_NOISE_PATTERNS:
257 for seed
in PHASE31_PRIMARY_SEEDS:
261 noise_pattern=noise_pattern,
263 max_partition_qubits=max_partition_qubits,
267 case_kind=CORRECTNESS_EVIDENCE_CASE_KIND_STRUCTURED,
268 family_name=family_name,
269 noise_pattern=noise_pattern,
274 "claim_surface_id":
"phase31_bounded_mixed_motif_v1",
275 "representation_primary":
"kraus_bundle",
276 "contains_noise":
True,
277 "counted_phase31_case":
True,
282 descriptor_set=descriptor_set,
284 descriptor_set.parameter_count
287 for family_name
in PHASE31_CONTROL_STRUCTURED_FAMILY_NAMES:
288 for qbit_num
in STRUCTURED_QUBITS:
289 for noise_pattern
in PHASE31_CONTROL_NOISE_PATTERNS:
293 noise_pattern=noise_pattern,
294 seed=DEFAULT_STRUCTURED_SEED,
295 max_partition_qubits=max_partition_qubits,
299 case_kind=CORRECTNESS_EVIDENCE_CASE_KIND_STRUCTURED,
300 family_name=family_name,
301 noise_pattern=noise_pattern,
302 seed=DEFAULT_STRUCTURED_SEED,
306 "claim_surface_id":
"phase31_bounded_mixed_motif_v1",
307 "representation_primary":
"kraus_bundle",
308 "contains_noise":
True,
309 "counted_phase31_case":
True,
314 descriptor_set=descriptor_set,
319 @lru_cache(maxsize=1)
321 cases: list[CorrectnessEvidenceCaseContext] = []
332 @lru_cache(maxsize=1)
334 CorrectnessEvidenceCaseContext, ...
336 """Bounded Stage-A package: four counted microcases + q4/q6 continuity; no structured rows.""" 338 contexts: list[CorrectnessEvidenceCaseContext] = []
340 if ctx.descriptor_set.workload_id
not in PHASE31_BOUNDED_COUNTED_MICROCASE_IDS:
342 contexts.append(deepcopy(ctx))
344 meta = dict(ctx.metadata)
346 meta[
"fused_block_support_qbits"] =
None 347 contexts.append(replace(deepcopy(ctx), metadata=meta))
348 if len(contexts) != 6:
349 raise AssertionError(
350 "expected 6 Phase 3.1 bounded contexts, got {}".format(len(contexts))
352 return tuple(contexts)
356 """Stage-A sibling selector for P31-S10-E02 (does not alter default Phase 3 case matrix).""" def phase31_microcase_definitions()
def build_microcase_descriptor_set
def iter_correctness_evidence_structured_cases()
def build_phase2_continuity_vqe
def mandatory_microcase_definitions()
def iter_correctness_evidence_continuity_cases()
def build_correctness_evidence_case_contexts()
def build_initial_parameters
def build_phase31_structured_descriptor_set
def iter_phase31_correctness_continuity_cases()
def _base_metadata_from_descriptor
def build_phase3_continuity_partition_descriptor_set
def build_phase31_microcase_descriptor_set
def _build_correctness_evidence_case_contexts_cached()
def build_correctness_evidence_selected_candidate()
def _selected_partition_qubits()
def iter_correctness_evidence_microcase_cases()
def iter_phase31_correctness_structured_cases()
def _build_phase31_correctness_evidence_case_contexts_cached()
def build_phase31_correctness_evidence_case_contexts()
def iter_phase31_correctness_microcase_cases()
def build_structured_descriptor_set
def build_validation_slice