rreduce | R Documentation |
rreduce
eliminates redundancies from disjunctive normal forms (DNF), i.e. disjunctions of conjunctions of literals. If there are several minimal DNF, rreduce
selects one at random.
rreduce(cond, x = full.ct(cond), niter = 1, full = !missing(x), verbose = FALSE,
maxiter = 1000, simplify2constant = TRUE)
cond |
A character string specifying a disjunctive normal form; can be either crisp-set or multi-value. |
x |
A
|
niter |
An integer value |
full |
Logical; if |
simplify2constant |
Logical; if |
verbose |
Logical; if TRUE, the reduction process will be traced in the console. |
maxiter |
Maximal number of iterations. This is a parameter of internal nature, usually not set by the user. |
rreduce
successively eliminates conjuncts and disjuncts from a DNF cond
as long as the result of condition(cond, x)
remains the same. The only required argument is cond
. If x
is not provided, redundancies are eliminated relative to full.ct(cond)
. If x
is provided and full = TRUE
, redundancies are eliminated relative to full.ct(x)
. If x
is provided and full = FALSE
, redundancies are eliminated relative to x
.
If cond
has more than one redundancy-free form, rreduce
only returns a randomly chosen one in the default setting of niter = 1
. By increasing niter
to a value >1
, cond
is (randomly) minimized niter
times. All resulting redundancy-free forms are collected and returned. This provides some insight about the amount of redundancy-free forms that cond
has.
Redundancy-free disjunctive normal form (DNF).
full.ct
.
# Logical redundancies.
cond1 <- "A*b + a*B + A*C + B*C"
rreduce(cond1)
rreduce(cond1, niter = 10)
cond2 <- "A*b + a*B + A*B + a*b"
rreduce(cond2, simplify2constant = FALSE)
# Any Boolean expressions.
cond <- "!(A*B*C)*!(a*b*c)" # or "A + B*!(D + e) <-> C"
x <- selectCases(cond)
cond <- getCond(x) # Returns a DNF equivalent to cond, but with many redundancies.
rreduce(cond) # Repeated execution results in different outputs.
rreduce(cond, verbose = TRUE)
rreduce(cond, niter = 20) # 20 iterations yield 5 minimal forms.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.