这里推荐搭建先看这个ppt,再看后面matlab的实现,这样你会很清晰,为了赚点积分,这里设置一下积分,抱歉大家了。

详细讲解模糊逻辑的ppt

模糊逻辑的基础

总览

模糊逻辑的重点是将输入空间映射到输出空间,而执行此操作的主要机制是一系列if-then语句(称为规则)。所有规则都是并行评估的,规则的顺序并不重要。规则本身很有用,因为它们引用变量和描述这些变量的形容词。在构建解释规则的系统之前,必须定义计划使用的所有术语以及描述它们的形容词。要说水很热,您需要定义水的温度可以预期变化的范围以及“  ”一词的含义。。下图提供了模糊推理过程的路线图。它在左侧显示了模糊系统的一般说明,在右侧显示了特定的模糊系统。

为了概括该图中描述的模糊推理的概念,模糊推理是一种解释输入向量中的值并基于一组规则将值分配给输出向量的方法。

本主题通过对模糊逻辑的理论和实践进行介绍,逐步指导您完成模糊逻辑过程。

模糊集

模糊逻辑从模糊集的概念开始。甲模糊集合是一组不具有脆,明确定义的边界。它只能包含部分元素隶属度。

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

这种类型的集合称为经典集合,因为它已经存在很长时间了。最初是由亚里斯多德(Aristotle)制定了排除中间定律,该定律说X必须位于A组或非A组中。该法律的另一个版本是:

在任何主题中,必须断言或否认一件事。

要用注解重述该法律:“在任何主题(例如星期一)中,必须声明或拒绝(一周中的一天)(我断言星期一是一周中的一天)。” 这项法律要求相反的两个类别A和非A必须包含整个宇宙。一切都归为一组。既不是星期几又不是星期几。

现在,考虑组成一个周末的几天。下图尝试对周末进行分类。

大多数人都同意星期六和星期日属于,但是星期五呢?感觉就像是周末的一部分,但是从某种意义上讲,应该从技术上排除它。因此,在上图中,星期五尽最大努力“跨界”。古典或普通集不能容忍这种分类。里面有东西进出了。人类的经验表明,情况有所不同,但是,跨越栅栏是生活的一部分。

当然,在定义什么构成周末时,必须考虑个人的看法和文化背景。甚至字典也不精确,将周末定义为星期五晚上或星期六到星期一早上。您正在进入边缘化的领域,是的,没有逻辑停止提供帮助。当您与人们如何真正理解概念周末(而不是仅用于会计目的的简单思维分类)一起工作时,模糊推理才变得非常有价值。最重要的是,以下陈述为模糊逻辑奠定了基础。

在模糊逻辑中,任何陈述的真实性都取决于程度。

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

它是如何工作的?模糊逻辑中的推理只是推广熟悉的“是-否”(布尔)逻辑的问题。如果将数值1设置为true,将数值0设置为false,则表明模糊逻辑也允许介于0.2和0.7453之间的值。例如:

问:星期六是周末吗?
答:1(是或否)
问:星期二是周末吗?
答:0(否或否)
问:星期五是周末吗?
答:0.8(在大多数情况下是肯定的,但不完全是)
问:星期日是周末吗?
答:0.95(是,但不如星期六多)。

左下图显示了如果您被迫做出绝对肯定或否定的回应,则表示周末的真实值。右边是一个图,该图显示了如果允许您使用介于中间值之间的模糊值进行响应,则表明周末的真实值。

从技术上讲,右侧的表示法来自多值逻辑(或多价逻辑)领域。如果您问“ X是集合A的成员吗?”的问题。答案可能是“是”,“否”或介于两者之间的一千个中间值中的任何一个。因此,X可能在A中具有部分成员资格。多值逻辑与更熟悉的二值(或二价是或否)逻辑概念形成鲜明对比。

回到该示例,现在考虑以下图表所示的周末休假时间的连续刻度时间图。

通过使绘图连续进行,您可以定义周末(而不是一整天)中任何给定瞬间的归属程度。在左侧的图中,请注意,在星期五的午夜,就像秒针扫过12一样,周末意识真值从0到1不连续跳动。这是定义周末的一种方法,虽然它可能是对于会计师很有用,它可能与您在周末的真实世界体验并没有真正的联系。

右边的图显示了一条平滑变化的曲线,这说明了以下事实:整个星期五,并且在较小程度上包括星期四的一部分,都参与了周末的质量,因此值得在模糊的周末集中使用部分成员资格片刻。定义任何时间瞬间的周末度的曲线是将输入空间(一周中的时间)映射到输出空间(周末度)的函数。具体来说就是所谓的会员制功能。有关更详细的讨论,请参见隶属函数MF)。

作为模糊集的另一个示例,请考虑季节问题。现在是哪个季节?在北半球,当北极最直接指向太阳时,夏季正式开始于地球轨道的确切时刻。它每年一次,每年六月末。使用该季节的天文定义,您将获得清晰的边界,如下图左侧所示。但是,随着季节的变化,您所体验到的或多或少会不断变化,如下图右图所示(在北半球温带气候中)。

隶属函数(MF)

一个隶属函数(MF)是一条曲线,它定义了输入空间中的每个点如何映射到0到1之间的隶属度值(或隶属度)。输入空间有时被称为“话语范围”,这是简单名称的奇特名称概念。

高个子集是最常用的模糊集示例。在这种情况下,话语范围是所有可能的高度,例如从3英尺到9英尺,而“高”这个词将对应于定义任何人的高大程度的曲线。如果给高个子人群定义了一组经典的定义清晰的边界,那么您可以说所有高于6英尺的人都被正式认为是高个子。但是,这样的区别显然是荒谬的。考虑所有大于6的实数的集合可能是有道理的,因为数字属于抽象平面,但是当我们要谈论真实的人时,当一个人的身高不同时,称一个人为矮而另一个人为高是不合理的头发的宽度。

如果以前显示的那种区分是行不通的,那么定义高个子人群的正确方法是什么?与周末的情节非常相似,下图显示了从不高到高的平滑变化曲线。输出轴是一个数字,称为0到1之间的隶属值。该曲线称为隶属函数,通常指定为µ。该曲线定义了从不高到高的过渡。两个人的身高都有一定程度,但一个人的身材却明显低于另一个人。

主观解释和适当的单位直接内置到模糊集中。如果您说“她很高”,则身高较高的成员身份功能应该已经考虑到您是指六岁还是成年女性。同样,单位包括在曲线中。当然说“她是身高英寸还是米?”毫无道理。

模糊逻辑工具箱软件中的隶属函数

隶属函数必须真正满足的唯一条件是,它必须在0到1之间变化。函数本身可以是任意曲线,从简单性,便利性,速度,和效率。

经典集可以表示为

A = { x | x > 6}

模糊集是经典集的扩展。如果X是论述的宇宙,并且其元素由x表示,则X中的模糊集A定义为一组有序对。

A = { x,µ A  | X ∈X}

μ A(X)被调用的隶属函数(或MF)X A中的隶属函数X的每个元素映射到0和1之间的隶属函数值。

该工具箱包含11种内置的隶属函数类型。这11个功能又由几个基本功能构成:

  • 分段线性函数

  • 高斯分布函数

  • S形曲线

  • 二次和三次多项式曲线

有关接下来提到的任何成员资格功能的详细信息,请参见相应的参考页。按照惯例,所有成员函数mf的名称末尾都有字母。

最简单的隶属函数是使用直线形成的。在这些函数中,最简单的是三角隶属函数,并且函数名称为trimf。此功能无非是构成三角形的三个点的集合。的梯形隶属函数trapmf,具有平坦的顶部,实际上只是截断的三角形曲线。这些直线隶属函数具有简单性的优点。

两个隶属函数建立在高斯分布曲线:简单的高斯曲线和两条不同高斯曲线的两侧合成。这两个功能是gaussmf 和gauss2mf

广义钟隶属函数由三个参数指定的,具有函数名gbellmf。贝尔隶属度函数比高斯隶属度函数多一个参数,因此,如果调整了自由参数,它可以接近非模糊集。由于它们的平滑性和简洁性,高斯和贝尔隶属度函数是用于指定模糊集的流行方法。这两条曲线都具有在所有点都平滑且非零的优点。

尽管高斯隶属函数和三角隶属函数达到平滑性,它们无法指定不对称的隶属函数,这在某些应用程序中很重要。接下来,定义S形隶属函数,可以向左或向右打开。可以使用两个S形函数来合成非对称和闭合(即,向左或向右敞开)的隶属度函数,因此除了基本sigmf,两个S形函数也有区别, dsigmf,以及两个S形函数的乘积psigmf

基于多项式的曲线说明了工具箱中的多个隶属函数。三个相关的隶属函数是Z,S Pi曲线,均因其形状而得名。功能 zmf 是向左敞开的非对称多项式曲线,smf 是向右打开的镜像功能,并且 pimf 在两个极端中都为零,中间是上升。

选择会员功能时,有很多选择。您也可以使用工具箱创建自己的会员功能。但是,如果基于扩展的隶属函数的列表看起来过于复杂,请记住,您可能只需要与一种或两种类型的隶属函数(例如三角形和梯形函数)相处得很好。对于希望探索可能性的人来说,选择范围很广,但是对于良好的模糊推理系统而言,不需要扩展的隶属函数。最后,请记住在参考部分中所有这些功能都有更多详细信息。

隶属函数总结:

  • 模糊集描述了模糊的概念(例如,快速奔跑者,炎热的天气,周末)。

  • 模糊集承认其中有部分成员资格的可能性。(例如,星期五有点像周末,天气很热)。

  • 对象属于模糊集的程度由介于0和1之间的隶属度值表示(例如,星期五是度为0.8的周末)。

  • 与给定模糊集关联的隶属度函数将输入值映射为其适当的隶属度。

逻辑运算

既然您已经了解了模糊推理,那么您需要了解模糊推理如何与逻辑运算联系起来。

关于模糊逻辑推理,最重要的认识是它是标准布尔逻辑的超集。换句话说,如果将模糊值保持在1(完全为真)和0(完全为假)的极值,则将保持标准逻辑运算。例如,请考虑以下标准真值表。

现在,因为在模糊逻辑中任何陈述的真实性都是一个程度的问题,这些真实性表是否可以更改?输入值可以是0到1之间的实数。什么函数保留了结果AND真值表(例如)还扩展到0到1之间的所有实数?

一个答案是最小运算。即,使用函数minAB)解析语句A AND B,其中AB限制在范围(0,1 )中。使用相同的推理,可以用max函数替换OR操作,以便A OR B等于maxA,B)。最后,NOT A操作等同于该操作1 − A。请注意,通过此替换,以前的真值表是如何完全不变的。

此外,由于真值表后面有一个函数,而不仅仅是真值表本身,因此您现在可以考虑1和0以外的值。

下图使用图形显示相同的信息。在此图中,真值表被转换为两个模糊集的图,这两个模糊集一起应用以创建一个模糊集。图的上部显示与前面的二值真值表相对应的图,而图的下部显示根据定义的模糊运算,运算如何在真值AB的连续变化范围内工作。

给定这三个功能,您可以使用模糊集和模糊逻辑运算AND,OR和NOT来解析任何构造。

附加模糊运算符

在这种情况下,您只能为AND定义二值和多值逻辑运算之间的一种特殊对应关系,或,而不是。这种对应绝不是唯一的。

一般而言,您要定义的是模糊交集或并(AND),模糊并集或析取(OR)和模糊补码(NOT)。这些函数的经典运算符为:AND = min,OR = max和NOT =可加补码。通常,大多数模糊逻辑应用程序都会利用这些操作,而不必管它。但是,一般而言,这些功能在任意程度上都是任意的。如上图所示,Fuzzy Logic Toolbox™软件将经典运算符用于模糊补码,但也使您能够自定义AND和OR运算符。

通常通过二进制映射T来指定两个模糊集AB的交集,该映射将两个隶属函数汇总如下:

第一个要求将正确的概括强加给清晰集。第二个要求意味着AB中的隶属度值的减少不能导致A交集B中的隶属度值的增加。第三个要求表明,运算符对要组合的模糊集的顺序无动于衷。最后,第四项要求使我们能够以成对分组的任何顺序获取任意数量的集合的交集。

像模糊交集一样,模糊联合运算符通常由二进制映射S指定:

过去已经提出了一些参数化t规范和双T-conorm,如文献中发现的Yager[10]、Dubois和Prade[1]、Schweizer和Sklar[7]、Sugeno[8]。每一种都提供了一种改变函数增益的方法,使得增益可以是非常受限的,也可以是非常宽松的。

如果-那么规则

模糊集和模糊算子是模糊逻辑的主语和动词。这些if-then规则语句用于制定包含模糊逻辑的条件语句。

一条模糊的if-then规则采用以下形式

if x is A then y is B

如果xAyB

其中AB是分别由X和Y范围(话语的宇宙)上的模糊集定义的语言值。规则“ xA ” 的if部分称为先行词或前提,则规则“ yB ” 的然后部分称为结果或结论。这样的规则的一个例子可能是

If service is good then tip is average

如果服务很好,那么小费是平均水平

概念被表示为0和1之间的数,所以先行的是,返回一个单一的数字0和1之间相反地,解释平均被表示为一模糊集,所以由此产生的是一个赋值来分配整个模糊集B为输出变量y。在if-then规则中,根据该词出现在先行词还是后继词,以两种完全不同的方式使用该词。在MATLAB ®而言,这种用法是使用“==”关系测试,并使用“=”符号的可变分配之间的区别。编写规则的一种不太混乱的方法是

If service == good then tip = average

如果服务==好,那么小费=平均

通常,if-then规则的输入是输入变量的当前值(在这种情况下,为service),而输出是整个模糊集(在这种情况下,为average)。稍后将对该集合进行去模糊处理,为输出分配一个值。概念德下一节将描述模糊化。

解释一个if-then规则涉及不同的部分:第一评估先行词(其中涉及模糊化的输入并应用任何必要的模糊运营商)和第二施加该结果到由此产生的(如已知的暗示)。对于二值或二进制逻辑,if-then规则不会带来太大的困难。如果前提是正确的,那么结论是正确的。如果您放宽二值逻辑的限制,并让前项成为模糊陈述,这对结论有何反映?答案很简单。如果先行者在某种程度上是正确的,那么结果在同样程度上也是正确的。

从而:

在二元逻辑中:  p  →   q  (p  和  q  均为真或均为假。)
  在模糊逻辑中:0.5  p  →0.5  q  (部分前提提供部分含义)

规则的前提可以包含多个部分。

if sky is gray and wind is strong and barometer is falling, then ...

如果天空是灰色的,风很强,并且晴雨表正在下降,则...

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

if temperature is cold then hot water valve is open and cold water valve is shut

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

在这种情况下,所有结果都将同等地受到前因结果的影响。结果如何受到前因的影响?结果指定了将模糊集分配给输出。然后,蕴涵函数将该模糊集修改为先前条件指定的程度。修改输出模糊集的最常见方法是使用min函数截断(如下图所示,将模糊集截断)或使用prod函数进行缩放(压缩输出模糊集)。工具箱都支持两者,但是本节中的示例将使用截断。

If-Then规则摘要

解释if-then规则是一个分为三个部分的过程。下一部分将详细说明此过程:

  1. 模糊输入:解决先决条件的隶属度在0到1之间。如果先决条件只有一部分,则这是对规则的支持度。

  2. 将模糊运算符应用于多个零件前提:如果该前提有多个零件,则应用模糊逻辑运算符并将该前提解析为0到1之间的单个数字。这是对规则的支持程度。

  3. 应用蕴涵方法:使用整个规则的支持程度来塑造输出模糊集。模糊规则的结果将整个模糊集分配给输出。该模糊集由隶属度函数表示,该隶属度函数被选择为指示结果的质量。如果前提仅部分为真(即,为其分配的值小于1),则根据蕴涵方法将输出模糊集截断。

通常,仅一条规则是无效的。需要两个或多个可以相互抵消的规则。每个规则的输出是一个模糊集。然后将每个规则的输出模糊集聚合为一个输出模糊集。最终,对结果集进行去模糊处理,或解析为单个数字。Build Mamdani Systems(GUI)展示了一种称为a的特定类型的模糊推理系统从头到尾的整个过程。Mamdani型

References

[1] Dubois, D. and H. Prade, Fuzzy Sets and Systems: Theory and Applications, Academic Press, New York, 1980.

[2] Kaufmann, A. and M.M. Gupta, Introduction to Fuzzy Arithmetic, V.N. Reinhold, 1985.

[3] Lee, C.-C., "Fuzzy logic in control systems: fuzzy logic controller-parts 1 and 2," IEEE Transactions on Systems, Man, and Cybernetics, Vol. 20, No. 2, pp 404-435, 1990.

[4] Mamdani, E.H. and S. Assilian, "An experiment in linguistic synthesis with a fuzzy logic controller," International Journal of Man-Machine Studies, Vol. 7, No. 1, pp. 1-13, 1975.

[5] Mamdani, E.H., "Advances in the linguistic synthesis of fuzzy controllers," International Journal of Man-Machine Studies, Vol. 8, pp. 669-678, 1976.

[6] Mamdani, E.H., "Applications of fuzzy logic to approximate reasoning using linguistic synthesis," IEEE Transactions on Computers, Vol. 26, No. 12, pp. 1182-1191, 1977.

[7] Schweizer, B. and A. Sklar, "Associative functions and abstract semi-groups," Publ. Math Debrecen, 10:69-81, 1963.

[8] Sugeno, M., "Fuzzy measures and fuzzy integrals: a survey," (M.M. Gupta, G. N. Saridis, and B.R. Gaines, editors) Fuzzy Automata and Decision Processes, pp. 89-102, North-Holland, NY, 1977.

[9] Sugeno, M., Industrial applications of fuzzy control, Elsevier Science Pub. Co., 1985.

[10] Yager, R., "On a general class of fuzzy connectives," Fuzzy Sets and Systems, 4:235-242, 1980.

[11] Yager, R. and D. Filev, "Generation of Fuzzy Rules by Mountain Clustering," Journal of Intelligent & Fuzzy Systems, Vol. 2, No. 3, pp. 209-219, 1994.

[12] Zadeh, L.A., "Fuzzy sets," Information and Control, Vol. 8, pp. 338-353, 1965.

[13] Zadeh, L.A., "Outline of a new approach to the analysis of complex systems and decision processes," IEEE Transactions on Systems, Man, and Cybernetics, Vol. 3, No. 1, pp. 28-44, Jan. 1973.

[14] Zadeh, L.A., "The concept of a linguistic variable and its application to approximate reasoning, Parts 1, 2, and 3," Information Sciences, 1975, 8:199-249, 8:301-357, 9:43-80.

[15] Zadeh, L.A., "Fuzzy Logic," Computer, Vol. 1, No. 4, pp. 83-93, 1988.

[16] Zadeh, L.A., "Knowledge representation in fuzzy logic," IEEE Transactions on Knowledge and Data Engineering, Vol. 1, pp. 89-100, 1989.

模糊逻辑学习--模糊逻辑的基础相关推荐

  1. c# out原理 ref_3-Unity入门学习之C#基础2「数据类型」

    3-Unity入门学习之C#基础2 一.C#的数据类型 C#中,变量主要包含以下三种类型: 1.1.值类型 1.1.1.值类型介绍 ①结构[struct]:包含(整型.浮点型.128 位数据类型(de ...

  2. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)--基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

  3. python学精通要多久-学习Python零基础需要学多久?

    人工智能和大数据技术为互联网发展提供了更加强劲的动力.而Python编程语言在人工智能和数据科学领域都有非常广泛的应用.因此Python编程开发吸引了大批的新人加入.对于这些刚刚加入Python学习的 ...

  4. JNI学习开始篇 基础知识 数据映射及学习资料收集

    JNI学习开始篇 基础知识 数据映射及学习资料收集 JNI介绍 JNI(Java Native Interface) ,Java本地接口. 用Java去调用其他语言编写的程序,比如C或C++. JNI ...

  5. TF学习:Tensorflow基础案例、经典案例集合——基于python编程代码的实现

    TF学习:Tensorflow基础案例.经典案例集合--基于python编程代码的实现 目录 Tensorflow的使用入门 1.TF:使用Tensorflow输出一句话 2.TF实现加法 3.TF实 ...

  6. 【AI白身境】深度学习必备图像基础

    文章首发于微信公众号<有三AI> [AI白身境]深度学习必备图像基础 今天是新专栏<AI白身境>的第四篇,所谓白身,就是什么都不会,还没有进入角色. 我们已经说了linux基础 ...

  7. Flutter学习之认知基础组件

    一.前言 前一天,学习了Dart语法,对Dart的语法和特性有了更深一步的了解.今天,来学习Flutter的基础控件,身为Android开发者都知道,一开始入坑Android就要熟悉学习其控件,如:T ...

  8. 零基础实践深度学习之Python基础

    零基础实践深度学习之Python基础 Python数据结构 数字 字符串 列表 元组 字典 Python面向对象 Python JSON Python异常处理 Python文件操作 常见Linux命令 ...

  9. ffplay.c学习-6-⾳视频同步基础

    ffplay.c学习-6-⾳视频同步基础 目录 ⾳视频同步策略 ⾳视频同步概念 FFmpeg中的时间单位 ⾳视频时间换算的问题 不同结构体的time_base/duration分析 不同结构体的PTS ...

最新文章

  1. AI模糊测试:下一个重大网络安全威胁
  2. scala------------:: , +:, :+, :::, +++的区别
  3. Python正则表达式,简单20个用例学习
  4. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
  5. Centos 7 设置tomcat开机自启动
  6. 网络攻防第七周作业之20189304李小涛
  7. 博弈论:寻找先手必胜策略——Grundy值
  8. IIS7 上部署MVC3,执行错误:Could not load type 'System.ServiceModel.Activation.HttpModule'
  9. noapic和acpi=off能帮我做到什么?
  10. oracle 模式_Oracle实验--insert /*+APPEND*/与insert不同模式下产生redo大小
  11. 拆t460拆机图解_ThinkPad T460P评测,二楼附ThinkPad T460P拆机图
  12. H5 调用企业微信API
  13. Python优化算法07——布谷鸟搜索算法
  14. DVP和MIPI接口的简单区别
  15. PyTorch搭建Transformer实现多变量多步长时间序列预测(负荷预测)
  16. iOS小技巧21-MacOS 苹果系统下Outlook打不开,显示“您需要最新版本的Outlook才能使用此数据库”
  17. Rasa课程、Rasa培训、Rasa面试、Rasa实战系列之UnexpecTED Intent Policy
  18. Game(三子棋 扫雷)
  19. 2.12黑马培训日记
  20. Mac M1 Pro下载node.js

热门文章

  1. netbeans的python配置
  2. 如何让应用程序托盘化
  3. BI的价值体现在哪里
  4. 2021-01-26数据治理具备哪些优势
  5. 物联网云平台有哪些优势
  6. TypeScript算法专题 - blog5 - 单链表节点的`任意k个分组反转`的实现
  7. excel vlookup多个条件匹配多列_Excel教程第12课:VLOOKUP函数近似匹配到底怎么回事,原理+操作...
  8. 2021年北京理工大学ACM CLUB清明节组队训练赛
  9. python定时模块:apscheduler
  10. caffe︱Pascal VOC 2012 Multilabel Classification Model