『运筹OR帷幄』转载

文章作者:休语

编者按:本文整理自休语的知乎文章,文章主要围绕最小流问题进行阐述,结构主要为问题描述,模型建立,解的性质,特殊案例及网络单纯形法的求解。

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(1)

问题描述

(1)网络:有向且连通。

(2)边:根据边上的流量,我们可以分为

(3)节点:至少有一个(可以有多个)节点是供应点(supply node)或者需求点(demand node)

(4)其他:

(5)目标:给定需求,通过网络发送的总成本最小。

输入整个网络的流量是不变的,但是中间节点可以看成是处理设施,处理的费用累加在边的运输费用上。

模型建立

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(2)

解的性质

因为cost

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(3)

不在约束里面,所以所有BF解都是整数解只要求约束中出现的两类量为整数,即

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(4)

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(5)

为整数。

特殊案例

以下四个问题是特殊的最小费用流问题

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(6)

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(7)

具体案例

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(8)

前面我们已经对最小流费用问题做了简单的叙述,对于这类问题到底如何解,下面我们对一种经典解法进行描述,即网络单纯性法。

基础:上界法(Upper Bound Technique)

在运筹学建模中,我们经常有约束

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(9)

。通常地,把该约束当做非负约束(nonnegative constraints)处理,会比当成函数式约束(functional constraints)处理节省计算量。我们可以做如下替换:

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(10)

经过上述处理后,单纯形法中出基条件则变为了超出上界或者下界。当入基变量不断增大以至于某个

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(11)

达到上界

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(12)

时,用

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(13)

替换。

那么上界法和最小费用流问题有什么联系呢?最小费用流问题中的约束通常分有两种:节点约束和边约束。节点约束是函数式约束,通常可以表示为

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(14)

,边约束表示为

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(15)

。我们可以用上界法对约束进行转换,提高计算效率。

网络单纯形法——上界法转换

网络单纯形状法和上界法的思路类似。对于

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(16)

这样的增补决策变量(complementary decision variables)有一个很好的解释,如下图所示。

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(17)

如下公式所示,

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(18)

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(19)

的变化其实就是上界法中把

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(20)

代入到

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(21)

,导致等式右侧

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(22)

的变化。

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(23)

最终网络流如下图所示:

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(24)

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(25)

是从i到j能够减少的流量,

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(26)

是表示每减少单位流量,就能节省

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(27)

的成本,

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(28)

的上界

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(29)

,是因为最多只能减少10(

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(30)

流量分配了10)。

如上所述,只适用于有上界约束的情况,对于边上的流量没有上界约束的情况来说没有必要。

网络单纯形法——求解

对一个网络图来说,找到一个生成树就是找到了一组基解。

将非基变量置为0,可以解出每条弧上的流量,满足

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(31)

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(32)

的生成树就是可行生成树,对应基可行解。

网络单纯形法计算示例:

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(33)

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(34)

入基变量的选择

那么在求解中,哪个非基变量从0开始增加,会使得目标函数Z增加得最快?且在网络单纯形法中,每增加一个非基变量(一个arc),会形成一个环。环中同向arc增大,反向arc减小。如下图所示:

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(35)

对这个变化,求一个整体的变化量

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(36)

。对于每个可以加入的arc,找到这样的一个环,假设入基arc增加的流量为

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(37)

,看整体的

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(38)

是多少。其中能够增加单位流量,

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(39)

下降最大的非基变量(arc)是我们需要选择的。

迭代选择出基变量和下一个可行解。注意,根据上界法,当某一条arc达到上界时,通过

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(40)

代换得到反向arc,这样

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(41)

,正常出基。

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(42)

神经网络的最优权重怎么计算(优化基于网络单纯形法求解的最小流费用问题)(43)

原文链接

https://zhuanlan.zhihu.com/p/73401547

https://zhuanlan.zhihu.com/p/73527137

,