www.wikidata.de-de.nina.az
Ein Baum ist in der Graphentheorie ein spezieller Typ von Graph der zusammenhangend ist und keine geschlossenen Pfade enthalt d h damit lasst sich eine Monohierarchie modellieren Je nachdem ob die Kanten des Baums eine ausgezeichnete und einheitliche Richtung besitzen lassen sich graphentheoretische Baume unterteilen in ungerichtete Baume und gewurzelte Baume und fur gewurzelte Baume in Out Trees bei denen die Kanten von der Wurzel ausgehen und In Trees bei denen Kanten in Richtung Wurzel zeigen Ein Baum ist ein Wald mit genau einer Zusammenhangskomponente 1 Darstellung aller Baume Anm 1 mit einer zwei oder drei Kanten bei der ersten mathematischen Modellierung von Baumen durch Arthur Cayley 1857 Inhaltsverzeichnis 1 Definitionen 2 Eigenschaften 2 1 Beweise 3 Weitere Eigenschaften 4 Spezielle Baume 5 Zeichnen von Baumen 6 Kombinatorik 7 Spannbaume 8 Verallgemeinerungen 8 1 Wald 8 2 k Baum 9 Programmierung 10 Siehe auch 11 Anmerkungen 12 Literatur 13 Weblinks 14 EinzelnachweiseDefinitionen Bearbeiten nbsp Ungerichteter Baum mit vier inneren Knoten schwarz und funf Blattern weiss Ein Baum ist ein zusammenhangender kreisfreier ungerichteter Graph Die Knoten mit Grad 1 heissen Blatter die ubrigen Knoten heissen innere Knoten nbsp Gewurzelter Baum hier Out Tree mit einer Wurzel umrandet vier inneren Knoten schwarz und funf Blattern weiss Ein gerichteter Baum ist ein gerichteter Graph der ein ungerichteter Baum ist wenn man die Richtungen der Kanten ignoriert Er ist also ein gerichteter schwach zusammenhangender kreisfreier Graph Bei vielen Autoren mussen die Richtungen einheitlich von einem Knoten weg oder auf einen Knoten zu orientiert sein Dafur gibt es aber auch den scharferen Begriff des gewurzelten Baums Ein gewurzelter Baum ist ein gerichteter von einem Knoten w displaystyle w nbsp aus stark zusammenhangender kreisfreier Graph Der den starken Zusammenhang definierende Knoten w displaystyle w nbsp wird Wurzel genannt Er hat Eingangsgrad 0 und ist der einzige Knoten mit dieser Eigenschaft Alle Knoten mit Ausgangsgrad 0 heissen Blatter Alle Knoten mit positivem Ausgangsgrad heissen innere Knoten So geht die Definition eines Out Trees Werden die Richtungen aller Kanten eines solchen Graphen invertiert so wird er zu einem In Tree Dieser wird ebenfalls als gewurzelter Baum angesehen Man kann jeden ungerichteten Baum an einem beliebigen Knoten w displaystyle w nbsp fassen und schutteln die Schwerkraft gibt allen Kanten eine definierte Richtung von w displaystyle w nbsp weg die aus dem ursprunglich ungerichteten Baum einen gewurzelten machen mit w displaystyle w nbsp als Wurzel Den m displaystyle m nbsp Kanten eines ungerichteten Baums kann man 2 m displaystyle 2 m nbsp verschiedene Richtungen geben und so 2 m displaystyle 2 m nbsp gerichtete Baume ableiten Genau n m 1 displaystyle n m 1 nbsp davon sind Out Trees und ebenso viele sind In Trees Entfernt man umgekehrt bei einem gerichteten Baum die Orientierung der Kanten so erhalt man einen ungerichteten Baum Eigenschaften BearbeitenEin endlicher Graph G V E displaystyle G V E nbsp mit V n displaystyle V n nbsp Knoten und E m displaystyle E m nbsp Kanten kann durch folgende aquivalente Aussagen als Baum definiert werden Zwischen je zwei Knoten von G displaystyle G nbsp gibt es genau einen Pfad G displaystyle G nbsp ist zusammenhangend und enthalt keinen Kreis G displaystyle G nbsp ist leer oder G displaystyle G nbsp ist zusammenhangend und es gilt m n 1 displaystyle m n 1 nbsp G displaystyle G nbsp ist leer oder G displaystyle G nbsp enthalt keinen Kreis und es gilt m n 1 displaystyle m n 1 nbsp G displaystyle G nbsp ist minimal zusammenhangend das heisst G displaystyle G nbsp ist zusammenhangend aber nicht mehr zusammenhangend sobald man eine beliebige Kante daraus entfernt G displaystyle G nbsp ist maximal azyklisch das heisst G displaystyle G nbsp ist kreisfrei aber jede weitere Kante zwischen zwei beliebigen Knoten erzeugt einen Kreis Im Falle unendlicher Graphen mussen hier die dritte und vierte Bedingung aus der Aquivalenz ausgenommen werden Beweise Bearbeiten Zwischen je zwei Knoten von G displaystyle G nbsp gibt es genau einen Pfad Zwischen je zwei Knoten von G displaystyle G nbsp gibt es mindestens einen Pfad weil jeder Baum zusammenhangend ist Gabe es zwei Knoten von G displaystyle G nbsp mit mindestens zwei Pfaden dann gabe es zwei Knoten u displaystyle u nbsp und v displaystyle v nbsp auf diesen Pfaden deren Pfade keinen gemeinsamen inneren Knoten haben disjunkte Wege zum Beispiel u v 1 v k v displaystyle u v 1 dots v k v nbsp und u u 1 u l v displaystyle u u 1 dots u l v nbsp Dann ware u v 1 v k v u l u 1 u displaystyle u v 1 dots v k v u l cdots u 1 u nbsp ein Kreis von G displaystyle G nbsp im Widerspruch zur Annahme dass G displaystyle G nbsp ein Baum ist G displaystyle G nbsp ist leer oder G displaystyle G nbsp ist zusammenhangend und es gilt m n 1 displaystyle m n 1 nbsp Dies lasst sich mit vollstandiger Induktion zeigen Fur n 1 displaystyle n 1 nbsp also einen leeren Graphen mit einem einzelnen Knoten und ohne Kanten gilt m n 1 0 displaystyle m n 1 0 nbsp Nach Induktionsvoraussetzung nehmen wir an dass die Gleichung m n 1 displaystyle m n 1 nbsp fur jeden Baum mit n 1 displaystyle n 1 nbsp Knoten gilt Ist G displaystyle G nbsp ein Graph mit n displaystyle n nbsp Knoten und v 1 v 2 v k displaystyle v 1 v 2 dots v k nbsp die Knoten eines langsten Pfades von G displaystyle G nbsp Alle Nachbarn von v 1 displaystyle v 1 nbsp liegen auf diesem Pfad sonst ware er nicht der langste Pfad v 2 displaystyle v 2 nbsp ist der einzige Nachbar von v 1 displaystyle v 1 nbsp denn sonst wurde G displaystyle G nbsp einen Kreis enthalten Entfernen wir v 1 displaystyle v 1 nbsp und die Kante v 1 v 2 displaystyle v 1 v 2 nbsp aus G displaystyle G nbsp dann erhalten wir einen zusammenhangenden Graphen denn v 2 displaystyle v 2 nbsp ist der einzige Nachbar von v 1 displaystyle v 1 nbsp Der entstandene Graph hat genau einen Knoten und eine Kante weniger als G displaystyle G nbsp also n 1 displaystyle n 1 nbsp Knoten Nach Induktionsvoraussetzung gilt m n 1 displaystyle m n 1 nbsp also hat der entstandene Graph m 1 n 2 displaystyle m 1 n 2 nbsp Kanten Daraus folgt dass der Graph G displaystyle G nbsp genau n displaystyle n nbsp Knoten und m n 1 displaystyle m n 1 nbsp Kanten hat G displaystyle G nbsp ist minimal zusammenhangend das heisst G displaystyle G nbsp ist zusammenhangend aber nicht mehr zusammenhangend sobald man eine beliebige Kante daraus entfernt Ware G displaystyle G nbsp nach Entfernen der Kante e u v displaystyle e u v nbsp immer noch zusammenhangend dann wurde der entstandene Graph einen Pfad u v 1 v k v displaystyle u v 1 dots v k v nbsp von u displaystyle u nbsp nach v displaystyle v nbsp enthalten und u v 1 v k v u displaystyle u v 1 dots v k v u nbsp ware ein Kreis von G displaystyle G nbsp G displaystyle G nbsp ist maximal azyklisch das heisst G displaystyle G nbsp ist kreisfrei aber jede weitere Kante zwischen zwei beliebigen Knoten erzeugt einen Kreis Ware G displaystyle G nbsp nach Hinzufugen der Kante e u v displaystyle e u v nbsp immer noch kreisfrei dann wurde G displaystyle G nbsp keinen Pfad von u displaystyle u nbsp nach v displaystyle v nbsp enthalten und ware nicht zusammenhangend im Widerspruch zur Annahme dass G displaystyle G nbsp ein Baum ist Weitere Eigenschaften BearbeitenDurch Entfernen einer Kante zerfallt ein Baum in zwei Teilbaume und bildet damit einen Wald mit zwei Komponenten Entfernt man einen Knoten zusammen mit den anliegenden Kanten zerfallt ein Baum in einen Wald aus k displaystyle k nbsp Baumen mit k displaystyle k nbsp als Grad des entfernten Knotens 2 Entfernt man von einem Baum ein Blatt k 1 displaystyle k 1 nbsp so ist der Rest immer noch ein Baum 1 Durch Hinzufugen einer Kante zwischen zwei vorhandenen Knoten entsteht im ungerichteten Baum ein Kreis 3 Baume sind aufgrund der Kreisfreiheit stets auch bipartit und konnen topologisch sortiert werden Baume sind planar Spezielle Baume BearbeitenEs existiert eine Vielzahl von Begriffen die Baume naher spezifizieren So gibt es zum Beispiel den leeren Graphen Dieser enthalt keine Knoten und Kanten den isolierten Knoten ohne Kanten lineare Graphen P n displaystyle P n nbsp Die inneren Knoten haben jeweils genau zwei Nachbarn Sterngraphen S n displaystyle S n nbsp oder K 1 n displaystyle K 1 n nbsp Diese enthalten einen inneren Knoten und n displaystyle n nbsp Blatter Raupenbaume Alle Blatter haben einen maximalen Abstand von 1 zu einem zentralen Pfad Baume mit konstantem Verzweigungsfaktor also Grad der inneren Knoten Bereichsbaum Binarbaume untergliedern eindimensionale Daten innere Knoten haben zwei Nachfolger darunter vollstandige Binarbaume AVL Baum und Rot Schwarz Baum Quadtrees untergliedern zweidimensionale Daten innere Knoten haben vier Nachfolger Octrees untergliedern dreidimensionale Daten innere Knoten haben acht Nachfolger Binomial Baume haben einen variablen aber festgelegten Verzweigungsfaktor Ein Binomial Baum der Ordnung k displaystyle k nbsp besitzt eine Wurzel mit Grad k displaystyle k nbsp deren Kinder genau die Ordnung k 1 k 2 0 displaystyle k 1 k 2 dots 0 nbsp besitzen Baume konnen nach ihrer Hohe dem Gewicht der Knoten oder der Anordnung der Wurzel balanciert sein nbsp Binarbaum mit Knotentypen nbsp balancierter Binarbaum nbsp Binomial Heap mit 13 Elementen Die Schlussel der Vater sind hochstens so gross wie die Schlussel ihrer Kinder nbsp Raupenbaum caterpillar tree nbsp Die Sterngraphen S 3 displaystyle S 3 nbsp S 4 displaystyle S 4 nbsp S 5 displaystyle S 5 nbsp und S 6 displaystyle S 6 nbsp Zeichnen von Baumen BearbeitenDie grafische Ausgabe eines Baums ist ein nicht triviales Problem Allgemein gilt dass jeder Baum planar das heisst ohne Uberschneidungen der Kanten gezeichnet werden kann Je nach Anwendungszweck gibt es weitere Wunsche an die Art der Ausgabe alle Kanten sind gerade Linien alle Knoten haben ganzzahlige Koordinaten moglichst kleiner Platzbedarf bei moglichst asthetischem Ergebnis alle Kanten vom Elternelement zum Kind streng monoton fallendEs gibt verschiedene Algorithmen deren Ergebnisse recht verschieden aussehen Meist losen sie nur einige aber nicht alle Wunsche an die Ausgabe Bekannte Algorithmen sind die HV Baume und der Algorithmus von Walker Kombinatorik BearbeitenEs gibt n n 2 displaystyle n n 2 nbsp verschiedene bezeichnete Baume mit n displaystyle n nbsp Knoten Diese Aussage ist als Cayley Formel bekannt Einen einfachen Beweis liefert der Prufer Code der eine Bijektion zwischen allen moglichen Codes der Lange n 2 displaystyle n 2 nbsp und allen bezeichneten Baumen auf n displaystyle n nbsp Knoten ermoglicht Wenn die Knoten nicht nummeriert sind isomorphe Baume siehe Isomorphie von Graphen also nicht mitgezahlt werden verhalt sich diese Anzahl asymptotisch wie C a n n 5 2 displaystyle textstyle C cdot alpha n cdot n frac 5 2 nbsp mit C 0 534 949606 displaystyle C approx 0 534949606 nbsp und a 2 955 76528565 displaystyle alpha approx 2 95576528565 nbsp wie Richard Otter im Jahr 1948 bewies 4 Eine genaue mathematische Formel ist nicht bekannt Die folgende Tabelle zeigt die mit Hilfe eines Computers bestimmten Anzahlen fur n 12 displaystyle n leq 12 nbsp 5 Anzahl der Baumen mit nummerierten Knoten ohne nummerierte Knoten1 1 12 1 13 3 14 16 25 125 36 1 296 67 16 807 118 262 144 239 4 782 969 4710 100 000 000 10611 2 357 947 691 23512 61 917 364 224 551Spannbaume Bearbeiten Hauptartikel Spannbaum Jeder ungerichtete zusammenhangende Graph enthalt einen ihn aufspannenden Baum als Teilgraphen Minimale Spannbaume haben eine moglichst kleine Anzahl von Kanten oder eine moglichst kleine Summe der Kantengewichte Die Berechnung minimaler Spannbaume findet direkte Anwendung in der Praxis beispielsweise fur die Erstellung von kostengunstigen zusammenhangenden Netzwerken wie beispielsweise Telefonnetzen oder elektrischen Netzen Verallgemeinerungen BearbeitenWald Bearbeiten Hauptartikel Wald Graphentheorie Ein Wald ist ein ungerichteter Graph dessen Zusammenhangskomponenten Baume sind k Baum Bearbeiten Ein ungerichteter Graph heisst k displaystyle k nbsp Baum wenn er wie folgt rekursiv erzeugbar ist Der vollstandige Graph K k displaystyle K k nbsp ist ein k displaystyle k nbsp Baum Fugt man zu einem k displaystyle k nbsp Baum G displaystyle G nbsp einen neuen Knoten v displaystyle v nbsp hinzu indem man v displaystyle v nbsp mit allen Knoten einer Clique der Grosse k displaystyle k nbsp aus G displaystyle G nbsp verbindet so ist dieser neue Graph ebenfalls ein k displaystyle k nbsp Baum Ein partieller k displaystyle k nbsp Baum entsteht durch die Entfernung von Kanten aus einem k displaystyle k nbsp Baum Ist G V E displaystyle G V E nbsp ein k displaystyle k nbsp Baum so ist H V F displaystyle H V F nbsp mit F E displaystyle F subseteq E nbsp ein partieller k displaystyle k nbsp Baum 6 7 8 9 Durch die angegebene Definition haben partielle k Baume immer mindestens k displaystyle k nbsp Knoten was nicht immer wunschenswert ist Darum gibt es auch die folgende Definition Ein partieller k Baum ist ein Teilgraph eines k Baumes 10 11 12 Eine weitere Eigenschaft ist dass die Menge der partiellen k Baume gleich der Menge der Graphen mit Baumweite hochstens k displaystyle k nbsp ist 13 14 Programmierung BearbeitenDas folgende Beispiel in der Programmiersprache C zeigt die Implementierung eines ungerichteten Graphen mit Adjazenzlisten Der ungerichtete Graph wird als Klasse UndirectedGraph deklariert Bei der Ausfuhrung des Programms wird die Methode Main verwendet die auf der Konsole ausgibt ob der Graph ein Baum ist 15 using System using System Collections Generic using System Linq Deklariert die Klasse fur die Knoten des Graphen class Node public int index public string value public HashSet lt Node gt adjacentNodes new HashSet lt Node gt Menge der Nachbarknoten Deklariert die Klasse fur den ungerichteten Graphen class UndirectedGraph public HashSet lt Node gt nodes new HashSet lt Node gt Diese Methode verbindet die Knoten node1 und node2 miteinander public void ConnectNodes Node node1 Node node2 node1 adjacentNodes Add node2 node2 adjacentNodes Add node1 Diese rekursive Methode pruft ob der Graph Zyklen enthalt public bool IsCyclic Node node Dictionary lt Node bool gt areConnected Node parentNode areConnected node true Setzt den aktuellen Knoten als durchlaufen foreach Node nextNode in node adjacentNodes foreach Schleife die alle benachbarten Knoten des aktuellen Knotens durchlauft if areConnected nextNode Wenn der benachbarten Knoten noch nicht durchlaufen wurde if IsCyclic nextNode areConnected node Rekursiver Aufruf der Methode mit dem benachbarten Knoten als aktuellen Knoten return true Wenn der rekursive Aufruf true zuruckgibt else Wenn der benachbarten Knoten schon durchlaufen wurde if nextNode parentNode und der benachbarte Knoten nicht der Elternknoten ist bilden die durchlaufenen Knoten einen Zyklus return true return false Sonst enthalt der Graph keinen Zyklus Diese Methode pruft ob der Graph ein Baum ist public bool IsTree Dictionary lt Node bool gt areConnected new Dictionary lt Node bool gt foreach Node node in nodes foreach Schleife die alle Knoten des Graphen durchlauft areConnected Add node false Setzt alle Knoten als nicht durchlaufen if IsCyclic nodes ElementAt 0 areConnected null Wenn die Komponente mit dem ersten Knoten Zyklen enthalt false zuruckgeben return false foreach Node node in nodes foreach Schleife die alle Knoten des Graphen durchlauft if areConnected node Wenn ein Knoten nicht verbunden ist dann false zuruckgeben return false return true Sonst ist der Graph ein Baum class Program Hauptmethode die das Programm ausfuhrt public static void Main string args Deklariert und initialisiert 5 Knoten Node node1 new Node index 0 value A Node node2 new Node index 1 value B Node node3 new Node index 2 value C Node node4 new Node index 3 value D Node node5 new Node index 4 value E Deklariert und initialisiert ein Array mit den Knoten Node nodes node1 node2 node3 node4 node5 Erzeugt einen ungerichteten Graphen UndirectedGraph undirectedGraph new UndirectedGraph int numberOfNodes nodes Length for int i 0 i lt numberOfNodes i for Schleife die alle Knoten durchlauft undirectedGraph nodes Add nodes i Fugt die Knoten dem Graphen hinzu Verbindet Knoten des Graphen miteinander undirectedGraph ConnectNodes node2 node1 undirectedGraph ConnectNodes node1 node3 undirectedGraph ConnectNodes node1 node4 undirectedGraph ConnectNodes node4 node5 if undirectedGraph IsTree Aufruf der Methode die pruft ob der Graph ein Baum ist Console WriteLine Der Graph ist ein Baum Ausgabe auf der Konsole else Console WriteLine Der Graph ist kein Baum Ausgabe auf der Konsole Console ReadLine Siehe auch BearbeitenBaum Datenstruktur Baumweite Nested Sets SuchbaumAnmerkungen Bearbeiten Einige der dargestellten Baume sind isomorph zueinander namlich beide Baume in Fig 2 sowie in Fig 3 von links gezahlt die Baume 1 und 3 sowie 2 und 4 Es sind nur ungerichtete Baume dargestellt Fasst man den obersten Knoten als Wurzel auf so ergeben sich entsprechend unterschiedliche heteromorphe gewurzelte Baume Literatur BearbeitenFrank Gurski Irene Rothe Jorg Rothe Egon Wanke Exakte Algorithmen fur schwere Graphenprobleme Springer Verlag Berlin Heidelberg 2010 ISBN 978 3 642 04499 1 Sven Krumke Hartmut Noltemeier Graphentheoretische Konzepte und Algorithmen 3 Auflage Springer Vieweg Verlag Wiesbaden 2012 ISBN 978 3 8348 1849 2 Siehe auch Literatur zur GraphentheorieWeblinks Bearbeiten nbsp Commons Baumstrukturen Sammlung von Bildern Videos und AudiodateienEinzelnachweise Bearbeiten a b Reinhard Diestel Graphentheorie 3 neu bearb und erw Auflage Springer Berlin 2006 ISBN 3 540 21391 0 S 14 Angelika Steger Diskrete Strukturen 2 Auflage Band 1 Kombinatorik Graphentheorie Algebra Springer Berlin 2007 ISBN 978 3 540 46660 4 S 65 Stephan Hussmann Brigitte Lutz Westphal Kombinatorische Optimierung erleben in Studium und Unterricht 1 Auflage Vieweg Wiesbaden 2007 ISBN 978 3 528 03216 6 S 47 Richard Otter The Number of Trees In Annals of Mathematics 49 Jahrgang Nr 3 1948 S 583 599 doi 10 2307 1969046 Folge A000055 in OEIS Frank Gurski Irene Rothe Jorg Rothe Egon Wanke Exakte Algorithmen fur schwere Graphenprobleme Springer Verlag Berlin Heidelberg 2010 ISBN 978 3 642 04499 1 Sven Krumke Hartmut Noltemeier Graphentheoretische Konzepte und Algorithmen Vieweg Teubner Verlag 2012 ISBN 978 3 8348 2264 2 Daniel Granot On some optimization problems on k trees and partial k trees In Discrete Applied Mathematics Elsevier 1994 Janka Chlebi kova Partial k trees with maximum chromatic number In Discrete Applied Mathematics 2002 Xiao Zhou Shin ichi Nakano Takao Nishizeki Edge Coloring Partial k Trees In Journal of Algorithms Nr 21 1996 S 598 617 Ton Kloks Treewidth Springer Verlag Berlin Heidelberg 1994 ISBN 3 540 48672 0 A Yamaguchi H Mamitsuka Finding the Maximum Common Subgraph of a Partial k Tree and a Graph with a Polynomially Bounded Number of Spanning Trees Springer Berlin Heidelberg 2003 ISBN 3 540 24587 1 Hans L Bodlaender A partial k arboretum of graphs with bounded treewidth In Theoretical Computer Science 1998 S 1 45 Jan van Leeuwen Algorithms and Complexity Theory In Handbook of Theoretical Computer Science vol A North Holland Amsterdam 1990 S 527 631 GeeksforGeeks Check if a given graph is tree or notNormdaten Sachbegriff GND 4004849 4 lobid OGND AKS Anmerkung Ansetzungsform GND Baum lt Mathematik gt Abgerufen von https de wikipedia org w index php title Baum Graphentheorie amp oldid 234203390