Kursinhalt
Überblick Über Algorithmen und Datenstrukturen
Überblick Über Algorithmen und Datenstrukturen
Was Ist Ein Graph
Ein Graph ist eine mathematische Struktur, die aus zwei Mengen besteht, die als Menge von Knoten und Menge von Kanten bezeichnet werden. Der Graph wird als G(V, E) bezeichnet. Natürlich sind die Knoten in einem Graphen durch Kanten verbunden.
Die Kanten und Knoten eines Graphen können verschiedene Entitäten darstellen. Zum Beispiel können in sozialen Netzwerken die Knoten eines Graphen Personen darstellen, und Kanten können Beziehungen zwischen diesen Personen darstellen.
from lolviz import * from IPython.display import display_png graph = graphviz.Digraph() graph.node('Will') graph.node('Sam') graph.node('Mike') graph.node('Jack') graph.node('Diana') graph.node('Nadia') graph.edge('Will', 'Sam', label='follows') graph.edge('Will', 'Mike', label='follows') graph.edge('Will', 'Diana', label='follows') graph.edge('Sam', 'Mike', label='follows') graph.edge('Sam', 'Diana', label='follows') graph.edge('Mike', 'Will', label='follows') graph.edge('Mike', 'Sam', label='follows') graph.edge('Mike', 'Nadia', label='follows') graph.edge('Jack', 'Will', label='follows') graph.edge('Jack', 'Nadia', label='follows') graph.edge('Diana', 'Will', label='follows') graph.edge('Diana', 'Jack', label='follows') graph.edge('Diana', 'Nadia', label='follows') graph.edge('Nadia', 'Diana', label='follows') graph.edge('Nadia', 'Jack', label='follows') graph.edge('Nadia', 'Sam', label='follows') display_png(graph)
Andererseits können die Knoten Straßenkreuzungen darstellen, und die Kanten können die Straßen darstellen.
from lolviz import * from IPython.display import display_png graph = graphviz.Graph() graph.node('Catalonia Square') graph.node('University Square') graph.node('Spain Square') graph.node('Drassanes Square') graph.edge('Catalonia Square', 'University Square', label='University Roundabout') graph.edge('University Square', 'Spain Square', label='Gran Via de les Corts Catalanes') graph.edge('Spain Square', 'Drassanes Square', label='Parallel Avenue') graph.edge('Drassanes Square', 'Catalonia Square', label='La Rambla') display_png(graph)
Außerdem können wir einer Kante eines Graphen ein Gewicht zuweisen, das die Kosten für das Überqueren von einem Knoten zum anderen über diese Kante angibt.
Wie Sie oben gesehen haben, können Graphen gerichtet und ungerichtet sein. Es hängt von der Natur der zugrunde liegenden Aufgabe ab, welchen Typ von Graph wir wählen sollten.
Danke für Ihr Feedback!