Updated August 2026 — full tutorial restored for this URL.
Fuzzy logic lets values be partially true — not only 0 or 1. It is useful when human labels like “warm” or “fast” are vague but still actionable (thermostats, washing machines, recommendation scores).
1. Crisp vs fuzzy
- Crisp: temp ≥ 25 ⇒ hot, else not hot.
- Fuzzy: at 24°C you might be 0.7 “warm” and 0.3 “hot”.
2. Membership functions
A membership function μ(x) maps input x to [0, 1]. Common shapes: triangle, trapezoid, Gaussian.
def triangle(x, a, b, c):
if x <= a or x >= c: return 0.0
if x == b: return 1.0
if x < b: return (x - a) / (b - a)
return (c - x) / (c - b)
3. Temperature example
def cold(t): return triangle(t, 0, 10, 20)
def warm(t): return triangle(t, 15, 25, 35)
def hot(t): return triangle(t, 30, 40, 50)
t = 28
print(cold(t), warm(t), hot(t))
4. Fuzzy rules (IF–THEN)
Example: IF temperature is hot AND humidity is high THEN fan_speed is fast. Engines combine rule strengths (min/max or product) then defuzzify to a crisp output (centroid is common).
5. Where it shows up
Control systems, games (NPC “aggression”), and scoring pipelines. For most business apps, start with clear thresholds; use fuzzy logic when experts literally speak in grades of truth.