本发明涉及自主决策领域,特别涉及一种模糊推理系统的完备决策生成方法。
背景技术:
随着人工智能技术的日趋成熟,对无人机的自主决策能力的要求越来越来高,与人类推理过程高度相近的模糊推理算法是目前应用最为广泛的自主决策算法。现有的模糊推理系统往往直接根据人为经验,对规则库进行规则填写,系统运行若干年后,规则库中往往混合了不同年代的不同专家所填写的海量规则,随着现代航电技术的发展,需要考虑的变量与决策流程也越来越复杂,直接导致针对决策过程的模糊推理系统的复杂程度越来越高,规则数量越来越大,规则来源越来越多,往往会出现不同模糊推理规则间的变量名称冲突,推理结果混乱甚至相悖的问题。
技术实现要素:
本发明的目的是提供了一种模糊推理系统的完备决策生成方法,以解决现有技术存在的至少一个问题。
本发明的技术方案是:
一种模糊推理系统的完备决策生成方法,包括:
步骤1:将矩阵[aij]n×m表示为二维度列表var_pool,[aij]n×m的每一行是列表var_pool的子列表:
var_pool=[[a11,a12,…,a1m],[a21,a22,…,a2m],…,[an1,an2,…,anm]];
步骤2:初始化一个可扩展的列表array:array=[[]];
步骤3:生成模糊推理系统的完备决策矩阵,包括:
步骤31:以动态扩展树的形式生成完备决策矩阵的规则前件,具体为:
遍历变量池var_pool中的n个变量的隶属度分区列表,以第一个变量的m个隶属度分区作为m个根节点,进一步将第二个变量的m个隶属度分区作为每个根节点的m个子节点,循环遍历var_pool中的n个变量列表,通过依次遍历每个变量的m个模糊分区动态扩展array这一动态列表,对动态列表扩展n次,每次对第i层(扩展到var_pool中的第i个变量)的mi个父节点均添加m个子节点(第i+1个变量的m个模糊分区),生成完备决策矩阵的规则前件:
初始叶子节点共有mi+1个,扩展到第n个变量后叶子节点共有mn个;
步骤32:填写完备决策矩阵的规则后件,设模糊推理系统的输出变量yk的模糊分区的集合为bk,{bk1,bk2,…}∈bk,将填好的完备决策矩阵的规则后件,生成为列向量
其中,n,m,k,l,i,j均为正整数。
发明效果:
本发明的模糊推理系统的完备决策生成方法,能够快速生成包含所有推理结果的不相悖的完备规则集,并将规则库中所有规则进行有序的存储和排列,方便查验,能够极大程度的保证模糊推理系统规则的完备性,信息的全面性和推理的正确性。
附图说明
图1是本发明的模糊推理系统的完备决策生成方法的流程图。
具体实施方式
为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的实施例进行详细说明。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
下面结合附图1对本发明的模糊推理系统的完备决策生成方法做进一步详细说明。
本发明提供了一种模糊推理系统的完备决策生成方法,具体地,设有n,m,k,l,i,j均为正整数;
对于一个多输入多输出的模糊推理系统(fis:fuzzyinferencesystem),含有n个输入变量,分别为x1,x2,…,xn;l个输出变量,分别为y1,y2,...,yl。将该fis按从1到l个输出变量分成l个多输入单输出的fis,对这l个fis按从1到l的顺序依次设计出其完备决策矩阵;
设有k∈[1,l],则将这一多输入多输出的fis按其输出变量分成l个多输入单输出的fis,分别为:fis1,…,fisk,…,fisl;
对其中第k个多输出单输入的fisk:fisk有n个输入变量,分别为x1,x2,…,xn;有且只有一个输出变量yk;
将这n个输入变量的每一个均进行模糊划分,均划分为m份。设有i∈[1,n],j∈[1,m],则对于第i个变量的第j个模糊分区命名为aij。其中,i表示该模糊划分属于第i个输入变量,j表示该模糊划分是第i个输入变量的从左至右(即从小到大)的第j个模糊分区;
正常fis中的规则库,以下面的if-then的生成式规则的形式进行表述。
if:x1isa1?andx2isa2?and…andxiisaijand…andxnisan?;then:ykis__
if:x1isa1?andx2isa2?and…andxiisaijand…andxnisan?;then:ykis__
if:…and…and…and…and…andxnisan?;then:ykis__
if:x1isa1?andx2isa2?and…andxiisaijand…andxnisan?;then:ykis__
其中,?是模糊分区中1到m间的任何一份;
可以将上式所示的if-then形式的规则库按下式的矩阵形式进行表示,因为这样的数据结构更简便,在不损失规则信息的情况下更容易为计算机所接收;
则fisk中所有的模糊分区可以写在一个n×m的矩阵之中[aij]m×n,需要对矩阵中的每一个模糊分区aij的隶属度函数进行设计。
针对这n×m个模糊分区,可形成的所有推理结论不相悖(即规则后件不相悖)的规则构成的规则库,所对应的决策矩阵,被成为完备决策矩阵。
针对[aij]n×m的模糊分区,所形成的完备决策矩阵的规则数量应该为mn个,即该完备决策矩阵的形式应该为
可按如下算法给出
本发明的模糊推理系统的完备决策生成方法,包括:
步骤1:将矩阵[aij]n×m表示为二维度列表var_pool,[aij]n×m的每一行是列表var_pool的子列表:
var_pool=[[a11,a12,…,a1m],[a21,a22,…,a2m],…,[an1,an2,…,anm]];
步骤2:初始化一个可扩展的列表array:array=[[]];
步骤3:生成模糊推理系统的完备决策矩阵,包括:
步骤31:以动态扩展树的形式生成完备决策矩阵的规则前件,具体为:
遍历变量池var_pool中的n个变量的隶属度分区列表,以第一个变量的m个隶属度分区作为m个根节点,进一步将第二个变量的m个隶属度分区作为每个根节点的m个子节点,循环遍历var_pool中的n个变量列表,通过依次遍历每个变量的m个模糊分区动态扩展array这一动态列表,对动态列表扩展n次,每次对第i层(扩展到var_pool中的第i个变量)的mi个父节点均添加m个子节点(第i+1个变量的m个模糊分区),生成完备决策矩阵的规则前件:
在该步骤中需要执行如下循环:
forvarinvar_pooldo:
foriinarray:
forjinvar:
array=[i+[j]]
所得array即为该fis的完备规则库的规则前件:
初始叶子节点共有mi+1个,扩展到第n个变量后叶子节点共有mn个;
步骤32:填写完备决策矩阵的规则后件,设模糊推理系统的输出变量yk的模糊分区的集合为bk,{bk1,bk2,…}∈bk,将填好的完备决策矩阵的规则后件,生成为列向量
fori∈{0,1,2,…,mn},do:
complete_decision_matrix[i]=[array[i],bk_]
生成fisk的完备决策矩阵:
其中,n,m,k,l,i,j均为正整数。
在本发明的一个实施例中,判断敌方威胁程度的fis,三输入一输出。
输出为威信程度(威胁较弱,威胁适中,威胁较高),输入分别为高度x1,速度x2,角度x3:
x1在论域上划分为三分模糊分区,从小到大分别为:低a1,中a2,高a3;
x2在论域上划分为三分模糊分区,从小到大分别为:慢b1,中b2,快b3;
x3在论域上划分为三分模糊分区,从小到大分别为:冷c1,中c2,热c3;
var_pool=[[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]]
生成了完备决策矩阵的规则前件:
综上所述,本发明的模糊推理系统的完备决策生成方法,给出了完备决策矩阵的数学模型,以及快速生成完备决策矩阵的技术方法,能够快速生成包含所有推理结果的不相悖的完备规则集,并将规则库中所有规则进行有序的存储和排列,方便查验。能够极大程度的保证模糊推理系统规则的完备性,信息的全面性和推理的正确性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。