基于路网的最佳位置选择

来源:互联网 发布:珠宝批发软件 编辑:程序博客网 时间:2024/04/27 04:18

1.    问题分析

最佳位置(Optimal Location)查询是一种在资源规划中极其有用的一类空间查询。给定一个现存的基础设施和人群的信息,最佳位置查询给出设施能发挥最大效用的位置。

1.1 三个查询

作者给出了三种不同类型的相关查询:

查询1. 修建一个超市,显然需要查找一个能吸引更多顾客的位置(这里只考虑顾客到达超市的距离),即最佳位置应该为人群密集但超市却不多的地方。使∑w(c)取得最大值得位置就是查询结果,其中c代表小区,w(c)代表小区人数,则w(c)取得最大值时表示了能吸引最大顾客数的位置。

查询2. 为了减少自己的员工送货所走的路程最短。使(wc*ac) 取得最小值的地方即为查询结果,其中w(c)同查询1a(c)表示从c小区到最近的一个连锁店的距离。

查询3. 显然上述两个查询不能应用于公共设施的建设,比如消防站。消防站的建设需要最小化离消防站的距离,即消防站需要覆盖所有的用户,保障所有用户的利益。使max(w(c)*a(c))中的最大值最小的位置即为查询结果。

1.2    三个查询的比较(个人理解)

直观上看,查询1与查询2均偏向喜欢人群密集的地方,例如图1-1,图中红点表示小区,只允许在绿色线上增设设施,此时没有任何商店,只有小区。对于查询1可以在绿色线上的任何位置建立超市便可使w(c) 取得最大值,即所有的小区。对于查询2则为人群密集区处,如图中所示应该为位置v3,令w(c) = 1,则(wc*ac) = 158。貌似建立超市在v3处也可获得最大利益。

在建立第一个超市(连锁店)时查询1与查询2没有区别。令建立的第一个超市(连锁店)在v3处。但建立第二个超市时将明显不同,对于查询1将超市建立在v5v6之间靠近v5处的那个小区可以吸引更多小区里的用户(6户)。但是对于查询2连锁店的位置应该在v7处,因为v3到达v7处小区的位置距离大于v3到其它各个小区的距离之和,只有建在此处才会使(wc*ac)取得最小值58。但貌似作为一个老板第二家连锁店应该不会建立到v7处。

从以上分析可以看出当建立第一家超市(或连锁店)时查询1与查询2可以相同,但当第二家时就发生了分歧。查询1继续选择用户群密集处,而查询2却选择了人烟稀少的荒凉出。


对于查询3第一个消防站建立在v3-v7v3距离为45处,这样最大距离为55。查询3的结果更靠近于偏远地区。但查询3与查询2到底应该是什么关系呢?继续思考中……但有一点几乎可以肯定,查询3的结果中满足查询2的位最佳查询3的结果,同理查询1的结果中满足查询2的为最佳的查询1

2.    问题求解

以图2-1为例描述三个查询的求解过。图中f代表已有设施,c代表小区,v代表路口,加粗的蓝线部分表示能够增加设施的地发。

查询1

依次遍历每一段能够建立超市的地方,(v6, c9), (c9, c7) , (c7, f3) , (f3, v5) , (v1, c2) , (c2, v2) , (v3,c4) , (c4, v4),计算出每一段能够吸引的顾客数,最终返回吸引最大顾客数的位置。

查询2

查询2要求公式(wc*ac) 取得最小值,与m(p) = (wc*(ac-d(c, p))取得最大值相同。其中d(c, p)表示建立p连锁店后c小区到达连锁店最近的距离,a(c)表示建立p之前c小区到达最近的连锁店的距离。

对于任意一条线段e,其左、右端点分别为LR,则有:

(1) m(L)  m(R),则可证明m(p) < max(m(L),m(R)) = m(e);

(2) m(L) = m(R)m(p) = m(R),则m(e) = m(L) = m(R);

(3) m(L) = m(R)m(p) < m(R),则m(e) = m(L) = m(R).

由上述三种情况可得在端点最大处取得m的最大值。因此对于查询2只需计算端点出即可,且满足上述第二个公式时,整条线段e都是最佳位置。


2-2 原有资源分布图

查询3

依次遍历所有的能建立消防站的分段,(v6, c9), (c9, c7) , (c7, f3) , (f3, v5) , (v1, c2) , (c2, v2) ,(v3, c4) , (c4, v4),记录降低最大值的最佳位置,最佳位置不是将当前最大值降低为0,而是指建立该消防站后所有小区距离消防站的最大值最小。

 

参考论文:Dynamic Monitoring of Optimal Locations in Road Network Databases

0 0
原创粉丝点击