WSAN中任务分配的改进分布式竞拍Ik-SAAP算法
【专利摘要】本发明公开了一种WSAN中任务分配的改进分布式竞拍Ik?SAAP算法,包括以下步骤:1)建立执行器协作的任务分配的数学模型;2)初始化网络参数;3)选取决策节点,发起竞拍节点;4)设定跳步数;5)计算竞拍节点的效用值,并回传到决策节点;6)判断决策节点是否满足最佳执行器节点的条件,若不满足,则返回步骤4),若满足,一次任务分配结束;7)被选中的执行器节点执行当前任务;8)将Ik?SAAP算法执行200次,仿真得到数据包转发个数对比图,剩余能量方差对比图,平均任务完成时间对比图。本方法在保证任务分配率高的前提下,能够减少执行器节点数据包转发的数量,缩短任务完成时间,均衡WSAN网络能耗。
【专利说明】
WSAN中任务分配的改进分布式竞拍I k-SAAP算法
技术领域
[0001] 本发明涉及分布式信息处理技术、协同合作技术、智能计算技术领域,具体讲是 WSAN中执行器和执行器协作中的任务分配问题,属于无线传感网技术领域。
【背景技术】
[0002] 无线传感器执行器网络(Wireless Sensor And Actor Networks,WSAN)是由大量 的传感器节点和少量移动的执行器节点组成,它们通过无线网络互联,用于感知现实世界, 处理感知数据,并在事件发生时进行决策和行动。其中协作性和实时性是WSAN应该满足的 两个独特要求,其中执行器和执行器之间协作(Actor to Actor Coordination)的主要目 的是完成任务的有效分配。无线信道传输数据会消耗大量能量,因此当WSAN中有任务发生 时,选择合适的执行器节点可以减少通信能耗,提高响应速度,对保证网络的实时性和能量 的均衡性,延长网络寿命有重要的意义。
[0003] 针对WSAN中的任务分配问题,前人已经提出一些方案,主要分为集中式和分布式 算法。集中式算法是指由一个中心节点收集所有节点的信息然后进行决策,此方案的优点 是可以选出最优的执行器节点,但是,该方法通信开销大,时延长,错误率高。
[0004]分布式解决方案是利用局部节点信息来进行决策,产生数据包的数量降低,整个 网络的稳定性提高。To_aso Melodia等人提出了分布式竞拍算法来解决执行器节点之间 的协作问题,但该算法仅适用于重叠区域的执行器节点,非重叠区域内的执行器节点会在 执行已有任务后才会对重叠区域内的事件作出响应,因此必然会对网络的实时性造成影 口向。Ivan Mezei等人提出了k-SAAP(k-hop Simple Auction Aggregation Protocol)算法, k-SAAP通过构造一棵响应树来获得局部k跳邻居的信息,从而决定由哪个执行器节点执行 当前的任务,这种算法没有考虑执行器节点的状态,会使执行器节点之间转发数据包的个 数增多,执行器节点之间负载不均衡,网络寿命缩短。通过对算法的改进可以在保证实时性 基础上减少数据包转发个数,提高任务分配率,降低通信开销,均匀网络的能耗。
【发明内容】
[0005] 本发明所要解决的技术问题是提供一种WSAN中执行器之间协作的任务分配算法, 在保证实时性基础上减少数据包转发个数,提高任务分配率,降低通信开销,均匀网络的能 耗。
[0006] 为解决上述技术问题,本发明提供一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,包括以下步骤:
[0007] 1)建立执行器协作的任务分配的数学模型;
[0008] 2)初始化网络参数;
[0009] 初始化网络参数包括:初始跳步数k;网络范围、每次任务分配过程随机产生的任 务数、执行器节点的个数、一次任务分配过程中执行器节点执行最大的任务个数、执行器节 点通讯半径、传感器节点的通讯半径;执行器节点的移动速度;
[0010] 3)选取决策节点;一个执行器节点被选作执行器节点的概率SPi,根据公式(1)可 计算其概率:
[0011] D = l/di+l/d2+. . .+l/dn
[0012] Pi=l/(D*di) (1)
[0013] 其中cU为执行器节点i离任务发生的距离,η为网络中执行器节点的个数。
[0014] 4)生成竞拍节点树:初始跳步数k加1,根据当前的跳步数k限制竞拍节点的数量;
[0015] 5)计算竞拍节点效用值并回传,收到任务信息消息的执行器节点将自身状态标记 为启动态,计算效用值并将此值返回给自己的父节点;
[0016] 6)决策节点决策阶段,对返回的效用信息消息进行分析比较,选出最佳执行器节 点去执行当前的任务。并将决策消息决策信息沿生成树发送到每个执行器节点;
[0017] 7)被选中的执行器节点执行当前任务;
[0018] 8)将Ik-SAAP算法执行200次,仿真得到数据包转发个数对比图,剩余能量方差对 比图,平均任务完成时间对比图。
[0019] 上述步骤1)中,任务分配数学模型的建立包括以下2个步骤:
[0020] 11)任务分配问题描述:分配过程中有m个任务,na个执行器节点。每个任务有自己 的持续时间4和截止时间山;每个执行器节点有化个可用时隙。保证任务在截止时间内完 成的前提下,一个任务只能由一个执行器节点完成,且每个时隙内只能完成一个任务;
[0021] 12)保证任务的合理分配要满足以下约束条件:
[0022]
[0023]
[0024] 爲VU (4)
[0025] 其中值为1或0,为1时表示任务L由执行器节点Μ执行。
[0026] 上述步骤11)中,任务分配问题要满足以下条件:
[0027] 111)传感器节点是静止的,而执行器节点可以移动且有数据计算和分析能力;
[0028] 112)网络中所有的传感器节点和执行器节点时钟同步;
[0029] 113)执行器节点可以分为两类:决策节点和竞拍节点,这两种节点都有四种状态。 决策节点的状态划分为空闲态、初始态、等待态、决策态;竞标节点状态划分为:空闲态、启 动态、等待态、执行态;
[0030] 114)研究环境是以执行器节点为簇头的分簇网络结构,当监测区域内有任务发生 时,传感器节点会将报告请求发送给本簇的执行器节点。
[0031] 上述步骤2)中,初始化网络参数为:初始跳步数k = 0;网络区域为500m*500m的正 方形区域;每次任务分配过程随机产生40个任务;执行器节点的个数为10; -次任务分配过 程中执行器节点执行最大的任务个数为5;执行器节点的通讯半径为50m;传感器节点的通 讯半径为l〇m;执行器节点的移动速度为10m/s。
[0032] 上述步骤3)中,决策节点有两种状态:
[0033] 31)未被选中的执行器节点标记自身的状态为空闲态;
[0034] 32)被选作决策节点的执行器节点向周围广播加入竞拍消息,并将自身状态标记 为初始态。
[0035] 上述步骤4)中,生成竞拍节点树包括以下步骤:
[0036] 41)以决策节点为根节点生成竞拍节点树,并将加入竞拍消息逐层传递给子节点;
[0037] 42)接收到参加竞拍消息的执行器节点将自身状态标记为启动态;
[0038] 43)标记为启动态的执行器节点,将接收任务信息消息沿生成树逐层返回给决策 节点;
[0039] 44)收到接收任务信息消息的决策节点将任务信息沿生成树逐层转发给每个子节 点,并将自身状态信息标记为等待态,等待执行器节点效用值的回传。
[0040] 上述步骤5)中,效用值的计算和回传包括以下步骤:
[0041] 51)效用函数的确定,效用函数需要权衡执行器节点的剩余能量(Ag)、执行器节点 与事件区域的距离(山)、执行器节点任务队列中任务的数量(A sj)、执行器节点的移动速度 (Vj)这四个参数。根据公式(5)可计算执行器节点执行对应任务的效用值。
[0042] aij = a1vj+a2Aej-a3Asj-a4dij (5)
[0043] 其中参数ai,i = l ,2,3,4是一个常量并且可以反映出这四个参量在决定竞标任务 的标价值时的重要程度;
[0044] 52)收到效用信息消息的决策节点将自身状态标记为决策态,并将接收效用信息 消息沿生成树发送给每个子执行器节点;
[0045] 53)收到接收效用信息消息的执行器节点将自身状态标记为等待态,等待决策节 点的决策消息。
[0046] 上述步骤6)中,决策阶段包括以下两种情况:
[0047] 61)如果竞拍节点树中有合适的执行器节点,决策节点将决策信息消息发送给该 执行器节点;
[0048] 62)如果竞拍节点树中没有合适的执行器节点,则返回到步骤5)。
[0049] 上述步骤61)中,竞拍节点树中的执行器节点有两种状态:
[0050] 611)若是最佳执行器节点,则该执行器节点将自身状态标记为执行态,并将接收 决策信息消息沿生成树发送到决策节点,决策节点将自身状态标记为空闲态;
[0051] 612)若不是最佳执行器节点,则该执行器节点将自身状态标记为空闲态,并将接 收决策信息消息沿生成树发送到决策节点,决策节点将自身状态标记为空闲态。
[0052]本发明所达到的有益效果如下:
[0053] 1.本发明在k-SAAP算法的基础上进行改进,与k-SAAP算法相比,在初始建模阶段 设定了每个任务的持续时间和截止时间,并将任务要在截止时间之前完成作为约束条件, 满足WSAN网络对实时性的要求;
[0054] 2.本发明将逐步增加跳步数的思想引入到竞拍节点树的生成阶段,在跳步数逐步 增加的过程中寻找最佳执行器节点执行任务,如果找到,则跳步数不再增加,这种方法降低 了总跳步数,减少了数据包转发的数量,缩短了网络延时,降低了能量消耗;
[0055] 3.本发明将执行器节点任务队列中任务数量考虑到决策过程中,并作为效用函数 的一个维度,这种方法可有效均衡执行器节点之间的负载及网络能耗,延长网络寿命。
【附图说明】
[0056] 图1 Ik-SAAP算法流程图;
[0057] 图2任务分配率对比图;
[0058]图3数据包转发个数对比图;
[0059] 图4执行器节点剩余能量方差对比图;
[0060] 图5平均任务完成时间对比图。
【具体实施方式】
[0061]下面结合附图对本发明作更进一步的说明。
[0062]本发明的系统框图如图1所不。本发明一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,包括以下部分:建立任务分配的数学模型;初始化网络参数;选取决策节点;生成 竞拍节点树;计算竞拍节点效用值并回传;决策节点决策;任务分配结束,被选中的执行器 节点执行当前的任务。
[0063] 步骤1建立执行器协作的任务分配的数学模型;
[0064] 任务分配数学模型的建立包括以下2个步骤:
[0065] 11)任务分配问题描述:分配过程中有m个任务,~个执行器节点;每个任务有自己 的持续时间~和截止时间每个执行器节点有心个可用时隙;保证任务在截止时间内完 成的前提下,一个任务只能由一个执行器节点完成,且每个时隙内只能完成一个任务;
[0066] 12)保证任务的合理分配要满足以下约束条件:
[0067]
[0068]
[0069] 4== {0,.!}, yij (8)
[0070] 其中fu值为1或0,为1时表示任务T油执行器节点Μ执行。
[0071] 步骤11)中,任务分配问题要满足以下条件:
[0072] 111)传感器节点是静止的,而执行器节点可以移动且有数据计算和分析能力;
[0073] 112)网络中所有的传感器节点和执行器节点时钟同步;
[0074] 113)执行器节点分为两类:决策节点和竞拍节点,这两种节点都有四种状态;
[0075]决策节点的状态划分为空闲态、初始态、等待态、决策态;
[0076] 竞标节点状态划分为:空闲态、启动态、等待态、执行态;
[0077] 114)研究环境是以执行器节点为簇头的分簇网络结构,当监测区域内有任务发生 时,传感器节点会将报告请求发送给本簇的执行器节点。
[0078] 步骤2初始化网络参数:其初始化网络参数如表1所示:
[0079]表1仿真实验参数
[0080]
[0081] 步骤3选取决策节点:一个执行器节点被选作执行器节点的概率为Pi,根据公式 (1)可计算其概率:
[0082] D = l/di+l/d2+. . .+l/dn
[0083] Pi=l/(D*di) (9)
[0084] 其中cU为执行器节点i离任务发生的距离,η为网络中执行器节点的个数。
[0085]此时执行器节点有两类:
[0086] 1)未被选中的执行器节点标记自身的状态为空闲态;
[0087] 2)被选作决策节点的执行器节点向周围广播加入竞拍消息,并将自身状态标记为 初始态。
[0088]步骤4生成竞拍节点树:跳步数k加1,根据当前的跳步数k限定竞拍节点的数量;竞 拍节点树的生成包括以下步骤:
[0089] 1)以决策节点为根节点生成竞拍节点树,并将加入竞拍消息逐层传递给子节点;
[0090] 2)接收到参加竞拍消息的执行器节点将自身状态标记为启动态;
[0091] 3)标记为启动态的执行器节点,将接收任务信息消息沿生成树逐层返回给决策节 占 .
[0092] 4)收到接收任务信息消息的决策节点将任务信息沿生成树逐层转发给每个子节 点,并将自身状态信息标记为等待态,等待执行器节点效用值的回传。
[0093]步骤5计算竞拍节点效用值并回传:收到任务信息消息的执行器节点将自身状态 标记为启动态,计算效用值并将此值返回给自己的父节点,此过程包括以下三个步骤:
[0094] 1)效用函数的确定,效用函数需要权衡执行器节点的剩余能量(Ag)、执行器节点 与事件区域的距离(山)、执行器节点任务队列中任务的数量(Asj)、执行器节点的移动速度 (Vj)这四个参数。根据公式(5)可计算执行器节点执行对应任务的效用值。
[0095] aij - aiVj+ct2Aej_a3Asj_a4clij (10)
[0096] 其中参数ai,i = l ,2,3,4是一个常量并且可以反映出这四个参量在决定竞标任务 的标价值时的重要程度;
[0097] 2)收到效用信息消息的决策节点将自身状态标记为决策态,并将接收效用信息消 息沿生成树发送给每个子执行器节点;
[0098] 3)收到接收效用信息消息的执行器节点将自身状态标记为等待态,等待决策节点 的决策消息。
[0099] 步骤6决策节点决策:对返回的效用信息消息进行分析比较,选出最佳执行器节点 去执行当前的任务。此过程有以下两种情况:
[0100] 1)如果竞拍节点树中有合适的执行器节点,决策节点将决策信息消息发送给该执 行器节点;此时执行器节点有两种状态:
[01 01 ] 11)若是最佳执行器节点,则将自身状态标记为执行态,并将接收决策信息消息沿 生成树发送到决策节点,决策节点将自身状态标记为空闲态;
[0102] 12)若不是最佳执行器节点,则将自身状态标记为空闲态,并将接收决策信息消息 沿生成树发送到决策节点,决策节点将自身状态标记为空闲态。
[0103] 2)如果竞拍节点树中没有合适的执行器节点,则返回到步骤5)。
[0104] 步骤7被选中的执行器节点执行当前任务。
[0105]步骤8将Ik-SAAP算法执行200次,仿真得到数据包转发个数对比图,剩余能量方差 对比图,平均任务完成时间对比图。如图2所示为Ik-SAAP算法和k-SAAP算法的任务分配率 对比图;如图3所示为Ik-SAAP算法和k-SAAP算法的数据包转发个数对比图,图4所示为Ik-SAAP算法和k-SAAP算法的剩余能量方差对比图,图5为Ik-SAAP算法和k-SAAP算法的平均任 务完成时间对比图。
[0106]比较分析图2和图3可以看出,Ik-SAAP算法在保证任务分配率高的条件下,转发更 少的数据包;从图4可以看出,Ik-SAAP算法的各执行器节点间的剩余能量方差更小,网络能 耗更均匀,网络寿命更长;从图5可以看出,Ik-SAAP算法的平均任务完成时间更少。综合分 析可知,此方法在保证任务分配率高的情况下,减少了数据包转发的数量,均衡了网络能 耗,减少了平均任务完成时间。
【主权项】
1. 一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,其特征在于,包括以下步骤: 1) 建立执行器协作的任务分配的数学模型; 2) 初始化网络参数; 初始化网络参数包括:初始跳步数k;网络范围、每次任务分配过程随机产生的任务数、 执行器节点的个数、一次任务分配过程中执行器节点执行最大的任务个数、执行器节点通 讯半径、传感器节点的通讯半径;执行器节点的移动速度; 3) 选取决策节点; 一个执行器节点被选作执行器节点的概率为^,根据公式(1)计算其概率: D= l/di+l/d2+. . .+1/dn Pi = l/(D*di) (I) 其中cU为执行器节点i离任务发生的距离,η为网络中执行器节点的个数; 4) 生成竞拍节点树:初始跳步数k加1,根据当前的跳步数k限定竞拍节点的数量; 5) 计算竞拍节点效用值并回传,收到任务信息消息的执行器节点将自身状态标记为启 动态,计算效用值并将此值返回给自己的父节点; 6) 决策节点决策阶段,对返回的效用信息消息进行分析比较,选出最佳执行器节点去 执行当前的任务,并将决策消息沿生成树发送到每个执行器节点; 7) 被选中的执行器节点执行当前任务; 8) 将Ik-SAAP算法执行200次,仿真得到数据包转发个数对比图,剩余能量方差对比图, 平均任务完成时间对比图。2. 根据权利要求1所述的一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,其特征 在于:在所述步骤1)中,任务分配数学模型的建立包括以下2个步骤: 11) 任务分配问题描述:分配过程中有m个任务,~个执行器节点;每个任务有自己的持 续时间七和截止时间山;每个执行器节点有N 1个可用时隙;保证任务在截止时间内完成的 前提下,一个任务只能由一个执行器节点完成,且每个时隙内只能完成一个任务; 12) 保证任务的合理分配要满足以下约束条件:其中fu值为1或〇,为1时表示任务Tj由执行器节点A1执行。3. 根据权利要求2所述的一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,其特征 在于:在所述步骤11)中,任务分配问题要满足以下条件: 111) 传感器节点是静止的,而执行器节点可以移动且有数据计算和分析能力; 112) 网络中所有的传感器节点和执行器节点时钟同步; 113) 执行器节点分为两类:决策节点和竞拍节点,这两种节点都有四种状态; 决策节点的状态划分为空闲态、初始态、等待态、决策态; 克标节点状态划分为:空闲态、启动态、等待态、执彳丁态; 114)研究环境是以执行器节点为簇头的分簇网络结构,当监测区域内有任务发生时, 传感器节点会将报告请求发送给本簇的执行器节点。4. 根据权利要求1所述的一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,其特征 在于:在所述步骤2)中,初始化网络参数为:初始跳步数k = 0;网络区域为500m*500m的正方 形区域;每次任务分配过程随机产生40个任务;执行器节点的个数为10;-次任务分配过程 中执行器节点执行最大的任务个数为5;执行器节点的通讯半径为50m;传感器节点的通讯 半径为l〇m;执行器节点的移动速度为10m/s。5. 根据权利要求1所述的一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,其特征 在于:在所述步骤3)中,决策节点有两种状态: 31) 未被选中的执行器节点标记自身的状态为空闲态; 32) 被选作决策节点的执行器节点向周围广播加入竞拍消息,并将自身状态标记为初 始态。6. 根据权利要求1所述的一种WSAN中任务分配的改进分布式竞拍Ik-SAAP算法,其特征 在于:在所述步骤4)中,生成竞拍节点树包括以下步骤: 41) 以决策节点为根节点生成竞拍节点树,并将加入竞拍消息逐层传递给子节点; 42) 接收到加入竞拍消息的执行器节点将自身状态标记为启动态; 43) 标记为启动态的执行器节点,将接收任务信息消息沿生成树逐层返回给决策节点; 44) 收到接收任务信息消息的决策节点将任务信息沿生成树逐层转发给每个子节点, 并将自身状态信息标记为等待态,等待执行器节点效用值的回传。7. 根据权利要求1所述的一种WSAN中任务分配的改进分布式竞拍算法,其特征在于:在 所述步骤5)中,效用值的计算和回传包括以下步骤: 51) 效用函数的确定,效用函数需要权衡执行器节点的剩余能量(U、执行器节点与事 件区域的距离(山)、执行器节点任务队列中任务的数量(A sj)、执行器节点的移动速度(Vj) 这四个参数;根据公式(5)计算执行器节点执行对应任务的效用值; cLij = QlVj+Q2Aej-Q3Asj-Q4(lij (4) 其中参数ai,i = I,2,3,4是一个常量并且可以反映出这四个参量在决定竞标任务的标 价值时的重要程度; 52) 收到效用信息消息的决策节点将自身状态标记为决策态,并将接收效用信息消息 沿生成树发送给每个子执行器节点; 53) 收到接收效用信息消息的执行器节点将自身状态标记为等待态,等待决策节点的 决策消息。8. 根据权利要求1所述的一种WSAN中任务分配的改进分布式竞拍算法,其特征在于:在 所述步骤6)中,决策阶段包括以下两种情况: 61) 如果竞拍节点树中有合适的执行器节点,决策节点将决策信息消息发送给该执行 器节点; 62) 如果竞拍节点树中没有合适的执行器节点,则返回到步骤5)。9. 根据权利要求8所述的一种WSAN中任务分配的改进分布式竞拍算法,其特征在于:在 所述步骤61)中,竞拍节点树中的执行器节点有两种状态: 611)若是最佳执行器节点,则该执行器节点将自身状态标记为执行态,并将接收决策 信息消息沿生成树发送到决策节点,决策节点将自身状态标记为空闲态; 612)若不是最佳执行器节点,则该执行器节点将自身状态标记为空闲态,并将接收决 策信息消息沿生成树发送到决策节点,决策节点将自身状态标记为空闲态。
【文档编号】H04L29/08GK105933397SQ201610238072
【公开日】2016年9月7日
【申请日】2016年4月15日
【发明人】苗红霞, 苗雪娇, 齐本胜, 萧旋旋, 韩燕 , 贾澜, 孙宁
【申请人】河海大学常州校区