@thi.ng/fuzzy
Version:
Fuzzy logic operators & configurable rule inferencing engine
29 lines (28 loc) • 462 B
JavaScript
const variable = (domain, terms) => ({
domain,
terms
});
const classify = ({ terms }, x, threshold = 0) => {
let max = threshold;
let maxID;
for (let id in terms) {
const t = terms[id](x);
if (t >= max) {
max = t;
maxID = id;
}
}
return maxID;
};
const evaluate = ({ terms }, x) => {
const res = {};
for (let id in terms) {
res[id] = terms[id](x);
}
return res;
};
export {
classify,
evaluate,
variable
};