基于贪婪算法的站点选址问题

前段时间学建筑的同学找我帮忙完成一个解决类似选址问题的程序,包括前期数据准备及算法实现,总结记录如下:

一、程序需求:

  解决一个简单的问题:在校园的道路内设置站点,要求尽使用可能少的站点覆盖所有区域。

二、解决思路:

  因为站点需要设置在校园内的道路上,因此第一步需要获取校园的路网数据;其次,考虑从道路中分割出足够密集的点,作为站点设置的可行点(简称为可行点);

  为了量化覆盖范围同时方便解决问题,生成均匀的网格点于园区内,覆盖所有的网格点即认为覆盖了所有区域。

  确定每个可行点覆盖的网格点,这样问题就转化为找到最少数量的可行点,来覆盖所有的网格点;因此选址问题即转化为集合覆盖问题。

三、技术路线:

  1.数据准备:

    1)通过OpenStreeMap获取校园路网数据

    2)使用Arcgis筛选处理数据,包括:路网数据筛选、校园边界路网提取(用于后期圈定范围)

扫描二维码关注公众号,回复: 9312116 查看本文章

    3)将校园内的路网分割成点,作为站点设置可行点;生成均匀的网格点于园区内;(数据库实现)

  2.算法实现:

    1)确定每个可行点覆盖的网格点,以对象-集合形式存储。

    2)利用贪婪算法求解。(python实现)

(未完待续)

猜你喜欢

转载自www.cnblogs.com/console-chan/p/12342414.html