基于G-Means的中医药可穿戴设备的数据汇聚方法研究*

2020-03-13 03:09王天舒杨曦晨胡孔法胡晨骏
世界科学技术-中医药现代化 2020年6期
关键词:伪码能耗中医药

王天舒,杨曦晨,胡孔法**,胡晨骏

(1. 南京中医药大学人工智能与信息技术学院 南京 210023;2. 南京师范大学计算机科学与技术学院 南京210042)

随着传感器、无线通信、人工智能等技术的不断发展,以及人们对生活水平要求的日益提高,国内外各大仪器制造厂商纷纷投入可穿戴设备的制造,并已逐步融入到人们的生产与生活之中。例如,2012 年谷歌公司研发的首个可穿戴设备谷歌眼镜具有和智能手机一样的功能,可以通过声音完成拍照、视频通话以及导航等工作[1];苹果、Fitbit以及小米等公司研发的智能手环具有实时采集心率与监测睡眠的功能[2]。近年来,国家对中医药领域高度重视,先后发布了《中医药发展战略规划纲要(2016—2030 年)》[3]《“健康中国2030”规划纲要》[4]和《中医药法》[5],并将中医药发展提升至国家战略。而与中医药密切相关的可穿戴设备,可以实时采集与监测人体的健康信息,帮助医生对病人进行诊断与治疗。例如,脉象仪具有体积小易携带特点,可以实时采集人体脉搏信号。因此,中医药可穿戴设备大量引入并应用至各大中医院是今后中医药发展的必然趋势。

中医药可穿戴设备节点可以实时采集患者的脉搏等体征信息,并将这些信息发送至下一跳节点。然而,这些设备均通过电池供电,具有有限的续航时间[6]。因此,降低可穿戴设备节点的能耗是延长续航时间的有效途径。实验表明将可穿戴设备节点组织成簇并进行数据传输的方式可以优化数据传输路径,有效减少节点的能量消耗[7]。

图1 中医可穿戴设备网络

国内外许多学者致力于研究传感器设备节点的高效分簇算法,以最大化网络的生存周期[8-9]。Heinzelman 等[10]提出的LEACH(Low-Energy Adaptive Clustering Hierarchy,低能耗自适应分簇层次算法)是最著名的基于分簇的层次路由协议。该协议将网络生存时间分成多个等长的时间段,每个时间段称之为轮。在每一轮内,所有节点通过一个概率来判断自己是否成为簇头节点。成为簇头的节点通过广播自己的信息来通知周围节点加入其所在的簇集。有些学者在LEACH 方法的基础上针对网络拓扑[11]与簇头选取策略[12]进行改进。Neto 等[13]提出一种多跳簇头模型,采用从下到上的策略,依次为每一层生成相应的簇头,最终得到一个多层结构的网络。Batr 等[14]提出一种基于MAC(Medium Access Control,媒体访问控制)层消息的簇头选择算法LEACH-MAC,该算法根据MAC 层消息将所有传感器设备节点按剩余能量大小排序,剩余能量大的节点具有更高概率被选举成为簇头。然而,这种算法只考虑剩余能量,忽略了节点的地理位置因素。

本文提出一种基于G-Means算法[15]的中医药可穿戴设备分簇方法,通过G-Means 算法对可穿戴设备节点进行分簇,使节点的采集数据按照高效成簇的方式传输,并将剩余能量更高的节点作为簇头收集簇成员节点信息,优化设备节点的能量储备,从而延长节点的生存时间。

1 方法

1.1 中医可穿戴设备网络的构建

在部署有可穿戴设备节点的中医院内,节点通过自身传感器采集病人的体征信息,并发送至相应医生。可穿戴设备之间能够互相传输数据,构成一个可穿戴设备的无线体感网络。图1给出了某中医院内由可穿戴节点组成的无线体感网络。中医医生一般依靠“望、闻、问、切”的手段来实现诊断。因此,在图1中医院为病人配备了采集病人图像数据、病人声音与气味信号、病人身体情况的语音数据、脉搏信息的可穿戴设备。在同一时间,医院可能会有多位病人前来看病,医院可以在这些病人身上同时部署可穿戴设备。图1 的中医院内被部署大量可穿戴设备节点,这些节点被分割成多个簇集。每个簇集内部有一个节点被选举为簇头节点,负责管理所在的簇集。网络中所有可穿戴设备节点采集相关数据,并将采集到的数据发送至对应簇头节点。簇头节点收集簇内所有节点的数据,通过数据融合算法对这些数据进行处理,并汇聚至相应中医医生所使用的观测平台。

在中医可穿戴设备网络中,设备节点是由电池供电的。因此,中医可穿戴设备网络具有有限的生存周期。在本文中,有限的网络时间被等分成多个轮次,在每一轮时间内,提出的高效分簇方法将所有可穿戴设备节点划分成多个簇集,并选举出合适的簇头节点。在不同的时间轮次内,网络的分簇方案会根据所有设备节点的剩余能量与地理位置而产生变化。所有节点按照分簇方法所计算出的分簇方案进行数据采集与传输。

1.2 节点分簇方案

本文采用G-Means 算法对中医药可穿戴设备节点进行分簇,以保证所有簇集均服从正态分布。假设网络中有m 个节点,节点集合标记为N={n1, n2, …ni,…,nm},节点ni的地理坐标为ni=(xi,yi)。网络内节点的分簇步骤如下:

1)计算集合N 中所有元素的初始中心集。将中心集C初始化为空集,通过公式(1)计算N内所有元素的坐标中心,得到中心元素nc,并将nc加入C。

2)通过K-Means 更新中心集C,即C = K-Means(C,N),如算法1 所示。第2-4 行伪码依次初始化变量r、Er与g 为1、0 与|C|。其中,r 代表循环次数,Er为循环停止条件,g 代表簇集数目。初始化工作完成后,从第5 行伪码开始进入主体循环。第6 行伪码更新循环的次数r,每循环一次,r 的值累加1。第7-9 行伪码将g个簇集(Clusteri,1≤i≤g)初始化为空集,其中Clusteri的中心为C[i]。第10-12 行伪码将N 中每个设备节点ni分配至与ni最近的中心所在的簇集。第13-15 行伪码对中心集C 进行更新。第16 行伪码计算所有设备节点至其中心的距离的平方和,并将和值赋值给循环的停止变量Er。第17 行伪码判定是否满足循环停止条件:若Er较Er-1没有变化,结束循环;否则,继续返回第5行伪码。最后,第18行伪码返回最终的中心集C与g个簇集(Cluster1, Cluster2, …, Clusteri, …, Clusterg)。其中,C的第i个元素C[i]是第i个簇集Clusteri的中心。

算法1 中心集C的更新

3)采用高斯分布测试算法,对每个簇集Clusteri进行依次检测,判定其是否都服从高斯分布,具体过程如下:

•将簇集Clusteri中的第j 个设备节点记为nj,j=1,2,…,|Clusteri|。其中,nj的坐标为nj=(xnj,ynj)。

•设定临界值δ=0.0001。

•设簇集Clusteri的初始中心集为IC,从Clusteri中随机选取两个元素作为初始中心,记为ic1与ic2,则IC = {ic1, ic2}。调用算法1(K-Means(IC, Clusteri))更新初始中心集,返回的中心集记为CC={c1,c2}。

•设中心节点c1的坐标为c1=(xc1,yc1),中心节点c2的坐标为c2=(xc2,yc2),计算连接c1与c2的向量v。

• 通过公式(3)依次计算Clusteri中每个节点nj到向 量v 的 投 影nj’。其 中Clusteri′ = {n1′, n2′, …, nj′,…,n|Clusteri|′}。

• 将Clusteri’转 化 为 集 合O = {o1, o2,…, oi, …o|Clusteri|},O符合均值为0,方差为1的标准正态分布;

4)若中心集C 未更新,判定此时的|C|个簇集Cluster1, Cluster2, …, Cluster|C|为最终的分簇结果;否则若C有任意更新,则跳至第(2)步,继续对C进行更新。

1.3 簇头选举算法

通过节点分簇方案,可穿戴设备网络已被划分为多个规模不等的簇集,并且簇集内的所有设备节点地位平等。由图1 可知,在网络的每个簇集内均存在一个簇头节点,用来管理所在的簇集。合适的簇头节点可以提高网络的能效性。因此,本文结合节点的地理位置与剩余能量,提出一个高效的簇头选举方法。

算法2 簇头选举

簇头选举方法的具体过程如算法2 所示。Cluster是存储网络分簇结构的二维数组,数组的每一行代表一个簇集,行内的数据为该行对应簇集内所有设备节点的ID。图2 给出簇头选举方法的示例,图中Cluster数组共有4行数据,表明对应可穿戴设备网络被分成4个簇集。Cluster 第一行内的数据为:(3,9,21,6,13,8),表明网络的第1 个簇集内的节点为:(3,9,21,6,13,8)。

图2 簇头选举

首先,算法2 的第2 行伪码将Cluster 中每个簇集的设备节点进行重新排序。重新排序后首个节点与簇内所有节点距离最短,末位节点与簇内所有节点距离最长。例如,假设图2中的Cluster已排完序,可知节点3与簇内所有节点(3,9,21,6,13,8)的总距离最大,节点8 与簇内所有节点的总距离最小。然后,从第3行伪码开始进入循环,遍历Cluster的每一行,从第5行伪码开始进入第二层循环,遍历Cluster 的每一行中的每一个节点,从而计算网络内所有设备节点成为簇头的权重值w。第6 行伪码将Cluster 的第i 个簇集的第j个节点的权重值w[j]设置为j。例如,图2 中此时Cluster中第一行节点的权重为w={1,2,3,4,5,6}。第7-9行伪码根据节点之前已成为过簇头的次数调整权重值:如果节点在过去的 m 轮内未成为过簇头(节点的count属性等于0),提高其权重值。第10-15行伪码根据节点剩余能量调整权重值:如果节点剩余能量低于平均水平,降低其权重值;如果其剩余能量低于平均水平的一半,进一步降低其权重。例如,设图2中所有设备节点的能量平均值为1,节点3的剩余能量为0.75,那么可知节点3 的权重值需要从1 降至0.5。第16-17行伪码根据当前簇集中节点的权重值得到数组wc。例如,图2 中节点3 的权重值w[1]为0.5,而w[1]<1,故3 不被添至数组wc 中;节点9 的权重值w[2]为2,则将其ID:9添至wc中2次。在遍历完Cluster的第i个簇集后,第20 行伪码从wc 中随机选取一个数作为第i个簇集的簇头。

2 方法评估

2.1 实验环境及参数设置

实验采用MATLAB 对本文所提出的可穿戴设备节点分簇方法进行仿真,并将该方法与LEACH 方法[10]、LEACH-MAC 方法[15]进行对比。实验假设在某个中医院分别部署50 个可穿戴设备节点(场景1)与100 个可穿戴设备节点(场景2)。这两个场景的面积均为100 × 100 m2,中医医生的观测平台位于网络的中心,设备节点的初始能量为0.5 J。表1 给出了实验所用到的参数。其中,Eelec、εfs、εtr、EDA是设备节点在发送与接收数据时与能量消耗大小相关的参数,RDA是簇头节点的数据融合率。在场景1 与场景2 下,本文所提出的方法与LEACH 方法的分簇结构、网络生存时间、以及节点能耗进行比较分析。

表1 实验参数

2.2 分簇结构对比

图3 至图5 分别给出本文提出的方法、LEACH 以及LEACH-MAC 在场景1 与场景2 下的分簇结构对比。图中‘o’表示簇头设备节点,‘*’表示簇成员设备节点,节点间的直线表示两个设备节点之间互相通信。从图3 中可以看出,本文所提方法的簇头分布比LEACH 方法更为均匀,并且簇集内设备节点数目更均衡。例如,图3(b)的网络中包含13 个簇集,规模最大的簇集中有13 个传感器节点,最小的簇集含有5 个传感器节点,簇集中负载数目相差较小,且不会出现散点或负载过多情况。由图4 的LEACH 方法与图5 的LEACH-MAC 方法的分簇结构可知,其簇头的分布不均匀,且簇集的规模相差较大。例如,图4(b)的网络中,规模最大的簇集中有19 个设备节点,规模最小的簇集仅仅包含一个簇头设备节点(散点)。图5(a)中LEACH-MAC 方法将网络内传感器节点分成三个簇集,且这三个簇集的节点数目不均衡,最小规模簇集仅包含2 个传感器节点,而最大规模的簇集包含的传感器节点数据高达28 个。簇集规模过大会导致其簇头能量的大量消耗,而散点会造成簇头设备节点数据融合功能的浪费。因此,本文提出的方法具有更优的分簇结果。

2.3 能耗对比

在中医药可穿戴设备网络中,设备节点具有有限的能量供应。因此,减少设备节点的能量消耗是本文所提方法的主要目的。图6 给出本文提出的方法与LEACH 方法、LEACH-MAC 方法在场景1 与场景2 下每一轮的能耗对比。

由图6(a)可知,在场景1 下:本文所提方法每一轮所有节点所消耗的能量在0.026J上下浮动,LEACH 方法在场景1 下每一轮所有节点所消耗的能量均高于0.028J,而LEACH-MAC 方法在每一轮所有节点消耗的能量均高于0.03J。在本文所提方法中,所有节点在网络前100 轮的能耗为0.0262 J±0.0011 J;在LEACH方法中,所有节点在网络前100 轮的能耗为0.0306 J±0.0154 J;在LEACH-MAC 方法中,所有节点在网络前100轮的能耗为0.033 J±0.0089 J。因此,在场景1中,本文所提方法所有节点在网络前100轮的平均能耗比LEACH 方法与LEACH-MAC 方法分别降低14.4%与20.6%。

图3 本文提出方法的分簇结构

图4 LEACH的分簇结构

图5 LEACH-MAC的分簇结构

由图6(b)可知,在场景2 下:本文所提方法每一轮所有节点所消耗的能量在0.056 J 上下浮动,LEACH方法每一轮所有节点所消耗的能量均高于0.06 J,而LEACH-MAC 方法在每一轮所有节点消耗的能量均高于0.062 J。在本文所提方法中,所有节点在网络前100 轮的能耗为0.0555 J ± 0.0015 J;在LEACH 方法中,所有节点在网络前100 轮的能耗为0.062 J ±0.0024 J;在LEACH-MAC 方法中,所有节点在网络前100 轮的能耗为0.0638 J±0.009 J。故在场景2 中,本文所提方法所有节点在网络前100 轮的平均能耗比LEACH 方法与LEACH-MAC 方法分别降低10.5%与13%。

综上所述,本文所提方法中所有节点所消耗的能量低于LEACH 与LEACH-MAC 方法所有节点的能耗。因此,本文方法相较于LEACH 与LEACH-MAC方法具有更高的能效性。

2.4 网络生存周期对比

中医药可穿戴设备网络的生存周期长度是衡量分簇方法的重要指标。图7 给出本文提出的方法、LEACH 以及LEACH-MAC 在场景1与场景2下的网络生存周期的对比。

由图7(a)可知,场景1下本文所提方法中首个节点的失效时间为910 轮,而LEACH 与LEACH-MAC 方法分别于673 轮与732 轮已有节点开始失效。场景1 下本文所提方法50%节点的失效时间为933 轮,而LEACH 与LEACH-MAC 方法分别为822 轮与757 轮。因此在场景1 下,对于首个节点的失效时间本文所提方法比LEACH 与LEACH-MAC 方法分别延长35.2%与24.3%;对于50%节点的失效时间本文所提方法比LEACH与LEACH-MAC方法分别延长13.5%与23.2%。

图6 本文提出方法与LEACH、LEACH-MAC方法的能耗对比

图7 本文提出方法与LEACH、LEACH-MAC方法的网络生存周期对比

由图7(b)可知,场景2 下本文所提方法中首个节点的失效时间为849 轮,而LEACH 与LEACH-MAC 方法分别于687 轮与759 轮已有节点开始失效。场景2下本文所提方法50%节点的失效时间为889 轮,而LEACH 与LEACH-MAC 方法分别为798 轮与787 轮。因此在场景2 下,对于首个节点的失效时间本文所提方法比LEACH 与LEACH-MAC 方法分别延长23.6%与11.9%;对于50%节点的失效时间本文所提方法比LEACH 与LEACH-MAC 方法分别延长11.4%与13%。

因此,本文所提方法比LEACH 与LEACH-MAC方法在网络生存周期方面更有优势。

3 总结

中医药可穿戴设备节点可以实时采集患者的脉搏等体征信息,并将这些信息汇聚至中医医生的观测平台。然而,这些设备均通过电池供电,具有有限的续航时间。为了延长中医可穿戴设备的生存时间,本文提出一个高效的中医药可穿戴设备分簇方法,将设备节点所采集的数据按照高效成簇的方式传输。实验结果表明,本文所提方法在两种场景下簇头节点分布均匀,簇集规模适中。

在场景1中,本文所提方法所有节点在网络前100轮的平均能耗比LEACH 方法与LEACH-MAC 方法分别降低14.4%与20.6%;对于首个节点的失效时间本文所提方法比LEACH 与LEACH-MAC 方法分别延长35.2%与24.3%;对于50%节点的失效时间本文所提方法比LEACH 与LEACH-MAC 方法分别延长13.5%与23.2%。

在场景2中,本文所提方法所有节点在网络前100轮的平均能耗比LEACH 方法与LEACH-MAC 方法分别降低10.5%与13%;对于首个节点的失效时间本文所提方法比LEACH 与LEACH-MAC 方法分别延长23.6%与11.9%;对于50%节点的失效时间本文所提方法比LEACH 与LEACH-MAC 方法分别延长11.4%与13%。

通过上述对比分析,本文所提方法具有更低的能耗与更长的网络生存周期,更适用于中医可穿戴设备网络。

猜你喜欢
伪码能耗中医药
《家庭中医药》老读者请注意
庆祝《中华人民共和国中医药法》实施五周年
120t转炉降低工序能耗生产实践
带残余频偏的QPSK-DSSS信号参数盲估计
能耗双控下,涨价潮再度来袭!
一种大扩频比突发直接序列扩频信号同步方法
中医药在恶性肿瘤防治中的应用
探讨如何设计零能耗住宅
贯彻实施《中华人民共和国中医药法》促进中医药振兴发展
日本先进的“零能耗住宅”