home › Forums › # Technical Support › (limitations) Fuzzy Lite ? › Reply To: (limitations) Fuzzy Lite ?
thank you for your post and interesting question.
There are no limits in fuzzylite regarding the number of rules you can have. As long as you have enough RAM, you should be fine, and my guess is that you would not need that much RAM anyway. However, 59,049 rules is quite a large number that may affect performance. I suggest the following:
(1) As possible, use Takagi-Sugeno engines as they will be importantly more efficient.
(2) If using Mamdani, it will be interesting to evaluate its performance. If performance is poor, you can sacrifice accuracy over performance by reducing the resolution of the defuzzifier (see http://fuzzylite.github.io/fuzzylite/d9/d95/classfl_1_1_integral_defuzzifier.html).
(3) If performance is still an issue, you can create your own activation method to parallelise the activation of rules. We could have a collaboration on this to incorporate into fuzzylite.
(4) You could also split the rules into multiple rule blocks and do (3).
(5) If possible, you could create multiple engines, each of which having a set of rules, and they would safely running in parallel. This may be more convenient than (3) and (4).
As for the rest,
Q: Can you please tell me if I can define 9 linguistic variables in your FuzzyLite program?
A: You can define the 9 linguistic variables, with any number of terms, and fuzzylite has some methods that would allow you to create every possible combination of rules based on your linguistic terms.
Q: Can you also tell me if I can create fuzzy rules with 9 conditions and if there’s a limitation in the number of fuzzy rules I can create?
A: There are no limitations regarding the number of rules, variables, engines, etc. Each rule is represented as a binary expression tree, where you can have one rule containing any number of propositions, which can be grouped with parenthesis
(), and you can also use
or connectors in a single rule (the precedence order is parentheses, and, and or).
Let me know if you need anything else.