当前位置:文档之家› 有向图最短路算法应用研究

有向图最短路算法应用研究


设 aij = - pij , c为 G中任一有向圈 ,则这类问
∑ aij ∑ 题变为求最优化问题: mi n c
tij
c
∑ 设 tij > 0, 令 aij = ai j - λtij (λ为 任一实 c
数 ) ,则 G中有一个新权值 a ,对新权值有向图进行
负圈检查 , 可能出现如下三种情况:
情形 1: 新权值有向图中有负有向圈: 存在有
成立。
由 umii的定义直接验证此定理的正确性。
2. 2 负有向圈的检查方法
定理 1 如果有向图中不包含负有向圈 ,则最
短路圈的算法可由 Floyd算法给出 ,只要令 aii = ∞
即可 ,也可以检查负有向圈的存在性。
3 基于最短路算法的二分法
3. 1 问题描述
问题模型: 假设货轮可自由地按任意顺序访问 有向图中任意港口。 从港口 i 到港口 j 的旅行收益 为 pij ,但需要 tij的时间 (包括在 i 处装货和在 j 处卸 货的时间 )。 问: 货轮应按怎样的顺序访问港口 ,才 能获得每天的最大利润。
5 结束语
基于最短路算法的二分法应用范围广泛 ,最短 路的算法过程中 ,是将求最短路问题转为求最小值 问题 ,因此 ,最短路问题可看作是线性规划及其对 偶问题在整数约束上求解。可以寻找求解这类线性 规划及其对偶问题的较快的算法 ,比如对偶单纯形 法。
(上接第 155页 )逐渐赶上 ,并超过了增广后的算法。 通过该数值例子可以发现 ,对于那些去除最小特征 值后对矩阵原特征值分别影响不大的情况 ,增广后 的 Davidso n算法并不能起到加快收敛的效果。
定理 1 设有向图中有一条从顶点出发到其余
20 算法应用研究
157
各点的路 ,则有向图中包含负有向圈的充要条件是
unj < unj - 1 ,对至少一个 j= 1, 2,… , n 成立。
证明: 由 umj 的定义知: 若有向图中能求两点间 的最短路 ,则 unj - 1为最短路。
c1
c2
二分法的基本思想: λ在 [ - nV, nV]之间 , a0=
- nV, b0 =
nV, k=
0,λk =
ak+ 2
bk
,
ai
j
=
ai j - λk tij ,对新
权值有向图进行负有向圈检查 ,若情形 1发生 ,则
ak+ 1= ak , bk+ 1 = λk , k = k+ 1,重复 ; 若情形 3发生 ,
∑ ai j
c

∑ ti j
c
∑ aij
c
=
∑ min tij
c
∑ ∑ aij ≤ |ai j|≤ nV
c
c
∑ aij
∑ aij
∑ ∑ 若 c1 , c2 是 两 个 有 向 圈 , 且 c1 ≠ c2 , 则
tij
ti j
c1
c2
∑ ∑ aij
c1
-
∑ ∑ tij
c2
aij tij

1 n 2f2
提出的算法 ,这个算法通过考虑最短子路径来得到 最短路径。它的主要思想是从代表两个顶点的距离
的权矩阵 A= ( ai j )n× n开始 ,每次插入一个顶点 ,比 较任意两点间的已知最短路径和插入顶点作为中
间顶点时可能产生的路径距离 ,然后取较小值以得
到新的距离权矩阵。当所有的顶点均作为中间顶点
时得到的最后的权矩阵就反映了所有顶点间的最
个不同的 j 成立。 证明: 因为 umj + 1 < umj 对某些 m = 1, 2, 3,… , n-
1,和至少 n- m 个不同的 j 成立 ,因为:
umj + 1 =
mi
n{umj
,
min
k≠ j
{
umk +
ak j } } ,所以存在 k ,使
umj + 1 = umk + ak j < umj ,即 ak j < umj - umk
但增广的 Dav idson 算法也存在着 一些缺点: 比如通过数值实验增广的 Davidso n算法并不是十 分稳定 ,波动性较大。对于这种情况 ,可以通过预处 理技术来对矩阵进行改进 ,从 而得到更稳定的算 法。 此外 ,由于矩阵 A的谱信息在一般情况下是未 知的 ,仅考虑其极小特征值可能是不够的。 这时可 以同时考虑矩阵 A 的极大和极小特征值 ,即在 Davi dson增广算法的基础上进行改进 , 在增广极
uij = {从 i 出发到 j 的最短路的长度 }
umij = {从 i 出发到 j 的经过前 m 个顶点的最短
路的长度 ( i , j 必须经过 ) } 1. 2 最短路算法
最短路径算法包括指定顶点对之间的最短路
径算法和所有顶点间的最短路径算法。所有顶点间
最短路径算法中具有代表性的是 1962年由 Floyd
总的计算量为 o( n3 log2 n)。
4 应用举例
考虑由七 个港口组成的 有向图 G,边 上值为 pij ,为简化计算 ,不妨设 tij = 1,求货船的最佳航行 路线。
令 aij = - pij ,|aij|≤ 10,|tij |= 1, λ在 [ - 70, 70 ]之间 ,λ0 = 0, ai j= aij - λ0 ti j= aij。
1 最短路算法的基本思想
1. 1 定义 对一个有 n 个顶点的有向图 G,将顶点用 n 个 整数 (从 l 到 n)进行编号。
A = ( aij ) n× n: aii = 0, aij = 为边 i j 的权值 ,若不 存在边 i j ,则 ai j = ∞
uj = {从起点出发到 j 的最短路的长度 } umj = {从起点出发到 j 的不超过 m 条边的最短 路径 ,m = 1, 2,… , n}
江 苏 航 空
2008 增刊
有向图最短路算法应用研究
郑邦贵 殷洪友
(南京航空航天大 学理学院 ,南京 , 210016)
摘要: 基于有向图最短路算法 ,研究了最小费 用 -时间比值问题模型。首先 ,介绍求有向图 G中各顶点之间的最短 路的各种算法及算法复杂度 ,本文主要介绍 Floy d算法。 求有向图最短路问题基于有向图中无负有向圈之上 ,因 此本文利用最短路算法对负有向圈问题作了 相关探讨。最后用以负圈检查为基础的二分法 研究货船旅行路径问
这样的不等式至少有 n- m 个成立 ,这些节点
至少构成一个有向圈 C,不妨设为 i→ k→… → i ,圈
∑ ∑ 上不等式两边相加得 akj < ( umj - umk ) = 0。
c
c
因此有向图中必有负有向圈。
定 理 3 有向图中包含负有向圈充要条件为
umii < 0, 对某些 i= 1, 2,… , n 和某些 m= 1, 2,… , n
最短路算法在理论和实践方面都取得了显著
进展 ,但对于应用于解决问题的货船最佳旅行路径 问题等数学模型却很少 . 在货船旅行路径问题中 , 点 G表示港口 ,两点间的连线赋权值两个 ,一个表 示旅行收益 pij ,另一个表示旅行时间 tij (包括在 i 点 装货和在 j 点卸货时间 )。货船应该从何处出发 ,按 怎样的路线航行 ,才能获得一天的最大利润。
法停止。
情形 3: 新权值有向图中无负有向圈且最短路
∑ aij
∑ 圈 c 满足 aij > 0,即 mi n c > λ,这说明 λ太
∑ c
tij
c
小 ,增大 λ,再进行负有向圈检查。
3. 2 二分法
为 简 化讨 论 过程 , 不 妨 设 aij 和 tij 取 整数 且
∑ |aij|<V,|ti j|<f,取 min ti j 为单位时间 ,则 c
: 若有向图中包含负有向圈 ,则所得的最短
路长度可以任意小 ,因此 unj < unj - 1
: 若 unj < unj - 1成立 ,则 unj - 1不是最短路 ,即最
短路不存在 ,所以有向图中有负有向圈。
定理 2 有向图中包含负有向圈的充分条件是
umj + 1 < umj 对某些 m= 1, 2, 3,… , n- 1,和至少 n - m
进行第一次负有向圈检查:
158
江 苏 航 空
2008 增刊
∞ -4 -5 ∞ ∞ ∞ ∞ ∞ ∞ - 6 - 3 - 10 ∞ ∞ ∞ ∞ ∞ -4 ∞ -9 ∞ U1= A= ∞ ∞ - 3 ∞ - 6 - 3 ∞ ∞ ∞ ∞ -4 ∞ -3 -2 ∞ ∞ ∞ ∞ -2 ∞ -2 ∞∞ ∞ ∞ ∞ ∞ ∞ U2 = U1 ∞ - 4 - 10 - 7 - 14 ∞ ∞ ∞ ∞ - 6 - 3 - 10 ∞ ∞ ∞ ∞ ∞ -4 ∞ -9 ∞ U3= ∞ ∞ - 3 ∞ - 6 - 3 ∞ ∞ ∞ ∞ -4 ∞ -3 -2 ∞ ∞ ∞ ∞ -2 ∞ -2 ∞∞ ∞ ∞ ∞ ∞ ∞
1. 3 算法复杂度
Flo yd 算 法 共 有 n (n - 1) ( n- 2) 步 加 法 和 n( n - 1) ( n- 2)步比较 ,算法计算量为 o( n3 )。
2 负有向圈的基本理论和算法
2. 1 负有向圈的基本理论 如果存在一个有向圈 (从某个点出发又回到自 己的路径 ) ,而且这个圈上所有权值之和是负数 ,那 这就是一个负有向圈 ,存在负有向圈的图是不能求 两点间最短路的 ,因为只要在负有向圈上不断兜圈 子 ,所得的最短路长度可以任意小。因此 ,检查一个 有向图中是否有负有向圈是必要的。
短距离信息。
由定义 umij = {从 i 出发到 j 的经过前 m 个顶点
的 最短路的长度 ( i, j 必须经过 ) } ,可得到递推公 式:
相关主题