quantifier {lfl} | R Documentation |
A quantifier is a function that computes a fuzzy truth value of a claim about the quantity. This function creates the <1>-type quantifier. (See the examples below on how to use it as a quantifier of the <1,1> type.)
Description
A quantifier is a function that computes a fuzzy truth value of a claim about the quantity. This function creates the <1>-type quantifier. (See the examples below on how to use it as a quantifier of the <1,1> type.)
Usage
quantifier(
quantity = c("all", "almost.all", "most", "many", "some", "at.least"),
n = NULL,
alg = c("lukasiewicz", "goedel", "goguen")
)
Arguments
quantity |
the quantity to be evaluated. 'all' computes the degree of
truth to which all elements of the universe have the given property,
'almost.all', #' 'most', and 'many' evaluate whether the property is
present in extremely big, very big, or not small number of elements from
the universe, where these linguistic expressions are internally modeled
using the |
n |
the number of elements in the 'at.least n' quantifier |
alg |
the underlying algebra in which to compute the quantifier.
Note that the algebra must have properly defined the |
Value
A two-argument function, which expects two numeric vectors of equal length
(the vector elements are recycled to ensure equal lengths). The first argument, x
,
is a vector of membership degrees to be measured, the second argument, w
, is
the vector of weights to which the element belongs to the universe.
Let U
be the set of input vector indices (1 to length(x)
). Then the quantifier
computes the truth values accordingly to the following formula:
\vee_{z \subseteq U} \wedge_{u \in z} (x[u]) \wedge measure(m_z)
,
where
m_z = sum(w)
for "some"
and "at.least
and m_z = sum(w[z]) / sum(w)
otherwise.
See sugeno()
for more details on how the quantifier is evaluated.
Setting w
to 1 yields to operation of the <1> quantifier as developed by Dvořák et al.
To compute the <1,1> quantifier as developed by Dvořák et al., e.g. "almost all A are B", w
must
be set again to 1 and x
to the result of the implication A \Rightarrow B
.
To compute the <1,1> quantifier as proposed by Murinová et al., e.g. "almost all A are B",
x
must be set to the result of the implication A \Rightarrow B
and w
to the membership
degrees of A
. See the examples below.
Author(s)
Michal Burda
References
Dvořák, A., Holčapek, M. L-fuzzy quantifiers of type <1> determined by fuzzy measures. Fuzzy Sets and Systems vol.160, issue 23, 3425-3452, 2009.
Dvořák, A., Holčapek, M. Type <1,1> fuzzy quantifiers determined by fuzzy measures. IEEE International Conference on Fuzzy Systems (FuzzIEEE), 2010.
Murinová, P., Novák, V. The theory of intermediate quantifiers in fuzzy natural logic revisited and the model of "Many". Fuzzy Sets and Systems, vol 388, 2020.
See Also
Examples
# Dvorak <1> "almost all" quantifier
q <- quantifier('almost.all')
a <- c(0.9, 1, 1, 0.2, 1)
q(x=a, w=1)
# Dvorak <1,1> "almost all" quantifier (w set to 1)
a <- c(0.9, 1, 1, 0.2, 1)
b <- c(0.2, 1, 0, 0.5, 0.8)
q <- quantifier('almost.all')
q(x=lukas.residuum(a, b), w=1)
# Murinová <1,1> "almost all" quantifier (note w set to a)
a <- c(0.9, 1, 1, 0.2, 1)
b <- c(0.2, 1, 0, 0.5, 0.8)
q <- quantifier('almost.all')
q(x=lukas.residuum(a, b), w=a)
# Murinová <1,1> "some" quantifier
a <- c(0.9, 1, 1, 0.2, 1)
b <- c(0.2, 1, 0, 0.5, 0.8)
q <- quantifier('some')
q(x=plukas.tnorm(a, b), w=a)