本发明涉及一种众包任务发布方法,尤其一种众包任务发布中任务参数的确定方法。
背景技术:
目前,在众包环境中,较为复杂的众包工作一般会被拆分为多个子任务并以众包工作流的形式来对它们进行处理。每个工作流可以看作是一个有向无环图,其中的各个子任务按照其先后及并列顺序被发布到众包平台上并被众包工人执行。而众包工作流中各众包任务被发布时的奖励、时间等参数的设置,会影响众包工作流对应众包工作的整体完成质量(完成成本、完成逾期情况等)。
对此,在先技术将众包任务发布问题中的任务各个参数的最优值确定问题规约为一个二次规划的约束求解问题,通过目标函数和约束条件来为任务各个参数的值找到其各自的全局最优解,以提升众包工作的整体完成效果。其二次规划约束求解方法可以通过约束求解器来实现,并可以得到比较精确的全局最优结果。但它仅在对少数众包工作流进行优化时,能在众包环境的可接受的时间范围内完成求解,随着约束数量的增加,优化时间将呈指数增长。此外,我们进行实验后发现,一些约束求解器只能快速地解决小规模时的问题,无法在可接受的时间内处理大规模问题。当任务数量变大时,不仅需要更多的执行时间,而且还需要更多的分配内存。
而在现实的众包环境中,需求者将任务被发布到众包平台上后,往往希望任务尽快被工人接受并完成。如果在参数求解这一过程中耗费太长时间的话,将会影响整体的工作进程,也降低了工作效率。
技术实现要素:
针对上述问题,本发明提出了一种众包任务发布中的任务参数的最优值确定方法,通过对众包平台完成任务的日志数据进行分析,确定众包工作流中众包任务各属性之间的关系,进而通过约束求解或启发式方法对任务各属性参数进行优化求解。
本发明的技术方案是这样实现的:
一种众包任务发布方法,包括以下步骤:
s1,请求者将需要处理的众包工作以包含一系列众包任务的众包工作流的形式提交给众包平台,众包平台将众包工作流中的任务传送给任务发布系统;
s2,任务发布系统对工作流中任务的各项参数进行优化处理,所述任务发布系统包括数据分析模块、任务参数优化模块和任务发布模块;
s3,任务发布系统根据优化处理后的任务参数和众包平台设置的任务发布条件发布任务,并将任务信息显示给众包工人;
s4,众包工人根据任务信息及自身条件预约并执行众包工作流中的某个任务;
s5,众包工人完成相应任务后,将结果反馈给众包平台,众包平台合并众包工作流中各任务的完成结果,并将最终完成结果反馈给请求者。
进一步的,步骤s2中所述数据分析模块负责对众包平台上众包工人的信息和已完成任务的历史工作的统计信息进行分析和处理,该模块完成三个主要的功能分别为:对任务、工人和工作流数据进行建模,确定各任务各个参数的取值范围和确定完成任务的成本目标函数的系数值。
进一步的,所述历史工作的统计信息至少包括:任务的种类,任务的分配等待时间,任务的预约等待时间及任务报酬;所述众包工人的信息至少包括:每个众包工人的唯一id,工人可接受的完成某个任务给定的最少分配时间及可接受的最少报酬。
进一步的,步骤s2中所述任务参数优化模块对众包任务各个参数的最优值求解方法分为以下两类:
当算法要处理的工作流数量较少时,将该问题规约为一个二次规划(quadraticprogramming,qp)问题进行求解,此qp问题的目标函数为使完成众包工作流中所有任务的总成本最小,即所有任务完成后要支付给工人的报酬之和最小;其中包括对时间添加的两类约束,第1类约束对所有路径上所有任务的分配时间添加约束,保证了每个任务的分配时间长度都不会造成最终的逾期,即使是最长路径,也能在时间上得到保障;第2类约束对所有目前还未开始接受处理或者已经发布的任务及其所在路径上的所有后续任务的分配时间和预约时间添加约束,这类约束保证了不会因为预约等待时间过长而造成最终的逾期;
当工作流数量较多时,使用启发式策略来进行参数求解,所述启发式策略包括四种,每种的侧重点不同,分别为:
策略1,工作流中任务最多的路径上任务的分配时间和预约时间最小,其他任务随机确定分配时间和预约时间的值;
策略2,工作流中任务最少的路径上任务的分配时间和预约时间最大,其他任务随机确定分配时间和预约时间的值;
策略3,直接为所有任务选择可取范围内最小的分配时间的值,预约时间选择中值;
策略4,将任务的分配时间和预约时间设定为其被发布在平台上后能使可能会接受任务的工人人数最多的值。
进一步的,步骤s2中所述任务发布模块通过判断当前任务设置的参数是否符合众包平台设置的任务发布条件,决定该任务是否发布;所述任务发布的条件包括两条,第一条是该任务在工作流中所处位置之前的任务已全部完成,第二条是该任务设置的参数不会造成工作流逾期;当该任务同时满足上述两个条件,由任务发布系统发布该任务;如果不满足第一条,任务需要等待其之前所有任务全部完成;如果不满足第二条,任务需要再次经过任务参数优化模块求解,将求解得到的新的最优值设置给任务的各个参数,保证任务的各个参数设置不会造成逾期。
本发明的有益效果在于:通过对众包平台完成任务的日志数据进行分析,确定众包工作流中众包任务各属性之间的关系,进而通过约束求解或启发式方法对任务各属性参数进行优化求解和对任务发布条件的判断,提高了众包工作流的完成质量,缩短了完成工作流所用的时间,提高了工作效率。
附图说明
图1是本发明众包任务的发布方法流程图。
具体实施方式
下面结合附图详述本发明具体实施方式:
如图1所示,一种众包任务发布方法,包括以下步骤:
s1,请求者将需要处理的众包工作以包含一系列众包任务的众包工作流的形式提交给众包平台,众包平台将众包工作流中的任务传送给任务发布系统;
s2,任务发布系统对工作流中任务的各项参数进行优化处理,所述任务发布系统包括数据分析模块、任务参数优化模块和任务发布模块;
s3,任务发布系统根据优化处理后的任务参数和众包平台设置的任务发布条件发布任务,并将任务信息显示给众包工人;
s4,众包工人根据任务信息及自身条件预约并执行众包工作流中的某个任务;
s5,众包工人完成相应任务后,将结果反馈给众包平台,众包平台合并众包工作流中各任务的完成结果,并将最终完成结果反馈给请求者。
进一步的,步骤s2中所述数据分析模块负责对众包平台上众包工人的信息和已完成任务的历史工作的统计信息进行分析和处理,该模块完成三个主要的功能分别为:对任务、工人和工作流数据进行建模,确定各任务各个参数的取值范围和确定完成任务的成本目标函数的系数值。
进一步的,所述历史工作的统计信息至少包括:任务的种类,任务的分配等待时间,任务的预约等待时间及任务报酬;所述众包工人的信息至少包括:每个众包工人的唯一id,工人可接受的完成某个任务给定的最少分配时间及可接受的最少报酬。
进一步的,步骤s2中所述任务参数优化模块对众包任务各个参数的最优值求解方法分为以下两类:
当算法要处理的工作流数量较少时,将该问题规约为一个二次规划(quadraticprogramming,qp)问题进行求解,此qp问题的目标函数为使完成众包工作流中所有任务的总成本最小,即所有任务完成后要支付给工人的报酬之和最小;其中包括对时间添加的两类约束,第1类约束对所有路径上所有任务的分配时间添加约束,保证了每个任务的分配时间长度都不会造成最终的逾期,即使是最长路径,也能在时间上得到保障;第2类约束对所有目前还未开始接受处理或者已经发布的任务及其所在路径上的所有后续任务的分配时间和预约时间添加约束,这类约束保证了不会因为预约等待时间过长而造成最终的逾期;
当工作流数量较多时,使用启发式策略来进行参数求解,所述启发式策略包括四种,每种的侧重点不同,分别为:
策略1,工作流中任务最多的路径上任务的分配时间和预约时间最小,其他任务随机确定分配时间和预约时间的值;
策略2,工作流中任务最少的路径上任务的分配时间和预约时间最大,其他任务随机确定分配时间和预约时间的值;
策略3,直接为所有任务选择可取范围内最小的分配时间的值,预约时间选择中值;
策略4,将任务的分配时间和预约时间设定为其被发布在平台上后能使可能会接受任务的工人人数最多的值。
进一步的,步骤s2中所述任务发布模块通过判断当前任务设置的参数是否符合众包平台设置的任务发布条件,决定该任务是否发布;所述任务发布的条件包括两条,第一条是该任务在工作流中所处位置之前的任务已全部完成,第二条是该任务设置的参数不会造成工作流逾期;当该任务同时满足上述两个条件,由任务发布系统发布该任务;如果不满足第一条,任务需要等待其之前所有任务全部完成;如果不满足第二条,任务需要再次经过任务参数优化模块求解,将求解得到的新的最优值设置给任务的各个参数,保证任务的各个参数设置不会造成逾期。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。