fuzzy {sets} | R Documentation |
Fuzzy logic
Description
Fuzzy Logic
Usage
fuzzy_logic(new, ...)
.N.(x)
.T.(x, y)
.S.(x, y)
.I.(x, y)
Arguments
x , y |
Numeric vectors. |
new |
A character string specifying one of the available fuzzy logic “families” (see details). |
... |
optional parameters for the selected family. |
Details
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
andS = \max
. Note that the minimum t-norm, also known as the Gö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
ifx = 1
,x
ify = 1
, and 0 otherwise, and complementary t-conormS(x, y) = y
ifx = 0
,x
ify = 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-conormS(x, y) = x + y - xy
."Lukasiewicz"
the Lukasiewicz logic with t-norm
T(x, y) = \max(0, x + y - 1)
and dual t-conormS(x, y) = \min(x + y, 1)
."Fodor"
the family with Fodor's nilpotent minimum t-norm given by
T(x, y) = \min(x, y)
ifx + y > 1
, and 0 otherwise, and the dual t-conorm given byS(x, y) = \max(x, y)
ifx + 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 forp = 0
, 1, and\infty
, respectively, and otherwise is given byT(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-normT_\alpha(x, y) = xy / (\alpha + (1 - \alpha)(x + y - xy))
, and t-conormS_\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 whichN(S(x, y)) = T(N(x), N(y))
iff\alpha = (1 + \beta) / (1 + \gamma)
. The parameters can be specified asalpha
,beta
andgamma
, 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 forp = -\infty
,0
, and\infty
, respectively, and otherwise is given byT_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 forp = 0
and\infty
, respectively, and otherwise is given byT_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 forp = 0
and\infty
, respectively, and otherwise is given byT_p(x, y) = 0
ifx = 0
ory = 0
, andT_p(x, y) = 1 / (1 + ((1/x - 1)^p + (1/y - 1)^p)^{1/p})
if bothx > 0
andy > 0
."Aczel-Alsina"
the family of t-norms
T_p
,p \ge 0
, introduced by Aczél and Alsina, which gives the drastic and minimum t-norms forp = 0
and\infty
, respectively, and otherwise is given byT_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 forp = -1
and\infty
, respectively, and otherwise is given byT_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 forp = 0
and1
, respectively, and otherwise is given byT_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 forp = -1
and\infty
, respectively, and otherwise is given byT(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.
References
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. doi:10.18637/jss.v031.i02.
B. Schweizer and A. Sklar (1983), Probabilistic Metric Spaces. North-Holland, New York. ISBN 0-444-00666-4.
Examples
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)