众包系统中的异构任务执行序列优化方法与流程

文档序号:11200622阅读:346来源:国知局
众包系统中的异构任务执行序列优化方法与流程

本发明涉及众包系统中的任务分配技术应用,具体来说,涉及一种众包系统中的异构任务执行序列优化方法。



背景技术:

随着众包系统的推广和应用,对于一批任务,系统会根据系统目标在任务和候选者之间选择一个合理的匹配方式将任务依次分配下去。任务执行速率快、代价低、准确率高,可以完成一些计算机无法完成的复杂任务,众包系统中存在的这些特点,吸引越来越多的研究者开始关注众包系统方面的研究,其中任务分配方法尤其是研究的重点。众包系统中主要包括任务发布者、众包平台、工人和任务这几部分,尤其当执行任务的个体是工人时,工人的自身能力、周围环境等因素都会影响到工人的任务执行速率。

以往任务分配问题研究,主要关注任务性质、工人性质、周围环境等因素对工人的任务执行速率的影响,考虑集中式、分布式等不同场景下的任务分配方法。相关研究发现,在社会个体执行任务的现实环境中(如众包系统),工人执行任务的速率会受负载影响而呈现动态性特征,两者之间存在一个先增后减的关系。而以往任务分配研究往往忽略了这一点。在一定范围内,增加工人承担的负载量可以提高工人执行任务的速率,而超过一定范围后,增加工人承担的负载量反而会降低工人执行任务的速率。考虑到工人执行任务的速率与负载之间存在的关系,以及任务之间异质性的存在,不同的任务执行序列会影响工人的任务完成时间。这些新特点的出现,使得现有的任务分配方法在工人执行任务的速率受负载影响而动态变化的环境中存在局限性。



技术实现要素:

本发明要解决的技术问题是:为了突破传统的任务分配方法中忽略了工人任务执行速率受负载影响而呈现的动态性特征的局限性,同时考虑进异构任务环境下任务之间异质性的存在,提供了一种众包系统中的异构任务执行序列优化方法。

本发明解决其技术问题的解决方案是:众包系统中的异构任务执行序列优化方法,包括以下步骤:(1)设置工人任务执行速率与负载之间的关系模型f;(2)对系统进行初始化,输入工人信息、系统时间间隔t和截止时间dl;(3)每间隔时间t,依次计算每个工人在不同负载情况下的技能因子和任务集合中每项任务的最短执行时间,并根据排序不等式原理,对每个工人的任务执行序列进行调整;(4)在系统时间间隔t内,工人持续执行其任务集合上的任务。

作为上述技术方案的进一步改进,所述步骤(1)中的设置工人任务执行速率与负载之间的关系模型f的具体步骤如下:

(1.1)系统设置工人任务执行速率与负载之间的关系模型f:系统中工人执行任务的速率与其承担的任务负载量相关,两者之间存在一个先增后减的关系;

(1.2)系统优先选择以下工人任务执行速率与负载之间的关系模型:其中iwi表示工人ai的最佳负载值,loadi表示工人ai的当前负载量,f(loadi)表示工人ai在负载量为loadi时的技能因子,关系模型具体表示如下:

(1.3)每个工人ai的最佳负载值iwi初始已知,系统中所有工人服从同一个任务执行速率与负载之间的关系模型,每个工人ai都有一个最佳负载值iwi作为自己的特征参数,且该值初始已知,因而对于相同的模型,工人之间仍存在异质性。

作为上述技术方案的进一步改进,所述步骤(2)包括具体步骤如下:

(2.1)获取系统中初始工人信息,系统中包括任务集合r={r1,r2,...,rm}、工人集合a={a1,a2,...,an}和技能集合skill={s1,s2,...,sq};每个工人ai都有一个技能集合s(ai)={si1,si2,...,siq}、一个最佳负载值iwi和一个待执行的任务集合r(ai)={ri1,ri2,...,rik};技能集合s(ai)中的元素siq指工人ai执行技能sq对应的任务的最佳速率,siq>0表示工人ai拥有技能sq,否则工人ai不具备技能sq;最佳负载值iwi表示工人ai处于最佳任务执行速率水平时所承担的任务负载量,工人的任务集合r(ai)中存储工人ai已分配得到的任务信息;

(2.2)设置系统时间间隔t和截止时间dl,在截止时间dl之前,每间隔一段时间t,系统执行一次任务分配过程,每个个体的待执行任务集合则更新一次,异构任务环境下,每个任务rj都有一个工作量要求lenj和技能要求skillj,不同任务在技能要求和工作量要求上存在差异,每个任务只需要分配给一个工人执行。

作为上述技术方案的进一步改进,所述步骤(3)包括具体步骤如下:

(3.1)每间隔时间t,系统执行一次任务分配过程,对于每个工人ai,存在一个新到达的任务集合ri,r(ai)=r(ai)∪ri,因此,系统每间隔时间t,需要对每个工人的任务执行序列进行调整;

(3.2)对于工人ai,首先初始化任务集合temptaskset=r(ai);根据工人任务执行速率与负载之间的关系,依次计算工人ai在不同负载情况下的技能因子,技能因子表示工人执行任务的实际速率与最佳速率之间的比值:

并对技能因子集合cvalueset进行升序排列;依次计算工人ai执行其任务集合r(ai)中每个任务的最短执行时间:

对任务最短执行时间集合taskmintimeset进行降序排列;根据排序不等式原理,计算工人ai在时间间隔t内最多可以完成的任务数量maxtasknum,并将工人任务集合r(ai)中maxtasknum个执行时间最短的任务调整到任务集合前端;依次对工人任务集合r(ai)中的任务进行序列调整:

r(ai)[cvalueset[j].first]=temptaskset[taskmintimeset[j].first];

(3.3)对工人集合a中的所有工人依次执行(3.2)中的任务执行序列优化调整过程。

作为上述技术方案的进一步改进,所述步骤(4)包括具体步骤如下:

(4.1)若工人任务集合为空,则工人在时间间隔t内,持续处于空闲等待状态;

(4.2)若工人任务集合非空,则工人在时间间隔t内,按照其任务集合中的序列持续执行任务,系统每间隔一段时间执行一次任务分配;对于任务rj=(lenj,skillj),工人ai执行该任务的实际速率为ai(skillj)*fi(|r(ai)|),其中ai(skillj)为工人ai执行技能skillj对应的任务的最佳速率,fi(|r(ai)|)为工人ai在负载量为|r(ai)|时的技能因子,故工人ai完成任务rj所需要的时间为:

tij=lenj/(ai(skillj)*fi(|r(ai)|))=lenj/(ai(skillj)*cvaluei(|r(ai)|))。

本发明的有益效果是:本发明与现有技术相比具有以下优点:(1)考虑到异构任务环境下任务之间异质性的存在,以及工人的任务执行速率受工人承担的任务负载量的影响而呈现动态性特征,在工人执行任务前、对工人任务集合的执行序列进行优化调整,进一步优化了工人的任务执行时间;(2)基于工人任务执行速率与负载之间的关系,提出的工人任务执行序列优化方法,在工人任务集合处于离线状态下,可以得到最优解;在工人任务集合处于在线状态下,基于贪心策略可以尽量缩短工人的任务完成时间。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单说明。显然,所描述的附图只是本发明的一部分实施例,而不是全部实施例,本领域的技术人员在不付出创造性劳动的前提下,还可以根据这些附图获得其他设计方案和附图。

图1是本发明的流程图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,文中所提到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。

参照图1,本发明的众包系统中考虑工人任务执行速率受负载影响的异构任务执行序列优化方法,包括以下步骤:

(1)设置工人任务执行速率与负载之间的关系模型f;

(2)对系统进行初始化,输入工人信息、系统时间间隔t和截止时间dl;

(3)每间隔时间t,依次计算每个工人在不同负载情况下的技能因子和任务集合中每项任务的最短执行时间,并根据排序不等式原理,对每个工人的任务执行序列进行调整;

(4)在系统时间间隔t内,工人持续执行其任务集合上的任务。

进一步作为优选的实施方式,所述步骤(1)中的设置工人任务执行速率与负载之间的关系模型f的具体步骤如下:

(1.1)系统设置工人任务执行速率与负载之间的关系模型f。系统中工人执行任务的速率与其承担的任务负载量相关,两者之间存在一个先增后减的关系。在一定范围内,工人的任务执行速率随着其承担任务负载量的增加而上升,超过一定范围后,工人的任务执行速率随着其承担任务负载量的增加而降低。

(1.2)系统优先选择以下工人任务执行速率与负载之间的关系模型:其中iwi表示工人ai的最佳负载值,loadi表示工人ai的当前负载量,f(loadi)表示工人ai在负载量为loadi时的技能因子,关系模型具体表示如下:

(1.3)每个工人ai的最佳负载值iwi初始已知,系统中所有工人服从同一个任务执行速率与负载之间的关系模型,每个工人ai都有一个最佳负载值iwi作为自己的特征参数,且该值初始已知,因而对于相同的模型,工人之间仍存在异质性。

进一步作为优选的实施方式,所述步骤(2)中的具体步骤为:

(2.1)获取系统中初始工人信息。系统中主要包括三部分,即任务集合r={r1,r2,...,rm}、工人集合a={a1,a2,...,an}和技能集合skill={s1,s2,...,sq}。每个工人ai都有一个技能集合s(ai)={si1,si2,...,siq}、一个最佳负载值iwi和一个待执行的任务集合r(ai)={ri1,ri2,...,rik}。技能集合s(ai)中的元素siq指工人ai执行技能sq对应的任务的最佳速率,siq>0表示工人ai拥有技能sq,否则工人ai不具备技能sq。最佳负载值iwi表示工人ai处于最佳任务执行速率水平时所承担的任务负载量。工人的任务集合r(ai)中存储工人ai已分配得到的任务信息。

(2.2)设置系统时间间隔t和截止时间dl。在截止时间dl之前,每间隔一段时间t,系统执行一次任务分配过程,每个个体的待执行任务集合则更新一次。异构任务环境下,每个任务rj都有一个工作量要求lenj和技能要求skillj,不同任务在技能要求和工作量要求上存在差异,每个任务只需要分配给一个工人执行。

进一步作为优选的实施方式,所述步骤(3)中的具体步骤为:

(3.1)每间隔时间t,系统执行一次任务分配过程,对于每个工人ai,存在一个新到达的任务集合ri,r(ai)=r(ai)∪ri,因此,系统每间隔时间t,需要对每个工人的任务执行序列进行调整。

(3.2)对于工人ai,首先初始化任务集合temptaskset=r(ai);根据工人任务执行速率与负载之间的关系,依次计算工人ai在不同负载情况下的技能因子,技能因子表示工人执行任务的实际速率与最佳速率之间的比值:

并对技能因子集合cvalueset进行升序排列;依次计算工人ai执行其任务集合r(ai)中每个任务的最短执行时间,并对任务最短执行时间集合taskmintimeset进行降序排列;根据排序不等式原理,计算工人ai在时间间隔t内最多可以完成的任务数量maxtasknum,并将工人任务集合r(ai)中maxtasknum个执行时间最短的任务调整到任务集合前端;依次对工人任务集合r(ai)中的任务进行序列调整:

r(ai)[cvalueset[j].first]=temptaskset[taskmintimeset[j].first]。

(3.3)对工人集合a中的所有工人依次执行(3.2)中的任务执行序列优化调整过程。

进一步作为优选的实施方式,所述步骤(4)中的具体步骤为:

(4.1)若工人任务集合为空,则工人在时间间隔t内,持续处于空闲等待状态;

(4.2)若工人任务集合非空,则工人在时间间隔t内,按照其任务集合中的序列持续执行任务,系统每间隔一段时间执行一次任务分配策略时的任务分配时间可以忽略。对于任务rj=(lenj,skillj),工人ai执行该任务的实际速率为ai(skillj)*fi(|r(ai)|),其中ai(skillj)为工人ai执行技能skillj对应的任务的最佳速率,fi(|r(ai)|)为工人ai在负载量为|r(ai)|时的技能因子。故工人ai完成任务rj所需要的时间为:

tij=lenj/(ai(skillj)*fi(|r(ai)|))=lenj/(ai(skillj)*cvaluei(|r(ai)|))。

众包系统中考虑工人任务执行速率受负载影响的异构任务执行序列优化方法主要包括以下几点:设置工人任务执行速率与负载之间的关系模型f;对系统进行初始化,输入工人信息、系统时间间隔t和截止时间dl;每间隔时间t,依次计算每个工人在不同负载情况下的技能因子和任务集合中每项任务的最短执行时间,并根据排序不等式原理,对每个工人的任务执行序列进行调整;在系统时间间隔t内,工人持续执行其任务集合上的任务。本技术充分考虑了异构任务环境中任务之间的异质性,以及工人任务执行速率与负载之间存在的先增后减的关系,通过优化工人的任务执行序列来优化工人的任务完成时间。

以上对本发明的较佳实施方式进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变型或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。

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