Gegeben ist ein Graph von N Eckpunkten und der Abstand zwischen den Kanten der im Tupel gespeicherten Eckpunkte T1 = (d11, d12, …, d1n) to Tn = (dn1, dn2, …, dnn)
. Finden Sie einen minimalen Spannbaum dieses Diagramms ab dem Scheitelpunkt V1 heraus. Drucken Sie auch die Gesamtstrecke aus, die zum Reisen dieses generierten Baums erforderlich ist.
Example:
For N =5
T1 = (0, 4, 5, 7, 5)
T2 = (4, 0, 6, 2, 5)
T3 = (5, 6, 0, 2, 1)
T4 = (7, 2, 2, 0, 5)
T5 = (5, 5, 1, 5, 0)
Selection of edges according to minimum distance are:
V1 -> V2 = 4
V2 -> V4 = 2
V4 -> V3 = 2
V3 -> V5 = 1
Thus, MST is V1 -> V2 -> V4 -> V3 -> V5 and the distance travelled is 9 (4+2+2+1)
Ich habe buchstäblich keine Ahnung, wie man einen Graphen von n Eckpunkten in R erstellt.
Ich habe in Google gesucht, aber ich habe nicht verstanden, wie ich mich dem obigen Problem nähern soll.
Bitte hilf mir.
r
minimum-spanning-tree
Magie
quelle
quelle
igraph
Paket oder diese Frage oder diese Funktion überprüft ?mst(g)
aber vielleicht auchmst(g, weights = E(g)$weights)
?sum(E(mg)$weight)
, womg
ist das minimale Spanning Tree-DiagrammAntworten:
Ihre Frage scheint nicht mit dem Titel übereinzustimmen - Sie sind nach der Grafikerstellung nicht der MST? Sobald Sie ein Diagramm haben, wie @ user20650 sagt, ist das MST selbst einfach.
Es ist einfach, ein Diagramm der Größe n zu erstellen , aber es gibt eine Menge Komplexität darüber, welche Knoten verbunden sind und welche Gewichte (Abstände) Sie uns nicht mitteilen. Dies ist also eine wirklich grundlegende Illustration.
Wenn wir davon ausgehen, dass alle Knoten mit allen anderen Knoten verbunden sind (vollständige Grafik), können wir verwenden
make_full_graph
. Ist dies nicht der Fall, benötigen Sie entweder Daten, um anzugeben, welche Knoten verbunden sind, oder Sie verwenden ein Zufallsdiagramm.Das nächste Problem sind die Entfernungen. Sie haben uns keine Informationen darüber gegeben, wie diese Entfernungen verteilt sind, aber wir können die Zuordnung zum Diagramm demonstrieren. Hier verwende ich nur zufällige einheitliche [0-1] Zahlen:
Das nächste Bit ist nur das MST selbst, wobei Folgendes verwendet wird
minimum.spanning.tree
:Die Ausgabe
mst
sieht folgendermaßen aus:quelle
user20650
hat mir geholfen. Das genügt.