当前位置: 首页 > 专利查询>中南大学专利>正文

一种基于数据分布模型的分布式排序系统技术方案

技术编号:21361466 阅读:21 留言:0更新日期:2019-06-15 09:21
本发明专利技术公开了一种基于数据分布模型的分布式排序系统。如附图所示,它包含中央控制单元(master)、模型单元(model)和计算单元集群(slaves)三个部分。首先由中央控制单元接收待排序元素集,并调用模型单元;然后将元素集进行分割并分配给计算集群中的各个计算单元,计算单元完成元素的预测和放置后将所有数据返回给中央控制单元;接着,中央控制单元根据计算单元的返回数据合并,生成最终有序序列;最后,中央控制单元将有序序列返回给用户。本发明专利技术的核心思想是,根据基础数据分布模型将元素直接放置到数组中并组成分布式排序系统,相比于根据传统排序算法部署的分布式排序系统,运行时间更短。

A Distributed Sorting System Based on Data Distribution Model

The invention discloses a distributed sorting system based on data distribution model. As shown in the drawings, it consists of three parts: central control unit (master), model unit (model) and computing unit cluster (slaves). Firstly, the central control unit receives the set of elements to be sorted and calls the model unit; secondly, it divides the set of elements and allocates them to each computing unit in the computing cluster. After the prediction and placement of elements, the computing unit returns all data to the central control unit; secondly, the central control unit merges the returned data of the computing unit to generate the final ordered sequence. After that, the central control unit returns the ordered sequence to the user. The core idea of the present invention is that elements are directly placed into arrays according to the basic data distribution model and a distributed sorting system is formed. Compared with the distributed sorting system deployed according to the traditional sorting algorithm, the running time is shorter.

【技术实现步骤摘要】
一种基于数据分布模型的分布式排序系统
本专利技术涉及排序算法/系统,具体涉及一种基于数据分布模型的排序系统。
技术介绍
排序算法作为经典算法在各类软件开发中都有非常高的使用频率,甚至是在今年来较为火热的聚类分析、机器学习、推荐算法等人工智能领域的基础算法之一。从排序问题提出至今,研究人员和工程人员对排序算法进行了全方位的改进,但是其理论时间复杂度一直停滞在O(NlogN)。随着大数据和机器学习的兴起,计算机需要处理的数据量也越来越大,已有的排序算法难以适应。目前来说对排序算法的优化仅停留在实际运行时间的减少,并没有对理论时间和最坏时间进行进一步优化。目前来说,快速排序和归并排序作为应用较为广泛的排序算法之一,在众多学者和工程师的研究和优化后可以使得大部分的排序过程的时间消耗略微低于理论时间复杂度O(NlogN),效果并不是很理想,没有达到质的改变。分布模型是由分布函数来表示的一种模型,分布函数既可以是基本函数也可以是不能用解析式表达的抽象函数。因此可以通过数学函数、机器学习模型等多种方式来对待排元素的数据分布模型进行描述。
技术实现思路
本专利技术所解决的技术问题是,提供一种新的分布式排序系统,将待排元素集分割成若干子集,利用数据分布模型对各个子集中的元素在整个有序数组中的位置进行预测,然后根据元素预测位置将元素放入有序数组从而完成排序操作。这种方法极大的提高了运行的时间效率,且稳定性很强。本专利技术的技术方案为:步骤1):由模型单元为中央处理单元提供数据的分布模型。模型单元既可以是单个计算机也可以是某个高性能集群。模型的提供方式既可以是直接的数学函数,也可以是用机器学习模型来表示的模型。步骤2):中央处理单元将待排元素集划分成若干子集,通过一定的调度策略将步骤1)中的模型和子集分批发送给各个计算单元。这个子集的划分是根据待排元素集中的最大值(max)、最小值(min)和元素规模来设定,假定整个待排元素集将被划分为L个子集,那么元素x对应的子集编号为:步骤3):各个计算单元通过数据分布模型来对待排元素子集进行处理,主要包括以下步骤:步骤3.1):各个计算单元使用数据分布模型来预测待排元素集中每一个元素在有序数组中的位置。将待排元素集依次输入数据分布模型,模型的输出乘以待排元素集规模就是该元素的预测位置。步骤3.2):根据获得的预测位置,将各个元素放置在有序数组中。最终的有序数组就是待排元素的排序结果。进一步的,在步骤3.2)中,由于可能会有多个元素的值相同从而导致它们有相同的预测位置。这会使得在将元素放置到有序数组的过程中可能会发生冲突。我们提供了一种存储结构来解决冲突的问题。首先,针对每个元素构建一个索引,用来指向与该元素有相同预测位置的前一个元素。然后,针对每一个可能的预测位置构建一个索引,用来指向该预测位置对应的最后一个元素。步骤4):中央处理单元在步骤2)的集合划分时已获得各个集合的元素个数。中央处理单元在获取到计算单元返回的每一组结果时都将完成一个合并操作,包含以下步骤:步骤4.1):根据返回结果确定合并初始位置。numk表示每个集合元素的个数,在对第k个集合进行合并时,其初始位置为:步骤4.2):依次遍历步骤3.2)中每一个预测位置,将预测位置索引到的元素和通过该元素迭代索引到的其他元素依次放入有序数组。本专利技术的技术效果在于,采用本专利技术提出的排序系统,其运行时间消耗更短。本专利技术提出的排序系统使用了非基于比较的排序方法,非基于比较的排序算法的理论时间复杂度最低为O(N),而基于比较的排序算法理论时间复杂度最低是O(NlogN)。本文提出的排序系统相比于其他排序系统在基础方法上有用更优的时间效率。附图说明图1是本专利技术理论架构图;图2是本专利技术系统结构图;图3是用于解决放置冲突的存储结构示意图;图4是利用存储结构将元素放入有序数组的示意图。具体实施方式为使本专利技术的目的、设计思路和优点更加清楚,以下结合具体实例,并参照附图,对本专利技术作进一步详细说明。本专利技术提供了一种基于数据分布的排序系统,包括以下步骤:1)获取数据分布模型;2)将待排元素集划分成若干子集并发送给计算单元集群;3)根据数据分布模型来预测待排元素集中每一个元素在有序数组中的位置,并根据获得的预测位置,将各个元素放置在有序数组中;4)中央处理单元对各个结果进行合并。下面对本专利技术的方法涉及的关键步骤进行逐一详细说明,具体步骤如下所示:步骤一,获取数据分布模型。模型的提供方式既可以是直接的数学函数,也可以是用机器学习模型来表示的模型。整个模型的功能是根据输入元素返回对应的分布函数值。步骤二,将待排元素集划分成若干子集并发送给计算单元集群。主要包含以下工作:根据待排元素集中的最大值(max)、最小值(min)和元素规模来设定,假定整个待排元素集将被划分为L个子集,那么元素x对应的子集编号为:在对待排元素集进行划分的同时需要统计各个子集元素的规模。步骤三,根据数据分布模型来预测待排元素集中每一个元素在有序数组中的位置,并根据获得的预测位置,将各个元素放置在有序数组中。主要包括以下工作:将待排元素依次输入数据分布模型,将获得的模型输出值与待排元素集规模的乘积作为元素的预测位置。也就是模型输出值与最终有序数组长度的乘积是元素的预测位置。根据待排元素的预测位置构建索引结构。主要包括以下工作:假设待排元素集中各个元素的值分别为3,4,8,7,4,8,4。索引结构示意图如图3所示,待排元素集的序号表示了该元素在元素集中出现的位置;head数组是预测位置的索引,其序号表示预测位置的值,例如head[3]表示预测位置为3的索引;next数组是每个元素的索引,其序号表示元素序号,例如,next[4]是序号为4的元素的索引。假定待排元素集中数组序号为i的元素的预测位置是p,我们分两种情况对索引结构进行维护:1)如果head数组中序号p的单元没有值。这意味着在排元素集的第i个元素之前没有元素的预测位置是p,因此我们只需要维护head数组,将head数组中序号p的单元直接指向数组序号为i的元素,于是head[p]被赋值为i。2)如果head数组中序号p的单元已经有值了。这意味着在待排元素集的第i个元素之前有其他元素的预测位置也是p,我们需要先维护next数组才能维护head数组。先将next数组序号为i的单元指向前一个预测位置也是p的元素,由于head[p]已经记录了前一个预测位置是p的元素的数组序号,因此将next[i]赋值为head[p]。再将head数组中序号p的单元直接指向数组序号为i的元素,也就是将head[p]赋值为i。步骤四,中央处理单元对各个结果进行合并。在获取到每一个子集的计算结果后,进行放置。主要包含以下步骤:1)根据步骤二中统计的各个子集的规模来计算初始放置位置,第i个子集的初始放置位置的计算式为:其中,numk表示每个集合元素的个数。2)根据步骤三中的索引结构依次放置元素。如图4所示,依次访问每一个预测位置,也就是head数组中每一个单元,先将head数组中某个单元指向的元素放入结果数组,紧接着通过next数组将与该元素串联在一起的其他元素依次放入结果数组。在图4中,首先访问head数组中序号为0的单元,由于head[0]的值是0,因此将待排元素本文档来自技高网...

【技术保护点】
1.一种基于数据分布模型的分布式排序系统,包含中央控制单元(master)、模型单元(model)和计算集群(slaves),其特征在于,包括以下步骤:步骤1):中央控制单元获取到待排元素集后调度模型单元获取待排元素集对应的元素分布模型;步骤2):中央控制单元将待排元素集进行分割成若干子集,所有子集互不重叠且包含原待排元素集中所有元素;步骤3):中央控制单元通过一定调度将步骤1)中的模型和步骤2)中的集合传送给计算单元集群;步骤4):计算单元集群中的计算单元根据接收到的模型完成接收到的集合中所有元素的位置预测、放置,并处理在本计算单元内发生的冲突,最后将结果返回中央控制单元;步骤5):中央控制单元接收所有计算单元的返回结果,同时进行数据合并,最终整理出有序序列。

【技术特征摘要】
1.一种基于数据分布模型的分布式排序系统,包含中央控制单元(master)、模型单元(model)和计算集群(slaves),其特征在于,包括以下步骤:步骤1):中央控制单元获取到待排元素集后调度模型单元获取待排元素集对应的元素分布模型;步骤2):中央控制单元将待排元素集进行分割成若干子集,所有子集互不重叠且包含原待排元素集中所有元素;步骤3):中央控制单元通过一定调度将步骤1)中的模型和步骤2)中的集合传送给计算单元集群;步骤4):计算单元集群中的计算单元根据接收到的模型完成接收到的集合中所有元素的位置预测、放置,并处理在本计算单元内发生的冲突,最后将结果返回中央控制单元;步骤5):中央控制单元接收所有计算单元的返回结果,同时进行数据合并,最终整理出有序序列。2.根据权利要求1所述的方法,其特征在于,在步骤4)中,每个计算单元需要通过数据分布模型来对子集进行初步处理,包括以下步骤:步骤2.1):使用数据分布模型来预测待排元素子集中每一个元素在整...

【专利技术属性】
技术研发人员:毛雷施荣华赵颖
申请(专利权)人:中南大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1