How to see the firing strength using command line of a fuzzy System?

3 views (last 30 days)
Hi, I have built a fuzzy system from scratch using the fuzzy logic toolbox. My FIS has a huge number of rules and I would like to see, after using the comand evalfis for a concrete example, which is the firing strength of each rule. The problems is that I can not figure out how to access to this information using command line.
Thak you for your help

Answers (1)

Sam Chak
Sam Chak on 21 Sep 2024
The firing strengths can be obtained from the 5th output argument of the 'evalfis' command. Howevern note that this approach doesn't work when the fis is a fistree object.
fis = readfis('tipper')
fis =
mamfis with properties: Name: "tipper" AndMethod: "min" OrMethod: "max" ImplicationMethod: "min" AggregationMethod: "max" DefuzzificationMethod: "centroid" DisableStructuralChecks: 0 Inputs: [1x2 fisvar] Outputs: [1x1 fisvar] Rules: [1x3 fisrule] See 'getTunableSettings' method for parameter optimization.
Service_Val = 2;
Food_Val = 1;
[output, fuzzifiedIn, ruleOut, aggregatedOut, ruleFiring] = evalfis(fis, [Service_Val Food_Val]);
disp(fuzzifiedIn)
0.4111 1.0000 0.1353 1.0000 0.0000 0
disp(ruleFiring)
1.0000 0.1353 0.0000
Alternative:
The firing strengths can be also be determined by manually performing the fuzzy operations on the fuzzified input values.
% Rule 1 firing strength
max(fuzzifiedIn(1,:))
ans = 1
% Rule 2 firing strength
min(fuzzifiedIn(2,:))
ans = 0.1353
% Rule 3 firing strength
max(fuzzifiedIn(3,:))
ans = 6.6584e-07
plotrule(fis, Inputs=[Service_Val Food_Val])

Categories

Find more on Fuzzy Inference System Modeling in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!