Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import ipdb # ipdb.set_trace()
- import numpy as np
- def inference_mamdani_nm(P,ux,uy):
- """
- onde:
- - P é a premissa
- - ux é a função de pertinência do antencedente
- - uy é a função de pertinência do consequente
- - retornará Q
- """
- antecedente_max = np.max(np.minimum(P[:],ux[:]))
- Q = np.minimum(antecedente_max,uy[:])
- return Q
- def inference_mamdani_2_premises_and(P1,ux1,P2,ux2,uy):
- """
- onde:
- - P1 é o antecedente 1
- - P2 é o antecedente 2
- - ux1 é a função de pertinência do antencedente 1
- - ux2 é a função de pertinência do antencedente 2
- - uy é a função de pertinência do consequente
- - retornará Q
- """
- antecedente1_max = np.max(np.minimum(P1[:],ux1[:]))
- antecedente2_max = np.max(np.minimum(P2[:],ux2[:]))
- antecedente_max = min(antecedente1_max,antecedente2_max)
- Q = np.minimum(antecedente_max,uy[:])
- return Q
- # conjunto Universo das variáveis base
- X1 = [0, 2, 4, 6, 8]
- X2 = [0, 20, 40, 60, 80]
- Y = [10, 20, 30, 40, 50]
- u_x1_medio = [0, 0.5, 1, 0.5, 0] # funcao de pertinencia para variável linguística x1 com valor baixo
- u_x2_medio = [0, 0.5, 1, 0.5, 0] # funcao de pertinencia para variável linguística x1 com valor medio
- u_yalto = [0, 0, 0, 0.5, 1] # funcao de pertinencia para variável linguística y com valor alto
- u_x1_medio = np.array(u_x1_medio)
- u_x2_medio = np.array(u_x2_medio)
- u_yalto = np.array(u_yalto)
- # Inferência Fuzzy
- #Assuma que x1 = 6, x2 = 40
- A_l = np.array([0, 0, 0, 0, 0]) # x1 = 6
- B_l = np.array([0, 0, 1, 0, 0]) # x2 = 40
- Y_l = inference_mamdani_2_premises_and(A_l,u_x1_medio,B_l,u_x2_medio,u_yalto)
- print(Y_l)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement