graph generation utilities {bnlearn} | R Documentation |
Generate empty, complete or random graphs
Description
Generate empty, complete or random directed acyclic graphs from a given set of nodes.
Usage
empty.graph(nodes, num = 1)
complete.graph(nodes, num = 1)
random.graph(nodes, num = 1, method = "ordered", ..., debug = FALSE)
Arguments
nodes |
a vector of character strings, the labels of the nodes. |
num |
an integer, the number of graphs to be generated. |
method |
a character string, the label of a score. Possible values are
|
... |
additional tuning parameters (see below). |
debug |
a boolean value. If |
Details
Graph generation algorithms available in random.graph()
are:
-
full ordering based generation (
ordered
): generates graphs whose node ordering is given by the order of the labels in thenodes
argument. The same algorithm is used in therandomDAG
function in package pcalg. Ide's and Cozman's Generating Multi-connected DAGs algorithm (
ic-dag
): generates graphs with a uniform probability distribution over the set of multiconnected graphs.Melancon's and Philippe's Uniform Random Acyclic Digraphs algorithm (
melancon
): generates graphs with a uniform probability distribution over the set of all possible graphs.
Additional arguments for the random.graph()
function are:
-
prob
: the probability of each arc to be present in a graph generated by theordered
algorithm. The default value is2 / (length(nodes) - 1)
, which results in a sparse graph (the number of arcs should be of the same order as the number of nodes). -
burn.in
: the number of iterations for theic-dag
andmelancon
algorithms to converge to a stationary (and uniform) probability distribution. The default value is6 * length(nodes)^2
. -
every
: return only one graphevery
number of steps instead of all the graphs generated withic-dag
andmelancon
. Since both algorithms are based on Markov Chain Monte Carlo approaches, high values ofevery
result in a more diverse set of networks. The default value is1
, i.e. to return all the networks that are generated. -
max.degree
: the maximum degree for any node in a graph generated by theic-dag
andmelancon
algorithms. The default value isInf
. -
max.in.degree
: the maximum in-degree for any node in a graph generated by theic-dag
andmelancon
algorithms. The default value isInf
. -
max.out.degree
: the maximum out-degree for any node in a graph generated by theic-dag
andmelancon
algorithms. The default value isInf
.
empty.graph()
generates num
identical empty graphs, while
complete.graph()
generates num
identical complete directed
acyclic graphs.
Value
empty.graph()
, complete.graph()
and random[.graph()
return an object of class bn
(if num
is equal to 1
) or a
list of objects of class bn
(otherwise). If every
is greated
than 1
, random.graph()
always returns a list, regardless of the
number of graphs it contains.
Author(s)
Marco Scutari
References
Ide JS, Cozman FG (2002). "Random Generation of Bayesian Networks". Proceedings of the 16th Brazilian Symposium on Artificial Intelligence, 366–375.
Melancon G, Dutour I, Bousquet-Melou M (2001). "Random Generation of Directed Acyclic Graphs". Electronic Notes in Discrete Mathematics, 10:202–207.
Melancon G, Philippe F (2004). "Generating Connected Acyclic Digraphs Uniformly at Random". Information Processing Letters, 90(4):209–213.
Examples
empty.graph(LETTERS[1:8])
random.graph(LETTERS[1:8])
plot(random.graph(LETTERS[1:8], method = "ic-dag", max.in.degree = 2))
plot(random.graph(LETTERS[1:8]))
plot(random.graph(LETTERS[1:8], prob = 0.2))