python3 <<'PY' import math a=0.25; b=1.0/12 def F(x,y): return math.sqrt(a)*(math.sqrt(x*y)+math.sqrt((1-x)*(1-y)))+math.sqrt(b)*(math.sqrt(x*(1-y))+math.sqrt((1-x)*y)) def BC(y1,y2): best=-1; by=None for j in range(201): y3=a*j/200 beta=a+b-y3; B=math.sqrt(beta)*(b+math.sqrt(max(0,a*(a-y3)))) gam=y1+y2+y3; C=math.sqrt(gam)*(math.sqrt(max(0,b*y1))+math.sqrt(max(0,a*y2))+math.sqrt(max(0,a*y3))) if B+C>best: best=B+C; by=y3 return best,by best=-1; arg=None for i in range(51): y1=b*i/50 for j in range(51): y2=a*j/50 al=2*a+2*b-y1-y2 x=(a+b-y1)/al; y=(a+b)/al Aub=al*F(x,y) bc,by=BC(y1,y2) u=Aub+bc if u>best: best=u; arg=(y1,y2,x,y,Aub,bc,by) print("bestUB",best,arg,"cost",1-best) PY