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 - L\sum_{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分数规划问题.

posted @ 2017-02-27 19:03  Sky_miner  阅读(244)  评论(5编辑  收藏  举报