当前位置: 首页 > article >正文

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

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

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

相关文章:

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

我们前面已经讨论了三角形、梯形、高斯型、S型、Z型、Π型6种隶属函数,下一步进入模糊推理阶段。 有关六种隶属函数的特点在“Pi型隶属函数(Π-shaped Membership Function)的详细介绍及python示例”都有详细讲解:https://lzm07.b…...

datawhale组队学习-大语言模型-task5:主流模型架构及新型架构

目录 5.3 主流架构 5.3.1 编码器-解码器架构 5.3.2 因果解码器架构 5.3.3 前缀解码器架构 5.4 长上下文模型 5.4.1 扩展位置编码 5.4.2 调整上下文窗口 5.4.3 长文本数据 5.5 新型模型架构 5.5.1 参数化状态空间模型 5.5.2 状态空间模型变种 5.3 主流架构 在预训…...

为什么后端路由需要携带 /api 作为前缀?前端如何设置基础路径 /api?

一、为什么后端路由需要携带 /api 作为前缀? 1. 区分 API 端点与其他路由 在 Web 应用程序中,后端不仅需要处理 API 请求,还可能需要处理静态资源(如 HTML、CSS、JS 文件)或其他服务(如 WebSocket&#x…...

C++ 关系运算符重载和算术运算符重载的例子,运算符重载必须以operator开头

在C中,运算符重载允许为用户定义的类型(类或结构体)赋予某些内置运算符的功能。下面是一个关于关系运算符重载()和算术运算符重载()的简单例子。 示例:复数类的运算符重载 将创建一…...

建造者模式 (Builder Pattern)

建造者模式 (Builder Pattern) 是一种创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 一、基础 1.1 意图 将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 1.2 适用场景 当创建复杂对象的算法应该…...

MCU vs SoC

MCU(Microcontroller Unit,单片机)和SoC(System on Chip,片上系统)是两种不同的芯片类型,尽管它们都实现了高度集成,但在设计目标、功能复杂性和应用场景上存在显著差异。以下是两者…...

RAG 架构地基工程-Retrieval 模块的系统设计分享

目录 一、知识注入的关键前奏——RAG 系统中的检索综述 (一)模块定位:连接语言模型与知识世界的桥梁 (二)核心任务:四大关键问题的协调解法 (三)系统特征:性能、精度…...

(C语言)习题练习 sizeof 和 strlen

sizeof 上习题,不知道大家发现与上一张的习题在哪里不一样嘛? int main() {char arr[] "abcdef";printf("%zd\n", sizeof(arr));printf("%zd\n", sizeof(arr 0));printf("%zd\n", sizeof(*arr));printf(&…...

Unity Animation的其中一种运用方式

Animation是Unity的旧的动画系统,先说目的,其使用是为了在UI中播放动效,并且在动效播放结束后接自定义事件而设计的 设计的关键点在于,这个脚本不是通过Animation直接播放动画片段,而是通过修改AnimationState的nor…...

湖北楚大夫

品牌出海已成为众多企业拓展业务、提升竞争力的关键战略。楚大夫(chudafu.com)作为一家专注于品牌出海、海外网络营销推广以及外贸独立站搭建的公司,凭借其专业、高效、创新的服务模式,致力于成为中国企业走向国际市场的坚实后盾与得力伙伴。楚大夫通过综…...

框架的CVE漏洞利用 php类 java类 手工操作和自动化操作蓝队分析漏洞利用的流量特征

前言 php重要框架和基本的识别特征 php的主要是 tp框架 和 laravel 当然还有 yii等 tp的主要特征 1\报错信息: 2、图标 3、请求头 Laravel特征 1、报错信息 2、请求头 php框架CVE利用 lavarvel 工具 https://github.com/zhzyker/CVE-2021-3129 https://git…...

前端Wind CSS面试题及参考答案

目录 标准盒模型与 IE 盒模型的区别是什么?如何通过 box-sizing 属性切换这两种盒模型? 如何计算一个元素在标准盒模型下的总宽度(包含 margin、padding、border)? 父元素高度塌陷的原因是什么?请列举至少 3 种清除浮动的方法。 方法一:使用 clear 属性 方法二:使用…...

数据结构 -- 线索二叉树

线索二叉树 线索二叉树的概念 线索二叉树的作用 我们在进行中序遍历时,总是从根节点出发进行二叉树遍历,而当仅知道某一孩子节点的指针时,由于无法访问父节点,所以没有办法进行遍历。由此引入线索二叉树 【思考】①如何找到指定…...

【算法day19】括号生成——数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

括号生成 https://leetcode.cn/problems/generate-parentheses/description/ 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 左括号数必须大于右括号数,且小于等于n class Solution { publ…...

Qt5.15.2实现Qt for WebAssembly与示例

目录 1.什么是Qt for WebAssembly? 1.1 什么是 WebAssembly? 1.2 WebAssembly 的优势 1.3 什么是 Qt for WebAssembly? 1.4 Qt for WebAssembly 的特点 1.5 编译过程 1.6 运行时环境 注意!!!注意&am…...

好吧好吧,看一下达梦的模式与用户的关系

单凭个人感觉,模式在达梦中属于逻辑对象合集,回头再看资料 应该是一个用户可以对应多个模式 问题来了,模式的ID和用户的ID一样吗? 不一样 SELECT USER_ID,USERNAME FROM DBA_USERS WHERE USERNAMETEST1; SELECT ID AS SCHID, NA…...

HOW - DP 动态规划系列(三)(含01背包问题)

目录 一、01背包问题最直接的暴力解法动态规划解法 二、完全背包 通过几个算法的学习,理解和掌握动态规划来解决背包问题。 一、01背包问题 对于面试的话,掌握01背包和完全背包就够用了,最多可以再来一个多重背包。 如果这几种背包分不清&…...

Linux的文件上传下载的lrzsz库的安装与使用

以下是关于 Linux 下 lrzsz 库的安装与使用 的详细指南,适用于通过终端(如 SecureCRT、Xshell、MobaXterm 等)使用 ZMODEM 协议快速上传和下载文件: 一、lrzsz 简介 功能:提供 rz(接收文件)和 …...

在linux服务器部署Heygem

前言: Heygem官方文档上提供了基于windwos系统的安装方案。在实际使用过程中个人电脑的配置可能不够。这个时候如果服务器配置够的话,可以尝试在服务器上装一下。但是服务器一般都是linux系统的,于是这篇教程就出现了… 可行性分析 通读安装…...

图书管理系统系统-Java、SpringBoot、Vue和MySQL开发的图书馆管理系统

「springboot、vue图书馆管理系统.zip」 链接:https://pan.quark.cn/s/5a929a7e9450 分享一个图书管理系统,Java、SpringBoot、Vue和MySQL开发的图书馆管理系统 以下是对文本内容的总结: 项目概述 项目名称与背景: 项目概述 项…...

学生管理系统(需求文档)

需求: 采取控制台的方式去书写学生管理系统 分析: 初始菜单: “----------欢迎来到java学生管理系统----------” “1:添加学生” “2:删除学生” “3:修改学生” “4:查询学生” “5:…...

[c语言日寄]数据输入

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...

CMake-环境变量介绍

文章目录 作用域获取环境变量初始化查看特殊的环境变量 环境变量类似普通变量&#xff0c;但也有些不同&#xff0c;如下&#xff1a; 作用域 在一个CMake进程中环境变量具有全局作用域 获取环境变量 使用ENV操作符获取环境变量&#xff0c;例如$ENV{<name>}&#xff…...

数据预处理流程与关键步骤解析

数据预处理流程图&#xff08;Markdown格式&#xff09;&#xff1a; #mermaid-svg-b3mhJcpFWaJ9qMZ8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-b3mhJcpFWaJ9qMZ8 .error-icon{fill:#552222;}#mermaid-svg-b3m…...

字节DAPO算法:改进DeepSeek的GRPO算法-解锁大规模LLM强化学习的新篇章(代码实现)

DAPO算法&#xff1a;解锁大规模LLM强化学习的新篇章 近年来&#xff0c;大规模语言模型&#xff08;LLM&#xff09;在推理任务上的表现令人瞩目&#xff0c;尤其是在数学竞赛&#xff08;如AIME&#xff09;和编程任务中&#xff0c;强化学习&#xff08;RL&#xff09;成为…...

计算机操作系统(四) 操作系统的结构与系统调用

计算机操作系统&#xff08;四&#xff09; 操作系统的结构与系统调用 前言一、操作系统的结构1.1 简单结构1.2 模块化结构1.3 分层化结构1.4 微内核结构1.5 外核结构 二、系统调用1.1 系统调用的基本概念1.2 系统调用的类型 总结&#xff08;核心概念速记&#xff09;&#xf…...

Docker安装,并pullMySQL和redis

卸载原Docker 您的 Linux 发行版可能提供非官方的 Docker 软件包&#xff0c;这可能与 Docker 提供的官方软件包冲突。在安装 Docker Engine 正式版之前&#xff0c;您必须先卸载这些软件包。 sudo dnf remove docker \ docker-client \ docker-client-latest \ docker-common…...

第三天 开始Unity Shader的学习之旅之第二天的补充

Unity Shader的学习笔记 第三天 开始Unity Shader的学习之旅之第二天的补充 文章目录 Unity Shader的学习笔记前言一、Unity 提供的内置文件和变量1. 内置的包含文件2. UnityCG.cginc中的常用结构体 二、Unity 提供的Cg/HLSL语义1. 从应用阶段传递模型数据给顶点着色器时Unity…...

DeepSeek技术架构解析:MoE混合专家模型

一、前言 2025年初&#xff0c;DeepSeek V3以557万美元的研发成本&#xff08;仅为GPT-4的1/14&#xff09;和开源模型第一的排名&#xff0c;在全球AI领域掀起波澜。其核心创新之一——混合专家模型&#xff08;Mixture of Experts, MoE&#xff09;的优化设计&#xff0c;不…...

【正点原子】AI人工智能深度学习(RV1126/RK3568/RK3588)-第1期 准备篇

1.1SDK编译后的目录 1、真正的根文件系统镜像存放目录 2、非必须&#xff0c;负责系统升级等&#xff0c;kerneldtbramdisk组成的根文件系统 1.2文件系统分区 1.3开机自启动 1.6设置静态ip地址 1.8RKMedia框架/编译测试SDK自带RKMedia例程 出厂系统以下内容都是默认…...