UNPKG

tiny-essentials

Version:

Collection of small, essential scripts designed to be used across various projects. These simple utilities are crafted for speed, ease of use, and versatility.

88 lines 3.15 kB
export function defuzzifyCentroid(fuzzyOutput: { [x: string]: number; }, outputSets: FuzzySet[], step?: number): number; export function trapezoid(value: number, a: number, b: number, c: number, d: number, optimize?: boolean): number; /** * Represents a single Membership Function (Trapezoidal). */ export class FuzzySet { /** * Utility to calculate fuzzy membership using a trapezoidal shape. * @param {number} value - The input value to check. * @param {number} a - Start of the rise. * @param {number} b - End of the rise (start of plateau). * @param {number} c - Start of the fall (end of plateau). * @param {number} d - End of the fall. * @param {boolean} [optimize=false] - Performance optimization flag. * @returns {number} Degree of membership [0, 1]. */ static trapezoid(value: number, a: number, b: number, c: number, d: number, optimize?: boolean): number; /** * @param {string} name - Name of the set (e.g., "Hot"). * @param {number} a - Left foot. * @param {number} b - Left shoulder. * @param {number} c - Right shoulder. * @param {number} d - Right feet. * @param {boolean} [optimize=false] - Enables performance optimization. */ constructor(name: string, a: number, b: number, c: number, d: number, optimize?: boolean); set name(value: string); get name(): string; set a(value: number); get a(): number; set b(value: number); get b(): number; set c(value: number); get c(): number; set d(value: number); get d(): number; set optimize(value: boolean); get optimize(): boolean; /** * Calculates the membership degree. * @param {number} x - Crisp input. * @returns {number} */ calculate(x: number): number; #private; } /** * The Inference Engine handles linguistic variables and defuzzification. */ export class MamdaniInferenceSystem { /** * Registers a linguistic variable and its sets. * @param {string} name - Variable name (e.g., "temperature"). * @param {FuzzySet[]} sets - Array of fuzzy sets. */ addVariable(name: string, sets: FuzzySet[]): void; /** * Removes a linguistic variable. * @param {string} name - Variable name (e.g., "temperature"). * @returns {boolean} True if the element was successfully removed. */ removeVariable(name: string): boolean; /** * Gets a linguistic variable and its sets. * @param {string} name - Variable name (e.g., "temperature"). * @returns {FuzzySet[]} */ getVariable(name: string): FuzzySet[]; /** * Checks if a linguistic variable exists. * @param {string} name - Variable name (e.g., "temperature"). * @returns {boolean} */ hasVariable(name: string): boolean; /** * Fuzzifies a crisp input into a map of memberships. * @param {string} varName * @param {number} value * @returns {Object.<string, number>} */ fuzzify(varName: string, value: number): { [x: string]: number; }; #private; } //# sourceMappingURL=TinyMamdaniInferenceSystem.d.mts.map