武汉大学学报(工学版)   2017, Vol. 50 Issue (3): 354-358

文章信息

晋良海, 梁巧秀, 张再昌, 陈述
JIN Lianghai, LIANG Qiaoxiu, ZHANG Zaichang, CHEN Shu
既定水池供水区划的Voronoi模型及其算法
Voronoi model and algorithm of water supply division for a given pool location
武汉大学学报(工学版), 2017, 50(3): 354-358
Engineering Journal of Wuhan University, 2017, 50(3): 354-358
http://dx.doi.org/10.14188/j.1671-8844.2017-03-006

文章历史

收稿日期: 2016-09-21
既定水池供水区划的Voronoi模型及其算法
晋良海, 梁巧秀, 张再昌, 陈述     
三峡大学水利与环境学院, 湖北 宜昌 443002
摘要:山区供水规划常利用山头高地布设水池, 针对这种既定水池位置的供水范围区划问题, 提出一种基于Voronoi图的空间区域划分模型及算法.以贵州省纳雍县供水工程管网布置为研究对象, 首先根据该工程地形确定水池位置, 并将水池移入相对坐标中.然后采用Matlab编程语言得到供水区划的Voronoi模型, 构建用水点到水池的最短取水路径.最后根据点定位的分层方法, 用O(n2)的时间和空间复杂度作预处理, 花费O(logn)时间便可定位任意用水点所属的Voronoi区域, 实现任意用水点的优化查询.结果表明, 将Voronoi模型应用到既定水池供水区划中, 能实现既定水池供水范围优化划分, 且能达到成本效益管理要求.
关键词既定水池    优化查询    Voronoi图    区划    
Voronoi model and algorithm of water supply division for a given pool location
JIN Lianghai, LIANG Qiaoxiu, ZHANG Zaichang, CHEN Shu     
College of Hydraulic and Environmental Engineering, China Three Gorges University, Yichang 443002, China
Abstract: Water supply planning of the mountains often use laying pool at mountain highlands. In light of the problem of division for a given pool location, a spatial zoning model and its algorithm are proposed based on Voronoi diagram. Taking the layout of water supply pipe network in Nayong County of Guizhou Province as abject, firstly, according to the given pool which is determined by the terrain of Nayong County, and then the pool is removed into the relative coordinates. Secondly, using Matlab programming language to get the Voronoi model of the division for water supply area, the shortest path from water supply points to the pool water is determined. Finally, according to a layered approach of point positioning problem, using the temporospatial complexity of O(n2) for pretreatment, spending O(logn)time can locate any Voronoi region which the water using point belongs to, the optimizing query of any water using point can be achieved. The results show that the Voronoi model used to the water supply division for a given pool, can make the water supply coverage of the pool to realize optimizing division and to achieve management requirements of cost-effectiveness.
Key words: given pool     optimizing query     Voronoi diagram     area division    

为加强工程建设的成本效益管理,提高山区农村居民生活和生产水平,《农村饮水安全工程建设管理办法》(发改农经〔2013〕2673号)指出[1]:农村饮水安全工程建设应当合理布局,优先采取跨村、跨乡镇联片集中供水等方式,实现供水到户,确保工程投资效益.然而,多数山区农村根据行政辖区来划分供水范围,即使在同一行政区内供水范围也只是根据各村户生产生活用水量进行划分,然后采用网络优化的方法实现管网的优化布置,没有协调好供水保障率和供水范围重叠之间的关系,供水管网的空间分布不能满足成本效益管理要求.因此,利用山头地势布设水池的既定供水点的服务范围划分问题,是山区供水工程设计必须解决的基础问题.

区划问题一般出现在水能资源规划[2-4]、生态河岸带功能区划[5-8]、滑坡地质灾害危险性区划及洪灾风险区划[9-11]中,且大多采用GIS技术[2, 9-11]构建区划模型.加权Voronoi图也常被用于城市空间影响范围研究[12-13]、地市级旅游区划研究[14]以及城市湿地功能分区模型研究[15].可见,Voronoi图在区划模型中得到广泛应用.针对山区复杂地形供水问题,文献[16]对地表进行Delaunay三角网格划分,并将三角网格转换成带边权的网络模型,运用改进的Dijkstra算法计算两点间最短管线线程,为优化供水管网提供依据.然而,供水管网不仅有一级管网的优化目标,而且更需要对末端水池的二级管网优化进行研究.本文采用Voronoi图构造末端水池供水区划模型,在Matlab编程语言环境下,依托贵州省纳雍县山区农村饮水安全工程对既定水池供水区划问题进行案例研究,为科学解决末端水池二级供水管网的精细优化问题提供新的思路.

1 基于Voronoi图的既定水池区划模型 1.1 增量法原理

增量法是构造Voronoi图最普遍采用的算法.采用增量法实现既定水池区划优化的基本思想是[17]:逐步加入水池点,在已构造的Voronoi图的基础上利用局部特性,采取局部修改方法,生成新的Voronoi图,即对于平面离散水池点集P={p1, p2, …, pn},在生成水池点集Pk={p1, p2, …, pk}(kn)的Voronoi图的基础上,加入pk+1,通过局部修改来构造Pk+1={p1, p2, …, pk, pk+1}的Voronoi图.如此不断加入新的水池点,最后可得到VD(P).

实现增量法思路的主要步骤是定位和局部修改,以下详细分析.

1.2 新加水池点定位

查询新加入水池点pk+1VD(Pk)中的位置,即其所在的Voronoi区域VR(Pi)(1≤ik).可通过将pk+1pk中每个水池点的距离进行比较,找到离其最近的水池点pi,即可确定pk+1.

1.3 对Voronoi图局部修改

水池点pk+1加入后,在其周围形成一个由离pk+1最近的点组成的Voronoi区域VR(Pk+1), 见图 1.pk+1落在VR(Pi)中,用pk+1pi的中垂线把VR(Pi)分成两部分,每部分的点分别离pk+1pi最近.它和VR(Pi)交于tq两点.用pk+1pj的中垂线把VR(Pj)分成两部分,同理,每部分的点分别离pk+1pj最近.该线交VR(Pj)于qr两点.用r代替q循环上述工作,直到t点被垂直平分形成一个多边形为止(图 1虚线多边形).最后删除该多边形中间的边和顶点,便形成pk+1的Voronoi多边形VR(Pk+1),见图 2.

图 1 新加入水池点的定位与其Voronoi区域计算 Figure 1 Positioning of new pool point and its Voronoi region calculation
图 2 修改后的Voronoi图 Figure 2 Modified Voronoi diagram

其中VD(Pk)表示k个水池点的Voronoi区域的并集, VR(Pi)表示水池点pi的Voronoi区域.

2 Voronoi图的增量算法构造

采用增量法原理,利用Matlab编程语言作为辅助工具,构造平面离散水池点的Voronoi图.首先在Matlab界面中输入平面离散水池点集P={p1, p2, …, pn},进行一系列运算,输出P的Voronoi图VD(P).具体逻辑关系如下:

1) 如果n≤1,返回.

2) 计算VR(p1),VR(p2).//通过计算p1p2的中垂线得到.

3) for(k=3;knk=k+1){

4) 计算水池点pk所属的Voronoi区域,设为VR(pi).

5) 计算水池点pk的Voronoi区域VR(pk)}.

3 任意用水点的优化查询

利用点定位问题的分层方法,用O(n2)的时间和空间复杂度作预处理,花费O(logn)时间便可找出任意用水点所属的Voronoi区域[16].

预处理过程:经过每一个顶点作一条水平线,对这些水平线的高度进行排序,记为数组A.Voronoi图平面被分成n+1个水平长条,称为层.整个Voronoi图被分成若干个梯形或三角形,且这些梯形或三角形要有指针指向原来所在的多边形.在每一层中,按位置在X1方向上对以上梯形或三角形进行排序,把第i层排序结果记为数组Bi,具体见图 3.

图 3 被水平线划分的Voronoi图 Figure 3 Voronoi diagram divided by horizontal line

给定任意用水点,先用二分法搜索数组A所在位置i层,再搜索Bi所在的梯形或三角形.数组ABi中的元素个数最多为O(n),所以任意用水点的定位查询的时间复杂度为O(logn).

4 工程应用 4.1 工程背景

纳雍县地处中国贵州省西北部、毕节市南部.该县东西长56 km,南北宽48 km,总面积2 448 km2.全县辖27个乡镇:雍熙街道办事处、居仁街道办事处、文昌街道办事处、王家寨镇、中岭镇、阳长镇、龙场镇、维新镇、乐治镇、百兴镇、张家湾镇,勺窝乡、新房乡、厍东关乡、董地乡、化作乡、寨乐乡、老凹坝乡、沙包乡、水东乡、曙光乡、姑开乡、锅圈岩乡、羊场乡、昆寨乡、左鶂嘎乡、猪场乡,具体见图 4.

图 4 纳雍县地理分布示意图 Figure 4 Schematic view of geographical distribution of Nayong County
4.2 根据山头地形确定水池位置

为满足纳雍县所有乡镇供水需求,分别在王家寨镇、中岭镇、阳长镇、维新镇、龙场镇、乐治镇、百兴镇、张家湾镇、羊场乡、锅圈岩乡、化作乡、猪场乡、沙包乡、水东乡设置供水水池.根据地形图,确定各乡镇山头高地作为水池修建地点,以重力进行输水.14个水池的位置坐标见表 1.

表 1 水池位置及对应坐标关系图 Table 1 Diagram of pool position and its corresponding coordinates
水池位置横坐标X1/mm纵坐标X2/mm
羊场乡1176
维新镇3072
锅圈岩乡1258
化作乡3760
猪场乡2144
龙场镇3650
沙包乡5450
乐治镇6547
王家寨镇5939
中岭镇3628
水东乡7532
阳长镇2820
张家湾镇5417
百兴镇397
注:选以上14个乡镇布置水池,一方面考虑经济问题,不可多布置;另一方面使水池尽可能地覆盖到整个县城,方便各村人民取水.
4.3 既定位置水池的区划Voronoi图

根据表 1中的数据将所定的14个水池移入直角坐标系X1~X2中,见图 5.

图 5 既定水池位置(单位:mm) Figure 5 Pool predetermined position (unit: mm)

采用Matlab编程语言,首先输入点的坐标X=[11, 30, 12, 37, 21, 36, 54, 65, 59, 75, 36, 28, 54, 39];Y=[76, 72, 58, 60, 44, 50, 50, 47, 39, 32, 28, 20, 17, 7],然后定出点的位置,最后调用函数polytope得既定水池位置的重力式输水区划Voronoi图.

图 6可知,每个Voronoi图多边形所包含的村庄到所在多边形内的水池取水路径最短,位于Voronoi图多边形边上的村庄到其两边水池取水路径一样长.

图 6 既定水池区划Voronoi图 Figure 6 the Voronoi diagram of given pool area division
4.4 纳雍县供水范围区划图

结合图 4-6,得纳雍县供水范围区划图,见图 7.

图 7 纳雍县供水范围区划图 Figure 7 Zoning map of Nayong County's water supply coverage
4.5 任意用水点优化查询

为体现任意用水点的优化查询,以勺窝乡为例,给定用水点,采用任意用水点优化查询原理,将图 6分为18层,先用二分法搜索勺窝乡所在位置13层,再搜索B13所在的梯形,最终确定勺窝乡居民在中岭镇所设的水池中取水路径最短,见图 8.

图 8 任意用水点优化查询图 Figure 8 Optimizing query graph of any water point
5 结论

针对山区供水布设既定水池位置的区划问题,提出一种基于Voronoi图的空间区域划分模型及算法,以纳雍县供水为研究实例,得出如下结论:

1) 在纳雍县的14个乡镇布置水池,利用Matlab编程得到既定水池区划Voronoi图,水池供水范围实现优化划分,山区农村供水得到保障且不会重叠覆盖.

2) 利用点定位问题的分层方法,用O(n2)的时间和空间复杂度作预处理,花费O(logn)时间便可定位任意用水点所属的Voronoi区域,大大提高任意用水点的优化查询.

3) 由于本文水池布设点较少,所以采用增量法的原理构造既定水池Voronoi图,算法简单且易于理解与编程.但增量算法总的时间复杂度为O(n2),对于布设点较多的图形中,可用增量法先构造Voronoi图的对偶图——Delaunay三角化[18],再计算Voronoi图会简化时间的复杂度.

参考文献
[1] [2673]发改农经号. 农村饮水安全工程建设管理办法[S], 2013.
[2673]The Development and Reform of Agricultural Economics.The measures of drinking water safety construction and management in rural areas[S], 2013.
[2] 张仁贡, 程夏蕾, 陈星, 等. 全国水能资源区划GIS信息系统的研究与开发[J]. 水力发电学报, 2013, 32(1): 19–24.
Zhang Rengong, Cheng Xialei, Chen Xing, et al. Study and development of the geographic information system for national hydro-energy resources division[J]. Journal of Hydroelectric Engineering, 2013, 32(1): 19–24.
[3] 唐克旺, 唐蕴, 李原园, 等. 地下水功能区划体系及其应用[J]. 水利学报, 2012, 43(11): 1349–1356.
Tang Kewang, Tang Yun, Li Yuanyuan, et al. Technical system of functional division for groundwater and its application in China[J]. Journal of Hydraulic Engineering, 2012, 43(11): 1349–1356.
[4] 张仁贡, 程夏蕾. 基于可拓传导效应的水能资源区划模型研究[J]. 水力发电学报, 2012, 31(5): 41–47.
Zhang Rengong, Cheng Xialei. Study of hydro-energy resources division model based on extension transmit effect[J]. Journal of Hydroelectric Engineering, 2012, 31(5): 41–47.
[5] Omernik J M, Bailey R G. Distinguishing between watershed and ecoregion[J]. Journal of American Water Resources Association, 1997, 33(5): 935–949. DOI:10.1111/jawr.1997.33.issue-5
[6] 孟伟, 张远, 郑丙辉. 水生态区划方法及其在中国的应用前景[J]. 水科学进展, 2007, 18(2): 293–300.
Meng Wei, Zhang Yuan, Zheng Binghui. Aquatic ecological region approach and its application in China[J]. Advances in Water Science, 2007, 18(2): 293–300.
[7] 张晶, 董哲仁, 孙东亚, 等. 基于主导生态功能分区的河流健康评价全指标体系[J]. 水利学报, 2010, 41(8): 883–892.
Zhang Jin, Dong Zheren, Sun Dongya, et al. Complete river health assessment index system based on eco-regional method according to dominant ecological functions[J]. Journal of Hydraulic Engineering, 2010, 41(8): 883–892.
[8] 吴佳宁, 王刚. 河流生态功能区划研究进展[J]. 水利水电技术, 2013, 44(9): 25–30.
Wu Jianing, Wang Gang. Progress of research on river eco-functional zoning[J]. Water Resources and Hydropower Engineering, 2013, 44(9): 25–30.
[9] 俞布, 潘文卓, 宋健, 等. 杭州市滑坡地质灾害危险性区划与评价[J]. 岩土力学, 2012, 33(S1): 193–199.
Yu Bu, Pan Wenzhuo, Song Jian, et al. Risk zonation and evaluation of landslide geohazards in Hangzhou[J]. Rock and Soil Mechanics, 2012, 33(S1): 193–199.
[10] Furdada G, Calderon L E, Marques M A. Flood hazard map of La Trinidad(NW Nicaragua), method and results[J]. Natural Hazards, 2008, 42(2): 183–195.
[11] 李林涛, 徐宗学, 庞博, 等. 中国洪灾风险区划研究[J]. 水利学报, 2012, 43(1): 22–30.
Li Lintao, Xu Zongxue, Pang Bo, et al. Flood risk zoning in China[J]. Journal of Hydraulic Engineering, 2012, 43(1): 22–30.
[12] 李圣权, 胡鹏, 闫卫阳. 基于加权Voronoi图的城市影响范围划分[J]. 武汉大学学报(工学版), 2004, 37(1): 94–97.
Li Shengquan, Hu Peng, Yan Weiyang. Delimitation of central cities influenced regions based on weighted-Voronoi diagram[J]. Engineering Journal of Wuhan University, 2004, 37(1): 94–97.
[13] 范昕, 彭泽群, 龚健, 等. 基于加权Voronoi图的湖北省城市影响范围分析[J]. 湖北民族学院学报(自然科学版), 2013, 31(4): 478–480.
Fan Xin, Peng Zequn, Gong Jian, et al. Analysis of the sphere of influence of the cities of Hubei Province based on weighted Voronoi diagram[J]. Journal of Hubei University for Nationalities(Natural Science Edition), 2013, 31(4): 478–480.
[14] 耿协鹏, 杨传勇. 全形态Voronoi图在地市级旅游区划中的应用研究[J]. 武汉工业学院学报, 2006, 25(2): 46–50.
Geng Xiepeng, Yang Chuanyong. Research on district partition of tourism resource based on Voronoi diagram[J]. Journal of Wuhan Polytechnic University, 2006, 25(2): 46–50.
[15] 苗李莉, 蒋卫国, 万圆, 等. 基于加权Voronoi图的北京市湿地功能分区研究[J]. 地球信息科学学报, 2013, 15(4): 554–559.
Miao Lili, Jiang Weiguo, Wan Yuan, et al. Beijing urban wetland function zoning based on the weighted Voronoi diagram[J]. Journal of Geo-information Science, 2013, 15(4): 554–559.
[16] 晋良海, 胡瑶, 朱忠荣, 等. 复杂地形条件下供水管线点对间线程的离散优化方法[J]. 水电能源科学, 2015, 33(2): 108–110.
Jin Lianghai, Hu Yao, Zhu Zhongrong, et al. Discrete optimization method of thread between two points of water pipeline under complex terrain conditions[J]. Water Resources and Power, 2015, 33(2): 108–110.
[17] 汪嘉业, 王文平, 屠长河, 等. 计算几何及应用[M]. 北京: 科学出版社, 2011: 49-155.
Wang Jiaye, Wang Wenping, Tu Changhe, et al. Computational Geometry and Its Applications[M]. Beijing: Science Press, 2011: 49-155.
[18] 罗以宁, 王开平. 离散平面Voronoi图的光栅图形算法[J]. 四川大学学报(自然科学版), 2003, 40(3): 596–599.
Luo Yining, Wang Kaiping. The raster graphic algorithm of the Voronoi diagram in discrete plane[J]. Journal of Sichuan University(Natural Science Edition), 2003, 40(3): 596–599.