在Yuka.js库的FuzzyVariable类中,fuzzySets属性保存着该变量使用的模糊集合。每个模糊集合都有一个名称和一个隶属函数。
每个fuzzySet都有以下属性:
name :模糊集合的名称
memberShipFunction :模糊隶属函数的类型,可以是以下类型之一:
memberShipParams :模糊隶属函数的参数,根据不同类型的隶属函数不同。
每个fuzzySet都有以下方法:
以下是定义一个模糊集合的示例代码:
const fuzzySet = {
name: "Coolness",
memberShipFunction: "Triangle",
memberShipParams: {
left: 0,
peak: 5,
right: 10
},
calculateMembershipDegree(value) {
const { left, peak, right } = this.memberShipParams;
if (value <= left || value >= right) {
return 0;
} else if (value === peak) {
return 1;
} else if (value < peak) {
return (value - left) / (peak - left);
} else {
return (right - value) / (right - peak);
}
}
}
以上代码定义了一个三角型的模糊集合,名称为"Coolness",峰值为5,左侧边缘值为0,右侧边缘值为10。calculateMembershipDegree方法实现了三角形隶属函数的计算公式。