#---------------------------------------------------------------#
## algunos elementos de ilustración del sistema difuso ##

rm(list =ls()) # esta instrucción vacía el entorno
# ¡esto suele ser útil!

#------------------------------------------------- --------------#
# ejemplo de función de pertenencia ##
mu <- function(x,a,b){
  if      ( (a >= b) || (x  < a) ) { return (0) }
  else if               (x >= b)   { return (1) } 
  else                             { return ((x-a)/(b-a))}        
  }

mu(14  ,14,24)     # test da 0
mu(14.1,14,24)     # test da 0.01
mu(23.1,14,24)     # test da 0.91
mu(24  ,14,24)     # test da 1

#---------------------------------------------------------------#
# plot de la función membership  sobre a=14 y b=24             ## 

x <- seq(0,120,0.99)                      # edad de 0 - 120 años
y <- sapply(x,
            function(x) {mu(x,14,24)})    # imagen de x 

plot(x,y,
     main = "Pertenerncia difusa - adulto responsable",
     xlab = "edad",
     ylab = "nivel de responsabilidad",
     type = "l",
     col  = "black")

#---------------------------------------------------------------#
## gráfico de la función de pertenencia durante 10 30 años ##
## comparación dilatación concentración normal ##
##
library("lattice")                        # librería gráfica  
x <- seq(10,30,0.3)                       # edad de 10 - 30 años  

normal <- sapply(x,
            function(x) {mu(x,14,24)})
concentration <- sapply(x,
            function(x) {mu(x,14,24)^2})     # concentración: ^2
dilatation <- sapply(x,
            function(x) {mu(x,14,24)^(1/2)}) # dilatación:^(1/2)

mes_data <- data.frame(x,normal,concentration,dilatation)

#---------------------------------------------------------------#
## constitución de los gráficos                                 ##
t0 <- xyplot(normal ~x ,data = mes_data,
             col="black", type = "l",lty = 4,
             xlab="",ylab="",
             aspect =0.7)
t1 <- xyplot(concentration ~x ,data = mes_data,
             col="orange", type = "l",lty = 2,
             xlab="",ylab="",aspect =0.7)
t2 <- xyplot(dilatation ~x ,data = mes_data,
             col="blue", type = "l",lty = 3, 
             xlab="",ylab="",aspect =0.7)

plot(t0)                    # plot gráfico normal
plot(t1,newpage = FALSE)    # superpuesto concentración
plot(t2,newpage = FALSE)    # superpuesto dilatación

#---------------------------------------------------------------#
