mercredi 8 août 2018

Random Graph Function in R

I have an assignment in which I have to generate my own random graph function in R, with an igraph output. I've figured out that the easiest way to do this is to simply generate a square matrix and then build a function which creates edges between the nodes in the matrix. However I'd like to do something special, where the probability of the edges are based on forming a higher likelihood of sybil networks. Would look like this:

enter image description here

My matrix is generated and visualised quite simply like this:

NCols=20 
NRows=20 

myMat<-matrix(runif(NCols*NRows), ncol=NCols) 
myMat 


randomgraph<- graph_from_adjacency_matrix(myMatG, mode = "undirected", weighted = NULL, diag = TRUE, add.colnames = NULL, add.rownames = NA)

randomgraph %>%
  ggraph() + 
  geom_node_point(colour = "firebrick4", size = 0.5, show.legend = F)

I know there are functions like Erdos-Renyi Random- (for a true random graph), Barabási-Albert Scale-Free- and Watts-Strogatz Small-World graphs. I'm trying to write my own with a unique twist.

Any advice or code snippets on how to write my own preferential attachment function for the random matrix would be greatly appreciated! Thank you!




Aucun commentaire:

Enregistrer un commentaire