[ library(graph_algorithms) | Reference Manual | Alphabetic Index ]
make_random_graph(+NNodes, +NEdges, +AntiParallelFree, +LoopFree, +ParallelFree, -Graph)
Creates a random graph with the given properties
- NNodes
- integer
- NEdges
- integer
- AntiParallelFree
- one of the atoms true or false
- LoopFree
- one of the atoms true or false
- ParallelFree
- one of the atoms true or false
- Graph
- will be bound to a graph structure
Description
Creates a random graph with NNodes nodes and NEdges edges.
The other 3 options mean:
- AntiParallelFree
- if true, the graph will have no anti-parallel edges, i.e. if
there is an edge from S to T, there won't be one from T to S
- LoopFree
- if true, the graph will have no self loops, i.e. no edges
that begin and end in the same node.
- ParallelFree
- if true, the graph will have no parallel edges, i.e. there
will be at most one edge from S to T.
The generated graph has no node name information and no edge data.
Node names can be added using graph_set_nodenames/2. Edge data
(e.g. random weights) can be added by retrieving the edges using
graph_get_all_edges/2 or graph_get_adjacent_edges/3 and unifying
the variable EdgeData field with the required information.
Modes and Determinism
- make_random_graph(+, +, +, +, +, -) is det
Exceptions
- (6) out of range
- NEdges is too large given the chosen options and NNodes
See Also
graph_set_nodenames / 2, graph_get_all_edges / 2, graph_set_random_weights / 3, graph_get_adjacent_edges / 3, library(graphviz)