模糊逻辑的最佳定义是其发明者Lotfi Zadeh:
“模糊逻辑以类似于人类解决问题的方式向计算机表示问题的方式,模糊逻辑的本质是一切都是程度问题。”
用一个篮球比赛中的简单例子可以很容易地解释用计算机解决问题类似于人类解决问题的意义;如果一个球员想要防守另一个球员,首先他应该考虑他的身高和他的比赛技巧。简单来说,如果他想要防守的球员个子很高,并且相对于他来说打得非常慢,那么他会根据自己的直觉来决定是否应该防守那个球员,因为对他来说存在不确定性。在这个例子中,重要的一点是属性是相对于玩家的,并且对于对手玩家的身高和演奏技巧有一定程度的影响。模糊逻辑为这种不确定的情况提供了一种确定性的方法。
有一些处理模糊逻辑的步骤(图 1)。这些步骤是;首先是模糊化,其中清晰的输入被转换为模糊输入,其次这些输入通过模糊规则处理以创建模糊输出,最后是去模糊化,其结果是结果的程度,因为在模糊逻辑中可以有多个不同程度的结果。
图 1 – 模糊过程步骤 (David M. Bourg P.192)
为了举例说明模糊处理步骤,可以使用之前的篮球比赛情况。如示例中所述,对手球员身高 1.87 米,相对于我们的球员来说相当高,并且可以以 3 m/s 的速度运球,相对于我们的球员来说很慢。除了这些数据之外,还需要考虑一些称为模糊规则的规则,例如:
if player is short but not fast then guard,
if player is fast but not short then don’t guard
If player is tall then don’t guard
If player is average tall and average fast guard
图 2 - 多高
图 3- 有多快
根据规则和输入数据,将通过模糊系统创建输出,例如;守卫的度数是 0.7,有时守卫的度数是 0.4,从不守卫的度数是 0.2。
图4-输出模糊集
在最后一步,去模糊化,用于创建一个清晰的输出,这个数字可以决定我们在游戏中应该用来保护玩家的能量。质心是创建输出的常用方法。在这个阶段,计算平均点的权重完全取决于实现。在这个应用程序中,它被认为给后卫或不后卫赋予高权重,但有时对后卫给予低权重。 (大卫·M·博格,2004 年)
图 5- 模糊输出 (David M. Bourg P.204)
Output = [0.7 * (-10) + 0.4 * 1 + 0.2 * 10] / (0.7 + 0.4 + 0.2) ≈ -3.5
因此,模糊逻辑在不确定性下使用来做出决策并找出决策的程度。模糊逻辑的问题是随着输入数量的增加规则数量呈指数增长。
关于更多信息及其在游戏中的可能应用我写了一篇小文章check this out