一种结构化多层级条件判断匹配的算法制造技术

技术编号:20545416 阅读:36 留言:0更新日期:2019-03-09 18:22
本发明专利技术公开了一种结构化多层级条件判断匹配的算法,该算法实施步骤如下:S1:用代码来编写一个程序,定义好结构的基本要素,该基本要素分别为叶子节点、非叶子节点、权重、分值和逻辑条件;S2:根据需要搭建节点;S3:对S2中搭建的节点进行分配权重,根据公式计算对应节点的分值;S4:根据计算出的分值返回最优结果;本发明专利技术适用于所有软件系统中的逻辑匹配模型,具有结构化、灵活扩展配置、逻辑展现直观友好、效率高等特点;我们可以翻译成类似的viso图来描述不同的匹配规则,可以很清楚的看到每个匹配纬度在这个规则中的位置,非常清晰、便于维护,我们还可以通过程序去实现一套公共的基础类,以后的匹配应用不用重新去做这些重复的工作。

A Structured Multi-Level Conditional Matching Algorithm

The invention discloses an algorithm for judging and matching structured multi-level conditions. The implementation steps of the algorithm are as follows: S1: coding a program to define the basic elements of the structure, which are leaf nodes, non-leaf nodes, weights, scores and logical conditions; S2: building nodes according to needs; S3: assigning weights to nodes built in S2, roots. According to the formula, the score of the corresponding node is calculated; S4: The optimal result is returned according to the calculated score; The present invention is applicable to the logical matching model in all software systems, and has the characteristics of structured, flexible and extended configuration, intuitive and friendly logic display, high efficiency; We can translate similar VISO diagrams to describe different matching rules, and can clearly see each matching latitude. The position of degree in this rule is very clear and easy to maintain. We can also implement a set of common basic classes through the program. Later matching applications do not need to do these repetitive work again.

【技术实现步骤摘要】
一种结构化多层级条件判断匹配的算法
本专利技术涉及一种结构化多层级条件判断匹配的算法,属于软件开发

技术介绍
在应用软件系统中,很多会用到匹配算法的地方,这些匹配算法,根据输入条件的不同,匹配的优先顺序规则不同,返回的对象不同;其实做的就是一件事,按照匹配规则匹配;但是因为各行业应用的不同,其匹配算法的纬度,复杂度,规则变化都是不一样的,现有的技术实现很多是各自设计一套匹配算法,罗列一堆条件和纬度,不便重复使用和扩展及维护;现在的企业资源计划(ERP)的价目表取价;价目表中有很多纬度、客户、客户类、料品、料品等级、料品成分、料品自由项、地区、计量单位等;如果取价规则是很简单的:1)严格匹配,全部纬度一样,那才能取到价格,那我们的算法会很简单,直接一个SQL就能搞定;2)或者说先按客户查,查不到再查料,那算法也很简单,增加一个逻辑分支判断就可以;但是如果从价目表表体中取报价,其优先顺序依次为“客户+物料+计价单位”、“客户类+物料+计价单位”、“物料+计价单位”、“物料”、“客户+物料类+计价单位”、“客户类+物料类+计价单位”、“物料类+计价单位”、“物料类”。①如果传入参数中的客户不为空,则根据[客户]+[客户Site]+[物料]+[计价单位]取报价并返回单价。若取不到价格,则继续往下取价;②如果在①中未取到报价,则根据[客户·客户类别]+[物料]+[计价单位]取报价并返回单价。若取不到价格,则继续往下取价;③如果在②中仍未取到报价,则根据[物料]+[计价单位]取报价并返回单价;若取不到价格,则继续往下取价;④如果在③中仍未取到报价,则根据[物料]取出该物料的任一符合条件的报价并返回单价和计价单位;若取不到价格,则继续往下取价;⑤如果在④中仍未取到报价,则根据[客户]+[客户Site]+[物料·物料类]+[计价单位]取报价并返回单价;若取不到价格,则继续往下取价;⑥如果在⑤中仍未取到报价,则根据[客户.客户类别]+[物料·物料类]+[计价单位]取报价并返回单价。若取不到价格,则继续往下取价。⑦如果在⑥中仍未取到报价,则根据[物料·物料类]+[计价单位]取报价并返回单价。若取不到价格,则继续往下取价。⑧如果在⑦中仍未取到报价,则根据[物料·物料类]取出该物料类的任一符合条件的报价并返回单价和计价单位。若仍然取不到报价,则ReturnNull。⑨若传入了计价单位,且按传入的计价单位找不到物料价目,则作为取不到价格处理。即,按此调整,必须严格匹配价目的计量单位;如何来实现上面的匹配算法,传统的方法只能罗列一堆if(如果),else(否则),针对上述用于匹配的算法,同样也是可以使用传统的方法;但是同样对于一个已经操作好的程序,我们在使用if(如果),else(否则)等传统方法用于统计时,对于在中间步骤添加纬度或者减少纬度,都是需要针对程序从头开始分析,应该在哪一步插入比较合适,对于变量的控制是如何改变的,这个额外因素都是需要解决的,那对于应用者就太麻烦了,另外,企业在发展过程中,任何规则都会根据市场变化,规则发生变化怎么扩展,利用传统的方法,则需要重新制定匹配算法,如此麻烦的应用过程中,严重影响该算法的普及,并不能有效解决这个问题。
技术实现思路
本专利技术要解决的技术问题是克服现有技术的缺点,寻求设计一种基于更好实现复杂匹配的、易操作、高度灵活配置可扩展的,逻辑展示友好的,高效的匹配计算方法。为了解决上述技术问题,本专利技术提供了如下的技术方案:本专利技术提供一种结构化多层级条件判断匹配的算法,该算法实施步骤如下:S1:用代码来编写一个程序,定义好结构的基本要素,该基本要素分别为叶子节点、非叶子节点、权重、分值和逻辑条件;S2:根据需要搭建节点;S3:对S2中搭建的节点进行分配权重,根据公式计算对应节点的分值;S4:根据计算出的分值返回最优结果。作为本专利技术的一种优选技术方案,叶子节点:最末级节点,没有子节点的节点;非叶子节点:非末级节点,有子节点的节点;权重:根据人工制定确定优先级别,并根据优先级别确定权重,该权重按照1、2、3……n,以此类推优先级越来越低;分值:叶子节点分值:本身分值表示为100减去该节点当前权重值;非叶子节点为:下级节点的分值加上本身的分值;不匹配用一个类型不匹配UnMatched表示;逻辑条件:AND,表示叶子节点必须全部匹配;XOR,表示子节点按照权重优先顺序,任意匹配上一个就返回;其中,通过对节点分值的计算,从而得到可匹配企业资源数据。作为本专利技术的一种优选技术方案,在该算法实施过程中添加参数或改变参数,则需要对步骤S2中的搭建的节点上添加节点或改变节点位置,重新排布;并在步骤S3中重新分配权重。本专利技术所达到的有益效果是:本专利技术适用于所有软件系统中的逻辑匹配模型,具有结构化、灵活扩展配置、逻辑展现直观友好、效率高等特点;我们可以翻译成类似的viso图来描述不同的匹配规则,viso树形图层次分明,有高度也有分枝,我们可以很清楚的看到每个匹配纬度在这个规则中的位置,非常清晰、一目了然、便于维护,我们还可以通过程序去实现一套公共的基础类,以后的匹配应用不用重新去做这些重复的工作。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1是本专利技术判断匹配的算法的部分节点树状viso图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。实施例1:本专利技术提供一种结构化多层级条件判断匹配的算法,该算法实施步骤如下:S1:用代码来编写一个程序,定义好结构的基本要素,该基本要素分别为叶子节点、非叶子节点、权重、分值和逻辑条件;S2:根据需要搭建节点;S3:对S2中搭建的节点进行分配权重,根据公式计算对应节点的分值;S4:根据计算出的分值返回最优结果。叶子节点:最末级节点,没有子节点的节点;非叶子节点:非末级节点,有子节点的节点;权重:根据人工制定确定优先级别,并根据优先级别确定权重,该权重按照1、2、3……n,以此类推优先级越来越低;分值:叶子节点分值:本身分值表示为100减去该节点当前权重值;非叶子节点为:下级节点的分值加上本身的分值;不匹配用一个类型不匹配UnMatched表示;逻辑条件:AND,表示叶子节点必须全部匹配;XOR,表示子节点按照权重优先顺序,任意匹配上一个就返回;其中,通过对节点分值的计算,从而得到可匹配企业资源数据。在该算法实施过程中添加参数或改变参数,则需要对步骤S2中的搭建的节点上添加节点或改变节点位置,重新排布;并在步骤S3中重新分配权重。为了解决这种ERP或其他领域中常见的匹配算法的实现,我们通过一个树型的规则表达匹配规则,做到即可实现复杂灵活的匹配,又可做到可装卸。现用一个树状的viso图来描述这种规则,如图1所示的,该viso图为整个系统图中的一部分,A表示这个匹配规则叶子节点,A的权重是1,A有2个子节点,分别为B、C两个下级叶子节点;B的权重是2,C的权重是1,表示C优先于B,逻辑关系是XOR,表示优先匹配;初试设置叶子node满分值是100分,当前得分为100-权重:因此:A叶子节点的得分是10本文档来自技高网
...

【技术保护点】
1.一种结构化多层级条件判断匹配的算法,其特征在于,该算法实施步骤如下:S1:用代码来编写一个程序,定义好结构的基本要素,该基本要素分别为叶子节点、非叶子节点、权重、分值和逻辑条件;S2:根据需要搭建节点;S3:对S2中搭建的节点进行分配权重,根据公式计算对应节点的分值;S4:根据计算出的分值返回最优结果。

【技术特征摘要】
1.一种结构化多层级条件判断匹配的算法,其特征在于,该算法实施步骤如下:S1:用代码来编写一个程序,定义好结构的基本要素,该基本要素分别为叶子节点、非叶子节点、权重、分值和逻辑条件;S2:根据需要搭建节点;S3:对S2中搭建的节点进行分配权重,根据公式计算对应节点的分值;S4:根据计算出的分值返回最优结果。2.根据权利要求1的一种结构化多层级条件判断匹配的算法,其特征在于,所述叶子节点:最末级节点,没有子节点的节点;所述非叶子节点:非末级节点,有子节点的节点;所述权重:根据人工制定确定优先级别,并根据优先级别确定权重,该权重按照1、2、3…...

【专利技术属性】
技术研发人员:姚勇张万泽
申请(专利权)人:上海萃颠信息科技有限公司
类型:发明
国别省市:上海,31

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

1