一种模糊推理树的节点处理方法与流程

文档序号:16581133发布日期:2019-01-14 17:58阅读:509来源:国知局
一种模糊推理树的节点处理方法与流程

本发明属于深度学习技术领域,尤其涉及一种模糊推理树的节点处理方法。



背景技术:

gft(遗传模糊树:geneticfuzzytree)训练系统是基于遗传模糊推理树的智能空战训练系统,以遗传模糊推理树为优化对象,以遗传算法为优化器,在大规模分布式计算平台上进行训练优化。

基于gft的训练系统中,模糊推理树负责对训练系统的业务进行逻辑推理,作为整个训练系统优化的目标,模糊推理树以配置文件的形式输入到训练系统中。

模糊推理树本质上是将若干个模糊规则集(fis:fuzzyinferencesystem)以树的形式进行级联,支撑整个训练系统的推理过程,模糊推理树作为训练系统的输入,必须在很短的时间内被正确解析,才能支持推理树的快速计算,以进一步缩短训练系统的训练时间。



技术实现要素:

本发明的目的是提供一直模糊推理树的节点处理方法及系统,用于解决或减轻背景技术中所述的问题。

为达到上述目的,本发明采用的技术方案是:一种模糊推理树的节点解析方法,其包括

步骤一:构建第一队列和第二队列;

步骤二:获取模糊推理树的节点并存入第一队列;

步骤三:自所述第一队列的队头依次取出所述节点,若所述节点无父节点,或所述节点有父节点且所述父节点位于第二队列中,则所述节点存入第二队列的队尾,反之,所述节点存入第一队列的队尾;

步骤四:循环步骤三,直至所述第一队列中的节点为空。

进一步的,所述模糊推理树的节点无序的存入第一队列中。

本发明的模糊推理树的节点解析方法可以最终得到一个任意节点的父节点都在其前面的队列,因此在计算时,只要此队列中的节点依次弹出进行计算,就完成了对模糊推理树的有效完整解析,且具有很高的准确率,为后续的训练系统业务逻辑的计算奠定了扎实可靠的逻辑基础,在并行化训练过程中,可大大提高训练速度,减少整个训练系统的时间成本。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本发明的模糊推理树的节点解析的节点分析示意图。

图2为本发明一实施例的模糊推理树示意图。

具体实施方式

为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。

python语言是一种简洁、高效的开发语言,目前普遍应用于大数据计算、深度学习等技术领域。

本发明中的gft训练系统是基于python语言进行开发,模糊推理树以json文件的形式作为系统的输入,json文件形式化为python语言中的字典,字典是python语言中唯一的映射类型,字典中的元素是用键值进行哈希索引,并且最常见的键值是用字符串进行索引,因此字典是无序的。

模糊推理树作为gft训练系统的输入,在配置文件的表示是无序的,需要解析为具备输入/输出关系的节点。

模糊推理树配置文件中的每个元素,对应着一个推理树的节点,本质上是一个模糊规则集合fis,由于各个fis之间具有先后顺序,即节点的输入是其父节点的输出,所以作为无序字典中的元素,除了相应的键值,还需要对其父节点及子节点进行标记。

因此,在解析过程中,节点的计算强烈依赖其父节点计算之后的输出才能完成。若配置文件中,节点的依赖关系(节点与父节点的顺序)不明确,则gft训练系统在后续的训练过程中,需要消耗大量的资源和时间进行匹配。本发明的节点解析方法则是对配置文件进行解析,保证了任意节点在计算之前,其父节点都已计算完毕。

本发明应用在gft训练系统配置文件解析过程中,具体的包括:

首先构件两个队列,第一队列和第二队列,两队列分别记为a队列和b队列。队列具有先进先出的性质,因此将出的一端命名为队列头,入的一端命名为队列尾。首先将json文件中的所有节点无序的放到a队列中,b队列开始是空的。之后,依次从a队列头取出节点,判断其父节点,如果该节点的父节点为空,则表示该节点的输入是系统给定的状态量,那么将该节点放到b队列尾;如果该节点的父节点不为空,则在b队列中查找其父节点是否存在,如果存在,则将该节点放到b队列尾;如果不存在,将该节点放回a队列的列尾。循环此过程,直到a队列为空。经过这样一个过程,在b队列中,可以保证任意节点的父节点都在其前面,因此在计算时,只要将b队列中的节点依次弹出进行计算,就完成了对模糊推理树的有效完整解析。

如图1所示为本发明一实施例的模糊推理树示意图,其节点包括fis(a)、fis(b)、fis(c)、fis(d)、fis(e)、fis(f)共六个。

将上述节点随机无序的放到a队列中,则a队列为:

fis(b)|fis(a)|fis(e)|fis(f)|fis(c)|fis(d)

此时b队列为空。

取出a队列中的队列头fis(b),由于其具有父节点,但其父节点不位于b队列中,因此将其放回a队列的队尾,此时a队列为:

fis(a)|fis(e)|fis(f)|fis(c)|fis(d)|fis(b)

b队列依旧为空。

再次取出a队列的队列头fis(a),由于其不具有父节点,因此将其放入b队列的队尾,此时a队列为:

fis(e)|fis(f)|fis(c)|fis(d)|fis(b)

b队列为:fis(a)。

再次取出a队列的队列头fis(e),由于其具有父节点,但其父节点不在b队列中,因此将其放回a队列的队尾,此时a队列为:

fis(f)|fis(c)|fis(d)|fis(b)|fis(e)

b队列为:fis(a)。

循环上述步骤,直到a队列为空。

b队列为:fis(a)|fis(c)|fis(d)|fis(b)|fis(e)|fis(f)。

经过上述过程可以看到,在b队列中,任意节点的父节点都在其前面,因此在计算时,只要将队列b中的节点依次弹出进行计算,就完成了对模糊推理树的有效完整解析,且具有很高的准确率,为后续的训练系统业务逻辑的计算奠定了扎实可靠的逻辑基础,在并行化训练过程中,可大大提高训练速度,减少整个训练系统的时间成本。

以上所述,仅为本发明的最优具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。



技术特征:

技术总结
本发明涉及一种模糊推理树的节点解析方法,其包括:步骤一:构建第一队列和第二队列;步骤二:获取模糊推理树的节点并存入第一队列;步骤三:自所述第一队列的队头依次取出所述节点,若所述节点无父节点,或所述节点有父节点且所述父节点位于第二队列中,则所述节点存入第二队列的队尾,反之,所述节点存入第一队列的队尾;步骤四:循环步骤三,直至所述第一队列中的节点为空。本发明的节点解析方法可以最终得到一个任意节点的父节点都在其前面的队列,因此在计算时,只要此队列中的节点依次弹出进行计算,就完成了对模糊推理树的有效完整解析,且具有很高的准确率,可大幅度提高后续的训练系统的训练速度,减少整个训练系统的时间成本。

技术研发人员:杨芳;费思邈;管聪;姚宗信
受保护的技术使用者:中国航空工业集团公司沈阳飞机设计研究所
技术研发日:2018.07.20
技术公布日:2019.01.11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1