fire | R Documentation |
Given truth degrees of predicates, compute the truth value of given list of rules.
fire(
x,
rules,
tnorm = c("goedel", "goguen", "lukasiewicz"),
onlyAnte = TRUE,
parallel = FALSE
)
x |
Truth degrees of predicates. |
rules |
Either an object of S3 class |
tnorm |
A character string representing a triangular norm to be used
(either |
onlyAnte |
If |
parallel |
Deprecated parameter. Computation is done sequentially. |
The aim of this function is to compute the truth value of each rule in a
rules
list by assigning truth values to rule's predicates given by data x
.
x
is a numeric vector or numeric matrix of truth values of predicates. If
x
is vector then names(x)
must correspond to the predicate names
in rules
. If x
is a matrix then each column should represent a predicate
and thus colnames(x)
must correspond to predicate names in rules
.
Values of x
are interpreted as truth values, i.e., they must be from the
interval [0, 1]
. If matrix is given, the resulting truth values are
computed row-wisely.
rules
may be a list of character vectors or an instance of the S3 class
farules()
. The character vectors in the rules
list represent formulae
in conjunctive form. If onlyAnte=FALSE
, fire()
treats the rule as
a conjunction of all predicates, i.e., a conjunction of all predicates is
computed. If onlyAnte=TRUE
, the first element of each rule is removed
prior evaluation, i.e., a conjunction of all predicates except the first
are computed: this is useful if rules
is a farules()
object, since
farules()
objects save a rule's consequent as the first element (see also
antecedents()
and consequents()
functions).
The type of conjunction to be computed can be specified with the tnorm
parameter.
If x
is a matrix then the result of this function is a list
of numeric vectors with truth values of each rule, i.e., each element of the
resulting list corresponds to a rule and each value of the vector in the resulting
list corresponds to a row of the original data matrix x
.
x
as a vector is treated as a single-row matrix.
Michal Burda
aggregateConsequents()
, defuzz()
, perceive()
, pbld()
, fcut()
, lcut()
, farules()
# fire whole rules on a vector
x <- 1:10 / 10
names(x) <- letters[1:10]
rules <- list(c('a', 'c', 'e'),
c('b'),
c('d', 'a'),
c('c', 'a', 'b'))
fire(x, rules, tnorm='goguen', onlyAnte=FALSE)
# fire antecedents of the rules on a matrix
x <- matrix(1:20 / 20, nrow=2)
colnames(x) <- letters[1:10]
rules <- list(c('a', 'c', 'e'),
c('b'),
c('d', 'a'),
c('c', 'a', 'b'))
fire(x, rules, tnorm='goedel', onlyAnte=TRUE)
# the former command should be equal to
fire(x, antecedents(rules), tnorm='goedel', onlyAnte=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.