#!/bin/sh cd /tmp u='https://pkg.freebsd.org/FreeBSD:14:amd64/quarterly/All/Hashed/coin-or-highs-1.15.1~2$hytxt5tw.pkg' curl -Ls "$u" -o h.pkg;mkdir h;tar -xf h.pkg -C h 2>/dev/null cat >g.py <<'PY' import math W,H=140,110 pos=[(x,y) for y in range(0,111,5) for x in range(0,141,5)] cands=[(t,x,y) for t in range(3) for x,y in pos] cov=[[] for _ in range(W*H)] for k,(t,x,y) in enumerate(cands): r=20 if t==0 else 5 for j in range(max(0,int(y-r)),min(H,int(y+r)+1)): for i in range(max(0,int(x-r)),min(W,int(x+r)+1)): a,b=i+.5,j+.5 ok=(a-x)**2+(b-y)**2<=r*r if t<2 else abs(a-x)<=5 and abs(b-y)<=5 if ok:cov[j*W+i].append(k) f=open('m.lp','w') f.write('minimize\nobj: '+' + '.join(str([20000,1600,2000][t])+' x'+str(k) for k,(t,x,y) in enumerate(cands))+'\nsubject to\n') f.write('threshold: '+' + '.join('y'+str(p) for p in range(W*H))+' >= 13552\n') for p,q in enumerate(cov):f.write('c'+str(p)+': y'+str(p)+' - '+' - '.join('x'+str(k) for k in q)+' <= 0\n') f.write('bounds\n') for p in range(W*H):f.write('0 <= y'+str(p)+' <= 1\n') f.write('binary\n') for k in range(len(cands)):f.write('x'+str(k)+'\n') f.write('end\n');f.close() PY python3 g.py h/usr/local/bin/highs --model_file m.lp --time_limit 5 --solution_file sol.txt --parallel on 2>&1 | tail -n42 awk '/^x[0-9]+ /&&$2>.5{print}' sol.txt | head -n100