0/1分数规划学习笔记

【关键字】

        0/1分数规划、最优比率生成树、最优比率环

0/1分数规划模型:

        给定整数a1,a2,a3......an,以及b1,b2,b3......bn,求解一组xi(1<=i<=n,xi=0或者1),使得最值化,segm(ai*xi)/segm(bi*xi)。

通俗得讲,就是给定n对ai,bi,从中选出若干对,使得所选得segm (ai*xi)/segm(bi*xi)最值化。

一些分析:

        我们不妨猜测一个值L,考虑这样一个问题:是否存在一组解系X,满足segm(ai-bi*L)*xi>=0.

        如果存在这样得X,使得segm(ai-bi*L)*xi>=0,变形回去可以得到:segm(ai*xi)/segm(bi*xi)>=L,说明L小于我们要求得最大值。反之对立的情况,对于任意的X,都有:segm(ai-bi*L)*xi<0的话,即segm(ai*xi)/segm(bi*xi)<=L,说明L大于我们要求的最小的值。

       显然分析的和、过程与“二分”相似。最终的答案是未知的,我们通过猜测一个L,通过判定“是否存在一组解系X,满足segm(ai-bi*L)*xi>=0”,来不断修改L的值。也即这个L关于”解的存在性“具有”单调性“。然后问题转化为如何判定”是否存在一组解满足segm(ai-bi*L)*xi>=0“。此时在这个式子中只有xi是变量,代表取或者不取,既然如此的话即求出所有的非负的(ai-bi*L)若大于0,则取,否则不取。

    综上所述:可以通过二分答案(实数),当二分的值为mid时,计算 segm(ai-bi*L)*xi的最大值,检查最大值,若非负,segm(ai-bi*L)*xi>=0,变形可以得到segm(ai*xi)/segm(bi*xi)>=LL小于我们要求得最大值,L应该大一点,则l=mid。否则r=mid.


题目:poj 3111.K Best



        



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值