37、模糊推理系统:Mamdani与Mamdani Type-2的深入解析

模糊推理系统:Mamdani与Mamdani Type-2的深入解析

1. 引言

在模糊逻辑领域,Mamdani模糊推理系统(FIS)是一种广泛应用的技术。它能够处理模糊信息,模拟人类的推理过程,在许多领域如控制工程、决策支持等发挥着重要作用。本文将详细介绍Type-1 Mamdani FIS和Interval Type-2 Mamdani FIS的相关内容,包括其创建方法、输入参数、属性以及对象函数等。

2. Type-1 Mamdani模糊推理系统
2.1 概述

可以使用 mamfis 对象来表示Type-1 Mamdani模糊推理系统。除了Type-1 Mamdani系统,还可以创建其他类型的模糊推理系统,如下表所示:
| 系统类型 | 对象 |
| ---- | ---- |
| Type-1 Sugeno系统 | sugfis 对象 |
| Type-2 Mamdani系统 | mamfistype2 对象 |
| Type-2 Sugeno系统 | sugfistype2 对象 |

2.2 创建方法

创建Mamdani FIS对象有以下几种方法:
- 使用 mamfis 函数。
- 若有输入和输出训练数据(分别为 inputData outputData ),可以使用 genfis 函数结合FCM聚类方法:

opt = genfisOptions('FCMClustering','FISType','mamdani');
fis = genfis(inputData,outputData,opt);
  • 若有Mamdani系统的 .fis 文件,可以使用 readfis 函数。
2.3 语法
  • fis = mamfis :创建具有默认属性值的Mamdani FIS。可以使用点符号修改模糊系统的属性。
  • fis = mamfis(Name,Value) :使用名称 - 值对参数指定FIS配置信息或设置对象属性。可以指定多个名称 - 值对,名称需用引号括起来。
2.4 输入参数

输入参数以名称 - 值对的形式指定,常见的参数如下表所示:
| 参数名称 | 描述 | 默认值 | 取值范围 |
| ---- | ---- | ---- | ---- |
| NumInputs | FIS输入的数量 | 0 | 非负整数 |
| NumInputMFs | 每个FIS输入的隶属函数数量 | 3 | 正整数 |
| NumOutputs | FIS输出的数量 | 0 | 非负整数 |
| NumOutputMFs | 每个FIS输出的隶属函数数量 | 3 | 正整数 |
| MFType | 隶属函数类型 | “trimf” | “trimf”(三角隶属函数)或 “gaussmf”(高斯隶属函数) |
| AddRules | 自动添加规则的标志 | “allcombinations” | “allcombinations” 或 “none” |

下面是创建具有两个输入变量的模糊系统的示例:

fis = mamfis('NumInputs',2);
2.5 属性

Mamdani FIS的属性包括名称、AND和OR运算符方法、蕴含方法、聚合方法、去模糊化方法等,具体如下:
| 属性名称 | 描述 | 默认值 | 取值范围 |
| ---- | ---- | ---- | ---- |
| Name | FIS名称 | “fis” | 字符串或字符向量 |
| AndMethod | AND运算符方法 | “min” | “min”、”prod”、字符串、字符向量或函数句柄 |
| OrMethod | OR运算符方法 | “max” | “max”、”probor”、字符串、字符向量或函数句柄 |
| ImplicationMethod | 蕴含方法 | “min” | “min”、”prod”、字符串、字符向量或函数句柄 |
| AggregationMethod | 聚合方法 | “max” | “max”、”sum”、”probor”、字符串、字符向量或函数句柄 |
| DefuzzificationMethod | 去模糊化方法 | “centroid” | “centroid”、”bisector”、”mom”、”lom”、”som”、字符串、字符向量或函数句柄 |
| Inputs | FIS输入变量 | | fisvar 对象的向量 |
| Outputs | FIS输出变量 | | fisvar 对象的向量 |
| Rules | FIS规则 | | fisrule 对象的向量 |
| DisableStructuralChecks | 禁用一致性检查的标志 | false | true 或 false |

以下是修改系统属性的示例:

fis = mamfis;
fis.DefuzzificationMethod = "centroid";
2.6 对象函数

mamfis 对象有一系列函数,用于添加和删除输入输出变量、规则、隶属函数,评估模糊推理系统等,如下表所示:
| 函数名称 | 描述 |
| ---- | ---- |
| addInput | 向模糊推理系统添加输入变量 |
| removeInput | 从模糊推理系统中移除输入变量 |
| addOutput | 向模糊推理系统添加输出变量 |
| removeOutput | 从模糊推理系统中移除输出变量 |
| addRule | 向模糊推理系统添加规则 |
| addMF | 向模糊变量添加隶属函数 |
| removeMF | 从模糊变量中移除隶属函数 |
| evalfis | 评估模糊推理系统 |
| writeFIS | 将模糊推理系统保存到文件 |
| convertToType2 | 将Type-1模糊推理系统转换为Type-2模糊推理系统 |

创建Mamdani模糊推理系统的流程图如下:

graph TD;
    A[开始] --> B{选择创建方法};
    B -->|mamfis函数| C[创建默认属性的FIS];
    B -->|genfis函数结合FCM| D[使用训练数据创建FIS];
    B -->|readfis函数| E[从.fis文件创建FIS];
    C --> F[可修改属性];
    D --> F;
    E --> F;
    F --> G[添加输入输出变量、规则等];
    G --> H[评估或保存FIS];
    H --> I[结束];
2.7 示例
  • 创建具有默认属性值的Mamdani模糊推理系统,并修改其属性:
fis = mamfis;
fis.DefuzzificationMethod = "centroid";
  • 创建具有指定AND和OR方法的Mamdani模糊系统:
fis = mamfis("AndMethod","prod","OrMethod","probor");
  • 创建具有三个输入和一个输出的Mamdani模糊推理系统:
fis = mamfis("NumInputs",3,"NumOutputs",1);
3. Interval Type-2 Mamdani模糊推理系统
3.1 概述

使用 mamfistype2 对象来表示Interval Type-2 Mamdani模糊推理系统。与Type-1 Mamdani系统类似,它也有多种创建方法和相关属性。

3.2 创建方法

创建Type-2 Mamdani FIS对象的方法如下:
- 使用 mamfistype2 函数。
- 若有输入和输出训练数据(分别为 inputData outputData ),可以先使用 genfis 函数结合FCM聚类方法创建Type-1 FIS,再使用 convertToType2 将其转换为Type-2系统:

opt = genfisOptions('FCMClustering','FISType','mamdani');
fis1 = genfis(inputData,outputData,opt);
fis = convertToType2(fis1);
  • 若有Type-2 Mamdani系统的 .fis 文件,可以使用 readfis 函数。
3.3 语法
  • fis = mamfistype2 :创建具有默认属性值的Type-2 Mamdani FIS。可以使用点符号修改模糊系统的属性。
  • fis = mamfistype2(Name,Value) :使用名称 - 值对参数指定FIS配置信息或设置对象属性。可以指定多个名称 - 值对,名称需用引号括起来。
3.4 输入参数

输入参数的名称和取值与Type-1 Mamdani系统类似,如下表所示:
| 参数名称 | 描述 | 默认值 | 取值范围 |
| ---- | ---- | ---- | ---- |
| NumInputs | FIS输入的数量 | 0 | 非负整数 |
| NumInputMFs | 每个FIS输入的隶属函数数量 | 3 | 正整数 |
| NumOutputs | FIS输出的数量 | 0 | 非负整数 |
| NumOutputMFs | 每个FIS输出的隶属函数数量 | 3 | 正整数 |
| MFType | 隶属函数类型 | “trimf” | “trimf”(三角隶属函数)或 “gaussmf”(高斯隶属函数) |
| AddRules | 自动添加规则的标志 | “allcombinations” | “allcombinations” 或 “none” |

3.5 属性

Type-2 Mamdani FIS的属性与Type-1 Mamdani系统大部分相同,但有一个额外的 TypeReductionMethod 属性,用于将Type-2输出模糊集转换为区间Type-1模糊集,具体如下:
| 属性名称 | 描述 | 默认值 | 取值范围 |
| ---- | ---- | ---- | ---- |
| Name | FIS名称 | “fis” | 字符串或字符向量 |
| AndMethod | AND运算符方法 | “min” | “min”、”prod”、字符串、字符向量或函数句柄 |
| OrMethod | OR运算符方法 | “max” | “max”、”probor”、字符串、字符向量或函数句柄 |
| ImplicationMethod | 蕴含方法 | “min” | “min”、”prod”、字符串、字符向量或函数句柄 |
| AggregationMethod | 聚合方法 | “max” | “max”、”sum”、”probor”、字符串、字符向量或函数句柄 |
| DefuzzificationMethod | 去模糊化方法 | “centroid” | 仅支持 “centroid” |
| Inputs | FIS输入变量 | | fisvar 对象的向量 |
| Outputs | FIS输出变量 | | fisvar 对象的向量 |
| Rules | FIS规则 | | fisrule 对象的向量 |
| DisableStructuralChecks | 禁用一致性检查的标志 | false | true 或 false |
| TypeReductionMethod | 类型约简方法 | “karnikmendel” | “karnikmendel”、”ekm”、”iasc”、”eiasc”、字符串或函数句柄 |

以下是修改Type-2 Mamdani系统属性的示例:

fis = mamfistype2;
fis.TypeReductionMethod = "ekm";
3.6 对象函数

mamfistype2 对象的函数与 mamfis 对象类似,但有一个额外的 convertToType1 函数,用于将Type-2模糊推理系统转换为Type-1模糊推理系统,如下表所示:
| 函数名称 | 描述 |
| ---- | ---- |
| addInput | 向模糊推理系统添加输入变量 |
| removeInput | 从模糊推理系统中移除输入变量 |
| addOutput | 向模糊推理系统添加输出变量 |
| removeOutput | 从模糊推理系统中移除输出变量 |
| addRule | 向模糊推理系统添加规则 |
| addMF | 向模糊变量添加隶属函数 |
| removeMF | 从模糊变量中移除隶属函数 |
| evalfis | 评估模糊推理系统 |
| writeFIS | 将模糊推理系统保存到文件 |
| convertToType2 | 将Type-1模糊推理系统转换为Type-2模糊推理系统 |
| convertToType1 | 将Type-2模糊推理系统转换为Type-1模糊推理系统 |

创建Type-2 Mamdani模糊推理系统的流程图如下:

graph TD;
    A[开始] --> B{选择创建方法};
    B -->|mamfistype2函数| C[创建默认属性的Type-2 FIS];
    B -->|genfis结合FCM再转换| D[使用训练数据创建Type-1 FIS并转换];
    B -->|readfis函数| E[从.fis文件创建Type-2 FIS];
    C --> F[可修改属性];
    D --> F;
    E --> F;
    F --> G[添加输入输出变量、规则等];
    G --> H[评估或保存FIS];
    H --> I[结束];
3.7 示例
  • 创建具有默认属性值的Type-2 Mamdani模糊推理系统,并修改其类型约简方法:
fis = mamfistype2;
fis.TypeReductionMethod = "ekm";
  • 创建具有指定类型约简方法的Type-2 Mamdani模糊系统:
fis = mamfistype2('TypeReductionMethod',"ekm");
  • 创建具有三个输入和一个输出的Type-2 Mamdani模糊推理系统:
fis = mamfis("NumInputs",3,"NumOutputs",1);
4. 总结

本文详细介绍了Type-1 Mamdani模糊推理系统和Interval Type-2 Mamdani模糊推理系统的相关内容,包括其创建方法、输入参数、属性、对象函数和示例。通过这些信息,读者可以更好地理解和使用这两种模糊推理系统,在实际应用中根据需求选择合适的系统类型,并灵活配置其参数和属性。

模糊推理系统:Mamdani与Mamdani Type-2的深入解析

5. 两种系统的对比分析
5.1 创建方法对比
系统类型 创建方法 特点
Type - 1 Mamdani 1. mamfis 函数;2. genfis 函数结合FCM聚类方法;3. readfis 函数读取 .fis 文件 较为直接,可根据有无训练数据和 .fis 文件灵活选择
Type - 2 Mamdani 1. mamfistype2 函数;2. genfis 结合FCM创建Type - 1 FIS后用 convertToType2 转换;3. readfis 函数读取 .fis 文件 对于有Type - 1系统基础的情况,可通过转换得到,增加了灵活性
5.2 属性对比

Type - 2 Mamdani系统在属性上与Type - 1 Mamdani系统大部分相同,但有一些关键差异:
- 去模糊化方法 :Type - 1 Mamdani系统支持多种去模糊化方法,如 “centroid”、”bisector”、”mom” 等;而Type - 2 Mamdani系统仅支持 “centroid” 去模糊化方法。
- 类型约简方法 :Type - 2 Mamdani系统有额外的 TypeReductionMethod 属性,用于将Type - 2输出模糊集转换为区间Type - 1模糊集,取值包括 “karnikmendel”、”ekm” 等。

graph LR;
    A[Type - 1 Mamdani属性] --> B[多种去模糊化方法];
    C[Type - 2 Mamdani属性] --> D[仅支持centroid去模糊化];
    C --> E[有TypeReductionMethod属性];
5.3 对象函数对比

两种系统的对象函数大部分相同,都有添加和删除输入输出变量、规则、隶属函数等功能。但Type - 2 Mamdani系统有一个额外的 convertToType1 函数,可将Type - 2模糊推理系统转换为Type - 1模糊推理系统,方便在不同类型系统之间切换。

6. 实际应用场景
6.1 Type - 1 Mamdani系统应用场景
  • 控制工程 :在一些对模糊信息处理要求不是特别复杂的控制系统中,Type - 1 Mamdani系统可以快速构建模糊控制器。例如,简单的温度控制系统,根据环境温度和设定温度的差值,通过模糊规则输出控制信号来调节加热或制冷设备。
  • 决策支持 :在一些决策场景中,如风险评估、资源分配等,Type - 1 Mamdani系统可以根据多个模糊因素进行推理,给出决策建议。

操作步骤:
1. 确定输入变量(如温度差值、风险因素等)和输出变量(如控制信号、决策结果等)。
2. 根据实际情况设置输入输出变量的隶属函数和模糊规则。
3. 使用 mamfis 函数创建模糊推理系统,并根据需要修改属性。
4. 调用 evalfis 函数进行评估,得到输出结果。

6.2 Type - 2 Mamdani系统应用场景
  • 复杂不确定性环境 :当系统存在大量不确定性和模糊性时,Type - 2 Mamdani系统能够更好地处理这些信息。例如,在金融市场预测中,市场情况复杂多变,存在很多不确定因素,Type - 2 Mamdani系统可以更准确地模拟这种不确定性。
  • 高精度控制 :在一些对控制精度要求较高的领域,如航空航天、机器人控制等,Type - 2 Mamdani系统可以通过更精确的模糊推理提供更准确的控制信号。

操作步骤:
1. 确定输入输出变量和训练数据(如果有)。
2. 若有训练数据,使用 genfis 结合FCM创建Type - 1 FIS,再用 convertToType2 转换为Type - 2系统;若无训练数据,使用 mamfistype2 函数创建系统。
3. 根据实际情况设置输入输出变量的隶属函数、模糊规则和类型约简方法等属性。
4. 调用 evalfis 函数进行评估,得到输出结果。

7. 注意事项
7.1 一致性检查

在使用 mamfis mamfistype2 对象时,默认会进行一致性检查,确保属性值的更改与其他对象属性一致。但这些检查可能会影响性能,特别是在循环中创建和更新模糊系统时。可以通过设置 DisableStructuralChecks 属性为 true 来禁用这些检查,以加快FIS构建速度,但要注意禁用结构检查可能会导致无效的对象。若要重新启用一致性检查,需先确保对FIS所做的更改是一致的,能产生有效的对象,否则会生成错误。

7.2 自定义函数使用

两种系统都支持使用自定义函数,如自定义AND、OR、蕴含、聚合和去模糊化函数等。在使用自定义函数时,要确保函数位于当前工作文件夹或MATLAB路径中,并且函数的输入输出格式符合要求。

8. 总结与展望

本文全面介绍了Type - 1 Mamdani和Interval Type - 2 Mamdani模糊推理系统,通过对它们的创建方法、输入参数、属性、对象函数的详细阐述,以及对比分析和实际应用场景的介绍,让读者对这两种系统有了更深入的了解。在实际应用中,可根据系统的复杂程度、不确定性程度和对精度的要求等因素,选择合适的系统类型。

未来,随着模糊逻辑技术的不断发展,这两种模糊推理系统可能会在更多领域得到应用,并且可能会有更高效的创建方法和更强大的功能出现。例如,在人工智能和大数据领域,模糊推理系统可以与其他技术相结合,处理更复杂的问题。同时,对于Type - 2系统的研究可能会进一步深入,提高其处理不确定性的能力和计算效率。

希望读者通过本文的介绍,能够在实际项目中灵活运用这两种模糊推理系统,发挥它们的优势,解决各种模糊信息处理问题。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值