无线传感器网络SECA 算法

来源:互联网 发布:淘宝工作室工作靠谱吗 编辑:程序博客网 时间:2024/06/10 07:50

[WSNs] SECA 算法

  • 创建阶段
    这个阶段主要的目标是创建簇和发现簇头节点。在创建期间,基站收集所有节点的位置和能量水平信息。由于节点是固定的,所以可以计算出初始的聚类点。令C 是左右节点的中心点,假设有 n 个传感器节点,C 可以定义为:
    C=ni=1Xin

    Xi 是第 i 个节点的坐标。
    定义R 为所有节点到中心节点C 的平均距离:
    R=ni=1XiCn

    根据CR 可以求出第 i 个初始聚类点mi(mix,miy)
    {mix=R×cos(360k×(i1)×π180)+Cxmiy=R×sin(360k×(i1)×π180)+Cy

    k 是聚类点个数可以由以下式子计算:
    k=n2πϵfsϵmpMd2toBS

    n 为节点数,M 为方形场地的边界,dtoBS 是所有节点到基站的距离的均值。
    k-means 算法将 n 个节点分到 k 个簇中,分类的依据是节点到簇的距离最短。该发可以表示为:
    avgS mini=1kXjSiXjmi2

    Si 表示第 i 个簇,Xi 表示节点 j 的坐标,mi 是聚类点的坐标。
    为了满足上式,我们需要迭代 t 次,得到最聚类点到节点均值的最小值。第 t 轮分簇可以表示为:
    S(t)i={Xj:Xjm(t)i2Xjm(t)i2for all i=1,,k}

    当节点分类完成后,计算新的聚类点:
    m(t+1)i=1S(t)iXjS(t)iXj

    S(t)i 是簇 i 中的节点数。

第100次迭代后的节点聚类分布图
图 1 t=100 时的聚类

50 个节点,方形场地长100,计算得到的k 为5,BS坐标(50,180)。

红色圆点为传感器节点,
蓝色三角为 C 点,
圆为中心是C,半径是R 的初始聚类点的选择边界,
黑色星号为初始聚类点,蓝色星号为第100次迭代后得到的聚类点,
图中节点与聚类点的连线表示该节点所在簇。

在实验中发现聚类的个数k 受到 dtoBS 影响较大。当BS 的位置处于100x100 的场地中时k 的数量有明显增加,而且较多聚类会使簇节点增多,WSN整体的能量水平和生存时间会缩短。

这里写图片描述
图2 BS坐标(100,100) k为14。

这里写图片描述
图3 BS 坐标(50,50), k值竟然到了64。很显然这样并不科学。

1 0
原创粉丝点击