<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Grad_%28Graphentheorie%29</id>
	<title>Grad (Graphentheorie) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Grad_%28Graphentheorie%29"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Grad_(Graphentheorie)&amp;action=history"/>
	<updated>2026-04-08T07:43:30Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=Grad_(Graphentheorie)&amp;diff=9499&amp;oldid=prev</id>
		<title>imported&gt;DeWikiMan: /* Verwandte Begriffe */ wikilink, der Begriff &quot;Nachbar&quot; wurde weiter oben noch nicht eingeführt</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Grad_(Graphentheorie)&amp;diff=9499&amp;oldid=prev"/>
		<updated>2024-08-19T19:37:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Verwandte Begriffe: &lt;/span&gt; wikilink, der Begriff &amp;quot;Nachbar&amp;quot; wurde weiter oben noch nicht eingeführt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Grad&amp;#039;&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;&amp;#039;Knotengrad&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Valenz&amp;#039;&amp;#039;&amp;#039;) ist ein grundlegender Begriff der [[Graphentheorie]], eines Teilgebiets der [[Mathematik]]. Der Grad eines [[Knoten (Graphentheorie)|Knotens]] ist die Anzahl von [[Kante (Graphentheorie)|Kanten]], die an ihn angrenzen.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
=== Ungerichtete Graphen ===&lt;br /&gt;
[[Datei:UndirectedDegrees.svg|mini|Ein ungerichteter Graph. Die Knoten sind mit ihrem Grad beschriftet.]]&lt;br /&gt;
&lt;br /&gt;
In einem [[Ungerichteter Graph|ungerichteten Graphen]] &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; ist für jeden [[Knoten (Graphentheorie)|Knoten]] &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; der Grad &amp;lt;math&amp;gt;d_G(v)&amp;lt;/math&amp;gt; definiert als die Anzahl aller Kanten von &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;, die an &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; angrenzen.&lt;br /&gt;
Sofern vorhanden werden [[Schlinge (Graphentheorie)|Schlingen]] dabei doppelt gezählt.&lt;br /&gt;
&lt;br /&gt;
Statt &amp;lt;math&amp;gt;d_G(v)&amp;lt;/math&amp;gt; wird oft auch die Notation &amp;lt;math&amp;gt;\deg_G(v)&amp;lt;/math&amp;gt; verwendet. Der Index &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; kann weggelassen werden, falls klar ist, um welchen Graphen es sich handelt.&lt;br /&gt;
&lt;br /&gt;
Den kleinsten Grad eines [[Knoten (Graphentheorie)|Knotens]] in &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; nennt man den &amp;#039;&amp;#039;&amp;#039;Minimalgrad&amp;#039;&amp;#039;&amp;#039; von &amp;lt;math&amp;gt; G &amp;lt;/math&amp;gt; und bezeichnet diesen mit &amp;lt;math&amp;gt; \delta (G)&amp;lt;/math&amp;gt;, den größten Grad eines Knotens in &amp;lt;math&amp;gt; G &amp;lt;/math&amp;gt; nennt man den &amp;#039;&amp;#039;&amp;#039;Maximalgrad&amp;#039;&amp;#039;&amp;#039; von &amp;lt;math&amp;gt; G &amp;lt;/math&amp;gt;, dieser wird meist mit &amp;lt;math&amp;gt; \Delta ( G ) &amp;lt;/math&amp;gt; bezeichnet. Der [[Mittelwert|Durchschnitt]] aller Knotengrade von &amp;lt;math&amp;gt; G&amp;lt;/math&amp;gt; wird  &amp;#039;&amp;#039;&amp;#039;Durchschnittsgrad&amp;#039;&amp;#039;&amp;#039;  genannt und mit &amp;lt;math&amp;gt; d(G) &amp;lt;/math&amp;gt; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Gerichtete Graphen ===&lt;br /&gt;
[[Datei:DirectedDegrees.svg|mini|Ein gerichteter Graph mit beschrifteten Knoten: (Eingangsgrad, Ausgangsgrad)]]&lt;br /&gt;
In einem [[Gerichteter Graph|gerichteten Graphen]] &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; wird unterschieden, ob eine [[Kante (Graphentheorie)|Kante]] an einem [[Knoten (Graphentheorie)|Knoten]] beginnt oder endet. Mit &amp;lt;math&amp;gt;d^-_G(v)&amp;lt;/math&amp;gt; bezeichnet man den &amp;#039;&amp;#039;&amp;#039;Eingangsgrad&amp;#039;&amp;#039;&amp;#039; des Knotens &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; in einem gerichteten Graphen &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; und mit &amp;lt;math&amp;gt;d_G^+(v)&amp;lt;/math&amp;gt; dessen &amp;#039;&amp;#039;&amp;#039;Ausgangsgrad&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Dabei ist &amp;lt;math&amp;gt;d_G^-(v)&amp;lt;/math&amp;gt; die Anzahl aller Kanten, die in &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; enden&lt;br /&gt;
und  &amp;lt;math&amp;gt;d_G^+(v)&amp;lt;/math&amp;gt; die Anzahl aller Kanten, die in &amp;lt;math&amp;gt;v&amp;lt;/math&amp;gt; starten.&lt;br /&gt;
&lt;br /&gt;
Einen [[Knoten (Graphentheorie)|Knoten]] ohne Eingangskanten (&amp;lt;math&amp;gt;d_G^-(v)=0&amp;lt;/math&amp;gt;) nennt man &amp;#039;&amp;#039;&amp;#039;Quelle&amp;#039;&amp;#039;&amp;#039;, einen Knoten ohne Ausgangskanten (&amp;lt;math&amp;gt;d_G^+(v)=0&amp;lt;/math&amp;gt;) nennt man &amp;#039;&amp;#039;&amp;#039;Senke&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Verwandte Begriffe ==&lt;br /&gt;
* Man nennt einen [[Knoten (Graphentheorie)|Knoten]] &amp;#039;&amp;#039;&amp;#039;isoliert&amp;#039;&amp;#039;&amp;#039;, wenn er:&lt;br /&gt;
** in einem [[Ungerichteter Graph|ungerichteten Graphen]]: keine [[Nachbarschaft (Graphentheorie) |Nachbarn]] besitzt, &amp;lt;math&amp;gt;d_G =0&amp;lt;/math&amp;gt;.&lt;br /&gt;
** in einem [[Gerichteter Graph|gerichteten Graphen]]: keine Vorgänger und keine Nachfolger besitzt, &amp;lt;math&amp;gt;d_G^+ = d_G^- =0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Ein ungerichteter [[Graph (Graphentheorie)|Graph]] oder [[Hypergraph]] &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; heißt [[Regulärer Graph|regulär]], falls alle seine Knoten denselben Grad besitzen. Besitzen alle seine Knoten Grad &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, so bezeichnet man &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; als &amp;#039;&amp;#039;k-regulär&amp;#039;&amp;#039;. Einen 3-regulären Graphen bezeichnet man auch als [[Kubischer Graph|kubisch]].&lt;br /&gt;
&lt;br /&gt;
* Ein gerichteter Graph &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; heißt &amp;#039;&amp;#039;regulär&amp;#039;&amp;#039;, falls alle seine Knoten denselben Eingangs- und Ausgangsgrad besitzen. Besitzen alle seine Knoten Eingangs- und Ausgangsgrad &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, so bezeichnet man &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; als &amp;#039;&amp;#039;k-regulär&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* Ein [[Hypergraph]] &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; heißt &amp;#039;&amp;#039;&amp;#039;uniform&amp;#039;&amp;#039;&amp;#039;, wenn alle [[Kante (Graphentheorie)|Kanten]] von &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; die gleiche Anzahl Knoten enthalten. Enthalten alle Kanten von &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; genau &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Knoten, so nennt man &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; &amp;#039;&amp;#039;&amp;#039;k-uniform&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
* Stets gilt &amp;lt;math&amp;gt; \delta (G) \leq d (G) \leq \Delta (G)&amp;lt;/math&amp;gt;. Gleichheit tritt z.&amp;amp;nbsp;B. bei [[Vollständiger Graph|vollständigen Graphen]], allgemein bei [[Regulärer Graph|regulären Graphen]] ein.&lt;br /&gt;
* Es gilt  &amp;lt;math&amp;gt;2 \cdot |E| = \sum_{v \in V(G)}d_G(v)&amp;lt;/math&amp;gt;, wobei &amp;lt;math&amp;gt;|E|&amp;lt;/math&amp;gt; die Anzahl der Kanten des Graphen bezeichnet. Da die Summe der Knotengrade also stets gerade ist, ist auch die Anzahl der Knoten mit ungeradem Grad stets gerade.&lt;br /&gt;
&lt;br /&gt;
=== Planare Graphen ===&lt;br /&gt;
[[Zusammenhängender Graph|Zusammenhängende]] [[Planarer Graph|planare Graphen]] mit &amp;lt;math&amp;gt; |V| &amp;lt;/math&amp;gt; [[Knoten (Graphentheorie)|Knoten]], &amp;lt;math&amp;gt; |E| &amp;lt;/math&amp;gt; [[Kante (Graphentheorie)|Kanten]] und &amp;lt;math&amp;gt; |F| &amp;lt;/math&amp;gt; Flächen erfüllen die [[Ungleichung]] &amp;lt;math&amp;gt; 2 \cdot |E| \geq 3 \cdot |F|&amp;lt;/math&amp;gt;, weil jede Fläche benachbart zu mindestens drei Kanten und jede Kante genau zwei Flächen begrenzt. Daraus und aus der Gleichung &amp;lt;math&amp;gt; |V| - |E| + |F| = 2 &amp;lt;/math&amp;gt; ([[Eulerscher Polyedersatz]]) folgt &amp;lt;math&amp;gt; |E| \leq 3 \cdot |V| - 6&amp;lt;/math&amp;gt; und daraus folgt für den durchschnittlichen Knotengrad&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; d(G) = \frac{\sum_{v \in V}d_G(v)}{|V|} = \frac{2 \cdot |E|}{|V|} \leq \frac{2 \cdot (3 \cdot |V| - 6)}{|V|} = \frac{6 \cdot |V| - 12}{|V|} &amp;lt; 6&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das heißt, dass für endliche [[Planarer Graph|planare Graphen]] der durchschnittliche Knotengrad kleiner als 6 ist. Graphen mit höherem durchschnittlichen Knotengrad können nicht planar sein.&lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
Der Grad gehört zu den Grundbegriffen der [[Graphentheorie]] und liefert viele wichtige Abschätzungen für Grapheneigenschaften wie z.&amp;amp;nbsp;B. die [[Kantenfärbungszahl]].&lt;br /&gt;
&lt;br /&gt;
== Programmierung ==&lt;br /&gt;
Das folgende Beispiel in der [[Programmiersprache]] [[C-Sharp|C#]] zeigt die Implementierung eines ungerichteten Graphen mit [[Adjazenzliste|Adjazenzlisten]]. Der ungerichtete Graph wird als [[Klasse (Objektorientierung)|Klasse]] &amp;#039;&amp;#039;UndirectedGraph&amp;#039;&amp;#039; deklariert. Bei der Ausführung des Programms wird die [[Methode (Programmierung)|Methode]] &amp;#039;&amp;#039;Main&amp;#039;&amp;#039; verwendet, die den Minimalgrad, den Maximalgrad und die entsprechenden [[Knoten (Graphentheorie)|Knoten]] des Graphen auf der Konsole ausgibt.&amp;lt;ref&amp;gt;GeeksforGeeks: [https://www.geeksforgeeks.org/print-nodes-having-maximum-and-minimum-degrees/ Print nodes having maximum and minimum degrees]&amp;lt;/ref&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;c#&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
&lt;br /&gt;
// Deklariert die Klasse für die Knoten des Graphen&lt;br /&gt;
class Node&lt;br /&gt;
{&lt;br /&gt;
	public int index;&lt;br /&gt;
	public string value;&lt;br /&gt;
	public HashSet&amp;lt;Node&amp;gt; adjacentNodes = new HashSet&amp;lt;Node&amp;gt;(); // Menge der Nachbarknoten&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Deklariert die Klasse für den ungerichteten Graphen&lt;br /&gt;
class UndirectedGraph&lt;br /&gt;
{&lt;br /&gt;
	public HashSet&amp;lt;Node&amp;gt; nodes = new HashSet&amp;lt;Node&amp;gt;();&lt;br /&gt;
	&lt;br /&gt;
	// Diese Methode verbindet die Knoten node1 und node2 miteinander.&lt;br /&gt;
	public void ConnectNodes(Node node1, Node node2)&lt;br /&gt;
	{&lt;br /&gt;
		node1.adjacentNodes.Add(node2);&lt;br /&gt;
		node2.adjacentNodes.Add(node1);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Program&lt;br /&gt;
{&lt;br /&gt;
	// Diese Methode gibt die Knoten in der Form A, B, C, ... als Text zurück.&lt;br /&gt;
	public static string ToString(HashSet&amp;lt;Node&amp;gt; nodes)&lt;br /&gt;
	{&lt;br /&gt;
		string text = &amp;quot;&amp;quot;;&lt;br /&gt;
		foreach (Node node in nodes) // foreach-Schleife, die alle Knoten der Komponente durchläuft&lt;br /&gt;
		{&lt;br /&gt;
			text += node.value + &amp;quot;, &amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		text = text.Substring(0, text.Length - 2);&lt;br /&gt;
		return text;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Hauptmethode, die das Programm ausführt&lt;br /&gt;
	public static void Main(string[] args)&lt;br /&gt;
	{&lt;br /&gt;
		// Deklariert und initialisiert 5 Knoten&lt;br /&gt;
		Node node1 = new Node{index = 0, value = &amp;quot;A&amp;quot;};&lt;br /&gt;
		Node node2 = new Node{index = 1, value = &amp;quot;B&amp;quot;};&lt;br /&gt;
		Node node3 = new Node{index = 2, value = &amp;quot;C&amp;quot;};&lt;br /&gt;
		Node node4 = new Node{index = 3, value = &amp;quot;D&amp;quot;};&lt;br /&gt;
		Node node5 = new Node{index = 4, value = &amp;quot;E&amp;quot;};&lt;br /&gt;
		// Deklariert und initialisiert ein Array mit den Knoten&lt;br /&gt;
		Node[] nodes = {node1, node2, node3, node4, node5};&lt;br /&gt;
		// Erzeugt einen ungerichteten Graphen&lt;br /&gt;
		UndirectedGraph undirectedGraph = new UndirectedGraph();&lt;br /&gt;
		int numberOfNodes = nodes.Length;&lt;br /&gt;
		for (int i = 0; i &amp;lt; numberOfNodes; i++) // for-Schleife, die alle Knoten durchläuft&lt;br /&gt;
		{&lt;br /&gt;
			undirectedGraph.nodes.Add(nodes[i]); // Fügt die Knoten dem Graphen hinzu&lt;br /&gt;
		}&lt;br /&gt;
		// Verbindet Knoten des Graphen miteinander&lt;br /&gt;
		undirectedGraph.ConnectNodes(node1, node2);&lt;br /&gt;
		undirectedGraph.ConnectNodes(node3, node4);&lt;br /&gt;
		undirectedGraph.ConnectNodes(node4, node5);&lt;br /&gt;
		&lt;br /&gt;
		int minimumDegree = numberOfNodes;&lt;br /&gt;
		HashSet&amp;lt;Node&amp;gt; nodesWithMinimumDegree = new HashSet&amp;lt;Node&amp;gt;();&lt;br /&gt;
		int maximumDegree = 0;&lt;br /&gt;
		HashSet&amp;lt;Node&amp;gt; nodesWithMaximumDegree = new HashSet&amp;lt;Node&amp;gt;();&lt;br /&gt;
		for (int i = 0; i &amp;lt; numberOfNodes; i++) // for-Schleife, die alle Knoten durchläuft&lt;br /&gt;
		{&lt;br /&gt;
			// Bestimmt den Minimalgrad und den Maximalgrad und die entsprechenden Knoten des Graphen&lt;br /&gt;
			Node node = nodes[i];&lt;br /&gt;
			int degree = node.adjacentNodes.Count; // Knotengrad = Anzahl der Nachbarknoten&lt;br /&gt;
			if (degree &amp;lt; minimumDegree)&lt;br /&gt;
			{&lt;br /&gt;
				minimumDegree = degree;&lt;br /&gt;
				nodesWithMinimumDegree.Clear();&lt;br /&gt;
				nodesWithMinimumDegree.Add(node);&lt;br /&gt;
			}&lt;br /&gt;
			if (degree == minimumDegree)&lt;br /&gt;
			{&lt;br /&gt;
				nodesWithMinimumDegree.Add(node);&lt;br /&gt;
			}&lt;br /&gt;
			if (degree &amp;gt; maximumDegree)&lt;br /&gt;
			{&lt;br /&gt;
				maximumDegree = degree;&lt;br /&gt;
				nodesWithMaximumDegree.Clear();&lt;br /&gt;
				nodesWithMaximumDegree.Add(node);&lt;br /&gt;
			}&lt;br /&gt;
			if (degree == maximumDegree)&lt;br /&gt;
			{&lt;br /&gt;
				nodesWithMaximumDegree.Add(node);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		Console.WriteLine(&amp;quot;Minimalgrad: &amp;quot; + minimumDegree); // Ausgabe auf der Konsole&lt;br /&gt;
		Console.WriteLine(&amp;quot;Knoten mit Minimalgrad: &amp;quot; + ToString(nodesWithMinimumDegree)); // Ausgabe auf der Konsole&lt;br /&gt;
		Console.WriteLine(&amp;quot;Maximalgrad: &amp;quot; + maximumDegree); // Ausgabe auf der Konsole&lt;br /&gt;
		Console.WriteLine(&amp;quot;Knoten mit Maximalgrad: &amp;quot; + ToString(nodesWithMaximumDegree)); // Ausgabe auf der Konsole&lt;br /&gt;
		&lt;br /&gt;
		Console.ReadLine();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Reinhard Diestel&lt;br /&gt;
   |Titel=Graphentheorie&lt;br /&gt;
   |Verlag=Springer&lt;br /&gt;
   |Ort=Berlin&lt;br /&gt;
   |Datum=2010&lt;br /&gt;
   |ISBN=978-3-642-14911-5}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Grundbegriff (Graphentheorie)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;DeWikiMan</name></author>
	</entry>
</feed>