1. Рассмотрим описанный на этом сайте пример с регулятором температуры. Зададим те же начальные условия.
library(sets)
sets_options("universe", seq(from = 0, to = 100, by = 0.1))
variables <-set(
TEMP=fuzzy_variable(COLD=fuzzy_trapezoid(corners = c(-1,0,17,20)),
NORMAL=fuzzy_trapezoid(corners = c(18,19,21,24)),
HOT=fuzzy_trapezoid(corners = c(22,25,100,101))),
VALVE = fuzzy_variable(CLOSED=fuzzy_triangular(corners = c(-1,0,25.1)),
PART.CLOSED=fuzzy_triangular(corners = c(0,25,75.1)),
PART.OPENED=fuzzy_triangular(corners = c(26,75.2,100)),
OPENED=fuzzy_triangular(corners = c(75.1,100,101)))
)
rules <-set(
fuzzy_rule(TEMP %is% COLD, VALVE %is% OPENED),
fuzzy_rule(TEMP %is% HOT, VALVE %is% CLOSED),
fuzzy_rule(TEMP %is% NORMAL && VALVE %is% CLOSED ,VALVE %is% CLOSED),
fuzzy_rule(TEMP %is% NORMAL && VALVE %is% PART.CLOSED, VALVE %is% PART.CLOSED),
fuzzy_rule(TEMP %is% NORMAL && VALVE %is% PART.OPENED, VALVE %is% PART.OPENED),
fuzzy_rule(TEMP %is% NORMAL && VALVE %is% OPENED, VALVE %is% OPENED)
)
Допустим, нам необходимо вместо треугольного распределения использовать нормальное с матожиданием в тех же вершинах и дисперсией равной 81. Как это будет выглядеть вместо:
CLOSED=fuzzy_triangular(corners = c(-1,0,25.1))