So erzeugen Sie eine zufällige Graphen gegeben, die Anzahl der Knoten und Kanten?
Ich bin mit python-Bibliothek igraph:
from igraph import *
g = Graph()
g.add_vertices(4)
g.add_edges([(0,2),(1,2),(3,2)])
print g.betweenness()
Ich möchte zum generieren einer zufälligen Graphen mit 10000 Knoten und 100000 Kanten. Die Kanten können zufällig sein. Sie schlagen einen Weg, um zufällige Kanten (mithilfe von numpy.random.rand )
InformationsquelleAutor Kush Jain | 2013-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie verwenden, um
numpy.random.rand
? Wenn nicht, verwenden Sie einfachGraph.Erdos_Renyi
, die können Sie angeben, die Anzahl der Knoten und Kanten direkt:InformationsquelleAutor Tamás
Tun es mit
numpy.random.rand
, erzeugen der random array, Schwelle, die es mit der Wahrscheinlichkeit, die Sie wollen, und dann geben Sie aufGraph.Nachbarschaft
:Dadurch entsteht ein gerichteter graph, wobei adj[i, j] gibt an, ob es eine Kante vom i -> j. Wenn Sie möchten, eine ungerichtete man stattdessen verwenden
Graph.Ajacency(adj, ADJ_UNDIRECTED)
- dann eine Kante, wenn entwederadj[i, j] == 1
oderadj[j, i] == 1
.Dies ist nicht garantiert, um Ihnen genau die 100.000 Kanten - brauchen Sie das?
Ooh, da hast du Recht - ich habe die Anzahl der Kanten ist. Ich denke, dass meine grundlegende Strategie, können immer noch Arbeit für die Anzahl der Knoten, er redet über - die Nähe matrix ist kostspielig (100M-Zellen für 100k Kanten), aber Sie brauchen nur es, um das Diagramm zu erstellen.
InformationsquelleAutor babbageclunk