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

3 ビュー (過去 30 日間)
Luis M
Luis M 2012 年 2 月 28 日
回答済み: Sam Chak 2024 年 9 月 21 日
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

回答 (1 件)

Sam Chak
Sam Chak 2024 年 9 月 21 日
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])

カテゴリ

Help Center および File ExchangeFuzzy Inference System Modeling についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by