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

一种快速求解高维海量数据的凸包的方法技术

技术编号:16529013 阅读:33 留言:0更新日期:2017-11-09 20:46
本发明专利技术公开了一种快速求解高维海量数据的凸包的方法,具体为:当高维数据输入后,先将数据各维度进行格式归一化操作,转化为标准的数据点,再执行初始凸包求解操作,然后求解出该初始凸包的内接球体,再利用该内接球体对内部点进行点定位操作,凡是位于内接球体内部的数据点就直接删除,余下的数据点再根据点面的位置关系递归地处理,直至求解出整个数据集的凸包。本发明专利技术利用内接球体排除冗余内部数据,显著提高了凸包求解算法的效率。本发明专利技术通过简单的比较考察点到重心的距离与内接球的半径的大小,便可排除大量的内部点,最好的情况下可排除99%以上的内部点。

【技术实现步骤摘要】
一种快速求解高维海量数据的凸包的方法
本专利技术涉及一种凸包的求解领域,具体涉及一种快速求解高维海量数据的凸包的方法。
技术介绍
凸包是计算几何的一个基本概念,它已经广泛应用于天文数据系统、地理信息系统、机器视觉、统计规划等研究中。当前求解高维凸包的经典技术包括Quickhull算法和Chan算法等。这些技术在求解凸包时,会花费不必要的步骤去处理可直接忽略的内部数据点。具体来说这些内部点处于初始凸包的内接球内,可只根据它们到球心的距离是否小于球径,一次定位便可判断它们是否位于球内,从而可排除它们作为候选凸包点的可能性。但是前述技术在处理这些数据时,并没有利用这些数据的特殊性,从而需要冗余的多次定位操作才可排除这些干扰数据。
技术实现思路
鉴于此,本专利技术提供一种快速求解高维海量数据的凸包的方法。本专利技术的目的是通过以下技术方案实现的,一种快速求解高维海量数据的凸包的方法,包括以下步骤:S1.把N维数据集中的每个数据视为一个点,求解数据集中的若干极值点;S2.求解这些极值点构成的初始凸包;S3以点集重心为球心,求解该初始凸包的内接球体;S4利用该内接球体排除冗余的内部点;S5对剩余的点,则利用其与初始凸包各个面的位置关系,判断该点是否在初始凸包内部,如果在内部则删除它;否则,把它加入离它最远的异侧面对应的外部点集;S6在外部点集中求出离各个面最远的点,这些点也是凸包的顶点;新的凸包顶点与其所对应的所有水平边构建多面体,删除位于多面体内部的点及异侧面,把其余点加入该多面体的其它面中离它最远的异侧面对应的外部点集;S7重复步骤S6,递归地求解出整个点集合的凸包。进一步,所述步骤S2具体为:按N个极值点确定一个N-1维的超平面,求解由步骤S1中所述的极值点确定的满足以下条件的所有超平面:所有极值点均位于该超平面的同一侧;如果多个面位于同一超平面,则合并这些面,余下的面构成点集的初始凸包。由于采用了上述技术方案,本专利技术具有如下的优点:本专利技术利用内接球体排除冗余内部数据,显著地提高了凸包求解算法的效率。本专利技术通过简单的比较考察点到重心的距离与内接球的半径的大小,便可排除大量的内部点,最好的情况下可排除99%以上的内部点。而现有技术排除内部点则需要经过复杂的定位及比较操作才可完成。附图说明为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步的详细描述,其中:图1为本专利技术的流程图。具体实施方式以下将结合附图,对本专利技术的优选实施例进行详细的描述;应当理解,优选实施例仅为了说明本专利技术,而不是为了限制本专利技术的保护范围。图1为本专利技术的流程图,如图1所示,在本流程中,当高维数据输入后,先将数据各维度进行格式归一化操作,转化为标准的数据点,再执行初始凸包求解操作,然后求解出该初始凸包的内接球体,再利用该内接球体对内部点进行点定位操作,凡是位于内接球体内部的数据点就直接删除,余下的数据点再根据点面的位置关系递归地处理,直至求解出整个数据集的凸包具体的,设数据的维度为N,本技术求解高维数据凸包的过程:一、把N维数据集中的每个数据视为一个点,求解数据集(以下称点集)中至少2*N+2^N个极值点,如各个维度上的最大值和最小值等等;二、按N个极值点确定一个超平面,求解由步骤一中所述的极值点确定的满足以下条件的所有超平面:所有极值点均位于该超平面的同一侧;如果多个面位于同一超平面,则合并这些面,余下的面构成点集的初始凸包。三、以点集重心为球心,求解该初始凸包的内接球体;四、利用该内接球体排除冗余的内部点;五、对剩余的点,则利用其与初始凸包各个面的位置关系,判断该点是否在初始凸包内部,如果在内部则删除它;否则,把它加入离它最远的异侧面对应的外部点集。六、在外部点集中,求出离各个面最远的点,这些点也是凸包的顶点。新的凸包顶点与其所对应的所有水平边构建多面体,删除位于多面体内部的点及异侧面,把其余点加入该多面体的其它面中离它最远的面对应的外部点集。如果一个顶点与重心位于某个超平面的不同侧,则称该超平面为该顶点的异侧面,否则称它为该顶点的同侧面;如果某条边是该顶点的异侧面和同侧面的公共边,则称它为该顶点的水平边。七、重复第六步,递归地求解出整个点集合的凸包。本专利技术中的第四步利用内接球体排除冗余内部数据,显著地提高了凸包求解算法的效率。通过简单的比较考察点到重心的距离与内接球的半径的大小,便可排除大量的内部点,最好的情况下可排除99%以上的内部点。而现有技术排除内部点则需要经过复杂的定位及比较操作才可完成。实施例一在分析企业产品销售数据时,可利用该技术快速求得位于数据空间边缘的异常数据,如特定时间内的最畅销产品,最滞销产品,销售增长最快产品等等数据。举例分析如表1所示的产品销售数据:表1、产品销售数据产品名称销售数量单价总销售金额总利润浏览数A1002525001000300B50350175006125100C2050010000300080D60300180006300150E510005000200050F3030090002700200G1554062001860500H885044002200210I906054001620280数据归一化为标准格式如表2所示:(求各数据与其所在维度的均值的比)表2、归一化后的产品销售数据把归一化的数据取单价、总利润和浏览数三个维度看作三维空间的一个点,那么可以对该数据集对应的点集的凸包进行求解,从而获得凸包顶点对应的特异数据如表3所示:表3求得的特异产品数据产品名称销售数量单价总销售金额总利润浏览数A1002525001000300B50350175006125100C2050010000300080D60300180006300150E510005000200050G1554062001860500H885044002200210其中产品F和产品I对于上述三个维度组合而言为非特异数据。这些特异数据对应着异常的产品,那么管理者可根据这些数据制定决策。而本专利技术比已有技术在求解凸包时有着时间和空间上的优势。表4和表5给出本专利技术的技术Liuhull与Quickhull技术在求解三维点集凸包时的效率对比。表4Quickhull与Liuhull求解三维点集凸包的时间效率对比,单位是秒表5、Quickhull与Liuhull求解三维点集凸包的空间效率对比,单位是KB。表中反映的是算法在处理大小为200000的点集时需要的内存峰值。表5Quickhull与Liuhull求解三维点集凸包的空间效率对比以上所述仅为本专利技术的优选实施例,并不用于限制本专利技术,显然,本领域的技术人员可以对本专利技术进行各种改动和变型而不脱离本专利技术的精神和范围。这样,倘若本专利技术的这些修改和变型属于本专利技术权利要求及其等同技术的范围之内,则本专利技术也意图包含这些改动和变型在内。本文档来自技高网...
一种快速求解高维海量数据的凸包的方法

【技术保护点】
一种快速求解高维海量数据的凸包的方法,其特征在于:包括以下步骤:S1.把N维数据集中的每个数据视为一个点,求解数据集中的若干极值点;S2.求解这些极值点构成的初始凸包;S3以点集重心为球心,求解该初始凸包的内接球体;S4利用该内接球体排除冗余的内部点;S5对剩余的点,则利用其与初始凸包各个面的位置关系,判断该点是否在初始凸包内部,如果在内部则删除它;否则,把它加入离它最远的异侧面对应的外部点集;S6在外部点集中求出离各个面最远的点,这些点也是凸包的顶点;新的凸包顶点与其所对应的所有水平边构建多面体,删除位于多面体内部的点及异侧面,把其余点加入该多面体的其它面中离它最远的异侧面对应的外部点集;S7重复步骤S6,递归地求解出整个点集合的凸包。

【技术特征摘要】
1.一种快速求解高维海量数据的凸包的方法,其特征在于:包括以下步骤:S1.把N维数据集中的每个数据视为一个点,求解数据集中的若干极值点;S2.求解这些极值点构成的初始凸包;S3以点集重心为球心,求解该初始凸包的内接球体;S4利用该内接球体排除冗余的内部点;S5对剩余的点,则利用其与初始凸包各个面的位置关系,判断该点是否在初始凸包内部,如果在内部则删除它;否则,把它加入离它最远的异侧面对应的外部点集;S6在外部点集中求出离各个面最远的点,这些点也是凸包的顶点;新的凸包顶...

【专利技术属性】
技术研发人员:刘润宗唐远炎
申请(专利权)人:重庆大学
类型:发明
国别省市:重庆,50

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

1