01分数规划:学习总结

上午考试考了个01分数规划,,,我炸上天了
赶紧来补救一下

问题概述

01分数规划用于解决这样的问题
对于确定的数列{(a_1,a_2,...,a_n)}和数列{(b_1,b_2,...,b_n)}
要求构造出一个01数列{(x_1,x_2,...,x_n)}
使(frac{sum_{i=1}^na_ix_i}{sum_{i=1}^nb_ix_i})取得最大(最小)值

解决问题

首先我们设(R = frac{sum_{i=1}^na_ix_i}{sum_{i=1}^nb_ix_i})
那么我们的目标就是最优化R(此处包括以下的所有最优均指取到最值)
我们可以把上式右侧的分母乘到等式左面,然后引入一个函数(f(x))
这样我们有(f(L) = sum_{i=1}^na_ix_i - Lsum_{i=1}^nb_ix_i)
然后我们合并两个sigma式
得到(f(L) = sum_{i=1}^n(a_i - Lb_i)x_i)
然后我们设(d_i = a_i - Lb_i)
那么现在加入我们找到了一个答案(可能不是最优)L
如果我们要最大化R,那么当(f(L) > 0)时,一定有更优解
我们可以代入最初始的(f(x))的表达式
会得到(L < frac{sum_{i=1}^na_ix_i}{sum_{i=1}^nb_ix_i})
所以我们可以利用这个性质来二分求解01分数规划问题.

原文地址:https://www.cnblogs.com/Skyminer/p/6475838.html