作者:chenkun | 来源:互联网 | 2023-09-14 15:55
已经初步写出论文,论文地址见文末。 符号说明 F :圆覆盖后图形区域 r_i :圆i 的半径; dij :圆i 与圆j 的圆心距; Sij :圆i 与圆j 的重叠面积; T :目标区域内所有节点集合 C :公共节点集合 O :圆心节点集合 M :覆盖区域圆个数
自适应K-中心聚类方法基本思想:使用圆心数据作为K-中心聚类的初始中心,开始聚类,然后用最小的圆覆盖同类中的节点,判断是否满足约束条件,不满足则调整圆,再将此时的圆心作为下一次聚类的中心,重新聚类,重复上面过程,最终得到满足题目条件的一跳覆盖区划分的结果。 自适应K-中心聚类方法流程如下: ①设置迭代次数Num,使用正六边形一跳覆盖区方案的圆心位置作为聚类的初始中心。采用这种初始位置选择的方法,使得我们的初始中心在目标区域内的分布较平均,使得聚类后的同类范围相差不大; ②K-中心聚类方法聚成K 类; ③用最小的圆来完全覆盖K 类中的节点,此时的覆盖圆集满足约束条件2); ④考虑约束条件1),当上面的覆盖圆集中某圆的半径时,我们选择圆内节点与其它圆心的距离最远的点,将圆心朝着该点移动,直到可以用半径为r 的圆覆盖它为止。此时该半径为r 的圆肯定不覆盖原来同类中的所有节点,漏覆盖的点将其加入最接近的一类中。由于我们初始中心的为半径为100 的正六边形一跳覆盖区方案,所以一定可以用半径小于100 的圆覆盖住露出的节点。从而得到新的覆盖圆集; ⑤考虑约束条件3)中满足转发任务的条件,这里我们理解转发任务即为在两圆的公共部分是否存在公共节点,存在则满足转发任务,反之则不满足。检查上面得到的覆盖圆集中圆的公共部分中是否存在公共节点,如果不存在,则找到离此圆距离最近的外部节点,扩大圆的半径并移动圆心,直到覆盖距离最近外部节点。圆心移动和扩大半径示意图见图5。满足此条件的覆盖圆集中的节点为连通的,也就解决了约束条件4)的问题; 建立一个记录库,任意选取一个公共节点记入记录库,搜索其它公共节点,如果与记录库中节点连通,则加入记录库中,继续搜索直到没有公共节点与记录库中节点连通。如果记录库包含所有存在的公共节点,说明网络节点连通,否则不连通。 效果展示:
论文地址:https://mianbaoduo.com/o/bread/YpmXmpdp