图解模糊推理过程(超详细步骤)

我们前面已经讨论了三角形、梯形、高斯型、S型、Z型、Π型6种隶属函数,下一步进入模糊推理阶段。

有关六种隶属函数的特点在"Pi型隶属函数(Π-shaped Membership Function)的详细介绍及python示例"都有详细讲解:https://lzm07.blog.csdn.net/article/details/146461397

模糊推理的核心是根据规则库将输入映射到输出,所以需要分步骤解释这个过程。需要将输入变量T和H的隶属度结合模糊规则库来计算输出Y的隶属度。

模糊推理 是模糊逻辑系统的核心步骤,其目标是根据输入变量的隶属度和预先定义的模糊规则库,推导出输出变量的隶属度。整个过程分为以下四个关键阶段:模糊化、规则评估、聚合和解模糊化等步骤。

前面多次用空调控制 系统举例,其中温度T和湿度H作为输入,冷气阀门的开度作为输出。在例子中,需要定义输入变量T和H的隶属函数,比如低温、中温、高温,低湿、中湿、高湿。然后建立规则库,例如如果温度高且湿度高,则阀门全开。接着,计算每个规则的激活强度,如何应用蕴含方法(比如最小操作),然后通过聚合所有规则的输出,最后解模糊化得到具体数值。比如假设输入温度为30度,湿度为70%,计算每个条件的隶属度,应用规则,得到每个规则的输出,再聚合和解模糊化。简化步骤为:

(1)定义输入变量T和H的隶属函数

(2)建立规则库

(3)计算每个规则的激活强度

(4)聚合所有规则的输出

(5)解模糊化得到具体数值

接下来对推理过程的各个阶段进行详细说明:

1. 模糊化 (Fuzzification)

(1)目标:将精确的输入值(如温度T=28∘C、湿度H=70%)转换为对应模糊集合的隶属度。

如前文使用三角形隶属函数对温度T进行处理的例子:

其中,a表示左边界(隶属度为0的点),b表示顶点(隶属度为1的点),c表示右边界(隶属度为0的点)。

(2)步骤:对每个输入变量(T和H)的模糊集合(如"低温"、"中温"、"高温"),计算输入值在这些集合中的隶属度。

例如:温度T=28∘C在模糊集合"中温"的隶属度为0.8,在"高温"的隶属度为0.2。湿度H=70% 在模糊集合"高湿"的隶属度为0.6,在"中湿"的隶属度为0.4。

2. 规则评估 (Rule Evaluation)

目标:根据模糊规则库中的每条规则,计算其激活强度(Firing Strength),并确定输出隶属度的初步形状。

模糊规则是自己建立的。

关键操作:

(1)激活强度计算:使用模糊逻辑操作(如"与"操作取最小值,"或"操作取最大值)。

(2)输出隶属度裁剪:将激活强度作用于输出隶属函数,通常使用最小蕴含法(Min-Implication)乘积蕴含法(Product-Implication)

示例规则库:

(1)规则1:如果T 是"高" 且H 是"高",则Y 是"全开"。

(2)规则2:如果T 是"中" 或H是"中",则Y是"半开"。

(3)规则3:如果T 是"低" 且H 是"低",则Y 是"关闭"。

计算示例(假设T=28∘C, H=70%):

(1)规则1:

  1. T 是"高"的隶属度 = 0.2
  2. H 是"高"的隶属度 = 0.6
  3. 激活强度 = min(0.2, 0.6) = 0.2
  4. 输出隶属度:将激活强度 0.2 作用于"全开"隶属函数(如裁剪到高度0.2)

(2)规则2:

  1. T 是"中"的隶属度 = 0.8
  2. H 是"中"的隶属度 = 0.4
  3. 激活强度 = max(0.8, 0.4) = 0.8
  4. 输出隶属度:将激活强度 0.8 作用于"半开"隶属函数

(3)规则3:

  1. T 是"低"的隶属度 = 0
  2. H 是"低"的隶属度 = 0
  3. 激活强度 = min(0, 0) = 0
  4. 输出隶属度:无贡献。

3. 聚合 (Aggregation)

目标:将所有规则的输出隶属度合并为一个综合的模糊输出集合。

方法:将每条规则裁剪后的输出隶属函数取最大值求和,得到最终的模糊输出隶属度分布。

示例:

规则1的裁剪输出为高度0.2的"全开"隶属函数。

规则2的裁剪输出为高度0.8的"半开"隶属函数。

聚合结果 = max(规则1输出, 规则2输出)。

4. 解模糊化 (Defuzzification)

目标:将模糊的输出隶属度转换为精确的控制值(如阀门开度Y=65%)。

常用方法:

(1)重心法 (Centroid):计算隶属度曲线下面积的质心。

(2)最大值平均法 (Mean of Maxima):取隶属度最大点的平均值。

示例:假设聚合后的输出隶属度分布如图,通过重心法计算得到Y=65%。

5. 完整案例演示

(1)场景:空调阀门控制系统

(2)输入变量:

温度T=28∘C

湿度H=70%

(3)模糊规则库:

如果T 高 且 H 高,则 Y 全开。

如果T 中 或 H 中,则 Y 半开。

如果T 低 且 H 低,则 Y 关闭。

(4)步骤说明:

1)模糊化:T=28 ∘C 的隶属度:

中温(Medium):0.8

高温(High):0.2

2)H=70% 的隶属度:

中湿(Medium):0.4

高湿(High):0.6

(5)规则评估:

规则1:激活强度 = min(0.2, 0.6) = 0.2 → 裁剪"全开"隶属函数至高度0.2。

规则2:激活强度 = max(0.8, 0.4) = 0.8 → 裁剪"半开"隶属函数至高度0.8。

规则3:激活强度 = 0 → 无贡献。

(6)聚合:将规则1和规则2的裁剪结果取最大值,得到综合输出隶属度。

(7)解模糊化:使用重心法计算聚合后的隶属度曲线质心,假设得到Y=65%。

关键总结

(1)模糊规则库设计:规则需覆盖所有可能的输入组合,逻辑需符合实际控制需求。

(2)参数敏感性:激活强度计算方法(min/max)、蕴含方法(min/product)和解模糊化方法(重心法/MoM)直接影响输出结果。

(3)可视化调试:通过绘制聚合后的输出隶属度曲线,验证逻辑合理性(如是否出现意外多峰或隶属度突变)。

通过模糊推理,系统能够以人类可理解的规则处理不确定性,在复杂控制场景中表现出色(如温度控制、自动驾驶决策)。

相关推荐
Ronin-Lotus4 分钟前
深度学习篇---PaddleOCR
人工智能·python·深度学习·paddlepaddle·paddleocr·文本识别
姜行运12 分钟前
数据结构入门【算法复杂度】
android·c语言·数据结构·算法
wen__xvn20 分钟前
每日一题洛谷P8717 [蓝桥杯 2020 省 AB2] 成绩分析c++
c++·算法·蓝桥杯
Y1nhl22 分钟前
搜广推校招面经五十八
人工智能·深度学习·算法·机器学习·求职招聘·推荐算法·搜索算法
databook25 分钟前
模型的泛化性能度量:方法、比较与实现
python·机器学习·scikit-learn
f狐0狸x27 分钟前
【蓝桥杯每日一题】3.25
开发语言·数据结构·c++·算法·蓝桥杯
菜鸟记录30 分钟前
一个简单的用C#实现的分布式雪花ID算法
算法·c#·雪花id
訾博ZiBo35 分钟前
AI日报 - 2025年3月26日
人工智能
一只天蝎的晋升之路39 分钟前
Python中常用的测试框架-pytest和unittest
开发语言·python·pytest
好好学习啊天天向上41 分钟前
flask,示例及解释
后端·python·flask