u=0 u,cols,basis,x,pi=runnode(cols,basis,0,0,0,u) roots=[c for c in cols if c['kind']=='m'] vals={c['cid']:x[k] for k,c in enumerate(basis)} def yy(i,j): return sum(vals.get(c['cid'],F(0)) for c in roots if c['pair']==(i,j)) print('ROOT y',[(p,yy(p[0],p[1])) for p in P]) print('ROOT obj',sum(c['cost']*x[k] for k,c in enumerate(basis))) cand=[] for (i,j) in P: q=yy(i,j) if q>0 and q<1: cand.append((abs(q-F(1,2)),i,j)) print('CAND',cand) _,a,b=min(cand) print('BRANCH',a,b)