Package: pyfuzzylite
pyfuzzylite 8.0.1A Fuzzy Logic Control Library in PythonbyJuan Rada-Vilela, PhDmain branchdevelopment branchFuzzyLiteThe FuzzyLite Libraries for Fuzzy Logic Controlrefer tofuzzylite(C++),pyfuzzylite(Python),
andjfuzzylite(Java).Thegoalof the FuzzyLite Libraries is toeasilydesign andefficientlyoperate fuzzy logic controllers
following anobject-orientedprogramming model with minimal dependency on external libraries.Licensepyfuzzyliteis dual-licensed under theGNU GPL 3.0and under aproprietary license for commercial purposes.You arestronglyencouraged to support the development of the FuzzyLite Libraries by purchasing a license
ofQtFuzzyLite.QtFuzzyLiteis the best graphical user interface available to easily design and
directly operate fuzzy logic controllers in real time. Available for Windows, Mac, and Linux, its goal is to
significantlyspeed upthe design of your fuzzy logic controllers, while providing a veryuseful,functionalandbeautifuluser interface.
Please, download it and check it out for free atfuzzylite.com/downloads.Installpip install pyfuzzyliteFeaturesDocumentation:fuzzylite.github.io/pyfuzzylite/(6) Controllers: Mamdani, Takagi-Sugeno, Larsen, Tsukamoto, Inverse Tsukamoto, Hybrid(25) Linguistic terms:  (5)Basic: Triangle, Trapezoid, Rectangle, Discrete, SemiEllipse.
(8)Extended: Bell, Cosine, Gaussian, GaussianProduct, PiShape, SigmoidDifference, SigmoidProduct, Spike.
(7)Edges: Arc, Binary, Concave, Ramp, Sigmoid, SShape, ZShape.
(3)Functions: Constant, Linear, Function. (2)Special: Aggregated, Activated.(7) Activation methods:  General, Proportional, Threshold, First, Last, Lowest, Highest.(9) Conjunction and Implication (T-Norms): Minimum, AlgebraicProduct, BoundedDifference, DrasticProduct,
EinsteinProduct, HamacherProduct, NilpotentMinimum, LambdaNorm, FunctionNorm.(11) Disjunction and Aggregation (S-Norms):  Maximum, AlgebraicSum, BoundedSum, DrasticSum, EinsteinSum,
HamacherSum, NilpotentMaximum, NormalizedSum, UnboundedSum, LambdaNorm, FunctionNorm.(7) Defuzzifiers:  (5)Integral: Centroid, Bisector, SmallestOfMaximum, LargestOfMaximum, MeanOfMaximum.
(2)Weighted: WeightedAverage, WeightedSum.(7) Hedges: Any, Not, Extremely, Seldom, Somewhat, Very, Function.(3) Importers: FuzzyLite Languagefll. Withfuzzylite: Fuzzy Inference Systemfis, Fuzzy Control
Languagefcl.(7) Exporters:Python, FuzzyLite Languagefll, FuzzyLite Datasetfld. Withfuzzylite:C++,Java,
FuzzyLite Languagefll, FuzzyLite Datasetfld,Rscript, Fuzzy Inference Systemfis, Fuzzy Control
Languagefcl.(30+) Examplesof Mamdani, Takagi-Sugeno, Tsukamoto, and Hybrid controllers fromfuzzylite, Octave, and Matlab,
each included in the following formats:py,fll,fld. Withfuzzylite:C++,Java,R,fis, andfcl.ExamplesFuzzyLite Language# File: examples/mamdani/ObstacleAvoidance.fllEngine:ObstacleAvoidanceInputVariable:obstacleenabled:truerange:0.000 1.000lock-range:falseterm:left Ramp 1.000 0.000term:right Ramp 0.000 1.000OutputVariable:mSteerenabled:truerange:0.000 1.000lock-range:falseaggregation:Maximumdefuzzifier:Centroid 100default:nanlock-previous:falseterm:left Ramp 1.000 0.000term:right Ramp 0.000 1.000RuleBlock:mamdanienabled:trueconjunction:nonedisjunction:noneimplication:AlgebraicProductactivation:Generalrule:if obstacle is left then mSteer is rightrule:if obstacle is right then mSteer is left# Pythonimportfuzzyliteasflengine=fl.FllImporter().from_file("examples/mamdani/ObstacleAvoidance.fll")Pythonimportfuzzyliteasflengine=fl.Engine(name="ObstacleAvoidance",input_variables=[fl.InputVariable(name="obstacle",minimum=0.0,maximum=1.0,lock_range=False,terms=[fl.Ramp("left",1.0,0.0),fl.Ramp("right",0.0,1.0)],)],output_variables=[fl.OutputVariable(name="mSteer",minimum=0.0,maximum=1.0,lock_range=False,lock_previous=False,default_value=fl.nan,aggregation=fl.Maximum(),defuzzifier=fl.Centroid(resolution=100),terms=[fl.Ramp("left",1.0,0.0),fl.Ramp("right",0.0,1.0)],)],rule_blocks=[fl.RuleBlock(name="mamdani",conjunction=None,disjunction=None,implication=fl.AlgebraicProduct(),activation=fl.General(),rules=[fl.Rule.create("if obstacle is left then mSteer is right"),fl.Rule.create("if obstacle is right then mSteer is left"),],)],)ContributingAll contributions are welcome, provided they follow the following guidelines:Pull requests are made to thedevelopmentbranchSource code is consistent with standards in the libraryContribution is properly documented and tested, raising issues where appropriateContribution is licensed under the FuzzyLite LicenseReferenceIf you are using the FuzzyLite Libraries, please cite the following reference in your article:Juan Rada-Vilela. The FuzzyLite Libraries for Fuzzy Logic Control, 2018. URLhttps://fuzzylite.com.Or usingbibtex:@misc{fl::fuzzylite,author={Juan Rada-Vilela},title={The FuzzyLite Libraries for Fuzzy Logic Control},url={https://fuzzylite.com},year={2018}}fuzzylite® is a registered trademark of FuzzyLite Limitedjfuzzylite™ is a trademark of FuzzyLite Limitedpyfuzzylite™ is a trademark of FuzzyLite LimitedQtFuzzyLite™ is a trademark of FuzzyLite Limited