CN102664787A - 决策树的生成方法和装置 - Google Patents
决策树的生成方法和装置 Download PDFInfo
- Publication number
- CN102664787A CN102664787A CN2012100959781A CN201210095978A CN102664787A CN 102664787 A CN102664787 A CN 102664787A CN 2012100959781 A CN2012100959781 A CN 2012100959781A CN 201210095978 A CN201210095978 A CN 201210095978A CN 102664787 A CN102664787 A CN 102664787A
- Authority
- CN
- China
- Prior art keywords
- rule
- directed graph
- fragment
- cum rights
- limit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003066 decision tree Methods 0.000 title claims abstract description 319
- 238000000034 method Methods 0.000 title claims abstract description 80
- 239000012634 fragment Substances 0.000 claims description 710
- 238000004364 calculation method Methods 0.000 claims description 30
- 238000003825 pressing Methods 0.000 claims description 13
- 230000000875 corresponding effect Effects 0.000 description 386
- 230000006870 function Effects 0.000 description 202
- 238000005520 cutting process Methods 0.000 description 49
- 230000008878 coupling Effects 0.000 description 17
- 238000010168 coupling process Methods 0.000 description 17
- 238000005859 coupling reaction Methods 0.000 description 17
- 238000004458 analytical method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000000205 computational method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000272510 Apteryx Species 0.000 description 1
- 244000188472 Ilex paraguariensis Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种决策树的生成方法和装置。该方法包括:根据规则集合生成编码规则集合;生成第一带权无向图;计算第一带权无向图中每个边的权值;如果第一带权无向图中权值最大的边的权值大于第一阈值,则循环执行第一操作,直到最新生成的带权无向图中权值最大的边的权值小于或者等于第一阈值;为最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。此外,本发明实施例还提供了其他决策树的生成方法及装置。通过本发明实施例提供的技术方案,可以降低发生规则复制的概率。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及决策树的生成方法和装置。
背景技术
流分类通常是指根据报文的某些特征定义一些规则,采用这些规则识别出符合某类特征的报文,从而实现对报文的分类。与特定规则匹配的多个报文构成一个流。流分类机制能够实现不同的流对应不同的服务质量(Quality of Service,简称QoS)。基于决策树的流分类方法,相对于基于专门硬件如三态内容可寻址存储器(Ternary Content AddressableMemory,简称TCAM)的流分类方法,在匹配规则的查找速度、成本节约等方面具有较大的优势。
基于决策树的流分类方法的原理是通过建立决策树,将一个规则集合划分为多个小规则集合,在这些小规则集合中查找与报文匹配的规则。一棵决策树包括一个根节点、多个中间节点以及多个叶节点。使用决策树执行规则查找可以通过如下操作实现:首先对报文的报文头进行解析,得到用于查找的关键字,根据关键字的一比特或若干比特,在决策树的某个中间节点选择分支,以横穿决策树直到决策树的一个叶节点,每个叶节点包含一组规则,报文与确定的叶节点包括的一组子规则集合进行匹配,如果该组子规则集合存在多个与报文匹配的规则,则从多个发生匹配的规则中选出优先级最高的规则,作为对该报文进行分类的规则。流分类器对该报文执行与优先级最高的规则对应的动作。基于决策树的流分类方法具体实现时可以是HiCuts、HyperCuts或者Modular。
HiCuts和HyperCuts方法用几何的观点研究流分类问题。从几何的观点看,如果流分类器中的规则由分别对应k维空间的k个域组成,则每条规则对应k维空间的一个“超矩形(hyperrectangle)”区域;而每个报文则对应k维空间的一个点。查找与某个报文匹配的规则的过程就相当于计算该报文所对应的点落入哪些“超矩形”当中。在HiCuts和HyperCuts方法中,规则中的每个域都被看成范围,将范围不同的域放在一起进行切分,以将规则集合划分为小的子规则集合。当子规则集合中的规则数小于预先设定的阈值时,切分终止。通过切分可以建立一棵决策树。决策树的中间节点保存切分方法相关的信息,如选择哪一维或几维进行切分,每维的切分次数是多少,叶子节点保存的子规则集合等。
在Modular方法中,规则集合包括多个长度相等的规则。每个规则包括多个比特。每个比特为“0”、“1”或者通配符。通配符可以用“*”表示。将规则集合切分为多个子规则集合时,需要计算规则集合中某一位置所对应的多个比特中“0”,“1”或通配符的个数,并根据特定算法选择某一位置对规则集合进行切分。选定对规则集合进行切分所依据的基准位置后,规则集合所包含的多条规则中基准位置为“0”的规则被放入一个子规则集合。规则集合所包含的多条规则中,基准位置为“1”的规则被放入另一个子规则集合。规则集合所包含的多条规则中,基准位置为通配符的规则被放入上述两个子规则集合中。本申请文件中将上文描述的将基准位置为通配符的规则放入两个子规则集合中的情形称为规则复制。通过上述操作,一个规则集合就被分为两个子规则集合。可以对生成的子规则集合重复上述操作,直到最后得到每个子规则集合中的规则数小于预先设定的阈值为止。这样,可以建立一棵二叉决策树。决策树的中间节点保存用于对规则进行切分的基准比特的标识和中间节点的两个子节点的指针;每个叶子节点保存一个子规则集合。
上述基于决策树的流分类方法,在决策树的生成过程中发生规则复制的概率较高。发生规则复制则意味着需要占用更多存储空间。
发明内容
本发明提供一种决策树生成方法和装置,有利于降低发生规则复制的概率。
一方面,本发明实施例提供了一种决策树的生成方法,包括:
根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
如果第一带权无向图中权值最大的边的权值大于第一阈值,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到最新生成的带权无向图中权值最大的边的权值小于或者等于所述第一阈值:
根据已经生成的带权无向图中最后生成的带权无向图中权值最大的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
另一方面,本发明实施例提供了一种决策树的生成方法,其特征在于,包括:
根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为0,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为1,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
另一方面,本发明实施例提供了一种决策树的生成方法,包括:
根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
另一方面,本发明实施例提供了一种决策树的生成装置,包括:
编码处理单元,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元,用于根据所述编码处理单元生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元,用于根据所述第一带权无向图生成单元生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元,用于根据所述边权值计算单元的计算结果进行比较,如果第一带权无向图中权值最大的边的权值大于第一阈值,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最大的边的权值小于或者等于所述第一阈值时,向决策树生成单元发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权值最大的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元,用于根据所述比较单元发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
另一方面,本发明实施例提供了一种决策树的生成装置,包括:
编码处理单元,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为0,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为1,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元,用于根据所述编码处理单元生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元,用于根据所述第一带权无向图生成单元生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元,用于根据所述边权值计算单元的计算结果进行比较,如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值时,向决策树生成单元发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元,用于根据所述比较单元发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
另一方面,本发明实施例提供了一种决策树的生成装置,包括:
编码处理单元,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元,用于根据所述编码处理单元生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元,用于根据所述第一带权无向图生成单元生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元,用于根据所述边权值计算单元的计算结果进行比较,如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值时,向决策树生成单元发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权
值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元,用于根据所述比较单元发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
通过本发明实施例提供的技术方案,对规则集合中的每个规则进行编码,得到编码规则集合。基于编码规则集合,创建带权无向图。对带权无向图中权值最大(或最小)的边所对应的两个顶点进行合并,直至最新生成的带权无向图中权值最大(或最小)的边的权值满足一定条件。最新生成的带权无向图中每个顶点分别对应一个子规则集合。通过上述方式,规则集合被切分为多个子规则集合。针对采用上述方法得到的多个子规则集合分别运行某一生成决策树的算法,例如Modular或者HyperCuts,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。因此,本发明实施例提供的技术方案降低了发生规则复制的概率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例提供的一个决策树生成方法的流程图;
图1b为本发明实施例提供的另一个决策树生成方法的流程图;
图2为本发明实施例提供的又一个决策树生成方法的流程图;
图3a为本发明实施例提供的一个规则集合以及对应的编码规则集合的示意图;
图3b为本发明实施例提供的基于图3a所示的编码规则集合生成的第一带权无向图的示意图;
图4a为本发明实施例提供的图4b所示的带权无向图所对应的编码规则集合的示意图;
图4b为本发明实施例提供的基于图3b所示的第一带权无向图生成的带权无向图的示意图;
图5a为本发明实施例提供的图5b所示的带权无向图所对应的编码规则集合的示意图;
图5b为本发明实施例提供的基于图4b所示的带权无向图生成的带权无向图的示意图;
图6a为本发明实施例提供的图5b所示的带权无向图所对应的编码规则集合的示意图;
图6b为本发明实施例提供的基于图5a所示的带权无向图生成的带权无向图的示意图;
图7a为本发明实施例提供的图6a所示的带权无向图所对应的编码规则集合的示意图;
图7b为本发明实施例提供的基于图6a所示的带权无向图生成的带权无向图的示意图;
图7c为本发明实施例提供的图7b所示的带权无向图所示对应的子规则集合的示意图;
图8a为本发明实施例提供的基于图7c所示的一个子规则集合生成的一棵决策树的示意图;
图8b为本发明实施例提供的基于图7c所示的另一个子规则集合生成的另一颗决策树的示意图;
图9为本发明实施例提供的基于图3a所示的规则集合生成的决策树的示意图;
图10为本发明实施例提供的再一个决策树生成方法流程图;
图11a为本发明实施例提供的图11b所示的规则集合中的多条规则映射到以十进制为度量单位的二维几何空间的示意图;
图11b为本发明实施例提供的另一个规则集合以及对应的编码规则集合的示意图;
图11c为本发明实施例提供的基于图11b所示的编码规则集合生成的第一带权无向图;
图12a为本发明实施例提供的图12b所示的带权无向图所对应的编码规则集合;
图12b为本发明实施例提供的基于图11c所示的第一带权无向图生成的带权无向图;
图13a为本发明实施例提供的图13b所示的带权无向图所对应的编码规则集合;
图13b为本发明实施例提供的基于图12b所示的带权无向图生成的带权无向图;
图14a为本发明实施例提供的图14b所示的带权无向图所对应的编码规则集合;
图14b为本发明实施例提供的基于图13b所示的带权无向图生成的带权无向图;
图14c为本发明实施例提供的图14b所示的带权无向图所对应的子规则集合的示意图;
图15a为本发明实施例提供的图14c所示的一个子规则集合映射到以十进制为度量单位的二维几何空间的示意图;
图15b为本发明实施例提供的根据图15a所示的子规则集合生成的决策树的示意图;
图16a为本发明实施例提供的图14c所示的另一个子规则集合映射到以十进制为度量单位的二维几何空间的示意图;
图16b为本发明实施例提供的根据图16a所示的子规则集合生成的决策树的示意图;
图17a为本发明实施例提供的图14c所示的又一个子规则集合映射到以十进制为度量单位的二维几何空间的示意图;
图17b为本发明实施例提供的根据图17a所示的子规则集合生成的决策树的示意图;
图18a为本发明实施例提供的图11b所示的规则集合中的多条规则映射到以十进制为度量单位的二维几何空间的示意图;
图18b为本发明实施例提供的基于图11b所示的规则集合生成的决策树的示意图;
图19为本发明实施例提供的一个决策树的生成装置的结构示意图;
图20为本发明实施例提供的另一个决策树的生成装置的结构示意图;
图21为本发明实施例提供的另一个决策树的生成装置的结构示意图;
图22为本发明实施例提供的另一个决策树的生成装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明以下实施例的序号仅仅为了描述,不代表实施例的优劣。
本发明实施例提供的方法的执行主体可以是流分类器,或者具有流分类器的设备,如交换机、路由器、基站、负载均衡器或者防火墙。其中,流分类器可以是网络处理器(Network Processor,NP)。
本发明实施例提供的装置可以是流分类器,或者具有流分类器的设备,如交换机、路由器、基站、负载均衡器或者防火墙。其中,流分类器可以是网络处理器。
实施例一
图1a为本发明实施例提供的一种决策树的生成方法的流程图。如图1a所示,所述方法包括:
11a:根据规则集合生成编码规则集合。
12a:生成第一带权无向图。
13a:计算所述第一带权无向图中每个边的权值。
14a:如果第一带权无向图中权值最大的边的权值大于第一阈值,则循环执行第一操作,直到最新生成的带权无向图中权值最大的边的权值小于或者等于所述第一阈值。
15a:为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
上述11a中,所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等。所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等。所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个。第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则。所述第一规则由所述多个片段组成,每个片段包含至少一个字符。所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致。所述第一片段为所述多个片段中的任意一个片段。所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段。所述第一规则为所述第一函数的变量。所述第一编码规则为所述第一函数的值。所述第一函数还用于根据所述第一片段计算所述第一编码片段。
在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数。或者,在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为0,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数。
可选的,
在所述第一片段包含一个字符的场景下,如果所述第一片段中的字符为1、0或者通配符,则所述第一编码片段为1或0。
上述操作可以通过所述第一函数执行。
上述12a中,所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合。第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则。所述第一顶点为所述第一带权无向图中的任意一个顶点。所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则。
上述13a中,连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边。第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值。所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则。所述第一边为所述第一带权无向图中任意一个边。所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值。
可选的,
所述按比特操作可以为与操作、或操作或者异或操作。
上述14a中,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数。
上述14a中,所述第一操作包括:根据已经生成的带权无向图中最后生成的带权无向图中权值最大的边生成新的顶点,并根据所述新的顶点生成新的带权无向图。
所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点之外的所有的顶点。所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值。所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值。所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的子规则集合中的所有规则。所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值。所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则。所述第二边为所述新的带权无向图中任意一个边。所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值。所述按比特操作为与操作、或操作或者异或操作等。
上述14a中,如果所述已经生成的带权无向图中仅包括所述第一带权无向图,则所述第一带权无向图为所述已经生成的带权无向图中最后生成的带权无向图。
上述14a中,所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边可以只有一个,也可以有多个。
当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最大的边时,可以随机选择一个边,生成新的顶点。当有多个权值最大的边时,也可以分别计算每个边中的两个顶点分别对应的两个子规则集合所包含的规则的个数之和,根据多个权值最大边中两个顶点分别对应的两个子规则集合所包含的规则的个数之和最大的边生成新的顶点。
另外,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最大的边时,对于没有公共顶点的边(至少两个),可以分别生成新的顶点(至少两个),并根据新的顶点(至少两个)生成新的带权无向图。公共顶点是指多个权值最大的边中的两个或者多个边所共用的顶点。需要指出的是,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最大的边时,对于具有公共顶点的两个边,不能分别生成新的顶点。
通过本发明实施例提供的技术方案,对规则集合中的每个规则进行编码,得到编码规则集合。基于编码规则集合,创建带权无向图。对带权无向图中权值最大的边所对应的两个顶点进行合并,直至最新生成的带权无向图中权值最大的边的权值满足一定条件。最新生成的带权无向图中每个顶点分别对应一个子规则集合。通过上述方式,规则集合被切分为多个子规则集合。针对采用上述方法得到的多个子规则集合分别运行某一生成决策树的算法,例如Modular,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。因此,本发明实施例提供的技术方案降低了发生规则复制的概率。
此外,针对采用本发明实施例提供的方法得到的多个子规则集合分别运行某一生成决策树的算法,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。由上可以确定,每个子规则集合包含的规则的个数小于规则集合包含的规则的个数。因此,运行某一生成决策树的算法为多个子规则集合分别生成的多个决策树的高度小于或者等于运行同一生成决策树的算法为规则集合生成的一个决策树的高度。不考虑其他因素,决策树的高度越低,执行规则匹配的速度越快。因此,根据本实施例提供的方法得到的多棵决策树,针对多棵决策树并行执行规则匹配的速度高于或者等于针对一棵决策树单独执行规则匹配的速度。
可选的,
所述按比特操作为与操作、或操作或者异或操作。
可选的,
在所述第一片段包含一个字符的场景下:
如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。
上述操作可以通过所述第一函数执行。
可选的,
所述为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树包括:
通过Modular算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
下文以所述按比特操作为与操作,并且所述第一片段包含一个字符为例对本实施例提供的技术方案的进行具体分析。即如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。也就是说,第一片段可以为1、0或者通配符。为便于说明,下文将第一片段为1以及第一片段为0这两种情形统称为第一片段为非通配符。
第一函数用于将第一片段编码为第一编码片段。通过编码处理,对于规则集合中的每个规则来说,规则中的非通配符被编码为1;规则中的通配符被编码为0。对两条编码规则执行按比特与操作得到的比特串中,如果比特串中的某个位置的比特为1,则表明两条规则中位于对应位置的两个比特都是非通配符。将该位置作为基准位置,则不会发生规则复制。如果比特串中的某个位置的比特为0,则表明两条规则中对应位置的两个比特中至少有一个比特为通配符。将该位置作为基准位置,则必然会发生规则复制。
带权无向图的边的权值为对两条编码规则执行按比特与操作得到的比特串中比特为1的个数。因此,权值越大,则表明两条编码规则中,不会发生规则复制的并且能够作为基准位置的位置的个数越多。选择上述位置作为基准位置,能够避免规则复制。
图1b为本发明实施例提供的另一种决策树的生成方法的流程图。如图1b所示的方法包括:
11b:根据规则集合生成编码规则集合。
12b:生成第一带权无向图。
13b:计算所述第一带权无向图中每个边的权值。
14b:如果第一带权无向图中权值最小的边的权值小于第一阈值,则循环执行第一操作,直到最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值。
15b:为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
上述11b中,所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等。所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等。所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个。第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则。所述第一规则由所述多个片段组成,每个片段包含至少一个字符。所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致。所述第一片段为所述多个片段中的任意一个片段。所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段。所述第一规则为所述第一函数的变量。所述第一编码规则为所述第一函数的值。所述第一函数还用于根据所述第一片段计算所述第一编码片段。
在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数。或者,在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为0,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数。
可选的,
在所述第一片段包含一个字符的场景下,如果所述第一片段中的字符为1、0或者通配符,则所述第一编码片段为1或0。
上述操作可以通过所述第一函数执行。
上述12b中,所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合。第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则。所述第一顶点为所述第一带权无向图中的任意一个顶点。所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则。
上述13b中,连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边。第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值。所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则。所述第一边为所述第一带权无向图中任意一个边。所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值。
可选的,
所述按比特操作可以为与操作、或操作或者异或操作。
上述14b中,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数。
上述14b中,所述第一操作可包括:根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图。
所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点。所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值。所述第三函数用于将对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值。所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则。所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值。所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则。所述第二边为所述新的带权无向图中任意一个边。所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值。
上述14b中,如果已经生成的带权无向图中仅包括所述第一带权无向图,则所述第一带权无向图为所述已经生成的带权无向图中最后生成的带权无向图。
上述14b中,所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边可能只有一个,也可能有多个。
当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,可以随机选择一个边,生成新的顶点。当有多个权值最小的边时,也可以分别计算每个边中的两个顶点分别对应的两个子规则集合所包含的规则的个数之和,根据多个权值最小边中两个顶点分别对应的两个子规则集合所包含的规则的个数之和最大的边生成新的顶点。
另外,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,对于没有公共顶点的边(至少两个),可以分别生成新的顶点(至少两个),并根据新的顶点(至少两个)生成新的带权无向图。公共顶点是指多个权值最小的边中的两个或者多个边所共用的顶点。需要指出的是,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,对于具有公共顶点的两个边,不能分别生成新的顶点。
通过本发明实施例提供的技术方案,对规则集合中的每个规则进行编码,得到编码规则集合。基于编码规则集合,创建带权无向图。对带权无向图中权值最小的边所对应的两个顶点进行合并,直至最新生成的带权无向图中权值最小的边的权值满足一定条件。最新生成的带权无向图中每个顶点分别对应一个子规则集合。通过上述方式,规则集合被切分为多个子规则集合。针对采用上述方法得到的多个子规则集合分别运行某一生成决策树的算法,例如Modular,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。因此,本发明实施例提供的技术方案降低了发生规则复制的概率。
此外,针对采用本发明实施例提供的方法得到的多个子规则集合分别运行某一生成决策树的算法,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。由上可以确定,每个子规则集合包含的规则的个数小于规则集合包含的规则的个数。因此,运行某一生成决策树的算法为多个子规则集合分别生成的多个决策树的高度小于或者等于运行同一生成决策树的算法为规则集合生成的一个决策树的高度。不考虑其他因素,决策树的高度越低,执行规则匹配的速度越快。因此,根据本实施例提供的方法得到的多棵决策树,针对多棵决策树并行执行规则匹配的速度高于或者等于针对一棵决策树单独执行规则匹配的速度。
可选的,
所述按比特操作为与操作、或操作或者异或操作。
可选的,
在所述第一片段包含一个字符的场景下,
如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。
上述操作可以通过所述第一函数执行。
可选的,
所述为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树包括:
通过Modular算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
下文以所述按比特操作为或操作,并且所述第一片段包含一个字符为例对本实施例提供的技术方案的进行具体分析。即如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。也就是说,第一片段可以为1、0或者通配符。为便于说明,下文将第一片段为1以及第一片段为0这两种情形统称为第一片段为非通配符。
第一函数用于将第一片段编码为第一编码片段。通过编码处理,对于规则集合中的每个规则来说,规则中的非通配符被编码为0;规则中的通配符被编码为1。
对两条编码规则执行按比特或操作得到的比特串中,如果比特串中的某个位置的比特为1,则表明两条规则中位于对应位置的两个比特中至少有一个比特为通配符。将该位置作为基准位置,则会发生规则复制。如果比特串中的某个位置的比特为0,则表明两条规则中对应位置的两个比特都为非通配符。将该位置作为基准位置,则不会发生规则复制。
带权无向图的边的权值为对两条编码规则执行按比特或操作得到的比特串中比特为1的个数。因此,权值越小,则表明两条编码规则中,不会发生规则复制的并且能够作为基准位置的位置的个数越多。选择上述位置作为基准位置,能够避免规则复制。
下面结合图2对本发明实施例提供的技术方案进行举例说明。
下文以规则集合中每个规则包含多个片段,且每个片段包括1个字符的场景为例进行说明。参见图2,技术方案包括:
21:根据规则集合生成编码规则集合。
图3a为一个规则集合以及对应的编码规则集合的示意图。其中,规则a10、a20、a30、a40、a50、a60分别对应编码规则a1、a2、a3、a4、a5、a6。
图3a采用的编码方式为:将规则中的“*”编码为0,将规则中的非“*”编码为1。其中,“*”是一种通配符,本实施例中“*”的含义为在规则中“*”所对应的比特的取值可以为0也可以为1。
22:生成第一带权无向图,计算所述第一带权无向图中每个边的权值。
图3b为基于图3a所示的编码规则集合生成的第一带权无向图。其中,编码规则a1、a2、a3、a4、a5、a6分别对应第一带权无向图中的顶点a1、a2、a3、a4、a5、a6。本实施例中,第一带权无向图是首次生成的带权无向图。如图3b所示的带权无向图中:每个顶点对应一编码规则;连接任一边的两个顶点的边的权值,可通过对这两个顶点对应的编码规则的执行按比特与操作得到。其中,按比特与操作的结果为一个比特串。边的权值为按比特与操作的结果中1的个数。将与所述任一边连接的两个顶点分别对应的所述编码规则执行按比特与操作,得到第一运算结果;统计所述第一运算结果中1的个数。例如,第一带权无向图的顶点a1和a3分别对应编码规则a1和a3。针对编码规则a1和a3执行按比特与操作,得到的结果中1的个数为4。因此,第一带权无向图中连接顶点a1和a3的边的权值为4。参见图3b,第一带权无向图中权值最大的边为连接顶点a1和a3的边。
23:判断第一带权无向图中权值最大的边的权值是否大于第一阈值,如果是,则执行24;否则,执行26。
第一阈值为十进制0至7之间的整数。
根据图3a可以看出,通过编码处理,对于规则集合中的每个规则来说,规则中的非通配符被编码为1。规则中的通配符被编码为0。对两条编码规则执行按比特与操作得到的比特串中,如果比特串中的某个位置的比特为1,则表明两条规则中位于对应位置的两个比特都是非通配符。将该位置作为基准位置,则不会发生规则复制。如果比特串中的某个位置的比特为0,则表明两条规则中对应位置的两个比特中至少有一个比特为通配符。将该位置作为基准位置,则必然会发生规则复制。
带权无向图的边的权值为对两条编码规则执行按比特与操作得到的比特串中比特为1的个数。因此,权值越大,则表明两条编码规则中,不会发生规则复制的并且能够作为基准位置的位置的个数越多。选择上述位置作为基准位置,能够避免规则复制。图3b所示的第一带权无向图中,顶点a1和a3连接的边的权值最大。顶点a1和a3分别对应编码规则a1和a3。因此,编码规则a1和a3中不会发生规则复制的并且能够作为基准位置的位置的个数最多,为4个。选择上述4个位置中的任一位置作为基准位置,能够避免规则复制。
图3b中,顶点a1和a3分别对应两个子规则集合,其中,顶点a1对应的子规则集合中包含规则a10。顶点a3对应的子规则集合中包含规则a30。图4b所述的带权无向图中,顶点a1&a3对应的子规则集合中包含规则a10和a30。对于顶点a1&a3对应的子规则集合所包含的2个规则,一共有四个4个位置可以作为不发生规则复制的基准位置。因此,针对顶点a1&a3对应的子规则集合运行生成决策树的算法,例如Modular,并生成决策树时,发生规则复制的概率较低。
需要说明的是,第一带权无向图中,顶点a3和a4连接的边的权值也是4。因此,顶点a3和a4连接的边也是第一带权无向图中权值最大的边。可以从顶点a3和a4连接的边以及顶点a3和a1连接的边中随机选取其中一条边作为所述待消边。例如,本发明实施例中,确定顶点a3和a1连接的边为用于生成新的顶点的边。
24:根据已经生成的带权无向图中最后生成的带权无向图中权值最大的边生成新的顶点,并根据所述新的顶点生成新的带权无向图,计算最新生成的带权无向图中每个边的权值。
生成新的顶点的方法例如:在已经生成的带权无向图中最后生成的带权无向图中确定权值最大的边。将权值最大的边的两个顶点分别对应的编码规则执行按比特与操作,得到按比特与操作的结果。按比特与操作的结果为新顶点对应的编码规则。根据新顶点以及已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点以及顶点生成新的带权无向图。
例如:在图4b所示的带权无向图还没生成之前,图3b所示的带权无向图为已经生成的带权无向图中最后生成的带权无向图。对图3b所示的带权无向图中的顶点a1和a3分别对应的编码规则进行按比特与操作,得到图4b所示的带权无向图中顶点a1&a3所对应的编码规则,进而得到图4a所示的更新后的编码规则集合。图4a所示的编码规则集合包含的多个编码规则分别与图4b所示的最新生成的带权无向图中的多个顶点一一对应。此时,图4b所示的带权无向图为最新生成的带权无向图。计算如图4b所示的带权无向图中各边的权值。计算方法同上,在此不再赘述。
25:判断所述最新生成的带权无向图中权值最大的边的权值是否小于或等于第一阈值,如果是,则执行26;否则,执行24。
例如:预先设置所述第一阈值等于1。在图5b所示的带权无向图生成之前,图4b所示的带权无向图为已经生成的带权无向图中最后生成的带权无向图。图4b所示的带权无向图中权值最大的边为顶点a2和a5连接的边。顶点a2和a5连接的边的权值为3。也就是说权值最的边的权值大于所述第一阈值。针对顶点a2和a5分别对应的编码规则执行按比特与操作,按比特与操作的结果为新的顶点所对应的编码规则。以新的顶点替换图4b所示的带权无向图中顶点a2和a5,得到图5b所示的带权无向图。此时,图5b为所述最新生成的带权无向图。图5b所示的带权无向图所包含的多个顶点与图5a所示的编码规则集合中所包含的多个编码规则一一对应。根据图5a所示的编码规则计算图5b所示的带权无向图中各边的权值。
又例如:在图6b所示的带权无向图生成之前,图5b为已经生成的带权无向图中最后生成的带权无向图。图5b所示的带权无向图中权值最大的边的权值为2。也就是说,权值最大的边的权值大于所述第一阈值。针对顶点a1&a2和a4分别对应的编码规则执行按比特与操作,按比特与操作的结果为新的顶点所对应的编码规则。以新的顶点替换图5b中的顶点a1&a2和a4,得到图6b所示的带权无向图。此时,图6b即为所述最新生成的带权无向图。图6b所示的带权无向图包含的3个顶点与图6a所示的编码规则集合包含的3个编码规则一一对应。根据图6a所示的编码规则计算图6b所示的带权无向图中各边的权值。
图6b所示的带权无向图中权值最大的边的权值为1,即小于或等于所述第一阈值。因此,至此已完成规则集合的切分。图6b所示的带权无向图中每个顶点分别对应的子规则集合即为图3a所示的规则集合被切分后的多个子规则集合。
26:为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
图7b所示的带权无向图的顶点为2个,分别为顶点a1&a3&a4&a6以及顶点a2&a5。顶点a1&a3&a4&a6和a2&a5分别对应两个子规则集合。也就是说图3a所示的规则集合被切分为两个子规则集合。具体如图7c所示。其中,顶点a1&a3&a4&a6对应的子规则集合包括:规则a10、a30、a40和a60,即{a10,a30,a40,a60};顶点a2&a5对应的子规则集合包括规则a20和a50,即{a20,a50}。根据Modular为图7c所示的两个子规则集合分别生成决策树。
如果预设流分类器最多支持对两棵决策树并行执行规则匹配,则本实施例将图3a所示的规则集合切分为两个子规则集合,具体请参见图7c。通过Modular算法为图7c所示的两个子规则集合分别生成决策树。具体请参见图8a所示的决策树和图8b所示的决策树。图9所示的决策树为通过Modular算法为图3a所示的规则集合生成决策树。图9中虚线所标识的位置为基准位置。如图所示,基准位置为0的规则被放到左侧的下一级节点;基准位置为1的规则被放到右侧的下一级节点;基准位置为*的规则既被放到左侧的下一级节点,也被放到右侧的下一级节点。以此类推。将图8a所示的决策树和图8b所示的决策树与图9所示的决策树进行比较,可知:图9所示的决策树的高度较高,且发生规则复制的概率较高。例如规则a10、a20、a30和a40都涉及规则复制。根据本实施例提供的方法生成的决策树,决策树的高度较低,发生规则复制的概率较低。在图8a和图8b所示的决策树中没有出现规则复制的现象。因此,本实施例提供的方法生成的决策树中规则复制的概率较低,节省了存储决策树各节点所需的存储容量。
采用本实施例提供的方法将规则集合切分为多个子规则集合,并运行用于生成决策树的算法为各子规则集合分别生成决策树。规则集合包含多条规则。举例来说,规则集合中包含的规则可以是目的网际协议地址。目的网际协议地址可以是32比特,也可以是128比特。决策树生成后,网络设备收到网际协议分组。流分类器可以对收到的网际协议分组进行解析,获得网际协议分组的目的网际协议地址。流分类器可以根据目的网际协议地址,在多个决策树中并行执行规则匹配。如果在多个决策树中找到与网际协议分组的目的网际协议地址匹配的规则,则执行与该规则对应的动作。其中,对每棵决策树进行匹配查找的方法与现有技术相同,在此不再赘述。另外,如果得到的与网际协议分组匹配的规则有多个,可根据各规则的优先级,确定优先级最高的规则作为与该网际协议分组最终匹配规则,对该网际协议分组执行与该最终匹配规则对应的动作,例如:通过、丢弃、进行流量限制、进行带宽保证等。
当新的规则增加到规则集合时,本实施例提供的方法可以仅对新增的规则进行切分处理。例如,采用相同的编码方法对新增的规则进行编码,得到与新增的规则对应的新增的编码规则,并基于新增的编码规则与原来的规则集合对应的编码规则集合生成带权无向图。基于带权无向图确定新增的规则是属于原来的规则集合对应的多个子规则集合中的一个子规则集合,还是属于一个新的子规则集合。如果是前者,可更新新增的规则所属的子规则集合,并重新生成决策树;如果是后者,可基于新的子规则集合生成一棵决策树。由此可见,本实施例提供的方法中,当新的规则增加到规则集合时,无需针对原来的规则集合被切分为的所有子规则集合都重新生成决策树,而只需针对新的规则所属的子规则集合重新生成决策树,或者新的规则对应的新的子规则集合生成决策树。
实施例二
图10为本发明实施例提供的一种决策树的生成方法的流程图。如图10所示,所述方法包括:
101:根据规则集合生成编码规则集合。
102:生成第一带权无向图。
103:计算所述第一带权无向图中每个边的权值。
104:如果第一带权无向图中权值最大的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行第一操作,直到最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值。
105:为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
上述101中,所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等。所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等。所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个。第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则。所述第一规则由所述多个片段组成,每个片段包含至少一个字符。所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致。所述第一片段为所述多个片段中的任意一个片段。所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段。所述第一规则为所述第一函数的变量。所述第一编码规则为所述第一函数的值。所述第一函数还用于根据所述第一片段计算所述第一编码片段。
在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数。或者,在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为0,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数。
在所述第一片段包含一个字符的场景下,如果所述第一片段中的字符为1、0或者通配符,则所述第一编码片段为1或0。
上述操作可以通过所述第一函数执行。
上述102中,所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合。第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则。所述第一顶点为所述第一带权无向图中的任意一个顶点。所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则。
上述103中,连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边。第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值。所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则。所述第一边为所述第一带权无向图中任意一个边。所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值。
可选的,
所述按比特操作可以为与操作、或操作或者异或操作。
上述104中,所述第一操作包括:根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图。
所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点。所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值。所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值。所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则。所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值。所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则。所述第二边为所述新的带权无向图中任意一个边。所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值。所述按比特操作为与操作、或操作或者异或操作等。
上述104中,如果所述已经生成的带权无向图中仅包括所述第一带权无向图,则所述第一带权无向图为所述已经生成的带权无向图中最后生成的带权无向图。
上述104中,所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边可以只有一个,也可以有多个。
当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,可以随机选择一个边,生成新的顶点。当有多个权值最小的边时,也可以分别计算每个边中的两个顶点分别对应的两个子规则集合所包含的规则的个数之和,根据多个权值最小边中两个顶点分别对应的两个子规则集合所包含的规则的个数之和最大的边生成新的顶点。
另外,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,对于没有公共顶点的边(至少两个),可以分别生成新的顶点(至少两个),并根据新的顶点(至少两个)生成新的带权无向图。公共顶点是指多个权值最小的边中的两个或者多个边所共用的顶点。需要指出的是,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,对于具有公共顶点的两个边,不能分别生成新的顶点。
通过本发明实施例提供的技术方案,对规则集合中的每个规则进行编码,得到编码规则集合。基于编码规则集合,创建带权无向图。对带权无向图中权值最小的边所对应的两个顶点进行合并,直至最新生成的带权无向图中权值最小的边的权值满足一定条件。最新生成的带权无向图中每个顶点分别对应一个子规则集合。通过上述方式,规则集合被切分为多个子规则集合。针对采用上述方法得到的多个子规则集合分别运行某一生成决策树的算法,例如HyperCuts,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。因此,本发明实施例提供的技术方案降低了发生规则复制的概率。
此外,针对采用本发明实施例提供的方法得到的多个子规则集合分别运行某一生成决策树的算法,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。由上可以确定,每个子规则集合包含的规则的个数小于规则集合包含的规则的个数。因此,运行某一生成决策树的算法为多个子规则集合分别生成的多个决策树的高度小于或者等于运行同一生成决策树的算法为规则集合生成的一个决策树的高度。不考虑其他因素,决策树的高度越低,执行规则匹配的速度越快。因此,根据本实施例提供的方法得到的多棵决策树,针对多棵决策树并行执行规则匹配的速度高于或者等于针对一棵决策树单独执行规则匹配的速度。
可选的,
所述按比特操作为与操作、或操作或者异或操作。
可选的,
在所述第一片段包含一个字符的场景下:
如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。
上述操作可以通过所述第一函数执行。
可选的,
如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。
上述操作可以通过所述第一函数执行。
可选的,
所述为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树包括:
通过HyperCuts算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
下文以所述按比特操作为异或操作,所述第一片段包含一个字符,并且规则中的非通配符和通配符被分别编码为1以及0为例对本实施例提供的技术方案的进行具体分析。也就是说,如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。也就是说,第一片段可以为1、0或者通配符。为便于说明,下文将第一片段为1以及第一片段为0这两种情形统称为第一片段为非通配符。
本发明实施例提供的技术方案中,针对经过规则切分得到的多个子规则集合,根据HyperCuts算法生成决策树。规则切分涉及到规则、编码规则以及按比特异或操作。下文对规则切分涉及到的规则、编码规则以及按比特异或操作这三个事项之间的关系进行说明:
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果都是非通配符,则都被编码为1。也就是说,对两条规则执行编码操作后,得到的两条编码规则中相应位置的两个比特都是1。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为0。
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果一个是非通配符,另一个是通配符,则分别被编码为1以及0。也就是说,对两条规则执行编码操作后,得到的两个编码规则中相应位置的两个比特分别是1以及0。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为1。
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果都是通配符,则都被编码为0。也就是说,对两条规则执行编码操作后,得到的两个编码规则中相应位置的两个比特都是0。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为0。
从以上分析可以看出,通过对两条编码规则执行异或操作,得到的结果为两条规则中出现第一情况的次数。所述第一情况为:两条编码规则位置相同的两个比特中,一个比特为通配符,一个为非通配符。如果选择出现所述第一情况的比特位置作为基准位置,则会发生规则复制。带权无向图的边的权值为对两条编码规则执行按比特异或操作得到的比特串中比特为1的个数。也就是说,权值反映了出现第一情况的次数。显然,第一情况的次数越少,不会发生规则复制的并且能够作为基准位置的个数越多。选择上述基准位置进行规则切分,能够避免规则复制。
下文以所述按比特操作为异或操作,所述第一片段包含一个字符,并且规则中的非通配符和通配符被分别编码为0以及1为例对本实施例提供的技术方案的进行具体分析。也就是说,如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。也就是说,第一片段可以为1、0或者通配符。为便于说明,下文将第一片段为1以及第一片段为0这两种情形统称为第一片段为非通配符。
本发明实施例提供的技术方案中,针对经过规则切分得到的多个子规则集合,根据HyperCuts算法生成决策树。规则切分涉及到规则、编码规则以及按比特异或操作。下文对规则切分涉及到的规则、编码规则以及按比特异或操作这三个事项之间的关系进行说明:
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果都是非通配符,则都被编码为0。也就是说,对两条规则执行编码操作后,得到的两条编码规则中相应位置的两个比特都是0。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为0。
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果一个是非通配符,另一个是通配符,则分别被编码为0以及1。也就是说,对两条规则执行编码操作后,得到的两个编码规则中相应位置的两个比特分别是0以及1。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为1。
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果都是通配符,则都被编码为1。也就是说,对两条规则执行编码操作后,得到的两个编码规则中相应位置的两个比特都是1。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为0。
从以上分析可以看出,通过对两条编码规则执行异或操作,得到的结果为两条规则中出现第二情况的次数。所述第二情况为:两条编码规则位置相同的两个比特中,一个比特为通配符,一个为非通配符。如果选择出现所述第二情况的比特位置作为基准位置,则会发生规则复制。带权无向图的边的权值为对两条编码规则执行按比特异或操作得到的比特串中比特为1的个数。也就是说,权值反映了出现第二情况的次数。显然,第二情况的次数越少,不会发生规则复制的并且能够作为基准位置的个数越多。选择上述基准位置进行规则切分,能够避免规则复制。
此外,针对采用本发明实施例提供的方法得到的多个子规则集合分别运行某一生成决策树的算法,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。由上可以确定,每个子规则集合包含的规则的个数小于规则集合包含的规则的个数。因此,运行某一生成决策树的算法为多个子规则集合分别生成的多个决策树的高度小于或者等于运行同一生成决策树的算法为规则集合生成的一个决策树的高度。不考虑其他因素,决策树的高度越低,执行规则匹配的速度越快。因此,根据本实施例提供的方法得到的多棵决策树,针对多棵决策树并行执行规则匹配的速度高于或者等于针对一棵决策树单独执行规则匹配的速度。
下面结合附图对本发明实施例提供的技术方案进行举例说明。
HyperCuts是一种用于生成决策树的算法。HyperCuts通过将规则的不同片段划分到不同维度的几何空间的方式来构建决策树。图11a为图11b所示的规则集合中的6条规则映射到以十进制为度量单位的二维几何空间的示意图。具体来说,图11b所示的规则集合包含的6条规则,每条规则的高4比特和低4比特分别映射到图11a所示的二维几何空间的X轴以及Y轴。
图11b为规则集合以及对应的编码规则集合的示意图。该规则集合包括规则A0、B0、C0、D0、E0以及F0。每条规则的长度都是8个比特。其中,规则集合中的规则A0、B0、C0、D0、E0以及F0分别对应编码规则集合中的A、B、C、D、E和F。编码方式具体为:非通配符编码为1,通配符编码为0。
生成第一带权无向图。此时,第一带权无向图为已经生成的带权无向图中最后生成的带权无向图。图11c为本发明实施例提供的第一带权无向图。图11c所示的第一带权无向图中的顶点分别是A、B、C、D、E以及F。顶点A、B、C、D、E以及F分别对应一个子规则集合。顶点A对应的子规则集合包含规则A0。顶点A对应的子规则集合包含规则A0。顶点B对应的子规则集合包含规则B0。顶点C对应的子规则集合包含规则C0。顶点D对应的子规则集合包含规则D0。顶点E对应的子规则集合包含规则E0。顶点F对应的子规则集合包含规则F0。
参见图11c,第一带权无向图包含6个顶点,分别是顶点A、B、C、D、E和F。其中,图11c中的顶点A、B、C、D、E和F分别对应图11b中的编码规则A、B、C、D、E和F。第一阈值可以是1至8中的任意一个整数。本实施例将第一阈值确定为2。
根据第一带权无向图中任意两个顶点分别对应的编码规则执行按比特异或操作。执行按比特异或操作的结果为一个比特串,比特串中1的个数为上述任意两个顶点连接的边的权值。例如,顶点A、C对应编码规则分别是11101110和11101110。对顶点A、C对应编码规则执行按比特异或操作,结果为00000000。比特串中1的个数为0。也就是说,顶点A、C连接的边的权值为0。同样的,顶点A、B连接的边的权值为0。顶点B、C连接的边的权值为0。第一带权无向图中,其它的边的权值请参见图11c,此处不再赘述。根据图11c可以确定,权值最小的边的权值为0。权值最小的边的权值小于第一阈值,则需要确定用于生成新的顶点的边。可以随机确定顶点A、C连接的边、顶点A、B连接的边或者顶点B、C连接的边为用于生成新的顶点的边。本实施例中,选取顶点A、C连接的边为用于生成新的顶点的边,并根据新的顶点A&C生成图12b所示的带权无向图。此时,图12b所示的带权无向图为已经生成的带权无向图中最后生成的带权无向图。其中,顶点A&C对应的编码规则为针对用于生成新的顶点A&C的边的两个顶点,即顶点A和顶点C分别对应的编码规则执行按比特与操作得到的结果。此处,按比特与操作得到的结果为11101110。图12b所示的带权无向图中除顶点A&C之外的顶点为图11c所示带权无向图中的顶点,具体包括顶点B、D、E和F。关于图12b所示的带权无向图中的5个顶点所对应的编码规则,具体请参见图12a。
根据图12b所示的带权无向图中任意两个顶点分别对应的编码规则执行按比特异或操作。执行按比特异或操作的结果为一个比特串,比特串中1的个数为上述任意两个顶点连接的边的权值。例如,顶点A&C与顶点B连接的边的权值为0。关于图12b所示的带权无向图中的其它边的权值,请参见图12b。根据图12b可以看出,图12b所示的带权无向图中权值最小的边为顶点A&C与顶点B连接的边。权值最小的边的权值小于第一阈值。确定顶点A&C与顶点B连接的边为用于生成新的顶点的边。
根据顶点A&C与顶点B生成新的顶点A&C&B。在顶点A&C&B以及图12b所示的带权无向图的基础上生成图13b所示的带权无向图。此时,图13b所示的带权无向图为已经生成的带权无向图中最后生成的带权无向图。图13b所示的带权无向图中包括的四个顶点分别是顶点A&C&B、D、E以及F。图13a所示的编码规则集合中的四个编码规则与图13b所示的带权无向图中的四个顶点一一对应。对图12b所示的带权无向图的顶点A&C和B分别对应编码规则执行按比特与运算,按比特与运算的结果为顶点A&C&B对应的编码规则。
根据图13b所示的带权无向图中任意两个顶点分别对应的编码规则执行按比特异或操作。执行按比特异或操作的结果为一个比特串,比特串中1的个数为上述任意两个顶点连接的边的权值。例如,顶点E与顶点F连接的边的权值为1。关于图13b所示的带权无向图中的其它边的权值,请参见图13b。根据图13b可以看出,图13b所示的带权无向图中权值最小的边为顶点E与顶点F连接的边。权值最小的边的权值小于第一阈值。确定顶点E与顶点F连接的边为用于生成新的顶点的边。
根据顶点E与顶点F生成新的顶点E&F。在顶点E&F以及图13b所示的带权无向图的基础上生成图14b所示的带权无向图。图14b所示的带权无向图中包括的三个顶点分别是顶点A&C&B、E&F以及D。图14a所示的编码规则集合中的三个编码规则与图14b所示的带权无向图中的三个顶点一一对应。对图13b所示的带权无向图的顶点E和F对应的两条编码规则执行按比特与运算,按比特与运算的结果为顶点E&F对应的编码规则。
根据图14b所示的带权无向图中任意两个顶点分别对应的编码规则执行按比特异或操作。执行按比特异或操作的结果为一个比特串,比特串中1的个数为上述任意两个顶点连接的边的权值。例如,顶点A&C&B与顶点D连接的边的权值为3。关于图14b所示的带权无向图中的其它边的权值,请参见图14b。根据图14b可以看出,图14b所示的带权无向图中权值最小的边为顶点A&C&B与顶点D连接的边,以及顶点A&C&B与顶点E&F连接的边。权值最小的边的权值大于第一阈值。因此,图14b所示的带权无向图为最新生成的带权无向图。
为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
最新生成的带权无向图包括三个顶点,分别是顶点A&C&B、顶点E&F以及顶点D。
其中,顶点A&C&B对应的子规则集合包含规则A0、B0和C0。图15a为规则A0、B0和C0映射到以十进制为度量单位的二维几何空间的示意图。图15b为根据HyperCuts算法为顶点A&C&B对应的子规则集合生成的决策树的示意图。可以看出,规则A0、B0和C0都没有发生规则复制。
其中,顶点E&F对应的子规则集合包含规则E0和F0。图16a为规则E0和F0映射到以十进制为度量单位的二维几何空间的示意图。图16b为根据HyperCuts算法为顶点E&F对应的子规则集合生成的决策树的示意图。可以看出,规则E0和F0都没有发生规则复制。
其中,顶点D对应的子规则集合包含规则D0。图17a为规则D0映射到以十进制为度量单位的二维几何空间的示意图。图17b为根据HyperCuts算法为顶点D对应的子规则集合生成的决策树的示意图。可以看出,规则D0没有发生规则复制。
图18a为图11b所示的规则集合中的多条规则映射到以十进制为度量单位的二维几何空间的示意图。
图18b为根据HyperCuts算法针对图11b所示的规则集合生成的决策树的示意图。
根据图18b可以看出,在没有采用本实施例提供的方法对规则集合进行切分的情况下,规则D0、规则F0都发生了规则复制。因此,相对于现有技术,本实施例提供的方法可以降低规则复制发生的概率。
实施例三
图19为本发明实施例提供的一种决策树的生成装置的结构示意图。所述装置可以通过实施例一提供的方法实现。如图19所示,所述装置包括:
编码处理单元191,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元192,用于根据所述编码处理单元191生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元193,用于根据所述第一带权无向图生成单元192生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元194,用于根据所述边权值计算单元193的计算结果进行比较,如果第一带权无向图中权值最大的边的权值大于第一阈值,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最大的边的权值小于或者等于所述第一阈值时,向决策树生成单元195发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权值最大的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元195,用于根据所述比较单元194发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
如果所述已经生成的带权无向图中仅包括所述第一带权无向图,则所述第一带权无向图为所述已经生成的带权无向图中最后生成的带权无向图。
所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边可以只有一个,也可以有多个。
当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最大的边时,可以随机选择一个边,生成新的顶点。当有多个权值最大的边时,也可以分别计算每个边中的两个顶点分别对应的两个子规则集合所包含的规则的个数之和,根据多个权值最大边中两个顶点分别对应的两个子规则集合所包含的规则的个数之和最大的边生成新的顶点。
另外,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最大的边时,对于没有公共顶点的边(至少两个),可以分别生成新的顶点(至少两个),并根据新的顶点(至少两个)生成新的带权无向图。公共顶点是指多个权值最大的边中的两个或者多个边所共用的顶点。需要指出的是,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最大的边时,对于具有公共顶点的两个边,不能分别生成新的顶点。
通过本发明实施例提供的技术方案,对规则集合中的每个规则进行编码,得到编码规则集合。基于编码规则集合,创建带权无向图。对带权无向图中权值最大的边所对应的两个顶点进行合并,直至最新生成的带权无向图中权值最大的边的权值满足一定条件。最新生成的带权无向图中每个顶点分别对应一个子规则集合。通过上述方式,规则集合被切分为多个子规则集合。针对采用上述方案得到的多个子规则集合分别运行某一生成决策树的算法,例如Modular,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。因此,本发明实施例提供的技术方案降低了发生规则复制的概率。
此外,针对采用本发明实施例提供的装置得到的多个子规则集合分别运行某一生成决策树的算法,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。由上可以确定,每个子规则集合包含的规则的个数小于规则集合包含的规则的个数。因此,运行某一生成决策树的算法为多个子规则集合分别生成的多个决策树的高度小于或者等于运行同一生成决策树的算法为规则集合生成的一个决策树的高度。不考虑其他因素,决策树的高度越低,执行规则匹配的速度越快。因此,根据本实施例提供的装置得到的多棵决策树,针对多棵决策树并行执行规则匹配的速度高于或者等于针对一棵决策树单独执行规则匹配的速度。
可选的,
在所述第一片段包含一个字符的场景下:
如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。
上述操作可以通过所述第一函数执行。
可选的,
所述按比特操作可以为与操作、或操作或者异或操作。
可选的,
所述决策树生成单元用于通过Modular算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
下文以所述按比特操作为与操作,并且所述第一片段包含一个字符为例对本实施例提供的技术方案的进行具体分析。即如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。也就是说,第一片段可以为1、0或者通配符。为便于说明,下文将第一片段为1以及第一片段为0这两种情形统称为第一片段为非通配符。
第一函数用于将第一片段编码为第一编码片段。通过编码处理,对于规则集合中的每个规则来说,规则中的非通配符被编码为1;规则中的通配符被编码为0。对两条编码规则执行按比特与操作得到的比特串中,如果比特串中的某个位置的比特为1,则表明两条规则中位于对应位置的两个比特都是非通配符。将该位置作为基准位置,则不会发生规则复制。如果比特串中的某个位置的比特为0,则表明两条规则中对应位置的两个比特中至少有一个比特为通配符。将该位置作为基准位置,则必然会发生规则复制。
带权无向图的边的权值为对两条编码规则执行按比特与操作得到的比特串中比特为1的个数。因此,权值越大,则表明两条编码规则中,不会发生规则复制的并且能够作为基准位置的位置的个数越多。选择上述位置作为基准位置,能够避免规则复制。
图20为本发明实施例提供的另一种决策树的生成装置的结构示意图。所述装置可以通过实施例一提供的方法实现。如图20所示,所述装置包括:
编码处理单元201,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为0,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为1,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元202,用于根据所述编码处理单元201生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元203,用于根据所述第一带权无向图生成单元202生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元204,用于根据所述边权值计算单元203的计算结果进行比较,如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值时,向决策树生成单元205发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元205,用于根据所述比较单元204发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
如果已经生成的带权无向图中仅包括所述第一带权无向图,则所述第一带权无向图为所述已经生成的带权无向图中最后生成的带权无向图。
所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边可能只有一个,也可能有多个。
当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,可以随机选择一个边,生成新的顶点。当有多个权值最小的边时,也可以分别计算每个边中的两个顶点分别对应的两个子规则集合所包含的规则的个数之和,根据多个权值最小边中两个顶点分别对应的两个子规则集合所包含的规则的个数之和最大的边生成新的顶点。
另外,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,对于没有公共顶点的边(至少两个),可以分别生成新的顶点(至少两个),并根据新的顶点(至少两个)生成新的带权无向图。公共顶点是指多个权值最小的边中的两个或者多个边所共用的顶点。需要指出的是,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,对于具有公共顶点的两个边,不能分别生成新的顶点。
通过本发明实施例提供的技术方案,对规则集合中的每个规则进行编码,得到编码规则集合。基于编码规则集合,创建带权无向图。对带权无向图中权值最小的边所对应的两个顶点进行合并,直至最新生成的带权无向图中权值最小的边的权值满足一定条件。最新生成的带权无向图中每个顶点分别对应一个子规则集合。通过上述方式,规则集合被切分为多个子规则集合。针对采用上述方案得到的多个子规则集合分别运行某一生成决策树的算法,例如Modular,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。因此,本发明实施例提供的技术方案降低了发生规则复制的概率。
此外,针对采用本发明实施例提供的装置得到的多个子规则集合分别运行某一生成决策树的算法,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。由上可以确定,每个子规则集合包含的规则的个数小于规则集合包含的规则的个数。因此,运行某一生成决策树的算法为多个子规则集合分别生成的多个决策树的高度小于或者等于运行同一生成决策树的算法为规则集合生成的一个决策树的高度。不考虑其他因素,决策树的高度越低,执行规则匹配的速度越快。因此,根据本实施例提供的装置得到的多棵决策树,针对多棵决策树并行执行规则匹配的速度高于或者等于针对一棵决策树单独执行规则匹配的速度。
可选的,
所述按比特操作为与操作、或操作或者异或操作。
可选的,
在所述第一片段包含一个字符的场景下,
如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。
上述操作可以通过所述第一函数执行。
可选的,
所述决策树生成单元用于通过Modular算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
下文以所述按比特操作为或操作,并且所述第一片段包含一个字符为例对本实施例提供的技术方案的进行具体分析。即如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。也就是说,第一片段可以为1、0或者通配符。为便于说明,下文将第一片段为1以及第一片段为0这两种情形统称为第一片段为非通配符。
第一函数用于将第一片段编码为第一编码片段。通过编码处理,对于规则集合中的每个规则来说,规则中的非通配符被编码为0;规则中的通配符被编码为1。
对两条编码规则执行按比特或操作得到的比特串中,如果比特串中的某个位置的比特为1,则表明两条规则中位于对应位置的两个比特中至少有一个比特为通配符。将该位置作为基准位置,则会发生规则复制。如果比特串中的某个位置的比特为0,则表明两条规则中对应位置的两个比特都为非通配符。将该位置作为基准位置,则不会发生规则复制。
带权无向图的边的权值为对两条编码规则执行按比特或操作得到的比特串中比特为1的个数。因此,权值越小,则表明两条编码规则中,不会发生规则复制的并且能够作为基准位置的位置的个数越多。选择上述位置作为基准位置,能够避免规则复制。
下面结合图22对本发明实施例提供的技术方案进行举例说明。
下文以规则集合中每个规则包含多个片段,且每个片段包括1个字符的场景为例进行说明。图22所示的装置包括:
编码处理单元221,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数。
图3a为一个规则集合以及对应的编码规则集合的示意图。其中,规则a10、a20、a30、a40、a50、a60分别对应编码规则a1、a2、a3、a4、a5、a6。
图3a采用的编码方式为:将规则中的“*”编码为0,将规则中的非“*”编码为1。其中,“*”是一种通配符,本实施例中“*”的含义为在规则中该比特的取值可以为0也可以为1。
第一带权无向图生成单元222,用于根据所述编码处理单元221生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则。
边权值计算单元223,用于根据所述第一带权无向图生成单元222生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值。
图3b为基于图3a所示的编码规则集合生成的第一带权无向图。其中,编码规则a1、a2、a3、a4、a5、a6分别对应第一带权无向图中的顶点a1、a2、a3、a4、a5、a6。本实施例中,第一带权无向图是首次生成的带权无向图。如图3b所示的带权无向图中:每个顶点对应一编码规则;连接任一边的两个顶点的边的权值,可通过对这两个顶点对应的编码规则的执行按比特与操作得到。其中,按比特与操作的结果为一个比特串。边的权值为按比特与操作的结果中1的个数。将与所述任一边连接的两个顶点分别对应的所述编码规则执行按比特与操作,得到第一运算结果;统计所述第一运算结果中1的个数。例如,第一带权无向图的顶点a1和a3分别对应编码规则a1和a3。针对编码规则a1和a3执行按比特与操作,得到的结果中1的个数为4。因此,第一带权无向图中连接顶点a1和a3的边的权值为4。参见图3b,第一带权无向图中权值最大的边为连接顶点a1和a3的边。
第一比较单元224,用于根据所述边权值计算单元223的计算结果进行比较,如果第一带权无向图中权值最大的边的权值大于第一阈值,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数,如果是,则向新的顶点生成单元225发送触发信号;否则,向决策树生成单元228发送触发信号。
第一阈值为十进制0至7之间的整数。
根据图3a可以看出,通过编码处理,对于规则集合中的每个规则来说,规则中的非通配符被编码为1。规则中的通配符被编码为0。对两条编码规则执行按比特与操作得到的比特串中,如果比特串中的某个位置的比特为1,则表明两条规则中位于对应位置的两个比特都是非通配符。将该位置作为基准位置,则不会发生规则复制。如果比特串中的某个位置的比特为0,则表明两条规则中对应位置的两个比特中至少有一个比特为通配符。将该位置作为基准位置,则必然会发生规则复制。
带权无向图的边的权值为对两条编码规则执行按比特与操作得到的比特串中比特为1的个数。因此,权值越大,则表明两条编码规则中,不会发生规则复制的并且能够作为基准位置的位置的个数越多。选择上述位置作为基准位置,能够避免规则复制。图3b所示的第一带权无向图中,顶点a1和a3连接的边的权值最大。顶点a1和a3分别对应编码规则a1和a3。因此,编码规则a1和a3中不会发生规则复制的并且能够作为基准位置的位置的个数最多,为4个。选择上述4个位置中的任一位置作为基准位置,能够避免规则复制。
图3b中,顶点a1和a3分别对应两个子规则集合,其中,顶点a1对应的子规则集合中包含规则a10。顶点a3对应的子规则集合中包含规则a30。图4b所述的带权无向图中,顶点a1&a3对应的子规则集合中包含规则a10和a30。对于顶点a1&a3对应的子规则集合所包含的2个规则,一共有四个4个位置可以作为不发生规则复制的基准位置。因此,针对顶点a1&a3对应的子规则集合运行生成决策树的算法,例如Modular,并生成决策树时,发生规则复制的概率较低。
需要说明的是,第一带权无向图中,顶点a3和a4连接的边的权值也是4。因此,顶点a3和a4连接的边也是第一带权无向图中权值最大的边。可以从顶点a3和a4连接的边以及顶点a3和a1连接的边中随机选取其中一条边作为所述待消边。例如,本发明实施例中,确定顶点a3和a1连接的边为用于生成新的顶点的边。
新的顶点生成单元225,用于根据已经生成的带权无向图中最后生成的带权无向图中权值最大的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值。
例如:在图4b所示的带权无向图还没生成之前,图3b所示的带权无向图为已经生成的带权无向图中最后生成的带权无向图。对图3b所示的带权无向图中的顶点a1和a3分别对应的编码规则进行按比特与运算,得到图4b所示的带权无向图中顶点a1&a3所对应的编码规则,进而得到图4a所示的更新后的编码规则集合。图4a所示的编码规则集合包含的多个编码规则分别与图4b所示的最新生成的带权无向图中的多个顶点一一对应。此时,图4b所示的带权无向图为最新生成的带权无向图。计算如图4b所示的带权无向图中各边的权值。计算方法同上,在此不再赘述。
第二比较单元226,用于判断所述最新生成的带权无向图中权值最大的边的权值是否小于或等于第一阈值,如果是,则向新的顶点生成单元225发送触发信号;否则,向决策树生成单元228发送触发信号。
例如:预先设置所述第一阈值等于1。在图5b所示的带权无向图生成之前,图4b所示的带权无向图为已经生成的带权无向图中最后生成的带权无向图。图4b所示的带权无向图中权值最大的边为顶点a2和a5连接的边。顶点a2和a5连接的边的权值为3。也就是说权值最的边的权值大于所述第一阈值。针对顶点a2和a5分别对应的编码规则执行按比特与操作,按比特与操作的结果为新的顶点所对应的编码规则。以新的顶点替换图4b所示的带权无向图中顶点a2和a5,得到图5b所示的带权无向图。此时,图5b为所述最新生成的带权无向图。图5b所示的带权无向图所包含的多个顶点与图5a所示的编码规则集合中所包含的多个编码规则一一对应。根据图5a所示的编码规则计算图5b所示的带权无向图中各边的权值。
又例如:在图6b所示的带权无向图生成之前,图5b为已经生成的带权无向图中最后生成的带权无向图。图5b所示的带权无向图中权值最大的边的权值为2。也就是说,权值最大的边的权值大于所述第一阈值。针对顶点a1&a2和a4分别对应的编码规则执行按比特与操作,按比特与操作的结果为新的顶点所对应的编码规则。以新的顶点替换图5b中的顶点a1&a2和a4,得到图6b所示的带权无向图。此时,图6b即为所述最新生成的带权无向图。图6b所示的带权无向图包含的3个顶点与图6a所示的编码规则集合包含的3个编码规则一一对应。根据图6a所示的编码规则计算图6b所示的带权无向图中各边的权值。
图6b所示的带权无向图中权值最大的边的权值为1,即小于或等于所述第一阈值。因此,至此已完成规则集合的切分。图6b所示的带权无向图中每个顶点分别对应的子规则集合即为图3a所示的规则集合被切分后的多个子规则集合。
决策树生成单元228,用于为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
图7b所示的带权无向图的顶点为2个,分别为顶点a1&a3&a4&a6以及顶点a2&a5。顶点a1&a3&a4&a6和a2&a5分别对应两个子规则集合。也就是说图3a所示的规则集被切分为两个子规则集合。具体如图7c所示。其中,顶点a1&a3&a4&a6对应的子规则集合包括:规则a10、a30、a40和a60,即{a10,a30,a40,a60};顶点a2&a5对应的子规则集包括:规则a20和a50,即{a20,a50}。根据Modular为图7c所示的两个子规则集合分别生成决策树。
如果预设流分类器最多支持对两棵决策树并行执行规则匹配,则本实施例将图3a所示的规则集合切分为两个子规则集合,具体请参见图7c。通过Modular算法为图7c所示的两个子规则集合分别生成决策树。具体请参见图8a所示的决策树和图8b所示的决策树。图9所示的决策树为通过Modular算法为图3a所示的规则集合生成决策树。图9中虚线所标识的位置为基准位置。如图所示,基准位置为0的规则被放到左侧的下一级节点;基准位置为1的规则被放到右侧的下一级节点;基准位置为*的规则既被放到左侧的下一级节点,也被放到右侧的下一级节点。以此类推。将图8a所示的决策树和图8b所示的决策树与图9所示的决策树进行比较,可知:图9所示的决策树的高度较高,且发生规则复制的概率较高。例如规则a10、a20、a30和a40都涉及规则复制。根据本实施例提供的装置生成的决策树,决策树的高度较低,发生规则复制的概率较低。在图8a和图8b所示的决策树中没有出现规则复制的现象。因此,本实施例提供的装置生成的决策树中规则复制的概率较低,节省了存储决策树各节点所需的存储容量。
采用本实施例提供的装置将规则集合切分为多个子规则集合,并运行用于生成决策树的算法为各子规则集合分别生成决策树。规则集合包含多条规则。举例来说,规则集合中包含的规则可以是目的网际协议地址。目的网际协议地址可以是32比特,也可以是128比特。决策树生成后,网络设备收到网际协议分组。流分类器可以对收到的网际协议分组进行解析,获得网际协议分组的目的网际协议地址。流分类器可以根据目的网际协议地址,在多个决策树中并行执行规则匹配。如果在多个决策树中找到与网际协议分组的目的网际协议地址匹配的规则,则执行与该规则对应的动作。其中,对每棵决策树进行匹配查找的装置与现有技术相同,在此不再赘述。另外,如果得到的与网际协议分组匹配的规则有多个,可根据各规则的优先级,确定优先级最高的规则作为与该网际协议分组最终匹配规则,对该网际协议分组执行与该最终匹配规则对应的动作,例如:通过、丢弃、进行流量限制、进行带宽保证等。
当新的规则增加到规则集合时,本实施例提供的装置可以仅对新增的规则进行切分处理。例如,采用相同的编码方法对新增的规则进行编码,得到与新增的规则对应的新增的编码规则,并基于新增的编码规则与原来的规则集合对应的编码规则集合生成带权无向图。基于带权无向图确定新增的规则是属于原来的规则集合对应的多个子规则集合中的一个子规则集合,还是属于一个新的子规则集合。如果是前者,可更新新增的规则所属的子规则集合,并重新生成决策树;如果是后者,可基于新的子规则集合生成一棵决策树。由此可见,本实施例提供的装置中,当新的规则增加到规则集合时,无需针对原来的规则集合被切分为的所有子规则集合都重新生成决策树,而只需针对新的规则所属的子规则集合重新生成决策树,或者新的规则对应的新的子规则集合生成决策树。
实施例四
图21为本发明实施例提供的一种决策树的生成装置的结构示意图。所述装置可以通过实施例二提供的方法实现。如图21所示,所述装置包括:
编码处理单元211,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元212,用于根据所述编码处理单元211生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元213,用于根据所述第一带权无向图生成单元212生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元214,用于根据所述边权值计算单元213的计算结果进行比较,如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值时,向决策树生成单元215发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元215,用于根据所述比较单元214发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点。所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值。所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值。所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则。所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值。所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则。所述第二边为所述新的带权无向图中任意一个边。所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值。所述按比特操作为与操作、或操作或者异或操作等。
如果所述已经生成的带权无向图中仅包括所述第一带权无向图,则所述第一带权无向图为所述已经生成的带权无向图中最后生成的带权无向图。
所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边可以只有一个,也可以有多个。
当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,可以随机选择一个边,生成新的顶点。当有多个权值最小的边时,也可以分别计算每个边中的两个顶点分别对应的两个子规则集合所包含的规则的个数之和,根据多个权值最小边中两个顶点分别对应的两个子规则集合所包含的规则的个数之和最大的边生成新的顶点。
另外,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,对于没有公共顶点的边(至少两个),可以分别生成新的顶点(至少两个),并根据新的顶点(至少两个)生成新的带权无向图。公共顶点是指多个权值最小的边中的两个或者多个边所共用的顶点。需要指出的是,当所述已经生成的带权无向图中最后生成的带权无向图中有多个权值最小的边时,对于具有公共顶点的两个边,不能分别生成新的顶点。
通过本发明实施例提供的技术方案,对规则集合中的每个规则进行编码,得到编码规则集合。基于编码规则集合,创建带权无向图。对带权无向图中权值最小的边所对应的两个顶点进行合并,直至最新生成的带权无向图中权值最小的边的权值满足一定条件。最新生成的带权无向图中每个顶点分别对应一个子规则集合。通过上述方式,规则集合被切分为多个子规则集合。针对采用上述方案得到的多个子规则集合分别运行某一生成决策树的算法,例如HyperCuts,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。因此,本发明实施例提供的技术方案降低了发生规则复制的概率。
此外,针对采用本发明实施例提供的装置得到的多个子规则集合分别运行某一生成决策树的算法,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。由上可以确定,每个子规则集合包含的规则的个数小于规则集合包含的规则的个数。因此,运行某一生成决策树的算法为多个子规则集合分别生成的多个决策树的高度小于或者等于运行同一生成决策树的算法为规则集合生成的一个决策树的高度。不考虑其他因素,决策树的高度越低,执行规则匹配的速度越快。因此,根据本实施例提供的装置得到的多棵决策树,针对多棵决策树并行执行规则匹配的速度高于或者等于针对一棵决策树单独执行规则匹配的速度。
可选的,
所述按比特操作可以为与操作、或操作或者异或操作。
可选的,
在所述第一片段包含一个字符的场景下:
如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。
上述操作可以通过所述第一函数执行。
可选的,
所述决策树生成单元215用于通过HyperCuts算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
下文以所述按比特操作为异或操作,所述第一片段包含一个字符,并且规则中的非通配符和通配符被分别编码为1以及0为例对本实施例提供的技术方案的进行具体分析。也就是说,如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。也就是说,第一片段可以为1、0或者通配符。为便于说明,下文将第一片段为1以及第一片段为0这两种情形统称为第一片段为非通配符。
本发明实施例提供的技术方案中,针对经过规则切分得到的多个子规则集合,根据HyperCuts算法生成决策树。规则切分涉及到规则、编码规则以及按比特异或操作。下文对规则切分涉及到的规则、编码规则以及按比特异或操作这三个事项之间的关系进行说明:
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果都是非通配符,则都被编码为1。也就是说,对两条规则执行编码操作后,得到的两条编码规则中相应位置的两个比特都是1。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为0。
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果一个是非通配符,另一个是通配符,则分别被编码为1以及0。也就是说,对两条规则执行编码操作后,得到的两个编码规则中相应位置的两个比特分别是1以及0。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为1。
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果都是通配符,则都被编码为0。也就是说,对两条规则执行编码操作后,得到的两个编码规则中相应位置的两个比特都是0。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为0。
从以上分析可以看出,通过对两条编码规则执行异或操作,得到的结果为两条规则中出现第一情况的次数。所述第一情况为:两条编码规则位置相同的两个比特中,一个比特为通配符,一个为非通配符。如果选择出现所述第一情况的比特位置作为基准位置,则会发生规则复制。带权无向图的边的权值为对两条编码规则执行按比特异或操作得到的比特串中比特为1的个数。也就是说,权值反映了出现第一情况的次数。显然,第一情况的次数越少,不会发生规则复制的并且能够作为基准位置的个数越多。选择上述基准位置进行规则切分,能够避免规则复制。
下文以所述按比特操作为异或操作,所述第一片段包含一个字符,并且规则中的非通配符和通配符被分别编码为0以及1为例对本实施例提供的技术方案的进行具体分析。也就是说,如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。也就是说,第一片段可以为1、0或者通配符。为便于说明,下文将第一片段为1以及第一片段为0这两种情形统称为第一片段为非通配符。
本发明实施例提供的技术方案中,针对经过规则切分得到的多个子规则集合,根据HyperCuts算法生成决策树。规则切分涉及到规则、编码规则以及按比特异或操作。下文对规则切分涉及到的规则、编码规则以及按比特异或操作这三个事项之间的关系进行说明:
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果都是非通配符,则都被编码为0。也就是说,对两条规则执行编码操作后,得到的两条编码规则中相应位置的两个比特都是0。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为0。
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果一个是非通配符,另一个是通配符,则分别被编码为0以及1。也就是说,对两条规则执行编码操作后,得到的两个编码规则中相应位置的两个比特分别是0以及1。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为1。
对两条规则分别进行编码,得到两条编码规则。两条规则中,位置相同的两个比特,如果都是通配符,则都被编码为1。也就是说,对两条规则执行编码操作后,得到的两个编码规则中相应位置的两个比特都是1。因此,对两条编码规则中相应位置的两个比特执行按比特异或操作,其结果为0。
从以上分析可以看出,通过对两条编码规则执行异或操作,得到的结果为两条规则中出现第二情况的次数。所述第二情况为:两条编码规则位置相同的两个比特中,一个比特为通配符,一个为非通配符。如果选择出现所述第二情况的比特位置作为基准位置,则会发生规则复制。带权无向图的边的权值为对两条编码规则执行按比特异或操作得到的比特串中比特为1的个数。也就是说,权值反映了出现第二情况的次数。显然,第二情况的次数越少,不会发生规则复制的并且能够作为基准位置的个数越多。选择上述基准位置进行规则切分,能够避免规则复制。
此外,针对采用本发明实施例提供的装置得到的多个子规则集合分别运行某一生成决策树的算法,得到的多个决策树中规则复制的概率低于针对规则集合运行同一生成决策树的算法得到的一个决策树中规则复制的概率。由上可以确定,每个子规则集合包含的规则的个数小于规则集合包含的规则的个数。因此,运行某一生成决策树的算法为多个子规则集合分别生成的多个决策树的高度小于或者等于运行同一生成决策树的算法为规则集合生成的一个决策树的高度。不考虑其他因素,决策树的高度越低,执行规则匹配的速度越快。因此,根据本实施例提供的装置得到的多棵决策树,针对多棵决策树并行执行规则匹配的速度高于或者等于针对一棵决策树单独执行规则匹配的速度。
下面结合附图对本发明实施例提供的技术方案进行举例说明。
图11b为规则集合以及对应的编码规则集合的示意图。该规则集合包括规则A0、B0、C0、D0、E0以及F0。每条规则的长度都是8个比特。其中,规则集合中的规则A0、B0、C0、D0、E0以及F0分别对应编码规则集合中的A、B、C、D、E和F。编码方式具体为:非通配符编码为1,通配符编码为0。
HyperCuts通过将规则的不同片段划分到不同维度的几何空间的方式来构建决策树。图11a为图11b所示的规则集合中的6条规则映射到以十进制为度量单位的二维几何空间的示意图。具体来说,图11b所示的规则集合包含的6条规则,每条规则的高4比特和低4比特分别映射到图11a所示的二维几何空间的X轴以及Y轴。
生成第一带权无向图。此时,第一带权无向图为已经生成的带权无向图中最后生成的带权无向图。图11c为本发明实施例提供的第一带权无向图。图11c所示的第一带权无向图中的顶点分别是A、B、C、D、E以及F。顶点A、B、C、D、E以及F分别对应一个子规则集合。顶点A对应的子规则集合包含规则A0。顶点A对应的子规则集合包含规则A0。顶点B对应的子规则集合包含规则B0。顶点C对应的子规则集合包含规则C0。顶点D对应的子规则集合包含规则D0。顶点E对应的子规则集合包含规则E0。顶点F对应的子规则集合包含规则F0。
参见图11c,第一带权无向图包含6个顶点,分别是顶点A、B、C、D、E和F。其中,图11c中的顶点A、B、C、D、E和F分别对应图11b中的编码规则A、B、C、D、E和F。第一阈值可以是1至8中的任意一个整数。本实施例将第一阈值确定为2。
根据第一带权无向图中任意两个顶点分别对应的编码规则执行按比特异或操作。执行按比特异或操作的结果为一个比特串,比特串中1的个数为上述任意两个顶点连接的边的权值。例如,顶点A、C对应编码规则分别是11101110和11101110。对顶点A、C对应编码规则执行按比特异或操作,结果为00000000。比特串中1的个数为0。也就是说,顶点A、C连接的边的权值为0。同样的,顶点A、B连接的边的权值为0。顶点B、C连接的边的权值为0。第一带权无向图中,其它的边的权值请参见图11c,此处不再赘述。根据图11c可以确定,权值最小的边的权值为0。权值最小的边的权值小于第一阈值,则需要确定用于生成新的顶点的边。可以随机确定顶点A、C连接的边、顶点A、B连接的边或者顶点B、C连接的边为用于生成新的顶点的边。本实施例中,选取顶点A、C连接的边为用于生成新的顶点的边,并根据新的顶点A&C生成图12b所示的带权无向图。此时,图12b所示的带权无向图为已经生成的带权无向图中最后生成的带权无向图。其中,顶点A&C对应的编码规则为针对用于生成新的顶点A&C的边的两个顶点,即顶点A和顶点C分别对应的编码规则执行按比特与运算得到的结果。此处,按比特与运算得到的结果为11101110。图12b所示的带权无向图中除顶点A&C之外的顶点为图11c所示带权无向图中的顶点,具体包括顶点B、D、E和F。关于图12b所示的带权无向图中的5个顶点所对应的编码规则,具体请参见图12a。
根据图12b所示的带权无向图中任意两个顶点分别对应的编码规则执行按比特异或操作。执行按比特异或操作的结果为一个比特串,比特串中1的个数为上述任意两个顶点连接的边的权值。例如,顶点A&C与顶点B连接的边的权值为0。关于图12b所示的带权无向图中的其它边的权值,请参见图12b。根据图12b可以看出,图12b所示的带权无向图中权值最小的边为顶点A&C与顶点B连接的边。权值最小的边的权值小于第一阈值。确定顶点A&C与顶点B连接的边为用于生成新的顶点的边。
根据顶点A&C与顶点B生成新的顶点A&C&B。在顶点A&C&B以及图12b所示的带权无向图的基础上生成图13b所示的带权无向图。此时,图13b所示的带权无向图为已经生成的带权无向图中最后生成的带权无向图。图13b所示的带权无向图中包括的四个顶点分别是顶点A&C&B、D、E以及F。图13a所示的编码规则集合中的四个编码规则与图13b所示的带权无向图中的四个顶点一一对应。对图12b所示的带权无向图的顶点A&C和B分别对应编码规则执行按比特与运算,按比特与运算的结果为顶点A&C&B对应的编码规则。
根据图13b所示的带权无向图中任意两个顶点分别对应的编码规则执行按比特异或操作。执行按比特异或操作的结果为一个比特串,比特串中1的个数为上述任意两个顶点连接的边的权值。例如,顶点E与顶点F连接的边的权值为1。关于图13b所示的带权无向图中的其它边的权值,请参见图13b。根据图13b可以看出,图13b所示的带权无向图中权值最小的边为顶点E与顶点F连接的边。权值最小的边的权值小于第一阈值。确定顶点E与顶点F连接的边为用于生成新的顶点的边。
根据顶点E与顶点F生成新的顶点E&F。在顶点E&F以及图13b所示的带权无向图的基础上生成图14b所示的带权无向图。图14b所示的带权无向图中包括的三个顶点分别是顶点A&C&B、E&F以及D。图14a所示的编码规则集合中的三个编码规则与图14b所示的带权无向图中的三个顶点一一对应。对图13b所示的带权无向图的顶点E和F对应的两条编码规则执行按比特与运算,按比特与运算的结果为顶点E&F对应的编码规则。
根据图14b所示的带权无向图中任意两个顶点分别对应的编码规则执行按比特异或操作。执行按比特异或操作的结果为一个比特串,比特串中1的个数为上述任意两个顶点连接的边的权值。例如,顶点A&C&B与顶点D连接的边的权值为3。关于图14b所示的带权无向图中的其它边的权值,请参见图14b。根据图14b可以看出,图14b所示的带权无向图中权值最小的边为顶点A&C&B与顶点D连接的边,以及顶点A&C&B与顶点E&F连接的边。权值最小的边的权值大于第一阈值。因此,图14b所示的带权无向图为最新生成的带权无向图。
为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
最新生成的带权无向图包括三个顶点,分别是顶点A&C&B、顶点E&F以及顶点D。
其中,顶点A&C&B对应的子规则集合包含规则A0、B0和C0。图15a为规则A0、B0和C0映射到以十进制为度量单位的二维几何空间的示意图。图15b为根据HyperCuts算法为顶点A&C&B对应的子规则集合生成的决策树的示意图。可以看出,规则A0、B0和C0都没有发生规则复制。
其中,顶点E&F对应的子规则集合包含规则E0和F0。图16a为规则E0和F0映射到以十进制为度量单位的二维几何空间的示意图。图16b为根据HyperCuts算法为顶点E&F对应的子规则集合生成的决策树的示意图。可以看出,规则E0和F0都没有发生规则复制。
其中,顶点D对应的子规则集合包含规则D0。图17a为规则D0映射到以十进制为度量单位的二维几何空间的示意图。图17b为根据HyperCuts算法为顶点D对应的子规则集合生成的决策树的示意图。可以看出,规则D0没有发生规则复制。
图18a为图11b所示的规则集合中的多条规则映射到以十进制为度量单位的二维几何空间的示意图。
图18b为根据HyperCuts算法针对图11b所示的规则集合生成的决策树的示意图。
根据图18b可以看出,在没有采用本实施例提供的方案对规则集合进行切分的情况下,规则D0、规则F0都发生了规则复制。因此,相对于现有技术,本实施例提供的装置可以降低规则复制发生的概率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明各个实施例中的各功能单元可以集成在一个单元中,也可以是各个功能单元单独物理存在,或者是两个或两个以上功能单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (19)
1.一种决策树的生成方法,其特征在于,包括:
根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
如果第一带权无向图中权值最大的边的权值大于第一阈值,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到最新生成的带权无向图中权值最大的边的权值小于或者等于所述第一阈值:
根据已经生成的带权无向图中最后生成的带权无向图中权值最大的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
2.根据权利要求1所述的方法,其特征在于,所述按比特操作为与操作、或操作或者异或操作。
3.根据权利要求1或2所述的方法,其特征在于,在所述第一片段包含一个字符的场景下:
如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树包括:
通过Modular算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
5.一种决策树的生成方法,其特征在于,包括:
根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为0,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为1,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
6.根据权利要求5所述的方法,其特征在于,所述按比特操作为与操作、或操作或者异或操作。
7.根据权利要求5或6所述的方法,其特征在于,在所述第一片段包含一个字符的场景下,
如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。
8.根据权利要求5至7中任一所述的方法,其特征在于,所述为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树包括:
通过Modular算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
9.一种决策树的生成方法,其特征在于,包括:
根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
10.根据权利要求9所述的方法,其特征在于,所述按比特操作为与操作、或操作或者异或操作。
11.根据权利要求9或10所述的方法,其特征在于,在所述第一片段包含一个字符的场景下:
如果所述第一片段中的字符为1,则所述第一编码片段为0;如果所述第一片段中的字符为0,则所述第一编码片段为0;如果所述第一片段中的字符为通配符,则所述第一编码片段为1。
12.根据权利要求9或10所述的方法,其特征在于,在所述第一片段包含一个字符的场景下:
如果所述第一片段中的字符为1,则所述第一编码片段为1;如果所述第一片段中的字符为0,则所述第一编码片段为1;如果所述第一片段中的字符为通配符,则所述第一编码片段为0。
13.根据权利要求9至12中任一所述的方法,其特征在于,所述为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树包括:
通过HyperCuts算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
14.一种决策树的生成装置,其特征在于,包括:
编码处理单元,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元,用于根据所述编码处理单元生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元,用于根据所述第一带权无向图生成单元生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元,用于根据所述边权值计算单元的计算结果进行比较,如果第一带权无向图中权值最大的边的权值大于第一阈值,所述第一阈值为大于等于0并且小于等于X-1的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最大的边的权值小于或者等于所述第一阈值时,向决策树生成单元发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权值最大的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最大的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元,用于根据所述比较单元发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
15.根据权利要求14所述的装置,其特征在于,
所述决策树生成单元用于通过Modular算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
16.一种决策树的生成装置,其特征在于,包括:
编码处理单元,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为0,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为1,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元,用于根据所述编码处理单元生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元,用于根据所述第一带权无向图生成单元生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元,用于根据所述边权值计算单元的计算结果进行比较,如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值时,向决策树生成单元发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元,用于根据所述比较单元发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
17.根据权利要求16所述的装置,其特征在于,
所述决策树生成单元用于通过Modular算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
18.一种决策树的生成装置,其特征在于,包括:
编码处理单元,用于根据规则集合生成编码规则集合;所述规则集合包含多个规则,每个规则为包含0、1或者通配符的字符串,所述多个规则中任意两个规则互不相等;所述编码规则集合包括多个编码规则,所述多个编码规则中任意两个编码规则互不相等;所述多个编码规则中每个编码规则对应所述多个规则中的至少一个,所述多个规则中每个规则对应所述多个编码规则中的一个;第一规则对应的编码规则是根据第一函数对所述第一规则进行编码得到的,所述第一规则是所述多个规则中的任意一个,所述第一函数用于将所述第一规则中的多个片段替换为多个编码片段,进而得到第一编码规则;所述第一规则由所述多个片段组成,每个片段包含至少一个字符;所述第一编码规则由所述多个编码片段组成,每个编码片段为一个比特,所述多个片段与所述多个编码片段一一对应,第一片段在所述第一规则中的位置与第一编码片段在所述第一编码规则中的位置一致;所述第一片段为所述多个片段中的任意一个片段;所述第一编码片段为所述多个编码片段中与所述第一片段对应的一个编码片段;所述第一规则为所述第一函数的变量;所述第一编码规则为所述第一函数的值;所述第一函数还用于根据所述第一片段计算所述第一编码片段;在所述第一片段包含至少两个字符的场景下,如果所述第一片段中通配符的个数大于或者等于N,则所述第一编码片段为1,如果所述第一片段中通配符的个数小于N,则所述第一编码片段为0,N为大于或者等于1并且小于或者等于M的整数,M为所述第一片段中的符号的个数;
第一带权无向图生成单元,用于根据所述编码处理单元生成的所述编码规则集合生成第一带权无向图;所述第一带权无向图包括多个顶点,所述多个顶点与所述多个编码规则一一对应,所述多个顶点中每个顶点对应一个子规则集合;第一顶点对应的子规则集合包含所述多个规则中所有与第一编码规则对应的规则;所述第一顶点为所述第一带权无向图中的任意一个顶点;所述第一编码规则为所述多个编码规则中与所述第一顶点对应的编码规则;
边权值计算单元,用于根据所述第一带权无向图生成单元生成的所述所述第一带权无向图计算所述第一带权无向图中每个边的权值;连接所述第一带权无向图中任意两个顶点的边为所述第一带权无向图的边;第一边的权值为以第二编码规则和第三编码规则为变量得到的第二函数的值;所述第一边的两个顶点分别对应所述第二编码规则和所述第三编码规则;所述第一边为所述第一带权无向图中任意一个边;所述第二函数用于对所述第二编码规则与所述第三编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第二函数的值;
比较单元,用于根据所述边权值计算单元的计算结果进行比较,如果第一带权无向图中权值最小的边的权值小于第一阈值,所述第一阈值为大于等于1并且小于等于X的整数,X为所述第一编码规则中比特的个数,则循环执行下述操作,直到当最新生成的带权无向图中权值最小的边的权值大于或者等于所述第一阈值时,向决策树生成单元发送触发信号:
根据已经生成的带权无向图中最后生成的带权无向图中权值最小的边生成新的顶点,并根据所述新的顶点生成新的带权无向图;所述新的带权无向图包括所述新的顶点以及所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点之外的所有的顶点;所述新的顶点对应的编码规则为以所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的第四编码规则和第五编码规则为变量得到的第三函数的值;所述第三函数用于对所述第四编码规则与所述第五编码规则执行按比特与操作,按比特与操作的结果为所述第三函数的值;所述新的顶点对应的子规则集合包括所述已经生成的带权无向图中最后生成的带权无向图中权值最小的边的两个顶点分别对应的子规则集合中的所有规则;所述新的带权无向图中第二边的权值为以第六编码规则和第七编码规则为变量得到的第四函数的值;所述第二边的两个顶点分别对应所述第六编码规则和所述第七编码规则;所述第二边为所述新的带权无向图中任意一个边;所述第四函数用于对所述第六编码规则与所述第七编码规则执行按比特操作,计算按比特操作的结果中1的个数,按比特操作的结果中1的个数为所述第四函数的值;
所述决策树生成单元,用于根据所述比较单元发送的所述触发信号为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
19.根据权利要求18所述的装置,其特征在于,
所述决策树生成单元用于通过HyperCuts算法为所述最新生成的带权无向图中的每个顶点对应的子规则集合分别生成决策树。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210095978.1A CN102664787B (zh) | 2012-04-01 | 2012-04-01 | 决策树的生成方法和装置 |
EP13772797.0A EP2819355B1 (en) | 2012-04-01 | 2013-03-22 | Method and device for generating decision tree |
PCT/CN2013/073036 WO2013149555A1 (zh) | 2012-04-01 | 2013-03-22 | 决策树的生成方法和装置 |
US14/497,720 US10026039B2 (en) | 2012-04-01 | 2014-09-26 | Method and apparatus for generating decision tree |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210095978.1A CN102664787B (zh) | 2012-04-01 | 2012-04-01 | 决策树的生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102664787A true CN102664787A (zh) | 2012-09-12 |
CN102664787B CN102664787B (zh) | 2014-10-08 |
Family
ID=46774205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210095978.1A Expired - Fee Related CN102664787B (zh) | 2012-04-01 | 2012-04-01 | 决策树的生成方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10026039B2 (zh) |
EP (1) | EP2819355B1 (zh) |
CN (1) | CN102664787B (zh) |
WO (1) | WO2013149555A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013149555A1 (zh) * | 2012-04-01 | 2013-10-10 | 华为技术有限公司 | 决策树的生成方法和装置 |
WO2015027412A1 (zh) * | 2013-08-28 | 2015-03-05 | 华为技术有限公司 | 一种复杂图的处理方法和设备 |
CN104573194A (zh) * | 2014-12-20 | 2015-04-29 | 西安工业大学 | 一种装配序列规划中子装配体的识别方法 |
CN106230725A (zh) * | 2016-07-14 | 2016-12-14 | 杭州迪普科技有限公司 | 网包规则集的分类方法及装置 |
WO2017107215A1 (zh) * | 2015-12-25 | 2017-06-29 | 华为技术有限公司 | 一种数据中心内服务功能体部署方法、装置及控制器 |
CN107318205A (zh) * | 2017-08-07 | 2017-11-03 | 广汉阿拉丁科技有限公司 | 基于ZigBee技术的近距离灯具控制方法 |
CN108804593A (zh) * | 2018-05-28 | 2018-11-13 | 西安理工大学 | 基于图谱和可达路径数的无向加权图的子图查询方法 |
CN110414567A (zh) * | 2019-07-01 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和电子设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11244502B2 (en) * | 2017-11-29 | 2022-02-08 | Adobe Inc. | Generating 3D structures using genetic programming to satisfy functional and geometric constraints |
US10673765B2 (en) | 2018-09-11 | 2020-06-02 | Cisco Technology, Inc. | Packet flow classification in spine-leaf networks using machine learning based overlay distributed decision trees |
EP3716353A1 (de) | 2019-03-25 | 2020-09-30 | Hilti Aktiengesellschaft | Akkufallschutz |
CN112784510A (zh) * | 2021-03-10 | 2021-05-11 | 国微集团(深圳)有限公司 | 基于均衡权值和最小边割的条件循环电路分割方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937336B1 (en) * | 2007-06-29 | 2011-05-03 | Amazon Technologies, Inc. | Predicting geographic location associated with network address |
CN102054002A (zh) * | 2009-10-28 | 2011-05-11 | 中国移动通信集团公司 | 一种数据挖掘系统中决策树的生成方法及装置 |
CN102281196A (zh) * | 2011-08-11 | 2011-12-14 | 中兴通讯股份有限公司 | 决策树生成方法及设备、基于决策树报文分类方法及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685087B2 (en) * | 2005-12-09 | 2010-03-23 | Electronics And Telecommunications Research Institute | Method for making decision tree using context inference engine in ubiquitous environment |
US8065326B2 (en) * | 2006-02-01 | 2011-11-22 | Oracle International Corporation | System and method for building decision trees in a database |
WO2007113700A2 (en) * | 2006-03-30 | 2007-10-11 | Koninklijke Philips Electronics N.V. | Generating rules for a decision tree |
SE532426C2 (sv) * | 2008-05-26 | 2010-01-19 | Oricane Ab | Metod för datapaketklassificering i ett datakommunikationsnät |
EP2582096B1 (en) | 2010-06-28 | 2016-03-30 | Huawei Technologies Co., Ltd. | Classification method and device for packets |
WO2012122431A1 (en) * | 2011-03-08 | 2012-09-13 | Affinnova, Inc. | System and method for concept development |
CN102664787B (zh) * | 2012-04-01 | 2014-10-08 | 华为技术有限公司 | 决策树的生成方法和装置 |
-
2012
- 2012-04-01 CN CN201210095978.1A patent/CN102664787B/zh not_active Expired - Fee Related
-
2013
- 2013-03-22 WO PCT/CN2013/073036 patent/WO2013149555A1/zh active Application Filing
- 2013-03-22 EP EP13772797.0A patent/EP2819355B1/en not_active Not-in-force
-
2014
- 2014-09-26 US US14/497,720 patent/US10026039B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937336B1 (en) * | 2007-06-29 | 2011-05-03 | Amazon Technologies, Inc. | Predicting geographic location associated with network address |
CN102054002A (zh) * | 2009-10-28 | 2011-05-11 | 中国移动通信集团公司 | 一种数据挖掘系统中决策树的生成方法及装置 |
CN102281196A (zh) * | 2011-08-11 | 2011-12-14 | 中兴通讯股份有限公司 | 决策树生成方法及设备、基于决策树报文分类方法及设备 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013149555A1 (zh) * | 2012-04-01 | 2013-10-10 | 华为技术有限公司 | 决策树的生成方法和装置 |
US10026039B2 (en) | 2012-04-01 | 2018-07-17 | Huawei Technologies Co., Ltd | Method and apparatus for generating decision tree |
WO2015027412A1 (zh) * | 2013-08-28 | 2015-03-05 | 华为技术有限公司 | 一种复杂图的处理方法和设备 |
CN104573194A (zh) * | 2014-12-20 | 2015-04-29 | 西安工业大学 | 一种装配序列规划中子装配体的识别方法 |
WO2017107215A1 (zh) * | 2015-12-25 | 2017-06-29 | 华为技术有限公司 | 一种数据中心内服务功能体部署方法、装置及控制器 |
CN106230725A (zh) * | 2016-07-14 | 2016-12-14 | 杭州迪普科技有限公司 | 网包规则集的分类方法及装置 |
CN106230725B (zh) * | 2016-07-14 | 2019-09-06 | 杭州迪普科技股份有限公司 | 网包规则集的分类方法及装置 |
CN107318205A (zh) * | 2017-08-07 | 2017-11-03 | 广汉阿拉丁科技有限公司 | 基于ZigBee技术的近距离灯具控制方法 |
CN108804593A (zh) * | 2018-05-28 | 2018-11-13 | 西安理工大学 | 基于图谱和可达路径数的无向加权图的子图查询方法 |
CN108804593B (zh) * | 2018-05-28 | 2019-06-18 | 西安理工大学 | 基于图谱和可达路径数的无向加权图的子图查询方法 |
CN110414567A (zh) * | 2019-07-01 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和电子设备 |
CN110414567B (zh) * | 2019-07-01 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102664787B (zh) | 2014-10-08 |
US20150019471A1 (en) | 2015-01-15 |
US10026039B2 (en) | 2018-07-17 |
EP2819355A1 (en) | 2014-12-31 |
EP2819355B1 (en) | 2016-01-20 |
WO2013149555A1 (zh) | 2013-10-10 |
EP2819355A4 (en) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102664787B (zh) | 决策树的生成方法和装置 | |
US20140040849A1 (en) | Quantum gate optimizations | |
CN102075430B (zh) | 深度报文检测dfa状态转移表的压缩与报文匹配方法 | |
CN101141389A (zh) | 增强多位Trie树查找方法和装置 | |
CN111680489B (zh) | 目标文本的匹配方法和装置、存储介质及电子设备 | |
CN104468107A (zh) | 校验数据处理方法及装置 | |
CN106897280A (zh) | 数据查询方法及装置 | |
CN105022716A (zh) | 一种多数据链路的gpu服务器 | |
CN111930924A (zh) | 基于布隆过滤器的数据查重系统及方法 | |
CN104645610A (zh) | 一种游戏对象标识码的编码方法及系统 | |
KR101878213B1 (ko) | 가중치 그래프를 요약하는 방법, 장치 및 컴퓨터 프로그램 | |
CN102609509A (zh) | 哈希数据处理方法和装置 | |
Wang et al. | Dynamic skylines considering range queries | |
CN109086815B (zh) | 基于fpga的决策树模型中的浮点数离散化方法 | |
Herringer et al. | Classification of measurement-based quantum wire in stabilizer PEPS | |
CN104933059A (zh) | 文件信誉获取方法、网关设备和文件信誉服务器 | |
Al-Shammary et al. | Redundancy-aware SOAP messages compression and aggregation for enhanced performance | |
CN103210590A (zh) | 压缩方法及设备 | |
CN106708532B (zh) | 基于tcam的多层次正则表达式匹配方法 | |
Shen et al. | Edge learning based green content distribution for information-centric Internet of Things | |
CN101848091B (zh) | 数据查找处理方法及系统 | |
CN112100618B (zh) | 一种病毒文件检测方法、系统、设备及计算机存储介质 | |
CN105447020B (zh) | 一种确定业务对象关键词的方法及装置 | |
CN113886547A (zh) | 基于人工智能的客户实时对话转接方法、装置和电子设备 | |
KR101664712B1 (ko) | 해시 테이블 접근 없이 참 양성 여부를 판단할 수 있는 블룸 필터 쿼리 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141008 |
|
CF01 | Termination of patent right due to non-payment of annual fee |