分数规划

Published: by Creative Commons Licence

  • Tags:

假设存在两个实值函数A(x)B(x),其中B(x)值域为R+。要求下面分数的最大值:

A(x)B(x)

我们需要定义一个辅助函数Hc(x),其定义如下:

Hc(x)=A(x)cB(x)

同时我们定义函数H(c)

H(c)=max{Hc(x)|xR}

对于任意实数ab,有

Ha(x)Hb(x)=(ba)B(x)

由于B(x)的取值始终为正数,因此容易得到对于任意xR,都有a>bHb(x)>Ha(x),可以推得H(c)是严格单调递减函数。

假设c0=max({A(x)B(x)|xR}),即我们要求的结果,可以给出下面不等式

c0A(x)B(x)A(x)c0B(x)0

其中等号可以在某个特殊的x值取到,因此有H(c0)=0。考虑到H函数的严格单独递减性质,因此如果我们能找到某个点c满足H(c)=0,那么我们就可以直接确定c=c0。利用H函数的严格单调递减性质来对c0进行二分查找,我们可以只需要计算O(log2(|C|))H函数,就可以得到想要的c0