Graph: Unterschied zwischen den Versionen

Aus KGS-Wiki
(Seite angelegt, wird noch erweitert)
 
K (include-tags gesetzt)
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Thumbnailbox|
{{Thumbnailbox|
INHALT={{Beispielgraph}}
|CAPTION=Ein Graph mit fünf Knoten <math>A, B, C, D, E</math><br>und sieben Kanten <math>\overline{AB}</math>, <math>\overline{AC}</math>, <math>\overline{BC}</math>, <math>\overline{BD}</math>, <math>\overline{BE}</math>, <math>\overline{CD}</math> und <math>\overline{DE}</math>.}}<onlyinclude>Ein [[Graph]] ist eine [[Datenstruktur]], die aus einer [[Menge]] an Knoten und einer Menge an Kanten besteht, wobei jede Kante zwei Knoten miteinander verbindet.


INHALT={{#mermaid:graph LR
Graphen werden in der Informatik genutzt, um alle möglichen Sachverhalte zu modellieren, etwa die Verknüpfungen zwischen Neuronen in einem [[Künstliches Neuronales Netz|künstlichen Neuronalen Netz]], die Spielfelder für einen Schachcomputer oder Orte und Straßen für die Routenplanung in Navigationssoftware.</onlyinclude>
 
a((A))
 
b((B))
 
c((C))
 
d((D))
 
e((E))
 
a --- b
 
a --- c
 
b --- c
 
b --- d
 
b --- e
 
c --- d
 
d --- e
 
}}
 
|CAPTION=Ein Graph mit fünf Knoten <math>A, B, C, D, E</math><br>und sieben Kanten <math>\overline{AB}</math>, <math>\overline{AC}</math>, <math>\overline{BC}</math>, <math>\overline{BD}</math>, <math>\overline{BE}</math>, <math>\overline{CD}</math> und <math>\overline{DE}</math>.}}Ein [[Graph]] ist eine [[Datenstruktur]], die aus einer [[Menge]] an Knoten und einer Menge an Kanten besteht, wobei jede Kante zwei Knoten miteinander verbindet.
 
Graphen werden in der Informatik genutzt, um alle möglichen Sachverhalte zu modellieren, etwa die Verknüpfungen zwischen Neuronen in einem [[Künstliches Neuronales Netz|künstlichen Neuronalen Netz]], die Spielfelder für einen Schachcomputer oder Orte und Straßen für die Routenplanung in Navigationssoftware.


== Begriffe ==
== Begriffe ==
Zeile 39: Zeile 11:


== Arten von Graphen ==
== Arten von Graphen ==
{{Thumbnailbox|


INHALT={{#mermaid:graph LR
=== (Un-)Gerichtete Graphen ===
'''Gerichtete Graphen''' zeichnen sich dadurch aus, dass die Kanten zwischen den Knoten eine Richtung haben. Mit gerichteten Graphen kann man z.B. künstliche neuronale Netze modellieren, die die Daten von der Eingabe- über die inneren Schichten zur Ausgabeschicht weiterleiten, oder [[Endlicher Automat|Endliche Automaten]], die reguläre [[Formale Sprache|Sprachen]] erkennen.


a((A))
Das Gegenteil sind '''ungerichtete Graphen''', deren Kanten keine Richtung aufweisen. Als ungerichteten Graphen kann man z.B. ein Schachbrett (außer aus der Perspektive eines Bauern) modellieren, da jeder Zug auch genau so in entgegengesetzter Richtung durchgeführt werden kann.


b((B))
=== (Un-)Gewichtete Graphen ===
Man kann den Kanten eines Graphen ein '''Gewicht''' zuweisen. Damit kann man bspw. für die Berechnung von Streckenlängen für ein Navigationssystem die Streckenlänge, den zu erwartenden Stromverbrauch o.ä. modellieren.


c((C))
Das Gegenteil sind '''ungewichtete''' Graphen, deren Kanten kein Gewicht haben. Auch das oben als Beispiel erwähnte Schachbrett kann man als ungewichteten Graphen modellieren.


d((D))
=== (Un-)zusammenhängende Graphen ===


e((E))
Graphen, in denen es von jedem Knoten zu jedem anderen Knoten mindestens einen Weg gibt, nennt man '''zusammenhängend'''.


a --> b
Das Gegenteil sind '''unzusammenhängende Graphen''', in denen es zwischen mindestens einem Knotenpaar keinen Weg gibt. Diese Graphen bestehen aus mehreren Teilgraphen, die nicht miteinander verbunden sind. Diese Teilgraphen werden '''Zusammenhangskomponenten''' genannt.


a --> c
== Beispiele ==


b --> c
<gallery>
Graph4directed-weighted.png|Gewichtet ✔️<br>Gerichtet ✔️<br>Zusammenhängend ✔️<br>Kreis ✔️
CPT-Graphs-undirected-weighted.svg|Gewichtet ✔️<br>Gerichtet ❌<br>Zusammenhängend ✔️<br>Kreis ✔️
Digraph with negative weight.png|Gewichtet ✔️<br>Gerichtet ✔️<br>Zusammenhängend ✔️<br>Kreis ❌
3node_digraph1.svg|Gewichtet ❌<br>Gerichtet ✔️<br>Zusammenhängend ❌<br>Kreis ❌
UndirectedDegrees.svg|Gewichtet ❌<br>Gerichtet ❌<br>Zusammenhängend ❌<br>Kreis ✔️
Arbre_distance_un.svg|Gewichtet ❌<br>Gerichtet ❌<br>Zusammenhängend ✔️<br>Kreis ❌
</gallery>


b --> d
== Bäume als Sonderfall von Graphen ==


b --> e
Zusammenhängende kreisfreie Graphen werden auch als [[Baum (Datenstruktur)|Bäume]] bezeichnet, unzusammenhängende kreisfreie Graphen, die also aus mehreren Bäumen bestehen, als Wälder.


c --> d
d --> e
}}
|CAPTION=Ein gerichteter Graph}}
=== (Un-)Gerichtete Graphen ===
'''Gerichtete Graphen''' zeichnen sich dadurch aus, dass die Kanten zwischen den Knoten eine Richtung haben. Mit gerichteten Graphen kann man z.B. künstliche neuronale Netze modellieren, die die Daten von der Eingabe- über die inneren Schichten zur Ausgabeschicht weiterleiten, oder [[Endlicher Automat|Endliche Automaten]], die reguläre [[Formale Sprache|Sprachen]] erkennen.
Das Gegenteil sind '''ungerichtete Graphen''', deren Kanten keine Richtung aufweisen. Als ungerichteten Graphen kann man z.B. ein Schachbrett (außer aus der Perspektive eines Bauern) modellieren, da jeder Zug auch genau so in entgegengesetzter Richtung durchgeführt werden kann.
=== (Un-)Gewichtete Graphen ===
Man kann den Kanten eines Graphen ein '''Gewicht''' zuweisen. Damit kann man bspw. für die Berechnung von Streckenlängen für ein Navigationssystem die Streckenlänge, den zu erwartenden Stromverbrauch o.ä. modellieren.
Das Gegenteil sind ungewichtete Graphen, deren Kanten kein Gewicht haben. Auch das oben als Beispiel erwähnte Schachbrett kann man als ungewichteten Graphen modellieren.
=== (Un-)zusammenhängende Graphen ===
{{Lückenhaft|Zusammenhang, Kreisfreiheit, Beispiele, Baum als Sonderfall
}}
[[Kategorie:Graphen]]
[[Kategorie:Graphen]]
[[Kategorie:Datenstrukturen]]
[[Kategorie:Datenstrukturen]]
[[Kategorie:Theoretische Informatik]]

Aktuelle Version vom 1. Februar 2024, 07:57 Uhr

Ein Graph mit fünf Knoten
und sieben Kanten , , , , , und .

Ein Graph ist eine Datenstruktur, die aus einer Menge an Knoten und einer Menge an Kanten besteht, wobei jede Kante zwei Knoten miteinander verbindet.

Graphen werden in der Informatik genutzt, um alle möglichen Sachverhalte zu modellieren, etwa die Verknüpfungen zwischen Neuronen in einem künstlichen Neuronalen Netz, die Spielfelder für einen Schachcomputer oder Orte und Straßen für die Routenplanung in Navigationssoftware.

Begriffe

Eine zusammenhängende Abfolge von Kanten bezeichnet man als Weg oder Pfad. Im obigen Beispielgraphen bilden z.B. oder auch einen Weg.

Eine zusammenhängende Abfolge von Kanten, die dort endet, wo sie begonnen hat, bezeichnet man als Kreis. Im obigen Beispielgraphen bilden z.B. die Kanten einen Kreis.

Arten von Graphen

(Un-)Gerichtete Graphen

Gerichtete Graphen zeichnen sich dadurch aus, dass die Kanten zwischen den Knoten eine Richtung haben. Mit gerichteten Graphen kann man z.B. künstliche neuronale Netze modellieren, die die Daten von der Eingabe- über die inneren Schichten zur Ausgabeschicht weiterleiten, oder Endliche Automaten, die reguläre Sprachen erkennen.

Das Gegenteil sind ungerichtete Graphen, deren Kanten keine Richtung aufweisen. Als ungerichteten Graphen kann man z.B. ein Schachbrett (außer aus der Perspektive eines Bauern) modellieren, da jeder Zug auch genau so in entgegengesetzter Richtung durchgeführt werden kann.

(Un-)Gewichtete Graphen

Man kann den Kanten eines Graphen ein Gewicht zuweisen. Damit kann man bspw. für die Berechnung von Streckenlängen für ein Navigationssystem die Streckenlänge, den zu erwartenden Stromverbrauch o.ä. modellieren.

Das Gegenteil sind ungewichtete Graphen, deren Kanten kein Gewicht haben. Auch das oben als Beispiel erwähnte Schachbrett kann man als ungewichteten Graphen modellieren.

(Un-)zusammenhängende Graphen

Graphen, in denen es von jedem Knoten zu jedem anderen Knoten mindestens einen Weg gibt, nennt man zusammenhängend.

Das Gegenteil sind unzusammenhängende Graphen, in denen es zwischen mindestens einem Knotenpaar keinen Weg gibt. Diese Graphen bestehen aus mehreren Teilgraphen, die nicht miteinander verbunden sind. Diese Teilgraphen werden Zusammenhangskomponenten genannt.

Beispiele

Bäume als Sonderfall von Graphen

Zusammenhängende kreisfreie Graphen werden auch als Bäume bezeichnet, unzusammenhängende kreisfreie Graphen, die also aus mehreren Bäumen bestehen, als Wälder.