epfl-lts2 / gspbox

Graph Signal Processing in Matlab
https://epfl-lts2.github.io/gspbox-html/
GNU General Public License v3.0
136 stars 56 forks source link

gsp_erdos_renyi(N,p) wrong probability #5

Open diegovalsesia opened 7 years ago

diegovalsesia commented 7 years ago

The current implementation of the Erdos-Renyi graph seems to have an issue related to the generation of the adjacency matrix. In particular, the edge probability does not follow the input probability p but it is roughly half. This is due to the following lines:

G.W = sprandsym(N,p)>0; G.W(1:N+1:end) = 0;

where sprandsym(N,p) generates a sparse matrix with nonzero probability p but the nonzero entries are normally distributed, so taking >0 only selects half of those.

A quick fix, albeit inefficient, is

G.W = tril(rand(N,N)<p); G.W = G.W - eye(N); G.W = G.W + G.W';

mdeff commented 7 years ago

Thanks for reporting this issue! Note however that this toolbox is not developed nor maintained anymore. Please consider using the pygsp instead, where that issue has been fixed.