How to generate random graph of n vertices with random connections in matlab

10 visualizaciones (últimos 30 días)
Hi I am interested in creating random undirected graph with n vertices and with random connections. This generated graph has to display its adjacency connections in a nxn matrix.I have tried this code but it is not working for my requirement.
n=input('No. of vertices')
c=input('Random connections')
MM=0; %arbitrary starting value
all_nums=1:n;
while MM ~=n*c
M = sparse([],[],[],n,n,n*c);
ctin = zeros(1,n);
for ii=1:n
noconnect=ctin>=c;
noconnect(ii)=true;
rem_nums = all_nums(~noconnect); % remaining numbers
rp=randperm(n-sum(noconnect));
rp = rem_nums(rp); % remaining numbers, hussled
if numel(rp)<c
break
else
r=rp(1:c);
end
M(ii,r)=1;
ctin(r)=ctin(r)+1;
end
MM=sum(ctin);
end
end
A= adjacency(M)

Respuestas (3)

Luis De Medeiros
Luis De Medeiros el 29 de Jul. de 2016
Editada: Luis De Medeiros el 29 de Jul. de 2016
You can create an adjacency matrix with random 1's and 0's by doing the following:
G = round(rand(n));
G = triu(G) + triu(G,1)';
G = G - diag(diag(G));
  5 comentarios
Walter Roberson
Walter Roberson el 31 de Jul. de 2016
Please expand on what you mean by "E number links". Do you mean a total of E edges across the entire graph? Would a valid random graph be one in which all E edges were connected to the first vertex and the other vertices were either not connected or were connected to the first vertex?
SIVAKUMAR V
SIVAKUMAR V el 1 de Ag. de 2016
Yes E represents number of links across the graph. My expectation is need to generate a sensor network graph in matlab.

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 1 de Ag. de 2016
adj = spalloc(n, n, E);
idx = randperm(n * n, E);
adj(idx) = 1;
adj = min( adj + adj.', 1);
  12 comentarios
idris cinemre
idris cinemre el 8 de Mayo de 2021
Is it possible to generate random RAN graph like attached fig. red dots indicate the RUs’ locations; black dots the routers/switches, green dot the CU location. RUs are only connected to a router, routers can be connected to each other and CU.
Walter Roberson
Walter Roberson el 8 de Mayo de 2021
First generate an appropriate connected graph for the Routers and switches only.
Then generate a bunch of other points, and calculate their nearest neighbour among the routers, and connect them to that neighbour.

Iniciar sesión para comentar.


Steven Lord
Steven Lord el 7 de Mayo de 2021
Take a look at the sprand and sprandsym functions.

Categorías

Más información sobre Graph and Network Algorithms en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by