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

我们前面已经讨论了三角形、梯形、高斯型、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)可视化调试:通过绘制聚合后的输出隶属度曲线,验证逻辑合理性(如是否出现意外多峰或隶属度突变)。

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

相关推荐
编程绿豆侠几秒前
力扣HOT100之链表:23. 合并 K 个升序链表
算法·leetcode·链表
Ayanami_Reii3 分钟前
Leetcode837.新21点
c++·笔记·算法
我想进大厂3 分钟前
图论---最大流(Dinic)
算法·深度优先·图论
brzhang14 分钟前
效率神器!TmuxAI:一款无痕融入终端的AI助手,让我的开发体验翻倍提升
前端·后端·算法
知新_ROL18 分钟前
基础的贝叶斯神经网络(BNN)回归
人工智能·神经网络·回归
用户77853718369619 分钟前
如何构造一款类似One API的大模型集成平台
人工智能·架构
无水先生19 分钟前
NLP预处理:如何 处理表情符号
人工智能·自然语言处理
阿里云大数据AI技术20 分钟前
云上玩转DeepSeek系列之六:DeepSeek云端加速版发布,具备超高推理性能
人工智能·deepseek
站大爷IP23 分钟前
基于PySide6的聚合翻译软件设计与实现
python
灏瀚星空35 分钟前
从基础到实战的量化交易全流程学习:1.2 金融市场基础
笔记·python·信息可视化·系统架构·开源