博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分数规划整理
阅读量:7054 次
发布时间:2019-06-28

本文共 865 字,大约阅读时间需要 2 分钟。

分数规划问题,是指这样一类问题:

要求f(x)/g(x)的最值,其中f(x),g(x)都是线性函数,而其中被研究的最多的是0-1分数规划,即求这样的一个式子的极值

r=(∑(ci*xi))/(∑(di*xi)),其中xi∈{0,1}

我们可以把这个式子变换一下

z=(∑(ci*xi))-r'*(∑(di*xi)),其中z是左边这个式子的最大(小)值

由于di为正数,xi为非负数,所以

r'>r 时 z(r')<0

r'=r 时 z(r')=0

r'<r 时 z(r')>0

 

易证z函数严格单调递减,那么我们可以二分r',直到z(r')=0,此时r'=r,问题得解

PS:z函数也是凸函数

 

 

除了二分,还有一种叫Dinkelbach算法

每次将r'代入z函数中计算以后,我们将得到一组x

让r''=(∑(ci*xi))/(∑(di*xi))

当r''=r'时,r''就是我们需要的解

否则将r'=r'',继续迭代

这种方法比二分法要快一点

 

POJ 2728

大意:给定每条边的距离和代价,求一棵生成树使得代价和/距离和最小

这是一道最优比率生成树的题目,是个很明显的0-1分数规划,设每条边代价为ci,距离为di

则题目要求(∑(ci*xi))/(∑(di*xi))的最小值

那么二分这个最小值,将这个式子化成xi(ci-r'*di)的形式,每条边的权值变成ci-r'*di

对于这些边,求一棵最小生成树,MST的值即为z(r')

 

HNOI2009 最小圈

题目大意是给定一个无向图,定义环的平均值为环上的边权和/边数,求出最小的环平均值

这道题虽然看上去不像分数规划,但是巧妙地应用了分数规划的思想

二分这个平均值,然后对每条边,重新把它的权值赋为(原权值-二分值)

如果存在某一个环,他的平均值刚好是二分的值,那么新的边权和是0

如果环的平均值小于二分值,那么图中将出现负环,上界可缩小

否则需将下界变大

转载于:https://www.cnblogs.com/shenben/p/6379356.html

你可能感兴趣的文章
IBM大力发展慕尼黑Watson物联网总部,已经拥有了6000家客户
查看>>
公有云厂商自建威胁情报系统
查看>>
phpcms 2008 sp4的模板原理,tag的解析原理
查看>>
物联网安全:物联网从开源能够学到什么?
查看>>
《机器人自动化:建模、仿真与控制》——1.3 伺服电动机
查看>>
Gartner:企业重新思考软件安全战略
查看>>
热点推荐:2016年热门技术方向预测
查看>>
混合云平台为何更适合现代应用开发
查看>>
Linux交换空间(swap space)的那些优缺点
查看>>
我们该用什么姿态拥抱互联网+时代
查看>>
补天白帽大会五大热点前瞻
查看>>
PHP 性能分析与实验:性能的微观分析
查看>>
你需要了解自动化运维的设计思想
查看>>
说说Python中的闭包 - Closure
查看>>
大数据融入百姓生活 或将结束高考“一锤定音”
查看>>
理解RxJava线程模型
查看>>
企业IT运维效率低——如何破?
查看>>
DR Rapid:打通备份数据流动的任督二脉
查看>>
T9000:一款专攻击Skype用户的恶意软件
查看>>
以色列拟建全球最高太阳能塔 占地约300公顷
查看>>