Fuzzy Logic
fuzzy_logic(new, …)
.N.(x)
.T.(x, y)
.S.(x, y)
.I.(x, y)
Numeric vectors.
A character string specifying one of the available fuzzy logic “families” (see details).
optional parameters for the selected family.
A call to fuzzy_logic()
without arguments returns the currently
set fuzzy logic, i.e., a named list with four
components N
, T
, S
, and I
containing the
corresponding functions for negation, conjunction
(“t-norm”), disjunction (“t-conorm”), and residual
implication (which may not be available).
The package provides several fuzzy logic families.
A concrete fuzzy logic is selected
by calling fuzzy_logic
with a character
string specifying the family name, and optional parameters. Let us
refer to \(N(x) = 1 - x\) as the standard negation, and,
for a t-norm \(T\), let \(S(x, y) = 1 - T(1 - x, 1 - y)\) be the
dual (or complementary) t-conorm. Available specifications and
corresponding families are as follows, with the standard negation used
unless stated otherwise.
"Zadeh"
Zadeh's logic with \(T = \min\) and \(S = \max\). Note that the minimum t-norm, also known as the G<U+00F6>del t-norm, is the pointwise largest t-norm, and that the maximum t-conorm is the smallest t-conorm.
"drastic"
the drastic logic with t-norm \(T(x, y) = y\) if \(x = 1\), \(x\) if \(y = 1\), and 0 otherwise, and complementary t-conorm \(S(x, y) = y\) if \(x = 0\), \(x\) if \(y = 0\), and 1 otherwise. Note that the drastic t-norm and t-conorm are the smallest t-norm and largest t-conorm, respectively.
"product"
the family with the product t-norm \(T(x, y) = xy\) and dual t-conorm \(S(x, y) = x + y - xy\).
"Lukasiewicz"
the Lukasiewicz logic with t-norm \(T(x, y) = \max(0, x + y - 1)\) and dual t-conorm \(S(x, y) = \min(x + y, 1)\).
"Fodor"
the family with Fodor's nilpotent minimum t-norm given by \(T(x, y) = \min(x, y)\) if \(x + y > 1\), and 0 otherwise, and the dual t-conorm given by \(S(x, y) = \max(x, y)\) if \(x + y < 1\), and 1 otherwise.
"Frank"
the family of Frank t-norms \(T_p\), \(p \ge 0\), which gives the Zadeh, product and Lukasiewicz t-norms for \(p = 0\), 1, and \(\infty\), respectively, and otherwise is given by \(T(x, y) = \log_p (1 + (p^x - 1) (p^y - 1) / (p - 1))\).
"Hamacher"
the three-parameter family of Hamacher,
with negation \(N_\gamma(x) = (1 - x) / (1 + \gamma x)\),
t-norm
\(T_\alpha(x, y) = xy / (\alpha + (1 - \alpha)(x + y - xy))\),
and t-conorm
\(S_\beta(x, y) = (x + y + (\beta - 1) xy) / (1 + \beta xy)\),
where \(\alpha \ge 0\) and \(\beta, \gamma \ge -1\). This
gives a deMorgan triple (for which \(N(S(x, y)) = T(N(x), N(y))\)
iff \(\alpha = (1 + \beta) / (1 + \gamma)\). The parameters can
be specified as alpha
, beta
and gamma
,
respectively. If \(\alpha\) is not given, it is taken as
\(\alpha = (1 + \beta) / (1 + \gamma)\).
The default values for \(\beta\) and \(\gamma\) are 0, so that
by default, the product family is obtained.
The following parametric families are obtained by combining the corresponding families of t-norms with the standard negation.
"Schweizer-Sklar"
the Schweizer-Sklar family \(T_p\), \(-\infty \le p \le \infty\), which gives the Zadeh (minimum), product and drastic t-norms for \(p = -\infty\), \(0\), and \(\infty\), respectively, and otherwise is given by \(T_p(x, y) = \max(0, (x^p + y^p - 1)^{1/p})\).
"Yager"
the Yager family \(T_p\), \(p \ge 0\), which gives the drastic and minimum t-norms for \(p = 0\) and \(\infty\), respectively, and otherwise is given by \(T_p(x, y) = \max(0, 1 - ((1-x)^p + (1-y)^p)^{1/p})\).
"Dombi"
the Dombi family \(T_p\), \(p \ge 0\), which gives the drastic and minimum t-norms for \(p = 0\) and \(\infty\), respectively, and otherwise is given by \(T_p(x, y) = 0\) if \(x = 0\) or \(y = 0\), and \(T_p(x, y) = 1 / (1 + ((1/x - 1)^p + (1/y - 1)^p)^{1/p})\) if both \(x > 0\) and \(y > 0\).
"Aczel-Alsina"
the family of t-norms \(T_p\), \(p \ge 0\), introduced by Acz<U+00E9>l and Alsina, which gives the drastic and minimum t-norms for \(p = 0\) and \(\infty\), respectively, and otherwise is given by \(T_p(x, y) = \exp(-(|\log(x)|^p + |\log(y)|^p)^{1/p})\).
"Sugeno-Weber"
the family of t-norms \(T_p\), \(-1 \le p \le \infty\), introduced by Weber with dual t-conorms introduced by Sugeno, which gives the drastic and product t-norms for \(p = -1\) and \(\infty\), respectively, and otherwise is given by \(T_p(x, y) = \max(0, (x + y - 1 + pxy) / (1 + p))\).
"Dubois-Prade"
the family of t-norms \(T_p\), \(0 \le p \le 1\), introduced by Dubois and Prade, which gives the minimum and product t-norms for \(p = 0\) and \(1\), respectively, and otherwise is given by \(T_p(x, y) = xy / \max(x, y, p)\).
"Yu"
the family of t-norms \(T_p\), \(p \ge -1\), introduced by Yu, which gives the product and drastic t-norms for \(p = -1\) and \(\infty\), respectively, and otherwise is given by \(T(x, y) = \max(0, (1 + p) (x + y - 1) - p x y)\).
By default, the Zadeh logic is used.
.N.
, .T.
, .S.
, and .I.
are dynamic
functions, i.e., wrappers that call the corresponding function of the
current fuzzy logic. Thus, the behavior of code using these
functions will change according to the chosen logic.
C. Alsina, M. J. Frank and B. Schweizer (2006), Associative Functions: Triangular Norms and Copulas. World Scientific. ISBN 981-256-671-6.
J. Dombi (1982), A general class of fuzzy operators, the De Morgan class of fuzzy operators and fuzziness measures induced by fuzzy operators, Fuzzy Sets and Systems 8, 149--163.
J. Fodor and M. Roubens (1994), Fuzzy Preference Modelling and Multicriteria Decision Support. Kluwer Academic Publishers, Dordrecht.
D. Meyer and K. Hornik (2009), Generalized and customizable sets in R, Journal of Statistical Software 31(2), 1--27. http://www.jstatsoft.org/v31/i02/
B. Schweizer and A. Sklar (1983), Probabilistic Metric Spaces. North-Holland, New York. ISBN 0-444-00666-4.
# NOT RUN {
x <- c(0.7, 0.8)
y <- c(0.2, 0.3)
## Use default family ("Zadeh")
.N.(x)
.T.(x, y)
.S.(x, y)
.I.(x, y)
## Switch family and try again
fuzzy_logic("Fodor")
.N.(x)
.T.(x, y)
.S.(x, y)
.I.(x, y)
# }
Run the code above in your browser using DataLab