一种面向群智感知的任务分配方法与流程

文档序号:16392188发布日期:2018-12-25 19:25阅读:588来源:国知局
一种面向群智感知的任务分配方法与流程

本发明属于通信处理技术领域,具体涉及到一种面向群智感知的任务分配方法。

背景技术

群智感知是一种新型的感知模式,与基于传感网和物联网的感知方式不同,群智感知无需提前部署无线传感器、通信基础设施,而是以大量普通用户作为感知源,充分利用这些用户所携带的移动智能设备,通过多用户协作,共同完成单个用户难以完成的复杂感知任务。近年来,随着移动计算和无线通信技术的快速发展,移动智能设备(如智能手机、平板电脑、智能手表等)得到广泛普及,其存储、计算、通信能力得到不断加强,并配备了众多智能传感器,比如摄像头、麦克风、重力仪、gps、陀螺仪、温度传感器、血压传感器等等。这使得人们通过这些移动智能设备可以自动、实时地感知和收集周围环境信息,并通过无线通信模块将信息传输到服务器,如云平台,从而可以完成复杂的环境和社会感知任务。另一方面,人们对随时随地获取和感知周围环境信息的需求日益强烈,而群智感知技术完全达到了上述需求,因此具有广阔的应用前景,未来可以广泛应用于噪音污染监测、智能交通、空气污染地图标识、智慧城市、社会舆情分析与预测等诸多领域,得到了世界各国政府、产业界和学术界的高度关注。

一个群智感知应用系统一般包含3个组成部分:云平台(即系统),任务请求者和任务完成者。任务请求者随时向云平台发布感知任务(下文简称任务)需求,并从云平台接收任务结果;云平台主要负责任务发布、任务分配、感知数据收集和任务质量评估;任务完成者,即众多移动用户(下文简称用户),从云平台接收所分配的任务并负责数据感知和收集,并将感知数据发送给云平台。在群智感知系统中,任务分配是实施群智感知的基础。云平台需要根据任务请求者的任务需求,将各个任务分配(即指派)给参与群智感知的众多用户,在指派过程中,一般依据特定的优化目标,如最大化任务接收率、最大化整体收益等。

从现有的研究成果上看,当前的面向群智感知的任务分配方法和系统主要考虑简单的任务分配需求和离线式任务分配方法,比如假设一个任务只能由一个用户完成。在一个典型的离线式任务分配方法中,系统首先收集所有任务,并向所有用户发送当前需要执行的任务集合,然后根据自身能力等情况,各个用户选择并提交自身愿意完成的任务子集及其报价,系统在收集到所有用户的报价后,在特定优化目标下,实施最优或近似最优任务分配,并将分配结果反馈给相应用户,最后,用户完成所分配的任务并将感知数据回传给系统。由此可见,当前任务分配方法需要用户自行浏览所发布的任务需求并提交任务报价,其耗时较多,且需要用户主动参与,不适合大规模群智感知应用场景。因此需要在线式任务分配方法,即考虑了任务到达的随机性和实时性。系统首先收集用户的兴趣、能力等属性信息,然后对于实时随机提交的每个任务,系统依据用户的信息,自动完成任务分配,并将分配结果传输给用户。

但是,目前群智感知环境下的在线任务分配方法中均未考虑任务的能力多样性需求、任务完成代价以及合作用户之间的通讯代价。事实上,随着群智感知应用的不断发展和深入,复杂任务尤其是具有能力多样性需求的任务越来越受到人们的关注。能力多样性需求是指一个任务需要多个具有不同能力的用户才能完成,而一般用户的能力都是有限制的,这需要多个具有不同能力的用户相互合作才能完成。此外,用户之间的合作往往是需要进行通信,这将产生一定的通讯成本。当前的在线任务分配方法尚未考虑这些因素,在很大程度上限制了群智感知的应用范围。

为适应大规模群智感知应用场景,减少用户主动参与时所耗的时间,在考虑任务的能力多样性需求、任务完成代价和合作用户的通讯代价的基础上,设计一种面向群智感知的任务分配方法是十分必要的。



技术实现要素:

本发明所要解决的技术问题在于提供一种应用范围大、任务分配时间短、时间复杂度低的一种面向群智感知的任务分配方法。

解决上述技术问题所采用的技术方案是:一种面向群智感知的任务分配方法,包括如下步骤:

(1)收集到的用户集合u={u1,u2,...,un},n是用户集合u的基数,取值为有限的自然数,确定用户集合u中用户ui的能力值及任意两个用户ui和uj之间的通讯代价wij,wij为非负实数,且wij=wji,wii=0,1≤i≤n,1≤j≤n,i≠j,所述的用户ui的能力值为vi=(vi1,...,vik,...,vik),vik∈[0,1]是用户ui对能力k的量化值,k∈a,a是所有用户的能力构成的集合,a={1,2,...,k},k是集合a的基数,为一个有限的自然数;

(2)针对所提交任务t对每种能力k的需求,分别确定可参与该任务t的用户集合u'=∪k∈a(t)uk,a(t)为任务t的多样性能力需求,vk为任务t对能力k∈a(t)的需求值,为正实数,uk为满足任务t对能力k的需求的用户集合;

(3)从用户集合u'中,选择包含用户数量最少的用户集合uk,k∈a(t),记为u*

(4)依据可参与上述任务t的用户ui(ui∈u')的能力值,计算用户ui执行该任务t的代价ci,t;

(5)对于集合u*中的每个用户um,1≤m≤n,计算以用户um为核心用户的用户集合um完成任务的总代价

(6)选择具有最小总代价的um,um∈u*,并将um中的核心用户um作为参与任务的用户m*

(7)依据所选择的用户m*,确定满足任务能力多样性需求的用户集合u+

作为一种优选的技术方案,所述的步骤(2)中用户集合uk={ui|ui∈u',vik≥vk>0}。

作为一种优选的技术方案,所述的步骤(3)中用户集合u*满足|u*|=mink∈a(t){|uk|},|u*|为集合u*的基数,uk为满足任务t对能力k的需求的用户集合。

作为一种优选的技术方案,所述的步骤(3)中如果用户集合u'中存在多个大小相等的包含用户数量最少的用户集合,则从中随机选择一个用户集合作为用户集合u*

作为一种优选的技术方案,所述的步骤(4)中用户ui执行任务t的代价max表示在满足条件vik≥vk>0的所有k中函数f()的最大值,函数f(k,vik-vk)是依据应用场景定义的具有能力k、能力值差为vik-vk的用户执行任务t的代价。

作为一种优选的技术方案,所述的步骤(5)中用户集合um完成任务的总代价cj,t为用户uj执行任务t的代价,wmj表示用户um∈u*和用户uj∈uk之间的通讯代价。

作为一种优选的技术方案,所述的步骤(7)中确定满足任务能力多样性需求的用户集合u+,包括如下步骤:

a.将用户m*加入到满足任务能力多样性需求的用户集合u+中;

b.对于任务t的每种能力k∈a(t),依次按照公式将用户p*∈uk加入到用户集合u+中,其中wu+p为u+中用户和用户up∈uk之间的通讯代价,cp,t表示用户up∈uk执行任务t的代价。

作为一种优选的技术方案,所述的步骤b中u+中用户和用户up∈uk之间的通讯代价wu+p,其计算公式为wsp为用户us∈u+和用户up∈uk之间的通讯代价。

作为一种优选的技术方案,所述的步骤b中计算出的p*∈u+,则不再将其加入到u+中。

作为一种优选的技术方案,还包括步骤(8):每当发现新的感知任务时,转到步骤(2)。

本发明的有益效果如下:

1、本发明同时考虑了任务的能力多样性需求、用户执行任务的代价及相互合作用户之间的通讯代价,通过计算能保证待分配任务的多样性能力需求能够得到满足,并能够最小化用户完成任务代价和合作用户通讯代价,进一步扩展了群智感知应用范围。

2、本发明相对于传统方法,增加了任务分配的实时性,减少了用户交互次数,对于提交的任务,能够及时快速地为其分配满足任务多样性约束的合作用户,从而为大规模实时群智感知应用提供了保障。

3、本发明提供了高效的任务分配方法,与具有时间复杂度o(2n)的蛮力搜索方法相比,本方法的时间复杂度降低到o(n2),其中n是用户数目,较大降低了任务分配时间,从而为大规模实时群智感知应用提供了保障。

附图说明

图1为本发明的群智感知系统结构图;

图2为本发明的流程图;

图3为实施例1中任务的能力需求和用户的能力示意图;

图4为实施例2中任务的能力需求和用户的能力示意图。

具体实施方式

下面结合附图和实施例对本发明进一步详细说明,但本发明不限于下述的实施方式。

实施例1

在图1中,众多参与感知任务的用户向云平台提交各自的能力及能力值,任务请求者向云平台提交任务请求(包括任务所需能力及所需能力值),云平台进行任务分配,对于提交的每个任务分别处理,将其分配给某些用户,同时,将分配的结果反馈给相应的任务请求者和用户,用户在收到分配结果后,利用其携带的移动智能设备执行感知任务并回传数据给云平台,云平台将感知数据传输给任务请求者,并根据任务完成质量计算参与用户的报酬,将报酬付给相应的用户。

在图2中,一种面向群智感知的任务分配方法,包括下述步骤:

(1)收集到的用户集合u={u1,u2,u3},a={1,2,3},用户u1的能力为v1=(0.1,0.2,0.3),用户u2的能力为v2=(0,0.4,0.5),用户u3的能力为v3=(0.4,0,0.2),任意两个用户之间通信代价分别为w12=2,w23=4,w13=10,w11=w22=w33=0;

(2)收集到的任务t所需要的能力需求为v1=0.2,v2=0.3,v3=0.2,用户u1~u3的能力值和任务t所需要的能力值如图3所示,针对任务t的每个能力的需求值,确定可参与该任务的用户集合u1={u3},u2={u2},u3={u1,u2,u3};

(3)从可参与任务t的用户集合u1、u2、u3中选择包含用户数量最少的用户集合,由于|u1|=|u2|,所以随机选择其中一个,选择u1,即u*=u1={u3};

(4)定义用户执行任务的代价函数f()为f(1,y)=10(1-y),f(2,y)=15(1-y),f(3,y)=20(1-y),其中y=vik-vk,vik∈vi,i∈{1,2,3},k∈{1,2,3},计算出用户u1执行任务t的代价c1,t=f(3,0.3-0.2)=18,用户u2执行任务t的代价为c2,t=max{f(2,0.4-0.3),f(3,0.5-0.2)}=14,用户u3执行任务t的代价c3,t=max{f(1,0.4-0.2),f(3,0.2-0.2)}=20,需要指出的是,一旦定义了函数f(),以后再进行本步骤时,将直接依据所定义函数计算各个用户执行任务的代价,即ci,t;

(5)对于用户集合u*中的每个用户um,由步骤(3)可知u*=u1={u3},则以用户u3为核心用户的用户集合u3完成任t的总代价为

(6)选择具有最小总代价的um(um∈u*),由于最小,因此um=u3={u2,u3},并将u3中的核心用户u3作为参与任务的用户,所以m*=u3;

(7)将用户u3加入到满足任务能力多样性需求的用户集合u+中,此时u+={u3},依次根据任务t的3种能力需求,计算可加入到集合u+的用户;

对于任务t的能力1,k=1,u1={u3},对于up∈{u3},根据公式即p*=argmin{w33+c3,t},计算出p*=u3,因为p*∈u+,则不再将其加入到u+中,此时u+={u3};

对于任务t的能力2,k=2,u2={u2},对于up∈{u2},。根据公式计算出p*=u2,则把u2加入u+中,此时u+={u2,u3};

对于任务t的能力3,k=3,u3={u1,u2,u3},对于up∈{u1,u2,u3},根据公式计算出p*=u2,由于p*∈u+,则不再将其加入到u+中,所以此时u+={u2,u3};

最终确定满足任务t的能力多样性需求的用户集合u+={u2,u3}。

实施例2

在图4中,本实施例的一种面向群智感知的任务分配方法,包括下述步骤:

收集到的用户集合为u={u1,u2,u3,u4,u5,u6,u7,u8},a={1,2,3,4},用户u1的能力为v1=(0.4,0.2,0.3,0.6),用户u2的能力为v2=(0.5,0,0.4,0.1),用户u3的能力为v3=(0.4,0.1,0,0.2),用户u4的能力为v4=(0.7,0.4,0.2,0.3),用户u5的能力为v5=(0,0.4,0,0.5),用户u6的能力为v6=(0.2,0,0.8,0.2),用户u7的能力为v7=(0.1,0.6,0.2,0.3),用户u8的能力为v8=(0,0.3,0.4,0.4),其中任意两个用户之间通信代价以下对称矩阵表示

(2)收集到的任务t所需要的能力需求为v1=0.4,v2=0.3,v3=0.4,v4=0.5,针对任务t的每个能力的需求值,确定可参与该任务的用户集合u1={u1,u2,u3,u4},u2={u4,u5,u7,u8},u3={u2,u6,u8},u4={u1,u5};

(3)定义用户执行任务的代价函数f()为:f(1,y)=10(1-y),f(2,y)=5(1-y),f(3,y)=20(1-y),f(4,y)=15(1-y),其中y=vik-vk,vik∈vi,i∈{1,2,...,8},k∈{1,2,3,4},计算出的用户u1~u8执行任务t的代价分别为c1,t=13.5,c2,t=9,c3,t=10,c4,t=7,c5,t=15,c6,t=12,c7,t=3.5,c8,t=20;

(4)从步骤(2)得到的可参与上述任务t的用户集合中,选择包含最少用户的用户集合,即u*=u4={u1,u5};

(5)对于集合u*中的每个用户um,以用户um为核心用户的用户集合um完成任务t的总代价根据上述计算公式分别为:

(6)选择具有最小总代价的um(um∈u*),由于最小,因此um=u1={u1,u4,u6},并将u1中的核心用户u1作为参与任务的用户,所以m*=u1;

(7)将用户u1加入到满足任务的能力多样性需求的用户集合u+中,此时u+={u1},依次根据任务t的4种能力需求,计算可加入到集合u+的用户;

对于任务t的能力1,k=1,u1={u1,u2,u3,u4},对于up∈{u1,u2,u3,u4},根据公式

计算得出p*=u4,所以把u4加入u+中,此时u+={u1,u4};

对于任务t的能力2,k=2,u2={u4,u5,u7,u8}。对于up∈{u4,u5,u7,u8},

根据公式即p*=argmin{w44+c4,t,w45+c5,t,w47+c7,t,w18+c8,t}计算出p*=u4,由于p*∈u+,则不再将其加入到u+中,此时u+={u1,u4};

对于任务t的能力3,k=3,u3={u2,u6,u8}。对于up∈{u2,u6,u8},根据公式计算出p*=u6,由于p*∈u+,则把u6加入u+中,此时u+={u1,u4,u6};

对于任务t的能力4,k=4,u4={u1,u5}。对于up∈{u1,u5},根据公式计算出p*=u1,由于p*∈u+,则不再将其加入到u+中,此时u+={u1,u4,u6};

最终确定满足任务t的能力多样性需求的用户集合u+={u1,u4,u6}。

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