主要内容

模糊逻辑基础

概述

模糊逻辑的目的是将一个输入空间映射到一个输出空间,而实现这一目的的主要机制是一组称为规则的if-then语句。所有的规则都是并行计算的,规则的顺序并不重要。规则本身是有用的,因为它们指的是变量和描述这些变量的形容词。在构建一个解释规则的系统之前,你必须定义你计划使用的所有术语和描述它们的形容词。要说水是热的,你需要定义预期水温变化的范围,以及这个词的含义

一般来说,模糊推理是一种解释输入向量中的值,并根据某种规则给输出向量赋值的方法。

本课题通过对模糊逻辑的理论和实践的介绍,引导您一步一步地了解模糊逻辑的过程。

模糊集

模糊逻辑从模糊集的概念开始。一个模糊集是一套没有清晰界定的边界。它可以包含只有部分隶属度的元素。

要理解什么是模糊集,首先考虑a的定义经典集。经典集合是一个完全包含或完全排除任何给定元素的容器。例如,一周的天数集毫无疑问包括星期一、星期四和星期六。它也同样毫无疑问地排除了黄油、自由和背鳍等等。

一个经典的集合,在中心包含一周中的几天,周围的元素不是一周中的几天

这种类型的集合被称为经典集合,因为它已经存在很长时间了。亚里士多德第一个阐述了排异中律,即X要么在集合A中,要么在集合非A中。这条定律的另一个版本是:

对于任何主题,有一件事要么肯定要么否定。

重申这条法则并加上注解:“对于任何主题(比如星期一),有一件事(一周中的一天)必须要么肯定要么否定(我断言星期一是一周中的一天)。”这个定律要求对立面,即A和非A这两个范畴,在它们之间应该包含整个宇宙。一切事物不是属于这一类,就是属于那一类。没有一件事既是一周中的一天,又不是一周中的一天。

现在,考虑一下由周末组成的天数。下面的图表试图对周末进行分类。

大多数人会同意周六和周日属于周末集,但周五呢?它感觉像是周末的一部分,但不知何故,它似乎应该被排除在技术之外。因此,星期五“跨越了篱笆”。经典套路是不能容忍这种分类的。要么某物在集合中,要么在集合外。人类的经验告诉我们一些不同的东西,然而,跨界是生活的一部分。

周末集,包含周六和周日,在中心被不是周末的元素包围。周五则跨在周末集的边缘。

当然,在定义周末的构成时,必须考虑到个人的认知和文化背景。就连字典也不准确,它把周末定义为从周五晚上或周六到周一早上的时间段。你正在进入一个尖锐的“是-否”逻辑不再有用的领域。模糊推理恰恰在你研究人们如何真正感知这个概念时变得有价值周末而不是只用于会计目的的简单分类。最重要的是,下面的陈述为模糊逻辑奠定了基础。

在模糊逻辑中,任何陈述的真实性都变成了程度的问题。

任何表述都可以是模糊的。模糊推理的主要优点是能够用一个不完全是或不是的答案来回答一个是非问题。人类一直在做这种事情(想想看,对于一个看似简单的问题,你很少能得到一个直接的答案),但对计算机来说,这是一个相当新的技巧。

它是如何运作的?模糊逻辑中的推理只是对我们熟悉的是非(布尔)逻辑的泛化。如果你给1的数值为真,给0的数值为假,这个值表明模糊逻辑也允许介于0.2和0.7453之间的值。例如:

问:周六是周末吗?
答:1(是,或真)
问:星期二是周末吗?
A: 0(否,或false)
Q:周五是周末吗?
答:0.8(大部分是,但不完全是)
Q:周日是周末吗?
A: 0.95美元(是的,但没有周六多)。

如果你被迫回答绝对的“是”或“否”,左边的图显示了周末感的真值。右边的图显示了周末性的真值,如果你被允许用模糊的中间值回答。

在左边的图中,周四和周五的周末会员数为零。在右边的图中,这几天非零会员数小于1,周五大于周四。

从技术上讲,右边的表示来自于的域多值逻辑(或多价的逻辑)。如果你问“X是集合a的成员吗?”这个问题,答案可能是“是”、“不是”,或者是介于两者之间的1000个中间值中的任意一个。因此,X可能是a中的部分成员。多值逻辑与我们更熟悉的二值(或二价是-否)逻辑的概念直接相反。

回到这个例子,现在考虑如下图所示的周末度的连续尺度时间图。

在左边的图中,成员关系图在周六和周日的两侧有明显的过渡。在右边的图中,从周末到非周末的过渡是平稳的。

通过让情节连续,你定义了任何给定的瞬间在多大程度上属于周末,而不是一整天。在左边的图中,请注意,在周五的午夜,就在秒针扫过12时,周末性真值不连续地从0跳到1。这是定义周末的一种方式,虽然它可能对会计有用,但它可能与你自己在现实世界中对周末的体验并没有真正的联系。

右边的图表显示了一条平滑变化的曲线,它解释了这样一个事实:周五的全部时间,以及周四的部分时间(在一定程度上),都具有周末的特质,因此应该在模糊的周末时刻集合中占有部分地位。定义任何时刻的周末性的曲线是一个函数,它将输入空间(一周的时间)映射到输出空间(周末性)。具体地说,它被称为a隶属函数。看到隶属度函数参阅更详细的讨论。

作为模糊集的另一个例子,考虑季节的问题。现在是什么季节?在北半球,夏季正式开始的确切时刻是地球轨道上北极最直接指向太阳的时刻。每年恰好发生一次,在六月下旬。使用这个季节的天文学定义,你会得到如下图左边所示的清晰界限。但是你所经历的季节变化或多或少是连续的,如下图右边所示(在北半球温带气候中)。

左边的图显示了季节之间清晰的界限。右边的图显示了平滑重叠的季节边界。

隶属度函数

一个隶属函数(MF)是一条曲线,它定义了输入空间中的每个点如何映射到0到1之间的隶属度值(或隶属度)。输入空间通常被称为论域

一个最常用的模糊集合的例子是高个子的集合。在这种情况下,话语的宇宙是所有潜在的高度,比如从三英尺到九英尺。这个词对应于定义一个人的身高程度的曲线。如果给这组高个子的人一个定义明确(清晰)的经典集合的边界,你可能会说所有身高超过6英尺的人都被正式认为是高的。然而,当一个人的身高相差一英寸时,称一个人矮,称另一个人高是不合理的。

你的身高必须超过这条线才算高。在一群人中超过这条线的那个人对这种分类是满意的。

如果前面所示的那种区分是行不通的,那么怎样才能正确地定义一组高个子呢?就像周末日子的情节一样,下图显示了一条从不高到高的平滑变化曲线。输出轴是一个数字,称为0到1之间的成员值。曲线称为a隶属函数并经常被冠以µ。例如,下图既展示了挺括又流畅的高会员功能。在上面的图中,这两个人被分为完全高和完全不高。在底部的图中,平滑的过渡允许不同程度的身高。两个人在某种程度上都是高的,但其中一个明显比另一个矮。个子高的人,身高会员数为0.95,肯定是高个子,但身高会员数为0.3的人就不是很高了。

在上面的图中,一个清晰的成员函数显示了从不高到高的急剧转变。在底部的图中,平滑的过渡考虑到了身高的不同程度。

主观解释和适当的单位被构建为模糊集。如果你说“她很高”,那么成员函数应该已经考虑到你是指一个六岁的孩子还是一个成年的女人。同样地,单位被包含在曲线中,因为它没有意义说“她是高英寸还是高米?”

隶属度函数在模糊逻辑工具箱软件

隶属函数必须满足的唯一条件是,它的隶属值必须在0和1之间变化。函数本身可以是一个任意优化的简单、方便、速度和效率的理想组合。

经典集合可以表示为:

一个 = { x | x > 6 }

模糊集是经典集的延伸。如果X话语的宇宙及其要素是用来表示的吗x,然后是模糊集一个X定义为一组ordered对。

一个 { x , μ 一个 ( x ) | x X }

µ一个(x的隶属函数(或MF)x一个。的每个元素的隶属度函数映射X到0到1之间的成员值。

Fuzzy Logic Toolbox™软件包含13种内置的成员函数类型。这些函数依次由几个基本函数构建而成。

  • 分段线性函数

  • 高斯分布函数

  • 乙状结肠曲线

  • 二次和三次多项式曲线

最简单的隶属函数是用直线形成的。这些直线隶属函数具有简单的优点。

  • trimf-三角隶属函数

  • trapmf-梯形隶属函数

  • linzmf-左开线性z形会员功能

  • linsmf-向右打开的线性s形隶属函数

从左到右,分别是采样线性z形、三角形、梯形和线性s形的隶属函数

派生出了两个隶属函数高斯分布:一个简单的高斯曲线(gaussmf)和不同高斯曲线的双面复合(gauss2mf)。

广义钟形成员函数(gbellmf)在0和1之间有类似的平滑过渡。它还有第三个参数,你可以用它来调整从0到1的过渡陡度。

由于高斯函数和钟形隶属函数的平滑性和简洁的表示法,它们是指定模糊集的流行方法。这两种曲线都具有光滑且在所有点非零的优点。

从左到右分别是样本高斯函数、双面高斯函数和广义钟隶属函数

虽然高斯曲线和钟形曲线实现了平滑,但它们无法指定非对称隶属函数,而非对称隶属函数在某些应用中很重要。要做到这一点,你可以使用s形成员函数(sigmf),这是一个平滑的会员函数,可以向左或向右开放。你可以基于其中的差(dsigmf)或产品(psigmf)的两个s型函数。

从左到右,样本左开的s形,s形的差,s形的乘积,右开的s形隶属函数

你也可以使用基于多项式的曲线来创建光滑的隶属函数,这些曲线以其形状命名。

  • zmf-左开的z形隶属函数

  • smf-s型隶属函数向右打开

  • pimf- pi型隶属函数,是s型和z型隶属函数的乘积

从左到右,分别是样本Z、pi和S的隶属函数

您还可以创建自己的自定义会员功能。更多信息,请参见使用自定义函数构建模糊系统

逻辑运算

了解了模糊推理之后,还需要看看模糊推理是如何与逻辑运算联系起来的。

关于模糊逻辑推理,要认识到的最重要的一点是,它是标准布尔逻辑的超集。换句话说,如果你把模糊值保持在1(完全正确)和0(完全错误)这两个极端,标准逻辑运算就成立了。举个例子,考虑下面的标准真值表。

当两个输入都为1时,and运算为1。当两个输入都为1时,or运算为1。当输入为0时,not运算为1。

考虑到,在模糊逻辑中,任何命题的真值都是程度的问题,那么这些真值表可以被改变吗?输入值可以是0到1之间的实数。什么函数既保留了AND真值表的结果(例如),又扩展到0到1之间的所有实数?

一个答案是最小值操作。即解析语句一个B,在那里一个B都限定在(0,1)的范围内,通过使用函数最小值(一个,B)。使用同样的推理,你可以用马克斯函数,所以一个B就相当于马克斯(A、B)。最后,操作NOT一个变得等价于操作 1 一个 。之前的真值表通过这种替换完全不变。

最小、最大值和非模糊逻辑运算符对清晰输入值产生的真值表,与布尔逻辑分别对和、或和非操作产生的真值表相同。

此外,因为真值表背后有一个函数,而不仅仅是真值表本身,所以现在可以考虑除1和0之外的值。

下一个图使用了一个图表来显示相同的信息。在这张图中,真值表被转换为两个模糊集的图,这些模糊集一起应用来创建一个模糊集。图的上半部分显示了与前面的两值真值表对应的图,而图的下半部分显示了在连续变化的真值范围内,操作是如何工作的一个B根据你所定义的模糊运算。

从左到右,AND, OR,和NOT操作在二值和多值逻辑中

给定这三个函数,你就可以用模糊集和模糊逻辑运算and, OR, and NOT来解析任何构造。

额外的模糊算子

在本例中,您只定义了and、OR和NOT的二值和多值逻辑操作之间的一种特定对应关系。这种对应关系绝不是唯一的。

更一般地说,你定义的是所谓的模糊交集或合取(AND)、模糊并集或析取(or)和模糊补(NOT)。这些函数的经典运算符是:AND =最小值,或者=马克斯, and NOT = additive complement。通常,大多数模糊逻辑应用程序都使用这些操作,并将其放在那里。然而,一般来说,这些函数都是任意的。模糊逻辑工具箱(Fuzzy Logic Toolbox)软件使用了上图所示的模糊补的经典运算符,但也允许您自定义AND和OR运算符。

两个模糊集合的交集一个B一般由二进制映射指定T,它聚合了如下两个隶属函数:

μ 一个 B ( x ) = T ( μ 一个 ( x ) , μ B ( x ) )

例如,二元运算符T可能代表的乘法µ一个(x),µB(x)。这些模糊交集算子,通常被称为T-范数(三角范数)算子,满足以下基本要求:

一个T-norm操作符是一个二进制映射T(.,.)具有以下属性:

  • 边界, T ( 0 , 0 ) = 0 , T ( 一个 , 1 ) = T ( 1 , 一个 ) = 一个

  • 单调性, T ( 一个 , b ) T ( c , d ) 如果 一个 c b d

  • 交换性, T ( 一个 , b ) = T ( b , 一个 )

  • 结合性, T ( 一个 , T ( b , c ) ) = T ( T ( 一个 , b ) , c )

第一个要求对脆集施加了正确的泛化。的成员值的减少,这是第二个要求一个B不能产生会员价值的增加一个十字路口B。第三个要求表明,算子对要组合的模糊集的顺序是无所谓的。最后,第四个要求允许我们取任意数量的集在任意顺序的成对分组中的交集。

和模糊交集一样,模糊并算子一般由二进制映射来指定年代:

μ 一个 B ( x ) = 年代 ( μ 一个 ( x ) , μ B ( x ) )

例如,二元运算符年代能代表加的吗µ一个(x),µB(x)。这些模糊联合算子,通常被称为T-conorm(或年代-norm)操作符,必须满足以下基本要求:

一个T-conorm(或年代-norm)算子是一个二进制映射年代(.,.)具有以下属性:

  • 边界, 年代 ( 1 , 1 ) = 1 , 年代 ( 一个 , 0 ) = 年代 ( 0 , 一个 ) = 一个

  • 单调性, 年代 ( 一个 , b ) 年代 ( c , d ) 如果 一个 c b d

  • 交换性, 年代 ( 一个 , b ) = 年代 ( b , 一个 )

  • 结合性, 年代 ( 一个 , 年代 ( b , c ) ) = 年代 ( 年代 ( 一个 , b ) , c )

几个参数化T规范和双T-从众在过去已经被提出过,比如Yager的从众[11], Dubois and Prade[1], Schweizer和Sklar[8], Sugeno[9]。每一种方法都提供了一种改变函数增益的方法,使其可以是非常严格的,也可以是非常宽松的。

if - then规则

模糊集和模糊运算符是模糊逻辑的主语和动词。这些if-then规则语句被用来表述构成模糊逻辑的条件语句。

一个模糊的“如果-那么”规则就形成了这种形式

如果x一个,然后yB

在哪里一个B分别是在X和Y的范围(话语的宇宙)上由模糊集定义的语言价值。规则的if部分”x一个,被称为先行词或者前提,而规则的当时部分”yB,被称为顺向或结论。这种规则的一个例子可能是

如果服务好,那么小费就一般

这个概念表示为0到1之间的数字,因此先行词是返回0到1之间的单个数字的解释。相反,平均表示为一个模糊集,那么结果就是一个将整个模糊集B赋值给输出变量的赋值y。在if-then规则中,单词以两种完全不同的方式使用,取决于它是出现在前句中还是出现在后句中。在MATLAB®术语,这种用法是使用“==”的关系测试和使用“=”符号的变量赋值之间的区别。写规则的一种不那么容易混淆的方式是

如果服务==好,那么小费=一般

一般来说,if-then规则的输入是输入变量的当前值(在本例中,服务),输出是一个完整的模糊集(在这种情况下,平均)。这一套将在以后defuzzified,给输出指定一个值。下一节将描述去模糊化的概念。

解释if-then规则包括两个步骤:

  • 前项-的评价不分明化输入和应用任何必要的模糊的运营商

  • 将结果应用于结果。

第二步被称为含义。对于if-then规则,先行词,p,意味着随之而来的,。在二进制逻辑中,如果p是真的,那么也是对的(p)。在模糊逻辑中,如果p在某种程度上是真实的,那么在同样程度上也是真的(0.5p→0.5)。在这两种情况下,如果p是假的,那么值呢是不确定的。

一条规则的先行词可以有多个部分。

如果天空是灰色的,风很大,晴雨表在下降,那么……

在这种情况下,先行词的所有部分同时计算,并使用上一节中描述的逻辑运算符解析为单个数字。一个规则的结果也可以有多个部分。

如果温度较冷,则热水阀打开,冷水阀关闭

在这种情况下,所有的结果都同样受到先行词的结果的影响。结果是如何受先行词影响的呢?结果指定了一个被分配给输出的模糊集。的影响函数然后修改该模糊集到由先行词指定的程度。修改输出模糊集最常见的方法是使用的截断最小值函数(其中模糊集被截断如下图所示)或使用刺激函数(其中输出模糊集被压扁)。工具箱都支持这两种方法,但在本节的示例中使用截断。

从上到下的模糊规则评估步骤:模糊化输入,对模糊化输入应用逻辑算子,对前项输出应用蕴涵算子

If-Then规则总结

解释if-then规则是一个由三部分组成的过程。这个过程将在下一节详细解释:

  1. Fuzzify输入:将先行词中的所有模糊语句解析为0到1之间的隶属度。如果对先行词只有一个部分,那么这就是对规则的支持度。

  2. 对多部分先行词应用模糊算子:如果先行项有多个部分,则应用模糊逻辑运算符,将先行项解析为0到1之间的单个数字。这就是对规则的支持度。

  3. 运用暗示法:利用对整个规则的支持度来塑造输出模糊集。模糊规则的结果将整个模糊集分配给输出。这个模糊集由选择来表示结果的质量的隶属函数表示。如果前项仅部分为真,(即被赋给一个小于1的值),则根据隐含方法截断输出模糊集。

一般来说,单独的一条规则是无效的。需要两条或两条以上的规则可以相互抵消。每条规则的输出都是一个模糊集。然后将每个规则的输出模糊集聚合为单个输出模糊集。最后对结果集进行去模糊化,或解析为单个数字。使用模糊逻辑设计器构建模糊系统展示了一种特殊类型的模糊推理系统从头到尾的整个过程是如何工作的Mamdani类型

参考文献

[1]杜布瓦、迪迪埃和亨利·m·普拉德。模糊集与系统:理论与应用。科学与工程中的数学,第144节。纽约:文献出版社,1980年。

∪[2]考夫曼,A.和玛丹·m·古普塔。模糊算术导论:理论与应用。Van Nostrand Reinhold电气/计算机科学与工程系列。纽约,纽约州:Van Nostrand Reinhold Co, 1985。

[3] Lee, C.C.的《控制系统中的模糊逻辑:模糊逻辑控制器》。我”。IEEE系统、人与控制论汇刊20日,没有。2(1990年4月):404-18。https://doi.org/10.1109/21.52551

[4] Lee, C.C. '模糊逻辑在控制系统:模糊逻辑控制器。二世”。IEEE系统、人与控制论汇刊20日,没有。2号(1990年4月):419-35。https://doi.org/10.1109/21.52552

[5] Mamdani, E.H.和S. Assilian。“用模糊逻辑控制器进行语言合成的实验”。《国际人机研究杂志》7,不。1号(1975年1月):1 - 13号。https://doi.org/10.1016/s0020 - 7373 (75) 80002 - 2

[6] Mamdani, E.H.“模糊控制器语言合成的进展”。《国际人机研究杂志》8,不。6(1976年11月):669-78。https://doi.org/10.1016/s0020 - 7373 (76) 80028 - 4

[7] Mamdani, E.H.《模糊逻辑应用于使用语言综合的近似推理》。IEEE计算机汇刊C-26,不。12号(1977年12月):1182-91。https://doi.org/10.1109/TC.1977.1674779

[8] Schweizer, B.和A. Sklar, '联想函数和抽象半群'。出版。数学。德布勒森10(1963): 69 - 81。

[9] Sugeno, M.,“模糊度量和模糊积分:一个调查”(M.M. Gupta, G. N. Saridis,和B.R. Gaines,编辑)模糊自动机和决策过程,第89-102页,North-Holland, NY, 1977。

[10] Sugeno, Michio, ed。模糊控制的工业应用。阿姆斯特丹 ;纽约 :美国纽约州纽约:North-Holland ;美国和加拿大的独家经销商,爱思唯尔科学酒吧。有限公司,1985年版。

[11]罗纳德·r·耶格尔《论一类模糊连接词》。模糊集与系统4,没有。3(1980年11月):235-42。https://doi.org/10.1016/0165 - 0114 (80) 90013 - 5

[12] Yager, Ronald R.和Dimitar P. Filev。“通过山聚类生成模糊规则”。智能与模糊系统杂志2,没有。3(1994): 209 - 19所示。https://doi.org/10.3233/IFS-1994-2301

[13]扎德,洛杉矶《模糊集》。信息和控制8,不。3(1965年6月):338-53。https://doi.org/10.1016/s0019 - 9958 (65) 90241 - x

[14] Zadeh, Lotfi a .“分析复杂系统和决策过程的新方法概述”。IEEE系统、人与控制论汇刊SMC-3,不。1(1973): 28-44。https://doi.org/10.1109/TSMC.1973.5408575

[15]陈守煜,洛杉矶“语言变量的概念及其在近似推理中的应用。我”。信息科学8,不。3(1975): 199 - 249。https://doi.org/10.1016/0020 - 0255 (75) 90036 - 5

[16]陈守煜,洛杉矶“语言变量的概念及其在近似推理中的应用。二世”。信息科学8,不。4(1975): 301 - 357。https://doi.org/10.1016/0020 - 0255 (75) 90046 - 8

[17]陈守煜,洛杉矶“语言变量的概念及其在近似推理中的应用。三世”。信息科学9日,没有。1(1975): 43 - 80。https://doi.org/10.1016/0020 - 0255 (75) 90017 - 1

[18] Zadeh,洛杉矶“模糊逻辑”。电脑21日,没有。4号(1988年4月):83-93。https://doi.org/10.1109/2.53

[19] Zadeh, L.A.“模糊逻辑中的知识表示”。《IEEE知识与数据工程汇刊》1,没有。1(1989年3月):89-100。https://doi.org/10.1109/69.43406

相关的话题

Baidu
map