一种基于协商的重叠联盟形成下的任务分配方法与流程

文档序号:14250258阅读:370来源:国知局
一种基于协商的重叠联盟形成下的任务分配方法与流程

本发明涉及任务分配、激励机制领域,特别涉及一种基于协商的重叠联盟形成下的任务分配方法。



背景技术:

在基于贪心算法的任务分配中,工人加入能够获得更高报酬的联盟。在基于合同网算法的任务分配中,任务请求者只选择提供当前任务所缺技能的工人加入联盟,并且工人同样只选择加入能够获得更高报酬的联盟。通过基于协商的机制,工人加入贡献自身组合技能使得收益提高的联盟中,能够在短时间内建立专业的,高合作性的工人联盟。

在本发明作出之前,现有的基于协商的重叠联盟形成下的任务分配方法存在如下几个难点:

1)任务分配根据任务请求者和工人的收益情况,从最大化社会福利(任务请求者和工人的收益的总和)的角度进行联盟的形成。但是在现实情况中,二者的目标是不同且通常是冲突的,所以应当考虑到二者异质的目标,设计一种协商策略来分别最大化二者的收益。

2)面对具体的应用时,需要考虑多种约束条件和目标。任务分配的过程中不仅要满足技能的需求,还应考虑到工人之间的关系,比如相邻的工人更愿意形成联盟来完成相应的任务,因为他们彼此之间熟悉,或者说有过合作。大多数现有的工人联盟形成没有考虑到工人之间的结构,只是单纯的找一组工人满足某一任务需求。

3)已有的工人联盟形成方法研究主要致力于设计具有保证近优性的中心式近似算法,但是这些方法假设存在一个中心协调者,协调者知道所有工人的信息,然而设计这样一个中心协调者具有较高的计算复杂度,所以我们这里以一种自组织的方式建立联盟,联盟的形成方法是一种分布式的自治模式。



技术实现要素:

本发明的目的就在于克服上述问题,研发一种基于协商的重叠联盟形成下的任务分配方法。

本发明的技术方案为:

一种基于协商的重叠联盟形成下的任务分配方法,其主要技术特征在于步骤如下:

(1)任务请求者提交任务完成所需的特定技能以及完成这些技能的报价,从而进行技能请求;

(2)工人提交拥有的技能以及每个技能的要价,从而进行技能请求响应;

(3)任务请求者根据工人的响应情况进行调整,工人根据调整后的情况做出最后的决定,从而进行响应确认。

所述的技能请求,将工人所能提供的技能分为非冗余技能和冗余技能,根据技能请求者的收益决定请求哪些技能。

所述的技能请求响应,请求响应阶段将工人的状态分为完全合同,半合同和无合同状态,根据工人的收益决定提供哪些技能。

所述的响应确认,任务请求者根据工人的响应情况做出调整,和工人签订最终合同。

所述一个工人在技能条件满足的情况下可以参加多个任务。

本发明的优点和效果在于因为任务请求者和工人目标的不同,所以应该考虑任务请求者以及工人的异质的目标,制定相应的协商策略,使得双方满意。

本发明采用重叠联盟的方式进行工人的选择,与传统的一个工人参与一个任务的情况不一样,考虑一个工人在参与某个任务的情况下,可以将自身闲置的技能提供给其他任务,这样可以提高资源的利用率。这里考虑到计算复杂性,假定一个工人最多加入两个任务。

附图说明

图1——本发明工人结构示意图。

图2——本发明非冗余技能提供者与冗余技能提供者提供技能示意图。

图3——本发明协商过程示意图。

具体实施方式

本发明的技术思路是:

任务请求者提交他的技能请求,包括请求技能集合,即完成该任务所需要的技能、阈值th,即某一技能被满足,任务请求者期望收益的增加量。阈值也可以用来判断一个技能是否值得被请求。工人提交他的要价信息,包括其所拥有的的技能信息,以及对每个技能的要价。通过双方协商,最终决定任务请求者雇佣哪些工人,以及给予提供相应技能的工人多少报酬。该协商策略从任务请求者收益和工人收益的角度出发,满足分配过程中两者异质性的目标,为任务请求者形成专业的,合作高效的,并且对于任务请求者来说是比较经济的工人群组。

下面具体说明本发明。

图1为一个工人结构图,也可以看成是一个简单的社会网络实例,每个工人提供技能信息及相应技能的要价,如图1上工人a1对应的(s1,3)(s2,7)表示工人a1拥有技能s1和s2,分别对应其要价3,7。工人之间存在连接边,表明互相连接的工人之间能够进行高效的合作。

在技能请求阶段,如图2所示。将工人分为非冗余技能提供者和冗余技能提供者,非冗余技能指的是工人可利用的技能都是当前任务所需的技能。冗余技能,即工人可利用的技能已经被其他工人满足,rk为任务k所需要的技能,tk为形成任务k所需技能的工人集合,所以向拥有技能集合q(ai)的非冗余技能工人ai请求技能时,ai可利用技能可以表示为as(ai,rk)=q(ai)∩rk,usk为tk中未被满足的技能。如果ai的可利用技能是tk未被满足的技能的子集,即图2右上所述的就是向非冗余技能提供自由职业者请求技能,如果ai提供技能sj的成本c(ai,sj)≤th(阈值th正好等于增加一个非冗余技能的边界收益),则请求者的期望收益ep会增加,那么请求该技能,图中的箭头就是表明请求者可以请求该技能。最后输出向非冗余技能提供者请求的技能集ns。如图2中间部分所示的向冗余技能提供者请求技能时,冗余技能提供者即冗余技能提供者可提供的技能不是tk中未被满足的技能的子集,可能有其他可利用的技能已经被满足或者有些技能并不是tk所需要的。对于所有可利用的技能as(ai,rk)按成本c(ai,sj)从小到大排序,依次查看排序后的每个技能:如果增加这个技能并且更新群组(更新涉及移除重复技能,移除不再贡献技能的雇员,孤立的雇员以及他们贡献的技能),ep增加,则更新ns,否则如果增加的该技能是冗余技能并且c(ai,sj)≤min{th,p(ax,sq)},p(ax,sq)为工人ax提供技能sq的要价。导致ep减少的唯一理由是更新群组下雇员的离开导致形成完全群组的成功率下降,查看被移除的技能和ai剩余的并且可弥补的技能),对于每一个可弥补的技能,如果c(ai,sp)≤th,就加入额外弥补技能中,如果此时的ep增加,则更新ns。接着查看ai的下个可利用技能并重复上述过程。对于工人来说,如果即ai有剩余的技能,那么该工人可以将剩余技能集合投入到其他群组中,如此可以提高任务的完成率和雇员的收益。

处于请求响应阶段时,当工人处于完全合同,即当前任务的技能已经全部被满足,则拒绝其他请求者的技能请求。当工人处于半合同的状态,如果当前工人的期望收益大于工人接收请求的期望收益,则拒绝,否则询问请求者对于技能集ns中的每个技能是否愿意提高报酬到p′。当工人处于无合同状态,则接受任务请求者的技能请求。另外在重叠联盟的情况下,假设有群组tk需要ai的技能集cs,另有群组tl需要ai的技能集ns。如图3所示,cs表示请求者1请求的技能集合,ns表示请求者2请求的技能集合(加限制:一个工人最多只能参加两个任务)。,当tk处于无合同和半合同的状态下,图3右部分表明,如果则接受请求,如果即图3右部分的阴影处。考虑将冲突技能集cs∩ns划分成两个互不相交的子集ns″和cs″,使得划分后的技能集合能够最大化工人的期望收益。在tk处于完全合同状态下,则拒绝请求。图3中的箭头上的offer表示请求者对工人发送请求信息,箭头上的response表示工人对请求者请求信息的反馈。箭头上的confirm表示请求者对工人反馈回来的消息做最终确认。

在响应确认阶段,对于要提高报酬的,比较提高报酬后的请求者的期望收益ep和移除该工人的期望收益ep′,如果ep>ep′,接受提高报酬的提议,否则拒绝。工人ai接受请求者的技能请求,签订临时合同;如果变成完全群组,则签订正式合同。整个协商过程offer,response,confirm如图3所示。

正是由于任务请求者和工人双方自主协商的过程,能够满足社会个体异质性的目标,而不仅仅是从最大化社会福利的角度解决任务分配问题。这个机制使得任务请求者决定雇佣哪些工人的哪些技能并且应该获得多少技能服务的报酬,总能为任务请求者找到个体最经济的技能提供。

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