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

模糊规则激活方法详解(python实例对比)

        前文我们已经了解了多种隶属函数,如三角形、梯形、高斯型、S型和Z型,并且讨论了模糊推理的基本过程,包括模糊化、规则评估、聚合和解模糊化。我们还了解了如何生成模糊规则的方法,比如专家经验、聚类分析、决策树、遗传算法和ANFIS。所以现在到了深入探讨模糊推理的具体步骤,特别是规则激活部分的时候。

文章:

1.模糊推理规则生成方法详解:https://lzm07.blog.csdn.net/article/details/146468868

2.图解模糊推理过程(超详细步骤):图解模糊推理过程(超详细步骤)-CSDN博客

3.Pi型隶属函数(Π-shaped Membership Function)的详细介绍及python示例:Pi型隶属函数(Π-shaped Membership Function)的详细介绍及python示例-CSDN博客

4.Z型隶属函数(Z-shaped Membership Function)的详细介绍及python示例:Z型隶属函数(Z-shaped Membership Function)的详细介绍及python示例-CSDN博客

5.S型隶属函数(Sigmoid Membership Function)的详细介绍及python示例:S型隶属函数(Sigmoid Membership Function)的详细介绍及python示例-CSDN博客

更多请看我博客。

        规则激活(Rule Activation)指的是根据输入变量的隶属度确定每条规则对输出的影响程度。常见的激活方法包括最小-蕴含法、乘积-蕴含法、有界积法、 drastic积法等。这些方法各有特点,适用于不同的场景。

        在模糊推理过程中,规则激活是确定每条模糊规则对最终输出的贡献程度的关键步骤。其核心是通过输入变量的隶属度计算规则的激活强度(Firing Strength),并将该强度作用于输出隶属函数。以下对常见的激活方法及其详细说明:

一、最小-蕴含法(Min-Implication,Mamdani方法)

1.原理:

激活强度:取所有前件条件隶属度的最小值

输出隶属度:将激活强度作为截断阈值,对输出隶属函数进行裁剪(即取隶属度与激活强度的最小值)

2.数学表达式:

3.示例:

(1)规则:“如果温度高(μT=0.8)且湿度高(μH=0.6),则阀门全开”。

(2)激活强度:min(0.8,0.6)=0.6。

(3)输出隶属度:将“全开”隶属函数在高度0.6处截断。

4.特点:

(1)优点:计算简单,直观易实现。

(2)缺点:可能丢失部分信息,输出隶属函数被过度裁剪。

(3)适用场景:实时控制系统(如空调、洗衣机)。

        总结:最小-蕴含法(Mamdani方法)是取前件隶属度的最小值作为规则的激活强度,然后用这个值去裁剪后件的隶属函数。这种方法计算简单,但可能导致输出信息损失。乘积法则将前件隶属度相乘,保持更多的信息,但计算量稍大。

二、乘积-蕴含法(Product-Implication,Takagi-Sugeno方法)

1.原理:

激活强度:取所有前件条件隶属度的乘积

输出隶属度:将激活强度与输出隶属函数相乘

2.数学表达式:

3.示例:

(1)规则:“如果温度高(μT =0.8)且湿度高(μH =0.6),则阀门开度Y=0.8×0.6×100%=48%”。

(2)激活强度:0.8×0.6=0.48。

(3)输出隶属度:将“全开”隶属函数按比例0.48缩放。

4.特点:

(1)优点:保留更多信息,输出更平滑。

(2)缺点:计算复杂度略高。

(3)适用场景:高精度控制(如机器人轨迹跟踪)。

三、Larsen乘积法(Larsen Product)

1.原理:与乘积-蕴含法类似,但输出隶属函数的缩放方式不同

2.数学表达式:

3.特点:

(1)优点:输出隶属度形状保留更完整。

(2)缺点:需归一化处理。

(3)适用场景:需保持输出曲线形状的系统(如语音识别)。

四、有界积法(Bounded Product)

1.原理:激活强度与前件隶属度的有界积)。

2.数学表达式:

3.特点:

(1)优点:抑制低激活强度的规则。

(2)缺点:可能过度抑制弱规则。

(3)适用场景:需严格过滤弱响应的系统(如安全关键控制)。

五、Drastic积法(Drastic Product)

1.原理:极端情况下的激活强度计算,仅当所有前件隶属度为1时激活

2.数学表达式:

3.特点:

(1)优点:严格匹配规则条件。

(2)缺点:灵活性差,极少实际应用。

六、加权平均法(Weighted Average,用于Takagi-Sugeno模型)

1.原理:每条规则的激活强度作为权重,对输出值加权平均

2.数学表达式:

3.示例:

规则1:激活强度0.6 → 输出80%。

规则2:激活强度0.4 → 输出50%。

最终输出:Y=(0.6×80+0.4×50)/(0.6+0.4)=68%。

4.特点:

(1)优点:输出为精确值,无需解模糊化。

(2)缺点:仅适用于Takagi-Sugeno模型。

(3)适用场景:实时性要求高的系统(如汽车ABS控制)。

七、方法对比与选择建议

方法

计算复杂度

输出平滑性

信息保留

适用场景

最小-蕴含法

简单实时控制(Mamdani)

乘积-蕴含法

高精度控制(Takagi-Sugeno)

Larsen乘积法

需保持输出形状

有界积法

安全关键系统

加权平均法

-

-

实时输出(TS模型)

八、Python代码示例对比规则激活

        以下是一个Python示例代码,展示如何实现这些激活方法,并用图形展示不同方法的效果,可以帮助大家更直观地理解。对比原始输出隶属函数(“全开”)、最小-蕴含法结果(隶属度在0.6处截断)和乘积-蕴含法结果(隶属度按0.6比例缩放)的代码如下:

import numpy as np

import matplotlib.pyplot as plt



# 定义输入范围

x = np.linspace(0, 10, 100)



# 后件隶属函数(全开阀门)

def consequent_mf(x):

    return np.where(x <= 5, 0,

           np.where(x <= 10, (x - 5)/5, 0))



# 激活方法实现

def min_implication(strength, mf):

    return np.minimum(strength, mf)



def product_implication(strength, mf):

    return strength * mf



# 前件激活强度

firing_strength = 0.6  # 假设规则激活强度为0.6



# 计算输出隶属度

mf = consequent_mf(x)

output_min = min_implication(firing_strength, mf)

output_product = product_implication(firing_strength, mf)



# 可视化

plt.figure(figsize=(10, 4))

plt.plot(x, mf, 'k--', label='Original MF')

plt.plot(x, output_min, 'r', lw=2, label='Min-Implication')

plt.plot(x, output_product, 'b', lw=2, label='Product-Implication')

plt.title('Rule Activation Methods Comparison')

plt.xlabel('Valve Opening (%)')

plt.ylabel('Membership Degree')

plt.legend()

plt.grid(True)

plt.show()

输出说明

(1)黑色虚线:原始输出隶属函数(“全开”)。

(2)红色曲线:最小-蕴含法结果(隶属度在0.6处截断)。

(3)蓝色曲线:乘积-蕴含法结果(隶属度按0.6比例缩放)。

总结

选择激活方法需平衡计算效率、输出平滑性和信息保留需求。

Mamdani模型常用最小或乘积法,适合需模糊输出的场景。

Takagi-Sugeno模型多用加权平均法,适合实时精确控制。

实际系统中可通过实验对比不同方法的效果,选择最优策略。

相关文章:

  • 【Tauri2】001——安装及运行
  • shadcn如何给dialog增加关闭按钮和隐藏右上角关闭按钮
  • 重写ring3 API函数
  • 安宝特应用 | 军工级数据安全赋能保密产品数字化交付
  • 第五章 动态规划
  • Linux文件描述符及重定向
  • 26考研——图_图的存储(6)
  • Python学习笔记(6)
  • 在计算进程D状态持续时间及等IO的时间遇到的一处问题
  • Resource usage
  • Flink 流处理框架的核心特性
  • PostgreSQL 连接数超限问题
  • 流程控制语句
  • 每日总结3.24
  • C/C++蓝桥杯算法真题打卡(Day10)
  • 刷刷刷刷刷
  • iPhone 16如何翻译文档?文档翻译技巧、软件推荐
  • 领域驱动设计(DDD)实践入门
  • nuxt3网站文章分享微信 ,QQ功能
  • stm第九天433M无线遥控灯
  • 前4个月我国货物贸易进出口同比增长2.4%,增速较一季度加快1.1个百分点
  • 洲际酒店:今年第一季度全球酒店平均客房收入同比增长3.3%
  • 无人机穿越大理千年古塔落券洞内,涉事“飞手”被行拘10日
  • 高进华“控股”后首份年报出炉,史丹利账上可动资金大幅缩水
  • 解读|降准叠加政策利率、公积金贷款利率、结构性政策工具利率全线下调,影响有多大?
  • 碧桂园服务:拟向杨惠妍全资持有的公司提供10亿元贷款,借款将转借给碧桂园用作保交楼