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

基于语义计算的中值选取算法制造技术

技术编号:19009104 阅读:63 留言:0更新日期:2018-09-22 08:59
本发明专利技术提供一种基于语义计算的中值选取算法,具体设计一种基于问题描述和分析的语义分析的算法设计方法,用中值选择算法的设计展示所提出的方法,遵循我们的语义分析原则,本发明专利技术设计了一个中值选择算法来找出偶数个数值的上限时间复杂度为O(3n)的中值,属于数据结构与算法领域,其特征在于通过遵循奥卡姆剃刀(Occam's razor)原理来构建一种能够稳定优化的策略性算法设计方法。

Median selection algorithm based on semantic computation

The invention provides a median selection algorithm based on semantic computing, and specifically designs an algorithm design method based on problem description and semantic analysis. The proposed method is demonstrated by the design of the median selection algorithm. Following our semantic analysis principles, the invention designs a median selection algorithm to find even numbers. The upper bound time complexity of each value is the median of O (3n), which belongs to the field of data structure and algorithm. Its characteristic is to construct a strategy algorithm design method which can be stabilized and optimized by following the Occam's razor principle.

【技术实现步骤摘要】
基于语义计算的中值选取算法
本专利技术提供一种基于语义计算的中值选取算法,具体设计一种基于问题描述和分析的语义分析的算法设计方法,用中值选择算法的设计展示所提出的方法,遵循我们的语义分析原则,本专利技术设计了一个中值选择算法来找出偶数个数值的上限时间复杂度为O(3n)的中值,属于数据结构与算法领域。
技术介绍
在算法设计方面有很多工作,这些工作根据不同的下界和上界产生许多有效的算法。然而,几乎没有方法能够产生可以帮助设计人员以客观的方式接近最优算法的有效策略。本专利技术致力于通过遵循奥卡姆剃刀(Occam'srazor)原理来构建一种能够稳定优化的策略性算法设计方法。本专利技术将选择问题作为这种方法的一个例子。选择是计算机科学算法设计中的一个重要问题。中值选择问题定义如下:给定一个有N个不同数字的数组ARR,找到一个中值数x或一对中值数(x,y)。因此,对于N是奇数,存在大于(N-1)/2个数字且小于(N-1)/2个数字的数目的arrx,当N是偶数,则存在一对数字arrx和arry,他们大于(N-2)/2个其他数字并小于(N-2)/2个其他数字。一个数据集合的中位数通常是很一个很有价值的统计指标,由于它对异常数据不敏感,所以一般会比平均值更能体现数据集合数据的“平均水平”。然而,对于无序数据序列求中位数在实现上却没有求平均值那样简单优美的O(N)复杂度的算法。最容易想到的做法是先对数据进行排序,然后取中点的值,然而这种做法的时间复杂度是O(NlogN)。
技术实现思路
技术问题:本专利技术将选择问题作为本专利技术提出的方法的一个例子。选择是计算机科学算法设计中的一个重要问题,中值选择问题定义如下:给定一个有N个不同数字的数组ARR,找到一个中值数x或一对中值数(x,y)。因此,对于N是奇数,存在大于(N-1)/2个数字且小于(N-1)/2个数字的数目的arrx,当N是偶数,则存在一对数字arrx和arry,他们大于(N-2)/2个其他数字并小于(N-2)/2个其他数字。技术方案:本专利技术的目的是提供一种基于语义计算的中值选取算法,旨在通过遵循奥卡姆剃刀(Occam'srazor)原理来构建能够稳定优化的策略算法设计方法。针对目前几乎没有方法能够产生可以帮助设计人员以客观的方式接近最优算法的有效策略的问题,本专利技术提出了一种基于问题描述和分析的语义分析的算法设计方法,用中值选择算法的设计展示所提出的方法,遵循我们的语义分析原则,本专利技术设计了一个中值选择算法来找出偶数个数值的上限时间复杂度为O(3n)的中值。体系结构:1.面向语义的算法设计原则:本专利技术为找到一个最有效的且是可计算的解决方案来定位中位数,实现一个语义导向的设计,制订了以下规则:(a)排他性:当试图构造一个问题的算法时,只有基本的问题描述才能被理想地假设为完整的问题描述;(b)完整性:在完成算法的设计时,从基本的问题描述中充分地探索必要的语义;(c)兼容组合一致性:遵循上述排他性和完整性的规则,所得到的算法可以被视为对基本问题描述语义的形式化转换。作为一个整体,本专利技术提出对问题描述部分的组成语义进行操纵以符合整个问题描述的一般语义;目标是一组数字{x1,x2,x3,x4,x5,x6,...,xn},对于{xi,xi+1}中的每两个数字,本专利技术设置用于演示目的的顺序方向:较大数字在较小数字的右侧,即对于排序的数字,我们只有少于“=<”的操作,并假设每个数字的价值都不同;2.中值选择的语义启示:(1)MS要求MDL左侧的数字量等于右侧的数量,即amount(leftofMDL)=amount(rightofMDL),本专利技术定义:1)MS:中位数选择策略2)MDL:中间分界线3)alDML:amount(leftofMDL),即MDL左边的数字数量4)arDML:amount(rightofMDL),即MDL右边的数字数量5)aMDLLR:alMDL=arMDL此后,每次调整后,MDL的每一侧都有两个属性:(a)pML:ML是左侧最大数字,本专利技术定义ML是MDL左侧的下一个数字(b)pMR:MR是右侧最小数字,本专利技术定义MR是MDL右侧的下一个数字作为两边的一个整体,还有另一项属性(pMLR)需要保持,以确保ML和MR的中位数的跨界合理性。它是:(c)pMLR:ML<MR本专利技术定义pMS为MS的所有属性,所以,pMS可以被表示为:pMS::=<pML,pMR,pMLR>属性实施顺序:单个属性的评估顺序如下:i)可以用pMR独立评估pML,或者pML可以与pMR交换,将其表示为:对于pMS的评估:Commutable(pML,pMR).ii)在评估pML和pMR这两者时需要评估pMLR,将其表示为:Precede(pMLR)::=ready(pML,pMR).我们认为这些属性是最小且充分的语义,需要被维持以获得中位数。所设计的处理需要在比较插入之前和比较插入之后始终保持这些属性语义的完整性;(2)语义构建为了保持所涉及概念的语义的计算一致性,我们选择一种建设性的方式来将我们的语义开发基于最小核心语义的组合,该模式可以概括如下:semantics(conceptscomposed)::=composition(semantics(conceptbasic))有益效果:一些解释通过将特定值抽象为象征性的等价符号来简化,同时以一致的方式保持预期语义的完整性,它再次表明,建设性启示揭示看似困难的机制是有效的,并且在本专利技术的测试案例中可以自行编程;本专利技术的工作令人兴奋,因为基于语义的分析可以帮助支配优化算法的设计过程,这在以前没有被明显的揭示,我们之前也曾在其他一些案例中成功尝试过这种方法,如3x+1问题,但这是第一次,或者说是里程碑,因为提高效率正在变得如此清晰;我们将努力改进这项工作,应用更多问题解决方案的方向或结合建设性思想,以简化一些难以理解的证明或机制;希望这项工作对揭开高度争论的智力难题将是有益的。附图说明图1是一种基于语义计算的中值选取算法的一个简单示例,表示两个数字对的中值选取过程以及对MS的pMS评估;图2是一种基于语义计算的中值选取算法的前两对数字的中值选取过程流程图;图3是一种基于语义计算的中值选取算法的具体流程图;图4是一种基于语义计算的中值选取算法实施过程中的两种模式的实施实例。具体实施方式本专利技术定义提出的中位数选择策略为MS,输入是一组数字{x1,x2,x3,x4,x5,x6,...,xn},对于{xi,xi+1}中的每两个数字,本专利技术设置用于演示目的的顺序方向,假设每个数字的价值都不同,并指定相关规则,具体实施步骤如下:步骤1)输入一组数字{x1,x2,x3,x4,x5,x6,...,xn},定义为数组ARR,并以{xi,xi+1}的形式组织ARR;步骤2)方法从数字对{x1,x2}开始,比较1次,我们会得到:x1<x2或x1>x2这两种情况在展示当前方法方面没有区别,因为这两个数字的值在开始时实际上是可变的;由于我们正在搜索上界,并且x1<x2需求无操作来维持方向;(S1)本专利技术选择了x1>x2这个更复杂的情况,我们做1次切换操作以得到本文档来自技高网...
基于语义计算的中值选取算法

【技术保护点】
1.本专利技术定义提出的中位数选择策略为MS,输入是一组数字{x1, x2, x3, x4, x5, x6, ... , xn}, 对于{xi, xi + 1}中的每两个数字,本专利技术设置用于演示目的的顺序方向,假设每个数字的价值都不同,并指定相关规则,其特征在于有如下步骤:步骤S01)输入一组数字{x1, x2, x3, x4, x5, x6, ... , xn},定义为数组ARR,并以{xi, xi+1}的形式组织ARR;步骤S02)xi 与 xi+1比较大小,若xi > xi+1, 则交换xi 和 xi+1的位置步骤S03)从ARR中以{xi, xi+1}形式逐次取值(i>2);步骤S04)放入已处理队列,评估MS的所有属性pMS,本专利技术给出前两次处理的pMS评估如下:步骤S041)方法从数字对{x1, x2}开始,比较1次,我们会得到:x1

【技术特征摘要】
1.本发明定义提出的中位数选择策略为MS,输入是一组数字{x1,x2,x3,x4,x5,x6,...,xn},对于{xi,xi+1}中的每两个数字,本发明设置用于演示目的的顺序方向,假设每个数字的价值都不同,并指定相关规则,其特征在于有如下步骤:步骤S01)输入一组数字{x1,x2,x3,x4,x5,x6,...,xn},定义为数组ARR,并以{xi,xi+1}的形式组织ARR;步骤S02)xi与xi+1比较大小,若xi>xi+1,则交换xi和xi+1的位置步骤S03)从ARR中以{xi,xi+1}形式逐次取值(i>2);步骤S04)放入已处理队列,评估MS的所有属性pMS,本发明给出前两次处理的pMS评估如下:步骤S041)方法从数字对{x1,x2}开始,比较1次,我们会得到:x1<x2或x1>x2(S1)这两种情况在展示当前方法方面没有区别,因为这两个数字的值在开始时实际上是可变的;由于我们正在搜索上界,并且x1<x2需求无操作来维持方向;本发明选择了x1>x2这个更复杂的情况,(S2)我们做1次切换操作以得到在指定方向上的x2<x1;评估中位数:x1和x2均为中位数;隐形中间分界在x1和x2之间,本发明假定有一个中间分界线MDL,形式为:{x2}MDL{x1},然后,对于包含两个新数字的已处理队列,在每次引入两个新数字作为MDL的迭代处理之前,本发明提出的策略将集中在维持MDL;步骤S042)引入数字对{x3,x4},比较1次,我们会得到x3<x4或x3>x4(S1)我们选择x3>x4情况作为更复杂的情形,这种情形需要1次交换操作,交换之后,我们得到x4<x3;(S2)然后将它们引入{x2}MDL{x1},在MDL的两侧需要一次划分,最初的2个比较将是x4与x2和x3与x1比较大小,根据每次比较的两种可能性,会有4种组合情形:{x4<x2且x3>x1,x4>x2且x3<x1,x4<x2且x3<x1,x4>x2且x3>x1}步骤S043)容易和困难的两种情况的处理,根据对称情况的相同性,细分这四种情形分为两种情形:(S1)情况(i):x4<x2且x3>x1或x4>x2且x3<x1,对于x4<x2且x3>x1,中值评估的结果将为{x2}MDL{x1},对于x4>x2且x3<x1,中值评估的结果将为{x4}MDL{x3},因此,中值选择的下界将是这种情况的不断重合;由于对于两个新数字的处理,只有两次的引入比较,因此n个数值的中位数选择的下限是:Omega(1.5n),因为结合了为两个引入数字的一次初始比较和情况(i)中的2次比较;这种情况的特点是每次处理都能很好地保持pML和pMR,并且由于ML和MR的顺序被保持,所以pMLR得到很好的保持;(S2)情况(ii):x4<x2且x3<x1或x4>x2且x3>x1,这种情况不同于情况(i),因为ML与MR的比较结果的顺序不能被保证以符合pMLR的属性,象征性地,ML>MR或ML<MR这种情况的复杂性与相关数字的具体含义无关,同时,具体表示的数字将证实这种情况的复杂性,因此为了便于解释,我们选择该场景的具体代表性名称为:x4<x2且x3<x1(S21)此时,本发明规定ML::=x2,MR::=x3;(S22)为了评估pMLR,需要1次比较:x2与x3比较;对于这两种可能的情况,a.如果x2<x3,则保持pMLR,处理在当前阶段完成,并且可以进入另一轮迭代;b.如果x2>x3,则不保持pMLR,处理在当前阶段完成,并且可以进入另一轮迭代;因为我们正在寻找MS的上限,我们选择利用在单独的左侧比较和右侧比较之后更复杂的ML>MR的情况,因此我们选择探索的场景:x2>x3(S23)因此,需要一次交换才能切换到MDL的另一侧:x2→MRx3→ML(S24)由于这次切换改变了两侧的元素,需要再次评估<pML,pMR,pMLR>的pMS,对于pML,需要评估x4与ML比较的大小,由于x3>x4,pML属性是有保证的;从语义上讲,MS在整个过程中对这种情况的一般意义是引入的两个数字转换到了同一侧;本发明将情景的影响表示为pML|MRN;对于pMR,需要评估x1与MR的比较;从语义上讲,这个场景对于整个MS处理过程的一般意义在于,对于引入两个新数字之前的队列,先前合理的ML或MR(用MLbefore和MRbefore表示)转移到在引入两个新数字之前仅由相同的元素组成的另一侧(用sidebefore(ML)和sidebefore(MR)表示),在MLnew和MRnew引入两个新数字之后,重新将队列中的ML或MR表示为合理的ML或MR;那么对于这种情况的MLnew或MRnew评估是MLnew与sidebefore(MR)比较大小或MRnew与sidebefore(ML)比较大小;根据在引入两个数字之前合理队列的中位数的定义,已知的顺序是MLnew<sidebefore(MR)的每个元素,所以MLnew<sidebefore(MR),相应地,我们得到MRnew>sidebefore(ML);从语义上讲,这种情况的含义是前一个中位数被交换到仅由相同顺序中的前面元素组成的MDL一侧,对于这种情况,定理是不需要操作维护pML或pMR,我们将情景的结果影响表示为pML|MRY;对于pMLR,如果pML和pMR都保持不变,那么pMLR也是合理的;一般来说,在每个复杂处理过程中会有两个相互关联的情况,称为cMS:cMS::=<pML|MRN,pML|MRY>步骤S05)pML|MRN上的建设性语义启示,对于pML|MRN,更一般的情况是,在用{a,b}和a<b表示的两个新引入的数字切换到MDL的一侧,组成sidebefore(ML)(不包括MLbefore)或sidebefore(MR)(不包括MRbefore)之前,需要去验证新的ML或MR:对于MLnew,它位于{{b},sidebefore(ML)-MLbefore}之中对于MRnew,它位于{{a},sidebefore(MR)-MRbefore}之中从语义上讲,就全局评估所需的操作次数而言,两种情况彼此相等,因此可以选择使用其中的任何一种情况来进行后续解释,本发明选择从{{b},sidebefore(ML)-MLbefore}中找到MLnew作为代表方案;建设性地,我们从之前的四个数字场景{x1,x2,(MDL),x3,x4}before继续前面的特定的具体分析开始,对这些数字的表示进行了更新,以便后续的理解;由于MLbefore是x2,sidebefore(ML)-MLbefore是{x1},当a<b被引入到左侧时,{{b},sidebefore(ML)-MLbefore}是{{b},{x1}}:MLnew::=min{{b},{x1}}=min{b,x1}经过1次比较后,我们会得到b和x1之间的顺序,将会有两种可能的模式:步骤S06)(i)branchNew模式b<x1,MLnew=x1从语...

【专利技术属性】
技术研发人员:段玉聪宋正阳
申请(专利权)人:海南大学
类型:发明
国别省市:海南,46

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

1