一种城市公共服务设施选址方法

文档序号:9751396阅读:887来源:国知局
一种城市公共服务设施选址方法
【技术领域】
[0001]本发明涉及一种城市公共服务设施选址方法,属于地理信息系统领域。
【背景技术】
[0002]对于一个寻址过程而言,一般需要如下参数:(I)寻址范围地图数据,寻址范围内的地图数据包括了用于评价寻址结果的数据参数,一般而言以栅格数据的形式提供给寻址人、寻址程序;(2)寻址点个数,建筑作用范围。寻址点个数指的是所需要寻找的建筑的个数,现实工作生活中一般都需要寻找多个建筑的最优建筑地址,在多个建筑的最优建筑地址的寻找过程中,枚举方法因计算量大以及容易出错已经不再适用。建筑作用范围指的是单个建筑可以产生作用的范围,作为评价寻址结果的一个重要参数提供给寻址人、寻址程序;(3)寻址目标,寻址目标一般是使得寻址结果最优或者最符合所设定条件,或者是最快最优地找寻到一个符合目标的解。
[0003]所以对于一个寻址过程,寻址地图、寻址参数和寻址目标必不可少。
[0004]目前选址方法通常有模拟退火算法,禁忌搜索算法,遗传算法,蚁群算法等,模拟退火算法模仿固定物质的退火过程,其中能量函数用目标函数的某种形式来表示,算法的目标是搜索能量最低的系统状态,伴随温度下降,模拟退火算法以小概率选择能量升高的相邻状态,但实现全局收敛的时间性能较差;禁忌搜索标记已经得到的局部最优解,并在进一步迭代过程中避开这些解,因此对于初始解有较强的依赖性;遗传算法模拟生物种群的进化过程,以获得竞争力较强地下一代种群为目标进行迭代过程,因此普通的遗传算法有收敛速度慢、易早熟的不足;蚁群算法模仿蚂蚁依赖信息素进行通信而显示出的社会行为,是一种通用的随机试探法,但本身很复杂,一般需要较长的搜索时间。

【发明内容】

[0005]本发明所解决的问题:克服现有技术遍历方法计算时间长、普通遗传算法容易早熟的特点,根据用户所设定的寻址参数,在给定的寻址地图中寻找多个建筑点,使得建筑所覆盖面积内受众最大,通过改进遗传算法,仿真公共服务设施选址时的作用过程,实现了在给定条件下优化选址的功能。
[0006]本发明采用的技术方案为一种城市公共服务设施选址方法,步骤如下:
[0007]如图1所示:
[0008]第一步:导入地图数据:打开存储了人口分布栅格数据的文本文档,设定选择区域边界大小,设定寻址结果的存储路径;设定选择区域边界大小之后,在打开的人口分布栅格数据的文本文档中,读取研究区域的内容,作为选择区域的地图;
[0009]第二步:设定寻址目标:设定设址点的个数和单个建筑覆盖范围,这两个参数将作为第三步选址运算的运行参数;
[0010]第三步:遗传算法的实现:在第一步获得的选择区域的地图中,根据第二步设定的设址点个数和单个建筑覆盖范围,利用改进的较快速的选择和淘汰操作的遗传算法计算覆盖范围最大的目标序列;
[0011]第四步:寻址结果的存储和显示:将第三步获得的覆盖范围最大的目标序列存储在第一步设定好的寻址结果存储路径下。
[0012]所述第三步的改进的较快速的选择和淘汰操作的遗传算法实现过程为:
[0013](I)初始化算法参数:根据第一步设定的选择区域边界大小计算表示一个地址时所需要的基因位数,根据第二步设定的设址点个数计算表达所需设施点个数个地址时所需要的基因长度,初始化遗传算法所需要的运行参数,所述运行参数包括交叉概率、基因突变率、参与算法的个体数和遗传操作的代数;然后随机生成父本基因池,清空子代基因池和总基因池,并进行一次遗传操作,遗传操作为基因交叉和基因突变,生成基因序列,再将生成的基因序列放置在子代基因池中;
[0014](2)计算基因池得分:在第一步所读取的选择区域内,分别计算由(I)获得的各基因序列表达的选址结果的覆盖范围,并作为它们的对应得分;
[0015](3)选择和淘汰操作:
[0016]有A和B两种方式,对于较快速的选择和淘汰操作,选择A,对于较少进化代数的选择和淘汰操作,选择B;
[0017]A.较快速的选择和淘汰操作:将父本基因池和子代基因池中的全部个体放置在总基因池中,根据(2)获得的得分将基因池进行排序,使得得分高的个体处于基因池的前部,而得分低的个体处于基因池的后面;将总基因池中前(I)中初始化的参与算法个体数个个体替代父本基因池,再对父本基因池进行一次遗传操作:基因交叉和基因突变,将生成的基因序列放置在子代基因池中;
[0018]B.较少进化代数的选择和淘汰操作:根据(2)获得的得分,对子代基因池和父本基因池分别进行排序,得到两个基因池中得分最高的个体;如果子代基因池中的个体最高得分比父本基因池中的最高得分要低,就视为这一次遗传操作失败了,将重新进行对父本基因池进行基因交叉和基因突变这两个遗传操作,生成(I)中初始化的参与算法个体数个个体放置在子代基因池中,再进行(2)计算基因池得分和(3)选择和淘汰的操作;如果此次遗传操作成功,则将子代和父本基因池中的全部个体放置在总基因池中,根据(2)获得的得分将基因池进行排序,使得得分高的个体处于基因池的前部,而得分低的个体处于基因池的后面;将总基因池中前(I)中初始化的参与算法个体数个个体替代父本基因池,再对父本基因池进行一次遗传操作:基因交叉和基因突变,将生成的基因序列放置在子代基因池中;
[0019](4)迭代操作:重复(2)计算基因池得分和(3)选择和淘汰操作,直到达到(I)中预设的遗传操作的代数的边界值;
[0020](5)邻域搜索:在遗传算法所得到的结果周围进行邻域搜索,经过(I)?(4)的操作,遗传算法如果没有收敛到全局最优解,也是收敛到离全局最优解很近的局部最优解上,对经过(I)?(4)得到的遗传算法结果进行一次邻域搜索,试探是否有更优的解,对局部最优解的邻域搜索时长与寻址点个数正相关。
[0021]本发明与现有的技术方法相比有益的效果是:
[0022](I)寻址时间短。相较于遍历方法,多目标下的遗传算法本来就具有用时较短的特点。相较于传统的遗传算法寻址方法而言,改进的较快速的选择和淘汰操作的遗传算法具有寻址时间短的特点。例传统的遗传算法寻址方法在选择区域为10*10的地图上寻找4个建筑地址时需要消耗百毫秒量级的时间,而改进的较快速的选择和淘汰操作的遗传算法在十毫秒量级上便能完成运算。主要是因为传统遗传算法的轮盘赌选择会因为寻址点个数的增加而使得程序运行时间变长。
[0023](2)寻址具有学习性。相较于遍历方法、普通遗传算法而言,寻址过程的发展方向较为随机,而改进的具有较少进化代数的选择和淘汰操作的遗传算法寻址方法,在进化的过程中具有一定的学习性,因此寻址的结果更为优化。传统遗传算法在选择区域为10*10的地图上寻找4个建筑时平均收敛迭代代数为50代左右,而较少进化代数的选择和淘汰操作的遗传算法寻址方法平均在19?20代便完成收敛。
【附图说明】
[0024]图1为本发明实现流程图;
[0025]图2为本发明中较快速遗传算法流程图;
[0026]图3为本发明中较少进化代数遗传算法流程图。
【具体实施方式】
[0027]下面结合附图及实施例对本发明进行详细说明。
[0028]如图1所示,针对城市公共服务设施选址时数据量大,人工计算成本高的特点,将遗传算法应用于设置条件下的城市公共服务设施寻址,以达到快速选址,优化选址的目的,具体实现如下:
[0029]准备工作:搭建开发环境
[0030]使用MicrosoftVisual C++6.0。
[0031]第一步:导入地图数据
[0032]1.1打开存储了人口分布栅格数据的的文本文档。
[0033]1.2设定选择区域边界大小,选择区域可以是1.1文本文档中的全部数据,也可以是用户指定区域范围内的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1