igraph-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] how to properly generate a barabasi graph in Python withou


From: Gábor Csárdi
Subject: Re: [igraph] how to properly generate a barabasi graph in Python without multi-edges
Date: Wed, 23 Dec 2009 14:55:52 +0100

I have no idea what I did one year ago with the cited code, but it is
awfully wrong. Maybe I copy-pasted the wrong function. Anyway, here is
how to do it properly:

barabasi.game2 <- function(n, m) {

 edges <- numeric()
 deg <- rep(0, n)
 for (i in 2:n) {
   deg[i-1] <- 1
   no.neis <- min(i-1, m)
   neis <- rbind( i, sample(1:(i-1), no.neis, prob=deg[1:(i-1)]) )
   edges <- c(edges, neis)
   deg[neis] <- deg[neis]+1
 }

 graph(edges-1)
}

I hope this one is alright. Best,
G.

On Wed, Dec 23, 2009 at 2:39 PM, Tamas Nepusz <address@hidden> wrote:
> So, here's the problem. In every step during the generation process, we have 
> to do a weighted sampling without replacement -- each existing node is 
> weighted by its degree plus one, and we have to ensure that no node appears 
> twice in the result while still obeying the prescribed probability 
> distribution. I'm not sure how to do that correctly (if it is possible to do 
> it correctly). Suppose you have three nodes, the first having an in-degree of 
> 2, the second having an in-degree of 1, the third having zero in-degree. 
> (This can happen after the first two steps with m = 2). The corresponding 
> probability distribution from which we are sampling is then as follows:
[...]
>
> Therefore, I guess your best bet is to generate a BA graph is still by using 
> igraph's built-in generator and then simplifying the graph.
>
> --
> Tamas
>
>
>
> _______________________________________________
> igraph-help mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/igraph-help
>



-- 
Gabor Csardi <address@hidden>     UNIL DGM




reply via email to

[Prev in Thread] Current Thread [Next in Thread]