0

我想制作一个推理模糊引擎,它可以推断出 3 种类型的规则:

  • 清晰的规则。
  • 模糊规则。
  • 具有清晰和模糊事实的混合规则。

每个规则都有一个假设集、一个结论集和一个确定性因子。在集合的事实中,如果一个事实是一个模糊的事实,那么它就具有一定程度的真实性。

有推断清晰规则和模糊规则的教程,但我如何推断混合规则?

4

1 回答 1

1

模糊规则不是清晰规则的概括(如果我正确理解清晰规则的含义)。将模糊规则转换为清晰规则的方法是确保前件中的隶属函数 (MF) 不与任何其他隶属函数重叠,并且随后的 MF 是这样的,当去模糊时,它基本上给出了单一的清晰值。

例如:输入温度如下 MF:

temp_low_mf = fuzz.trimf(x_temp, [0, 0, 10])
temp_med_mf = fuzz.trimf(x_temp, [0, 20, 45])
temp_high_mf = fuzz.trimf(x_temp, [20, 45, 45])

输出风扇速度具有与清晰规则相关的 MF 之一:

fanspeed_low_mf = fuzz.trimf(x_fanspeed, [0, 0, 0])

所以下面的模糊规则实际上是一个清晰的规则:

rule1 = ctrl.Rule(tempAnt['low'], fanspeedCon['low'], "Cold Climate Rule")

即:如果温度小于 10,则风扇速度应为 0。

于 2016-11-04T11:49:52.117 回答