网络优化ppt课件.ppt
《网络优化ppt课件.ppt》由会员分享,可在线阅读,更多相关《网络优化ppt课件.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网络优化ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 许多实际问题都可以转化为最小费用流问题 S ST T最小费用流问题的例子公路交通网络:车辆路线确定最短路问题 最小费用流问题 1辆车 多辆车:车流 2定义定义7.1 在流网络在流网络N=(V,A,L,U,D)上增加如下的权函数:上增加如下的权函数:C:A R为弧上的权函数,弧(为弧上的权函数,弧(i,j)对应的权)对应的权 C(i,j)记)记为为cij ,称为弧(,称为弧(i,j)的单位流量的成本
2、或)的单位流量的成本或费用费用(cost);此时网络可称为此时网络可称为容量容量-费用网络费用网络 (一般仍可简称为一般仍可简称为网络网络),),记为记为 N=(V,A,C,L,U,D).7.1.1 7.1.1 最小费用流问题最小费用流问题 di 0:供应点供应点(supply node)(supply node)或源或源(source)(source)、起始点或发货点、起始点或发货点 di 0:需求点需求点(demand node)或汇或汇(sink)、终止点或吸收点终止点或吸收点 di 0:转运点转运点(transshipment node)或平衡点、中间点或平衡点、中间点 可以把可以把L
3、 0的网络转化为的网络转化为L=0的网络进行研究的网络进行研究(思考思考?)除非特别说明除非特别说明,假设假设L=0,网络简记为网络简记为N=(V,A,C,U,D).3定义定义7.2(容量容量-费用网络中的费用网络中的流(flow)的定义同前一章)流x的(总)费用定义为 通常又称为转转运运问问题题(transshipment(transshipment problem)problem)或容容量量受受限限的的转转运问题运问题(capacitated transshipment problem).(capacitated transshipment problem).最小费用流问题就是在网络中寻找
4、总费用最小的可行流.最小费用流问题最小费用流问题引理引理7.17.1 最小费用流问题存在可行流的必要条件 经典的最小费用流问题:单源单汇(起点s,终点t),寻找从s流到t的给定流量(或最大流量、最小流量等)的最小费用流.线性费用网络线性费用网络思考:思考:经典问题与一般问题有什么关系?是否等价?经典问题与一般问题有什么关系?是否等价?4例 7.1 最短路问题在有向网络中,令所有弧上容量下界为0,容量(上界)为1,并令图中节点s的供需量为1,节点t的供需量为-1,则:从从s到到t的一条有向路正好对应于网络中的一个可行流的一条有向路正好对应于网络中的一个可行流x (弧(i,j)位于s-t路上:xi
5、j=1;弧(i,j)不在s-t路上:xij=0).如果再令所有弧上的(单位流量)的费用为“弧长”,则此时的最小费用流问题就是第五章讨论过的最短路问题.在第五章我们正是用这样的方式对最短路问题进行建模的 7.1.2 7.1.2 最小费用流模型的特例及扩展最小费用流模型的特例及扩展 P Ps st t5例-最大流问题 设s为起点,t为终点,增加弧(t,s),令7.1.2 7.1.2 最小费用流模型的特例及扩展最小费用流模型的特例及扩展s st t而令所有其他弧上的费用为0,所有顶点上的供需量(外部流量)全为0.6例-运输问题(transportation Problem)又称Hitchcock问题
6、(Hitchcock,1941年)完全二部图只有源和汇没有中间转运点 ST7.1.2 7.1.2 最小费用流模型的特例及扩展最小费用流模型的特例及扩展如果每条弧上还有容量(上下限)的限制,则称为容容量量受受限限的的运运输问题输问题(capacitated transportation problem)(capacitated transportation problem).有解的必要条件可以不失一般性指派问题(assignment problem)77.1.2 7.1.2 最小费用流模型的特例及扩展最小费用流模型的特例及扩展(1)当一定的流量流过一条弧时,该弧上导致的总费用与流量大小成线性正比
7、正比关系,这样的流网络一般称为线性费用网络线性费用网络.如果当一定的流量流过一条弧时,该弧上导致的总费用不一定与流量大小成线性正比关系,而是流量大小的一个凹(或凸)函数,则这样的网络称为凹凹(或或凸凸)费费用用网网络络,相应的最小费用流问题称为凹(凸)费用网络上的最小费用流问题.(2)当流量流过一条弧时,流出该弧的流量(即流入该弧终点的流量)与进入该弧的流量(即流出该弧起点的流量)相等相等.如果当流量流过一条弧时,流出该弧的流量是进入该弧的流量的一个线线性性函函数数,即流出该弧的流量是对进入该弧的流量按一定比例进行放大或缩小的结果,则这样的流网络一般称为带带增增益益(或盈亏或盈亏)的流网络的流
8、网络(flow with gain network).增益除了可以发生在弧弧上,类似地可以考虑增益发生在节点节点上87.1.2 7.1.2 最小费用流模型的特例及扩展最小费用流模型的特例及扩展 最 小 费 用 流 问 题指 派问 题运 输问 题最大流问题最短路问题带 增 益 的最小费用流问题线性规划问题凹费用网络的最小费用流问题凸费用网络的最小费用流问题狭义模型 广义模型 凸规划 9单源单汇网络单源单汇网络可行流可行流x的的流量流量(或(或流值流值)为)为v=v(x)=ds=-dt如果我们并不给定如果我们并不给定ds 和和dt,则网络一般记为则网络一般记为N=(s,t,V,A,C,U)容量可行
9、且转运点流量守恒的流称为容量可行且转运点流量守恒的流称为s-t可行流可行流,有时为了方,有时为了方便也称为可行流便也称为可行流.最小费用流问题就是在网络最小费用流问题就是在网络N=(s,t,V,A,C,U)中计算流值为中计算流值为v的的最小费用流最小费用流x 或者当不给定流值时或者当不给定流值时,计算流值最大的最小费用流计算流值最大的最小费用流x(此时流此时流x称为称为最小费用最大流最小费用最大流).7.2 消圈算法与最小费用路算法消圈算法与最小费用路算法 最小费用最小流最小费用最小流?107.2 消圈算法与最小费用路算法消圈算法与最小费用路算法 定定义义7.3 对对网网络络N=(s,t,V,
10、A,C,U)中中给给定定的的s-t可可行行流流x,网网络络N关关于于流流x的的残残量量网网络络N(x)=(s,t,V,A(x),C(x),U(x),其其中中A(x),C(x),U(x)定义如下:定义如下:(residual network,或增量网络或辅助网络,或增量网络或辅助网络)讨论算法复杂度时,假定讨论算法复杂度时,假定:弧(弧(i,j)A时,弧(时,弧(j,i)A;c ij=-cjiA(x)=A(允许容量为允许容量为0的弧仍然保留在网络中就可以了的弧仍然保留在网络中就可以了)其中称其中称,uij(x)为弧为弧(i,j)上的上的残留容量残留容量(residual capacity).11
11、定义W的费用为 对于N(x)中的任何一个有向圈W,它一定对应于原网络N中的一个增广圈(增广弧构成的圈);通过沿W对当前流x进行增广,可以获得流值相等的s-t可行流y.消圈算法的思想消圈算法的思想则当增广的流量为则当增广的流量为 时时 只要N中存在费用为负数的增广圈W,即C(W)0,则可以通过沿W 对当前流 x 进行增广,获得流值相等但费用更小的s-t可行流y.12 设设x0为不同于的可行流,但费用低于为不同于的可行流,但费用低于x的费用,即的费用,即 7.2.1 7.2.1 消圈算法消圈算法(cycle-canceling algorithm)(cycle-canceling algorith
12、m)定定理理7.1 7.1 可可行行流流x为为最最小小费费用用流流的的充充要要条条件件是是N(x)中中不不存存在在负负费费用增广圈用增广圈.令令 x1=x0-x,则则 ,即令,即令x1为网络为网络N中的循环流中的循环流.一一个个循循环环流流一一定定可可以以表表示示为为至至多多m个个非非零零圈圈流流之之和和,所所以以可可以以将将x1表表示示为为r个个非零圈流之和(非零圈流之和()。设对应的有向圈为)。设对应的有向圈为Wk,至至少少存存在在一一个个费费用用为为负的增广圈负的增广圈.矛盾矛盾 必要性是显然的必要性是显然的.反证法证明充分性:反证法证明充分性:13N(x)中找负圈可用最短路算法中找负圈
13、可用最短路算法(如如Bellman-Ford算法,算法,O(m n)则该算法的复杂度为则该算法的复杂度为O(n m 2CU),不是多项式时间算法不是多项式时间算法.STEP 2.沿找到的负圈增广流量沿找到的负圈增广流量,转转STEP 1.Step0Step0可借用最大流算法可借用最大流算法,复杂度为复杂度为O(n2m)STEP 0.在网络在网络N=(s,t,V,A,C,U)中计算流值为中计算流值为v的可行流的可行流 x.7.2.1 7.2.1 消圈算法消圈算法:Klein(1967):Klein(1967)等等 STEP 1.在在残残量量网网络络N(x)中中判判别别负负圈圈.若若无无负负圈圈,
14、则则已已经经找找到到了了最小费用流,结束;否则转最小费用流,结束;否则转STEP 2.如按一些特定次序消圈如按一些特定次序消圈,可得到一些多项式时间算法可得到一些多项式时间算法 复杂度?复杂度?v任何可行流的费用不可能超过任何可行流的费用不可能超过mCUv设数据是整数设数据是整数,每次消去一个负圈至少使费用下降一个单位每次消去一个负圈至少使费用下降一个单位v设数据是整数设数据是整数,消去负圈的消去负圈的STEP12最多执行最多执行O(mCU)次次14略略 7.2.1 7.2.1 消圈算法消圈算法,例:例:15能能否否首首先先在在网网络络N=(s,t,V,A,C,U)中中计计算算流流值值为为v且
15、且费费用用最最小小的的s-t可行流可行流(v v),然后对它沿增广路增广以增加流值呢,然后对它沿增广路增广以增加流值呢?7.2.2 7.2.2 最小最小费费用路算法用路算法 为为了了获获得得最最小小费费用用流流,我我们们希希望望沿沿费费用用最最小小的的增增广广路路对对当当前前流流x进行增广,以最小的费用增加获得流值更大的进行增广,以最小的费用增加获得流值更大的s-t可行流可行流y 对对于于N(x)中中的的一一条条从从s到到t的的有有向向路路P,它它一一定定对对应应于于原原网网络络N中中的的一一条条增增广广路路,即即可可以以通通过过沿沿P对对当当前前流流x进进行行增增广广,获获得得流流值值更更大
16、的大的s-t可行流可行流y.定义定义P的费用为的费用为 则当增广的流量为则当增广的流量为 时时 167.2.2 7.2.2 最小最小费费用路算法用路算法定定理理7.2 设设x为为流流值值为为v的的最最小小费费用用流流,P为为关关于于x的的从从s到到t的的一一条条最最小小费费用用增增广广路路,且且沿沿P所所能能增增广广的的流流量量为为 ,则则增增广广后后得得到到流流值为值为v+的最小费用流的最小费用流y y.只需证明网络中不存在关于只需证明网络中不存在关于y y的负费用增广圈的负费用增广圈.用反证法用反证法 假设增广后存在关于假设增广后存在关于y的负费用增广圈的负费用增广圈W.由于除由于除P以外
17、的弧及其流量在增广前以外的弧及其流量在增广前后没有发生改变后没有发生改变,于是于是P和和W至少有一条公共弧至少有一条公共弧.不妨假设不妨假设P和和W只有一条公只有一条公共弧共弧,记为记为(i,j)如果如果(i,j)在在P中是正向弧中是正向弧,则在则在W中是反向弧中是反向弧;反之反之,如果如果(i,j)在在P中是中是反向弧反向弧,则在则在W中是正向弧中是正向弧 也是网也是网络中关于络中关于x x的增广路的增广路,且且 t tP PW Ws si ij j177.2.2 7.2.2 最小最小费费用路算法用路算法也称为连续最短路算法也称为连续最短路算法,即即Successive Shortest P
18、ath Algorithm),Jewell(1958),Iri(1960),Busacker&Gowen(1961)独立提出的独立提出的STEP 0.取取x为任一为任一s-t可行流、且在同一流值的流中费用最小的可行流、且在同一流值的流中费用最小的流流(如如x=0).STEP 1.若若x的流值达到的流值达到v,结束;否则在残量网络结束;否则在残量网络N(x)中判别最中判别最小费用路小费用路.若无这样的路若无这样的路,则流值不可达到则流值不可达到v,结束;否则结束;否则STEP 2.STEP 2.沿该最小费用增广路增广流量沿该最小费用增广路增广流量(增广后的流值不超过增广后的流值不超过v),转转S
19、TEP 1.STEP1可用最短路算法:记最短路算法的复杂度为可用最短路算法:记最短路算法的复杂度为S(n,m,C)STEP12最多执行最多执行O(v)次次 复杂度?复杂度?最大流流值不超过最大流流值不超过nU,本算法复杂度为,本算法复杂度为 O(nU S(n,m,C)采用特定的变尺度技术采用特定的变尺度技术,可以得到一些多项式时间算法可以得到一些多项式时间算法 18略略 7.2.2 7.2.2 最小最小费费用路算法用路算法,例:例:19 7.3.1 7.3.1对偶问题及互补松弛条件对偶问题及互补松弛条件 仍然考虑传统的单源单汇网络的最小费用流问题仍然考虑传统的单源单汇网络的最小费用流问题 两类
20、约束分别引入对偶变量两类约束分别引入对偶变量 和和z,则这一问题的对偶问题为则这一问题的对偶问题为 7.3 7.3 原始原始-对偶算法对偶算法 20互补松弛条件互补松弛条件 设设x和和(,z)分别为原问题和对偶问题的可行解:分别为原问题和对偶问题的可行解:下面我们说明在一定的下面我们说明在一定的“约定约定”下下,这一条件可以等价地写成这一条件可以等价地写成当当 时时,=0;(7.19)当当 时,时,=;(7.20)当当 时,时,.(7.21)约约定定:存存在在对对偶偶可可行行的的变量变量z z,使得上式成立,使得上式成立.定定理理7.3 设设x为为原原问问题题的的可可行行解解,则则x为为最最小
21、小费费用用流流的的充充要要条条件件是是:存在节点的势(存在节点的势(),满足条件满足条件(7.19)(7.21).7.3.17.3.1对偶问题及互补松弛条件对偶问题及互补松弛条件记记“相对费用相对费用”(Reduced Reduced CostCost)217.3.17.3.1对偶问题及互补松弛条件对偶问题及互补松弛条件 引引理理7.2 最最优优性性条条件件(7.19)(7.21)等等价价于于,对对于于N(x)中中任任意的意的(i,j)弧弧,0 假设假设(7.19)(7.21)成立成立,则对于原网络中的一条弧则对于原网络中的一条弧(i,j),当当 0,所以所以 =-()=-0,因此因此(j,i
22、)弧不属于残量网络弧不属于残量网络N(x).所以所以 =0.当当 时,即时,即 0 时时,=0;(7.19)当当 0 时时,=;(7.23)当当 0 时时,=;(7.23)当当 0 时,时,=;(7.24)当当 时,时,=0 =0.(7.25)39 -残量网络残量网络7.4瑕疵算法 当当xijuij 时时,则则(j,i)N(x),uji(x)=xij-uij,cji(x)=-cij.瑕疵算法仍然是在残量网络上对弧上的流量进行操作瑕疵算法仍然是在残量网络上对弧上的流量进行操作;由于流不一定满足容量约束由于流不一定满足容量约束,需定义这时残量网络的构造方法需定义这时残量网络的构造方法:把把原原网网
23、络络中中可可能能增增加加流流量量的的弧弧(前前向向弧弧)、减减少少流流量量的的弧弧(反反向向弧弧)纳入残量网络纳入残量网络.具体具体方法如下方法如下:瑕疵算法的思想:瑕疵算法的思想:在算法过程中使弧上的在算法过程中使弧上的Kilter数不断下降数不断下降,最后降为最后降为0.当当 时时:如如果果xijlij,则则(j,i)N(x),uji(x)=xij-lij,cji(x)=-cij.40 -残量网络残量网络7.4瑕疵算法 可以直接定义弧可以直接定义弧(i,j)N(x)的的KilterKilter数,分三种情况讨论数,分三种情况讨论:可可知知:原原网网络络中中的的任任何何一一条条瑕瑕疵疵弧弧一
24、一定定会会在在残残量量网网络络中中得得到到反反映映(即瑕疵弧不以前向弧的形式出现即瑕疵弧不以前向弧的形式出现,就以反向弧的形式出现就以反向弧的形式出现).).当当 时时:如如果果(i,j)是是瑕瑕疵疵弧弧(0),则则其其Kilter数数必必然然等等于于(i,j)的残留容量的残留容量:kij=uij(x)当当xijlij时时:如果如果 0,则则kij=uij(x)=lij-xij;如果如果 uji 时时:如如果果 0(即即 0),则则kij=xji-lji;如如果果 0(即即 0),则则kij=uij(x)=xji-uji.41 -步骤步骤7.4瑕疵算法 STEP 0.STEP 0.给出初始势和
25、初始循环流给出初始势和初始循环流(如如=0,=0,x=0).=0).Yakovleva(1959),Minty(1960),Fulkerson(1961)Yakovleva(1959),Minty(1960),Fulkerson(1961)等提出等提出;AashtianiAashtiani和和Magnanti(1976)Magnanti(1976)给出一种高效率的实现方法给出一种高效率的实现方法.STEP 1.计计算算弧弧上上的的Kilter数数.若若网网络络中中不不存存在在瑕瑕疵疵弧弧,则则已已经经得得到到最最优优解解,计计算算结结束束;否否则则在在残残量量网网络络N(x)中中,选选择择一一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 优化 ppt 课件
限制150内