<?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=Spannbaum</id>
	<title>Spannbaum - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Spannbaum"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Spannbaum&amp;action=history"/>
	<updated>2026-05-17T13:51:39Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=Spannbaum&amp;diff=9718&amp;oldid=prev</id>
		<title>imported&gt;Invisigoth67: form</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Spannbaum&amp;diff=9718&amp;oldid=prev"/>
		<updated>2025-07-19T15:07:37Z</updated>

		<summary type="html">&lt;p&gt;form&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Spanning Trees qtl1.svg|mini|Alle 16 Spannbäume des [[Vollständiger Graph|vollständigen Graphen]] mit 4 Knoten]]&lt;br /&gt;
[[Datei:Minimum spanning tree.svg|mini|Ein Graph mit einem minimalen Spannbaum]]&lt;br /&gt;
[[Datei:Натурализация гамильтоновых циклов.jpg|mini|Drei Beispiele für Spannbäume auf einem 8x8 [[Gittergraph]]]]&lt;br /&gt;
&lt;br /&gt;
Ein &amp;#039;&amp;#039;&amp;#039;Spannbaum&amp;#039;&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;aufspannender Baum&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Gerüst&amp;#039;&amp;#039; genannt; englisch &amp;#039;&amp;#039;spanning tree&amp;#039;&amp;#039;, manchmal [[Falscher Freund|fälschlich]] als „spannender Baum“ übersetzt) ist in der [[Graphentheorie]] ein [[Teilgraph]] eines [[Ungerichteter Graph|ungerichteten Graphen]], der ein [[Baum (Graphentheorie)|Baum]] ist und alle Knoten dieses Graphen enthält.&amp;lt;ref&amp;gt;Ein vergleichbares Problem auf [[Gerichteter Graph|gerichteten Graphen]] ist das Finden eines Teilgraphen, der ein [[gewurzelter Baum]] ist.&amp;lt;/ref&amp;gt; Spannbäume existieren nur in [[Zusammenhang von Graphen|zusammenhängenden]] Graphen.&lt;br /&gt;
&lt;br /&gt;
In einem [[Vollständiger Graph|vollständigen Graphen]] &amp;lt;math&amp;gt;K_n&amp;lt;/math&amp;gt; findet man nach der [[Cayley-Formel]] &amp;lt;math&amp;gt;n^{n-2}&amp;lt;/math&amp;gt; verschiedene Spannbäume. Im nebenstehenden Beispiel des &amp;lt;math&amp;gt;K_4&amp;lt;/math&amp;gt; sind es &amp;lt;math&amp;gt;4^{4-2}=16&amp;lt;/math&amp;gt; Stück.&lt;br /&gt;
&lt;br /&gt;
== Unterarten ==&lt;br /&gt;
Ein Teilgraph, der in einem Graphen für jede [[Zusammenhang von Graphen|Komponente]] einen Spannbaum ergibt, wird &amp;#039;&amp;#039;Gerüst&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Spannwald&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;aufspannender [[Wald (Graphentheorie)|Wald]]&amp;#039;&amp;#039; genannt. Dabei muss der Graph nicht notwendigerweise zusammenhängend sein. In zusammenhängenden Graphen sind &amp;#039;&amp;#039;Gerüst&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Spannbaum&amp;#039;&amp;#039; identische Begriffe, während Spannbäume für unzusammenhängende Graphen per Definition nicht existieren.&lt;br /&gt;
&lt;br /&gt;
In [[Kantengewichteter Graph|kantengewichteten]] Graphen lässt sich als Gewicht eines Graphen die Summe seiner Kantengewichte definieren. Ein Spannbaum bzw. ein Gerüst heißt &amp;#039;&amp;#039;minimal&amp;#039;&amp;#039;, wenn kein anderer Spannbaum bzw. kein anderes Gerüst in demselben Graphen mit geringerem Gewicht existiert. Häufig wird &amp;#039;&amp;#039;minimaler Spannbaum&amp;#039;&amp;#039; auch mit &amp;#039;&amp;#039;MST&amp;#039;&amp;#039; (Abkürzung des englischen Begriffs &amp;#039;&amp;#039;Minimum Spanning Tree&amp;#039;&amp;#039;) oder &amp;#039;&amp;#039;MCST&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Minimum Cost Spanning Tree&amp;#039;&amp;#039; – ein Spannbaum mit minimalen Kosten) abgekürzt. Statt &amp;#039;&amp;#039;minimales Gerüst&amp;#039;&amp;#039; sagt man auch &amp;#039;&amp;#039;Minimalgerüst&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Gerüst kleinsten Wertes&amp;#039;&amp;#039;. Ist die Kantengewichtungsfunktion injektiv, so ist der minimale Spannbaum eindeutig.&lt;br /&gt;
&lt;br /&gt;
Ein &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-Spanner eines Graphen ist ein aufspannender Teilgraph, in dem die [[Abstand (Graphentheorie)|Distanz]] jedes Knotenpaares höchstens dem &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-fachen seiner Distanz im Ausgangsgraphen entspricht.&lt;br /&gt;
&lt;br /&gt;
Bei einem gradbeschränkten Spannbaum dürfen nicht beliebig viele Kanten an einem Knoten zusammenlaufen.&lt;br /&gt;
&lt;br /&gt;
== Algorithmen ==&lt;br /&gt;
Ein nicht minimaler Spannbaum kann in einem [[Graph (Graphentheorie)|Graphen]] &amp;lt;math&amp;gt;G=(V,E)&amp;lt;/math&amp;gt; mit Knotenmenge &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt; und Kantenmenge &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; mittels [[Breitensuche|Breiten-]] oder [[Tiefensuche]] in &amp;lt;math&amp;gt;\mathcal{O} \bigl( \left| V \right| + \left| E \right| \bigr)&amp;lt;/math&amp;gt; gefunden werden.&lt;br /&gt;
&lt;br /&gt;
Zur effizienten Berechnung minimaler Spannbäume existiert eine Vielzahl von sequentiellen Algorithmen, zum Beispiel der [[Algorithmus von Prim]], der [[Algorithmus von Kruskal]] und der [[Algorithmus von Borůvka]]. Alle drei genannten Algorithmen vergrößern iterativ eine Teilmenge der Kanten &amp;lt;math&amp;gt;E&amp;lt;/math&amp;gt; hin zu einem minimalen Spannbaum und bieten dabei unterschiedliche Ansätze zur parallelen Berechnung. Ein anderes Verfahren ist der [[Algorithmus von Chazelle]].&lt;br /&gt;
&lt;br /&gt;
Neben den oben genannten Algorithmen gibt es viele weitere Veröffentlichungen zur parallelen Berechnung minimaler Spannbäume. Mit einer linearen Anzahl an Prozessoren ist es möglich, das Problem in &amp;lt;math&amp;gt;O(\log n)&amp;lt;/math&amp;gt; Zeit zu lösen&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
 | last1 = Chong&lt;br /&gt;
 | first1 = Ka Wong&lt;br /&gt;
 | last2 = Han&lt;br /&gt;
 | first2 = Yijie&lt;br /&gt;
 | last3 = Lam&lt;br /&gt;
 | first3 = Tak Wah&lt;br /&gt;
 | doi = 10.1145/375827.375847&lt;br /&gt;
 | issue = 2&lt;br /&gt;
 | journal = Journal of the Association for Computing Machinery&lt;br /&gt;
 | pages = 297–323&lt;br /&gt;
 | title = Concurrent threads and optimal parallel minimum spanning trees algorithm&lt;br /&gt;
 | volume = 48&lt;br /&gt;
 | year = 2001&lt;br /&gt;
 | language = en }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
 | last1 = Pettie | first1 = Seth&lt;br /&gt;
 | last2 = Ramachandran | first2 = Vijaya&lt;br /&gt;
 | doi = 10.1137/S0097539700371065&lt;br /&gt;
 | issue = 6&lt;br /&gt;
 | journal = SIAM Journal on Computing&lt;br /&gt;
 | pages = 1879–1895&lt;br /&gt;
 | title = A randomized time-work optimal parallel algorithm for finding a minimum spanning forest&lt;br /&gt;
 | volume = 31&lt;br /&gt;
 | year = 2002 |language=en |url = http://www.eecs.umich.edu/~pettie/papers/sicomp-randmst.pdf&lt;br /&gt;
 }}&amp;lt;/ref&amp;gt;. Bader und Cong präsentieren einen Algorithmus, der minimale Spannbäume fünffach schneller auf acht Prozessoren berechnet als ein optimierter sequentieller Algorithmus&amp;lt;ref&amp;gt;{{cite journal&lt;br /&gt;
 | last1 = Bader&lt;br /&gt;
 | first1 = David A.&lt;br /&gt;
 | last2 = Cong&lt;br /&gt;
 | first2 = Guojing&lt;br /&gt;
 | doi = 10.1016/j.jpdc.2006.06.001&lt;br /&gt;
 | issue = 11&lt;br /&gt;
 | journal = Journal of Parallel and Distributed Computing&lt;br /&gt;
 | pages = 1366–1378&lt;br /&gt;
 | title = Fast shared-memory algorithms for computing the minimum spanning forest of sparse graphs&lt;br /&gt;
 | volume = 66&lt;br /&gt;
 | year = 2006&lt;br /&gt;
 | language = en }}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Weitere spezialisierte Algorithmen wurden für minimale Spannbäume im [[External Memory Minimaler Spannbaum|External-Memory-Modell]] entwickelt.&amp;lt;ref&amp;gt;{{Literatur |Autor=Roman Dementiev, Peter Sanders, Dominik Schultes, Jop Sibeyn |Titel=Engineering an External Memory Minimum Spanning Tree Algorithm |Sammelwerk=Exploring New Frontiers of Theoretical Informatics – IFIP 18th World Computer Congress TC1 3rd International Conference on Theoretical Computer Science (TCS2004) 22–27 August 2004 Toulouse, France |Reihe=IFIP International Federation for Information Processing |BandReihe=155 |Verlag=Springer |Datum=2004 |DOI=10.1007/1-4020-8141-3_17}}&amp;lt;/ref&amp;gt; Laut den Autoren arbeitet dieser Algorithmus nur 2–5 mal langsamer als ein Algorithmus, der nur auf dem Hauptspeicher arbeitet.&lt;br /&gt;
&lt;br /&gt;
Ein Spannbaum eines [[Graph (Graphentheorie)|Graphen]] kann in linearer Zeit entweder durch [[Tiefensuche]] oder durch [[Breitensuche]] gefunden werden. Beide [[Algorithmus|Algorithmen]] untersuchen den gegebenen Graphen ausgehend von einem beliebigen [[Knoten (Graphentheorie)|Knoten]], indem sie die [[Nachbar (Graphentheorie)|Nachbarn]] der von ihnen gefundenen Knoten durchlaufen und jeden nicht gefundenen Nachbarn zu einer [[Datenstruktur]] hinzufügen, die später untersucht werden soll. Sie unterscheiden sich darin, ob es sich bei dieser Datenstruktur um einen [[Stapelspeicher]] (bei der Tiefensuche) oder eine [[Warteschlange (Datenstruktur)|Warteschlange]] (bei der Breitensuche) handelt. In beiden Fällen kann ein Spannbaum gebildet werden, indem jeder andere Knoten als der Wurzelknoten mit dem Knoten verbunden wird, von dem aus er gefunden wurde. Dieser Baum ist als Tiefensuchbaum oder Breitensuchbaum gemäß dem zur Erstellung verwendeten [[Graphsuchalgorithmus|Graphsuchsalgorithmus]] bekannt.&amp;lt;ref&amp;gt;{{Literatur |Autor=Dexter Kozen |Titel=The Design and Analysis of Algorithms |Verlag=Monographs in Computer Science |Datum=1992 |ISBN=978-0-387-97687-7 |Seiten=19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spannbäume sind wichtig für [[Parallelrechner]] und [[Verteiltes System|verteilte Systeme]], um die Kommunikation zwischen einer Reihe von Prozessoren aufrechtzuerhalten. Siehe zum Beispiel das [[Spanning Tree Protocol]] oder das Shout Protocol für verteilte Systeme. Die [[Tiefensuche]] und [[Breitensuche]] zum Erstellen von Spannbäumen auf sequentiellen [[Computer]]n sind jedoch für Parallelrechner und verteilte Systeme nicht gut geeignet.&amp;lt;ref&amp;gt;{{cite journal|last=Reif|first=John H.|authorlink=John Reif|doi=10.1016/0020-0190(85)90024-9|issue=5|journal=Information Processing Letters|pages=229–234|title=Depth-first search is inherently sequential|volume=20|year=1985 |language=en}}.&amp;lt;/ref&amp;gt; Stattdessen haben Forscher mehrere spezialisiertere Algorithmen entwickelt, um Spannbäume in diesen Berechnungsmodellen zu finden.&amp;lt;ref&amp;gt;{{cite journal|last1=Gallager|first1=R. G.|last2=Humblet|first2=P. A.|last3=Spira|first3=P. M.|doi=10.1145/357195.357200|issue=1|journal=ACM Transactions on Programming Languages and Systems|pages=66–77|title=A distributed algorithm for minimum-weight spanning trees|volume=5|year=1983 |language=en}}; {{cite journal|last=Gazit|first=Hillel|doi=10.1137/0220066|issue=6|journal=SIAM Journal on Computing|pages=1046–1067|title=An optimal randomized parallel algorithm for finding connected components in a graph|volume=20|year=1991 |language=en}}; {{cite journal|last1=Bader|first1=David A.|last2=Cong|first2=Guojing|doi=10.1016/j.jpdc.2005.03.011|issue=9|journal=Journal of Parallel and Distributed Computing|pages=994–1006|title=A fast, parallel spanning tree algorithm for symmetric multiprocessors (SMPs)|url=http://www.cc.gatech.edu/fac/bader/papers/SpanningTree-JPDC2005.pdf |volume=65 |year=2005 |language=en |accessdate=2020-04-13 |archiveurl=https://web.archive.org/web/20150923201604/http://www.cc.gatech.edu/fac/bader/papers/SpanningTree-JPDC2005.pdf| archivedate=2015-09-23}}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optimale Spannbäume wurden auch für endliche Punktmengen in einem geometrischen [[Raum (Mathematik)|Raum]] wie der [[Euklidischer Raum|euklidischen]] [[Ebene (Mathematik)|Ebene]] untersucht. Für eine solche Eingabe ist ein Spannbaum wieder ein [[Baum (Graphentheorie)|Baum]], dessen [[Knoten (Graphentheorie)|Knoten]] die angegebenen [[Punkt (Geometrie)|Punkte]] sind. Die Qualität des Baums wird auf die gleiche Weise wie in einem Graphen gemessen, wobei der [[Euklidischer Abstand|euklidische Abstand]] zwischen Punktpaaren als Gewicht für jede [[Kante (Graphentheorie)|Kante]] verwendet wird. So entspricht beispielsweise ein euklidischer minimaler Spannbaum einem minimalen Spannbaum in einem vollständigen Graphen mit euklidischen Kantengewichten. Es ist jedoch nicht erforderlich, diesen Graphen zu erstellen, um das [[Optimierungsproblem]] zu lösen. Das Problem des euklidischen minimalen Spannbaums kann beispielsweise effizienter mit einer [[Laufzeit (Informatik)|Laufzeit]] in der Größenordnung &amp;lt;math&amp;gt;O(n \cdot \log n)&amp;lt;/math&amp;gt; gelöst werden, indem die [[Delaunay-Triangulierung]] erstellt und anschließend ein [[Algorithmus]] mit linearer Laufzeit für den minimalen Spannbaum eines [[Planarer Graph|planaren Graphen]] auf die resultierende Triangulierung angewendet wird.&amp;lt;ref&amp;gt;{{cite journal |last=Eppstein |first=David |authorlink=David Eppstein |title=Spanning trees and spanners |journal=Handbook of Computational Geometry |publisher=Elsevier |year=1999 |pages=425–461 |language=en |url=http://www.ics.uci.edu/~eppstein/pubs/Epp-TR-96-16.pdf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
[[Datei:MAZE 30x20 Prim.ogv|mini|Der [[Algorithmus von Prim]] generiert ein Labyrinth.]]&lt;br /&gt;
Die Berechnung minimaler Spannbäume findet direkte Anwendung in der Praxis, beispielsweise für die Erstellung von kostengünstigen zusammenhängenden Netzwerken, wie beispielsweise Telefonnetze oder elektrische Netze. Ein Telefon- oder Netzbetreiber möchte z.&amp;amp;nbsp;B. Städte verbinden und dabei möglichst wenig Geld für z.&amp;amp;nbsp;B. Kabel ausgeben. Auch bei [[Rechnernetz]]en mit redundanten Pfaden werden zur Vermeidung von durch einen Broadcast entstandenen Paketverdopplungen Spannbäume genutzt (siehe [[Spanning Tree Protocol]]). &lt;br /&gt;
&lt;br /&gt;
In der Graphentheorie selbst sind MST-Algorithmen häufig Grundlage komplexerer Algorithmen für schwierigere Probleme. Die Berechnung minimaler Spannbäume ist zum Beispiel Bestandteil von [[Approximationsalgorithmus|Approximationsalgorithmen]] für das [[Problem des Handlungsreisenden]], oft auch in der englischen Bezeichnung &amp;#039;&amp;#039;travelling salesman problem&amp;#039;&amp;#039; (TSP) genannt (siehe [[MST-Heuristik]]), oder für das [[Steinerbaumproblem]]. Letzteres ist auch eine Verallgemeinerung des Problems, einen minimalen Spannbaum zu finden.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren spielen Spannbäume bei der algorithmischen Erzeugung von [[Labyrinth]]en eine Rolle. Ein Knoten im Spannbaum entspricht dabei einem Feld, während eine Kante einen möglichen Übergang zu einem Nachbarfeld darstellt. Eine fehlende Kante beschreibt folglich eine Wand. Da Spannbäume wie alle Bäume zyklenfrei sind, besitzt ein mittels Spannbäumen erzeugtes Labyrinth stets nur einen einzigen Lösungsweg.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Jaroslav Nesetril, Eva Milková, Helena Nesetrilová: &amp;#039;&amp;#039;Otakar Borůvka on minimum spanning tree problem: Translation of both the 1926 papers, comments, history,&amp;#039;&amp;#039; Discrete Mathematics, 233 (2001), Seiten 3–36.&lt;br /&gt;
* [[Bernard Chazelle]]: &amp;#039;&amp;#039;[http://www.cs.princeton.edu/~chazelle/pubs/mst.pdf A minimum spanning tree algorithm with inverse-Ackermann type complexity] (PDF; 321&amp;amp;nbsp;kB)&amp;#039;&amp;#039;. Journal ACM 47 (2000), Seiten 1028–1047.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Wikiversity|Kurs:Diskrete Mathematik (Osnabrück 2020)/Vorlesung 18|Eine Vorlesung über Spannbäume im Rahmen eines Kurses zur diskreten Mathematik}}&lt;br /&gt;
* Katharina Langkau, Martin Skutella: [http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo21.php Minimal aufspannende Bäume], Algorithmus der Woche, 25. Juli 2006. Fakultätentag Informatik.&lt;br /&gt;
&lt;br /&gt;
== Anmerkungen ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4761178-9}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bäume und Wälder]]&lt;br /&gt;
[[Kategorie:Wikipedia:Artikel mit Video]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Invisigoth67</name></author>
	</entry>
</feed>