Skip to content

Instantly share code, notes, and snippets.

@lucasmpavelski
Last active October 31, 2017 12:04
Show Gist options
  • Save lucasmpavelski/0ecd479072c62c0a68cd7f62fc3b9072 to your computer and use it in GitHub Desktop.
Save lucasmpavelski/0ecd479072c62c0a68cd7f62fc3b9072 to your computer and use it in GitHub Desktop.
Lógica Fuzzy - Laboratório 1

Parte I - Mandami

Exercício 1

a)

x1 = 60 e x2 = 70 ~> y = 24.9

b)

4 regras:

  • se sujeira é MS e mancha é MM então tempo é M
  • se sujeira é MS e mancha é GM então tempo é L
  • se sujeira é GS e mancha é MM então tempo é L
  • se sujeira é GS e mancha é GM então tempo é ML

Exercício 2

sujeira mancha tempo
10 70 24.9
90 10 24.9
0 40 24.9
30 0 10.8

Exercício 3

"escada em 3d"

Exercíco 4

1a)

x1 = 60 e x2 = 70 ~> y = 34.7

1b)

4 regras:

  • se sujeira é MS e mancha é MM então tempo é M
  • se sujeira é MS e mancha é GM então tempo é L
  • se sujeira é GS e mancha é MM então tempo é L
  • se sujeira é GS e mancha é GM então tempo é ML

2)

sujeira mancha tempo
10 70 32.3
90 10 26.3
0 40 23.2
30 0 9.7

3)

"escada suavizada"

Exercício 5

sujeira mancha tempo
0 0 3.1385
0 10 12.1931
0 20 17.4233
0 30 20.8296
0 40 23.2244
0 50 25.0000
0 60 28.7626
0 70 32.2903
0 80 35.6043
0 90 38.7235
0 100 41.6646
10 0 6.3010
10 10 12.9840
10 20 17.4696
10 30 20.6886
10 40 23.1110
10 50 25.0000
10 60 28.7626
10 70 32.2903
10 80 35.6043
10 90 38.7235
10 100 41.6646
20 0 8.3514
20 10 13.5843
20 20 17.5087
20 30 20.5608
20 40 23.0024
20 50 25.0000
20 60 28.7626
20 70 32.2903
20 80 35.6043
20 90 38.7235
20 100 41.6646
30 0 9.7886
30 10 14.0553
30 20 17.5419
30 30 20.4444
30 40 22.8983
30 50 25.0000
30 60 28.7626
30 70 32.2903
30 80 35.6043
30 90 38.7235
30 100 41.6646
40 0 10.8519
40 10 14.4349
40 20 17.5707
40 30 20.3381
40 40 22.7984
40 50 25.0000
40 60 28.7626
40 70 32.2903
40 80 35.6043
40 90 38.7235
40 100 41.6646
50 0 11.6704
50 10 14.7472
50 20 17.5957
50 30 20.2404
50 40 22.7024
50 50 25.0000
50 60 28.7626
50 70 32.2903
50 80 35.6043
50 90 38.7235
50 100 41.6646
60 0 14.7472
60 10 17.9661
60 20 20.9548
60 30 23.7371
60 40 26.3337
60 50 28.7626
60 60 31.7302
60 70 34.6555
60 80 37.5395
60 90 40.3831
60 100 43.1870
70 0 17.5957
70 10 20.9548
70 20 24.0821
70 30 27.0007
70 40 29.7309
70 50 32.2903
70 60 34.6555
70 70 37.1053
70 80 39.6441
70 90 42.2770
70 100 45.0093
80 0 20.2404
80 10 23.7371
80 20 27.0007
80 30 30.0536
80 40 32.9157
80 50 35.6043
80 60 37.5395
80 70 39.6441
80 80 41.9412
80 90 44.4586
80 100 47.2294
90 0 22.7024
90 10 26.3337
90 20 29.7309
90 30 32.9157
90 40 35.9076
90 50 38.7235
90 60 40.3831
90 70 42.2770
90 80 44.4586
90 90 46.9987
90 100 49.9939
100 0 25.0000
100 10 28.7626
100 20 32.2903
100 30 35.6043
100 40 38.7235
100 50 41.6646
100 60 43.1870
100 70 45.0093
100 80 47.2294
100 90 49.9939
100 100 53.5307

Parte II - Sugeno

Exercício 1

a)

x1 = 60 e x2 = 70 ~> y = 35.6

b)

4 regras:

  • se sujeira é MS e mancha é MM então tempo é M
  • se sujeira é MS e mancha é GM então tempo é L
  • se sujeira é GS e mancha é MM então tempo é L
  • se sujeira é GS e mancha é GM então tempo é ML

Exercício 2

sujeira mancha tempo
10 70 31
90 10 26.5
0 40 18.5
30 0 6.2

Exercício 3

"4 planos"

Exercício 4

sujeira mancha tempo
0 0 0.5000
0 10 5.0000
0 20 9.5000
0 30 14.0000
0 40 18.5000
0 50 23.0000
0 60 26.8000
0 70 30.6000
0 80 34.4000
0 90 38.2000
0 100 42.0000
10 0 2.4000
10 10 6.6400
10 20 10.8800
10 30 15.1200
10 40 19.3600
10 50 23.6000
10 60 27.2800
10 70 30.9600
10 80 34.6400
10 90 38.3200
10 100 42.0000
20 0 4.3000
20 10 8.2800
20 20 12.2600
20 30 16.2400
20 40 20.2200
20 50 24.2000
20 60 27.7600
20 70 31.3200
20 80 34.8800
20 90 38.4400
20 100 42.0000
30 0 6.2000
30 10 9.9200
30 20 13.6400
30 30 17.3600
30 40 21.0800
30 50 24.8000
30 60 28.2400
30 70 31.6800
30 80 35.1200
30 90 38.5600
30 100 42.0000
40 0 8.1000
40 10 11.5600
40 20 15.0200
40 30 18.4800
40 40 21.9400
40 50 25.4000
40 60 28.7200
40 70 32.0400
40 80 35.3600
40 90 38.6800
40 100 42.0000
50 0 10.0000
50 10 13.2000
50 20 16.4000
50 30 19.6000
50 40 22.8000
50 50 26.0000
50 60 29.2000
50 70 32.4000
50 80 35.6000
50 90 38.8000
50 100 42.0000
60 0 13.4000
60 10 16.5200
60 20 19.6400
60 30 22.7600
60 40 25.8800
60 50 29.0000
60 60 32.3200
60 70 35.6400
60 80 38.9600
60 90 42.2800
60 100 45.6000
70 0 16.8000
70 10 19.8400
70 20 22.8800
70 30 25.9200
70 40 28.9600
70 50 32.0000
70 60 35.4400
70 70 38.8800
70 80 42.3200
70 90 45.7600
70 100 49.2000
80 0 20.2000
80 10 23.1600
80 20 26.1200
80 30 29.0800
80 40 32.0400
80 50 35.0000
80 60 38.5600
80 70 42.1200
80 80 45.6800
80 90 49.2400
80 100 52.8000
90 0 23.6000
90 10 26.4800
90 20 29.3600
90 30 32.2400
90 40 35.1200
90 50 38.0000
90 60 41.6800
90 70 45.3600
90 80 49.0400
90 90 52.7200
90 100 56.4000
100 0 27.0000
100 10 29.8000
100 20 32.6000
100 30 35.4000
100 40 38.2000
100 50 41.0000
100 60 44.8000
100 70 48.6000
100 80 52.4000
100 90 56.2000
100 100 60.0000
[System]
Name='maqlav'
Type='mamdani'
Version=2.0
NumInputs=2
NumOutputs=1
NumRules=9
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='mom'
[Input1]
Name='Sujeira'
Range=[0 100]
NumMFs=3
MF1='PS':'trimf',[-50 0 50]
MF2='MS':'trimf',[0 50 100]
MF3='GS':'trimf',[50 100 150]
[Input2]
Name='Mancha'
Range=[0 100]
NumMFs=3
MF1='SM':'trimf',[-50 0 50]
MF2='MM':'trimf',[0 50 100]
MF3='GM':'trimf',[50 100 150]
[Output1]
Name='Tempo'
Range=[0 60]
NumMFs=5
MF1='MC':'trimf',[-10 0 10]
MF2='L':'trimf',[25 40 60]
MF3='C':'trimf',[0 10 25]
MF4='M':'trimf',[10 25 40]
MF5='ML':'trimf',[40 60 80]
[Rules]
1 1, 1 (1) : 1
1 2, 4 (1) : 1
1 3, 2 (1) : 1
2 1, 3 (1) : 1
2 2, 4 (1) : 1
2 3, 2 (1) : 1
3 1, 4 (1) : 1
3 2, 2 (1) : 1
3 3, 5 (1) : 1
[System]
Name='maqlav2'
Type='mamdani'
Version=2.0
NumInputs=2
NumOutputs=1
NumRules=9
AndMethod='prod'
OrMethod='max'
ImpMethod='prod'
AggMethod='sum'
DefuzzMethod='centroid'
[Input1]
Name='Sujeira'
Range=[0 100]
NumMFs=3
MF1='PS':'trimf',[-50 0 50]
MF2='MS':'trimf',[0 50 100]
MF3='GS':'trimf',[50 100 150]
[Input2]
Name='Mancha'
Range=[0 100]
NumMFs=3
MF1='SM':'trimf',[-50 0 50]
MF2='MM':'trimf',[0 50 100]
MF3='GM':'trimf',[50 100 150]
[Output1]
Name='Tempo'
Range=[0 60]
NumMFs=5
MF1='MC':'trimf',[-10 0 10]
MF2='L':'trimf',[25 40 60]
MF3='C':'trimf',[0 10 25]
MF4='M':'trimf',[10 25 40]
MF5='ML':'trimf',[40 60 80]
[Rules]
1 1, 1 (1) : 1
1 2, 4 (1) : 1
1 3, 2 (1) : 1
2 1, 3 (1) : 1
2 2, 4 (1) : 1
2 3, 2 (1) : 1
3 1, 4 (1) : 1
3 2, 2 (1) : 1
3 3, 5 (1) : 1
[System]
Name='sugeno'
Type='sugeno'
Version=2.0
NumInputs=2
NumOutputs=1
NumRules=9
AndMethod='prod'
OrMethod='probor'
ImpMethod='prod'
AggMethod='sum'
DefuzzMethod='wtaver'
[Input1]
Name='Sujeira'
Range=[0 100]
NumMFs=3
MF1='PS':'trimf',[-50 0 50]
MF2='MS':'trimf',[0 50 100]
MF3='GS':'trimf',[50 100 150]
[Input2]
Name='Manchas'
Range=[0 100]
NumMFs=3
MF1='SM':'trimf',[-50 0 50]
MF2='MM':'trimf',[0 50 100]
MF3='GM':'trimf',[50 100 150]
[Output1]
Name='Tempo'
Range=[0 1]
NumMFs=5
MF1='M':'constant',[1]
MF2='C':'constant',[0.5]
MF3='MC':'constant',[1]
MF4='ML':'constant',[0]
MF5='L':'constant',[1]
[Rules]
1 1, 3 (0.5) : 1
1 2, 1 (1) : 1
1 3, 5 (1) : 1
2 1, 2 (1) : 1
2 1, 1 (1) : 1
2 1, 5 (1) : 1
3 1, 1 (1) : 1
3 1, 5 (1) : 1
3 1, 4 (1) : 1
entrada = [0 0];
lin=1;
for i=0:10:100,
for j=0:10:100,
entrada(lin,:) = [i j];
lin = lin+1;
end
end
saida = evalfis(entrada, sugeno);
disp(entrada);
disp(saida);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment