01分数规划

 

                                           01分数规划

                                                                                    2019.9.6



学习资料

  1. [Algorithm]01分数规划   By PerSeAwe
  2. 01分数规划入门   By CaptainLi
  3. 01分数规划问题相关算法与题目讲解(二分法与Dinkelbach算法)   By tianxiang971016 
  4. 【算法微解读】浅谈01分数规划   By dawnstar
  5. 0/1分数规划详解   By Judge_Cheung

简介

01分数规划问题简单说来就是给你一堆物品,每件物品有两个属性a,b。每个物品都有选或不选两种情况,设定一个参数x[i],当x[i] = 0时代表物品i不选,x[i] = 1时代表物品选。我们需要从中取出若干物品,也就是求出

的最值,我们移一下项,式子变成了

求出满足式子的R的最(大/小)值

提公因式得到

我们可以发现,式子左边的值是随着R的增大而减小的。

我们以求最大值为例,对于一个确定的R值,当左边的式子的值大于零时,说明有更大的R使得式子更接近0

所以可以二分R的值,求出的最大值,也就是可以将a[i]-R*b[i]看做权值,至于怎么求,就可以套其他算法了,当然如果允许,也可以暴力。大家就根据套的算法为01规划问题分了个类,

但是有的时候出题人想卡常,于是二分便靠不住了,有一种名为Dinkelbach的东西(详见上面的blog或这个链接),简洁说来就是直接跳横截距,理论上会快一点,但是还是要根据实际情况来选择啊

 

例题

最优比率生成树

1. MZOJ #82 总统竞选 :my blog

这题卡常,还卡精度

你可能感兴趣的:(01分数规划)