CN108229737A - 一种基于凸包覆盖的医疗站点部署方法 - Google Patents

一种基于凸包覆盖的医疗站点部署方法 Download PDF

Info

Publication number
CN108229737A
CN108229737A CN201711479345.XA CN201711479345A CN108229737A CN 108229737 A CN108229737 A CN 108229737A CN 201711479345 A CN201711479345 A CN 201711479345A CN 108229737 A CN108229737 A CN 108229737A
Authority
CN
China
Prior art keywords
website
convex closure
vertex
jumps
medical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201711479345.XA
Other languages
English (en)
Other versions
CN108229737B (zh
Inventor
朱旭东
张吕峥
娄华杰
蔡锋
苏寿海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bsoft Co Ltd
Original Assignee
Bsoft Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bsoft Co Ltd filed Critical Bsoft Co Ltd
Priority to CN201711479345.XA priority Critical patent/CN108229737B/zh
Publication of CN108229737A publication Critical patent/CN108229737A/zh
Application granted granted Critical
Publication of CN108229737B publication Critical patent/CN108229737B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • G06Q30/0204Market segmentation
    • G06Q30/0205Location or geographical consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Accounting & Taxation (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Educational Administration (AREA)
  • Image Generation (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种基于凸包覆盖的医疗站点部署方法。本发明尝试使用大数据挖掘获得城市各区域的医疗需求,然后将城市交通图及医疗需求映射为抽象图G(V,E),并使用改进后的图的凸包覆盖方法对G进行覆盖,从而得到部署站点的位置。本发明获得的城市的交通平面图中的道路网络包括交叉路口和连接交叉路口的路段。然后将道路网抽象成网络拓扑图G(V,E)。本发明采用大数据分析和计算几何的方法解决医疗站点部署规划问题,使用手环数据估计人群对医疗的需求,然后把医疗站点的部署转化为图的覆盖问题,并提出一种基于凸包覆盖的算法来计算得到站点的分布方案。可以有效达到负载平衡,提高城市医疗系统的运行效率。

Description

一种基于凸包覆盖的医疗站点部署方法
技术领域
本发明涉及一种基于凸包覆盖的医疗站点部署方法。
背景技术
医疗站点是未来医疗服务的发展趋势,具有节省病患的看病时间,节约社会医疗和交通资源等各种的作用。城市中的医疗站点的部署通常按照街道或者若干大的小区来部署。
然而随着城市化的发展,不仅各区域的人口趋向不平衡,还存在各种因素影响社区医疗站点的部署效果。同样人口数量的区域,老龄化严重的区域比其他区域需要更多的医疗站点。出生婴儿、儿童和育龄妇女比例高的区域比其他区域需要更多的医疗站点。获得优化的医疗站点部署方案,可以使各站点之间达到负载平衡,可以使用尽可能少的资源满足广大人民群众的医疗需求。
医疗站点部署是一个高维非线性规划问题,将这一问题转化为一般的线性规划问题求解是比较困难的。可以证明,它是一个NP难问题,采用传统的统一部署方案,不能快速、精确地找到最优解。
综上所述,本发明的方法进行社区医疗站点部署,试图达到以下目标:
站点的数量尽可能少,单个站点的利用率高。医疗站点需要占用大量的土地、人力和药物库存等资源,提高单个站点的利用率并在同样的服务体验的情况下尽可能减少医疗站点数量是主要目标;
各站点的负载均衡。避免有的站点人满为患而有的站点没有病患可治疗的情况。
发明内容
本发明的目的是针对现有技术的不足,提供一种基于凸包覆盖的医疗站点部署方法。本发明尝试使用大数据挖掘获得城市各区域的医疗需求,然后将城市交通图及医疗需求映射为抽象图G(V,E),并使用改进后的图的凸包覆盖方法对G进行覆盖,从而得到部署站点的位置。在本发明中,假设路段的密度要远大于医疗站点的部署密度,这在现实世界中也可以得到验证。
本发明首先获得城市的交通平面图,交通平面图中的道路网络包括交叉路口和连接交叉路口的路段。然后将道路网抽象成网络拓扑图G(V,E)。
本发明解决其技术问题所采用技术方案包括如下步骤:
步骤1、将城市交通平面图映射为网络拓扑图,具体实现如下:
步骤1-1.初始化i=0,顶点集合V为空。
步骤1-2.如果城市交通平面图中所有的路段都已经被标记,则跳转到步骤1-5;
步骤1-3.i=i+1,找到城市交通平面图中任意一条没有被标记的路段,创建一个顶点vi,将vi(x)和vi(y)设置为该条路段中心的经度和维度,将顶点vi加入顶点集合V中,并标记该路段为已处理。
所述的路段指两个交叉口之间没有其他交叉口的道路;
步骤1-4.跳转到步骤1-2;
步骤1-5.将i赋值给n1,即n1=i,其中n1用于表示顶点集合V中顶点的个数;
步骤1-6.初始化边的集合E为空,同时初始化i=1;
步骤1-7.如果i>n1,跳转到步骤1-13;
步骤1-8.初始化j=1;
步骤1-9.如果j>n1,跳转到步骤1-12;
步骤1-10.如果vi和vj所代表的路段在城市交通图上通过一个交叉路口直接相连,则在边的集合E中加入边(vi,vj)
步骤1-11.j=j+1,跳转到步骤1-9;
步骤1-12.i=i+1,跳转到步骤1-7;
步骤1-13.结束。
通过步骤1将城市交通平面图映射为一个无向图G(V,E),与单纯表示逻辑关系的普通无向图不同,该无向图G的顶点处于坐标系中,即每一个顶点都有一个经度和维度来确定在坐标系中的位置。
表1.人员运动信息表T
步骤2、根据运动手环数据计算每个人的医疗需求,运动手环数据参看表1,具体实现如下:
步骤2-1.初始化数组N[n],其中每一个元素N[i]表示i号人员对医疗服务的需求强度,即该人员平均每天需要的医疗次数;
步骤2-2.初始化i=1;
步骤2-3.如果i>n,跳转到步骤2-10;
步骤2-4.设x=T(i).age,设u=25,o=1,正态分布f(x)如公式(1),对元素N[i]赋值,N[i]=k*(f(25)-f(T(i).age)),k为经
验常数,T(i)表示表1中的第i行记录;
步骤2-5.i=i+1,跳转到步骤2-3。
步骤3.计算得到一个站点集合S,使S能够覆盖顶点集合V的凸包,具体实现如下:
步骤3-1.生成顶点集合V的凸包顶点集合B和凸包边集合E,初始化S为空集;
步骤3-2.初始化level_S为空集,同时初始化i=1,TV=V;
步骤3-3.选定第一个站点的位置si,将si放入集合level_S,并将si.v从TV中删除。
步骤3-4.如果凸包边集合E已经完全被level_S中的站点覆盖,则跳转到步骤3-7.
步骤3-5.i=i+1,选定下一个站点si,将站点si放入level_S。
步骤3-6.跳转到步骤3-4;
步骤3-7.将level_S中的站点加入到S中。
步骤3-8.如果凸包顶点集合B所围出来的区域已经被集合level_S完全覆盖,则跳转到步骤3-10.
步骤3-9.使用函数Next_B(level_S,E)生成内层凸包顶点集合B'和内层凸包边集合E',将B'赋值到B,E'赋值到E;i++,跳转到步骤3-2。
步骤3-10.返回站点集合S,即需要部署站点的位置,结束。
所述的步骤3-1生成顶点集合V的凸包顶点集合B和凸包边集合E的过程具体如下:
步骤3-1-1.初始化边的集合E为空,初始化凸包顶点集合B为空。
步骤3-1-2.初始化i=1;
步骤3-1-3.如果i大于顶点集合V中顶点的个数,则跳转到步骤3-1-14;
步骤3-1-4.初始化j=1;
步骤3-1-5.如果j大于顶点集合V中顶点的个数,则跳转到步骤3-1-13;
步骤3-1-6.如果i==j,则j=j+1,跳转到步骤3-1-5;
步骤3-1-7.如果(vi,vj)或者(vj,vi)已经在集合E中,则j=j+1,跳转到步骤3-1-5;
步骤3-1-8.如果V中其他所有顶点不是全部在直线(vi,vj)的一侧,则j++,跳转到步骤3-1-5;
步骤3-1-9.将(vi,vj)加入集合E;
步骤3-1-10.如果vi不在B中,则将vi加入B;
步骤3-1-11.如果vj不在B中,则将vj加入B;
步骤3-1-12.j=j+1,跳转到步骤3-1-5;
步骤3-1-13.i=i+1,跳转到步骤3-1-3;
步骤3-1-14.返回凸包的顶点集合B和凸包的边集合E,结束。
步骤3-3所述的选定第一个站点的位置si,具体实现过程如下:
步骤3-3-1.将凸包边集合E赋值到集合TE;
步骤3-3-2.初始化i=1,v=null,d=10000,r=10000。
步骤3-3-3.如果i>n2,跳转到步骤3-3-11,其中n2表示集合TV中顶点的个数。
步骤3-3-4.顶点vi的覆盖半径ri,ri=get_r(vi,N);
步骤3-3-5.初始化di=10000;di指顶点vi到集合TE中边的最短距离。
步骤3-3-6.取出集合TE中的一条边(vp,vq),将该边从TE中删除,new_di=Abs((vq.y-vp.y)*vi.x+(vp.x-vq.x)*vi.y+(vp.y-vq.y)*vi.x+(vq.x-vp.x)*vi.y)/Sqrt((vq.y-vp.y)*(vq.y-vp.y)+(vp.x-vq.x)*(vp.x-vq.x));
步骤3-3-7.如果new_di<di,则di=new_di;
步骤3-3-8.如果TE不为空,跳转到步骤5-6;
步骤3-3-9.如果abs(di-ri/2)<abs(d-r/2),则d=di,v=vi,r=ri。
步骤3-3-10.i=i+1,跳转到步骤3-3-3
步骤3-3-11.返回(v,r)。
步骤3-5所述的选定下一个站点si,具体的实现如下:
在V中找到一个顶点v,则该顶点v需满足以下条件:
Ⅰ.在v部署站点的覆盖圆与E相交,也与S中某个站点v’的覆盖圆相交;
Ⅱ.在v部署的站点与E交点的连线长度加上v与v’交点的连线长度最短。
具体实现步骤如下:
步骤3-5-1.初始化d=10000,站点ts=null,r=10000,i=1;
步骤3-5-2.如果i>n,跳转到步骤3-5-17;
步骤3-5-3.TS=S,TE=E,count=0,从V中取顶点vi;count表示vi的覆盖圆和S中多少个站点的覆盖圆相交。
步骤3-5-4.ri=get_r(vi,N),获得vi部署站点的覆盖半径;
步骤3-5-5.如果TS为空,跳转到步骤3-5-11;
步骤3-5-6.从TS中取一个站点s,从TS中删除s;
步骤3-5-7.如果(s.v.x-vi.x)^2+(s.v.y-vi.y)^2<(s.r+ri)^2,则count++;
步骤3-5-8.如果count>1,跳转到步骤3-5-16;
步骤3-5-9.ns=s,cc赋值为s和(vi,ri)交点连线的长度。
步骤3-5-10.跳转到步骤3-5-6;
步骤3-5-11.从TE中取一条边(vp,vq),并将边(vp,vq)从TE中删除;
步骤3-5-12.如果vi到(vp,vq)的距离大于ri,跳转到步骤3-5-11。
步骤3-5-13.cl赋值为(vi,ri)与直线(vp,vq)的交点连线长度;
步骤3-5-14.如果cl+cc<d,则d=cl+cc,ts=(vi,ri);
步骤3-5-15.如果TE不为空,跳转到步骤3-5-11;
步骤3-5-16.i++,跳转到步骤3-5-2;
步骤3-5-17.返回站点ts。
步骤3-9所述的生成内层凸包顶点集合B'和内层凸包边集合E'的函数Next_B(level_S,E)具体实现如下:
步骤3-9-1.初始化NB和NV为空;
步骤3-9-2.取level_S中的两个站点,得到覆盖圆的交点vp和vq;
步骤3-9-3.如果vp与E中所有边的最短距离小于vq与E中所有边的最短距离,则将vq加入到NV中,否则将vp加入到NV中。
步骤3-9-4.如果level_S中任意两个站点都已经计算过覆盖圆的交点,则跳转到步骤3-9-6;
步骤3-9-5.跳转到步骤3-9-2;
步骤3-9-6.生成顶点集合NV的凸包顶点集合B和凸包边集合E;
步骤3-9-7.返回凸包的顶点集合B和凸包的边集合E,结束。
所述的步骤3-9-6生成顶点集合NV的凸包顶点集合B和凸包边集合E的方法与步骤3-1相同。
所述的步骤3-3-4和步骤3-5-4中顶点vi的覆盖半径ri的函数get_r(vi,N)求解如下:
步骤①.初始化服务半径r=R,R表示站点的服务半径上限;
步骤②.初始化服务负载l=demand(v.x,v.y,r),初始化迭代阈值a=0.99;
步骤③.如果l小于等于L,则跳转到步骤⑧;
步骤④.r=L*r/l;
步骤⑤.l=demand(v.x,v.y,r);
步骤⑥.如果l<L且l>L*a,则跳转到步骤⑧;
步骤⑦.跳转到步骤④;
步骤⑧.返回r,结束。
所述的步骤②和步骤⑤中的函数demand是获得以(x,y)为圆心,r为半径的范围内的医疗需求,并将获取的数据赋值在函数demand(x,y,r)中,实现过程如下:
步骤a.初始化i=0,初始化d=0,r=d;
步骤b.如果i>n,跳转到步骤e;
步骤c.如果(T(i).x-x)^2+(T(i).y-y)^2<r^2,则d=d+N(i),r=d;
步骤d.i++,跳转到步骤b;
步骤e.返回d,结束。
本发明友谊效果如下:
本发明采用大数据分析和计算几何的方法解决医疗站点部署规划问题,使用手环数据估计人群对医疗的需求,然后把医疗站点的部署转化为图的覆盖问题,并提出一种基于凸包覆盖的算法来计算得到站点的分布方案。可以有效达到负载平衡,提高城市医疗系统的运行效率。
具体实施方式
本发明首先获得城市的交通平面图,交通平面图中的道路网络包括交叉路口和连接交叉路口的路段。然后将道路网抽象成网络拓扑图G(V,E)。
本发明解决其技术问题所采用技术方案包括如下步骤:
步骤1、将城市交通平面图映射为网络拓扑图,具体实现如下:
步骤1-1.初始化i=0,顶点集合V为空。
步骤1-2.如果城市交通平面图中所有的路段都已经被标记,则跳转到步骤1-5;
步骤1-3.i=i+1,找到城市交通平面图中任意一条没有被标记的路段,创建一个顶点vi,将vi(x)和vi(y)设置为该条路段中心的经度和维度,将顶点vi加入顶点集合V中,并标记该路段为已处理。
所述的路段指两个交叉口之间没有其他交叉口的道路;
步骤1-4.跳转到步骤1-2;
步骤1-5.将i赋值给n1,即n1=i,其中n1用于表示顶点集合V中顶点的个数;
步骤1-6.初始化边的集合E为空,同时初始化i=1;
步骤1-7.如果i>n1,跳转到步骤1-13;
步骤1-8.初始化j=1;
步骤1-9.如果j>n1,跳转到步骤1-12;
步骤1-10.如果vi和vj所代表的路段在城市交通图上通过一个交叉路口直接相连,则在边的集合E中加入边(vi,vj)
步骤1-11.j=j+1,跳转到步骤1-9;
步骤1-12.i=i+1,跳转到步骤1-7;
步骤1-13.结束。
通过步骤1将城市交通平面图映射为一个无向图G(V,E),与单纯表示逻辑关系的普通无向图不同,该无向图G的顶点处于坐标系中,即每一个顶点都有一个经度和维度来确定在坐标系中的位置。
表1.人员运动信息表T
步骤2、根据运动手环数据计算每个人的医疗需求,运动手环数据参看表1,具体实现如下:
步骤2-1.初始化数组N[n],其中每一个元素N[i]表示i号人员对医疗服务的需求强度,即该人员平均每天需要的医疗次数;
步骤2-2.初始化i=1;
步骤2-3.如果i>n,跳转到步骤2-10;
步骤2-4.设x=T(i).age,设u=25,o=1,正态分布f(x)如公式(1),对元素N[i]赋值,N[i]=k*(f(25)-f(T(i).age)),k为经验常数,T(i)表示表1中的第i行记录;
步骤2-5.i=i+1,跳转到步骤2-3。
步骤3.计算得到一个站点集合S,使S能够覆盖顶点集合V的凸包,具体实现如下:
步骤3-1.生成顶点集合V的凸包顶点集合B和凸包边集合E,初始化S为空集;
步骤3-2.初始化level_S为空集,同时初始化i=1,TV=V;
步骤3-3.选定第一个站点的位置si,将si放入集合level_S,并将si.v从TV中删除。
步骤3-4.如果凸包边集合E已经完全被level_S中的站点覆盖,则跳转到步骤3-7.
步骤3-5.i=i+1,选定下一个站点si,将站点si放入level_S。
步骤3-6.跳转到步骤3-4;
步骤3-7.将level_S中的站点加入到S中。
步骤3-8.如果凸包顶点集合B所围出来的区域已经被集合level_S完全覆盖,则跳转到步骤3-10.
步骤3-9.使用函数Next_B(level_S,E)生成内层凸包顶点集合B'和内层凸包边集合E',将B'赋值到B,E'赋值到E;i++,跳转到步骤3-2。
步骤3-10.返回站点集合S,即需要部署站点的位置,结束。
所述的步骤3-1生成顶点集合V的凸包顶点集合B和凸包边集合E的过程具体如下:
步骤3-1-1.初始化边的集合E为空,初始化凸包顶点集合B为空。
步骤3-1-2.初始化i=1;
步骤3-1-3.如果i大于顶点集合V中顶点的个数,则跳转到步骤3-1-14;
步骤3-1-4.初始化j=1;
步骤3-1-5.如果j大于顶点集合V中顶点的个数,则跳转到步骤3-1-13;
步骤3-1-6.如果i==j,则j=j+1,跳转到步骤3-1-5;
步骤3-1-7.如果(vi,vj)或者(vj,vi)已经在集合E中,则j=j+1,跳转到步骤3-1-5;
步骤3-1-8.如果V中其他所有顶点不是全部在直线(vi,vj)的一侧,则j++,跳转到步骤3-1-5;
步骤3-1-9.将(vi,vj)加入集合E;
步骤3-1-10.如果vi不在B中,则将vi加入B;
步骤3-1-11.如果vj不在B中,则将vj加入B;
步骤3-1-12.j=j+1,跳转到步骤3-1-5;
步骤3-1-13.i=i+1,跳转到步骤3-1-3;
步骤3-1-14.返回凸包的顶点集合B和凸包的边集合E,结束。
步骤3-3所述的选定第一个站点的位置si,具体实现过程如下:
步骤3-3-1.将凸包边集合E赋值到集合TE;
步骤3-3-2.初始化i=1,v=null,d=10000,r=10000。
步骤3-3-3.如果i>n2,跳转到步骤3-3-11,其中n2表示集合TV中顶点的个数。
步骤3-3-4.顶点vi的覆盖半径ri,ri=get_r(vi,N);
步骤3-3-5.初始化di=10000;di指顶点vi到集合TE中边的最短距离。
步骤3-3-6.取出集合TE中的一条边(vp,vq),将该边从TE中删除,new_di=Abs((vq.y-vp.y)*vi.x+(vp.x-vq.x)*vi.y+(vp.y-vq.y)*vi.x+(vq.x-vp.x)*vi.y)/Sqrt((vq.y-vp.y)*(vq.y-vp.y)+(vp.x-vq.x)*(vp.x-vq.x));
步骤3-3-7.如果new_di<di,则di=new_di;
步骤3-3-8.如果TE不为空,跳转到步骤5-6;
步骤3-3-9.如果abs(di-ri/2)<abs(d-r/2),则d=di,v=vi,r=ri。
步骤3-3-10.i=i+1,跳转到步骤3-3-3
步骤3-3-11.返回(v,r)。
步骤3-5所述的选定下一个站点si,具体的实现如下:
在V中找到一个顶点v,则该顶点v需满足以下条件:
Ⅰ.在v部署站点的覆盖圆与E相交,也与S中某个站点v’的覆盖圆相交;
Ⅱ.在v部署的站点与E交点的连线长度加上v与v’交点的连线长度最短。
具体实现步骤如下:
步骤3-5-1.初始化d=10000,站点ts=null,r=10000,i=1;
步骤3-5-2.如果i>n,跳转到步骤3-5-17;
步骤3-5-3.TS=S,TE=E,count=0,从V中取顶点vi;count表示vi的覆盖圆和S中多少个站点的覆盖圆相交。
步骤3-5-4.ri=get_r(vi,N),获得vi部署站点的覆盖半径;
步骤3-5-5.如果TS为空,跳转到步骤3-5-11;
步骤3-5-6.从TS中取一个站点s,从TS中删除s;
步骤3-5-7.如果(s.v.x-vi.x)^2+(s.v.y-vi.y)^2<(s.r+ri)^2,则count++;
步骤3-5-8.如果count>1,跳转到步骤3-5-16;
步骤3-5-9.ns=s,cc赋值为s和(vi,ri)交点连线的长度。
步骤3-5-10.跳转到步骤3-5-6;
步骤3-5-11.从TE中取一条边(vp,vq),并将边(vp,vq)从TE中删除;
步骤3-5-12.如果vi到(vp,vq)的距离大于ri,跳转到步骤3-5-11。
步骤3-5-13.cl赋值为(vi,ri)与直线(vp,vq)的交点连线长度;
步骤3-5-14.如果cl+cc<d,则d=cl+cc,ts=(vi,ri);
步骤3-5-15.如果TE不为空,跳转到步骤3-5-11;
步骤3-5-16.i++,跳转到步骤3-5-2;
步骤3-5-17.返回站点ts。
步骤3-9所述的生成内层凸包顶点集合B'和内层凸包边集合E'的函数Next_B(level_S,E)具体实现如下:
步骤3-9-1.初始化NB和NV为空;
步骤3-9-2.取level_S中的两个站点,得到覆盖圆的交点vp和vq;
步骤3-9-3.如果vp与E中所有边的最短距离小于vq与E中所有边的最短距离,则将vq加入到NV中,否则将vp加入到NV中。
步骤3-9-4.如果level_S中任意两个站点都已经计算过覆盖圆的交点,则跳转到步骤3-9-6;
步骤3-9-5.跳转到步骤3-9-2;
步骤3-9-6.生成顶点集合NV的凸包顶点集合B和凸包边集合E;
步骤3-9-7.返回凸包的顶点集合B和凸包的边集合E,结束。
所述的步骤3-9-6生成顶点集合NV的凸包顶点集合B和凸包边集合E的方法与步骤3-1相同。
所述的步骤3-3-4和步骤3-5-4中顶点vi的覆盖半径ri的函数get_r(vi,N)求解如下:
步骤①.初始化服务半径r=R,R表示站点的服务半径上限;
步骤②.初始化服务负载l=demand(v.x,v.y,r),初始化迭代阈值a=0.99;
步骤③.如果l小于等于L,则跳转到步骤⑧;
步骤④.r=L*r/l;
步骤⑤.l=demand(v.x,v.y,r);
步骤⑥.如果l<L且l>L*a,则跳转到步骤⑧;
步骤⑦.跳转到步骤④;
步骤⑧.返回r,结束。
所述的步骤②和步骤⑤中的函数demand是获得以(x,y)为圆心,r为半径的范围内的医疗需求,并将获取的数据赋值在函数demand(x,y,r)中,实现过程如下:
步骤a.初始化i=0,初始化d=0,r=d;
步骤b.如果i>n,跳转到步骤e;
步骤c.如果(T(i).x-x)^2+(T(i).y-y)^2<r^2,则d=d+N(i),r=d;
步骤d.i++,跳转到步骤b;
步骤e.返回d,结束。

Claims (9)

1.一种基于凸包覆盖的医疗站点部署方法,其特征在于包括如下步骤:
步骤1、将城市交通平面图映射为网络拓扑图;
步骤2、根据运动手环数据计算每个人的医疗需求;
步骤3、计算得到一个站点集合S,使S能够覆盖顶点集合V的凸包;
步骤1所述的将城市交通平面图映射为网络拓扑图,具体实现如下:
步骤1-1.初始化i=0,顶点集合V为空;
步骤1-2.如果城市交通平面图中所有的路段都已经被标记,则跳转到步骤1-5;
步骤1-3.i=i+1,找到城市交通平面图中任意一条没有被标记的路段,创建一个顶点vi,将vi(x)和vi(y)设置为该条路段中心的经度和维度,将顶点vi加入顶点集合V中,并标记该路段为已处理;
所述的路段指两个交叉口之间没有其他交叉口的道路;
步骤1-4.跳转到步骤1-2;
步骤1-5.将i赋值给n1,即n1=i,其中n1用于表示顶点集合V中顶点的个数;
步骤1-6.初始化边的集合E为空,同时初始化i=1;
步骤1-7.如果i>n1,跳转到步骤1-13;
步骤1-8.初始化j=1;
步骤1-9.如果j>n1,跳转到步骤1-12;
步骤1-10.如果vi和vj所代表的路段在城市交通图上通过一个交叉路口直接相连,则在边的集合E中加入边(vi,vj)
步骤1-11.j=j+1,跳转到步骤1-9;
步骤1-12.i=i+1,跳转到步骤1-7;
步骤1-13.结束。
2.根据权利要求1所述的一种基于凸包覆盖的医疗站点部署方法,其特征在于步骤2所述的根据运动手环数据计算每个人的医疗需求,具体实现如下:
步骤2-1.初始化数组N[n],其中每一个元素N[i]表示i号人员对医疗服务的需求强度,即该人员平均每天需要的医疗次数;
步骤2-2.初始化i=1;
步骤2-3.如果i>n,跳转到步骤2-10;
步骤2-4.设x=T(i).age,设u=25,o=1,正态分布f(x)如公式(1),对元素N[i]赋值,N[i]=k*(f(25)-f(T(i).age)),k为经验常数,T(i)表示表1中的第i行记录;
步骤2-5.i=i+1,跳转到步骤2-3;
表1.人员运动信息表T
3.根据权利要求2所述的一种基于凸包覆盖的医疗站点部署方法,其特征在于步骤3所述的计算得到一个站点集合S,使S能够覆盖顶点集合V的凸包,具体实现如下:
步骤3-1.生成顶点集合V的凸包顶点集合B和凸包边集合E,初始化S为空集;
步骤3-2.初始化level_S为空集,同时初始化i=1,TV=V;
步骤3-3.选定第一个站点的位置si,将si放入集合level_S,并将si.v从TV中删除;
步骤3-4.如果凸包边集合E已经完全被level_S中的站点覆盖,则跳转到步骤3-7.
步骤3-5.i=i+1,选定下一个站点si,将站点si放入level_S;
步骤3-6.跳转到步骤3-4;
步骤3-7.将level_S中的站点加入到S中;
步骤3-8.如果凸包顶点集合B所围出来的区域已经被集合level_S完全覆盖,则跳转到步骤3-10.
步骤3-9.使用函数Next_B(level_S,E)生成内层凸包顶点集合B'和内层凸包边集合E',将B'赋值到B,E'赋值到E;i++,跳转到步骤3-2;
步骤3-10.返回站点集合S,即需要部署站点的位置,结束。
4.根据权利要求3所述的一种基于凸包覆盖的医疗站点部署方法,其特征在于步骤3-1所述的生成顶点集合V的凸包顶点集合B和凸包边集合E的过程具体如下:
步骤3-1-1.初始化边的集合E为空,初始化凸包顶点集合B为空;
步骤3-1-2.初始化i=1;
步骤3-1-3.如果i大于顶点集合V中顶点的个数,则跳转到步骤3-1-14;
步骤3-1-4.初始化j=1;
步骤3-1-5.如果j大于顶点集合V中顶点的个数,则跳转到步骤3-1-13;
步骤3-1-6.如果i==j,则j=j+1,跳转到步骤3-1-5;
步骤3-1-7.如果(vi,vj)或者(vj,vi)已经在集合E中,则j=j+1,跳转到步骤3-1-5;
步骤3-1-8.如果V中其他所有顶点不是全部在直线(vi,vj)的一侧,则j++,跳转到步骤3-1-5;
步骤3-1-9.将(vi,vj)加入集合E;
步骤3-1-10.如果vi不在B中,则将vi加入B;
步骤3-1-11.如果vj不在B中,则将vj加入B;
步骤3-1-12.j=j+1,跳转到步骤3-1-5;
步骤3-1-13.i=i+1,跳转到步骤3-1-3;
步骤3-1-14.返回凸包的顶点集合B和凸包的边集合E,结束。
5.根据权利要求3所述的一种基于凸包覆盖的医疗站点部署方法,其特征在于步骤3-3所述的选定第一个站点的位置si,具体实现过程如下:
步骤3-3-1.将凸包边集合E赋值到集合TE;
步骤3-3-2.初始化i=1,v=null,d=10000,r=10000;
步骤3-3-3.如果i>n2,跳转到步骤3-3-11,其中n2表示集合TV中顶点的个数;
步骤3-3-4.顶点vi的覆盖半径ri,ri=get_r(vi,N);
步骤3-3-5.初始化di=10000;di指顶点vi到集合TE中边的最短距离;
步骤3-3-6.取出集合TE中的一条边(vp,vq),将该边从TE中删除,
new_di=Abs((vq.y-vp.y)*vi.x+(vp.x-vq.x)*vi.y+(vp.y-vq.y)*vi.x
+(vq.x-vp.x)*vi.y)/Sqrt((vq.y-vp.y)*(vq.y-vp.y)+(vp.x-vq.x)*(
vp.x-vq.x));
步骤3-3-7.如果new_di<di,则di=new_di;
步骤3-3-8.如果TE不为空,跳转到步骤5-6;
步骤3-3-9.如果abs(di-ri/2)<abs(d-r/2),则d=di,v=vi,r=ri;
步骤3-3-10.i=i+1,跳转到步骤3-3-3
步骤3-3-11.返回(v,r)。
6.根据权利要求5所述的一种基于凸包覆盖的医疗站点部署方法,其特征在于步骤3-5所述的选定下一个站点si,具体的实现如下:
在V中找到一个顶点v,则该顶点v需满足以下条件:
Ⅰ.在v部署站点的覆盖圆与E相交,也与S中某个站点v’的覆盖圆相交;
Ⅱ.在v部署的站点与E交点的连线长度加上v与v’交点的连线长度最短;
具体实现步骤如下:
步骤3-5-1.初始化d=10000,站点ts=null,r=10000,i=1;
步骤3-5-2.如果i>n,跳转到步骤3-5-17;
步骤3-5-3.TS=S,TE=E,count=0,从V中取顶点vi;count表示vi的覆盖圆和S中多少个站点的覆盖圆相交;
步骤3-5-4.ri=get_r(vi,N),获得vi部署站点的覆盖半径;
步骤3-5-5.如果TS为空,跳转到步骤3-5-11;
步骤3-5-6.从TS中取一个站点s,从TS中删除s;
步骤3-5-7.如果(s.v.x-vi.x)^2+(s.v.y-vi.y)^2<(s.r+ri)^2,则count++;
步骤3-5-8.如果count>1,跳转到步骤3-5-16;
步骤3-5-9.ns=s,cc赋值为s和(vi,ri)交点连线的长度;
步骤3-5-10.跳转到步骤3-5-6;
步骤3-5-11.从TE中取一条边(vp,vq),并将边(vp,vq)从TE中删除;
步骤3-5-12.如果vi到(vp,vq)的距离大于ri,跳转到步骤3-5-11;
步骤3-5-13.cl赋值为(vi,ri)与直线(vp,vq)的交点连线长度;
步骤3-5-14.如果cl+cc<d,则d=cl+cc,ts=(vi,ri);
步骤3-5-15.如果TE不为空,跳转到步骤3-5-11;
步骤3-5-16.i++,跳转到步骤3-5-2;
步骤3-5-17.返回站点ts。
7.根据权利要求3所述的一种基于凸包覆盖的医疗站点部署方法,其特征在于步骤3-9所述的生成内层凸包顶点集合B'和内层凸包边集合E'的函数Next_B(level_S,E)具体实现如下:
步骤3-9-1.初始化NB和NV为空;
步骤3-9-2.取level_S中的两个站点,得到覆盖圆的交点vp和vq;
步骤3-9-3.如果vp与E中所有边的最短距离小于vq与E中所有边的最短距离,则将vq加入到NV中,否则将vp加入到NV中;
步骤3-9-4.如果level_S中任意两个站点都已经计算过覆盖圆的交点,则跳转到步骤3-9-6;
步骤3-9-5.跳转到步骤3-9-2;
步骤3-9-6.生成顶点集合NV的凸包顶点集合B和凸包边集合E;
步骤3-9-7.返回凸包的顶点集合B和凸包的边集合E,结束;
所述的步骤3-9-6生成顶点集合NV的凸包顶点集合B和凸包边集合E的方法与步骤3-1相同。
8.根据权利要求6所述的一种基于凸包覆盖的医疗站点部署方法,其特征在于所述的步骤3-3-4和步骤3-5-4中顶点vi的覆盖半径ri的函数get_r(vi,N)求解如下:
步骤①.初始化服务半径r=R,R表示站点的服务半径上限;
步骤②.初始化服务负载l=demand(v.x,v.y,r),初始化迭代阈值a=0.99;
步骤③.如果l小于等于L,则跳转到步骤⑧;
步骤④.r=L*r/l;
步骤⑤.l=demand(v.x,v.y,r);
步骤⑥.如果l<L且l>L*a,则跳转到步骤⑧;
步骤⑦.跳转到步骤④;
步骤⑧.返回r,结束。
9.根据权利要求8所述的一种基于凸包覆盖的医疗站点部署方法,其特征在于步骤②和步骤⑤中的函数demand是获得以(x,y)为圆心,r为半径的范围内的医疗需求,并将获取的数据赋值在函数demand(x,y,r)中,实现过程如下:
步骤a.初始化i=0,初始化d=0,r=d;
步骤b.如果i>n,跳转到步骤e;
步骤c.如果(T(i).x-x)^2+(T(i).y-y)^2<r^2,则d=d+N(i),r=d;
步骤d.i++,跳转到步骤b;
步骤e.返回d,结束。
CN201711479345.XA 2017-12-29 2017-12-29 一种基于凸包覆盖的医疗站点部署方法 Active CN108229737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711479345.XA CN108229737B (zh) 2017-12-29 2017-12-29 一种基于凸包覆盖的医疗站点部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711479345.XA CN108229737B (zh) 2017-12-29 2017-12-29 一种基于凸包覆盖的医疗站点部署方法

Publications (2)

Publication Number Publication Date
CN108229737A true CN108229737A (zh) 2018-06-29
CN108229737B CN108229737B (zh) 2022-01-04

Family

ID=62646080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711479345.XA Active CN108229737B (zh) 2017-12-29 2017-12-29 一种基于凸包覆盖的医疗站点部署方法

Country Status (1)

Country Link
CN (1) CN108229737B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080253688A1 (en) * 2006-11-09 2008-10-16 Technion Research And Development Foundation Ltd. Efficient integration of road maps
CN101498785A (zh) * 2009-03-16 2009-08-05 东南大学 Gnss网络差分定位基准站网构造方法与动态更新方法
CN102223646A (zh) * 2010-04-13 2011-10-19 北京亿阳信通软件研究院有限公司 一种小区覆盖模拟划分方法及系统
CN105427003A (zh) * 2015-12-30 2016-03-23 北京航空航天大学 一种基于出行需求分析的公交站点部署方法
CN106485355A (zh) * 2016-10-12 2017-03-08 创业软件股份有限公司 一种基于门诊大数据分析的就医路线优化方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080253688A1 (en) * 2006-11-09 2008-10-16 Technion Research And Development Foundation Ltd. Efficient integration of road maps
CN101498785A (zh) * 2009-03-16 2009-08-05 东南大学 Gnss网络差分定位基准站网构造方法与动态更新方法
CN102223646A (zh) * 2010-04-13 2011-10-19 北京亿阳信通软件研究院有限公司 一种小区覆盖模拟划分方法及系统
CN105427003A (zh) * 2015-12-30 2016-03-23 北京航空航天大学 一种基于出行需求分析的公交站点部署方法
CN106485355A (zh) * 2016-10-12 2017-03-08 创业软件股份有限公司 一种基于门诊大数据分析的就医路线优化方法

Also Published As

Publication number Publication date
CN108229737B (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
CN110532337B (zh) 面向智慧社区的公共设施服务能力提升方法
CN101702655B (zh) 网络拓扑图的布局方法和系统
CN109189949B (zh) 一种人口分布计算方法
CN107292276A (zh) 一种车载点云聚类方法及系统
CN110504754A (zh) 一种基于地理信息自动生成三维分层结构的电网监控方法
CN107872808A (zh) 一种wlan站址预测分析方法及装置
CN104916124B (zh) 基于马尔可夫模型的公共自行车系统调控方法
CN104809572A (zh) 一种基于夜晚灯光数据反演人口密度的方法
CN109523186A (zh) 城市区域划分方法及装置
CN105354680A (zh) 一种基于gis的电网断面辅助确定分析方法
CN114331020A (zh) 一种基于cim模型一网统管的智慧城市运行管理平台
Zhou et al. Digital manufacturing and urban conservation based on the Internet of Things and 5 G technology in the context of economic growth
CN110443816A (zh) 基于道路交叉口检测的遥感影像上城市道路提取方法
CN109472416A (zh) 基于自动路网数据提取的室内路径规划方法及装置、客户端
CN107169080A (zh) 一种基于gis和空间数据库相结合的地理空间分析系统
Rui et al. Urban growth modeling with road network expansion and land use development
CN111008730B (zh) 基于城市空间结构的人群聚集度预测模型构建方法及装置
CN107688431A (zh) 基于雷达定位的人机交互方法
CN108229737A (zh) 一种基于凸包覆盖的医疗站点部署方法
CN103761332A (zh) 雷电信息综合快速分析定位系统
CN103177650A (zh) 一种基于航拍图的简易数字地图制作方法
CN103458032B (zh) 一种空间数据访问规律动态统计及信息压缩的方法及系统
CN108416486A (zh) 一种用于计算共享单车借车需求量的估算方法
CN115588086A (zh) 地图划分方法、装置、计算机可读存储介质及处理器
CN108596737A (zh) 基于电子商务评论数据的非聚类中心节点分配方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310051 Fifth Floor of Pioneering Intelligence Building, No. 92 Yueda Lane, Changhe Street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Pioneering Huikang Technology Co.,Ltd.

Address before: 310013 fifth floor, Chuangye wisdom building, No. 92 Yueda lane, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: B-SOFT LTD.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant