法律状态公告日
法律状态信息
法律状态
2019-04-12
授权
授权
2016-10-05
实质审查的生效 IPC(主分类):H04L29/08 申请日:20160415
实质审查的生效
2016-09-07
公开
公开
技术领域
本发明涉及分布式信息处理技术、协同合作技术、智能计算技术领域,具体讲是WSAN中执行器和执行器协作中的任务分配问题,属于无线传感网技术领域。
背景技术
无线传感器执行器网络(Wireless Sensor And Actor Networks,WSAN)是由大量的传感器节点和少量移动的执行器节点组成,它们通过无线网络互联,用于感知现实世界,处理感知数据,并在事件发生时进行决策和行动。其中协作性和实时性是WSAN应该满足的两个独特要求,其中执行器和执行器之间协作(Actor to Actor Coordination)的主要目的是完成任务的有效分配。无线信道传输数据会消耗大量能量,因此当WSAN中有任务发生时,选择合适的执行器节点可以减少通信能耗,提高响应速度,对保证网络的实时性和能量的均衡性,延长网络寿命有重要的意义。
针对WSAN中的任务分配问题,前人已经提出一些方案,主要分为集中式和分布式算法。集中式算法是指由一个中心节点收集所有节点的信息然后进行决策,此方案的优点是可以选出最优的执行器节点,但是,该方法通信开销大,时延长,错误率高。
分布式解决方案是利用局部节点信息来进行决策,产生数据包的数量降低,整个网络的稳定性提高。Tommaso Melodia等人提出了分布式竞拍算法来解决执行器节点之间的协作问题,但该算法仅适用于重叠区域的执行器节点,非重叠区域内的执行器节点会在执行已有任务后才会对重叠区域内的事件作出响应,因此必然会对网络的实时性造成影响。Ivan Mezei等人提出了k-SAAP(k-hop Simple Auction Aggregation Protocol)算法,k-SAAP通过构造一棵响应树来获得局部k跳邻居的信息,从而决定由哪个执行器节点执行当前的任务,这种算法没有考虑执行器节点的状态,会使执行器节点之间转发数据包的个数增多,执行器节点之间负载不均衡,网络寿命缩短。通过对算法的改进可以在保证实时性基础上减少数据包转发个数,提高任务分配率,降低通信开销,均匀网络的能耗。
发明内容
本发明所要解决的技术问题是提供一种WSAN中执行器之间协作的任务分配算法,在保证实时性基础上减少数据包转发个数,提高任务分配率,降低通信开销,均匀网络的能耗。
为解决上述技术问题,本发明提供一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,包括以下步骤:
1)建立执行器协作的任务分配的数学模型;
2)初始化网络参数;
初始化网络参数包括:初始跳步数k;网络范围、每次任务分配过程随机产生的任务数、执行器节点的个数、一次任务分配过程中执行器节点执行最大的任务个数、执行器节点通讯半径、传感器节点的通讯半径;执行器节点的移动速度;
3)选取决策节点;一个执行器节点被选作执行器节点的概率为Pi,根据公式(1)可计算其概率:
D=1/d1+1/d2+...+1/dn
Pi=1/(D*di)(1)
其中di为执行器节点i离任务发生的距离,n为网络中执行器节点的个数。
4)生成竞拍节点树:初始跳步数k加1,根据当前的跳步数k限制竞拍节点的数量;
5)计算竞拍节点效用值并回传,收到任务信息消息的执行器节点将自身状态标记为启动态,计算效用值并将此值返回给自己的父节点;
6)决策节点决策阶段,对返回的效用信息消息进行分析比较,选出最佳执行器节点去执行当前的任务。并将决策消息决策信息沿生成树发送到每个执行器节点;
7)被选中的执行器节点执行当前任务;
8)将Ik-SAAP算法执行200次,仿真得到数据包转发个数对比图,剩余能量方差对比图,平均任务完成时间对比图。
上述步骤1)中,任务分配数学模型的建立包括以下2个步骤:
11)任务分配问题描述:分配过程中有nt个任务,na个执行器节点。每个任务有自己的持续时间和截止时间dj;每个执行器节点有Ni个可用时隙。保证任务在截止时间内完成的前提下,一个任务只能由一个执行器节点完成,且每个时隙内只能完成一个任务;
12)保证任务的合理分配要满足以下约束条件:
其中fij值为1或0,为1时表示任务Tj由执行器节点Ai执行。
上述步骤11)中,任务分配问题要满足以下条件:
111)传感器节点是静止的,而执行器节点可以移动且有数据计算和分析能力;
112)网络中所有的传感器节点和执行器节点时钟同步;
113)执行器节点可以分为两类:决策节点和竞拍节点,这两种节点都有四种状态。决策节点的状态划分为空闲态、初始态、等待态、决策态;竞标节点状态划分为:空闲态、启动态、等待态、执行态;
114)研究环境是以执行器节点为簇头的分簇网络结构,当监测区域内有任务发生时,传感器节点会将报告请求发送给本簇的执行器节点。
上述步骤2)中,初始化网络参数为:初始跳步数k=0;网络区域为500m*500m的正方形区域;每次任务分配过程随机产生40个任务;执行器节点的个数为10;一次任务分配过程中执行器节点执行最大的任务个数为5;执行器节点的通讯半径为50m;传感器节点的通讯半径为10m;执行器节点的移动速度为10m/s。
上述步骤3)中,决策节点有两种状态:
31)未被选中的执行器节点标记自身的状态为空闲态;
32)被选作决策节点的执行器节点向周围广播加入竞拍消息,并将自身状态标记为初始态。
上述步骤4)中,生成竞拍节点树包括以下步骤:
41)以决策节点为根节点生成竞拍节点树,并将加入竞拍消息逐层传递给子节点;
42)接收到参加竞拍消息的执行器节点将自身状态标记为启动态;
43)标记为启动态的执行器节点,将接收任务信息消息沿生成树逐层返回给决策节点;
44)收到接收任务信息消息的决策节点将任务信息沿生成树逐层转发给每个子节点,并将自身状态信息标记为等待态,等待执行器节点效用值的回传。
上述步骤5)中,效用值的计算和回传包括以下步骤:
51)效用函数的确定,效用函数需要权衡执行器节点的剩余能量(Aej)、执行器节点与事件区域的距离(dj)、执行器节点任务队列中任务的数量(Asj)、执行器节点的移动速度(vj)这四个参数。根据公式(5)可计算执行器节点执行对应任务的效用值。
aij=α1vj+α2Aej-α3Asj-α4dij(5)
其中参数αi,i=1,2,3,4是一个常量并且可以反映出这四个参量在决定竞标任务的标价值时的重要程度;
52)收到效用信息消息的决策节点将自身状态标记为决策态,并将接收效用信息消息沿生成树发送给每个子执行器节点;
53)收到接收效用信息消息的执行器节点将自身状态标记为等待态,等待决策节点的决策消息。
上述步骤6)中,决策阶段包括以下两种情况:
61)如果竞拍节点树中有合适的执行器节点,决策节点将决策信息消息发送给该执行器节点;
62)如果竞拍节点树中没有合适的执行器节点,则返回到步骤5)。
上述步骤61)中,竞拍节点树中的执行器节点有两种状态:
611)若是最佳执行器节点,则该执行器节点将自身状态标记为执行态,并将接收决策信息消息沿生成树发送到决策节点,决策节点将自身状态标记为空闲态;
612)若不是最佳执行器节点,则该执行器节点将自身状态标记为空闲态,并将接收决策信息消息沿生成树发送到决策节点,决策节点将自身状态标记为空闲态。
本发明所达到的有益效果如下:
1.本发明在k-SAAP算法的基础上进行改进,与k-SAAP算法相比,在初始建模阶段设定了每个任务的持续时间和截止时间,并将任务要在截止时间之前完成作为约束条件,满足WSAN网络对实时性的要求;
2.本发明将逐步增加跳步数的思想引入到竞拍节点树的生成阶段,在跳步数逐步增加的过程中寻找最佳执行器节点执行任务,如果找到,则跳步数不再增加,这种方法降低了总跳步数,减少了数据包转发的数量,缩短了网络延时,降低了能量消耗;
3.本发明将执行器节点任务队列中任务数量考虑到决策过程中,并作为效用函数的一个维度,这种方法可有效均衡执行器节点之间的负载及网络能耗,延长网络寿命。
附图说明
图1 Ik-SAAP算法流程图;
图2任务分配率对比图;
图3数据包转发个数对比图;
图4执行器节点剩余能量方差对比图;
图5平均任务完成时间对比图。
具体实施方式
下面结合附图对本发明作更进一步的说明。
本发明的系统框图如图1所示。本发明一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,包括以下部分:建立任务分配的数学模型;初始化网络参数;选取决策节点;生成竞拍节点树;计算竞拍节点效用值并回传;决策节点决策;任务分配结束,被选中的执行器节点执行当前的任务。
步骤1建立执行器协作的任务分配的数学模型;
任务分配数学模型的建立包括以下2个步骤:
11)任务分配问题描述:分配过程中有nt个任务,na个执行器节点;每个任务有自己的持续时间和截止时间dj;每个执行器节点有Ni个可用时隙;保证任务在截止时间内完成的前提下,一个任务只能由一个执行器节点完成,且每个时隙内只能完成一个任务;
12)保证任务的合理分配要满足以下约束条件:
其中fij值为1或0,为1时表示任务Tj由执行器节点Ai执行。
步骤11)中,任务分配问题要满足以下条件:
111)传感器节点是静止的,而执行器节点可以移动且有数据计算和分析能力;
112)网络中所有的传感器节点和执行器节点时钟同步;
113)执行器节点分为两类:决策节点和竞拍节点,这两种节点都有四种状态;
决策节点的状态划分为空闲态、初始态、等待态、决策态;
竞标节点状态划分为:空闲态、启动态、等待态、执行态;
114)研究环境是以执行器节点为簇头的分簇网络结构,当监测区域内有任务发生时,传感器节点会将报告请求发送给本簇的执行器节点。
步骤2初始化网络参数:其初始化网络参数如表1所示:
表1仿真实验参数
步骤3选取决策节点:一个执行器节点被选作执行器节点的概率为Pi,根据公式(1)可计算其概率:
D=1/d1+1/d2+...+1/dn
Pi=1/(D*di)(9)
其中di为执行器节点i离任务发生的距离,n为网络中执行器节点的个数。
此时执行器节点有两类:
1)未被选中的执行器节点标记自身的状态为空闲态;
2)被选作决策节点的执行器节点向周围广播加入竞拍消息,并将自身状态标记为初始态。
步骤4生成竞拍节点树:跳步数k加1,根据当前的跳步数k限定竞拍节点的数量;竞拍节点树的生成包括以下步骤:
1)以决策节点为根节点生成竞拍节点树,并将加入竞拍消息逐层传递给子节点;
2)接收到参加竞拍消息的执行器节点将自身状态标记为启动态;
3)标记为启动态的执行器节点,将接收任务信息消息沿生成树逐层返回给决策节点;
4)收到接收任务信息消息的决策节点将任务信息沿生成树逐层转发给每个子节点,并将自身状态信息标记为等待态,等待执行器节点效用值的回传。
步骤5计算竞拍节点效用值并回传:收到任务信息消息的执行器节点将自身状态标记为启动态,计算效用值并将此值返回给自己的父节点,此过程包括以下三个步骤:
1)效用函数的确定,效用函数需要权衡执行器节点的剩余能量(Aej)、执行器节点与事件区域的距离(dj)、执行器节点任务队列中任务的数量(Asj)、执行器节点的移动速度(vj)这四个参数。根据公式(5)可计算执行器节点执行对应任务的效用值。
aij=α1vj+α2Aej-α3Asj-α4dij(10)
其中参数αi,i=1,2,3,4是一个常量并且可以反映出这四个参量在决定竞标任务的标价值时的重要程度;
2)收到效用信息消息的决策节点将自身状态标记为决策态,并将接收效用信息消息沿生成树发送给每个子执行器节点;
3)收到接收效用信息消息的执行器节点将自身状态标记为等待态,等待决策节点的决策消息。
步骤6决策节点决策:对返回的效用信息消息进行分析比较,选出最佳执行器节点去执行当前的任务。此过程有以下两种情况:
1)如果竞拍节点树中有合适的执行器节点,决策节点将决策信息消息发送给该执行器节点;此时执行器节点有两种状态:
11)若是最佳执行器节点,则将自身状态标记为执行态,并将接收决策信息消息沿生成树发送到决策节点,决策节点将自身状态标记为空闲态;
12)若不是最佳执行器节点,则将自身状态标记为空闲态,并将接收决策信息消息沿生成树发送到决策节点,决策节点将自身状态标记为空闲态。
2)如果竞拍节点树中没有合适的执行器节点,则返回到步骤5)。
步骤7被选中的执行器节点执行当前任务。
步骤8将Ik-SAAP算法执行200次,仿真得到数据包转发个数对比图,剩余能量方差对比图,平均任务完成时间对比图。如图2所示为Ik-SAAP算法和k-SAAP算法的任务分配率对比图;如图3所示为Ik-SAAP算法和k-SAAP算法的数据包转发个数对比图,图4所示为Ik-SAAP算法和k-SAAP算法的剩余能量方差对比图,图5为Ik-SAAP算法和k-SAAP算法的平均任务完成时间对比图。
比较分析图2和图3可以看出,Ik-SAAP算法在保证任务分配率高的条件下,转发更少的数据包;从图4可以看出,Ik-SAAP算法的各执行器节点间的剩余能量方差更小,网络能耗更均匀,网络寿命更长;从图5可以看出,Ik-SAAP算法的平均任务完成时间更少。综合分析可知,此方法在保证任务分配率高的情况下,减少了数据包转发的数量,均衡了网络能耗,减少了平均任务完成时间。
机译: 增加自动竞拍中的垂直距离的系统和方法
机译: 增加自动竞拍中的垂直距离的系统和方法
机译: 增加自动竞拍中的垂直距离的系统和方法