模糊子集到另一个子集的去模糊化

问题描述

我正在为一个项目进行漏洞评估,并且阅读了很多关于模糊集理论和层次分析过程的文章,我认为这些方法解决我的决策问题的不精确、模糊和不确定特征的完美方法

**Problem 1**:

我有很多标准可以用来判断一个位置的漏洞,但是我遗漏了一些拼图,而且我在 python 编程方面的低技能也没有帮助。我已经建立了一个 GIS 工作流模型来测量从位置(X1、X2、X3、...、Xn)到各种景观元素(河流、湖泊、道路等)的距离。从这里开始,我根据距离为每个标准开发了一个漏洞量表。下面是我为一个标准创建的模糊隶属函数

Fuzzy Subset Membership Function for Criterion

举个例子,当我在我创建的 python 程序中运行解释器时,我得到以下距离的隶属度:

Rd min:  0.0;
Rd low:  0.5;
Rd int:  0.5;
Rd high:  0.0;
Rd vhigh:  0.0; 

从这里开始,我想将这些结果去模糊化为一个漏洞等级 (0-5)(vul) 以供以后使用加权线性组合方法汇总某个位置的其他 5 个漏洞结果时使用

i.e. Total Vulnerability = W1(vul1) + W2(vul2) + W3(vul3 + W4(vul4) + W5(vul5).

Vulnerability Fuzzy Subset Membership Functions

我遇到的问题是如何将单个标准映射到漏洞子集。我知道有基于规则的方法,但想不出规则来描述我想要它做什么。我将不胜感激关于如何将标准映射到漏洞子集的任何建议或指导。任何参考也很好。

解决方法

我在阅读了一篇关于单输入单输出 (SISO) 模糊系统的文章后回答了这个问题。

规则就是这样:

  1. 如果道路标准最小,则脆弱性最小。

    rule1 = ctrl.Rule(road['min'],vul['min']).

第 1 步:

生成的 25 公里距离的模糊化成员资格如下所示:

Interpreted Distance

第 2 步:

在模糊控制系统中执行规则后,产生最终的解模糊值:

Defuzzified Value