-
Notifications
You must be signed in to change notification settings - Fork 1
/
1-complement.py
91 lines (81 loc) · 2.39 KB
/
1-complement.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
'''
Esse código realiza testes com os complementos de Zadeh, Sugeno e Yager
para funções de pertinência. Ele cria gráficos que mostram as entradas,
as saídas e a combinação das entradas e saídas para cada tipo de complemento.
Os gráficos são salvos em arquivos de imagem.
'''
import numpy as np
import matplotlib.pyplot as plt
from fuzzy.membership_function import Membership_Function as MF
from fuzzy.operators import Complement
from utils.graphs import Graph
range, input = MF.test_functions(0)
# Fazendo testes com o complmento de Zadeh
zadeh = np.array([
Complement.zadeh(input[0]),
Complement.zadeh(input[1]),
Complement.zadeh(input[2])])
Graph.inline_plot(
data= np.array([
input,
zadeh,
np.concatenate((input, zadeh), axis=0)
]),
title="Testes com complemento de Zadeh",
range=range,
doted=3,
active_legend=True,
subtitle=['Entradas', 'Saídas', 'Entradas X Saídas'],
path_save="images/complement_zadeh.png",
label=[
['Tri', 'Tra', 'Gaus'],
['Zadeh(Tri)', 'Zadeh(Tra)', 'Zadeh(Gaus)'],
['Tri', 'Tra', 'Gaus','Zadeh(Tri)', 'Zadeh(Tra)', 'Zadeh(Gaus)']
]
)
# Fazendo testes com o complmento de Sugeno
sugeno = np.array([
Complement.sugeno(input[0],3),
Complement.sugeno(input[1],4),
Complement.sugeno(input[2],5)])
Graph.inline_plot(
data= np.array([
input,
sugeno,
np.concatenate((input, sugeno), axis=0)
]),
title="Testes com complemento de Sugeno",
range=range,
doted=3,
active_legend=True,
subtitle=['Entradas', 'Saídas', 'Entradas X Saídas'],
path_save="images/complement_sugeno.png",
label=[
['Tri', 'Tra', 'Gaus'],
['Sugeno(Tri,3)', 'Sugeno(Tra,4)', 'Sugeno(Gaus,5)'],
['Tri', 'Tra', 'Gaus','Sugeno(Tri,3)', 'Sugeno(Tra,4)', 'Sugeno(Gaus,5)']
]
)
# Fazendo testes com o complmento de Yager
yager = np.array([
Complement.yager(input[0],3),
Complement.yager(input[1],4),
Complement.yager(input[2],5)])
Graph.inline_plot(
data= np.array([
input,
yager,
np.concatenate((input, yager), axis=0)
]),
title="Testes com complemento de Yager",
range=range,
doted=3,
active_legend=True,
subtitle=['Entradas', 'Saídas', 'Entradas X Saídas'],
path_save="images/complement_yager.png",
label=[
['Tri', 'Tra', 'Gaus'],
['Yager(Tri,3)', 'Yager(Tra,4)', 'Yager(Gaus,5)'],
['Tri', 'Tra', 'Gaus','Yager(Tri,3)', 'Yager(Tra,4)', 'Yager(Gaus,5)']
]
)