Ich versuche Subgraph von Graphen in Julia mit Graphs.jl Modul zu bekommen. Ich habe Graph und ich speichern seine Scheitelpunkte und Kanten zu Liste und dann bewegt sich mein Algorithmus durch diese Liste und entfernt Knoten und Kanten, die nicht Teil des neuen Untergraphen sind. Zu diesem Teil funktioniert alles richtig, nachdem ganzen Algorithmus alles, was sub_vertices ist Array bleibt Typ: Graphs.ExVertex [] und Array sub_edgesTyp: Graphs.ExEdge {Graphs.ExVertex} [].Julia/Graphs.jl: Erstellen von Graphen mit graph() und Argumenten
Am Ende der ganzen Funktion I wanto Subgraphen zu schaffen, so verwende ich:
sub_g = graph(sub_vertices, sub_edges, is_directed=false)
aber ich bekomme Bounds() Fehler. Irgendeine Idee? Alles, was ich weiß, ist das Problem an Kanten.
ich versuchte zu laufen:
sub_g = graph(sub_vertices, Graphs.ExEdge{Graphs.ExVertex}[], is_directed=false)
Und es läuft ok. Es erstellt ein Diagramm mit Scheitelpunkten, die durch das Array sub_vertices gegeben werden. Problem tritt auf, wenn Kanten mit sub_edges hinzugefügt werden.
Zusätzliche Informationen: Scheitelpunkte und Kanten sind exakte Kopien des ursprünglichen Diagramms. Das heißt, Attribute wie Index, Label, ... sind dieselben wie im Originalgraphen. Ich dachte, dass Indizes von Vertices Problem sein können, aber es ist nicht, weil wenn ich renne,
sub_g = graph(sub_vertices, Graphs.ExEdge{Graphs.ExVertex}[], is_directed=false)
es läuft OK. Und nach dem Drucken der Scheitelpunkte haben sie Indizes 1,3,5, aber es scheint in Ordnung zu sein. Also ich weiß nicht, warum Kanten Grenzen gibt.
Gibt es einen Grund 'Graphen zu verwenden, beibehalten .jl' oder wären Sie offen für eine 'LightGraphs.jl' Lösung? –
Ja, es gibt, aber ich fand eine andere Lösung. Dies ist ein Problem, verursacht durch Indizes und ich denke, dass diese Lösung gar nicht existiert. –
Gotcha. Können Sie Ihre Lösung als Antwort posten, falls die Leute in Zukunft dasselbe Problem haben? –