Interface TNorm


public interface TNorm
T-norm (Triangular norm) for fuzzy logic.

A t-norm is a binary operation on [0,1] that generalizes the logical AND. It must satisfy: commutativity, associativity, monotonicity, and have 1 as identity.

Common t-norms include: - Minimum: min(a, b) - Product: a * b - Łukasiewicz: max(0, a + b - 1) - Drastic: min(a,b) if max(a,b)=1, else 0

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final TNorm
    Drastic t-norm: min(a,b) if max(a,b)=1, else 0
    static final TNorm
    Hamacher product t-norm: (a*b)/(a+b-a*b) if a+b≠0, else 0
    static final TNorm
    Łukasiewicz t-norm: max(0, a + b - 1)
    static final TNorm
    Minimum t-norm: min(a, b)
    static final TNorm
    Nilpotent minimum t-norm: min(a,b) if a+b>1, else 0
    static final TNorm
    Product t-norm: a * b
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    apply(double a, double b)
    Applies the t-norm to two values.
    default double
    applyConorm(double a, double b)
    Applies the t-conorm (S-norm) - dual of t-norm.
  • Field Details

    • MINIMUM

      static final TNorm MINIMUM
      Minimum t-norm: min(a, b)
    • PRODUCT

      static final TNorm PRODUCT
      Product t-norm: a * b
    • LUKASIEWICZ

      static final TNorm LUKASIEWICZ
      Łukasiewicz t-norm: max(0, a + b - 1)
    • DRASTIC

      static final TNorm DRASTIC
      Drastic t-norm: min(a,b) if max(a,b)=1, else 0
    • NILPOTENT_MINIMUM

      static final TNorm NILPOTENT_MINIMUM
      Nilpotent minimum t-norm: min(a,b) if a+b>1, else 0
    • HAMACHER_PRODUCT

      static final TNorm HAMACHER_PRODUCT
      Hamacher product t-norm: (a*b)/(a+b-a*b) if a+b≠0, else 0
  • Method Details

    • apply

      double apply(double a, double b)
      Applies the t-norm to two values.
      Parameters:
      a - first value in [0,1]
      b - second value in [0,1]
      Returns:
      the t-norm result
    • applyConorm

      default double applyConorm(double a, double b)
      Applies the t-conorm (S-norm) - dual of t-norm. S(a,b) = 1 - T(1-a, 1-b)
      Parameters:
      a - first value in [0,1]
      b - second value in [0,1]
      Returns:
      the t-conorm result