学习笔记第二十四节:分数规划

本文探讨了01分数规划问题的解决思路,通过引入二分法简化复杂度,为解决涉及两个或多个关键字的分数最优化问题提供了新视角。以生成树边权比最小化为例,展示了二分加判定的高效解决方案。

正题

      好像大部分都是01分数规划?

      它是解决这样的问题的,求min(\frac{\sum_{i=1}^na_i*x_i}{\sum_{i=1}^nb_i*x_i}),x_i=0\ or\ 1

      怎么做?

      好像很麻烦。

      我们来二分一个数k,

      然后让这堆东西小于等于k,就变成了这个样子

\\\frac{\sum_{i=1}^na_i*x_i}{\sum_{i=1}^nb_i*x_i}<=k \\\to\sum_{i=1}^na_i*x_i<=\sum_{i=1}^nb_i*x_i*k \\\to(\sum_{i=1}^na_i-b_i*k)*x_i<=0

      所以,贪心取a_i-b_i*k<=0的就行了。

      好像把简单的问题复杂化了。

      其实每次我们就是判断是否有a_i-b_i*k<=0,也就是说,我们判断的是 是否有\frac{a_i}{b_i}<=k

      那么不是可以直接输出min_{i=1}^n(\frac{a_i}{b_i})就可以了?

      是的你没有错

      这个东西好像没有用啊。

      但是它为我们提供了一种解决这种问题的思考方向。

      比如说,给出n个点m条边,要你求一棵生成树使得边权a值之和除以边权b值之和最小。

      向上面说的,二分+判定即可。

       也就是说,在很多时候,我们遇到有两个或者多个关键字的分数最优化的情况,可以用分数规划的思想,先考虑二分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值