0/1分数规划学习笔记
——by sunzz3183
介绍
0 / 1 0/1 0/1 分数规划是指,给定整数 a 1 , a 2 , ⋯ , a n , b 1 , b 2 , ⋯ , b n a_1,a_2,\cdots ,a_n,b_1,b_2,\cdots ,b_n a1,a2,⋯,an,b1,b2,⋯,bn,求一组解 $x_i,x_i \in \left { 0,1 \right } $,使下面的式子最大化:
∑ i = 1 n a i × x i ∑ i = 1 n b i × x i \frac{\sum_{i=1}^{n} a_i\times x_i}{\sum_{i=1}^{n} b_i\times x_i} ∑i=1nbi×xi∑i=1nai×xi
求法
我们设一个值 L L L,假设存在一组解使得:
∑ i = 1 n a i × x i ∑ i = 1 n b i × x i ≥ L \frac{\sum_{i=1}^{n} a_i\times x_i}{\sum_{i=1}^{n} b_i\times x_i} \geq L ∑i=1nbi×xi∑i=1nai×xi≥L
那么此时显然,最大值大于 L L L。
又因为
∑ i = 1 n a i × x i ∑ i = 1 n b i × x i ≥ L ∑ i = 1 n a i × x i ≥ L × ∑ i = 1 n b i × x i ∑ i = 1 n a i × x i − L × ∑ i = 1 n b i × x i ≥ 0 ∑ i = 1 n ( a i − L × b i ) × x i ≥ 0 \begin{aligned} \frac{\sum_{i=1}^{n} a_i\times x_i}{\sum_{i=1}^{n} b_i\times x_i} &\geq L\\ \sum_{i=1}^{n} a_i\times x_i&\geq L\times \sum_{i=1}^{n} b_i\times x_i\\ \sum_{i=1}^{n} a_i\times x_i-L\times \sum_{i=1}^{n} b_i\times x_i&\geq 0\\ \sum_{i=1}^{n} (a_i-L\times b_i)\times x_i&\geq 0 \end{aligned} ∑i=1nbi×xi∑i=1nai×xii=1∑nai×xii=1∑nai×xi−L×i=1∑nbi×xii=1∑n(ai−L×bi)×xi≥L≥L×i=1∑nbi×xi≥0≥0
所以,
假设存在一组解使得:
∑ i = 1 n ( a i − L × b i ) × x i ≥ 0 \sum_{i=1}^{n} (a_i-L\times b_i)\times x_i\geq 0 i=1∑n(ai−L×bi)×xi≥0
那么此时最大值大于等于 L L L。
同理
假设任意一组解使得:
∑ i = 1 n ( a i − L × b i ) × x i < 0 \sum_{i=1}^{n} (a_i-L\times b_i)\times x_i<0 i=1∑n(ai−L×bi)×xi<0
那么此时最大值小于 L L L。
又显然, L L L 在取值时,解的存在满足单调性,所以显然可以二分。