reduction {relations} | R Documentation |
Computes transitive and reflexive reduction of an endorelation.
transitive_reduction(x) reflexive_reduction(x) ## S3 method for class 'relation': reduction(x, operation = c("transitive", "reflexive"), ...)
x |
an R object inheriting from class relation ,
representing an endorelation. |
operation |
character string indicating the kind of reduction. |
... |
currently not used. |
Let R be an endorelation on X and n be the number of elements in X.
The transitive reduction of R is the smallest relation R' on X so that the transitive closure of R' is the same than the transitive closure of R. The function is implemented using a depth-first-search approach with complexity O(n^3). Currently, it can only be used for crisp relations.
The reflexive reduction of R is computed by setting the diagonal of the incidence matrix to 0.
S. Warshall (1962), A theorem on Boolean matrices. Journal of the ACM, 9/1, 11–12.
relation
, reflexive_reduction
,
transitive_reduction
, reduction
.
R <- as.relation(1 : 5) relation_incidence(R) ## transitive closure/reduction RR <- transitive_reduction(R) relation_incidence(RR) R == transitive_closure(RR) ## same R == closure(reduction(R)) ## reflexive closure/reduction RR <- reflexive_reduction(R) relation_incidence(RR) R == reflexive_closure(RR) ## same: R == closure(reduction(R, "reflexive"), "reflexive")