Skip to content

tyro-apil/fuzzBuzz

Repository files navigation

fuzzBuzz: FUZZY INFERENCE SYSTEM FROM SCRATCH

Setup

  1. Create and activate virtual environment

    python -m venv .env
    source .env/bin/activate
  2. Install required packages

    pip install -r requirements.txt

Library Usage Example

Example

Control Fan Speed based on temperature and humidity

  1. Without visualization plots

    python usage.py
  2. With visualization plots

    python usage_viz.py

Plots

  1. Membership functions of input and output variables along with fuzzification of input variables Linguistic Variables membership functions

  2. Detailed Rule Activation Detailed Rule Activation

  3. Combined Rule Activation Detailed Rule Activation

  4. Defuzzification Detailed Rule Activation

Inference Pipeline

  1. Input: Crisp values (e.g., temperature=38, humidity=70)

  2. Fuzzification:

    • Convert crisp -> fuzzy membership degrees
    • Use triangular/trapezoidal membership functions
  3. Rule Evaluation:

    • Apply IF-THEN rules with OR/AND operators
    • Calculate rule activation strengths
  4. Aggregation:

    • Combine activated output membership functions
    • Use max (union) operation
  5. Defuzzification:

    • Convert aggregated fuzzy set → crisp value
    • Centroid method
  6. Output: Crisp control value (e.g., fan speed=75.2)

FIS Pipeline Flowchart

FIS pipeline

Application: Edge Detection

python main.py <image_path> <threshold: [0-100] Default: 25>
  • Example Usage
python main.py pictures/pic1.jpg 18 

Edge Detection

Reusable Geometric Utility Classes & Functions

  1. utils/line.py
    • Point Dataclass
    • Line Class:
      Modeled using y = mx + c
      Handled vertical line edge-case
    • Intersection calculation functions for both lines and line-segements
  2. utils/polygon.py
    • Polygon Class
    • combinePolygons function
      Targeted just for trapezoids, triangles and their portions whose one side sits on X-axis
  3. utils/centroid.py
    • Area calculation funtion of polygon
    • Centroid calculation function of polygon

Slides And Report

About

Self-made Mamdani Fuzzy Inference System

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages