Advertisement
toweber

fuzzy_inference_2variables

Sep 9th, 2021
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.71 KB | None | 0 0
  1. import os
  2. import ipdb # ipdb.set_trace()
  3. import numpy as np
  4.  
  5.  
  6. def inference_mamdani_nm(P,ux,uy):
  7.     """
  8.    onde:
  9.    - P é a premissa
  10.    - ux é a função de pertinência do antencedente
  11.    - uy é a função de pertinência do consequente
  12.    - retornará Q
  13.    """
  14.     antecedente_max = np.max(np.minimum(P[:],ux[:]))
  15.     Q = np.minimum(antecedente_max,uy[:])
  16.     return Q
  17.  
  18. def inference_mamdani_2_premises_and(P1,ux1,P2,ux2,uy):
  19.     """
  20.    onde:
  21.    - P1 é o antecedente 1
  22.    - P2 é o antecedente 2
  23.    - ux1 é a função de pertinência do antencedente 1
  24.    - ux2 é a função de pertinência do antencedente 2
  25.    - uy é a função de pertinência do consequente
  26.    - retornará Q
  27.    """
  28.     antecedente1_max = np.max(np.minimum(P1[:],ux1[:]))
  29.     antecedente2_max = np.max(np.minimum(P2[:],ux2[:]))
  30.     antecedente_max = min(antecedente1_max,antecedente2_max)
  31.     Q = np.minimum(antecedente_max,uy[:])
  32.     return Q
  33.  
  34. # conjunto Universo  das variáveis base
  35. X1 = [0, 2, 4, 6, 8]
  36. X2 = [0, 20, 40, 60, 80]
  37. Y = [10, 20, 30, 40, 50]
  38.  
  39. u_x1_medio = [0, 0.5, 1, 0.5, 0]     # funcao de pertinencia para variável linguística x1 com valor baixo
  40. u_x2_medio = [0, 0.5, 1, 0.5, 0]     # funcao de pertinencia para variável linguística x1 com valor medio
  41. u_yalto    = [0, 0, 0, 0.5, 1]      # funcao de pertinencia para variável linguística y com valor alto
  42.  
  43. u_x1_medio = np.array(u_x1_medio)
  44. u_x2_medio = np.array(u_x2_medio)
  45. u_yalto = np.array(u_yalto)
  46.  
  47. # Inferência Fuzzy
  48.  
  49. #Assuma que x1 = 6, x2 = 40
  50. A_l = np.array([0, 0, 0, 0, 0])  # x1 = 6
  51. B_l = np.array([0, 0, 1, 0, 0])  # x2 = 40
  52.  
  53. Y_l = inference_mamdani_2_premises_and(A_l,u_x1_medio,B_l,u_x2_medio,u_yalto)
  54. print(Y_l)
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement