在1965年,L.Zadeh提出了模糊集合(Fuzzy set)这一概念从而有了模糊数学这一学科。
那么什么是模糊数学呢?模糊数学并不是模糊不清地描述一个事物,而是对模糊性事物进行精确描述。
它与传统的布尔逻辑不同,布尔逻辑的取值是非0即1的,而模糊数学的取值是[0, 1]这个不可数无限集合中的某个值。
Examples
假如我们要描述一个人的心情。那么在布尔逻辑中,我们只有
高兴 | 1 |
不高兴 | 0 |
而在模糊逻辑中,我们可以有
炒鸡高兴 | 1.0 |
很高兴 | 0.8 |
高兴 | 0.6 |
一般 | 0.5 |
不太高兴 | 0.4 |
很不高兴 | 0.2 |
生无可恋 | 0.0 |
... | 其他数值 |
可以看出模糊逻辑在描述一个人的心情的时候取值可以是有无限多的,这与我们现实生活中的认知一致。
再举另一个例子,我们想要做一个空调的温度控制器,我们可以有如下定义,(与预设温度相比)
- 非常冷
- 有点冷
- 差不多
- 有点热
- 相当热
那么在我们的控制逻辑里面就有(伪代码),
if 温度 == 非常冷 then 停机
if 温度 == 有点冷 then 使制冷量处于较低状态,风机转速处于较低状态
if 温度 == 差不多 then 保持现状就行
if 温度 == 有点热 then 使制冷量处于较高状态,风机转速处于较高状态
if 温度 == 相当热 then 全负载工作
在模糊逻辑里面我们没有用到else语句,因为我们在日常生活中也的确会说,“感觉温度差不多,不过也还是有点冷的感觉”。
模糊逻辑的AND, OR, NOT
在模糊逻辑中我们一样有与或非这三种基本运算,但是与布尔逻辑不同的是,在模糊逻辑中:
AND是取两者中值较小的,
OR是取两者中值较大的,
NOT则是取补集。
理解
- AND
比如有一天,你在路上走着走着,突然发现前面有两个人,一个人面无表情,另一个看上去很不高兴了,手上还拿着棍子,正常情况下你会想,“这两个人似乎很不高兴啊,还是换一条路走吧。”,这里你之所以会有“这两个人似乎很不高兴啊”的想法,是因为你将二者模糊析取,得到的结果是0.2,也就是很不高兴。
- OR
这次举一个现实中见的多的例子。
我们假设有如下模糊逻辑,
非常冷 | 1 |
有点冷 | 0.7 |
正好 | 0.5 |
有点热 | 0.3 |
非常热 | 0 |
时间设定是在一个炎热色夏天,你和你的一群朋友在屋里开着空调玩,到了某个时候,你可能会问:“有人觉得冷吗,要是冷的话,我就把空调温度调高一些。”
这时大部分人回答“正好”,但你听见有几位回答“有点冷”,你将这些结果合取之后,得到的是0.7,有点冷,所以你决定还是去把空调的温度调高一些。
- NOT
关于模糊逻辑的NOT,可以这样思考,
“这不是高兴的表情”。
单看这句话,我们首先可以知道肯定不是高兴所对应的0.6。
让我们把这句话放入这样两种语境中,
- A:“我这不是高兴的表情啊,是炒鸡高兴!”
- B:“我这不是高兴的表情啊,是被玩坏了生无可恋了你知道吗!”
显然,模糊逻辑中的NOT,正好有这样的关系。对于“高兴”的补集,我们有[0, 0.6) ∪ (0.6, 1],根据上面的两种语境,我们知道这是正确的结果。
附注
模糊逻辑可用于机器控制,AI等诸多方面。
比如上文的温度控制器,还有可以与传统的PID相结合,即Fuzzy-PID复合控制,由模糊控制负责温度变化大的时候,由PID负责精确控温。
因为模糊的取值是无穷的,正如客观世界一般,所以在很多特定场合模糊理论可以发挥巨大作用。