免费智能真题库 > 历年试卷 > 系统分析师 > 2020年下半年 系统分析师 上午试卷 综合知识
  第55题      
  知识点:   最短路径
  章/节:   图论应用       

 
某乡8个小村(编号为1?8)之间的距离如下表(单位:km)。1号村离水库最近,为5km,从水库开始铺设水管将各村连接起来,最少需要铺设(55)长的水管(为便于管理和维修,水管分叉必须设在各村处)。
 
 
  A.  6.3km
 
  B.  11.3km
 
  C.  11.8km
 
  D.  16.8km
 
 
 

 
  第56题    2022年上半年  
   61%
某乡有7个小山村A~G,村与村之间原有小路可加宽修建公路的线路如下图所示(路边的数字表示路长的公里数)。为实现村村通公路,修..
  第58题    2017年上半年  
   62%
已知八口海上油井(编号从1#到8#) 相互之间的距离(单位:海里)如下表所示,其中1#油井离海岸最近为5海里。现从海岸开始铺设输油管..
  第56题    2011年上半年  
   76%
已知某项工程的作业明细表如下:

为了抢工期,.根据上表,该工程最快能完成的周数及其所需的项目总费用为(56)
   知识点讲解    
   · 最短路径
 
       最短路径
        带权图的最短路径问题即求两个顶点间长度最短的路径,其中路径长度不是指路径上边数的总和,而是指路径上各边的权值总和。路径长度的具体含义取决于边上权值所代表的意义。
        已知有向带权图(简称有向网)G=(VE),找出从某个源点sVV中其余各顶点的最短路径,称为单源最短路径。
        目前,求单源最短路径主要使用迪杰斯特拉(Dijkstra)提出的一种按路径长度递增序列产生各顶点最短路径的算法。若按长度递增的次序生成从源点s到其他顶点的最短路径,则当前正在生成的最短路径上除终点以外,其余顶点的最短路径均已生成(将源点的最短路径看作是已生成的源点到其自身的长度为0的路径)。
        迪杰斯特拉算法的基本思想是:设S为最短距离已确定的顶点集(看作红点集),V-S是最短距离尚未确定的顶点集(看作蓝点集)。
        (1)初始化:初始化时,只有源点s的最短距离是已知的(SD(s)=0),故红点集S={s},蓝点集为空。
        (2)重复以下工作,按路径长度递增次序产生各顶点最短路径:在当前蓝点集中选择一个最短距离最小的蓝点来扩充红点集,以保证算法按路径长度递增的次序产生各顶点的最短路径。当蓝点集中仅剩下最短距离为∞的蓝点,或者所有蓝点已扩充到红点集时,s到所有顶点的最短路径就求出来了。
        若从源点到蓝点的路径不存在,则可假设该蓝点的最短路径是一条长度为无穷大的虚拟路径;从源点s到终点v的最短路径简称为v的最短路径;sv的最短路径长度简称为v的最短距离,并记为SD(v)。
        根据按长度递增序产生最短路径的思想,当前最短距离最小的蓝点k的最短路径是:
        源点,红点1,红点2,…,红点n,蓝点k
        距离为:源点到红点n最短距离+<红点n,蓝点k>的边长
        为求解方便,可设置一个向量D[0..n-1],对于每个蓝点v∈(V-S),用D[v]记录从源点s到达v且除v外中间不经过任何蓝点(若有中间点,则必为红点)的“最短”路径长度(简称估计距离)。若k是蓝点集中估计距离最小的顶点,则k的估计距离就是最短距离,即若D[k]=min{D[i]i∈(V-S)},则D[k]=SD(k)。
        初始时,每个蓝点vD[c]值应为权w<s,v>,且从sv的路径上没有中间点,因为该路径仅含一条边<sv>。
        将k扩充到红点后,剩余蓝点集的估计距离可能由于增加了新红点k而减小,此时必须调整相应蓝点的估计距离。对于任意的蓝点j,若k由蓝变红后使D[j]变小,则必定是由于存在一条从sj且包含新红点k的更短路径:P=<s,…,kj>。且D[j]减小的新路径P只可能是由于路径<s,…,k>和边<kj>组成。所以,当length(P)=D[k]+w<kj>小于D[j]时,应该用P的长度来修改D[j]的值。
        例如,我们求下图所示的图从s点到t点的最短路径。
        
        对节点进行编号
        求最短路径的过程如下表所示。
        
        求最短路径的过程
        因此,从st的最短路径长度为81,路径为s→2→3→5→6→t
   题号导航      2020年下半年 系统分析师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第55题    在手机中做本题