Implementation fo various soft computing techniques taught in my undergraduate soft computing elective course.
Implementation of fuzzy logic concepts. Engine is implemented completely in the Fuzzy.py file. Implemented functionality include :
- Class for linguistic variables
- Class for fuzzy sets
- Class for fuzzy relations
- Dynamic relation from linguistic variables to fuzzy sets allowing plotting different sets defined on the same variable
- Ability to get membership function from a list or generated using a function
- Common operations on fuzzy sets and relations
- Inverting
- Union
- Intersection
- Composition of relations
- Cartesion product of sets
- Alpha cuts on sets
- Defuzzification methods on sets
- Earliest maxima
- Centroid
- Mean of maxima
- Implementation of zadehs extension principle for creating new fuzzy sets and linguistic variables (FuzzySet.extend())
Unit tests test most functionality, but is not extensive enough to conver all cases.