graph-min-triangulate.Rd
An undirected graph uG is triangulated (or chordal) if it has no cycles of length >= 4 without a chord which is equivalent to that the vertices can be given a perfect ordering. Any undirected graph can be triangulated by adding edges to the graph, so called fill-ins which gives the graph TuG. A triangulation TuG is minimal if no fill-ins can be removed without breaking the property that TuG is triangulated.
minimal_triang(
object,
tobject = triangulate(object),
result = NULL,
details = 0
)
minimal_triangMAT(amat, tamat = triangulateMAT(amat), details = 0)
An undirected graph represented either as a graphNEL
object, a (dense) matrix
, a (sparse) dgCMatrix
.
Any triangulation of object
; must be of the same
representation.
The type (representation) of the result. Possible values are
"graphNEL"
, "matrix"
, "dgCMatrix"
. Default is the
same as the type of object
.
The amount of details to be printed.
The undirected graph which is to be triangulated; a symmetric adjacency matrix.
Any triangulation of object
; a symmetric adjacency
matrix.
minimal_triang()
returns a graphNEL object while
minimal_triangMAT()
returns an adjacency matrix.
For a given triangulation tobject it may be so that some of the fill-ins are superflous in the sense that they can be removed from tobject without breaking the property that tobject is triangulated. The graph obtained by doing so is a minimal triangulation.
Kristian G. Olesen and Anders L. Madsen (2002): Maximal Prime Subgraph Decomposition of Bayesian Networks. IEEE TRANSACTIONS ON SYSTEMS, MAN AND CYBERNETICS, PART B: CYBERNETICS, VOL. 32, NO. 1, FEBRUARY 2002
## An igraph object
g1 <- ug(~a:b + b:c + c:d + d:e + e:f + a:f + b:e, result="igraph")
x <- minimal_triang(g1)
tt <- ug(~a:b:e:f + b:e:c:d, result="igraph")
x <- minimal_triang(g1, tobject=tt)
## g2 is a triangulation of g1 but it is not minimal
g2 <- ug(~a:b:e:f + b:c:d:e, result="igraph")
x <- minimal_triang(g1, tobject=g2)
## An adjacency matrix
g1m <- ug(~a:b + b:c + c:d + d:e + e:f + a:f + b:e, result="matrix")
x <- minimal_triangMAT(g1m)