更全的杂志信息网

最优路径算法问题

更新时间:2009-03-28

一、引言

众所周知,在一个赋权图中,由起点v1到某一顶点vj 间的路径集合{dv1,vj},计算这路径集合中的最短路径,这样的路径叫从v1到vj 的最优路径,其决策值记作d(v1,vj)。

最优路径问题,是在生产生活实际中应用较广泛的一类问题。例如最常见的最优旅行路线问题,最优运输路线问题,最优售货路线问题,以及最优管道铺设路线问题等。对于这样一种特定的最优化问题,它有两类算法:一种是利用动态规划中多阶段决策方法,文献[1] 中提供该算法的 FORTRAN程序,该算法的运算量的阶是O(n2)(这里n 是顶点个数),存贮量达到O(n3);另一种是把问题看作一个赋权的图,利用最短通路的算法,文献[2] 中提供该算法的FORTRAN 程序,该算法运算量的阶是O(n2),存贮量的阶是O(n2)。我们的设想亦是从赋权图出发,根据动态规划的思想,将图分层分片,并引进稀疏矩阵存贮技巧,构造一个存贮量压缩到O(n)阶,运算量仍保持为O(n2)级的算法。算法在IBM-PC/XT 微机上实现,无疑程序可移植到其他机种上去。

二、最优路径问题的算法

所谓最优路径问题,以图1为例,图中任意两点连线上的数字表示此两点间的距离,如点A 与点B2间的距离为8。我们希望寻找从始点A 到顶点E的最优路线和路线长度值。

  

图1 寻找最佳路径

动态规划中的多阶段决策过程的最优化,建立在美国数学家贝尔曼(R.Ballman)提出的最优化原则基础上。它把一个N 阶段的决策过程化为一系列N 个单阶段决策过程,即化为逐一作出决策的N 个子问题。利用这一原理,最优路径问题可分析叙述为:一条路线如果是最短路线,则对该线上任何一点来说,最短路线的以此点为起点的剩余部分,必须是此点到终点的最短路线。不具备这种性质的路线,必然不是最优路线。为了用数学方式表示这种思想,引进下列符号和概念:

n:是阶段变量,表示某点至终点间的阶段数;

S:是状态变量,表示在任一阶段所处的位置;

Vn(S):是决策变量,表示当状态S 还有n 个阶段要走时所需选取的下一个点;

上述算法的正确性是显然的。由于在任何一步,设P 中每一点的P 标号是从v1到该点的最短路径的长(开始是P={v1},d(v1)=0),于是只要说明(3)式所得以(dk)是从v1到vk 的最短路径长就行了。事实上,任何一条从v1到vk 的路径,若经过T 的第一个点是vj,而vj=vk 时,由于所有边长为非负,因此这种路径长不会比d(vk)小。

d(S,Vn(S)):表示点S 到点Vn(S)间的边长;

不妨以点E 表示终点位置,并令:

 

同样,如果欲寻找A-B2最优路径,则mb=3,第一段数据改作11,3/。这时计算结果:

 

显然,在电子计算机上实现多阶段决策方法,必须建立一个三维数组C(I,J,K),它描述由状态S(I,J)到状态S(I+1,K)的路径值,其中I=1,2,…,N-1;J=1,2,…,M(I);K=1,2,…,M(I+1)。这里,N 是顶点个数,M(I)是第I 阶段有M(I)个状态。因此,这种算法不仅增加了计算机存贮量,而且用户在使用时也很麻烦。

将图1看作是一个赋权图,任意两顶点vi,vj连线上的数l(vi,vj)(简记为lij)称为边(vi,vj)的权,问题化成一个始点A 到顶点的最短通路,解决这一问题目前公认的最好算法是由德克斯特拉(E.W.Dijkstra)在1959年提出的。它的基本思想:先给赋权图的每一个顶点记一个数(称为标号),标号有两类:一类是临时标号(称作T),它表示从始点到这点的最短通路长度的上界;另一类是固定标号(称作P),它表示从始点到这点的最短通路长。于是构造一个算法,使计算每一步把某个点的T 标号改为P 标号,这样一旦终点得到P 标号,算法停止。

记V 为图1中所有顶点的集合;

去跟客户开会,这个资料是必需的,那个资料也是必需的。也不清楚究竟用得上用不上,一股脑儿装进包里,实际上能用的并不多。这就是不会整理的表现。

这里,v1是起点号,vn 是终点号。又记集合:

在前文中已经对公共服务均等化供给进行了理论模型分析,分析了不同影响因素对公共服务均等化能力的影响。而公共服务均等化能力是一个抽象的名称,只有把它转化成一个可以衡量的指标才能进行进一步实证研究,因此我们需要构建一个相对应的基本公共服务均等化指数来测度和衡量公共服务均等化能力大小。

 

而d(vj)为点v1到点vj 的最短通路值。引进赋权图所对应的长度矩阵L=(lij),它是n 阶矩阵,其中元素lij 表示点vi 到vj 间的路径。这里规定:当vi 与vj 有边相连,这时lij 就是边(vi,vj)的权,反之,则以“∞”表示。对图1来说,若记顶点集合V=(A,B1,C1,D1,B2,C2,D2,B3,C3,D3,E),这样长度矩阵L 是11阶矩阵。于是,德克斯特拉算法描述为:

 
 

首先,令集合P={v1},d=(v1)=0;里T={v2,v3,…,vn},d(vj)=lij(j=2,3,…,n)。

一般地,取

2.3.4模式优点该治理模式适用范围广,对稳定、半稳定沟底比降小于10%,坡度较小的侵蚀沟有很好的治理效果;可与林业造林有机结合,能提高植被覆盖率,改善生态环境;原料丰富,成本较低,经济效益显著,能增加农民收益。

 
 

为点vk 的P 标号,即vk ∈P,并把T 中的点Jv的标号修改为:重复算式(3)、(4),直到vn∈P 为止。这时,d(vn)就是从v1到vn 的最优路径长(又称最优决策值)。

(2)处理的方案:根据现场的情况暗塘处于此栋楼的中部,且暗塘面积大,深度穿过二层粉土达到粘土层,如果仅仅对暗塘处理,一定会给本工程带来不均匀沉降;另外在方案选择上要求因地制宜,就地取材,由于小区内有大量的剩余好土可供使用,且机械条件具备,为大面积换土处理提供了保证,通过技术上和经济上的综合分析和对比,最后确定采用换填垫层。一方面可以有效控制房屋不均匀沉降;另一方面就地取材节约了成本,降低了处理费用。

dn(S):表示由S 至终点的最短路径长;

聚类分析又称集群分析,它是按“物以类聚”原则研究事物分类的一种多元统计分析方法,它根据样本的多指标、多个观察样品数据,定量地确定样品、指标之间存在的相似性或亲疏关系,并据此联结这些样品或指标,归成大小类群,构成分类树结构图,是分区最常用的方法之一。本研究采用SPSS统计软件进行分类,在一级分区的基础上,完成二级分区。

为了获得由点v1到vn 的最优路径,可利用树的生长过程中保存先驱点的轨迹的方法,即选择存放由公式(3)所获得的点vk 最终构成一棵支撑树。

德克斯特拉算法的 FORTRAN 程序附在文献[2] 中。由于算法需存放长度矩阵L,因此它的存贮量达O(n2)阶,运算量是O(n2)阶。这里要问:是否可建立一个既不增加运算量的阶,又能减少存贮量的算法呢?回答是肯定的。

首先,考察长度矩阵L 中元素的特征。由于lij 是表示点vi 与vk 间的路径长,因此lij=lji,且满足关系式:

由此可见,长度矩阵L 是一个主对角线元素恒为零的n 阶对称矩阵。

讨论lij={(vi,vj),当vi 与vj 有相连边 (5)

唐代门荫进入学馆的除弘文馆和崇文馆两馆之外,还有国子监六学。史书中记载,进入两馆的都是高级官员子孙。《新唐书》中就明确规定了进入两馆的权限,并且对一人可荫的人数也有严格的限定。书中记载:

∞,当iv 与vj 无相连边

起初,天下只有一唇一音,一门语言。后来人们迁徙到了东方。……来呀,一块儿盖座带高塔的城,让塔尖直通天庭!……耶和华走下天庭,见人子忙着建城造塔:原来人抱团成了一个民族,讲的是同样的语言!耶和华说。才起头,就造这个,将来只怕没有他们做不成的事了。快,让我们下去搅乱他们的语言,叫他们一个听不懂一个!

见图2:

  

图2 长度矩阵

0,当vi 与vj 重合

其次,L 中元素大部分为∞,为了使D 中非∞的元素集中在主对角线附近,必须对赋权图的顶点作合理编号。事实上,矩阵结构的稀疏性,可以用图论方法来改善,从理论上讲,图中顶点存在一个最佳号问题。对路径问题而言,它可化成N 个阶段的子问题,因此顶点编号可用分段分片方式,即用自然数列序,对赋权图中的顶点依阶段序编号,即起点v1编作1,第二阶段中的顶点v2,v3,…,vm2紧接着编为2,3,…,m2,如此进行,直到终点编为n 为止。由于第i 个阶段的顶点,只与(i-1),i,(i+1)阶段中顶点有边相连,因此用上述编号方式所得的长度矩阵L 中非“∞”元素,必集中在主对角线附近(即呈图3形状)。这里应指出,在主对角线元素与lij 间允许出现“∞”的数。

设点(换句话说,顶点v 的编号)有mi 条相连的边,其顶点号为I1,I2,…,ImI,称数

 

为点的带宽;其中k1=0。于是获得一个n 维数组nn,它存放第i 行元素的最后一个非“∞”元素在数组D 中的位置,即

 

于是对称矩阵L 可按变带宽一维存放在数组D中,数组长度是nn(n)。不难得到长度矩阵L 的第i行、第j 列的元素(j>i)满足:以图1为例,长度矩阵L 是11阶矩阵。顶点编号和带宽分别见表1和表2

 
 

表1 顶点编号

  

阶段 顶点号 编号一A 1二B1 2 B2 3 B3 4三C1 5 C2 6 C3 7四D1 8 D2 9 D3 10五B 11

 

表2 带宽

  

带宽 带宽K1 0 K7 3 K2 3 K8 3 K3 3 K9 3 K4 4 K10 2 K5 3 K11 1 K6 4

于是长度矩阵按变带宽一维存放在数组D 中,依次是下列29个数:2,8,1;6,∞,1;7,5,1,2;∞,∞,9;3,∞,2,9;4,∞,6;∞,3,1;7,∞,9;1,2;4。在程序实现中,“∞”可用大数10/5代表。

三、使用说明

1.功能

在给定的具n 个顶点的赋权图中,本算法能计算由起点到某一顶点的最优路径和路径值,其运算量的阶是O(n2),存贮量的阶是O(n)。

程序中标识符说明如下:

(1)顶点编号

对给定的赋权图,按自然数列对n 个顶点按分层分片编号为1,2,…,n,其中起点号必编为“1”号。分层分片(相当于动态规划中的各阶段)原则是使同一层顶点数尽量减少。

(2)起算数据

对已编好号的权图,按下列次序准备上机计算数据,它分以下两段:

第一段:n,mb/两个整型量。

其中,m 是赋权图的顶点数,mb 是欲计算路径的终点号。

第二段:起算数据。以自然数序编写,譬如第i 个顶点(i=1,2,…,n-1)数据有:

m/表示点i 有mi 个状态,是整型量。

 

其中,Ij 是对应顶点号,是整型量,LIj 为(I,Ij)间的长度,它为实型量。

(3)计算结果

本算法对起算数据即出,以便校核。最后给出最优路径值和最优路径(详情见下面例子)。

3.例子

这里仍以图1为例,顶点编号如图3所示。于是起算数据编写如下。

(1)计算路径

式中:表示在约束条件下完成的实际值,tfj表示第i个影响实际值的因素;表示目标值,gfv表示第v个目标值。

  

图3 寻找最佳路径

为了便于读者使用本算法解决生产生活中实际问题,这里将 IBM-PC/XT 机上用FORTRAN 语言编写的程序抄录,显然本程序能移植到其他机型上。

 

它表示本例顶点数n=11,并寻找点A 到E 的最优路径值和最优路径。

(2)起算数据

起算数据分(n-1)段给出,依次是:

 

(3)计算结果

 

即最优路径状态是1,2,5,6,3,7,10,9,11。对照图1,就是路径A-B1-C1-C2-B2-C3-D3-D2-E,其最短路径值为13单位。

河南省山洪灾害防治县级非工程措施建设项目的实施,对积极主动防御山洪灾害,减少人员伤亡和财产损失,尤其是有效避免群死群伤事件发生起到积极作用。在2012年汛期试运行中,河南省依靠山洪灾害防治县级非工程措施项目建立的防御体系,深入落实“监测到点、预警到户、预案到村、责任到人”的防灾抗灾机制,在迎战多次暴雨山洪过程中发挥了突出作用,社会和经济效益十分显著。

这样多阶段决策方法的数学描述为下述递推公式

THE MINIMUM POLICY COST IS:7.00

THE OPTIMAL ROUTE IS:1 2 5 6 3

即最优路径状态是1,2,5,6,3。对照图1,就知由A 到B2的路径是A-B1-C1-C2-B2,其最短路径值为7单位。

(2)评价内容多维化。职业标准的项目比重表包括理论知识和技能两个方面。比重表反映了各项工作内容在培训考核中所占的比例。国际商法课程考核应基于职业标准的项目权重,对学生的理论知识、技能操作、基本素质和外语水平进行全面考核。如,根据《报关员国家职业标准(试行)》,理论知识和技能操作各占50%。在100分的理论知识中,职业道德和基础知识占15%,报关英语占5%,其他专业知识占80%。由于职业标准是考虑职业需要,而非考虑高等院校的不同特点而制定,鉴于高职教育的特殊性,在实际课程考核评价中,技能操作所占的比重还可以大大提高。

四、附录

计算路径填作:

2.使用说明

Min-最优决策值

X(2,m1)—状态个数。程序规定m1<20

T(n)-临时标号。程序规定n ≤100(以下同)。

L(n)-最短路径。

nn(n)—带宽长。

D(ns)—变带宽一维存放长度矩阵的元素。程序规定ns ≤1000

他们接着在显微镜下观察患病小鼠脊髓内的导血管。“在白血病小鼠中,你可以看到这些血管被白血病细胞所包围,”斯普金斯说,“这些细胞在隧道里,围绕着这些血管,来来回回。癌细胞找到了一条通往大脑和脊髓的捷径——一条他们有特殊钥匙的秘密通道。既然已经知道了这些关键技术,斯普金斯希望它们能被用于治疗急性淋巴细胞白血病和其他脑癌。

dV(n),dW(n)—两组工作单元。

由此可见,下面附录的 FORTRAN 程序,能计算赋权图顶点数不超过100任一顶点的状态个数不超过20的最优路径和决策值。显然,如果计算规模扩大,则只需调整上述标识符所对应的最大体积。

至于记号“∞”,本程序以10/5表示。

FORTRAN 源程序(略)

REAL,MIN,X(2,20),dV((100),Dw(100)

(1)对数学、密码学的信任。任何共识机制都不能离开数学基础,例如:PoW建立在哈希函数的单向性之上,任何挖矿手段也都需要数学的参与,甚至随机选择过程中同样需要数学知识。对数学的信任是最有力的信任,人为条件不能改变这种信任。

……………

公立医院改革是新医改方案中各界关注的焦点,亦是医改的重点和难点。新医改方案指出要推进公立医院补偿机制改革,加大政府投入,完善公立医院经济补偿政策,建立维护公立医疗机构公益性的良性运行机制[1]。随着医改实施方案的出台,改革方案各项具体措施的实施对医院产生了深远的影响,因此,了解医院的经济运行状况对于更好地观察、预测补偿机制改革对经济运行产生的多重影响,以及公立医院改革相关政策的制定具有重要意义。本文对医院经济运行分析的相关研究中使用的框架、方法及指标进行整理,并提出相关建议。

END

参考文献

[1] B.E.吉勒特著,运筹学导论—计算机算法[M] .北京:机械工业出版社,1982:25~29

[2] 王朝瑞编,图论[M] .北京:高等教育出版社,1981:55~59

[3] Bondy,J.A.& Murty,U.S.R,Graph Theory with Applications[M] .The Macmillan Press LTD,Londo

 
李彦辰
《邯郸职业技术学院学报》2018年第04期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号