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

조회 수: 4 (최근 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 CenterFile Exchange에서 Fuzzy Logic Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by