graph-triangulate | R Documentation |
This function will triangulate an undirected graph by adding fill-ins.
triangulate(object, ...)
## Default S3 method:
triangulate(object, nLevels = NULL, result = NULL, check = TRUE, ...)
triang_mcwh(object, ...)
triang_elo(object, ...)
triang(object, ...)
## Default S3 method:
triang(object, control = list(), ...)
## Default S3 method:
triang_mcwh(object, nLevels = NULL, result = NULL, check = TRUE, ...)
## Default S3 method:
triang_elo(object, order = NULL, result = NULL, check = TRUE, ...)
triangulateMAT(amat, nLevels = rep(2, ncol(amat)), ...)
triang_mcwhMAT_(amat, nLevels = rep(2, ncol(amat)), ...)
triang_eloMAT_(amat, order)
triang_eloMAT(amat, order = NULL)
object |
An undirected graph represented either as
an |
... |
Additional arguments, currently not used. |
nLevels |
The number of levels of the variables (nodes) when these are discrete. Used in determining the triangulation using a "minimum clique weight heuristic". See section 'details'. |
result |
The type (representation) of the result. Possible values are
|
check |
If |
control |
A list controlling the triangulation; see 'examples'. |
order |
Elimation order; a character vector or numeric vector. |
amat |
Adjacency matrix; a (dense) |
There are two type of functions: triang
and triangulate
The workhorse is the triangulateMAT
function.
The triangulation is made so as the total state space is kept low
by applying a minimum clique weight heuristic: When a fill-in is
necessary, the algorithm will search for an edge to add such that
the complete set to be formed will have as small a state-space as
possible. It is in this connection that the nLevels
values
are used.
Default (when nLevels=NULL
) is to take nLevels=2
for all
nodes. If nLevels
is the same for all nodes then the heuristic aims
at keeping the clique sizes small.
A triangulated graph represented either as a
(dense) matrix
or a (sparse) dgCMatrix
.
Care should be taken when specifying nLevels
for other
representations than adjacency matrices: Since the triangulateMAT
function is the workhorse, any other representation is transformed to an
adjacency matrix and the order of values in nLevels
most come in
the order of the nodes in the adjacency matrix representation.
Currently there is no check for that the graph is undirected.
Søren Højsgaard, sorenh@math.aau.dk
ug
, dag
, mcs
,
mcsMAT
, rip
, ripMAT
,
moralize
, moralizeMAT
uG1 <- ug(~a:b + b:c + c:d + d:e + e:f + f:a)
uG2 <- ug(~a:b + b:c + c:d + d:e + e:f + f:a, result="matrix")
uG3 <- ug(~a:b + b:c + c:d + d:e + e:f + f:a, result="dgCMatrix")
## Default triangulation: minimum clique weight heuristic
# (default is that each node is given the same weight):
tuG1 <- triang(uG1)
## Same as
triang_mcwh(uG1)
## Alternative: Triangulation from a desired elimination order
# (default is that the order is order of the nodes in the graph):
triang(uG1, control=list(method="elo"))
## Same as:
triang_elo(uG1)
## More control: Define the number of levels for each node:
tuG1 <- triang(uG1, control=list(method="mcwh", nLevels=c(2, 3, 2, 6, 4, 9)))
tuG1 <- triang_mcwh(uG1, nLevels=c(2, 3, 2, 6, 4, 9))
tuG1 <- triang(uG1, control=list(method="elo", order=c("a", "e", "f")))
tuG1 <- triang_elo(uG1, order=c("a", "e", "f"))
uG1 <- ug(~a:b + b:c + c:d + d:e + e:f + f:a)
tuG1 <- triangulate(uG1)
## adjacency matrix
uG2 <- ug(~a:b + b:c + c:d + d:e + e:f + f:a, result="matrix")
tuG2 <- triangulate(uG2)
## adjacency matrix (sparse)
uG2 <- ug(~a:b + b:c + c:d + d:e + e:f + f:a, result="dgCMatrix")
tuG2 <- triangulate(uG2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.