# Generating a random graph by degree sequence

```This is the first matlab program I wrote. Under the pressure of the teacher, I have to implement the pseudo code in the paper. I refer to the rewards identity anonymization on for this program In this paper, the first algorithm of graphs is pseudocode. After writing it, I finally understand what teachers often say to learn, instead of spending a lot of time systematically learning a certain language.
The main idea is to randomly select a node v with a degree of d(v) from the degree sequence, set d(v) to 0, and then select d(v) nodes from the remaining nodes to connect with it, and the degree of the connected nodes will be reduced by 1, iterating until all the degrees are 0, the edge is connected, and the random graph will be formed (code roughness, many inclusions).
Theast).
```
```d = [13,13,13,13,11,12,12,5,7,12,7,11,7,12,12,5,3,5,7,5,3,5,3,3,7,11,11];
n = length(d);
V = [];
tab1 = [];
tab2 = [];
s=0;
count = 0;
alen = 1;
blen = 1;
vlen = 1;
for i = 1:n
s = s + d(i);
end
if mod(s,2)~=0
disp('No');
return ;
end
while 1
for i = 1:n
if(d(i)<0)
disp('No');
break;
end
end
%If all degrees are 0, output G
for i = 1:n
if(d(i) ==0)
count = count+1;
end
if (count == n)
G = graph(tab1,tab2);
plot(G);
return;
end
end
Arr = randperm(n);
for i = 1:n
v = Arr(i);
if d(v)>0      %Randomly select a vertex with degree greater than 0 v
a = d(v);         %a One and v Connected nodes
d(v) = 0;
[B,I] = sort(d);      %And return the largest a Number,take d Sort from small to large, B Is the sorted sequence, I Is the sorted index
for j = n-a+1:n           %Will this a Nodes exist V in
V(vlen) = I(j);
vlen = vlen+1;
end
for k = 1:a
tab2(blen) = V(blen);
w = tab2(blen);
d(w) = d(w)-1;
tab1(alen) = v;
alen = alen+1;
blen = blen+1;
end
end
i = i+1;
end
end
```

Tags: MATLAB

Posted on Tue, 05 May 2020 04:04:17 -0400 by Evanthes