0.前言
老早以前就看到这玩意儿了,但是没当回事。
然后今天遇到了这样的题……被摁得死死的。

私以为,胡伯涛将这个问题讲得很严谨。这里就直接将他的东西拷下来吧!
可以去看看别人的博客,也是可以的。毕竟我只是拾人牙慧而已。
1.分数规划
先给出 分数规划(fractional programming) 的一般形式:
对于解空间 S 、连续的实值函数 a(x),b(x) ,满足 ∀x∈S,b(x)>0 ,求
x∈Sminf(x)=b(x)a(x)
解决分数规划问题的一般方法是分析其对偶问题,但更加实用的方法是对其进行 参数搜索(parametric search),即对答案进行猜测,再验证该猜测值的最优性,将优化问题转化为判定性问题或其他的优化问题。由于分数规划模型的特殊性,使得能够构造另外一个由猜测值 λ 作为自变量的相关问题,且该问题的解满足一定的单调性,或其他的可以减小参数搜索范围的性质①,从而逼近答案。
① 比如 Dinkelbach 算法,每次直接把上次子问题的解向量代入原问题的表达式,算出下一个迭代式的猜测值。详见参考文献 [Dink67],[MSS92] 。
假设 λ0=f(x0) 是最优解,根据定义有
⇒⇒λ0=f(x0)=b(x0)a(x0)λ0⋅b(x0)=a(x0)a(x0)−λ0⋅b(x0)=0
由上面的形式构造一个新函数 g(λ)=x∈Smin[a(x)−λ⋅b(x)]
这个新函数是一个非分式的规划。先来挖掘函数 g(λ) 本身的性质。
1.1.单调性
g(λ) 是一个严格递减函数,即,∀λ1,λ2∈R,λ1<λ2⇔g(λ1)>g(λ2) 。
只需要注意到,在 g(λ1) 中原有的 x 代入 g(λ2) 会得到更小的结果即可。
1.2.Dinkelbach定理②
② 出自参考文献 [Dink67] 。
若 λ0 为原问题的答案,则 λ=λ0⇔g(λ)=0 。
1.2.1.必要性
先证明 λ=λ0⇒g(λ)=0 。
设 λ0=f(x0) ,根据定义有
∀x∈S,λ0=b(x0)a(x0)⇒a(x)−λ0⋅b(x)≤b(x)a(x)≥0
而 x0 恰好取到这个下界 0 ,所以最小值就是 0 ,证毕。
1.2.2.充分性
再证明 g(λ)=0⇒λ=λ0 。
反证法。反设存在一个解 λ′=f(x′) 是更优的解,根据定义有
λ′=b(x′)a(x′)⇒a(x′)−λ⋅b(x′)<λ<0
那么,将 x′ 代入,可以发现 g(λ) 一定是小于零的,与题设矛盾。
1.3.二分查找
仍然设 λ0 为答案,则
⎩⎪⎨⎪⎧g(λ)=0⇔λ=λ0g(λ)<0⇔λ>λ0g(λ)>0⇔λ<λ0
此时便可以进行二分查找了。
2.零一分数规划
分数规划的一个特例是 0-1 分数规划(0-1 fractional programming)③,就是其解向量 x 满足 ∀i,xi∈{0,1} (这就是所谓的 0-1)。形式化定义如下:
③ 0-1 分数规划的相关知识,在参考文献 [MSS92] 中有详细介绍。
x∈Sminf(x)=∑ibixi∑iaixi=b⋅xa⋅x
同样地,必须要满足 ∀x∈S,b⋅x>0 ,且有比较特殊的 S⊆{0,1}n 。
它的应用范围很广,经典例题是 最优比率生成树(the optimum ratio spanning tree)④。
④ 详见参考文献 [LiuH04] ,303-304 页。
3.应用
3.1.网络战争(Network Wars)⑤
⑤ 题目来源:Zhejiang University Online Judge - Andrew Stankevich’s Contest #8 - 2676 Network Wars
题目描述
给出一个带权无向图 G=(V,E) ,每条边 e 有一个权 we 。求将点 s 和点 t 分开的一个边割集 C ,使得该割集的平均边权最小,即最小化:
∣C∣∑e∈Cwe
题目解答
先尝试着用更一般的形式重新叙述本问题。设向量 w 表示边的权值,令向量 c=(1,1,…,1) 表示选边的代价,于是原问题等价为:
x∈S⊆{0,1}∣E∣minf(x)=c⋅xw⋅x
这是一个 0-1 分数规划的形式,构造一个新函数 g(λ)=x∈Smin[(w−λc)⋅x]
即对每条边 ∀e∈E ,进行重赋权:we′=we−λ⋅ce=we−λ 。g(λ) 就是在这个重新赋权的图上,求一个最小容量的 s−t 边割集。请注意一些细节:若 we′<0 ,又由于目标函数是加和取最小的操作,则该边必然是在边割集内。对于剩下的所有边,直接利用最小割模型求出 s−t 割即可。
3.2.最优标号(Optimal Marks)⑥
⑥ 题目来源:Sphere Online Judge - 839 Optimal Marks 作者:Guo Huayang
篇幅太长,今天作者又被虐了,心情不好,暂时搁置。
4.参考文献
本文摘自胡伯涛(Amber)《最小割模型在信息学竞赛中的应用(Applications of Minimum Cut Model in Informatics)》1.6节、2.2节。
-
[MSS92] T. Matsui and Y. Saruwatari and M. Shigeno. An Analysis of Dinkelbach’s Algorithm for 0-1 Fractional Programming Problems. Technical Report METR92-14, Department of Mathematical Engineering and Information Physics, Unversity of Tokyo,1992
-
[Dink67] Werner Dinkelbach. On Nonlinear Fractional Programming. Management Science, Vol. 13, No. 7, Series A, Sciences. (Mar., 1967), pp. 492-498.
-
[LiuH04] 刘汝佳,黄亮《算法艺术与信息学竞赛》,清华大学出版社,2004