generate random graph
list of vertex labels
numeric value between 0.0 and 1.0
sequence of options (see below)
connected = truefalse
If the option connected is specified, the graph created is connected, and hence has at least n-1 edges.
For RandomGraph(n,m,connected), m must be at least n-1. A random tree is first created, then the remaining m-n+1 edges are
For RandomGraph(n,p,connected), a random tree is first created then each remaining edge is present with probability p.
degree = nonnegint
If the option degree=d is specified, and d-regular n vertex graph is possible, then a random d-regular graph having n vertices will be returned. Note that this option cannot be present with the directed option. This is equivalent to using the RandomRegularGraph command.
directed = truefalse
If the option directed is specified, a random directed graph is chosen. This is equivalent to using the RandomDigraph command. Default value is false.
seed = integer or none
Seed for the random number generator. When an integer is specified, this is equivalent to calling randomize(seed).
weights = range
If the option weights=m..n is specified, where m≤n are integers, the graph is a weighted graph with integer edge weights chosen from [m,n] uniformly at random. The weight matrix W in the graph has datatype=integer, and if the edge from vertex i to j is not in the graph then W[i,j] = 0.
If the option weights=x..y where x≤y are decimals is specified, the graph is a weighted graph with numerical edge weights chosen from [x,y] uniformly at random. The weight matrix W in the graph has datatype=float, that is, double precision floats (16 decimal digits), and if the edge from vertex i to j is not in the graph then W[i,j] = 0.0.
If the option weights=f where f is a function (a Maple procedure) that returns a number (integer, rational, or decimal number), then f is used to generate the edge weights. The weight matrix W in the graph has datatype=anything, and if the edge from vertex i to j is not in the graph then W[i,j] = 0.
RandomGraph(n,p) creates an undirected unweighted graph on n vertices where each possible edge is present with probability p where 0.0≤p≤1.0.
RandomGraph(n,m) creates an undirected unweighted graph on n vertices and m edges where the m edges are chosen uniformly at random. The value of m must satisfy 0≤m≤binomial⁡n,2=n⁢n−12.
If the first input is a positive integer n, then the vertices are labeled 1,2,...,n. Alternatively, you may specify the vertex labels in a list.
This model of random graph generation, in which edges are selected with uniform probability from all possible edges in a graph on the specified vertices, is known as the Erdős–Rényi model.
G ≔ RandomGraph⁡8,0.5
G≔Graph 1: an undirected graph with 8 vertices and 10 edge(s)
G ≔ RandomGraph⁡8,10
G≔Graph 2: an undirected graph with 8 vertices and 10 edge(s)
G ≔ RandomGraph⁡8,10,connected
G≔Graph 3: an undirected graph with 8 vertices and 10 edge(s)
G ≔ RandomGraph⁡6,degree=3
G≔Graph 4: an undirected graph with 6 vertices and 9 edge(s)
H ≔ RandomGraph⁡4,1.0,weights=0.0..1.0
H≔Graph 5: an undirected weighted graph with 4 vertices and 6 edge(s)
H ≔ RandomGraph⁡8,10,connected,weights=1..4
H≔Graph 6: an undirected weighted graph with 8 vertices and 10 edge(s)
U ≔ rand⁡1..4:
f := proc() local x; x := U(); if x=1 then 1 else 2 end if; end proc:
H ≔ RandomGraph⁡6,1.0,weights=f
H≔Graph 7: an undirected weighted graph with 6 vertices and 15 edge(s)
Download Help Document