用布谷鸟算法求解基站选址

用布谷鸟算法求解基站选址

0 Jupyter & Python代码

在这里

1 问题描述

要求:对于给出的数据集–深圳市楼盘带经纬度—设立基站。每个基站的有效覆盖范围为10Km,欲让基站信号覆盖所有小区,求解最小的基站数目以及其位置。

2 解题思路

2.1 整体思路

  1. 将经纬度换成km为单位的坐标(1°经度=111.1km, 1°纬度=92km)
  2. 算出各小区间的距离,称a小区20km以内的小区为a的邻居。做出一个领居链表:形如{a:[b, c], b: [a], c: [a], d:[]}
  3. 处理有0个邻居的小区:在附近5km内随机地建立基站
  4. 处理有1个邻居的小区:在此小区与其邻居中间建立基站
  5. 处理有多个领居的小区:用布谷鸟寻优。

2.2 在当前问题应用布谷鸟寻优

  1. 设立两个鸟巢(1*m维数组),称为x_nest, y_nest。对应位置的组合即为一个基站位置。m表示当前选用m个基站。
  2. 适应度函数定义为未被包含的小区数量。
  3. 按照布谷鸟算法的方式更新与抛弃解。
  4. 当适应度函数达到0时,m减一进行下类型的布谷鸟迭代。

3 结果

用布谷鸟算法求解基站选址_第1张图片

你可能感兴趣的:(python学习,研究生生活,算法)