一种空间众包任务分配方法与流程

文档序号:16038155发布日期:2018-11-24 10:14阅读:506来源:国知局

本发明涉及一种空间众包任务分配方法,属于互联网技术领域。

背景技术

随着移动设备和众包平台的快速发展,空间众包引起了数据库界的广泛关注。空间众包广泛应用于日常生活中,如目前被很多人使用的滴滴打车,物流派送方面的外卖派送。使用百度地图及高德地图的用户分享实时的路况信息,也是潜在的众包任务参与者。在灾情信息监控方面,人们可以通过社交媒体软件来实时分享灾情信息,每一位分享灾情的用户即为众包工人。众包分为传统众包和空间众包,空间众包与传统众包在众包任务、任务发起者和众包平台三个方面都有差别。在一般情况下,传统众包的任务为在线完成,所以只需要将参与者的数量和历史任务完成情况作为考虑因素。而空间众包任务不仅受到上述传统众包任务因素的影响,还要受任务的空间属性的影响,比如任务附近的工人密度、城市的交通情况等。



技术实现要素:

本发明的目的是为了解决现有的多技能空间众包任务分配相关研究中没有考虑平台收益及任务分配数较低这两个问题,提出的一种基于多技能空间众包任务分配模型的多技能空间众包任务分配方法。

本发明的目的是这样实现的:

一种空间众包任务分配方法,其特征在于,包括以下步骤:

步骤一判断待分配任务队列中是否有待分配的任务,如果有则先处理待分配任务队列中的任务,执行步骤三否则执行下一步;

步骤二调用tpc方法计算任务的优先级:首先计算任务发起者等级,然后根据约束条件计算出该任务可用的工人数量及可用的任务地点数量,再计算任务优先级,执行下一步;

步骤三调用wfc方法为任务选择工人:首先根据约束选择出满足约束条件的工人集合,计算工人的分数,将工人按分数进行排序,按照任务的技能要求按工人顺序选择工人,直到满足任务的技能要求;若没选择到足够的工人,则将该任务加入待分配任务队列中,执行下一步;

步骤四调用mls方法选择任务地点:如果任务为待分配任务队列中的任务,则先执行步骤二为任务选择可用的工人,选择工人可达并且去除任务发起者不可达的任务地点,计算备选工人和任务发起者的重心坐标,再计算出离重心最近的任务地点;如果有不能成功进行分配的任务,则加入待分配的任务队列,等待下一个时间戳处理。

所述的tpc方法包括以下步骤:

步骤一判断任务发起者集合是否为空,如果为空则方法结束,否则执行下一步;

步骤二计算任务发起者等级,根据任务的约束条件计算任务可用的工人集合及工人可达任务地点集合,执行下一步;

步骤三去除任务地点集合中任务发起者不可达的任务地点,计算任务优先级,执行下一步;

步骤四判断是否处理完所有任务发起者发布的任务,若处理完则执行下一步,否则,执行步骤一;

步骤五将任务按优先级大小进行排序,输出优先级队列,方法结束。

所述的wfc方法包括以下步骤:

步骤一判断任务可用的工人集合是否为空,若为空则执行下一步,否则执行步骤三;

步骤二为任务选择满足任务约束条件的工人,执行下一步;

步骤三计算任务可用工人集合中工人的分数,执行下一步;

步骤四判断是否计算完所有工人的分数,如果计算完则执行下一步,否则执行步骤三;

步骤五对工人按分数进行排序,执行下一步;

步骤六按顺序选择工人,如果满足任务技能覆盖则执行下一步,否则,如果仍有可用工人,则继续执行本步,如果没有可选工人则将该任务加入待分配任务队列,方法结束。

所述的mls方法包括以下步骤:

步骤一判断任务地点集合是否为空,若为空,则执行下一步,否则执行步骤三;

步骤二计算该任务可用工人集合中工人可达任务地点集合,并去除其中任务发起者不可达的任务地点;

步骤三计算计算备选工人和任务发起者的重心坐标;

步骤四计算出离重心最近的任务地点,输出任务地点,方法结束。

本发明的有益效果:

本发明根据该类空间众包的任务类型来设计一个符合该场景的任务分配模型,在多技能空间众包任务分配模型基础之上,针对现有多技能空间众包任务分配方法中的greedy方法、g-d&c方法、adaptive方法任务分配数低及没有考虑平台收益的问题,本发明分别设计了用于计算任务处理优先级的tpc方法、用于选择工人的wfc方法以及用于任务地点选择的mls方法,基于这三个方法提出了多技能空间众包任务分配方法ms-scta方法,目标是在满足各种约束的条件下,保证任务分配总数以及平台收益,并最大化任务分配的总收益。

附图说明

图1为本发明的流程框图;

图2为tpc方法的流程图;

图3为wfc方法的流程图;

图4为mls方法的流程图;

图5为改变任务预算[b-,b+]范围时本发明方法与三个方法任务分配总分数、任务分配数、平台收益和运行时间四个方面的表现;

图6为改变单价[c-,c+]范围时本发明方法与三个方法任务分配总分数、任务分配数、平台收益和运行时间四个方面的表现;

图7为改变可移动距离范围[d-,d+]时本发明方法与三个方法任务分配总分数、任务分配数、平台收益和运行时间四个方面的表现。

具体实施方式

下面结合附图及运动实例,对本发明做出更加详细的阐述。

本发明根据该类空间众包的任务类型来设计一个符合该场景的任务分配模型,在多技能空间众包任务分配模型基础之上,针对现有多技能空间众包任务分配方法中的greedy方法、g-d&c方法、adaptive方法任务分配数低及没有考虑平台收益的问题,本发明分别设计了用于计算任务处理优先级的tpc方法、用于选择工人的wfc方法以及用于任务地点选择的mls方法,基于这三个方法提出了多技能空间众包任务分配方法ms-scta方法,目标是在满足各种约束的条件下,保证任务分配总数以及平台收益,并最大化任务分配的总收益。其主要观点和内容如下:

(1)用于计算任务处理优先级的tpc方法,其流程图如图2。给定一组任务t,在对其进行处理时,处理的顺序会影响最终的任务分配总分数,因为不恰当的处理顺序有可能导致某些任务找不到足够数量的匹配的工人来完成,或者找不到可用的任务地点,任务分配将不能成功。

在求解任务处理优先级时,需要考虑任务可用工人数量和任务地点数量。根据任务发起者对工人的等级约束、任务的技能约束、开始时间以及结束时间约束选出可用工人之后,再根据工人的距离约束来选出所有工人可达的任务地点,最后再根据任务发起者的距离约束来去除掉不符合任务发起者距离约束的任务地点。由于本发明任务分配的目标是最大化任务分配总分数,任务发起者的等级越高,其本次投入的资金或历史投入资金也是越多的。所以任务的预算以及任务发起者的等级也会影响任务的处理优先级,任务发起者的等级及任务的预算与任务的处理优先级成正相关。任务发起者为众包任务平台的用户,不同的用户也相应有不同的用户等级。任务发起者的等级对后续任务处理优先级的计算产生影响。每次在任务分配之前,先计算任务分配者此次的分配中的等级gp’,再把任务发起者的等级作为任务处理优先级的计算因素之一。本发明中,任务发起者的等级计算如公式(1)所示。

其中,gp为计算之前该任务发起者的等级,gp的取值都在0~10之间,bt为该任务发起者本次发布的任务预算,btmax为最大预算值,btmin为最小预算值。该式中的除法是为了使计算中的相关因素处于同一个数量级上。

任务的处理优先级由三个部分来决定:根据公式(1)计算出的发布该任务的任务发起者等级gp’,根据约束所能选择的工人数量nw和任务地点数量nd。任务处理优先级lt定义如公式(2)所示。

根据公式(2)计算出所要分配的任务的优先级,来选择符合要求的工人集合和符合要求的任务地点。

(2)用于选择工人的wfc方法,其流程图如图3。给定一组多技能空间众包任务t,在选择与该任务匹配的工人的时候,为了能更经济地选择出满足任务要求的工人,也需要有一定的工人选择顺序。本小节设计一种工人优先级的计算方式,可根据工人的分数来决定选择工人的优先级,分数越高的会优先被分配任务。

根据匹配约束条件,工人所拥有的技能xi和任务所需要的技能yj的交集不为空,即所以技能覆盖率为工人分数计算要考虑的因素之一。由于任务地点的位置最终要由任务发起者和工人的位置来确定,所以,工人距离任务发起者的距离也要作为工人分数计算的考虑因素之一。每个工人都有等级,在满足任务的等级要求之后,工人的等级越低,需要的报酬越低。考虑到本发明要保证平台收益的前提,则要优先选择满足任务等级要求的较低等级的工人。工人分数的计算公式如式(3)所示。

其中,gw为工人的等级,k为工人的技能覆盖率,即工人拥有的技能和任务所需技能交集的个数占任务所需技能个数的比例求解方式如公式(4)所示。

式中,xi∈ψ且yj∈ψ,ψ为任务需要的技能集合。工人所在位置(xw,yw)与任务发起者位置(xp,yp)的距离为如式(5)所示,为了简单起见,本发明采用欧式距离来代表各对象之间的距离。

(3)用于任务地点选择的mls方法,其流程图如图4。在选择众包任务地点的时候,首先根据众包工人和众包任务发起者的距离约束,筛选掉不满足距离约束的众包任务地点。其次,任务地点的等级也要作为考虑因素。在满足距离和等级约束之后,考虑到平台收益,在满足任务发起者对众包任务地点的约束之后,选择等级较低的任务地点会减少任务地点的开销。如果任务与任务地点正在进行的任务集合中的任务满足时间约束,则可以将该任务地点作为备选的任务地点。接下来,利用重心法的原理计算选出的所有工人位置坐标的重心点(x0,y0)。工人的等级越高,其路程补贴越高,所以求得的任务地点要考虑工人的等级。求解重心坐标的公式如式(6)所示。

求出重心点坐标之后,计算出备选任务地点与该重心点的距离,并计算出该距离与任务地点等级的乘积,如式(7)所示,并将结果按从小到大的顺序排序。选择求得的值最小的任务地点,即为将要执行任务的地点。这种选择任务地点的方式能够保证所有的任务参与者到达该任务地点的路程花费最小,当距离差别不大时,选择等级较小的任务地点,使任务场地的开销也较小,也有助于提高平台的收益。

其中,xdi为任务地点的x坐标,对应地图上的位置的纬度,ydi为任务地点的y坐标,对应地图上的位置的经度,gd为任务地点的等级,当r取最小值时,(xd,yd)即为所求任务地点的坐标。

本发明多技能空间众包任务分配方法的整个流程中,首先判断待分配任务队列中是否有还未被分配的任务,如果有则调用ms-scta方法首先处理一下,成功处理的任务从待分配任务队列里删除。处理完待分配任务队列里的任务再判断任务发起者集合是否为空,如果任务发起者集合不为空,则进一步计算任务发起者发布的任务优先级,否则结束方法。循环处理每个任务,如果能找到足够的工人,则进行下一步任务地点的选择,否则将该任务加入待分配任务队列。进行任务地点选择时,如果能找到可用的任务地点,则成功完成分配,结束方法。否则将该任务加入待分配任务队列,方法结束。

本发明的技术效果为:

为了评估本发明提出的ms-scta方法,本发明在任务分配总分数、平台收益、任务分配总数及运行时间四个方面,分别改变众包参与者可移动距离、任务预算、路程补贴单价三个参数与greedy方法、g-d&c方法、adaptive方法进行比较。其中任务分配总分数即任务分配的总收益,平台收益由任务分配总的收益减去工人的路程花费以及工人的薪资,本发明用工人的等级来代表工人的薪资。由于本发明在约束条件方面比greedy方法、g-d&c方法、adaptive方法多了等级约束和容量约束,所以在这三个方法进行比较时,要进行两次试验。首先要将这两种约束去掉,并且将任务发起者的地点当作任务地点,将这种条件下的方法记为ms-scta’,在涉及的因素及约束条件完全相同的场景下,使用相同的数据集进行一次实验,然后再完全按照本发明的约束以及方法步骤再进行一次实验,将这几种结果进行对比并用图示的方式展示,来比较几种方法的性能。

任务预算范围[b-,b+]的影响。将可移动距离值设定在[0.2,0.3]之间,单价设定在[2,3]之间,通过改变任务预算[b-,b+]范围来得到本发明方法和对比的三个方法,在不同的预算范围内的任务分配总分数、平台收益、任务分配数和方法运行时间。图5显示了从[1,5]到[20,25]的任务预算bj的不同范围[b-,b+]的实验结果。在图5(a)中,当任务预算的值范围变大时,因为单价不变,任务分配数也变多,所有方法的分配分数都会增加。本发明的ms-scta方法以及去掉一些约束的ms-scta’方法都比对比的三种方法获得更高的分数,其中ms-scta由于多了一些约束,所以初期比ms-scta方法得到的任务分配总分数略低,预算范围在[10,15]以上时,ms-scta方法得到的任务分配总分数最多。在图5(b)中,随着预算的增加,每个任务可选的工人也就越多,所以任务分配数也越多,因为本发明考虑了任务及工人的优先级,所以在同样的条件下,本发明方法所得到的任务分配数也多于对比的三种方法。在图5(c)中,任务数越多,所得到的总收益也就多,所以任务分配总分数也就越高,本发明在任务地点选择上也考虑了最小化路程花费,相应的平台收益也越多。在图5(d)中,由于随着预算的增加,任务的可用工人数量变多,所以运行时间也会增加。

单价[c-,c+]范围的影响。本发明中,单价是单位距离对工人的路程花费补贴,工人等级越高,其补贴越高。图6显示了单价范围[c-,c+]对任务分配总分数、任务分配数、平台收益和运行时间的影响。将任务预算设置为[5,10]范围内,可移动距离设置在[0.2,0.3]范围内,单价的范围由[1,2]增加至[4,5]。在图6(a)中,当单位价格走势增加时,所有方法的得分都会降低。原因是,当单价范围[c-,c+]增加时,预算和可移动距离不变,需要支付工人更多的工资,包括工人的交通费用,从而降低每项任务的灵活预算。当路程费用单价[c,c+]的范围增加时,由于灵活预算变少,所以有效的工人和任务对数减少,在图6(b)中,任务分配数也减少。由于预算不变,而单价在增加,所以图6(c)中相应的平台收益也与任务分配总分数趋势相同,为逐渐降低。随着任务分配数减少,图6(d)中所有方法的运行时间也减少。

可移动距离范围[d-,d+]的影响。图4显示了工人的最大移动距离范围[d-,d+]对任务分配总分数、任务分配数、平台收益和运行时间的影响。将任务预算设置为[5,10]范围内,单价设置在[2,3]范围内,将可移动距离的范围从[0.1,0.2]增加至[0.4,0.5]。在图7(a)中,随着可移动距离增加,可用的工人增加,所有方法的任务分配总分数增加。然而,当距离的约束被放宽时,来自其他参数的约束阻止了分数增长速度。对于运行时间。在图7(b)中,尽管可移动距离变大,然而预算不变,[0.2,0.3]之后任务分配数也增加地比较少。在图7(c)中,由于可移动距离变大,工人的路程花费也比之前要多一些,所以平台收益会有一些减少。在图7(d)中,可移动距离的增加使可用工人数增加,所以方法运行时间会增加。

根据上述实验结果,通过改变预算、单价、可移动距离三个参数范围,本发明的方法总体上在任务分配总分数、任务分配数、平台收益三个方面比对比的三种方法表现好,综合性能表现稳定。在运行时间上,虽然本发明方法比greedy慢,但比adaptive和g-d&c快,由于本发明是静态离线场景,对方法的时间复杂度要求不高,所以在运行时间上,本发明的方法可以达到要求。

ms-scta方法通过以下步骤实现,并通过图1的流程框图直观的表示出来,其中tpc方法的流程如图2所示,wfc方法的流程图如图3所示,mls方法流程图如图4所示:

(1)判断待分配任务队列中是否有待分配的任务,如果有则先处理待分配任务队列中的任务,执行第(3)步,否则执行下一步。

(2)调用tpc方法计算任务的优先级:首先采用式(1)计算任务发起者等级,然后根据约束条件计算出该任务可用的工人数量及可用的任务地点数量,再采用式(2)计算任务优先级,执行下一步。

(3)调用wfc方法为任务选择工人:首先根据约束选择出满足约束条件的工人集合,采用式(3)计算工人的分数,将工人按分数进行排序,按照任务的技能要求按工人顺序选择工人,直到满足任务的技能要求。若没选择到足够的工人,则将该任务加入待分配任务队列中,执行下一步。

(4)调用mls方法选择任务地点:如果任务为待分配任务队列中的任务,则先执行第(2)步为任务选择可用的工人,选择工人可达并且去除任务发起者不可达的任务地点,采用式(6)计算备选工人和任务发起者的重心坐标,再根据式(7)计算出离重心最近的任务地点。如果有不能成功进行分配的任务,则加入待分配的任务队列,等待下一个时间戳处理。

tpc方法通过以下步骤实现,并通过图2的流程图直观的表现出来:

(1)判断任务发起者集合是否为空,如果为空则方法结束,否则执行下一步。

(2)采用式(1)计算任务发起者等级,根据任务的约束条件计算任务可用的工人集合及工人可达任务地点集合,执行下一步。

(3)去除任务地点集合中任务发起者不可达的任务地点,采用式(2)计算任务优先级,执行下一步。

(4)判断是否处理完所有任务发起者发布的任务,若处理完则执行下一步,否则,执行第(1)步。

(5)将任务按优先级大小进行排序,输出优先级队列,方法结束。

wfc方法通过以下步骤实现,并通过图3的流程图直观的表现出来:

(1)判断任务可用的工人集合是否为空,若为空则执行下一步,否则执行第(3)步。

(2)为任务选择满足任务约束条件的工人,执行下一步。

(3)采用式(3)计算任务可用工人集合中工人的分数,执行下一步。

(4)判断是否计算完所有工人的分数,如果计算完则执行下一步,否则执行第(3)步。

(5)对工人按分数进行排序,执行下一步。

(6)按顺序选择工人,如果满足任务技能覆盖则执行下一步,否则,如果仍有可用工人,则继续执行本步,如果没有可选工人则将该任务加入待分配任务队列,方法结束。

mls方法通过以下步骤实现,并通过图4的流程图直观的表现出来:

(1)判断任务地点集合是否为空,若为空,则执行下一步,否则执行第(3)步。

(2)计算该任务可用工人集合中工人可达任务地点集合,并去除其中任务发起者不可达的任务地点。

(3)采用式(6)计算计算备选工人和任务发起者的重心坐标。

(4)根据式(7)计算出离重心最近的任务地点,输出任务地点,方法结束。

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