一种无线传感器任务分配方法与流程

文档序号:13984874阅读:220来源:国知局
一种无线传感器任务分配方法与流程

本发明涉及无线传感器网络通信领域,具体涉及一种无线传感器任务分配方法。



背景技术:

无线传感器网络已经广泛应用于军事、灾难预警、区域监测、智能家居等领域,其通常由大量计算能力相对较低、能源供应有限的传感器组成。无线传感器一旦被部署后将处于静止状态,并且长期内无人工干预和管理,传感器很容易因能量消耗过大或故障导致节点失效,不能正常工作或死亡,改变无线传感器网络的拓扑结构。因此,网络的基本挑战是在应用程序可靠运行时能达到一定的能源效率,以延长网络的生命周期。随着传感器网络的监测和数据处理越来越复杂,在要求能量有效的同时,实时性和可靠性要求也越来越高。传感器由于计算能力低无法独自完成较复杂的应用,需要多个传感器协作完成,以提高系统的性能,满足实时可靠的应用需求,延长网络的生命周期。

wsn中的应用程序可以分解为多个具有优先级关系的任务,通过在网关上执行任务的分配算法,决策出最优的任务分配策略,使任务的总完成时间最短,能耗最小,可靠性最高。因此,研究最佳任务分配方案的方法是提高无线传感器网络必要举措。

根据国家知识产权的专利搜索,检索到与本发明专利比较相关的中国专利申请:申请号为201010033866.4,名称为“基于协商的无线传感器网络任务分配方法”。该技术通过招标节点与投标节点协商最终决定任务的分配方法,招投标的过程会造成不必要的能量消耗和时间消耗,不能满足任务完成的实时性。

目前有很多任务分配方案都是只优化任务完成的某一个目标,优化时间或是优化能耗,很少有同时优化多个目标的任务分配方法。根据国家知识产权的专利搜索,检索到与多目标任务分配方法相关的中国专利申请:申请号为201510497824.9,名称为“一种基于多目标优化的多机器人任务分配方法”。但是该专利采用加权求和的方式对多个目标进行建模,转化为了单目标的优化模型,在算法寻优时可能会根据加权值削弱某一目标的寻优能力,导致最终的优化方案并不是最佳任务分配方案。

无线传感器网络中的节点虽然是静态部署,但是当新的任务到达时,当前的任务分配方案可能不再适用。现有的任务分配算法大多是考虑一次任务分配,忽略了任务的持续到达,并且在智能优化算法的寻优过程中,若环境发生变化,算法不能及时跳转到当前环境状态寻优,导致最后优化的算法无法满足实际的应用环境。



技术实现要素:

本发明的内容是针对现有任务分配方法中存在的缺陷和不足,提供了一种无线传感器任务分配方法,应用动态多目标优化算法能够有效的优化任务完成的多个目标,使任务完成的时间最短,能耗最低,可靠性最高,提高无线传感器网络中任务完成的综合性能,并且能够实时检测当前环境变化,及时做出动态改变。

为实现上述目的,本发明的具体方案如下:

步骤s101,初始化任务分配方案,将任务随机映射到无线传感器节点上,根据dag图之间的任务通信关系,调整初始的任务分配方案,将有多个后继任务的当前任务插入路由广播任务,并选择距离最近的节点作为路由广播节点,将剩余能量值小于某一设定的阈值eth的节点标记,将不再分配任务;

步骤s102,结合任务的负载和通信关系以及节点处理速度、故障概率建立动态多目标优化的效用函数,得到任务分配的多目标优化模型;

步骤s103,根据传感器节点数和所有任务完成期限设定动态多目标优化算法中决策变量的约束条件:

其中,ni表示第i个任务分配到序号为ni的传感器节点上,并且ni属于正整数。n表示共有n个传感器节点,为优化方案的任务总完成时间,deadline为系统要求的所有任务完成的最大期限。

步骤s104,建立动态多目标优化方法的动态环境检测模型:

具体的,实时获取任务关系矩阵{rij}m×m、通信负载数组{ci}1×m以及计算负载数组{pi}1×m,并与原数据进行对比,若发生变化,则检测到环境发生改变,那么当前的任务分配方案不再是该任务的最佳分配方案,需要重新根据新的任务关系矩阵进行初始化任务分配方案。

其中,任务的关系矩阵的建立为:根据给定的dag图之间的优先级关系,转化为任务的关系矩阵,矩阵大小为m×m的0-1矩阵{rij}m×m,m表示任务数量。rij=1表示任务i的后继任务为任务j,任务j的前驱任务为任务i,意义为:任务i执行完成后才能执行任务j,有一定的优先级关系。

其中,dag图中任务的负载,包括通信负载和计算负载,分别用1×m的数组{ci}1×m、{pi}1×m表示,ci、pi分别表示任务i的通信负载和计算负载大小。

步骤s105,利用动态多目标优化算法对任务分配方案进行更新,并进行实时的动态环境检测,优化出每一环境变化后的pareto最优解集l(τ)。

步骤s106,通过计算任务分配的能耗均衡度,从pareto最优解集l(τ)中选择能耗最均衡的解作为最佳的任务分配方案l,并动态更新每个时刻的传感器节点剩余能量值,最后得出一组随时间变化的最优任务分配方案解集:

l表示在τ时刻的最优解,l(τ)是在τ时刻的可行解集合,t表示任务分配的总时间。

所述步骤s101中的初始任务分配方案的过程包括:

根据dag图之间的任务通信关系,调整初始的任务分配方案,将有多个后继任务的当前任务插入路由广播任务,并选择节点作为路由广播节点,将剩余能量值小于某一设定的阈值eth的节点标记,找到剩余能量充足的节点代替,形成种群p0’,t=0;

所述步骤s102中目标函数包括:能耗目标函数、时间目标函数以及可靠性目标函数:

其中,m表示任务个数,n表示传感器节点个数,eij表示第i个任务在第j个节点上的完成的能耗,tij表示第i个任务在第j个节点上完成的时间,λj为初始化的第j个节点的异构故障概率,表示优化后的任务完成总能耗,表示优化后任务完成的总时间,表示优化后任务完成的总可靠性参数。

所述传感器任务分配方法的目标函数中的tij为:

其中,为通信时间,即当前任务发送到后继任务的时间,为处理时间,均能根据给定的参数b、c、p、v求出。

所述传感器任务分配方法的目标函数中的eij为:

其中,为发送到后继节点所消耗的能耗,为接收前驱任务所消耗的能耗,为处理能耗,均能根据给定的参数eelec、εfs、εamp以及发送到后继节点的距离d、任务负载p和c可求出。num为任务i的前驱任务的个数。

所述步骤s105:动态多目标优化算法对任务分配方案进行更新的过程包括:

步骤(5.1):计算种群pt’和外部档案at中的个体的每个适应度值,进行非支配排序,并进行二元锦标赛选择、交叉、变异,生成子代pt+1’;

步骤(5.2):将种群pt’和外部档案at非支配排序得到的非劣解个体放入at+1,at+1={xi|xi∈pt∪at},如果at+1的大小超过设定的档案大小c,则修剪at+1;如果at+1的大小小于c,则将pt’和at中受支配的解加入到at+1;

步骤(5.3):检测环境是否发生变化,是否有新的任务到达,若没有则执行步骤(5.4);否则,则将当前at+1中的非劣等级为1的解输出到pareto解集中,并更新剩余能量值,然后根据新的任务重新初始化方案,跳转到步骤s101;

步骤(5.4):判断是否达到最大进化代数maxit,如果没有,则令t=t+1,并转到步骤(5.1);否则,将外部档案at+1中非劣等级为1的所有个体输出到pareto最优解集,停止运行;

所述步骤s106中:能耗均衡度的计算为:

deviation(x*)表示每个节点上消耗的总能耗的方差,方差越小表明能量消耗越均衡,即节点上的任务负载分配较均衡,将此函数作为决策函数。n为被分配的节点的数量,ej为在节点j上消耗的能量。

所述步骤s106中,动态更新节点剩余能量值的方法为:

用节点初始能量减去步骤s104中决策出的最佳任务方案的每个节点的能量消耗,得到的值作为当前状态下节点的剩余能耗值;

与现有的无线传感器任务分配方法相比,本发明具有如下优点:

1.本发明综合考虑了无线传感器任务完成的时间、能耗、可靠性多目标函数,反映了无线传感器网络任务执行过程中的多方面需求,该方法获得的任务分配方案能够提升任务完成的综合性能。

2.该方法采用动态多目标优化算法对多个目标进行寻优,求得最优解集,最后根据任务分配的均衡度对解集中的最优解进行决策,选择均衡度最小的任务分配方案作为最终方案,提高了任务分配的负载均衡性。

3.该方法能够动态检测环境的变化,即是否有新的任务到达,若有新的任务到达则会输出当前最优方案,并根据剩余能量值和新的任务图重新初始化任务分配方案,解决了多目标优化算法的可持续性优化。

附图说明

图1是本发明的无线传感器任务分配方法流图。

图2是本发明的任务dag图。

图3是本发明的动态多目标优化算法的具体流程图。

具体实施方式

下面通过附图和实施例,对本发明进行详细阐述。

实施例为:将8个任务分配到30个传感器节点上。

结合图1和图3说明本发明方案的具体流程,该方法包括:

步骤s101,初始化任务分配方案,将任务随机映射到无线传感器节点上,根据dag图之间的任务通信关系,调整初始的任务分配方案,将有多个后继任务的当前任务插入路由广播任务,并选择距离最近的节点作为路由广播节点,将剩余能量值小于某一设定的阈值eth的节点标记,将不再分配任务;

具体的,选定初始种群规模pop、最大进化代数maxit以及加强的pareto进化算法参数,初始化空的外部档案a0和父代种群p0,p0的每个个体即为初始的每种任务映射方案。

具体的,p0中的每个个体由长度为8的实数序列l组成,l=[n1,n2,n3,n4,n5,n6,n7,n8],表示共有8个任务,n1-n8为1-30之间的随机实数,即共有30个传感器节点,序列l的每一位列向量i表示:第i个任务分到了序号为ni的传感器节点上;

具体的,p0调整为p0’,每个个体由长度为8+3=11的实数序列l’组成,l’=[n1,n2,n3,…,n8,n9,n9,n10,n11],增加了3个路由任务,n1-n11为1-30之间的随机实数,30为传感器节点个数;

具体的,判断序列l’中的节点的剩余能量值,若小于某一设定的阈值eth,则将节点属性标记为f,将不再分配任务,同时该节点替换为其他1-n之间的随机实数;

具体的,判断剩余能量是否等于阈值eth的方法为:

步骤s102,根据序列l’每个任务分配的节点,并结合任务的负载和通信关系以及节点处理速度、故障概率建立能耗目标函数、时间目标函数以及可靠性目标函数;

具体的,目标函数包括:能耗目标函数、时间目标函数以及可靠性目标函数:

具体的,m表示任务个数,n表示传感器节点个数,eij表示第i个任务在第j个节点上的完成的能耗,tij表示第i个任务在第j个节点上完成的时间,λj为初始化的第j个节点的异构故障概率,表示优化后的任务完成总能耗,表示优化后任务完成的总时间,表示优化后任务完成的总可靠性参数。

具体的,所述传感器任务分配方法的目标函数中的tij为:

具体的,为通信时间,即当前任务发送到后继任务的时间,为处理时间,均能根据给定的参数b、c、p、v求出:

具体的,所述传感器任务分配方法的目标函数中的eij为:

具体的,为发送到后继节点所消耗的能耗,为接收前驱任务所消耗的能耗,为处理能耗,均能根据给定的参数eelec、εfs、εamp以及发送到后继节点的距离d、任务负载p和c可求出。num为任务i的前驱任务的个数:

步骤s103,根据传感器节点数和所有任务完成期限设定动态多目标优化算法中决策变量的约束条件:

步骤s104,建立动态多目标优化方法的动态环境检测模型:

具体的,实时获取任务关系矩阵{rij}8×8、通信负载数组{ci}1×8以及计算负载数组{pi}1×8,并与原数据进行对比,若发生变化,则检测到环境发生改变,那么当前的任务分配方案不再是该任务的最佳分配方案,需要重新根据新的任务关系矩阵进行初始化任务分配方案。

其中,任务的关系矩阵的建立为:根据给定的dag图之间的优先级关系,转化为任务的关系矩阵,矩阵大小为8×8的0-1矩阵{rij}8×8,m表示任务数量。rij=1表示任务i的后继任务为任务j,任务j的前驱任务为任务i,意义为:任务i执行完成后才能执行任务j,有一定的优先级关系。

其中,dag图中任务的负载,包括通信负载和计算负载,分别用1×8的数组{ci}1×8、{pi}1×8表示,ci、pi分别表示任务i的通信负载和计算负载大小。

步骤s105,利用动态多目标优化算法对任务分配方案进行更新,计算多个目标函值数并进行每一代的目标函数值比较,最后得出一组pareto最优解集;

具体的步骤(5.1),计算种群pt’和外部档案at中的个体的每个适应度值,进行非支配排序,并进行二元锦标赛选择、交叉、变异,生成子代pt+1’;

具体的步骤(5.2),将种群pt’和外部档案at非支配排序得到的非劣解个体放入at+1,at+1={xi|xi∈pt∪at},如果at+1的大小超过设定的档案大小c,则修剪at+1;如果at+1的大小小于c,则将pt’和at中受支配的解加入到at+1;

具体的步骤(5.3),检测环境是否发生变化,是否有新的任务到达,若没有则执行步骤(5.4);否则,则将当前at+1中的非劣等级为1的解输出到pareto解集中,并更新剩余能量值,然后根据新的任务重新初始化方案,跳转到步骤s101;

具体的步骤(5.4),判断是否达到最大进化代数maxit,如果没有,则令t=t+1,并转到步骤(5.1);否则,将外部档案at+1中非劣等级为1的所有个体输出到pareto最优解集,停止运行;

步骤s106,通过计算任务分配的能耗均衡度,从pareto最优解集l(τ)中选择能耗最均衡的解作为最佳的任务分配方案l,并动态更新每个时刻的传感器节点剩余能量值,最后得出一组随时间变化的最优任务分配方案解集:

具体的,能耗均衡度的计算为:

deviation(x*)表示每个节点上消耗的总能耗的方差,方差越小表明能量消耗越均衡,即节点上的任务负载分配较均衡,将此函数作为决策函数。n为被分配的节点的数量,ej为在节点j上消耗的能量。

具体的,动态更新时刻τ=τ+1下节点的剩余能耗值:

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1