Skip to contents

Implements defuzzification methods for fuzzy evaluation vectors, including weighted average and maximum membership methods.

Usage

defuzzify(mu, scores, method = "weighted_average")

Arguments

mu

Numeric vector, membership degrees for evaluation levels, in 0, 1.

scores

Numeric vector, scores corresponding to each evaluation level (e.g., c(100, 80, 60, 40) for "Excellent", "Good", "Fair", "Poor").

method

Character, defuzzification method: "weighted_average", "max_membership", "centroid".

Value

Numeric, defuzzified output value.

Examples

# Example: Defuzzify fuzzy evaluation vectors for three schemes
mu = c(0.318, 0.351, 0.203, 0.128)
scores = c(30, 60, 75, 90)  # Scores for "Poor", "Fair", "Good", "Excellent"
defuzzify(mu, scores, method = "weighted_average")
#> [1] 57.345
defuzzify(mu, scores, method = "max_membership")
#> [1] 60
defuzzify(mu, scores, method = "centroid")
#> [1] 57.345