-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path2-intercession.py
115 lines (105 loc) · 2.63 KB
/
2-intercession.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
'''
Esse código realiza testes com as operações de interseção mínima,
interseção de produtos, interseção de produto limitado e interseção
de produto drástico 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 interseção. Os gráficos são salvos em arquivos de imagem.
'''
import numpy as np
from fuzzy.membership_function import Membership_Function as MF
from fuzzy.operators import Intercession
from utils.graphs import Graph
range, inputs = MF.test_functions(9)
minimum = np.array([Intercession.minimum(inputs)])
Graph.inline_plot(
data= np.array([
inputs,
minimum,
np.concatenate((minimum,inputs), axis=0)
]),
title="Testes de interseção mínima",
range=range,
active_legend=True,
subtitle=['Entradas', 'Saídas', 'Entradas X Saídas'],
path_save="images/intercession_min.png",
label=[
['Tri', 'Gaus'],
['min'],
['min','Tri', 'Gaus']
],
fill=[
[False,False],
[True],
[True,False,False],
]
)
product = np.array([Intercession.product(inputs)])
Graph.inline_plot(
data= np.array([
inputs,
product,
np.concatenate((product,inputs), axis=0)
]),
title="Testes de interseção de produtos",
range=range,
active_legend=True,
subtitle=['Entradas', 'Saídas', 'Entradas X Saídas'],
path_save="images/intercession_prod.png",
label=[
['Tri', 'Gaus'],
['prod'],
['prod','Tri', 'Gaus']
],
fill=[
[False,False],
[True],
[True,False,False],
]
)
limited_product = np.array([Intercession.limited_product(inputs)])
Graph.inline_plot(
data= np.array([
inputs,
limited_product,
np.concatenate((limited_product,inputs), axis=0)
]),
title="Testes de interseção de produto limitado",
range=range,
active_legend=True,
subtitle=['Entradas', 'Saídas', 'Entradas X Saídas'],
path_save="images/intercession_lim_prod.png",
label=[
['Tri', 'Gaus'],
['lim_prod'],
['lim_prod','Tri', 'Gaus']
],
fill=[
[False,False],
[True],
[True,False,False],
]
)
drastic_product = np.array([Intercession.drastic_product(inputs)])
Graph.inline_plot(
data= np.array([
inputs,
drastic_product,
np.concatenate((drastic_product,inputs), axis=0)
]),
title="Testes de interseção de produto drástico",
range=range,
active_legend=True,
subtitle=['Entradas', 'Saídas', 'Entradas X Saídas'],
path_save="images/intercession_dra_prod.png",
show=True,
label=[
['Tri', 'Gaus'],
['dra_prod'],
['dra_prod','Tri', 'Gaus']
],
fill=[
[False,False],
[True],
[True,False,False],
]
)