模糊推理系统建模
在matlab中,通过调用文档命令doc fuzzy
可以得到一个模糊工具箱的完整介绍。
我也是因为工作需要,在看完师姐论文后,仍然迷迷糊糊地。相信有许多人和我一样,在网上查了一堆论文、博客,可能也没有搞得太明白。
通过几天的认真阅读文档,并从零开始实现了一个模糊推理系统后。我打算通过这个博客来整理一下自己的心得。并且希望能够帮助到和我有同样需求的同学。
模糊逻辑基础
首先,对于一个模糊推理系统,其系统框图可以表现为如下形式
在给定输入的情况下,通过我们设定好的模糊推理系统,得到其结果输出。
此外,在开始创建自己的模糊推理系统时,需要了解认识一些相关的术语。
模糊集
摘抄文档英文解释就是:A fuzzy set is a set without a crisp, clearly defined boundary. It can contain elements with only a partial degree of membership.
相较于传统的集合,模糊集之间的界限划分更加模糊,每个元素是以[0,1]区间的数值隶属于该集合。而不是传统的属于(1)和不属于(0)。
并且,matlab中还给了一个形象生动的举例。对于周五,是否应该属于集合周末呢? 如果按照传统集合定义,它只能属于或者不属于。下图左。
而按照模糊集定义,他在一定程度上也算周末。如果我们认为这种程度比较明显,那么下图右的weekend-ness的值更加接近于1.
更进一步,考虑一周的每个小时,每一分是否属于周末,那么对于周五的不同时刻而言,上午属于周末的可能性更低,而晚上更容易被判定为周末。就可以得到如下更为连续的曲线图。
上图,也有一个专有的名字:隶属度函数或者membershipfunction,就是用来刻画输入变量属于模糊集的程度。在多大程度上符合模糊集定义。
现在对于模糊集的定义有了一个基本的认识。那么,我们可以发现生活中,存在着不少模糊集的概念。对于一个人的属性而言。高矮、胖瘦等,都是一个模糊的概念,都可以看做一个模糊集。