129.13.72.197 (Diskussion) |
imported>Cepheiden (Form) |
||
Zeile 1: | Zeile 1: | ||
<!-- | <!-- | ||
[[Datei:Barnes hut partikel.png|250px|mini|Partikelverteilung, die zwei benachbarten Galaxien nachempfunden ist. N- | [[Datei:Barnes hut partikel.png|250px|mini|Partikelverteilung, die zwei benachbarten Galaxien nachempfunden ist. N-Körper-Probleme wie dieses sind in der Astronomie häufig anzutreffen, wenn es um die Untersuchung der Dynamik im Inneren von Galaxien oder um deren Wechselwirkungen geht.]] | ||
[[Datei:Barnes hut tree.png|250px|mini|Vollständiger Barnes-Hut-Baum. Das Gebiet wird so lange rekursiv unterteilt, bis sich jedes Teilchen in einer eigenen Zelle befindet.]] | [[Datei:Barnes hut tree.png|250px|mini|Vollständiger Barnes-Hut-Baum. Das Gebiet wird so lange rekursiv unterteilt, bis sich jedes Teilchen in einer eigenen Zelle befindet.]] | ||
[[Datei:Barnes hut used nodes.png|250px|mini|Die Zellen des Barnes-Hut Baumes, die zur Berechnung der Kraft auf ein Teilchen im Koordinatenursprung herangezogen werden]] | [[Datei:Barnes hut used nodes.png|250px|mini|Die Zellen des Barnes-Hut Baumes, die zur Berechnung der Kraft auf ein Teilchen im Koordinatenursprung herangezogen werden]] | ||
--> | --> | ||
Der '''Barnes-Hut-Algorithmus''' ist ein 1986 von [[Josh Barnes]] und [[Piet Hut]] veröffentlichtes Näherungsverfahren, das eine effektive Berechnung der Kräfte in einem [[N- | Der '''Barnes-Hut-Algorithmus''' ist ein 1986 von [[Josh Barnes]] und [[Piet Hut]] veröffentlichtes Näherungsverfahren, das eine effektive Berechnung der Kräfte in einem [[N-Körper-Problem]] ermöglicht. Im Gegensatz zur direkten Aufsummierung der Kräfte, deren Rechenaufwand mit <math>O(N^2)</math> ansteigt, reduziert sich der Aufwand beim Barnes-Hut-Algorithmus auf <math>O(N \log N)</math>. | ||
== Motivation == | == Motivation == | ||
Die Simulation von N- | Die Simulation von N-Körper-Problemen ist eine Standardaufgabe der Astronomie. Bei einem solchen Problem bewegt sich eine Anzahl (''N'') von Körpern unter dem Einfluss einer Kraft, die wiederum von den Positionen aller andern Körper abhängt. Als Beispiel sei hier auf die Bewegung von Sternen im [[Gravitationsfeld]] einer Galaxie verwiesen. Die direkte Integration ist mit zunehmender Anzahl an Körpern sehr aufwendig, da die auf einen Körper wirkende Kraft die Summe aller Kräfte ist die von den anderen Körpern auf ihn wirken. Berechnungen auf Basis der direkten Kräfte[[summation]] werden daher mit steigender Körperanzahl (''N'' > 10000) schnell uneffektiv, denn die Gesamtzahl der Kraftberechnungen ist: | ||
:<math>\frac{1}{2}N (N-1) \approx O(N^2)</math> | :<math>\frac{1}{2}N (N-1) \approx O(N^2)</math> | ||
Zeile 14: | Zeile 14: | ||
Diesem Trend lässt sich zwar durch Verwendung hochparallelisierter Computerhardware ([[Grafikprozessor|GPU]]) entgegenwirken, allerdings verschiebt sich das Problem damit lediglich zu größeren Teilchenanzahlen. Für effektive Simulationen mit mehreren Millionen oder gar Milliarden Partikeln sind Algorithmen notwendig, deren Berechnungsaufwand nicht quadratisch mit der Teilchenzahl ansteigt. Einer dieser Algorithmen ist der von Barnes und Hut. | Diesem Trend lässt sich zwar durch Verwendung hochparallelisierter Computerhardware ([[Grafikprozessor|GPU]]) entgegenwirken, allerdings verschiebt sich das Problem damit lediglich zu größeren Teilchenanzahlen. Für effektive Simulationen mit mehreren Millionen oder gar Milliarden Partikeln sind Algorithmen notwendig, deren Berechnungsaufwand nicht quadratisch mit der Teilchenzahl ansteigt. Einer dieser Algorithmen ist der von Barnes und Hut. | ||
<gallery mode="packed" heights="200"> | |||
Barnes hut partikel.png|Partikelverteilung die zwei benachbarten Galaxien nachempfunden ist. | |||
Barnes hut tree.png|Vollständiger Barnes-Hut-Baum. Das Gebiet wird solange rekursiv unterteilt, bis sich jedes Teilchen in einer eigenen Zelle befindet. | |||
Barnes hut used nodes.png|Die Zellen des Barnes-Hut-Baumes, die zur Berechnung der Kraft auf ein Teilchen im Koordinatenursprung herangezogen werden. | |||
galaxy collision.ogv|Die Berechnungen für [[Wechselwirkende Galaxien]] ist ein typischer Anwendungsfall für Barnes-Hut-Simulationen. | |||
| | </gallery> | ||
< | |||
=== Graphzeichnen === | |||
Die paarweise Berechnung von Kräften zwischen einer großen Anzahl von Objekten ist ebenfalls eine Problemstellung innerhalb des kräftebasierten [[Graphzeichnen]]s als Teil der [[Informatik]]. Dabei werden die Kanten zwischen den Knoten eines [[Graph (Graphentheorie)|Graphen]] als System von [[Feder (Technik)|Federn]] interpretiert und der Graph soll so in die Ebene gezeichnet werden, dass die Federkräfte sich aufheben. Der Barnes-Hut-Algorithmus ermöglicht eine iterative Berechnung der Kräfte und Repositionierung der Knoten.<ref>{{Literatur | Autor = Yifan Hu | Titel = Efficient, high-quality force-directed graph drawing | Sammelwerk = Mathematica Journal | Band = 10 | Datum = 2006 | Nummer = 1 | Seiten = 37–71|Online=https://www.mathematica-journal.com/issue/v10i1/contents/graph_draw/graph_draw.pdf| Format=PDF|Zugriff=2020-12-06}}</ref> | |||
== Funktionsweise == | == Funktionsweise == | ||
<!-- | <!-- | ||
[[Datei:Barnes hut.svg|300px| | [[Datei:Barnes hut.svg|300px|mini|Die von einer Partikelverteilung auf ein Einzelpartikel ausgeübte Kraft kann durch die von einer Punktmasse ausgehenden Kraft angenähert werden, wenn die Entfernung der Partikelgruppe zum Einzelteilchen groß im Verhältnis zum Gruppendurchmesser ist.|links]] | ||
[[Datei:Barnes hut 2.svg|300px| | [[Datei:Barnes hut 2.svg|300px|mini|Die gravitative Wirkung von Sternhaufen und Stern B auf Stern A kann infolge der großen Entfernung als Punktmasse approximiert werden. Doch auch innerhalb des Sternhaufens kann die Gravitationskraft des Sternhaufens auf Stern B durch eine Punktmasse angenähert werden, da Stern B weit genug vom Sternhaufen entfernt ist.|right]] | ||
--> | --> | ||
Der Barnes-Hut-Algorithmus verringert die Anzahl zu berechnenden Kräfte durch geeignetes Zusammenfassen von Teilchengruppen zu Pseudoteilchen. Die Grundidee dabei ist, dass die von einer Partikelgruppe auf ein Einzelpartikel ausgeübte Kraft in sehr guter Näherung durch die Wirkung einer einzelnen Masse im Massenschwerpunkt der Partikelgruppe approximiert werden kann. So kann man beispielsweise die Kraft, die von der [[Andromeda-Galaxie]] auf die [[Sonne]] ausgeübt wird, sehr gut durch eine Punktmasse nähern, die sich im Zentrum der Andromeda-Galaxie befindet und die deren Masse hat. Diese Näherung ist allerdings nur zulässig, wenn der Abstand <math>r</math> der Gruppe vom Einzelteilchen groß und der Gruppendurchmesser <math>d</math> im Verhältnis zum Abstand klein ist. Das Verhältnis von Gruppendurchmesser zu Gruppenentfernung wird als Multipol-Akzeptanz Kriterium (engl.: MAC | Der Barnes-Hut-Algorithmus verringert die Anzahl zu berechnenden Kräfte durch geeignetes Zusammenfassen von Teilchengruppen zu Pseudoteilchen. Die Grundidee dabei ist, dass die von einer Partikelgruppe auf ein Einzelpartikel ausgeübte Kraft in sehr guter Näherung durch die Wirkung einer einzelnen Masse im Massenschwerpunkt der Partikelgruppe approximiert werden kann. So kann man beispielsweise die Kraft, die von der [[Andromeda-Galaxie]] auf die [[Sonne]] ausgeübt wird, sehr gut durch eine Punktmasse nähern, die sich im Zentrum der Andromeda-Galaxie befindet und die deren Masse hat. Diese Näherung ist allerdings nur zulässig, wenn der Abstand <math>r</math> der Gruppe vom Einzelteilchen groß und der Gruppendurchmesser <math>d</math> im Verhältnis zum Abstand klein ist. Das Verhältnis von Gruppendurchmesser zu Gruppenentfernung wird als Multipol-Akzeptanz-Kriterium (engl.: {{lang|en|multipole acceptance criterion}}, MAC) bezeichnet: | ||
::<math>\theta = \frac{d}{r}</math> | ::<math>\theta = \frac{d}{r}</math> | ||
Zeile 33: | Zeile 35: | ||
Je kleiner <math>\theta</math>, umso besser die Approximation. Überschreitet <math>\theta</math> einen bestimmten Schwellwert, so sollte die Näherung nicht mehr angewendet werden, um größere Fehler zu vermeiden. Der Algorithmus setzt dieses Prinzip durch rekursives Unterteilen des Simulationsbereiches in [[Quadtree|Quadranten]] (2D) bzw. [[Octree|Oktanten]] (3D) um. Die Partikel werden in den Knoten der so entstandenen Baumstruktur gespeichert. Ist die Entfernung eines Knotens von einem Einzelteilchen groß genug, dann erfolgt die Kraftberechnung nicht mehr direkt zwischen den Teilchen, sondern zwischen dem Einzelteilchen und dem Massenschwerpunkt des Knotens. | Je kleiner <math>\theta</math>, umso besser die Approximation. Überschreitet <math>\theta</math> einen bestimmten Schwellwert, so sollte die Näherung nicht mehr angewendet werden, um größere Fehler zu vermeiden. Der Algorithmus setzt dieses Prinzip durch rekursives Unterteilen des Simulationsbereiches in [[Quadtree|Quadranten]] (2D) bzw. [[Octree|Oktanten]] (3D) um. Die Partikel werden in den Knoten der so entstandenen Baumstruktur gespeichert. Ist die Entfernung eines Knotens von einem Einzelteilchen groß genug, dann erfolgt die Kraftberechnung nicht mehr direkt zwischen den Teilchen, sondern zwischen dem Einzelteilchen und dem Massenschwerpunkt des Knotens. | ||
<gallery mode="packed" heights="200"> | |||
Barnes hut.svg|Die von einer Partikelverteilung auf ein Einzelpartikel ausgeübte Kraft kann durch die von einer Punktmasse ausgehenden Kraft angenähert werden, wenn die Entfernung der Partikelgruppe zum Einzelteilchen groß im Verhältnis zur Gruppengröße ist. | |||
Barnes hut 2.svg|Die gravitative Wirkung von Sternhaufen und Stern B auf Stern A kann infolge der großen Entfernung als Punktmasse approximiert werden. Doch auch innerhalb des Sternhaufens kann die Gravitationskraft des Sternhaufens auf Stern B durch eine Punktmasse angenähert werden, da Stern B weit genug vom Sternhaufen entfernt ist. | |||
</gallery> | |||
== Siehe auch == | == Siehe auch == | ||
* [[Dreikörperproblem]] | * [[Dreikörperproblem]] | ||
==Literatur == | |||
*{{Literatur | Autor = Josh Barnes, Piet Hut | Titel = A hierarchical O(N log N) force-calculation algorithm | Sammelwerk = Nature | Band = 324 | Datum = 1986-12 | Nummer = 6096 | Seiten = 446–449 | DOI= 10.1038/324446a0}} | |||
== Weblinks == | == Weblinks == | ||
''Deutsch'' | |||
* [ | * [https://beltoforion.de/de/barnes-hut-galaxiensimulation/ Detaillierte Beschreibung der Implementierung des ''Barnes-Hut-Algorithmus''] | ||
''Englisch'' | |||
* [http://www.eecs.berkeley.edu/~demmel/cs267/lecture26/lecture26.html Fast Hierarchical Methods for the N-body Problem, Part 1, CS267], Lecture 24, 11. April 1996 | * [http://www.eecs.berkeley.edu/~demmel/cs267/lecture26/lecture26.html Fast Hierarchical Methods for the N-body Problem, Part 1, CS267], Lecture 24, 11. April 1996 | ||
* [https://www.youtube.com/user/cunbody1 Video einer Partikelsimulation mit 8,7 Millionen Partikeln unter Verwendung des Barnes-Hut-Algorithmus gerechnet auf mehreren GPUs] (youtube.com) | * [https://www.youtube.com/user/cunbody1 Video einer Partikelsimulation mit 8,7 Millionen Partikeln unter Verwendung des Barnes-Hut-Algorithmus gerechnet auf mehreren GPUs] (youtube.com) | ||
* [http://www.fz-juelich.de/ias/jsc/pepc PEPC – The Pretty Efficient Parallel Coulomb Solver], eine parallele open-source Implementation des Barnes-Hut Algorithmus mit austauschbarem Wechselwirkungskern für vielseitige Anwendungen | * [http://www.fz-juelich.de/ias/jsc/pepc PEPC – The Pretty Efficient Parallel Coulomb Solver], eine parallele open-source Implementation des Barnes-Hut-Algorithmus mit austauschbarem Wechselwirkungskern für vielseitige Anwendungen | ||
== Quellen == | |||
<references /> | |||
[[Kategorie:Numerische Mathematik]] | [[Kategorie:Numerische Mathematik]] |
Der Barnes-Hut-Algorithmus ist ein 1986 von Josh Barnes und Piet Hut veröffentlichtes Näherungsverfahren, das eine effektive Berechnung der Kräfte in einem N-Körper-Problem ermöglicht. Im Gegensatz zur direkten Aufsummierung der Kräfte, deren Rechenaufwand mit $ O(N^{2}) $ ansteigt, reduziert sich der Aufwand beim Barnes-Hut-Algorithmus auf $ O(N\log N) $.
Die Simulation von N-Körper-Problemen ist eine Standardaufgabe der Astronomie. Bei einem solchen Problem bewegt sich eine Anzahl (N) von Körpern unter dem Einfluss einer Kraft, die wiederum von den Positionen aller andern Körper abhängt. Als Beispiel sei hier auf die Bewegung von Sternen im Gravitationsfeld einer Galaxie verwiesen. Die direkte Integration ist mit zunehmender Anzahl an Körpern sehr aufwendig, da die auf einen Körper wirkende Kraft die Summe aller Kräfte ist die von den anderen Körpern auf ihn wirken. Berechnungen auf Basis der direkten Kräftesummation werden daher mit steigender Körperanzahl (N > 10000) schnell uneffektiv, denn die Gesamtzahl der Kraftberechnungen ist:
Diesem Trend lässt sich zwar durch Verwendung hochparallelisierter Computerhardware (GPU) entgegenwirken, allerdings verschiebt sich das Problem damit lediglich zu größeren Teilchenanzahlen. Für effektive Simulationen mit mehreren Millionen oder gar Milliarden Partikeln sind Algorithmen notwendig, deren Berechnungsaufwand nicht quadratisch mit der Teilchenzahl ansteigt. Einer dieser Algorithmen ist der von Barnes und Hut.
Die Berechnungen für Wechselwirkende Galaxien ist ein typischer Anwendungsfall für Barnes-Hut-Simulationen.
Die paarweise Berechnung von Kräften zwischen einer großen Anzahl von Objekten ist ebenfalls eine Problemstellung innerhalb des kräftebasierten Graphzeichnens als Teil der Informatik. Dabei werden die Kanten zwischen den Knoten eines Graphen als System von Federn interpretiert und der Graph soll so in die Ebene gezeichnet werden, dass die Federkräfte sich aufheben. Der Barnes-Hut-Algorithmus ermöglicht eine iterative Berechnung der Kräfte und Repositionierung der Knoten.[1]
Der Barnes-Hut-Algorithmus verringert die Anzahl zu berechnenden Kräfte durch geeignetes Zusammenfassen von Teilchengruppen zu Pseudoteilchen. Die Grundidee dabei ist, dass die von einer Partikelgruppe auf ein Einzelpartikel ausgeübte Kraft in sehr guter Näherung durch die Wirkung einer einzelnen Masse im Massenschwerpunkt der Partikelgruppe approximiert werden kann. So kann man beispielsweise die Kraft, die von der Andromeda-Galaxie auf die Sonne ausgeübt wird, sehr gut durch eine Punktmasse nähern, die sich im Zentrum der Andromeda-Galaxie befindet und die deren Masse hat. Diese Näherung ist allerdings nur zulässig, wenn der Abstand $ r $ der Gruppe vom Einzelteilchen groß und der Gruppendurchmesser $ d $ im Verhältnis zum Abstand klein ist. Das Verhältnis von Gruppendurchmesser zu Gruppenentfernung wird als Multipol-Akzeptanz-Kriterium (engl.: {{Modul:Vorlage:lang}} Modul:Multilingual:149: attempt to index field 'data' (a nil value), MAC) bezeichnet:
Je kleiner $ \theta $, umso besser die Approximation. Überschreitet $ \theta $ einen bestimmten Schwellwert, so sollte die Näherung nicht mehr angewendet werden, um größere Fehler zu vermeiden. Der Algorithmus setzt dieses Prinzip durch rekursives Unterteilen des Simulationsbereiches in Quadranten (2D) bzw. Oktanten (3D) um. Die Partikel werden in den Knoten der so entstandenen Baumstruktur gespeichert. Ist die Entfernung eines Knotens von einem Einzelteilchen groß genug, dann erfolgt die Kraftberechnung nicht mehr direkt zwischen den Teilchen, sondern zwischen dem Einzelteilchen und dem Massenschwerpunkt des Knotens.
Die gravitative Wirkung von Sternhaufen und Stern B auf Stern A kann infolge der großen Entfernung als Punktmasse approximiert werden. Doch auch innerhalb des Sternhaufens kann die Gravitationskraft des Sternhaufens auf Stern B durch eine Punktmasse angenähert werden, da Stern B weit genug vom Sternhaufen entfernt ist.
Deutsch
Englisch