问题
已知数组A,数组B,求数组x,x[i]∈{0,1}x[i]∈{0,1},使得S最小:
S=∑x[i]×A[i]∑x[i]×B[i]S=∑x[i]×A[i]∑x[i]×B[i]
分析
等式变形:
S×∑x[i]×B[i]=∑x[i]×A[i]S×∑x[i]×B[i]=∑x[i]×A[i]
∑x[i]×A[i]−S×∑x[i]×B[i]=0∑x[i]×A[i]−S×∑x[i]×B[i]=0
∑x[i]×(A[i]−S×B[i])=0∑x[i]×(A[i]−S×B[i])=0
用二分求得S,用 其它算法 求得表达式的最大值FmaxFmax,如果Fmax>0Fmax>0,则S可以更小。