最好的模糊逻辑(fuzzy logic)定义是由其发明人
Lotfi Zadeh提供的:
“模糊逻辑是一种将问题表现给计算机的方式,类似于人类解决问题的方式。而模糊逻辑的实质是,每件事情都有一个程度。”
用计算机解决问题的意义类似于人类解决问题可通过来自篮球比赛的简单例子轻松解释。如果一名球员想要防守另一名球员,首先他应该考虑对方的身高和打球技巧。如果要防守的球员比他高并且相对于他运球速度很慢,那么他将使用直觉决定是否应该防守这个球员,因为对他来说存在不确定性。在这个例子中,重要的是性质与球员相关,身高和打球技巧有一个程度。模糊逻辑为这种不确定情况提供了一种确定性方法。
处理模糊逻辑的步骤包括几个部分(参见图1)。这些步骤包括:第一步是模糊化,将清晰的输入转换为模糊输入;第二步是使用模糊规则处理这些输入,以创建模糊输出;最后是去模糊化,其结果是模糊逻辑中可以有多种具有不同程度的结果。
![image004](https://istack.dev59.com/ZbdwO.gif)
图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
![image005](https://istack.dev59.com/qrXee.webp)
图2-身高
![image007](https://istack.dev59.com/pyjhr.webp)
图3-速度
根据规则和输入数据,模糊系统将生成一个输出,例如:守卫的程度为0.7,有时守卫的程度为0.4,从不守卫的程度为0.2。
![image009](https://istack.dev59.com/TovPD.webp)
图4-输出模糊集
在最后一步中,使用去模糊化来创建一个清晰的输出,即可以确定我们在比赛期间应该使用的能量。重心是创建输出的常用方法。在此阶段,计算平均点的权重完全取决于实现方式。在本应用程序中,考虑到对守卫或不守卫给予高权重,但对有时守卫给予低权重。 (David M. Bourg,2004)
![image012](https://istack.dev59.com/ZPVAP.gif)
图5-模糊输出(David M. Bourg P.204)
Output = [0.7 * (-10) + 0.4 * 1 + 0.2 * 10] / (0.7 + 0.4 + 0.2) ≈ -3.5
作为一种处理不确定性的决策方法,模糊逻辑可以用来确定决策程度。然而,模糊逻辑的问题在于随着输入数量的增加,规则数量呈指数级增长。
如需了解更多信息及其在游戏中的应用,请查看我写的一篇小文章:
点击这里。