#!/usr/bin/env python3 """Aggregate fixed benchmark outcomes and audit persisted numerical artifacts.""" from __future__ import annotations import json, math from pathlib import Path import numpy as np import pandas as pd ROOT=Path(__file__).resolve().parents[1] records=[json.loads(p.read_text()) for p in sorted((ROOT/'results').glob('n*.json'))] if len(records)!=60:raise RuntimeError(f'Expected 60 instances, found {len(records)}') rows=[];trials=[] for r in records: flat={k:v for k,v in r.items() if not isinstance(v,(dict,list))} for alg in ('queyranne','qaoa_p1','qaoa_p2'): for k,v in r[alg].items(): if isinstance(v,(int,float,str,bool)):flat[f'{alg}_{k}']=v for alg in ('SA','Uniform','QAOA-p1','QAOA-p2'): ar=[a for a in r['trials'] if a['algorithm']==alg] flat[f'{alg}_hit_rate']=float(np.mean([x['hit'] for x in ar])) flat[f'{alg}_mean_gap_pct']=float(np.mean([(x['J']-r['Jstar'])/r['Jstar']*100 for x in ar])) flat[f'{alg}_mean_sec']=float(np.mean([x['sec'] for x in ar])) for x in ar: trials.append({'instance':r['instance'],'n':r['n'],'family':r['family'], 'rep':r['rep'],'Jstar':r['Jstar'], 'gap_pct':(x['J']-r['Jstar'])/r['Jstar']*100,**x}) flat['queyranne_gap_pct']=(r['queyranne']['J']-r['Jstar'])/r['Jstar']*100 flat['uniform_theoretical_hit256']=float(-np.expm1(256*np.log1p(-r['uniform_pstar']))) rows.append(flat) df=pd.DataFrame(rows);tdf=pd.DataFrame(trials) df.to_csv(ROOT/'results/instances.csv',index=False,float_format='%.17g') tdf.to_csv(ROOT/'results/trials.csv',index=False,float_format='%.17g') # Stratified cluster bootstrap: networks are the unit, readout batches are not # independent networks. Hold 4 sizes x 3 families fixed; resample 5 instances/cell. rng=np.random.default_rng(8890021) strata=[g.index.to_numpy() for _,g in df.groupby(['n','family'],sort=True)] indices=np.concatenate([rng.choice(ix,size=(10000,len(ix)),replace=True) for ix in strata],axis=1) def ci(values): v=np.asarray(values,float);dist=v[indices].mean(axis=1) return list(map(float,np.quantile(dist,[.025,.975]))) summary={} for alg in ('Queyranne','SA','Uniform','QAOA-p1','QAOA-p2'): if alg=='Queyranne': rates=df.queyranne_hit.astype(float).to_numpy();gaps=df.queyranne_gap_pct.to_numpy() hits=int(rates.sum());denom=len(rates) medsec=float(df.queyranne_sec.median()) else: rates=df[f'{alg}_hit_rate'].to_numpy();sub=tdf[tdf.algorithm==alg] gaps=sub.gap_pct.to_numpy();hits=int(sub.hit.sum());denom=len(sub) medsec=float(sub.sec.median()) summary[alg]={'hits':hits,'attempts':denom,'hit_rate':float(rates.mean()), 'hit_rate_95_stratified_cluster_bootstrap':ci(rates), 'mean_gap_pct':float(gaps.mean()),'median_gap_pct':float(np.median(gaps)), 'max_gap_pct':float(gaps.max()),'median_recorded_sec':medsec} byn=[] for n,g in df.groupby('n',sort=True): ns={'n':int(n),'instances':len(g),'partitions_each':int(g.partition_count.iloc[0]), 'Jstar_min':float(g.Jstar.min()),'Jstar_max':float(g.Jstar.max()), 'Jstar_median':float(g.Jstar.median()),'queyranne_hit_rate':float(g.queyranne_hit.mean()), 'queyranne_hits':int(g.queyranne_hit.sum()), 'exact_median_sec':float(g.exact_sec.median()), 'queyranne_median_sec':float(g.queyranne_sec.median()), 'SA_median_sec':float(tdf[(tdf.n==n)&(tdf.algorithm=='SA')].sec.median()), 'qaoa_p2_training_median_sec':float(g.qaoa_p2_training_sec.median()), 'qaoa_p2_total_median_sec':float((g.exact_sec+g.qaoa_p2_training_sec).median()), 'qaoa_p2_mean_pstar':float(g.qaoa_p2_pstar.mean()), 'qaoa_p2_mean_lift':float((g.qaoa_p2_pstar/g.uniform_pstar).mean()), 'uniform_theoretical_hit256':float(g.uniform_theoretical_hit256.mean()), 'qaoa_p2_theoretical_hit256':float(g.qaoa_p2_theoretical_hit256.mean()), 'queyranne_median_calls':float(g.queyranne_calls.median()), 'queyranne_median_unique':float(g.queyranne_unique_computations.median())} for alg in ('SA','Uniform','QAOA-p1','QAOA-p2'): ns[f'{alg}_hit_rate']=float(g[f'{alg}_hit_rate'].mean()) ns[f'{alg}_hits']=int(tdf[(tdf.n==n)&(tdf.algorithm==alg)].hit.sum()) byn.append(ns) # Post-run mathematical diagnostic, not an outcome-dependent benchmark change: # exhaustively scan every elementary submodularity inequality for all instances. witnesses=[];audit=[] for r in records: dat=np.load(ROOT/'data'/f'{r["instance"]}.npz',allow_pickle=False) n=r['n'];D=1<<(n-1);full=(1<=0 assert abs(star-r['Jstar'])<1e-14 assert int(np.argmin(J))==r['exact_z'] assert abs(J[r['queyranne']['z']]-r['queyranne']['J'])<1e-12 # f(empty)=f(full)=0, symmetric lift of the canonical table. masks=np.arange(1<>1] lowest=0.;wit=None;tested=0 for i in range(n): for j in range(i+1,n): bases=masks[(masks&((1<=0 ps=float(probs[dat['optimal_z']].sum()) assert abs(ps-r[f'qaoa_p{p}']['pstar'])<1e-14 for t in [x for x in r['trials'] if x['algorithm']==f'QAOA-p{p}']: shots=dat[f'qaoa_p{p}_shots'][t['trial']];valid=shots[shots=0 assert abs(J[t['z']]-t['J'])<1e-12 assert bool(J[t['z']]<=star+1e-10+1e-8*abs(star))==t['hit'] audit.append({'instance':r['instance'],'pass':True,'probability_norm_abs_error':max_norm_err}) contrast={ 'qaoa_p2_minus_uniform_observed_hit_rate':float((df['QAOA-p2_hit_rate']-df['Uniform_hit_rate']).mean()), 'qaoa_p2_minus_uniform_observed_95_ci':ci(df['QAOA-p2_hit_rate']-df['Uniform_hit_rate']), 'SA_minus_qaoa_p2_observed_hit_rate':float((df['SA_hit_rate']-df['QAOA-p2_hit_rate']).mean()), 'SA_minus_qaoa_p2_observed_95_ci':ci(df['SA_hit_rate']-df['QAOA-p2_hit_rate']), 'qaoa_p2_mean_pstar':float(df.qaoa_p2_pstar.mean()), 'qaoa_p2_median_pstar':float(df.qaoa_p2_pstar.median()), 'qaoa_p2_median_pstar_lift_over_valid_uniform':float((df.qaoa_p2_pstar/df.uniform_pstar).median()), 'qaoa_p2_lift_min':float((df.qaoa_p2_pstar/df.uniform_pstar).min()), 'qaoa_p2_lift_max':float((df.qaoa_p2_pstar/df.uniform_pstar).max()), 'qaoa_p2_mean_invalid_probability':float(df.qaoa_p2_p_invalid.mean()), 'qaoa_p2_mean_theoretical_hit256':float(df.qaoa_p2_theoretical_hit256.mean()), 'uniform_mean_theoretical_hit256':float(df.uniform_theoretical_hit256.mean()), 'qaoa_p2_nfev_min':int(df.qaoa_p2_nfev.min()), 'qaoa_p2_nfev_max':int(df.qaoa_p2_nfev.max()), 'qaoa_p2_nfev_sum':int(df.qaoa_p2_nfev.sum()), 'qaoa_p1_nfev_sum':int(df.qaoa_p1_nfev.sum()), 'non_submodular_instances':sum(x['minimum_submodular_slack']< -1e-10 for x in witnesses), 'elementary_submodularity_inequalities_checked':sum(x['inequalities_checked'] for x in witnesses), 'max_covariance_relative_residual':float(df.covariance_relative_residual.max()), 'max_conditional_vs_joint_phi_difference':float(df.SI_crosscheck_max_abs_error.max()), 'exact_min_smaller_part_size':int(df.exact_smaller_part.min()), 'exact_max_smaller_part_size':int(df.exact_smaller_part.max()), 'ties_instances':int((df.n_tied_optima>1).sum()), } out={'summary':summary,'by_size':byn,'comparisons':contrast, 'totals':{'networks':60,'partitions':int(df.partition_count.sum()), 'stochastic_trials':len(tdf),'readout_shots_per_qaoa_depth':60*10*256}, 'bootstrap':{'replicates':10000,'unit':'network','strata':'node count x family','seed':8890021}} (ROOT/'results/summary.json').write_text(json.dumps(out,indent=2)+'\n') (ROOT/'validation/submodularity_witnesses.json').write_text(json.dumps(witnesses,indent=2)+'\n') (ROOT/'validation/persisted_artifact_audit.json').write_text(json.dumps({'passed':True,'instances':audit},indent=2)+'\n') print(json.dumps(out,indent=2))