Designing fuzzy inference system and subsystems

7 次查看(过去 30 天)
Hello.I have several fuzzy systems about security, all of which have 3 outputs: weak, medium and strong. In the comprehensive system, I want to enter all these fuzzy systems and in addition ask it to calculate if it sees 10 weak cases, the final output will be the vulnerable level. Is this possible? Can you guide me?

回答(2 个)

praguna manvi
praguna manvi 2024-8-9
编辑:praguna manvi 2024-8-9
To connect a network of fuzzy systems, you can use the “fistree” function. This allows you to build a network of fuzzy inference systems. In this case, the outputs of these three fuzzy systems can be passed to a final fuzzy system, where you can define its membership functions and rule set to evaluate the above condition.
Here is the link to the documentation on an example of connecting three fuzzy systems:
  2 个评论
Sam Chak
Sam Chak 2024-8-9
Could you please provide more information about the inputs to the Fuzzy Analyzer/Predictor for determining the security level? Are the terms "weak," "medium," and "strong" referring to the output membership functions? Providing additional details would allow @praguna manvi to guide you on how to properly design the fuzzy decision tree.

请先登录,再进行评论。


Sam Chak
Sam Chak 2024-8-10
编辑:Sam Chak 2024-8-10
For Multiple-Criteria Decision-Making (MCDM) using fuzzy logic, you should use plateau distribution type fuzzy sets that correspond to the defined linguistic variables of "Weak", "Medium", and "Strong" for the inputs to the fuzzy system. In the following example, I use two inputs: "System Technology" and "Trained Personnel."
By applying plateau-type membership functions and nine fuzzy rules, the decision-making surface will have a quarter Ziggurat-like structure. The flat plains allow you to immediately identify the security level as {"Minimum level (0)", "Low level (2.5)", "Medium level (5.0)", "High level (7.5)", "Maximum level (10)"} based on the score obtained. Any score between these levels will help you determine where the system should be upgraded to achieve the desired security level.
fis = mamfis('Name', "Haniye_Security");
%% Fuzzy Input 1: System Technology
fis = addInput(fis, [0 10], 'Name', 'System_Technology');
fis = addMF(fis, 'System_Technology', 'linzmf', [2 4 ], 'Name', 'Weak');
fis = addMF(fis, 'System_Technology', 'trapmf', [2 4 6 8], 'Name', 'Medium');
fis = addMF(fis, 'System_Technology', 'linsmf', [ 6 8], 'Name', 'Strong');
%% Fuzzy Input 2: Trained Personnel
fis = addInput(fis, [0 10], 'Name', 'Trained_Personnel');
fis = addMF(fis, 'Trained_Personnel', 'linzmf', [2 4 ], 'Name', 'Weak');
fis = addMF(fis, 'Trained_Personnel', 'trapmf', [2 4 6 8], 'Name', 'Medium');
fis = addMF(fis, 'Trained_Personnel', 'linsmf', [ 6 8], 'Name', 'Strong');
%% Fuzzy Output: Security Level
fis = addOutput(fis, [0 10], 'Name', 'Security_Level');
fis = addMF(fis, 'Security_Level', 'trimf', 0.0*[1 1 1], 'Name', 'Min');
fis = addMF(fis, 'Security_Level', 'trimf', 2.5*[1 1 1], 'Name', 'Low');
fis = addMF(fis, 'Security_Level', 'trimf', 5.0*[1 1 1], 'Name', 'Med');
fis = addMF(fis, 'Security_Level', 'trimf', 7.5*[1 1 1], 'Name', 'High');
fis = addMF(fis, 'Security_Level', 'trimf', 10.*[1 1 1], 'Name', 'Max');
%% Plot fuzzy sets
figure(1)
t = tiledlayout(2, 2, 'TileSpacing', 'Compact');
nexttile
plotmf(fis, 'input', 1), grid on, title('System Technology'), ylim([-0.2, 1.2])
nexttile
plotmf(fis, 'input', 2), grid on, title('Trained Personnel'), ylim([-0.2, 1.2])
nexttile([1 2]);
plotmf(fis, 'output', 1), grid on, title('Output Fuzzy sets for Security Level'), ylim([-0.2, 1.2])
%% Fuzzy Rules
rules = [
"System_Technology==Weak & Trained_Personnel==Weak => Security_Level=Min"
"System_Technology==Weak & Trained_Personnel==Medium => Security_Level=Low"
"System_Technology==Weak & Trained_Personnel==Strong => Security_Level=Med"
"System_Technology==Medium & Trained_Personnel==Weak => Security_Level=Low"
"System_Technology==Medium & Trained_Personnel==Medium => Security_Level=Med"
"System_Technology==Medium & Trained_Personnel==Strong => Security_Level=High"
"System_Technology==Strong & Trained_Personnel==Weak => Security_Level=Med"
"System_Technology==Strong & Trained_Personnel==Medium => Security_Level=High"
"System_Technology==Strong & Trained_Personnel==Strong => Security_Level=Max"
];
fis = addRule(fis, rules);
%% Decision-making Surface
figure(2)
opt = gensurfOptions('NumGridPoints', 51);
gensurf(fis, opt), grid on

类别

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