空间网络分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.3 空间网络分析方法
1.路径分析(path analysis)
在空间网络分析中,路径问题占有重要位置。

人们常想知道在地理空间网络的两指定结点间是否存在路径,如果有则特别希望找出其中的最短路径。

这种路径问题对于交通、消防、信息传输、救灾、抢险等有着重要的意义。

在运输网络中,有时要找出运输费用最小的路径;在通讯网络中,要找出雨点间进行信息传递具有最大可靠性的路径等等。

由于大量的最优化问题等价于找一个网络图的最短路径的问题,因而引起了人们对于最短路径分析的极大兴趣。

下面介绍的最短路径搜索算法是Dijkstra在l959年提出的,被公认为是最好的算法之一。

为了求出最短路径,需先计算网络任意两点间的距离,并形成n×n阶距离矩阵或权矩阵。

W=[Wij]
式中:wij为网络中的边eij的距离。

在矩阵W中,
wij>0,当i,j间有边相连接时,对于无向图,wij=wji(i≠j);
wij=∞,当i,j间无边相连接时;
wij=0,当i=j时。

图5-43给出一无向图G,它的距离矩阵W如式(5-37)所示。

DijKstra算法是一种对结点不断进行标号的算法。

每次标号一个结点,标号的值即为从给定起点到该点的最短路径长度。

在标定一个结点的同时,还对所有未标号结点给出了"暂时标号"即当时能够确定的相对最小值。

设定K表示待确定最短路径的起点,L表示终点,则最短路径搜索的步骤如下:
(1)令起点K标号为零,其他结点标号为∞。

(2)对未被定标的结点全部给出暂时标号,其值为min[j的旧标号,(i的旧标号+wij)],这里i是前一步刚被标定的结点,wij是边eij的权,如果结点i和j不相邻接,wij=∞。

(3)找出所有暂时标号的最小值,用它作为相应结点的固定标号。

如果存在几个有同一最小标号值的结点,则可任取一个加以定标。

(4)重复进行(2)与(3),直至指定的终点L被定标时为止。

用此法可直接得到由起点K到其他结点的最短路径的长度,那就是该结点的定标数值。

对于图5-43中的加权无向图G,从结点v1到v2的最短路径的标号过程如下:
其中括号内的是暂时标号,没有括号的为定标。

距离起点越近的顶点,越早得到固定标号。

采用回溯的方法可以得到从起点K到其他结点的最短路径经由的结点。

因此,从结点v1到v7的最短路径长度为7,经由的路径为
v1→v3→v8→v7
2. 定位-配置分析(location-allocation analysis)
定位-配置分析是指根据中心地理论框架,通过对供给系统和需求系统两者空间行为相互作用的分析,来实现网络设施布局的最优化。

其中,若已设定需求点,求供给点,则涉及定位问题(location);若已设定供给点,求需求分配点,则涉及配置问题(allocation);若同时求供给点和需求分配点,则涉及定位_配置问题(location-allocation)。

这类问题在城市与区域规划中应用非常广泛,例如选择最佳布局中心,或者从一批候选位置中选定若干地点来建设公共设施,为区域的需求点提供服务。

这些服务设施诸如医疗保健、邮电通讯、交通站点、行政中心等,它们是城市或区域规划的重要内容。

定位-配置分析也是GIS空间分析研究的热点之一。

定位-配置分析涉及的因素比较多,除了网络的元素数据,还包括规划时间范围、问题空间类型、公共设施服务方式、费用对象、设施使用类型、需求点分配类型、附属区域等。

因此,当进行定位_配置分析时,首先要建立一系列边界条件和确定若干目标函数。

边界条件代表了规划目标所必须满足的规划条件,例如,要求所有需求点都有相应的供给点等,作为问题解决的约束条件;日标函数是给出极大值或极小值,例如规定所有设施和需求点之间的总加权距离为最小等,其意义是在于能获得一个明确的分析结果。

定位-配置分析的算法包括P一中心问题、中心服务范围的确定和中心资源的分配范围等,它们是定位_配置分析或规划的重要工具,以下分别予以介绍。

(1)P一中心问题。

这一问题是要在m个候选点中,选择P个供应点,为n个需求点服务,并使得从服务中心到需求点之间的总距离(或时间、费用)为最小。

P一中心问题可以描述为:
并满足保证每个需求点i(i=1,2,…,n)都被服务和将服务中心的数量限定为P个。

上述两个约束条件是为了保证每个需求点仅受一个供应点服务,并且只有P个供应点。

式中:i、n分别为需求点的位置和数量;
j、m为候选点的位置和数量;
P为要确定的服务中心的数量;
wi为需求点i的需求量;
dij为需求点i到服务点j的距离。

并且yi≥xij,,,只有第j个中心被选中时,需求点i才能分配到该中心;
yj=0或1, 任何一个候选点被选中时为l;否则为0;
xij=0, , 需求点有中心j服务时为l;否则为0。

P一中心问题可以用线性规划方法求得全局性的最佳结果,但由于计算量及内存需求量巨大,在实际应用中常用一些启发式算法来逼近或求得最佳结果,其中著名的有Teitz-Bart算法。

该算法的主要步骤如下:
①先选P个候选点作为起始供应点集Pt:C1,C2,…,Cp。

②将所有的需求点分配给它们最邻近的供应点,使其距离为最短。

计算总的加权距离为Bt。

③从未被选取的候选点集中选一候选点Cb。

④对Pt中的每个供应点Cj用Cb替换之,并计算其总加权距离的变化△bj。

⑤如果用Cb替换某个Cj后,可以使总加权距离减少,那么就替换总加权距离减少最多的供应点Ck,令Bt=Bt-△bk,并将Pt修改为也所在的供应点。

⑥重复③-⑤步,直至未被选取的候选点集为空。

⑦当所有不在Pt中的候选点都试过后,其结果记为,并取代Pt。

继续重复②-⑦步,如果没有任何取代能减少总的加权距离,则停止。

其最后的结果,即为所求的P个中心的供应点。

(2)中心服务范围的确定。

中心服务范围是指一个服务设施在给定的时间或距离内,能够到达的区域。

设一个带中心的空间网络G=(V,E,C),其中V表示空间网络结点的集合,E 表示边的集合,C为该网络的一个中心。

若已知该中心的阻值为cw,网络边eij的费用为wij, r表示空间网络上任何结点到中心的(vi,ve)间的一条路径,ric是该路径的费用,那么在不考虑货源量和需求量的情况下,中心的服务范围应为满足下列条件的网络边和结点的集合F:
为确定该中心的服务范围,须依次求出到服务中心费用不超过中心最大阻值的路径,于是组成这些路径的网络结点和边的集合,就构成该中心的服务范围。

具体处理时,将空间网络看作是以该中心为根的一棵树,用宽度优先法搜索,搜索时需考虑到网络边和结点的属性。

其具体的算法步骤如下:
①将中心结点作为当前结点,并存入到达结点表中,同时扫描它的关联结点,检查这些结点是否在服务范围内,将其中满足条件的关联结点存入搜索结点表中。

②如果已搜索结点表为空,则结束;否则,继续第③步。

③在已搜索结点表中,按表中记录的顺序取出关联结点,作为当前已到达结点,存入已检查到达结点表中,同时记录该结点所在的边。

④扫描当前结点的关联结点,检查这些结点是否在服务范围内,将满足条件的关联结点存入已搜索结点表中。

⑤重复执行第②_④步。

求解中心服务范围的程序框图如图5-44所示。

图5-44 求解中心服务范围的程序框图
(3)中心资源的分配范围。

资源分配就是将空间网络的边或结点,按照中心的供应量及网络边和结点的需求量,分配给一个中心的过程,它用来模拟空间网络上资源的供需关系。

设一个带中心的空间网络G=(V,E,C),其中V表示空间网络结点的集合,E表示网络边的集合,C为网络的一个中心。

已知中心的货源量CS,中心的阻值cw,dij和wij分别表示网络边eij的需求量和费用, r表示网络上任何结到中心的(vi,vc)间的最短路径,ric是该路径的费用,m是网络当前的总需求量。

则资源的分配范围定义为满足下列条件的网络边和结点的集合P:
资源分配范围的求解思想是,依次求出到服务中心费用不超过中心最大阻值,同时网络的总需求量不超过中心的货源量的路径,组成这些路径的网络结点和边的集合就构成了该中心资源分配的范围。

处理时同时考虑到网络和网络结点的需求量。

具体处理时与服务范围的搜索方式类似。

算法的主要步骤如下:
①(初始化)将中心所在的结点作为v0,存入已标记结点集S中,并初始化有关变量。

②如果整个网络都已被分配,则停止;否则,执行第④步。

③如果总货源量都已被分配,则停止;否则,执行第④步。

④在尚未分配的结点集中,寻找距离中心v0路径最短的结点vn,假设vn的前一点是vm,将(vm,vn)作为当前处理的边。

⑤判断网络流在边(vm,vn)上的运行情况:
边接受到来自vm点的流量:LRmn=min{LLmn,POm}
边消耗掉的流量:LFmn=min{LDmn,LRmn}
由该边流向vn的流量:LOmn=LRmn-LFmn
其中,LDmn, LLmn分别为(vm,vn)边的需求量和通行能力;POm为vm点发出的流量。

⑥如果(vm,vn)边流向vn点的流最为0,则该边停止运输。

如果(vm,vn)边流向vn点的流量小于该边的需求最,则将该边的一部分分配给中心后,停止运输。

如果(vm,vn)边流向vn点的流量大于该边的需求量,则考察网络流在vn点上的接受最PRn、消耗量PFn和发出量POn。

⑦判断网络流在结点vn上的运行情况,与网络流在边上的运行情况类似:
结点vn接受到来自(vm,vn)的流量:PRn=min{PLn,POn}
结点vn消耗掉的流量:PFn=min{PDn,PRn}
由结点vn流向相邻边的流量:POn=PRn-PFn其中,PDn,PLn分别为结点vn的需求量和通行能力。

⑧如果POn≤0,则该点停止运输。

如果POn>0,则考察与结点vn相邻的边。

⑨如果存在与vn点相邻的边(vn,vr),该边尚未分配而该边的vn点已经分配,则给该边分配它所需要的量LDnr,此时,从vn点流向其它相邻的,且另一端点尚未分配的过的流量为POn=POn-LDnr。

⑩记录已分配的结点vm、边(vm,vn)或边(vn,vr),并从未分配的点、边集合和中减去这些元素,将点vn作为当前结点。

⑾计算全网络点或边的总消耗量LFT、PFT,点或边的分配数LNT、PNT 以及总的消耗量TF。

相关文档
最新文档