fuzzify是Yuka js库FuzzyModule的一个重要方法,它将数值转换成模糊变量。
fuzzify(value: number): void
undefined.
const fuzzyModule = new YUKA.FuzzyModule();
// 定义模糊变量
const distanceToTarget = fuzzyModule.createVariable('distance to target', 0, 100);
const shotAccuracy = fuzzyModule.createVariable('shot accuracy', 0, 10);
// 定义模糊集合与其隶属度函数
const targetClose = distanceToTarget.addLeftShoulderSet('target close', 0, 25, 50);
const targetMedium = distanceToTarget.addTriangularSet('target medium', 25, 50, 75);
const targetFar = distanceToTarget.addRightShoulderSet('target far', 50, 75, 100);
const poor = shotAccuracy.addLeftShoulderSet('poor', 0, 2.5, 5);
const moderate = shotAccuracy.addTriangularSet('moderate', 2.5, 5, 7.5);
const good = shotAccuracy.addRightShoulderSet('good', 5, 7.5, 10);
// 对distance与accuracy分别进行模糊化
fuzzyModule.fuzzify('distance to target', 73);
fuzzyModule.fuzzify('shot accuracy', 3.6);
//...做其他计算
在上面的例子中,我们可以对distanceToTarget与shotAccuracy变量单独进行模糊化,而不用一次性设置。
完成以上步骤后,变量的值将会自动转换为隶属于相应模糊集合的数值。例如,73将隶属于 targetFar 模糊集合。
该方法将提供的值转换为相应模糊集合中的模糊值。
此函数将在对象上更改其状态。
此方法不返回任何内容。
该方法将出错,如果未使用fuzzyModule.createVariable方法创建一个名字相同的变量。