目录
一、非线性规划
1.无约束问题
2.约束极值问题
二、动态规划
1.动态规划的基本概念
2.动态规划的模型
3.动态规划的最优性原理和最优性定理
4.动态规划的基本方法
三、图与网络规划
1.图的基本概念
2.最短路径问题
3.最长路径问题
4*.第k短路径问题
5.最小生成树
6*.中国邮路问题
7.运输网络
8.最大流
9.最小代价流问题
四、网络计划技术
1.网络计划图
2.网络计划的优化
3.非肯定型PERT网络
五、排队论
1.泊松过程、生灭过程和负指数分布
2.一般排队系统结构
3.泊松输入、负指数分布的排队模型
4.一般服务分布M/G/1排队模型
(1)基本概念
①非线性规划问题的数学模型
非线性规划的数学模型常表示成以下形式
其中自变量是n维欧式空间中的向量(点);为目标函数,和为约束条件。
②极值问题
非线性规划有时求出的某个解是一部分可行域上的极值点,但却并不一定是整个可行域上的全局最优解。现说明极值点存在的必要条件和充分条件。
【定理(必要条件)】设是n维欧式空间上的某一开集,在上有一阶连续偏导数,且在点取得局部极值,则必有
或
上式中
为函数在点处的梯度。
【定理(充分条件)】设是n维欧式空间上的某一开集,在上具有二阶连续偏导数,,若,且对任何非零向量有
则为的严格局部极小点。
此处为在点处的海塞(Hesse)矩阵
③凸函数与凹函数
i.什么是凸函数和凹函数
设为定义在n维欧式空间中凸集上的函数,若对任何实数以及中的任意两点和,恒有
则称为定义在上的凸函数。
若对任意和恒有
则称为定义在上的严格凸函数。
将上述两式中的不等号反向,即可得到凹函数和严格凹函数的定义。显然,若函数是凸函数(严格凸函数),则一定是凹函数(严格凹函数)。
ii.凸函数的性质
【性质1】设为定义在凸集上的凸函数,则对任意实数,函数也是定义在上的凸函数。
【性质2】设和为定义在凸集上的两个凸函数,则其和仍为定义在上的凸函数。
【性质3】设为定义在凸集上的凸函数,则对任一实数,集合
是凸集(称为水平集)。
iii.函数凸性的判定
【定理(一阶条件)】设为n维欧式空间上的开凸集,在上具有一阶连续偏导数,则为上的凸函数的充要条件是,对任意两个不同点和,恒有
【定理(二阶条件)】设为n维欧式空间上的某一开凸集,在上具有二阶连续偏导数,则为上的凸函数的充要条件是:的海塞矩阵在上处处半正定。
iv.凸函数的极值
【定理】若为定义在凸集上的凸函数,则它的任一极小值就是它在上的最小点(全局极小点),而且它的极小点形成一个凸集。
【定理】设是定义在凸集上的可微凸函数,若存在点,使得对于所有的有
则是在上的最小点(全局极小点)。
④凸规划
考虑非线性规划
假定其中为凸函数,为凹函数(或者说为凸函数),这样的非线性规划称为凸规划。
上述凸规划的可行域为凸集,其局部最优解即为全局最优解,而且其最优解的集合形成一个凸集。当凸规划的目标函数为严格凸函数时,其最优解必定唯一(假定最优解存在)。由此可见,凸规划是一类比较简单而又具有重要理论意义的非线性规划。
由于线性函数既可视为凸函数,又可视为凹函数,故线性规划也属于凸规划。
⑤下降迭代算法
迭代法的基本思想是:为了求函数的最优解,首先给定一个初始估计,然后按某种规则(即算法)找出比更好的解(对极小化问题,;对极大化问题,),再按此种规则找出比更好的解……。如此即可得到一个解的序列。若这个解序列有极限,即
则称它收敛于。
若由某算法所产生的解的序列使目标函数值逐步减少,就称这算法为下降算法。
下降迭代算法的步骤可总结如下:
在以上步骤中选取搜索方向是最关键的一步,有关各种算法的区分,主要在于确定搜索方向的方法不同。
确定步长可选用不同的方法。最简单的一种是令它等于某一常数,这样做计算简便,但不能保证使目标函数值下降。第二种称为可接受点算法,只要能使目标函数值下降,可取任意步长。第三种方法是基于搜索方向使目标函数值下降最多,即沿射线求目标函数的极小(注意,这里是指无约束问题)
由于这项工作是求以为变量的一元函数的极小点,故常称这一过程为(最优)一维搜索或线搜索,这样确定的步长为最佳步长。
一维搜索有个十分重要的性质:在搜索方向上所得最优点处目标函数的梯度和该搜索方向正交。
【定理】设目标函数具有一阶连续偏导数,按下述规则产生
对一个好的算法,不仅要求它产生的点列能收敛到问题的最优解,还要求具有较快的收敛速度。设序列收敛于,若存在与迭代次数k无关的数和,使k从某个开始都有
成立,就称收敛的阶为,或阶收敛。
当时,称为二阶收敛,也可说具有二阶敛速。
当时,称超线性收敛。
当且时,称线性收敛或一阶收敛。
若一个算法具有超线性或更高的收敛速度,就认为它是一个很好的算法。
因为真正的最优解事先不知道,为决定什么时候停止计算,只能根据相继两次迭代的结果。常用的终止计算准则有以下几种:
i.根据相继两次迭代的绝对误差
ii.根据相继两次迭代的相对误差
这时要求分母不等于和不接近于零。
iii.根据目标函数梯度的模足够小
其中,为事先给定的足够小的正数。
(2)一维搜索
当用上述迭代法求函数的极小点时,常常要用到一维搜索,即沿某一已知方向求目标函数的极小点。一维搜索的方法很多,常用的有:
①斐波那契法(分数法)
设是区间上的下单峰函数,在此区间内它有唯一极小点。若在此区间内任取两点和,,并计算函数值和,可能出现以下两种情形:
如果用表示计算n个函数值能缩短为单位区间的最大原区间长度,显然
序列可写成一个递推公式
这些就是通常所说的斐波那契数。
计算n次函数值所能获得的最大缩短率(缩短后的区间长度与原区间长度之比)为。现在,想要计算n个函数值,而把区间的长度缩短为原来长度的倍,即缩短后的区间长度为
则只要n足够大,能使下式成立即可
其中,为一个正小数,称为区间缩短的相对精度。有时给出区间缩短的绝对精度,即要求
显然,上述相对精度和绝对精度之间有如下关系
用这个方法缩短的区间的步骤如下:
i.确定试点的个数n。根据相对精度,即可计算出,然后由下表确定最小的n。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 | 233 |
ii.选取前两个试点的位置
由序列的递推公式可知第一次缩短时的两个试点位置分别是
它们在区间内的位置是对称的。
iii.计算函数值和,并比较它们的大小。
若,则取
并令
否则,取
并令
iv.计算或(其中的一个已经算出),如第3步那样一步步迭代。计算试点的一般公式为
其中,。
v.当进行至时
这就无法借比较函数值和的大小以确定最终区间,为此,取
其中为任意小的数。在和这两点中,以函数值较小者为近似极小点,相应的函数值为近似极小值,并得到最终区间或。
②0.618法(黄金分割法)
现用不变的区间缩短率0.618,代替斐波那契法每次不同的缩短率,就得到了黄金分割法(0.618法)。这个方法可以看成是斐波那契法的近似,实现起来比较容易,效果也相当好,因而易于为人们接受。
当用0.618方法时,计算n个试点的函数值可以把原区间连续缩短n-1次,因为每次的缩短率均为,故最后的区间长度为
当已知缩短的相对精度为时,可用下式计算试点个数n
当然,也可以不预先计算试点的数目n,而在计算过程中逐次加以判断,看是否已满足了提出的精度要求。
0.618法是一种等速对称进行试探的方法,每次的试点均取在区间长度的0.618倍和0.382倍处。
(3)无约束极值问题的解法
无约束极值问题可表述为
在求解上述问题时常使用迭代法,迭代法可大体分为两类。一类要用到函数的一阶导数(或)二阶导数,由于函数的解析性质,故称为解析法;另一类在迭代过程中仅用到函数值,而不要求函数的解析性质,这类方法称为直接法。
①梯度法(最速下降法)
假定无约束极值问题中的目标函数有一阶连续偏导数,具有极小点。以表示极小点的第次近似,为了求其第次近似点,在点沿方向作射线
称方向
为负梯度方向,它是使函数值下降最快的方向(在的某一小范围内)。
用梯度法解无约束极值问题的步骤简要总结如下:
i.给定初始近似点及精度,若,则即为近似极小点。
ii.若,求步长,并计算
求步长可用一维搜索法、微分法或试错法。若求最佳步长,则应使用前两种方法。
iii.一般的,设已迭代到点,若,则即为所求的近似解;若,则求步长,并确定下一个近似点
如此继续,直至达到要求的精度为止。
②共轭梯度法
设和是n维欧式空间中的两个向量,若有
就称和正交。再设为n×n对称正定阵,如果和正交,即有
则称和关于共轭,或和为共轭(正交)。
一般地,设为n×n对称正定阵,若非零向量组满足条件
则称该向量组为共轭。如果(单位阵),则上述条件即为通常的正交条件。
【定理】设为n×n对称正定阵,为共轭的非零向量,则这一组向量线性独立。
【定理】设向量为共轭,则从任一点出发,相继以为搜索方向的下述算法
经n次一维搜索收敛于无约束极值问题(为n×n对称正定阵,,为常数)的极小点。
共轭梯度法的计算步骤如下:
i.选择初始近似,给出允许误差。
ii.计算
并算出
计算步长也可使用以前介绍的一维搜索法。
iii.一般地,假定已得出和,则可计算其第次近似
iv.若,停止计算,即为要求的近似解。否则,若,则计算和,
并转向第3步。
可将共轭梯度法推广到求解一般无约束极值问题。一般有
就是推广到非二次函数的共轭梯度法的计算公式。
③变尺度法
假定无约束问题的目标函数具有二阶连续偏导数,为其极小点的某一个近似。取为搜索方向,即
按照这种方式求函数的极小点的方法,称作广义牛顿法。上式确定的搜索方向,为在点的牛顿方向。
对于非二次函数,仿照二次函数的情形,要求其海塞矩阵的逆阵的第次近似矩阵满足关系式
此式就是拟牛顿条件。
变尺度法的计算步骤如下:
i.给定初始点梯度允许误差
ii.若
则即为近似极小点,停止迭代。否则,转向下一步。
iii.令
(单位阵)
在方向进行一维搜索,确定最佳步长
如此可得下一个近似点
iv.一般地,设已得到近似点,算出,若
则即为所求的近似解,停止迭代;否则,计算,
并令
在方向进行一维搜索,确定最佳步长
其下一个近似点为
v.若点满足精度要求,则即为所求的近似解。否则,转回第iv步,直到求出某点满足精度要求为止。
④步长加速法
用模矢法求解无约束极值问题的计算步骤如下:
i.任选初始近似点,以它为初始基点进行探索。
ii.为每一独立变量选定步长
上式中为第个分量是,而其他所有分量均为零的向量。
iii.算出初始基点的目标函数值,考虑点,若,就以为临时矢点,并记为。这里的第一个下标表示现在是在建立第一个模矢,第二个下标表示变量已被摄动。若不比点好,就试验,如果它比点好,就以它为临时矢点,否则,以为临时矢点。即
对于下一个独立变量进行类似的摄动,这时,用临时矢点代替原来的基点。一般地
上式中,。
n个变量都摄动之后,得临时矢点,并令
原来的基点和新基点确定了第一个模矢。
iv.将第一个模矢延长一倍,得第二个模矢的初始临时矢点
v.在附近进行和上面类似的探索,建立临时矢点,以为第三个基点。这样,就确立了第二个模矢。第三个模矢的初始临时矢点为
注意,在进行如上探索时,若在一个方向上重复见效,就会使模矢增长,
vi.继续上述过程。对于第个模矢,如果
但沿各坐标方向的所有摄动均得不出比更好的点,则以为,而且不把这个模矢延长。
若,且由产生不出比更好的点,则应退回到,并在附近进行探索。如能得出新的下降点,即可引出新的模矢;否则,将步长缩小,以进行更精细的探查。当步长缩小到要求的精度时,即可停止迭代。
带有约束条件的极值问题称为约束极值问题,也叫规划问题。非线性规划的一般形式为
(1)最优性条件
考虑上述一般非线性规划,假定和具有一阶连续偏导数。
【定理】设是非线性规划的一个局部极小点,目标函数在处可微,而且
则在点不存在可行下降方向,从而不存在向量同时满足:
假定是非线性规划的极小点,该点可能位于可行域的内部,也可能处于可行域的边界上。若是前者,这事实上是个无约束问题,必满足条件;若是后者,情况较为复杂。
设位于第个约束条件形成的可行域边界上,即第个约束条件是点的起作用约束()。若是极小点,则必与在一条直线上且方向相反,因此,存在实数,使
以此类推,可以得到
为了把不起作用约束也包括进式中,增加条件
当时,可不为零;当时,必有。如此即可得到著名的库恩—塔克(简写为K-T)条件。
库恩—塔克条件是确定某点为最优点的必要条件。但一般说它并不是充分条件,因而满足这个条件的点也不一定就是最优点(对于凸规划,它既是最优点存在的必要条件,同时也是充分条件)。
设是非线性规划式的极小点,而且在点的各起作用约束的梯度线性无关,则存在向量,使下述条件成立:
上述条件式常简称为K-T条件。满足这个条件的点(它当然也满足非线性规划的所有约束条件)称为库恩—塔克点(或K-T点)。
(2)二次规划
若某非线性规划的目标函数为自变量的二次函数,约束条件又全是线性的,就称这种规划为二次规划。二次规划的数学模型可表述如下:
如果上式中的二次型正定(或半正定),则目标函数为严格凸函数(或凸函数);此外,二次规划的可行域为凸集,因而,上述规划属于凸规划(在极大值问题中,如果上述二次型为负定或半负定,则也属于凸规划)。凸规划的局部极值即为全局极值。对于这种问题来说,库恩—塔克条件不但是极值点存在的必要条件,而且是充分条件。
将库恩—塔克条件应用于二次规划式,并用代替库恩—塔克条件中的,即可得到如下线性规划问题
该线性规划尚应满足
这相当于说,不能使和(对每一个)同时为基变量。解上述线性规划,若得到最优解
则就是原二次规划问题的最优解。
(3)可行方向法
设点的起作用约束集非空,为求点的可行下降方向,可由下述不等式组确定向量
这等价于由下面的不等式组求向量和实数
现使和(对所有)的最大值极小化(必须同时限制向量的模),即可将上述选取搜索方向的工作,转换为求解下述线性规划问题
式中为向量的分量。在上式中加入最后一个限制条件,为的是使该线性规划有有限最优解;由于我们的目的在于寻找搜索方向,只需知道的各分量的相对大小即可。
将上述线性规划的最优解记为,如果求出的,说明求出的点不存在可行下降方向,在(此处)线性无关的条件下,为一K-T点。若解出的,则得到可行下降方向,这就是我们所要的搜索方向。
上述可行方向法的迭代步骤如下:
①确定允许误差和,选初始近似点,并令。
②确定起作用的约束指标集
i.若,而且,停止迭代,得点。
ii.若,但,则取搜索方向,然后转向第⑤步。
iii.若,转向下一步
③求解线性规划
设它的最优解是。
④检验是否满足
若满足则停止迭代,得到点;否则,以为搜索方向,并转下一步。
⑤解下述一维极值问题
此处
⑥令
转回第②步
(4)制约函数法
非线性规划问题的制约函数法可将非线性规划问题的求解转化为求解一系列无约束极值问题,因而也称这种方法为序列无约束极小化技术,简记为SUMT(sequential unconstrained minimization technique)。常用的制约函数基本上有两类:一是惩罚函数(penalty function);一为障碍函数(barrier function),对应于这两种函数,SUMT有外点法和内点法。
①外点法
考虑非线性规划问题,为求其最优解,构造一个函数
现把视为,则有
再构造函数
现将非线性规划问题求解转化为求解无约束问题
但是,用上述方法构造的函数在处不连续,更没有导数,为此,将该函数修改为
修改后的函数,当时导数等于零,而且和对任意都连续。
取一个充分大的数,将改为
或等价于
从而可使的解为原问题的极小解或近似极小解。若求得的,则它必定是原问题的极小解。
外点法的迭代步骤如下:
i.取,允许误差,并令。
ii.求无约束极值问题的最优解:
式中
iii.若对某一个有
则取,令,并转向第ii步。否则,停止迭代,得
外点法的一个重要特点,就是函数是在整个空间内进行优化,初始点可任意选择,这给计算带来了很大的方便。而且外点法也可用于非凸规划的最优化。外点法不只适用于含有不等式约束条件的非线性规划问题,对于等式约束条件或同时含有等式和不等式约束条件的问题也同样适用。
②内点法
如果要求每次迭代得到的近似解都在可行域内,以便观察目标函数值的变化情况;或者,在可行域外的性质比较复杂,甚至没有定义,这时就无法使用外点法。
仿照外点法,通过函数叠加的办法来改造原目标函数,使得改造后的目标函数(称为障碍函数)具有这样的性质:在可行域的内部与其边界面较远的地方,障碍函数与原来的目标函数尽可能相近;而在接近的边界面时可以有任意大的值。
因此,可将非线性规划转化为下述一系列无约束性质的极小化问题
其中
或
易见,在的边界上(即至少有一个),为正无穷大。
内点法的迭代步骤如下:
i.取,允许误差。
ii.找出一可行内点,并令。
iii.构造障碍函数,障碍项可采用倒数函数
也可采用对数函数
iv.以为初始点,对障碍函数进行无约束极小化(在内):
v.检验是否满足收敛准则
或
如满足上述准则,则以为原问题的近似极小解;否则,取,令,转向第iii步继续进行迭代。
另外,根据情况,收敛准则也可采用不同的形式。
在多阶段决策问题中,各阶段采取的决策,一般来说是与时间有关的。决策依赖于当前的状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的。因此,把处理问题的方法称为动态规划法。但是,一些与时间没有关系的静态规划(如线性规划、非线性规划等)问题,只要人为地引进“时间”因素,也可把它视为多阶段决策问题,用动态规划方法去处理。
(1)阶段
把所给问题的过程,恰当地分成若干个相互联系的阶段,以便能按一定的次序去求解。描述阶段的变量称为阶段变量,常用表示。阶段的划分,一般是根据时间和空间的自然特征来划分。
(2)状态
状态表示每个阶段开始所处的自然状况或客观条件,它描述了研究问题过程的状况,又称不可控因素。描述过程状态的变量称为状态变量,用表示。可用一个数、一组数或意向量来描述。取值的全体记作,称作第阶段的状态集合。
状态的定义在动态规划中往往是最重要的概念。它必须具备3个特征:
①描述性。各阶段状态的演变能描述决策过程。
②无后效性。如果第阶段状态给定,则在这阶段以后过程的发展不受这阶段以前各阶段状态的影响。
③可知性。各阶段状态变量的取值,直接或间接是可知的。
(3)决策
决策表示当过程处于某一阶段的某个状态时,可以作出不同的决定(或选择),从而确定下一阶段的状态,这种决定称为决策。描述决策的变量,称为决策变量。它可用一个数、一组数或一向量来描述。常用表示第阶段当状态处于时的决策变量。它是状态变量的函数。常用表示第阶段从状态出发的允许决策集合,显然有。
(4)策略
策略是一个按顺序排列的决策组成的集合。由过程的第阶段开始到终止状态为止的过程,称为问题的后部子过程(或称为子过程)。由每段的决策按顺序排列组成的决策函数序列称为子过程策略,简称子策略,记为。在实际问题中,可供选择的策略有一定的范围,此范围称为允许策略集合,用表示。从允许策略集合中找出达到最优效果的策略称为最优策略。
(5)状态转移方程
状态转移方程是确定过程由一个状态到另一个状态的演变过程。若给定第阶段状态变量的值,如果该段的决策变量一经确定,第阶段的状态变量的值也就完全确定。记为
并称其为状态转移方程。
(6)权函数
在第阶段,当状态取定、决策取定时,该阶段所实现的效益指标称为权函数,以表示。不一定有解析式。
(7)指标函数和最优值函数
用来衡量所实现过程优劣的一种数量指标,称为指标函数。它是定义在全过程和所有后部子过程上确定的数量函数。常用表示,即
对于要构成动态规划模型的指标函数,应具有可分离性,并满足地推关系。即可以表示为的函数,记为
常见的指标函数的形式如下:
①过程和它的任一子过程的指标是它所包含的各阶段的指标的和。即
式中表示第阶段的阶段指标。这时上式可写成
②过程和它的任一子过程的指标是它所包含的各阶段的指标的乘积。即
这时就可写成
指标函数的最优值,称为最优值函数,记为。它表示从第阶段的状态开始到第阶段的终止状态的过程,采取最优策略所得到的指标函数值。即
其中,opt视问题性质可取min或max。
第阶段至第阶段可获得的效益函数为
其中,符号表示加法或乘法运算。
(8)递归方程
称下列方程为递归方程:
其中,符号opt视问题性质可取min或max,同时,当符号取加法运算时,取;当符号取乘法运算时,取。这种递推关系式称为动态规划的基本方程。
动态规划递归方程的建立是基于下述动态规划的最优化原理:
作为整个过程的最优策略具有这样的性质:无论过去的状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。即,最优策略的子策略,构成最优子策略。
(1)动态规划的基本思想归纳
①动态规划方法的关键在于正确地写出基本的递推关系式和恰当的边界条件。要做到这一点,必须先将问题的过程分成几个相互联系的阶段,恰当地选取状态变量和决策变量及定义最优值函数,从而把一个大问题化成一组同类型的子问题,然后逐个求解。即,从边界条件开始,逐段递推寻优,在每一个子问题的求解中,均利用了它前面的子问题的最优化结果,依次进行,最后一个子问题所得的最优解,就是整个问题的最优解。
②在多阶段决策过程中,动态规划方法是既把当前一段和未来各段分开,又把当前效益和未来效益结合起来考虑的一种最优化方法。因此,每段决策的选取是从全局来考虑的,与该段的最优选择答案一般是不同的。
③在求解整个问题的最优策略时,由于初始状态是已知的。而每段的决策都是该段状态的函数,故最优策略所经过的各段状态便可逐次变换得到,从而确定了最优路线。
(2)建立动态规划模型步骤
①划分阶段,并正确地定义各阶段状态变量使之具有描述性、无后效性和可知性3个特性,同时确定状态集合。
②定义决策变量及每阶段的允许决策集合
③确定权函数
④建立状态转移方程
⑤确定指标函数,它应该满足下列性质:
i.是定义在全过程和所有后部子过程上的数量函数。
ii.要具有可分离性,并满足地推关系
iii.函数对于变量要严格单调
⑥建立递归方程
动态规划的最优性原理:“作为整个过程的最优策略具有这样的性质:即无论过去的状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。”即,一个最优策略的子策略总是最优的。
【动态规划的最优性定理】设阶段数为的多阶段决策过程,其阶段编号为。允许策略为最优策略的充要条件是对任意一个和有
式中,它是由给定的初始状态和子策略所确定的段阶段。当是效益函数时,opt取max;当V是损失函数是,opt取min。
【推论】若允许策略是最优策略,则对任意的,它的子策略对于以为起点的到子过程来说,必是最优策略(注意,阶段状态是由和所确定的)。
(1)逆推解法
设已知初始状态为,并假定最优值函数表示第阶段的初始状态为,从阶段到阶段所得到的最大效益。
从第阶段开始,则有
其中是由状态所确定的第阶段的允许决策集合。解此一维极值问题,就得到最优解和最优值,要注意的是,若只有一个决策,则就应写成。
在第阶段有
其中;解此一维极值问题,得到最优解和最优值。
在第阶段,有
其中;解得最优解和最优值。
如此类推,直到第一阶段,有
其中;解得最优解和最优值。
由于初始状态已知,故和是确定的,从而也就可确定,于是和也就可确定。这样,按照上述递推过程相反的顺序推算下去,就可逐步确定出每阶段的决策和效益。
(2)顺推解法
设已知终止状态,并假定最优值函数表示第阶段末的结束状态为,从1阶段到阶段所得到的最大收益。但应注意,这里是在上述状态变量和决策变量的记法不变的情况下考虑的,因而此时的状态变量是上面状态变换的逆变换,记为;从运算而言,即是由和而确定的。顺推解法与逆推解法的符号一样,但含义是不同的,这里的是表示阶段末的结束状态。
从第1阶段开始,有
其中,解得最优解和最优值。若只有一个决策,则就写成。
在第2阶段,有
式中,解得最优解和最优值。
如此类推,直到第阶段,有
其中,解得最优解和最优值。
由于终止状态是已知的,故和是确定的。再按计算过程的相反顺序推算上去,就可逐步确定出每阶段的决策及效益。
(1)无向图
无向图——设是一个有个顶点的非空集合:;是一个有条无向边的集合:,则称和这两个集合组成了一个无向图,记作无向图。中任一条边若连接顶点和,则记为(或),并称与为无向边的两个端点;边与顶点及相关联,顶点与顶点相邻。
平行边——若两条不同的边与具有相同的端点,则称与为的平行边。
简单图——若图无平行边,则称图为简单图。
完备图——若图中任两个顶点之间恰有一条边相关联,则称图为完备图。
子图——设都是图,且,则称图为图的子图,并记为图。
生成子图——若,且,则称图为图的生成子图。
导出子图——设图,非空边集,如果中与中诸边相关联的顶点全体记为,则子图称为图的由导出的子图,记。
链——无向图中一个由顶点和边交错而成的非空有限序列:
且,则称为中的一条连接与的链。在简单图中,链由它的顶点序列确定,所以简单图中的链可用其顶点表示:。若为链中的边,可简写为。链中的边的全体记为。若,且,则称为闭链,当,称为开链。
初等链——若开链中诸顶点皆不相同,则称为一条初等链。
回路——若一个闭链,除了第一个顶点和最后一个顶点相同外,没有相同的顶点和相同的边,则该闭链称为回路。
连通图——若图中任意两顶点和之间存在一条链(称与在内连通),则称图为连通图。否则,称为分离图。
割边——若为连通图,将中边取走后所得图为分离图,则称为图的割边。
次——以点为端点的边的个数称为的次。
【定理】图中,所有的点的次之和是边树的两倍,即
次为奇数的点,称为奇点,否侧称为偶点。
【定理】任一图中,奇点的个数为偶数。
(2)有向图
有向图——设是一个有个顶点的非空集合:;是一个有条有向边的集合:,则称和这两个集合组成了一个有向图,记作有向图。若,为有向边的起点,为有向边的终点,则记。
平行边——不同的有向边与的起点与终点都相同,则称边与为有向图的平行边。
孤立点——中不与中任一条边关联的点称为的孤立点。
简单图——无平行边的有向图称为简单图。
完备图——图中任两个顶点与之间,恰有两条有向边,及,则称该有向图为完备图。
基本图——把有向图的每条边除去定向就得到一个相应的无向图,称为的基本图,称为的定向图。
子图——设和都是有向图,且,则称为的子图,并记为。
导出子图——若,则称有向图为有向图中关于的导出子图。
导出生成子图——若是有向图关于的导出子图,则图称为关于的导出生成子图,记为。
同构图——如果有向图和有向图的顶点集合和以及边集和之间在保持关联性质的条件下一一对应,则称图和为同构图。
链——若是有向图的基本图中的一条链,则就称为的一条链。
初等链——若是有向图的基本图中的一条初等链,则就称为的一条初等链。
路——若是有向图的基本图中的一条链,且有,则称为的至的单向路,简称为路。
路径——若有向图的路中每个顶点都不相同,则称为的至的单向路径,简称路径,并称可达。
回路——若有向图的单向路径的第一个顶点与最后一个顶点相同,则称为的单向回路,简称回路。
(3)图的矩阵表示
给无向图,其中,若用矩阵的行标号对应图的顶点下标,用列标号对应图的边下标,可构造一个n×m矩阵与图对应,其中
称矩阵为图的关联矩阵,它描写了无向图的顶点与边的关联情况。
若矩阵的行标号和列标号都对应图顶点下标,则可以构造一个n×n矩阵与图对应,其中
连接顶点与的边的数目
并称矩阵为图的邻接矩阵,它描写了图的顶点间的邻接情况。
(4)树
树——无回路且连通的无向图称为树,树中的边称为枝。
生成树——若是无向图的生成子图,且又是树,则称是的生成树。
【定理】作为树的定义,下列定义是等价的:
①连通且无回路;
②无回路且有n-1条边;
③连通且有n-1条边;
④无回路,但不相邻的两个顶点之间连以以便,恰得一个回路;
⑤连通,但去掉 的任一条边, 就不连通;
⑥ 的任两顶点间恰有一条初等链。
根树——给有向图,若顶点至中其他顶点都恰有一条初等链,则称为以为根的根树。
有向树——给有向图,若顶点至中其他顶点都恰有一条路径,则称为以为根的有向树。
假若,现给有向图,设图的每条边都与一个实数对应,称为边的权,图称为赋权图,俗称网络。
若为中至的路径,且有
为中至的路径
则称为中至的最短路径。
(1)狄克斯特拉算法
给有向图,且任,有权,称为非负赋权图。
假若顶点至顶点的最短路径为,其长度记为:
显然,具有性质:的子路及分别为至及至的最短路径。
在运算过程中,算法具有如下特点:
若为至的最短路径,且顶点在上,则上至的子路就作为至的最短路径(尽管中至还可能有其他最短路径)。从而,至各个顶点的最短路径将组成一棵以为根的方向树。
狄克斯特拉算法:
①取
②
若是,则算法终止。
若否,则对,取:
③
若是,则取,转步骤②;
若否,则中到的路径不存在,算法终止。
如果只要知道至的最短路径长度,则当有永久性标号时,算法就可终止。
寻求的逆向追踪法也可如此进行:
在算法进行过程中,每当中的一个顶点的试探性标号时,则顶点就应记录下来。在运算表格中,可以把的下标记录在数值的右下角。若求至的最短路径,由逆向追踪中的紧前顶点,再由逆向追踪中的紧前顶点,直至回溯到顶点,串联起来,即得一条具体的最短路径。
(2*)弗劳德算法
设有向图,若对任,有,则称图为实数赋权有向图。
假定中无负回路(若回路有,则称为负回路),即对中任一回路,有
弗劳德算法是求中任意两个顶点至的最短路径及其长度
给出下列记号:
则和分别为关于和的导出生成子图。令为中至的最短路径,为其长度。于是有
由和定义,可知:
由上述分析中路径的特点及上式可知:
弗劳德算法的具体步骤如下:
①取
②对每一组,成立否?
若是,则;
若否,则。
③对都成立否?
若是,则转步骤④;
若否,则转步骤⑤。
④
若是,则取。由矩阵的信息,应用逆向追踪法求得中至的最短路径,算法终止(若,说明中至不存在路径);
若否,则取,转步骤②。
⑤若,中存在一条含有顶点的负回路,则由的信息,应用逆向追踪法求出此回路,算法终止。
给实数赋权有向图,其中,对任,有。现设中无正回路。即若为的一个回路,则必有。
又不妨设为完备图:若中有平行边,则保留权最大的边;若中不存在顶点至顶点的有向边,则在中增加有向边,且。
若为中至的一条路径,且有
为中至的路径
则称为至的最长路径。
由于中无正回路,则中至的最长路径具有下列性质:
本算法求至顶点的最长路径,其长度记为:
算法采用标号方法。由于迭代过程中标号方法的固有特点,我们时在至的路中寻找至的最长路径。
若在至包含边数不超过的所有的路中,最长路的长度用表示,即
为至的路,
由此定义,下列两式显然成立:
【定理】若对都成立,则至的最长路径长度。
最长路径算法的具体步骤如下:
①取
②为奇数否?
若是,则按的顺序,取
若否,则按的顺序,取
③对都成立否?
若是,则,用逆向追踪法求至的最长路径,算法终止;
若否,则转步骤④。
④
若是,则中存在正回路,算法终止;
若否,则,转步骤②。
算法运行结束,我们用逆向追踪法来求至的最长路径。
先给非负赋权有向图,其中,任,有权。
第短路径——若为顶点至顶点的条路径,,现为顶点至顶点的任一条路径,且,则称为顶点至顶点的第短路径。
偏移——若有路径
其中(特殊情况,),且有,则称为的偏移。
若已取得顶点至顶点的第1至第短路径,作
的部分偏移集合。
若为中边,为中路径,则为将中边取走所得图:而为将中属于的边都取走后所得图。
令
为某一条第短路径的边
求中至的最短路径。显然为中任一路径的偏移。
一般地,令
为某一条第短路径的子路
求中顶点至的最短路径,并将路径与路径相衔接,得路。
若中顶点都不相同,则为中任一路径的偏移,记
自然,对任一,有。
算法的迭代过程可如下进行:
若以求得顶点至的最短路径与的部分偏移集合,记
取:
此时,还未确定的从至的任一路径必为集合中某一路径的偏移,从而有
于是,路径为第2短路径。
从集合中去掉,再作,并取
显然,还未确定过的顶点至的任一路径为中某一条路径的偏移。取
则为中顶点至的第3短路径。从集合中去掉,作集合,取
如此继续迭代下去,直至求得所需要的的顶点至的第短路径。
下面给出至的第短路径算法:
①取一条至的最短路径
②对作。
若,令
为某一条路径中的边
求中顶点至的最短路径,,转步骤④;
若,令
为某一条路径的边
求中顶点至的最短路径,,转步骤③。
③
若是,则转步骤④;
若否,则令
为某一路径中的子路
求中至的最短路径。路径与路径相衔接,得路。中有相同顶点时,,转步骤③;
中顶点都不相同时,,转步骤③。
④
⑤
若是,则算法终止(至的路径搜索完毕)。
若否,则取
转步骤⑥。
⑥
若是,则算法终止,路径为所求第最短路径。
若否,则,转步骤②。
若给连通赋权无向图(不妨设为简单图),其中。
若为的生成树,中边就记为,则树的权
最小生成树——若为的生成树,且有
为的一棵生成树
则称为的最小生成树。
(1)破回路法
破回路法的基本步骤是:任取中一个回路,删除权最大的边(若有两条以上权最大的边,则删除其中任一条边即可)。按此方法反复进行,直至无回路为止。余下的边的集合的导出子图,即为的最小生成树。
(2)克鲁斯卡算法
由定理知,生成树应无回路且边数为n-1。克鲁斯卡算法根据“在无回路的条件下优先选取权小的边”这一原则,从的条边中逐个挑选出条边来。运算过程中,记被挑选的边的集合为。
下面给出克鲁斯卡算法:
①将的条边按权的递增顺序进行排列。现不妨设
取
②的端点与的标号与相等否?
若是,则,转步骤②。
若否,则。
③对中顶点,若,则取
④中边数
若是,则关于的导出子图即为最小生成树,算法终止。
若否,则取,转步骤②。
(1)欧拉环游问题
欧拉链——若无向图为连通图,为的一条链,的每一条边在中恰出现一侧,则称为欧拉链。
欧拉环游——闭的欧拉链称为欧拉环游。
欧拉图——若无向图含有一条欧拉环游,则称图为欧拉图。
顶点阶数——无向图中与顶点关联的边数称为顶点的阶数,记作。若为偶数,则称为偶阶结点;若为奇数,则称为奇阶顶点。
【定理】若无向图有个顶点及条边,则
【定理】任一无向图中奇阶顶点的个数必为偶数。
【定理】⑴连通无向图为欧拉图的充要条件为中无奇阶顶点。
⑵连通无向图含有欧拉开链的充要条件为中奇阶顶点个数为2。
下面给出求欧拉环游的弗鲁瑞算法:
①任取欧拉图中一个顶点
②
若是,则算法终止,即为所求的欧拉环游。
若否,则在中选取的关联边为:除非中仅有一条边与关联,否则总不取的割边为。若,令,转步骤②。
(2)中国邮路问题
“一个邮递员每次送信,从邮局出发,必须至少一次地走过他负责投递的范围的每一条街道,待完成任务后仍回到邮局。问他如何选择一条投递路线,使他所走的路程最短?”
若邮递员管辖的街道图视为无向图,任为街道的长度,则中国邮路问题也就是:
在图中寻找一条闭链,使这条闭链的总长度最短,即
为中一条包含全部边的闭链
若图为欧拉图,则求的欧拉环游即为最佳投递路线。
但是一般情况下,图不是欧拉图,它具有偶数个奇阶顶点。
此时,设为一条包含的全部边的闭链,其中部分边重复出现,作相应的图:
若边在中出现次,则我们就在图中添加条边(称为添加边),且令每条添加边的权和原来边的权相等。于是,没有奇阶顶点,为欧拉图,就是中的欧拉环游。
【定理】若添加边集合为一个可行解,则为最优解的充分必要条件为
下面将求最短投递线路的奇偶点图上作业法归纳如下:
①把的个奇阶顶点分成对,每对顶点间取一条初等链,该条初等链中边的全体取为初始可行解
②中是否有平行边?
若是,则删除偶数条平行边,转步骤③。
若否,则转步骤③。
若是,则即为最优解。在中运用欧拉环游算法求得欧拉环游,即为最短投递线路。
若否,则将在中相应的添加边换成相应的添加边,转步骤③。
(1)运输网络与流
运输网络——给有向图,若对任一边,有相应的一个非负整数,且已取定的两个非空子集及,则称为一个运输网络。中顶点称为的源,中顶点称为的汇,中顶点称为中间顶点,称为边的容量。
设为一个以为定义域、取值为非负整数的函数,又记为以点()为起点的所有有向边(点的输出边)的相应函数值之和,为以点为终点的所有有向边(点的输入边)的相应函数值之和。
网络流——若对于网络,其上非负整数函数满足以下两条件:
则称为上一个网络流,简称流。并称为流在边上的流量。称条件1为容量约束条件,称条件2为守恒条件(直观上说,在每一个中间点上,的流入量之和等于流出量之和,中间点的流量是守恒的)。显然,任一运输网络,至少存在一个流:,称它为零流。
流值Valf——称为流在上的流值,记为。显然,有
(2)割、最小割和最大流
割——对于运输网络,若为的一个子集,,则称边集
为网络的一个割,并称
为割的容量。
最大流——若为网络上流值最大的流,即
为上流
则称为的最大流。
最小割——若为容量最小的割,即为的一个割
则称割为的最小割。
设为上一个流,对任,若,则称边为饱和边;若,则称边为不饱和边;若,则称边为正边;若,则称边为零边。
【定理】设和分别为网络的流和割,那么
(1)增流链
设为的一条初等链。
若中有到的有向边,则称边为的前向边;
若中有到的有向边,则称边为的后向边。
若为上流,对,令
当,称为饱和链;当,称为不饱和链。
增流链——一条从源至汇的不饱和链,称为增流链。
若网络中存在一条增流链,我们可得上一个新流:
此时,有
称为基于的修改流。
【定理】若为运输网络上流,则
(2)最大流算法
若为网络的一个流,中满足下列条件的树称为以为根的不饱和树:
每个点,都按下述方法给以标记:
若中至的初等链为:
下面给出求中流值为指导值的流的算法(若要求的最大流,则只要在这一算法中将事先给定的数值取为即可):
①取的一个初始流(假如零流),计算。
②
若是,则即为所求之流,算法终止;
若否,则给以标号。
③
若是,则中无增流链,即为最大流,算法终止;
若否,则取中第一元素,作
④
若是,则取,转步骤⑤;
若否,则转步骤⑥。
⑤
若是,则,转步骤③;
若否:对中点都给以标号,其中
(中点按标号的先后给以顺序),转步骤③。
⑥
若是:给以标号,其中,运用逆向追踪法求得中至的增流链取
转步骤②。
若否:对中顶点都给以标号,其中
(中点按标号的先后给以顺序)。按
取,转步骤⑤。
若运用上述算法求的最大流,则算法终止时的顶点集合与对应的割,即为最小割。
设为上一个流,,则
表示内按照网络流运送流量个单位从源到汇所花的代价,称为流的代价。
最小代价流——设为带代价的网络,为上流,若,且有
为上流
则称为上一个流值为的最小代价流。
最小代价的最大流——若为上最大流的流值,则称满足
为上流
的流为最小代价的最大流。
(1)伴随的增流网络
设为带代价的运输网络上一个网络流,现构造一个伴随的增流网络如下:
其中
取
称中的边为正规边,中的边为非正规边。
若为带代价的网络上的流,其伴随的增流网络为。若为中一条到的路径,令为中各边容量之最小值,即
为中有向边
则称为路径的容量。
若取为一个不超过的正整数,作上流(可以验证如下取法的为流):
则称为关于的修改流。可知
若为中一个回路,令为中各边容量之最小值,即
为有向边
称为回路的容量。
若取为一个不超过的正整数,作上流(可以验证如下取法的为流):
称为关于的修改流。容易验证:
又,则不难知道有如下结论:
【定理】设为网络上流,,则
(2)最小代价流算法
下面给出在中寻找流值为的最小代价流的两个算法:
求流值为的最小代价流算法一:
①在中任取一个流值为的流
②作
③在中是否存在一个负回路?
若是,则取,作关于的修改流,取,转步骤②;
若否,则即为所求的最小代价流,算法终止。
求流值为的最小代价流算法二:
①取初始流为零流。
②
若是,则即为中流值为的最小代价流,算法终止;
若否,则作。
③中是否存在一条至路径?
若是,则求中一条至的最短路径。取,作基于的修改流,,取,转步骤②;
若否,则中不存在流值为的流,为中最小代价的最大流,算法终止。
如果要求上的最小代价的最大流,则在应用上述算法时取即可。
(1)基本术语
网络计划图是在网络图上标注时标和时间参数的进度计划图,实质上是有时序的有向赋权图。表述关键路线法(CPM)和计划评审技术(PERT)的网络计划图没有本质的区别,它们的结构和术语是一样的。仅前者的时间参数是确定型的,而后者的时间参数是不确定型的。
网络计划技术在实施时,主要是分4个步骤:第一步编制网络图,第二步确定问题各项活动的持续时间,第三步决定关键路线,第四步结合资源费用等因素制定工程的最优日程进度。
给出一套同一的术语和符号:
①节点、箭线是网络计划图的基本组成元素。箭线是一线段带箭头的实射线和虚射线,节点是箭线两端的连接点。
②工作(也称工序、活动、作业),将整个项目按需要粗细程度分解成若干需要耗费时间或需要耗费其他资源的子项目或单元。它们是网络计划图的基本组成部分。
③描述工程项目网络计划图有两种表达方式:双代号网络计划图和单代号网络计划图。双代号网络计划图在计算时间参数时又可分为工作计算法和节点计算法。
④双代号网络计划图。在双代号网络计划图中,用箭线表示工作,箭尾的节点表示工作的开始点,箭头的节点表示工作的完成点。
箭线之间的连接顺序表示工作之间的先后开工逻辑,
⑤单代号网络计划图。用节点表示工作,箭线表示工作之间的先后关系为逻辑关系。在节点中标记必需的信息。
(2)双代号网络计划图
①网络计划图的方向、时序和节点编号
网络计划图是有向、有序的赋权图,按项目的工作流程自左向右地绘制。在时序上反映完成后各项工作的先后顺序。在网络图中只能有一个起始节点,表示工程醒项目的开始。一个终点节点,表示工程项目的完成。
②紧前工作和紧后工作
紧前工作是指在本工作之前的工作,且开始或完成后,才能开始本工作。紧后工作是指紧排在本工作之后的工作,且本工作开始或完成后,才能做的工作。
③虚工作
在双代号网络计划图中,只表示相邻工作之间的逻辑关系,不占用时间和不消耗人力、资金等的虚设工作。
④相邻两节点之间只能有一条箭线连接,否则将造成逻辑上的混乱。
⑤网络计划图中不能有缺口和回路
在网络计划图中严禁出现从一个节点出发,顺箭线方向又回到原出发节点,形成回路。回路将表示这工作永远不能完成。
⑥平行工作:可与本工作同时进行的工作。
⑦起始节点与终点节点
在网络计划图中只能有一个起始节点和一个终点节点。当工程开始或完成时存在几个平行工作时,可以用虚工作将它们与起始节点或终点节点连接起来。
⑧线路
网络图中起点节点沿箭线方向顺序通过一系列箭线与节点,最后到达终点节点的通路。从网络图中可以计算处各线路的持续时间。其中有一条线路的持续时间最长线路是关键路线,或称为主要矛盾线。关键路线上的个工作日为关键工作。
⑨网络计划图的布局
尽可能将关键路线布置在网络计划图的中心位置,按工作的先后顺序将联系紧密的工作布置在邻近的位置。
⑩网络计划图的类型
i.总网络计划图。
ii.分级网络计划图。
iii.局部网络计划图。
(3)PERT网络图的时间参数和关键路径
对于网络图中任一个事项引进第一个时间参数:
事项的最早时间——从顶点1到顶点的最长路径长度称为事项的最早时间,记为。
的实际意义是指:以事项为地点的工序必须等它的紧前工序都完工后才能开工,它们的预期最早执行时间在整个工程开工天后(即在第天)。
工序是以为终点的工序之一(根据编号原则,有),为工序之长度,为顶点1至顶点的最长路径长度,不难的达到下列递推公式:
总工期——事项的最早时间称为工程的总工期,记作。
表示整个工程从开工到完工所需的最少时间。
事项的最迟时间——总工期与顶点至顶点的最长路径长度之差称为事项的最迟时间,记为。
的实际意义是指:在不误总工期的前提下,以事项为开工事项的工序最迟应在整个工程开工天后执行。也即以事项为完工事项的工序最迟完工的时间为第天。
工序是以为起点的工序之一,为顶点到顶点的最长路径长度。可得下列递推公式:
并可化为下列形式:
关键路径——PERT网络中从顶点1至顶点的最长路径为网络的关键路径(可能不止一条),其长度即为。关键路径上的工序称为关键工序。
关键事项——若对于事项有,则称事项为关键事项。
利用事项的最早时间和最迟时间,给出工序的6个时间参数:
工序最早开工时间——即为工序的最早开工时间。
工序的最早完工时间——即为工序的最早完工时间。
工序的最迟完工时间——即为工序的最迟完工时间。
工序的最迟开工时间——即为工序的最迟开工时间。
工序的总时差——在不延长总工期的前提下,工序完工期的机动时间称为工序的总时差,记为。显然,是工序的最迟完工时间与最早完工时间之差(或最迟开工时间与最早开工时间之差),因此,有
工序的单时差——在不影响紧后工序最早开工时间的前提下,工序的完工期的机动时间称为工序的单时差,记为。显然为工序的紧后工序的最早开工时间与工序的最早完工时间之差,因此,有
【定理】工序为关键工序的充分必要条件为。
绘制网络计划图,计算时间参数和确定关键路线,仅得到一个初始计划方案。然后根据上级要求和实际资源的配置,需要对初始方案进行调整和完善,即进行网络计划优化。目标是综合考虑进度,合理利用资源,降低费用等。
(1)工期优化
若网络计划图的计算工期大于上级要求的工期,必须根据要求计划的进度,缩短工程项目的完工工期。主要采取以下措施,增加对关键工作的投入,以便缩短关键工作的持续时间,实现工期缩短。
(2)总工期—成本优化问题
一项工程的成本,一般可分为直接成本和间接成本两大类:
①指定总工期的成本优化问题
若PERT网络确定的总工期为,现指定一个总工期,来考虑成本优化问题。
由于总工期固定为(称为指定总工期),所以间接成本是固定的,故成本最低意味着各工序的直接成本总和最低。又由于每道工序成本由正常成本及赶工费用组成,所以直接成本总和最低也就是意味着各工序的赶工费用总和最低。
为了方便估算,假定在工序成本与工序时间之间有着线性的关系,其中和分别表示在正常情况下工序的作业时间和所需成本(分别称为工序的正常工序时间和正常成本);和分别表示工序的赶工时间限度和相应的成本。
赶工成本斜率——工序缩短一个单位时间所增加的直接成本称为该工序的赶工成本斜率,记为。即工序的赶工成本斜率
(若每道工序都采用它的时间限度作为它的长度,求得相应网络的总工期为,则应有。)
首先对网络图中各工序的工序时间在取为正常时间时求出工程的总工期,若大于指定总工期,则就要采取赶工措施。赶工措施的原则为:
给PERT网络,若对,在取为正常工序时间时,工序的总时差为,工程的总工期为。
现在对网络,指定总工期为。令
现对汇,取,可知
在的条件下,可知工序的开工日期(或完工日期)可推迟的天数为
因为,所以必有一些工序的小于零,称其为负时差。
对网络要实现新的总工期,必须对的工序进行赶工,而对的工序赶工是没有意义的。
构造辅助网络
其中为一个充分大的正数。
下面给出具体的算法:
对于大型PERT网络的总工期—成本优化问题,可以通过建立线性规划模型来进行最优决策。
②最低成本的最优总工期问题
求总成本最低的最优总工期,一般可按如下步骤来进行:
(3)总工期—资源的优化问题
在编制初始网络计划图后,需要进一步考虑尽量利用现有资源的问题。即在项目的工期不变的条件下,均衡地利用资源。为了简化计算,具体操作如下:
下面对这类资源附有限制的网络计划问题作一般讨论:
假若网络计划问题所需要的的某种资源在单位时间内的最大供应量为,那么,在此资源限制条件下,可以按以下步骤求总工期最短的计划方案:
显然,时间区间内的若干工序必满足下面两个条件:
内的工序有
现令
那么,在满足的各道工序中,如何挑选,使其开工日期后移到第天呢?
如何评价一个工程进度表对资源利用的均衡性呢?
若工程进度计划表确定后,用表示第天对资源的需求量,为进度表相应的总工期,则日资源利用量的均值为
令
我们的问题就成为在计划工期固定的条件下,找到一种进度计划使取极小值。一般采用如下的试探法:
先求出网络图的时间参数,把每道工序的开工日期都安排在第天。于是得到一张进度计划表,计算相应的。然后利用非关键工序的总时差,依次对每道非关键工序的执行时间作试探性调整,若调整后的值减少,则接受这个调整措施,从而获得一张新的进度计划表。重复上述过程,直到求得某一进度计划时,对每道非关键工序的试探性调整已无法使减小,此时,即终止调整。
我们称采用单一时间估计法估计各道工序作业时间的PERT网络为肯定型网络。
工序时间是随机变量的PERT网络称为非肯定的PERT网络。
我们采用3种时间估计法来估算非肯定型网络各工序的工序时间,即对每道工序的工序时间估计3种时间:
假设工序这个随机变量服从取值范围从到的分布,因而,此随机变量的期望值和方差分别为
将按上式确定的工序的工序时间期望值作为该工序的长度,它的方差记为。
网络计划的总工期是关键路径中所有工序的工序时间的和,由于工序时间是随机变量,因此也是随机变量。现假定各工序的工序时间是彼此独立的随机变量。当关键路径上工序较多时,根据概率论中的中心极限定理可知,总工期服从正态分布,它的数学期望和方差分别为
排队论就是一门研究处理随机服务系统排队现象的学科。它的任务是考察服务系统随机现象的规律,建立数学模型,为决策者正确地设计与有效地运营服务系统而提供必要的科学依据,使决策者在系统服务费用和顾客的有关等待费用之间达到经济上的平衡。
可用如下模型来描述这一过程。
(1)泊松过程
若用表示在时间内到达某服务系统的顾客数,则对于每个给定的时刻,都是一个随机变量,称依赖于连续参数时间的随机变量族为一个随机过程。称的值为在时刻时过程所处的状态,取值的全体称为状态集,记作。
假设对于任意的,有
则称随机过程为马尔可夫过程,上式所表示的性质称为“马尔可夫性”或“无后效性”。
下面介绍马尔可夫过程之一——泊松过程。
若状态集的随机过程具有所谓的独立增量性:对任一组,随机变量
相互独立。同时,对任意,有
其中参数,则称这个过程为泊松过程。
在排队论里,人们常把泊松过程称为最简单流,参数称为最简单流的强度。在具体的问题中,是不难由统计资料求得的。
【定理】若随机过程满足3个条件:
【定理】顾客到达过程是一个参数为的泊松过程的充分必要条件为:相应的顾客到达间隔是一族相互独立同分布的随机变量,它们的分布函数为负指数分布:
(2)生灭过程
生灭过程——若随机过程的状态集或。设在时刻时,那么在时刻时(),的概率为(其中为与无关的常数);在时刻时(),的概率为(其中也为与无关的常数);在时刻时,为中其他元素的概率均为,则称该随机过程为生灭过程。
对一些生灭过程,常常关心下列概率:
(称为瞬时解)
(称为极限解)
生灭过程关于的微分方程组为
①当时,
②当时,
求解这组方程,即可得到在时刻时过程的状态概率分布,即得到生灭过程的瞬时解。
【定理】令
则对的生灭过程,或对且满足条件
的生灭过程,对于任意正数和任意,都有
当状态集时,
当状态集时,
称为生灭过程在统计平衡时的概率,或称稳态概率。
(3)负指数分布
若用表示第位顾客所需的服务时间,则也是一族随机变量。假定中各个随机变量相互独立,且服从相同的负指数分布:
其中参数。因而,其概率密度函数为
的数学期望和方差分别为
因此
从而,为每位顾客所需要的的平均服务时间,为在单位时间内受到服务的顾客的平均数。(用随机变量表示顾客的服务时间)
【性质】负指数分布的密度函数是的一个严格单调减函数。
【性质】无记忆性。(剩余服务时间的分布独立于已经服务过的时间而与原来的分布相同。)
【性质】对于,当充分小时,有
(4)爱尔朗分布
爱尔朗分布的密度函数为
其中参数,称为阶数。
若顾客服务时间服从爱尔朗分布,则的数学期望和方差分别为
可以证明,如果是个相互独立的随机变量,且服从同一参数的负指数分布,则随机变量
服从阶爱尔朗分布。
一般排队系统都有三个基本组成部分:①输入过程;②排队规则;③服务机构。
(1)输入过程
输入过程是指各种类型的顾客按怎样的规律到达。要完全描述一个输入过程需要如下3方面信息:
①顾客源数。
顾客总体可能是有限集,也可能是无限可数集合,甚至可能是无限不可数集合。
②到达类型。
顾客来到的方式可以是单个到达,也可能是成批地到达。
③顾客相继到达的时间间隔分布。
描述顾客到达过程有两种方式:一种为随机过程,其中为内到达的顾客数;另一种描述方式为随机变量序列,其中为第个顾客到达时刻,。下面介绍几种常见的情况:
④顾客的到达可以是相互独立的,否则就是有关联的。主要讨论的是相互独立的情形。
⑤输入过程可以是平稳的,或称对时间是齐次的,是指描述相继到达的间隔时间分布和所含参数(如期望值、方差等)都是与时间无关的,否则称为非平稳的。主要讨论平稳的情形。
(2)服务机构
服务机构应反映如下信息:服务台的个数、接受服务的方式(单个服务或成批服务)、服务时间的分布。下面介绍几种经常遇到的服务时间分布:
①定长分布。每位顾客的服务时间均为常数。的分布函数为
②负指数分布。各个顾客的服务时间相互独立,具有相同的负指数分布:
其中参数
③阶爱尔朗分布。各个顾客的服务时间相互独立,具有相同的阶爱尔朗分布,其密度函数为
其中参数。
④一般独立分布。各个顾客的服务时间相同独立,具有相同的概率分布。
(3)排队规则
排队规则体现到来的顾客按怎样的方式和顺序接受服务。
①损失制。当一个顾客到达时,若所有服务台均被占用,该顾客就自动消失,具有这种特点的排队规则称为损失制。
②等待制。当顾客到达时,若所有服务台均被占用,顾客就排成队伍等待服务,具有这种特点的排队规则称为等待制。顾客接受服务的次序可以采用下列各种规则:
i.先到先服务。即按顾客到达的先后顺序接受服务。
ii.后到先服务。
iii.随机服务。当服务台得空时,在等待的顾客中随机地选取一名进行服务,每一位等待的顾客被选到的概率相同。
iv.优先权服务。对于不同的顾客规定了不同的优先权。
③混合制。为损失制和等待制兼而有之的情况。有下列情况:
i.队长有限制。如果系统空间的容量有限,最多只能容纳个顾客(包括正在接受服务和参加等待的顾客),那么当顾客到达时,如果系统内已有个顾客,该顾客就自动离去;如果系统内顾客数小于,该顾客就进入服务系统。
ii.等待时间有限制。顾客在队伍中的等待时间不能超过规定的时间,超过规定时间顾客就离去。
iii.逗留时间(等待时间与被服务时间之和)有限制。顾客在服务系统中的逗留时间不能超过规定时间,否则就离去。
(4)排队模型的符号表示
一般排队模型由6个主要特性所确定:输入过程(顾客到达时间间隔分布);服务时间分布;服务台个数(多个服务台时,假设各个服务台是并联的);系统容量(服务台个数加上可容纳的等待顾客数);顾客源数;服务规划。
在应用中,使用符号来表示不同的排队模型是较为方便的:
输入过程/服务分布/服务台个数/系统容量/顾客源数/服务规则
由于本文中讨论的问题都是采用先到先服务的服务规则,所以在模型的符号中不再列出服务规则符号。当系统容量或客源为无限时,也将它们从模型的符号表示中省略。
表示顾客到达时间间隔分布和服务时间分布的常用符号有:
M——输入过程为最简单流,或服务时间为负指数分布;
D——定长输入或定长服务;
——顾客到达时间间隔分布或服务时间分布为阶爱尔朗分布;
GI——一般独立输入:
G——一般服务分布。
服务台的个数用表示,系统容量用表示,顾客源数用表示。
(5)排队模型数量指标和基本公式
排队论研究的问题,从大的方面来说,可以分成两类问题:第一类问题是在服务机构未设置之前就根据顾客输入过程与服务过程的要求,结合对系统的一定数量指标要求,对服务机构规模进行最优设计,我们称他们为静态最优问题;第二类问题是对已有的服务系统如何实行最优控制,称为动态最优问题。
解排队问题的目的,是研究排队系统运行的效率,估计服务质量,确定系统参数的最优值,以决定系统结构是否合理、研究设计改进措施等。所以必须确定用以判断系统运行优劣的基本数量指标,解排队问题就是首先求出这些数量指标的概率分布或特征数。
排队系统的优化问题,首要问题是在对系统作定量分析后,计算队长、等待时间和忙期3个数量指标的分布和数学期望:
① 队长。队长是指在系统中的顾客数目(包括正在接受服务的顾客和等待服务的顾客),它是一个随机变量,应确定其分布,至少应当知道它的平均值及有关各阶矩。
②等待时间和逗留时间。从顾客到达时刻起他接受服务时止这段时间称为等待时间,它是个随机变量,是顾客最为关心的数量指标,因为顾客总是希望他的等待时间越短越好。
③忙期。对多个服务台的排队模型,从服务系统开始无空闲的服务台这一时刻起,到有一个服务台开始空闲这一时刻止,这段时间称为系统的忙期。对于单服务台的排队模型,从顾客到达空闲的服务台这一时刻起,到服务台再次变为空闲这个时刻止,这段时间称为服务台的忙期。
由于排队模型一般都存在一个‘初始’时期,在这个时期中,队长分布、等待时间分布和忙期分布均依赖于系统已运营的时间和初始状态(顾客数)。然而,服务系统运营充分长的时间后,系统趋于统计平衡,这些分布不再随时间变化且初始状态的影响也消失(但不意味着系统失去随机性),我们基本上只研究统计平衡时的有关状况。
为方便讨论具体的数学模型,给出下列数量指标的符号:
——单位时间内平均到达的顾客数,即平均到达率;
——平均到达间隔;
——单位时间内受到服务的顾客平均数,即平均服务率;
——每位顾客的平均服务时间;
——服务台个数;
——每个服务台的服务强度(利用率),表示每个服务台在单位时间内的平均负荷;
——在统计平衡时,系统中具有个顾客的概率;
——顾客等待的概率;
——忙期;
——队长(正在接受服务的和正在排队等待的顾客总数)的期望值;
——等待队长的期望值;
——逗留时间(顾客在系统中的等待时间和被服务时间的和)的期望值;
——等待时间的期望值。
有效到达率——单位时间内平均进入服务系统的顾客数。对于等待制的排队系统有。
下面给出3个基本公式,对各类排队模型在处于统计平衡时都适用。
首先,根据逗留时间的含义,有下述公式:
此,给出下述两个李特尔公式:
输入过程为最简单流、服务时间为负指数分布的随机服务系统,是排队论中最简单的模型,对于这种模型的各项数量指标,排队论具有比较漂亮的结论。
(1)M/M/S排队模型
M/M/S排队模型为泊松输入、负指数分布服务、S个服务台、系统容量不受限制、顾客源数为无限的等待制排队模型。如下图所示。
假定到达率为的最简单流来到个服务台的服务系统。一个顾客到来时,如果有一个以上的服务台空闲着,顾客就被随机地指派给任何一个有空的服务台进行服务;若所有服务台均在服务,则顾客排成一个队伍等待服务,顾客服务时间与顾客到达间隔时间相互独立,遵从参数为的负指数分布。
设为系统在时刻时的队长,它是一个随机变量。若,表示在时刻有个服务台正在进行服务,而剩下的个服务台空闲着;若,则表示在时刻所有的个服务台均在进行服务,且有个顾客正在排队等待。可以证明是一个生灭过程,其状态集。
由于顾客到的间隔和顾客服务时间分别服从参数为和的负指数分布,可知,当时,对充分小的,有
即,在时间内来一个顾客的概率为;在时间内一个服务台服务完一个顾客的概率为。于是,若个服务台都在服务,那么个服务台服务完一个顾客的概率为可见,对该生灭过程来说,有
此生灭过程的稳态概率为
其中
称为服务强度,表示每个服务台在单位时间内的平均负荷,也即每个服务台的利用率。
可知,当时,有下式成立
因此,在条件下,得到系统队长的稳态概率:
显然,即该系统的空闲系数。
所有服务台均被占用,以致来到一个顾客需要等待的概率为
若较小时,也可采用下式来计算:
根据和定义,可得:
设为顾客的等待时间,则该随机变量的分布函数为
特别
它与等待概率的表达式相同。又可知
对于的系统,可知对一切成立,这表示如果将这一系统维持很长一段时间,系统中的顾客队伍就会无限长。
下面讨论M/M/S排队系统的静态优化问题——系统设计的最优化。
我们建立系统的有关费用模型(考虑在单位时间内使服务费用和顾客等待/逗留费用之和最小),然后对有关的参数的优化进行决策。
服务费用是与服务水平密切相关的,一般来说,它是可以确切计算或估计的,而顾客的等待费用对大部分排队模型就很难估算。
(2)M/M/1排队模型
M/M/1排队模型为M/M/S在时的特例。现设
可知
因此有
可以证明,若顾客在系统中的逗留时间为随机变量,则
下面计算M/M/1排队模型忙期的平均长度。
对服务台来说,整个时间轴可以分为两部分:忙期与闲期。当一个顾客到达空着的服务台时忙期就开始,一直到服务台再一次变成空闲(即,系统中没有等待的顾客),忙期才结束。所谓闲期,就是指以服务台变成空闲开始到新的顾客到达为止这段时间。由最简单流的性质可知,闲期长度遵从参数为的负指数分布,故闲期平均长度为。另一方面,,因此在相当长的时期内,服务台空闲的时间总长度为,所以在时期内闲期的平均个数为,它也等于内忙期的平均个数。又知时期内服务台忙碌时间总长度为,因此忙期平均长度
可见有
忙期的平均长度即为顾客在系统中逗留时间的期望值。于是,一个忙期中所服务的顾客的平均数为
(3)M/M/∞排队模型
M/M/∞排队模型为泊松输入、负指数分布服务、无限个服务台的服务系统。
假定参数为的最简单流到达无限个服务台的系统,则顾客一到达立即就可接受空闲着的服务台的服务。服务时间与到达间隔相互独立,服务时间是参数为的负指数分布。
若同在时刻时正在进行服务的服务台台数为,就说在时刻系统所处的状态,其状态集。
可以证明为一个生灭过程。所以,对该生灭过程来说,有
可得
(4)M/M/S/k排队模型
M/M/S/k排队模型为泊松输入、负指数分布服务、S个服务台、系统容量为的混合制系统。
假定参数为的最简单流到达个服务台的系统,若顾客到达时有空闲的服务台,则顾客在任一空闲服务台接受服务,服务时间与到达时间间隔相互独立,遵从参数为的负指数分布;若顾客到达时所有个台都在进行服务,则当系统中的顾客数(包括正在服务的个顾客)小于指定数时,新来的顾客就排入队伍等待,而当系统中的顾客数等于时,新来的顾客就被拒绝而损失。
若为在时刻时系统内的顾客数,则是一个随机过程,可以证明它是一个状态集为有限集的生灭过程。所以,对该生灭过程来说,有
令
则可得系统的稳态概率
显然,就是顾客被拒之于系统之外的概率,称为损失率。
和可根据其定义直接计算,即
可以验证:
或者根据下列公式来计算:
显然,顾客到达且能进入系统的概率为,故系统的有效到达率为
不难验证
因此,根据李特尔公式可求得
当时,对于M/M/1/k排队模型,有:
可知:
(5)M/M/S/m/m排队模型
M/M/S/m/m排队模型是顾客源有限的排队系统,即至多只有有限个(个)顾客来到服务系统。一旦系统中已有个顾客,就不会再有新顾客到达,除非系统中的一些顾客得到服务又返回顾客源,系统才可能有顾客继续来到。
有限源服务系统的典型例子是机器看管问题。假定有个工人共同看管台机器(,台机器就是顾客源)。每当机器发生故障时,就需要一位工人负责修理,使其恢复生产。所以,出故障的机器就是要求获得服务的顾客,工人就是服务台。当个工人分别正在修理台出故障的机器时,新发生故障的机器就只能等待工人来修理。假定:
①每台机器连续正常运转时间都服从参数为的负指数分布,每台机器平均连续运转的时间为,就是一台机器在单位运转时间内发生故障的平均数(应注意,不是一台机器单位时间内发生故障的平均数,因为一台机器一旦发生了故障,在修复之前不会再发生故障。)
②每台机器的修复时间都服从参数为的负指数分布,工人修理一台机器的平均时间为。
③各台机器在任意时段内连续运转的时间与工人修复机器的时间彼此独立。
若以表示时刻不在正常运转的机器数,它是一个随机变量,因而是一个随机过程,它的状态集合为有限集。可以证明,为一个生灭过程。所以,对该生灭过程来说,有
于是,可得系统的稳态概率:
由此即可计算:
有效到达率的计算公式为:
应用李特尔公式和上式,即可计算和。
特别当时,有
系统M/M/S/m/的服务要比S个M/M/1/m/m系统来得好。
(1)M/G/1排队模型
M/G/1排队模型是1个服务台的等待制服务系统,输入过程是以为参数的最简单流,各顾客的服务时间是相互独立且具有相同分布的随机过程,其数学期望和方差分别为和。服务台的服务强度
当时,有如下结论:
同时可知,忙期的平均长度为
可见,在平均服务时间不能缩减时,也能减少服务时间方差的办法来减少平均队长和降低顾客的等待时间。
(2)M/D/1排队模型
M/D/1排队模型的服务时间为确定的常数,其方差。于是,当时,有下列公式:
(3)M//1排队模型
在 M//1排队模型中,顾客的服务时间服从爱尔朗分布,此时有
因此,当时,有下列各式:
1.运筹学教材编写组 编. 《运筹学》第4版. 清华大学出版社. 1982
2.傅家良 编著. 《运筹学方法与模型》. 复旦大学出版社. 2014
3.第三章 效用函数 - 豆丁网