Dinkelbach算法
问题描述
在
:第 个物体的收益(如热量) :第 个物体的代价(如价格) :选中的物体集合
问题转化思路
- 目标函数调整
令最优比值为
则有
- 构造函数
定义辅助函数:则该函数满足: 。
由于仅一个变量因此 在平面坐标系上体现为一条直线,每组 都分别唯一地对应一条直线,这些直线的截距均 、斜率均 。而截距的最大值就是我们要求的 。
因此可以通过
判定,若大于 0 说明 反之说明 ,且
如何求
那么首要的问题便是如何在给定
因为
二分法
Dinkelbach算法
传统二分法仅用
如图随意选取一个
,找到当前的 所在的直线,移动到 上面去,这样做甚至只要2步即可到位)
【优势】
- 直接利用F(r)>0时的R值信息
- 避免盲目二分,加速收敛
- 保证找到全局最优解