实体双边匹配方法及系统的制作方法

文档序号:9471158阅读:686来源:国知局
实体双边匹配方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据处理技术领域,特别涉及一种实体双边匹配方法及系统。
【背景技术】
[0002]Shapley和Roth教授因为在匹配设计方面理论和实践并重的贡献而获得了 2012年诺贝尔经济学奖。其关键核心领域就是双边匹配算法。但是,无论是Shapley教授的G-S算法,还是目前美国广泛应用的NIMP算法,甚至是Roth教授的Applicant-Proposing算法,都存在一个致命缺陷一一率先发出申请的一方占优,即单边占优问题且只能生成一种稳定匹配结果,导致在匹配的过程中,最差意向的匹配结果过多,严重影响了整体匹配的满意度。

【发明内容】

[0003]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种实体双边匹配方法及系统。
[0004]依据本发明的一个方面,提供了一种实体双边匹配方法,所述方法包括:
[0005]A:获取待匹配实体以及各实体的属性,所述属性包括:优先级和偏好序列;
[0006]B:根据所述属性对所述待匹配实体进行匹配。
[0007]可选地,所述属性还包括:已匹配列表、最差实体和容量,所述容量为匹配实体的最大数量,所述最差实体为已匹配列表中最不偏好的实体。
[0008]可选地,步骤B进一步包括:
[0009]B1:将所述待匹配实体加入实体集合L,并将队列T清空;
[0010]B2:判断所述实体集合L和队列T是否均为空,在所述实体集合L和队列T均为空时,将各实体的已匹配列表作为匹配结果,并结束流程;在所述实体集合L和队列T不均为空时,执彳丁步骤B3 ;
[0011]B3:判断所述队列T是否为空,在所述队列T为空时,执行步骤B6 ;在所述队列T不为空时,移出所述队列T队头的实体E1,由所述实体El向其偏好序列中的各实体发出匹配申请,在所述实体El和其偏好序列中的实体X满足第一预设条件时,执行步骤B4 ;
[0012]B4:将所述实体El和实体X中已匹配列表达到容量的实体添加至列表FL中,遍历所述列表FL中各实体,将遍历到的实体EK的已匹配列表中的最差实体Ek.WME删除,将最差实体Ek.WME的已匹配列表中的实体EK删除,在所述最差实体Ek.WME不属于实体集合L时,将所述最差实体Ek.WME添加至所述队列T中;
[0013]B5:将所述实体El添加至实体X的已匹配列表中,将所述实体X添加至实体El的已匹配列表中,返回步骤B3。
[0014]B6:从实体集合L中移出优先级最高的实体E2,由所述实体E2向其偏好序列中的各实体发出匹配申请,在所述实体E2和其偏好序列中的实体Y满足第二预设条件时,执行步骤B7 ;
[0015]B7:将所述实体E2和实体Y中已匹配列表达到容量的实体添加至列表FL中,遍历所述列表FL中各实体,将遍历到的实体EK的已匹配列表中的最差实体Ek.WME删除,将最差实体Ek.WME的已匹配列表中的实体EK删除,在所述最差实体Ek.WME不属于实体集合L时,将所述最差实体Ek.WME添加至所述队列T中;
[0016]B8:将所述实体E2添加至实体Y的已匹配列表中,将所述实体Y添加至实体E2的已匹配列表中,返回步骤B2。
[0017]可选地,所述第一预设条件包括:所述实体El属于实体X的偏好序列;在实体El的偏好序列中,实体X比实体El的最差实体排名靠前;以及,在实体X的偏好序列中,实体El比实体X的最差实体排名靠前;
[0018]所述第二预设条件包括:所述实体E2属于实体Y的偏好序列;在实体E2的偏好序列中,实体Y比实体E2的最差实体排名靠前;以及,在实体Y的偏好序列中,实体E2比实体Y的最差实体排名靠前。
[0019]可选地,所述将所述最差实体Ek.WME添加至所述队列T中,进一步包括:
[0020]将所述最差实体Ek.WME加入列表tmp中,将所述列表tmp中的实体按照优先级从尚到低进彳丁排序;
[0021]在所述队列T为空时,将所述列表中的实体按照优先级从高到低的顺序依次添加至所述队列T中;
[0022]在所述队列T不为空时,将所述列表中的实体按照优先级从高到低的顺序放入位于所述队列T中队头的实体之前。
[0023]依据本发明的另一个方面,提供了一种实体双边匹配系统,所述系统包括:
[0024]数据获取单元,用于获取待匹配实体以及各实体的属性,所述属性包括:优先级和偏好序列;
[0025]实体匹配单元,用于根据所述属性对所述待匹配实体进行匹配。
[0026]可选地,所述属性还包括:已匹配列表、最差实体和容量,所述容量为匹配实体的最大数量,所述最差实体为已匹配列表中最不偏好的实体。
[0027]可选地,所述实体匹配单元进一步包括:
[0028]实体加入模块,用于将所述待匹配实体加入实体集合L,并将队列T清空;
[0029]结果判断模块,用于判断所述实体集合L和队列T是否均为空,在所述实体集合L和队列T均为空时,将各实体的已匹配列表作为匹配结果;在所述实体集合L和队列T不均为空时,调用第一匹配模块;
[0030]第一匹配模块,用于判断所述队列T是否为空,在所述队列T为空时,调用第二匹配模块;在所述队列T不为空时,移出所述队列T队头的实体E1,由所述实体El向其偏好序列中的各实体发出匹配申请,在所述实体El和其偏好序列中的实体X满足第一预设条件时,调用第一删除模块;
[0031]第一删除模块,用于将所述实体El和实体X中已匹配列表达到容量的实体添加至列表FL中,遍历所述列表FL中各实体,将遍历到的实体EK的已匹配列表中的最差实体Ek.WME删除,将最差实体Ek.WME的已匹配列表中的实体EK删除,在所述最差实体Ek.WME不属于实体集合L时,将所述最差实体Ek.WME添加至所述队列T中;
[0032]第一添加模块,用于将所述实体El添加至实体X的已匹配列表中,将所述实体X添加至实体El的已匹配列表中,调用第一匹配模块。
[0033]第二匹配模块,用于从实体集合L中移出优先级最高的实体E2,由所述实体E2向其偏好序列中的各实体发出匹配申请,在所述实体E2和其偏好序列中的实体Y满足第二预设条件时,调用第二删除模块;
[0034]第二删除模块,用于将所述实体E2和实体Y中已匹配列表达到容量的实体添加至列表FL中,遍历所述列表FL中各实体,将遍历到的实体EK的已匹配列表中的最差实体Ek.WME删除,将最差实体Ek.WME的已匹配列表中的实体EK删除,在所述最差实体Ek.WME不属于实体集合L时,将所述最差实体Ek.WME添加至所述队列T中;
[0035]第二添加模块,用于将所述实体E2添加至实体Y的已匹配列表中,将所述实体Y添加至实体E2的已匹配列表中,调用结果判断模块。
[0036]可选地,所述第一预设条件包括:所述实体El属于实体X的偏好序列;在实体El的偏好序列中,实体X比实体El的最差实体排名靠前;以及,在实体X的偏好序列中,实体El比实体X的最差实体排名靠前;
[0037]所述第二预设条件包括:所述实体E2属于实体Y的偏好序列;在实体E2的偏好序列中,实体Y比实体E2的最差实体排名靠前;以及,在实体Y的偏好序列中,实体E2比实体Y的最差实体排名靠前。
[0038]可选地,所述第一删除模块,进一步用于
[0039]将所述最差实体Ek.WME加入列表tmp中,将所述列表tmp中的实体按照优先级从高到低进行排序;在所述队列T为空时,将所述列表中的实体按照优先级从高到低的顺序依次添加至所述队列T中;在所述队列T不为空时,将所述列表中的实体按照优先级从高到低的顺序放入位于所述队列T中队头的实体之前;
[0040]所述第二删除模块,进一步用于将所述最差实体Ek.WME加入列表tmp中,将所述列表tmp中的实体按照优先级从高到低进行排序;
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1