All Projects → phelipe → Fuzzy.jl

phelipe / Fuzzy.jl

Licence: other
Fuzzy Inference System in julia

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to Fuzzy.jl

fasill
Fuzzy Aggregators and Similarity Into a Logic Language
Stars: ✭ 20 (+5.26%)
Mutual labels:  fuzzy-logic
PyNets
A Reproducible Workflow for Structural and Functional Connectome Ensemble Learning
Stars: ✭ 114 (+500%)
Mutual labels:  fuzzy-logic
pyfuzzylite
pyfuzzylite: a fuzzy logic control library in Python
Stars: ✭ 42 (+121.05%)
Mutual labels:  fuzzy-logic
PyIT2FLS
Type 1 and Interval Type 2 Fuzzy Logic Systems in Python
Stars: ✭ 34 (+78.95%)
Mutual labels:  fuzzy-logic
ProbQA
Probabilistic question-asking system: the program asks, the users answer. The minimal goal of the program is to identify what the user needs (a target), even if the user is not aware of the existence of such a thing/product/service.
Stars: ✭ 43 (+126.32%)
Mutual labels:  fuzzy-logic
numberwords
Convert a number to an approximated text expression: from '0.23' to 'less than a quarter'.
Stars: ✭ 191 (+905.26%)
Mutual labels:  fuzzy-logic
fuzzylogic
Fuzzy Logic and Fuzzy Inference for Python 3
Stars: ✭ 74 (+289.47%)
Mutual labels:  fuzzy-logic
notebooks
Code examples for pyFTS
Stars: ✭ 40 (+110.53%)
Mutual labels:  fuzzy-logic

Fuzzy

=============

Mamdani and Sugeno type Fuzzy Inference System in julia. This code is based in Lepisma.

CI

Install

pkg> add Fuzzy

QuickStart

julia> using Fuzzy

Mamdani FIS

  • Create input, output membership functions and rules
julia> input_a = Dict("small" => TriangularMF(1, 2, 3), "large" => TriangularMF(4, 5, 6))
julia> input_b = Dict("small" => TriangularMF(1, 2, 3))

julia> inputs = [input_a, input_b]
julia> output = Dict("small" => TriangularMF(1, 2, 3))

julia> rule = Rule(["large", "small"], "small")
julia> rules = [rule]
  • Create FIS
julia> fis = FISMamdani(inputs, output, rules)
  • Find output
julia> in_vals = [4.7, 2.3]
julia> eval_fis(fis, in_vals)

Sugeno FIS

  • Create input membership functions and rules with consequence coefficients
julia> input_a = Dict("small" => TriangularMF(1, 2, 3), "large" => TriangularMF(5, 6, 7))
julia> input_b = Dict("small" => TriangularMF(1, 2, 3))

julia> inputs = [input_a, input_b]

julia> rule1 = Rule(["large", "small"], [1.0, 1.0, 1.0])
julia> rule2 = Rule(["small", "small"], [0.0, 0.0, 5.0])
julia> rules = [rule]
  • Create FIS
julia> fis = FISSugeno(inputs, rules)
  • Find output
julia> in_vals = [2.3, 1.2]
julia> eval_fis(fis, in_vals)

Features

  • FIS

    • Mamdani
    • Sugeno
  • Membership functions

    • Triangular
    • Gaussian
    • Bell
    • Trapezoidal
    • Sigmoid
  • Defuzzification

    • Mean of Maximum
    • Weighted Average (default)
    • Centroid (coming soon)
  • T-Norm

    • Minimum (MIN)
    • Algebraic product (A-PROD)
    • Bounded difference (B-DIF)
    • Drastic product (D-PROD)
    • Einstein product (E-PROD)
    • Hamacher product (H-PROD)
  • S-Norm

    • Maximum (MAX)
    • Algebraic sum (A-SUM)
    • Bounded sum (B-SUM)
    • Drastic sum (D-SUM)
    • Einstein sum (E-SUM)
    • Hamacher sum (H-SUM)

Prepare to plot your Fuzzy sets

  • Create points to use in plot packages using the chart_prepare
julia> input_a = Dict("small" => TriangularMF(1, 2, 3), "large" => TriangularMF(5, 6, 7));
julia> x = range(0, 8, length = 100);
julia> data = chart_prepare(input_a, x)
julia> using Plots
julia> plot(x, data["values"], label = data["names"])

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].