Which "AND" operator is used for the fuzzy rules created by ANFIS?

3 ビュー (過去 30 日間)
Gary
Gary 2013 年 11 月 25 日
回答済み: Sam Chak 2024 年 9 月 21 日
Is it the product, boolean, or Zadeh? Does anyone know? Thanks in advance.

回答 (1 件)

Sam Chak
Sam Chak 2024 年 9 月 21 日
By default, ANFIS generates a single-output Sugeno fuzzy inference system. The 'AND' operator is specified in one of the FIS properties. Look out for "AndMethod". By default, the product of the fuzzified input values is used.
x1 = (-1:0.01:1)';
x2 = x1;
y = x1 + x2;
data= [x1, x2, y];
fis = anfis(data);
ANFIS info: Number of nodes: 21 Number of linear parameters: 12 Number of nonlinear parameters: 12 Total number of parameters: 24 Number of training data pairs: 201 Number of checking data pairs: 0 Number of fuzzy rules: 4 Start training ANFIS ... 1 3.75834e-06 2 3.91318e-06 3 4.07902e-06 4 4.25677e-06 5 4.44663e-06 6 4.8401e-06 7 6.15644e-06 8 7.93732e-06 9 1.02139e-05 10 1.28233e-05 Designated epoch number reached. ANFIS training completed at epoch 10. Minimal training RMSE = 3.75834e-06
%% View the properties of Sugeno FIS trained by ANFIS
fis
fis =
sugfis with properties: Name: "fis" AndMethod: "prod" OrMethod: "max" ImplicationMethod: "prod" AggregationMethod: "sum" DefuzzificationMethod: "wtaver" DisableStructuralChecks: 0 Inputs: [1x2 fisvar] Outputs: [1x1 fisvar] Rules: [1x4 fisrule] See 'getTunableSettings' method for parameter optimization.
showrule(fis)
ans = 4x76 char array
'1. If (input1 is in1mf1) and (input2 is in2mf1) then (output is out1mf1) (1)' '2. If (input1 is in1mf1) and (input2 is in2mf2) then (output is out1mf2) (1)' '3. If (input1 is in1mf2) and (input2 is in2mf1) then (output is out1mf3) (1)' '4. If (input1 is in1mf2) and (input2 is in2mf2) then (output is out1mf4) (1)'
plotfis(fis)

カテゴリ

Help Center および File ExchangeFuzzy Logic Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by