一种面向同构对称发布及订阅系统的Top-k查询方法

文档序号:6384363阅读:256来源:国知局
专利名称:一种面向同构对称发布及订阅系统的Top-k查询方法
技术领域
本发明属于数据库管理技术领域,尤其涉及一种面向同构对称发布及订阅系统的Top-k查询方法。
背景技术
在同构对称发布/订阅(HSPub/Sub)应用中,匹配除了包括一对一交换以外,还包括发生在两个以上的订阅之间通过传递关系形成的环匹配。对发布订阅系统来说,可以成功交换的物品数目越多,系统和用户的收益更大。同两两匹配相比,环匹配可以实现让更多的用户参与,增大成功交换的概率。在大型的HSPub/Sub中,候选匹配极有可能是海量的,用户需要从海量候选匹配中选择出一些用户偏好的匹配。发布/订阅系统是一种使分布式系统中的各个参与者,以发布/订阅的方式进行交互式通信的中间件系统。在发布/订阅系统中,信息的生产者和消费者所交互的信息称为事件。生产者将事件发送到发布/订阅系统的中间件系统;消费者则向发布/订阅系统的中间件系统发出一个订阅条件,来表示消费者对系统中感兴趣的事件,如果不再感兴趣,可以取消订阅;而发布/订阅系统的中间件系统则支持将生产者发布的事件及时、可靠地传送给所有对之感兴趣的消费者。信息的生产者称为发布者(Publisher),信息的消费者称为订阅者(Subscriber),发布者和订阅者都称作客户端。匹配算法或过滤算法负责高效地找到与给定的事件相匹配的所有的订阅;而路由算法则负责选择一条适当的路径,将一个事件从发布者传送给订阅者。随着数据采集技术的提高和网络的迅猛发展,HsPub/Sub返回给用户的数据量越来越大甚至是海量的。如何从海量数据中筛选出满足用户查询条件的数据成为数据管理和信息检索的重点研究和探索对象。为避免最终返回海量查询结果,在大数据量的查询应用Top-k查询处理势在必行。如果一个数据对象有多个属性,系统在数据对象存储时依据属性对象排序而且生成不同的属性列,在查询时,系统要把列表聚合起来以获取到数据对象全部属性分值并且排序完成。将分散在多个列表中的分值聚合形成全局分值并且查询出全局分值最优的k个对象的过程,就是Top-k查询过程。Skyline查询问题也是一种传统的多目标优化问题。一个多维数据集的Skyline指的是该数据集上不被其它数据点所支配的点所组成的集合。Skyline查询返回一组在任意维度上都不被其它对象所控制的对象,支持用户在复杂的情况下进行决策,如多标准决策支持系统、用户偏好查询等。2006 年,Chee-Yong Chan 等人提出基于 Skyline Frequency 的 Top-kSkyline 查询,只是查询一个点在不同子空间中成为Skyline点的次数,Top-k返回Skyline最频繁的k个点。为了计算出有点表性的Skyline点,Chee-YongChan等人提出了 Distance-basedRepresentative Skyline概念,很好地把与周围其他的Skyline点的距离考虑进来,也证明了这问题也是NP难问题。
2007年Xuemin Lin等人提出了 Representative Skyline概念,并且证明在维数不低于3的空间中,Representative Skyline查询是NP难问题。同时还提出了两种算法,分别是Greedy和FM-based。这两种算法都是从数据点集合中返回k个数据点,这k个数据点是控制非Skyline点点数量最大的k个点,也被认为是最具有代表性的Skyline点。Representative Skyline在实践中有时候不具有代表性,尤其是数据分布有明显的块聚集性,这时返回的Skyline点就不能很好的代表每个块中全部点的信息。实践证明,数据集中的对象越多,Skyline结果数据量也会相应增多,尤其是在高维数据环境下,这种情况的话对用户的决策支持中意义不大。本发明提出将Top-k引入到Skyline查询中,利用引入的评价准则,只返回最优的k个Skyline点给用户,来简化用户的筛选过程。随着互联网络技术发展,同构对称发布/订阅系统的应用也越来越普及。由于在同构对称发布/订阅系统中,产生的候选环匹配结果集很大,特别是在大型的HSPub/Sub中,订阅的数量更大的话,候选匹配可能是海量的。大的数据量阻碍了用户对它的有效利用,显然如果仅仅是人为的去筛选用户偏好的数据,是相当低效而且不现实的。如何快速、高效的为用户推荐k个最优的候选环匹配是同构对称发布/订阅系统中研究的关键问题之一。在同构对称发布/订阅系统的不同应用中,有时匹配结果可以调用打分函数为其打分,依据分值排序求出前k个最优的。有时无法调用打分函数打分,不能对其排序,无法求出k个最优的。通常为用户推荐前k个最优的候选匹配是通过找出所有候选匹配根据打分函数求出的分值排序,进而找出最优的k个候选匹配。然而当用户对订阅的候选匹配评价值很难通过打分函数量化时,上面这种方法就不能满足了。

发明内容
本发明提供了一种面向同构对称发布及订阅系统的Top-k查询方法,旨在解决在候选匹配结果可以调用打分函数对其打分时,基于堆的Top-k算法在处理海量数量中是经典算法,在每一次处理一个候选环匹配都调用一次打分函数,这样在打分函数复杂度较大时,算法的时间效率不理想的问题。本发明的目的在于提供一种面向同构对称发布及订阅系统的Top-k查询方法,该Top-k查询方法包括以下步骤步骤1:如果用户对订阅的候选匹配评价值难以量化,则转入步骤2,否则转入步骤7通过打分函数来排序;步骤2 :获得当前用户订阅的候选匹配数量NumOfRing,如果候选匹配数量NumOfRing不大于需要求得的Skyline点数量count_temp初始值k,则返回所有候选环匹配,否则转入步骤3 ;步骤3 :将所有候选匹配被支配状态state设置为1,如果k_Skyline值小于订阅维度,并且当前需要的Skyline点数量大于O时,则转入步骤4,否则结束;步骤4:如果所有候选环匹配扫描完毕,则转入步骤6,否则扫描下一个候选环匹配,如果被支配状态state为0,则继续再扫描下一个候选匹配,否则转入步骤5 ;步骤5 :调用GetKIndex函数,计算该候选环匹配最优的k_Skyline个属性值,通过单调打分函数func求出聚合分值,插入到存储索引的数据结构Ability中,再计算出该候选环匹配最差的k_Skyline个属性值,通过单调打分函数func求出聚合分值,插入到存储索引的数据结构Possibility中,再转入步骤4 ;步骤6 :对存储索引的数据结构Possibility和Ability分别进行降序排列,调用GetSkyline函数,按照存储索引的数据结构Possibility中的索引顺序选择候选环匹配数据集中的点进行处理;步骤7 :读取前k个候选环匹配,构成长度为k的堆H,并调整为小顶堆,计算每个候选环匹配与当前订阅在每一维上的交叉数据比例,初始化WorstValue 二维数组,调整WorstValue每一列为小顶堆,保持每一列构成的长度为k的堆。进一步,在步骤3中,当候选匹配状态state为I时,代表已经被其他候选环匹配支配,当候选匹配状态state为O时,代表没有;k_Skyline代表k_支配的k系数,初始值为2。进一步,在步骤6中,对存储索引的数据结构Possibility和Ability分别进行降序排列,调用GetSkyline函数,按照存储索引的数据结构Possibility中的索引顺序选择候选环匹配数据集中的点进行处理时,对每个Si与按照Ability表中的索引顺序候选环匹配数据点Sj进行比较判断,若Si在计算过程中被其他候选环匹配k-支配,立即淘汰;且Si状态更新为未被支配,即state为O若Si与Ability表中所有点比较后仍未被淘汰,则Si成为k-支配Skyline点,且Si状态更新为未被支配,即state为O,继续从Possibility表中取下一个候选环匹配数据点进行判断;如果产生出k-支配Skyline数据点的数量不大于count_temp,则返回产生的k_支配skyline点,同时更新k_Skyline值和count_temp值,且继续调用GetSkyline函数进行查询,否则返回前count_temp个k_支配skyline点。进一步,在步骤7中,读取前k个候选环匹配,构成长度为k的堆H,并调整为小顶堆,计算每个候选环匹配与当前订阅在每一维上的交叉数据比例,初始化WorstValue 二维数组,调整WorstValue每一列为小顶堆,以保持每一列构成的长度为k的堆时,扫描当前订阅的第k之后的候选环匹配,调用GetValueHeap函数,将候选环匹配与当前订阅每一维的数据交叉比例保存在tempValue中;如果tempValue每一维都比WorstValue对应列的堆顶小,则该候选环匹配被淘汰;否则,调用打分函数计算匹配分数,并且与堆H的堆顶对应的候选环匹配比较,如果大于堆顶候选匹配的匹配分数,取代堆顶的候选环匹配,同时更新WorstValue数组,调整WorstValue的每一列和堆H为小顶堆;当前订阅的所有候选环匹配全部扫描完之后,返回堆H中的k个候选环匹配。本发明提供的面向同构对称发布及订阅系统的Top-k查询方法,针对结果是否可以打分进行排序,分别提出了基于高复杂度打分函数的面向匹配结果可以排序的Top-k查询算法和基于k-支配Skyline查询的面向匹配结果不可排序的Top-k查询算法,在订阅数量、打分函数复杂度、不同数据分布、选择度以及k值方面时间效率优势越明显,具有较高的学术价值及应用价值,解决了面向用户最优推荐的问题,对同构对称发布及订阅系统的环匹配海量候选结果进行了有效地处理,快速、高效地为用户推荐满意度最大化的匹配,实现了面向用户的最优推荐,具有较强的推广与应用价值。


图1是本发明实施例提供的面向同构对称发布及订阅系统的Top-k查询方法的实现流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定发明。图1示出了本发明实施例提供的面向同构对称发布及订阅系统的Top-k查询方法的实现流程。该Top-k查询方法包括以下步骤步骤SlOl :如果用户对订阅的候选匹配评价值难以量化,则转入步骤S102,否则转入步骤S107通过打分函数来排序;步骤S102 :获得当前用户订阅的候选匹配数量NumOfRing,如果候选匹配数量NumOfRing不大于需要求得的Skyline点数量count_temp初始值k,则返回所有候选环匹配,否则转入步骤S103 ;步骤S103 :将所有候选匹配被支配状态state设置为1,如果k_Skyline值小于订阅维度,并且当前需要的Skyline点数量大于O时,则转入步骤S104,否则结束;步骤S104 :如果所有候选环匹配扫描完毕,则转入步骤S106,否则扫描下一个候选环匹配,如果被支配状态state为0,则继续再扫描下一个候选匹配,否则转入步骤S105 ;步骤S105 :调用GetKIndex函数,计算该候选环匹配最优的k_Skyline个属性值,通过单调打分函数func求出聚合分值,插入到存储索引的数据结构Ability中,再计算出该候选环匹配最差的k_Skyline个属性值,通过单调打分函数func求出聚合分值,插入到存储索引的数据结构Possibility中,再转入步骤S104 ;步骤S106 :对存储索引的数据结构Possibility和Ability分别进行降序排列,调用GetSkyline函数,按照存储索引的数据结构Possibility中的索引顺序选择候选环匹配数据集中的点进行处理;步骤S107 :读取前k个候选环匹配,构成长度为k的堆H,并调整为小顶堆,计算每个候选环匹配与当前订阅在每一维上的交叉数据比例,初始化WorstValue 二维数组,调整WorstValue每一列为小顶堆,保持每一列构成的长度为k的堆。在本发明实施例中,在步骤S103中,当候选匹配状态state为I时,代表已经被其他候选环匹配支配,当候选匹配状态state为O时,代表没有;k_Skyline代表k_支配的k系数,初始值为2。在本发明实施例中,在步骤S106中,对存储索引的数据结构Possibility和Ability分别进行降序排列,调用GetSkyline函数,按照存储索引的数据结构Possibility中的索引顺序选择候选环匹配数据集中的点进行处理时,对每个Si与按照Ability表中的索引顺序候选环匹配数据点Sj进行比较判断,若Si在计算过程中被其他候选环匹配k-支配,立即淘汰;若Si与Ability表中所有点比较后仍未被淘汰,则Si成为k_支配Skyline点,继续从Possibility表中取下一个候选环匹配数据点进行判断;如果产生出k-支配Skyline数据点的数量不大于count_temp,则返回产生的k-支配skyline点,同时更新k_Skyline值和count_temp值,否则返回前count_temp个k-支配 skyline 点。在本发明实施例中,在步骤S107中,读取前k个候选环匹配,构成长度为k的堆H,并调整为小顶堆,计算每个候选环匹配与当前订阅在每一维上的交叉数据比例,初始化WorstValue 二维数组,调整WorstValue每一列为小顶堆,以保持每一列构成的长度为k的堆时,扫描当前订阅的第k之后的候选环匹配,调用GetValueHeap函数,将候选环匹配与当前订阅每一维的数据交叉比例保存在tempValue中;如果tempValue每一维都比WorstValue对应列的堆顶小,则该候选环匹配被淘汰;否则,调用打分函数计算匹配分数,并且与堆H的堆顶对应的候选环匹配比较,如果大于堆顶候选匹配的匹配分数,取代堆顶的候选环匹配,同时更新WorstValue数组,调整WorstValue的每一列和堆H为小顶堆;当前订阅的所有候选环匹配全部扫描完之后,返回堆H中的k个候选环匹配。下面结合附图及具体实施例对本发明的应用原理作进一步描述。在候选匹配结果不能调用打分函数来打分的情况下,采用如下方案算法设计的变量如下候选匹配个数-NumOfRing ;存储索引的数据结构-Possibility和
Ability ;需要求得的Skyline点数量-count_temp (该值初始化为k);候选匹配状
态一state (I代表已经被其他候选环匹配支配,O代表没有);k_Skyline代表k_支配的k系数(初始化为2)。步骤SlOl :如果用户对订阅的候选匹配评价值难以量化,转步骤S102 ;否则,转步骤S107通过打分函数来排序;步骤S102 :获得当前用户订阅的候选匹配数量NumOfRing,如果数量不大于k值,返回所有候选环匹配,算法结束。否则,转步骤S103;步骤S103 :将所有候选匹配被支配状态state设置为1,即被支配状态,如果k_Skyline值小于订阅维度,并且当前需要的Skyline点数量大于O,转步骤S104 ;否则,算法终止;步骤S104 :如果所有候选环匹配扫描完毕,转步骤S106,否则扫描下一个候选环匹配,如果被支配状态state为0,继续再扫描下一个候选匹配,否则转步骤S105 ;步骤S105 :调用GetKIndex,计算该候选环匹配最优的k_Skyline个属性值,通过单调打分函数func求出聚合分值,插入到Ability结构中,再计算出该候选环匹配最差的k_Skyline个属性值,通过单调打分函数func求出聚合分值,插入到Possibility结构中,转步骤S104 ;步骤S106 :对Possibility和Ability分别进行降序排列,调用GetSkyline函数,按照Possibility中的索引顺序选择候选环匹配数据集中的点进行处理。对每个Si,将其与按照Ability表中的索引顺序候选环匹配数据点Sj进行比较判断,若Si在计算过程中被其他候选环匹配k-支配,立即淘汰;若Si与Ability表中所有点比较后仍未被淘汰,则Si成为k-支配Skyline点,且Si状态更新为未被支配,即state为O,继续从Possibility表中取下一个候选环匹配数据点进行判断。产生出k-支配Skyline数据点,如果数量不大于count_temp,返回产生的k_支配skyline点,同时更新k_Skyline和count_temp值,且继续调用GetSkyline函数进行查询;否则返回前count_temp个k_支配skyline点,算法结束。步骤S107 :本步为基于高复杂度打分函数的可排序Top-k查询。读取前k个候选环匹配,构成长度为k的堆H,并将其调整为小顶堆,然后计算每个候选环匹配与当前订阅在每一维上的交叉数据比例,初始化WorstValue 二维数组,调整WorstValue每一列为小顶堆,以保持每一列构成的长度为k的堆,堆顶都是候选环匹配在该维上的最差值。扫描当前订阅的第k之后的候选环匹配,调用GetValueHeap函数,将候选环匹配与当前订阅每一维的数据交叉比例保存在tempValue中。如果tempValue每一维都比WorstValue对应列的堆顶小,则该候选环匹配被淘汰;否则,调用打分函数计算匹配分数,并且与堆H的堆顶对 应的候选环匹配比较,如果大于堆顶候选匹配的匹配分数,取代堆顶的候选环匹配,同时更新WorstValue数组,调整WorstValue的每一列和堆H为小顶堆。当前订阅的所有候选环匹配全部扫描完之后,返回堆H中的k个候选环匹配,算法结束。米用IBMxSeries 3500服务器平台,配置如下CPU :1ntel Xeon EM64T Quad core E5405 2. OGHz ;内存16GBytes;硬盘4TGBytes, 7200rpm ;操作系统CentOS5. 2 ;开发工具GNUToolkits (GCC、G++、⑶B)、Make、Vim 等。开发语言标准C++语言。本发明针对的是海量数据下不可排序进行k-支配Skyline查询的情况,在此仅举一个小的实例,方便了解方案执行流程。本实例中涉及的订阅维度为4,Top-k值为4,k_Skyline系数为3,如附图文档中的表I所示。步骤SlOl :获得当前用户订阅的候选环匹配数量NumOfRing,为η,很明显η > 4,即候选环匹配数量超过用户所需数量,即候选环匹配数超过当前需要的Skyline点的数量。步骤S102 :将η个候选环匹配的被支配状态state设置为1,如附图文档中表4所示,k_Skyline系数3小于订阅维度4。步骤S103 :扫描第一个候选环匹配,state为1,调用GetKIndex,计算该候选环匹配最优的3个属性值,并通过单调打分函数func求出聚合分值为36,插入到Ability结构,再计算出该候选环匹配最差的3个属性值,通过单调打分函数func求出聚合分值为6,插入到 Possibility 中。步骤S104 :按照步骤S103,继续扫描下一个候选环匹配,直到所有候选环匹配扫描完毕。步骤S105 :对Possibility表和Ability表分别进行降序排序,如附图文档中的表2、表3所示。调用GetSkyline函数,按照Possibility表中的索引顺序选择相应的候选环匹配数据集中的点进行处理。对Possibility索引的每个Si,将其与按照Ability索引的每个数据点Sj进行比较判断。若Si在计算过程中被某个Sj所k-支配,则立即淘汰Si ;若Si在与Ability索引的每个数据点比较后仍未被淘汰,则Si成为k_支配Skyline点,其对应的state状态设置为O ;继续从Possibility表中取下一个候选环匹配数据点进行判断,如此直到Possibility中的所有点都被处理过。处理完毕后,可以得出只有一个k-支配Skyline点,候选环匹配S4,支配其他所有候选环匹配。步骤S106 :求出的k_支配Skyline点数目小于4,更新count_temp的值(count_temp = Top-k-conun_temp)和1^_31^1;[116 值。此处少于 4,则需要更新 k_Skyline 系数(力口I),继续求出下一轮的k-支配Skyline点,直到求出的Skyline点数大于count_temp,并且输出前count_temp个查询结果。本发明针对大的数据量所表现出的性能也是比较好的,为了全面地考察算法的性 能,在服务器上进行了大量的有针对性的实验,分别测试了本发明算法和传统算法的响应时间和系统CPU响应时间。算法的查询响应时间决定了该算法的效率,而系统CPU时间则反映了整个系统的性能。本发明所涉及的实验默认参数以及参数的取值范围如下表I所示。表I实验数据参数表
实验参数_取值范围^獸1.人值。
一订侧!5^0-40,000- —
数据分布wUniform.Uniform.
r _ _ _ _ -ηI—I V ' I'·
维数,8,1246,32^8' .
菸的长度。2 3, 4, 5,I' 3,」
选择度10~&- 10—卜.10—从订阅数量、维度、选择度等方面比较基于k-支配Skyline查询的面向匹配结果的不可排序的Top-k查询方法和传统Skyline查询方法的时间性能,结果证明基于k_支配Skyline查询的面向匹配结果不可以排序的Top-k查询算法的时间性能更好,而且查全率和查准率都在90%以上。从打分函数复杂度、维度、选择度以及k值等方面对基于高复杂度打分函数的面向匹配结果可以排序的Top-k查询算法和基于堆的面向用户的Top-k算法进行比较,复杂度越高,基于高复杂度打分函数的面向匹配结果可以排序的Top-k查询算法的时间效率优势越明显。本发明提出的面向匹配结果的topk查询,具有很高的学术价值,也有非常好的应用价值,解决了面向用户的最优推荐问题。不仅如此,本发明针对结果是否可以打分进行排序,分别提出了基于高复杂度打分函数的面向匹配结果可以排序的Top-k查询算法和基于k-支配Skyline查询的面向匹配结果不可排序的Top-k查询算法。本发明实施例提供的面向同构对称发布及订阅系统的Top-k查询方法,针对结果是否可以打分进行排序,分别提出了基于高复杂度打分函数的面向匹配结果可以排序的Top-k查询算法和基于k-支配Skyline查询的面向匹配结果不可排序的Top-k查询算法,在订阅数量、打分函数复杂度、不同数据分布、选择度以及k值方面时间效率优势越明显,具有较高的学术价值及应用价值,解决了面向用户最优推荐的问题,对同构对称发布及订阅系统的环匹配海量候选结果进行了有效地处理,快速、高效地为用户推荐满意度最大化的匹配,实现了面向用户的最优推荐,具有较强的推广与应用价值。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种面向同构对称发布及订阅系统的Top-k查询方法,其特征在于,该Top-k查询方法包括以下步骤步骤1:如果用户对订阅的候选匹配评价值难以量化,则转入步骤2,否则转入步骤7通过打分函数来排序;步骤2 :获得当前用户订阅的候选匹配数量NumOfRing,如果候选匹配数量NumOfRing不大于需要求得的Skyline点数量count_temp初始值k,则返回所有候选环匹配,否则转入步骤3 ;步骤3 :将所有候选匹配被支配状态state设置为1,如果k_Skyline值小于订阅维度,并且当前需要的Skyline点数量大于O时,则转入步骤4,否则结束;步骤4 :如果所有候选环匹配扫描完毕,则转入步骤6,否则扫描下一个候选环匹配,如果被支配状态state为0,则继续再扫描下一个候选匹配,否则转入步骤5 ;步骤5 :调用GetKIndex函数,计算该候选环匹配最优的k_Skyline个属性值,通过单调打分函数func求出聚合分值,插入到存储索引的数据结构Ability中,再计算出该候选环匹配最差的k_Skyline个属性值,通过单调打分函数func求出聚合分值,插入到存储索引的数据结构Possibility中,再转入步骤4 ;步骤6 :对存储索引的数据结构Possibility和Ability分别进行降序排列,调用GetSkyline函数,按照存储索引的数据结构Possibility中的索引顺序选择候选环匹配数据集中的点进行处理;步骤7 :读取前k个候选环匹配,构成长度为k的堆H,并调整为小顶堆,计算每个候选环匹配与当前订阅在每一维上的交叉数据比例,初始化WorstValue 二维数组,调整WorstValue每一列为小顶堆,保持每一列构成的长度为k的堆。
2.如权利要求1所述的Top-k查询方法,其特征在于,在步骤3中,当候选匹配状态state为I时,代表已经被其他候选环匹配支配,当候选匹配状态state为O时,代表没有;k_Skyline代表k_支配的k系数,初始值为2。
3.如权利要求1所述的Top-k查询方法,其特征在于,在步骤6中,对存储索引的数据结构Possibility和Ability分别进行降序排列,调用GetSkyline函数,按照存储索引的数据结构Possibility中的索引顺序选择候选环匹配数据集中的点进行处理时,对每个Si与按照Ability表中的索引顺序候选环匹配数据点Sj进行比较判断,若Si在计算过程中被其他候选环匹配k-支配,立即淘汰;且Si状态更新为未被支配,即state为O若Si与Ability表中所有点比较后仍未被淘汰,则Si成为k-支配Skyline点,且Si状态更新为未被支配,即state为O,继续从Possibility表中取下一个候选环匹配数据点进行判断;如果产生出k-支配Skyline数据点的数量不大于count_temp,则返回产生的k_支配skyline点,同时更新k_Skyline值和count_temp值,且继续调用GetSkyline函数进行查询,否则返回前count_temp个k_支配skyline点。
4.如权利要求1所述的Top-k查询方法,其特征在于,在步骤7中,读取前k个候选环匹配,构成长度为k的堆H,并调整为小顶堆,计算每个候选环匹配与当前订阅在每一维上的交叉数据比例,初始化WorstValue 二维数组,调整WorstValue每一列为小顶堆,以保持每一列构成的长度为k的堆时,扫描当前订阅的第k之后的候选环匹配,调用GetValueHeap函数,将候选环匹配与当前订阅每一维的数据交叉比例保存在tempValue中;如果 tempValue每一维都比WorstValue对应列的堆顶小,则该候选环匹配被淘汰;否则,调用打分函数计算匹配分数,并且与堆H的堆顶对应的候选环匹配比较,如果大于堆顶候选匹配的匹配分数,取代堆顶的候选环匹配,同时更新WostValue数组,调整WorstValue 的每一列和堆H为小顶堆;当前订阅的所有候选环匹配全部扫描完之后,返回堆H中的k个候选环匹配。
全文摘要
本发明属于数据库管理技术领域,提供了一种面向同构对称发布及订阅系统的Top-k查询方法,针对结果是否可以打分进行排序,分别提出了基于高复杂度打分函数的面向匹配结果可以排序的Top-k查询算法和基于k-支配Skyline查询的面向匹配结果不可排序的Top-k查询算法,在订阅数量、打分函数复杂度、不同数据分布、选择度以及k值方面时间效率优势越明显,具有较高的学术价值及应用价值,解决了面向用户最优推荐的问题,对同构对称发布及订阅系统的环匹配海量候选结果进行了有效地处理,快速、高效地为用户推荐满意度最大化的匹配,实现了面向用户的最优推荐,具有较强的推广与应用价值。
文档编号G06F17/30GK103020234SQ20121054490
公开日2013年4月3日 申请日期2012年12月17日 优先权日2012年12月17日
发明者王波涛, 王国仁, 马素华, 刘苹苹 申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1