一种应用于带偏好众包系统的真实任务分配方法与流程

文档序号:12602426阅读:233来源:国知局
一种应用于带偏好众包系统的真实任务分配方法与流程

本发明涉及众包系统中任务的分配方法,属于互联网和算法博弈论的交叉领域。



背景技术:

众包通过整合互联网上未知用户来完成机器难以完成的任务,已成为许多互联网资源产生的主要实现机制。目前众包已经广泛应用于信息检索、人工智能、视频分析、知识挖掘、智慧城市、人机交互学习、图像质量评估等领域。

众包系统中的激励机制设计十分关键。当众包工人执行任务的时候,会付出一定的成本,激励机制通过分配众包工人收益的方式,促使众包工人参与到众包系统中,以及高质量的完成众包任务。然而,目前的激励机制主要考虑对众包工人的激励;其次,没有考虑任务请求者对众包工人的偏好问题;最后,现有工作假设众包任务是属于一个任务请求者的。

一个实际存在的现象是任务的请求者往往对众包工人有偏好。比如,请求者和众包工人之间存在利益冲突、某任务需要满足一定条件的众包工人来完成、众包工人的工作负载限制等原因,都可能导致请求者对众包工人有偏好。一个典型的对众包工人存在偏好的例子是论文评审:编辑总是希望将论文交给该论文所在领域的专家来评审,而非所有专家。

实际上,在许多众包市场中,任务的请求者之间是存在竞争的。例如在一些开放的众包平台中,允许多个任务请求者同时在众包平台上发布不同的任务。这些任务请求者可能做出策略行为来最大化自身的利益。这种请求者竞争市场可能由众包工人,尤其是高质量众包工人数量稀少导致。

本发明提供了一种应用于存在带偏好非垄断请求者的众包系统的真实任务分配方法,该方法的目标是最大化已分配任务的价值总和。



技术实现要素:

本发明首先提出一种带偏好众包系统模型:该模型中存在多个具有偏好的任务请求者,每个任务请求者提交一个任务。每个任务具有不同的工作负载,每个任务的价值由任务的难度和执行该任务的众包工人的努力程度相关。针对该模型,本发明进一步提出了一种真实任务分配方法,目标是最大化已分配任务的总价值。该种真实任务分配方法主要由两个核心算法组成:基于价值贪心的任务分配算法和基于价值密度贪心的任务分配算法。本发明所提的一种真实任务分配方法具有计算有效性、工作负载可行性、偏好真实性以及常数因子近似比的特性。

本发明的技术解决方案是:包含一种带偏好众包系统模型,步骤如下:

步骤201:众包平台发布一个三元组(W,C,I)给所有的任务请求者。其中W={1,2,…,m}表示众包工人集合,C=(C1,C2,…,Cm)表示m个众包工人的工作负载组成的向量,I=(I1,I2,…,Im)表示m个众包工人的努力指示器组成的向量;

步骤202:设请求者集合为R={1,2,…,n},每一个请求者i向平台提交一个请求Bi=(ti,ci,ai,Pi),其中ti是任务请求者i发布的任务。ci>0是任务ti的工作负载。每一个任务ti都有一个与之相关的任务类型ai。是请求者i声明的偏好集合;

步骤203:众包平台计算任务和众包工人之间的分配

步骤204:众包工人执行已分配的任务并把结果反馈给众包平台;

步骤205:众包平台把服务提供给任务请求者。

在步骤203中,平台计算任务和工作者之间的分配问题形式化表示为

s.t.(1) <mrow> <msub> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>&Element;</mo> <msup> <mi>A</mi> <mi>k</mi> </msup> </mrow> </msub> <msub> <mi>c</mi> <mi>i</mi> </msub> <mo>&le;</mo> <msub> <mi>C</mi> <mi>k</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>k</mi> <mo>&Element;</mo> <mi>W</mi> </mrow>

(2)

(3)

其中,k∈W表示分配给众包工人k的任务,i∈R表示执行任务i的众包工人,表示分配中任务的总价值,表示众包工人k执行任务i后,任务请求者i所获得的价值。

上述形式化问题的本质是:寻找一个任务和众包工人之间的分配,使得分配给众包工人的任务集合的价值总和最大,并且每一个任务至多被分给一个众包工人,众包工人所完成任务的负载总和不超过自身的最大工作负载。

在步骤203中,众包平台计算任务和众包工人之间的分配通过真实任务分配方法完成,该方法由两个核心算法组成:基于价值贪心的任务分配算法和基于价值密度贪心的任务分配算法。其中基于价值贪心的任务分配算法的步骤如下:

步骤301:对于每个请求者i∈R和每个偏好k∈Pi,令其中为任务i的难度系数,工作者k的剩余负载

步骤302:初始化分配集合为空;

步骤303:初始化相兼容的任务-众包工人对集合

步骤304:判断是否为空,如果是空,则执行步骤311,否则执行步骤305;

步骤305:在集合中,寻找价值最大的任务-众包工人对(i′,k′);

步骤306:检查是否大于等于0,如果大于等于0,执行步骤307,否则,执行步骤310;

步骤307:更新

步骤308:将任务-众包工人对(i′,k′)并入集合

步骤309:置执行步骤304;

步骤310:置执行步骤304;

步骤311:返回分配结束。

在步骤203中,众包平台计算任务和众包工人之间的分配通过真实任务分配方法完成,该方法由两个核心算法组成:基于价值贪心的任务分配算法和基于价值密度贪心的任务分配算法。其中基于价值密度贪心的任务分配算法的步骤如下:

步骤401:对于每个请求者i∈R和每个偏好k∈Pi,令其中为任务i的难度系数,工作者k的剩余负载

步骤402:初始化分配集合为空;

步骤403:初始化相兼容的任务-众包工人对集合

步骤404:判断是否为空,如果是空,则执行步骤411,否则执行步骤405;

步骤405:在集合中,寻找价值密度最大的任务-众包工人对(i′,k′);

步骤406:检查是否大于等于0,如果大于等于0,执行步骤407,否则,执行步骤410;

步骤407:更新

步骤408:将任务-众包工人对(i′,k′)并入集合

步骤409:置执行步骤404;

步骤410:置执行步骤404;

步骤411:返回分配结束。

在步骤203中,众包平台计算任务和众包工人之间的分配通过真实任务分配方法完成,具体步骤如下:

步骤501:在[0,1]区间生成一个随机数o;

步骤502:初始化分配为空;

步骤503:检查随机数o是否大于等于如果随机数o大于等于执行步骤504,否则执行步骤505;

步骤504:执行价值贪心的任务分配算法;执行步骤506;

步骤505:执行价值密度贪心的任务分配算法;

步骤506:返回分配结束。

有益效果

一种应用于带偏好众包系统的真实任务分配方法,可用于任务众包系统中有多个任务请求者,并且任务请求者对众包工人具有偏好时的任务分配。本发明具有以下显著的优点:

计算时间复杂度低,本发明所提一种应用于带偏好众包系统的真实任务分配方法的时间复杂度为O(n2m2),其中n为任务请求者数量,m为众包工人数量。真实任务分配方法是一个完全多项式时间方法,具有实际应用的价值。

一种应用于带偏好众包系统的真实任务分配方法具有工作负载可行性,即每一个众包工人分配到的任务的总负载不超过该众包工人的最大负载。

一种应用于带偏好众包系统的真实任务分配方法具有偏好真实性,即不管其他任务请求者提交什么偏好,提交一个虚假的偏好集合不能提高自己获取的价值。换句话说,对于所有任务请求者来说,报一个真实偏好集合是一个优势策略。因此任务请求者倾向于报自身的真实偏好集合。偏好真实性对于防止市场垄断或者串通具有重要作用。

本发明一种应用于带偏好众包系统的真实任务分配方法是以最大化总价值为目标的。定义近似比为最佳分配方法获得的价值与本发明所提真实任务分配方法获得的价值比值。可以证明,本发明所提真实任务分配方法的近似比为4。

附图说明

图1是带偏好众包系统模型的执行流程;

图2是基于价值贪心的任务分配算法执行流程;

图3是基于价值密度贪心的任务分配算法执行流程;

图4是真实任务分配方法执行流程。

具体实施方式

下面结合附图详细说明本发明的优选实施例。

一种带偏好众包系统模型,执行流程如图1所示,具体步骤如下:

步骤201:众包平台发布一个三元组(W,C,I)给所有的任务请求者。其中W={1,2,…,m}表示众包工人集合,C=(C1,C2,…,Cm)表示m个众包工人的工作负载组成的向量,I=(I1,I2,…,Im)表示m个众包工人的努力指示器组成的向量;

步骤202:设请求者集合为R={1,2,…,n},每一个请求者i向平台提交一个请求Bi=(ti,ci,ai,Pi),其中ti是任务请求者i发布的任务。ci>0是任务ti的工作负载。每一个任务ti都有一个与之相关的任务类型ai。是请求者i声明的偏好集合;

步骤203:众包平台计算任务和众包工人之间的分配

步骤204:众包工人执行已分配的任务并把结果反馈给众包平台;

步骤205:众包平台把服务提供给任务请求者。

在步骤203中,平台计算任务和工作者之间的分配问题形式化表示为

s.t.(1) <mrow> <msub> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>&Element;</mo> <msup> <mi>A</mi> <mi>k</mi> </msup> </mrow> </msub> <msub> <mi>c</mi> <mi>i</mi> </msub> <mo>&le;</mo> <msub> <mi>C</mi> <mi>k</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>k</mi> <mo>&Element;</mo> <mi>W</mi> </mrow>

(2)

(3)

其中,k∈W表示分配给众包工人k的任务,i∈R表示执行任务i的众包工人,表示分配中任务的总价值,表示众包工人k执行任务i后,任务请求者i所获得的价值。

上述形式化问题的本质是:寻找一个任务和众包工人之间的分配,使得分配给众包工人的任务集合的价值总和最大,并且每一个任务至多被分给一个众包工人,众包工人所完成任务的负载总和不超过自身的最大工作负载。

在步骤203中,众包平台计算任务和众包工人之间的分配通过真实任务分配方法完成,该方法由两个核心算法组成:基于价值贪心的任务分配算法和基于价值密度贪心的任务分配算法。其中基于价值贪心的任务分配算法的执行流程如图2所示,具体步骤如下:

步骤301:对于每个请求者i∈R和每个偏好k∈Pi,令其中为任务i的难度系数,工作者k的剩余负载

步骤302:初始化分配集合为空;

步骤303:初始化相兼容的任务-众包工人对集合

步骤304:判断是否为空,如果是空,则执行步骤311,否则执行步骤305;

步骤305:在集合中,寻找价值最大的任务-众包工人对(i′,k′);

步骤306:检查是否大于等于0,如果大于等于0,执行步骤307,否则,执行步骤310;

步骤307:更新

步骤308:将任务-众包工人对(i′,k′)并入集合

步骤309:置执行步骤304;

步骤310:置执行步骤304;

步骤311:返回分配结束。

在步骤203中,众包平台计算任务和众包工人之间的分配通过真实任务分配方法完成,该方法由两个核心算法组成:基于价值贪心的任务分配算法和基于价值密度贪心的任务分配算法。其中基于价值密度贪心的任务分配算法的执行流程如图3所示,具体步骤如下:

步骤401:对于每个请求者i∈R和每个偏好k∈Pi,令其中为任务i的难度系数,工作者k的剩余负载

步骤402:初始化分配集合为空;

步骤403:初始化相兼容的任务-众包工人对集合

步骤404:判断是否为空,如果是空,则执行步骤411,否则执行步骤405;

步骤405:在集合中,寻找价值密度最大的任务-众包工人对(i′,k′);

步骤406:检查是否大于等于0,如果大于等于0,执行步骤407,否则,执行步骤410;

步骤407:更新

步骤408:将任务-众包工人对(i′,k′)并入集合

步骤409:置执行步骤404;

步骤410:置执行步骤404;

步骤411:返回分配结束。

在步骤203中,众包平台计算任务和众包工人之间的分配通过真实任务分配方法完成,执行流程如图4所示,具体步骤如下:

步骤501:在[0,1]区间生成一个随机数o;

步骤502:初始化分配为空;

步骤503:检查随机数o是否大于等于如果随机数o大于等于执行步骤504,否则执行步骤505;

步骤504:执行价值贪心的任务分配算法;执行步骤506;

步骤505:执行价值密度贪心的任务分配算法;

步骤506:返回分配结束。

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