🕸️ Netzwerk-Perkolation — Schwellenwert der Riesenkomponente
Fügen Sie zufällige Kanten zu N Knoten hinzu und beobachten Sie, wie die riesige zusammenhängende Komponente bei p_c = 1/N entsteht (Erdős-Rényi-Übergang). Beobachten Sie den scharfen Phasenübergang in der Verteilung der Komponentengrößen.
Über diese Simulation
Diese Simulation baut einen Erdős-Rényi-Zufallsgraphen auf N Knoten auf, indem einzeln Kanten hinzugefügt werden, jede gleichmäßig zufällig aus der gemischten Liste aller möglichen Knotenpaare gezogen. Eine Union-Find-(Disjoint-Set-Union)-Struktur mit Pfadkomprimierung und Union nach Rang verfolgt zusammenhängende Komponenten in nahezu konstanter Zeit, während Kanten eintreffen. Ein Live-Phasendiagramm trägt den Anteil der Riesenkomponente S gegen den mittleren Grad ⟨k⟩ = 2M/N auf und legt den aktuellen Zustand Ihrer Simulation über die theoretische Kurve S = 1 − e^(−⟨k⟩S). Der kritische Schwellenwert liegt genau bei ⟨k⟩ = 1, wo sich die Wachstumsrate der größten Komponente abrupt ändert.
🔬 Was es zeigt
N Knoten (50–300), verbunden durch zufällig gewählte Kanten, hinzugefügt einzeln, zu zehnt oder kontinuierlich über Abspielen. Jeder Knoten ist entsprechend seiner Zugehörigkeit zu einer zusammenhängenden Komponente eingefärbt; die größte Komponente (die "Riesenkomponente", sobald sie sich bildet) wird in Blau hervorgehoben. Ein Seitenpanel trägt S gegen ⟨k⟩ gegenüber der theoretischen Kurve auf und markiert den kritischen Punkt ⟨k⟩ = 1 mit einer gestrichelten Linie, sodass Sie den Phasenübergang live beobachten können.
🎮 Anwendung
Stellen Sie die Knotenzahl N und einen Ziel-Mittelgrad ⟨k⟩ mit den Schiebereglern ein — das Erhöhen von ⟨k⟩ fügt sofort Kanten hinzu, das Verringern löst einen vollständigen Reset aus. Verwenden Sie Schritt +1 Kante oder 10 Kanten hinzufügen für Feinsteuerung, oder drücken Sie Abspielen, um Kanten kontinuierlich mit der gewählten Geschwindigkeit einzuspielen. Beobachten Sie, wie sich Kanten M, mittlerer Grad ⟨k⟩, Anteil der Riesenkomponente S und Komponentenzahl live aktualisieren, während kleine Cluster miteinander verschmelzen.
💡 Wussten Sie schon?
Das Erdős-Rényi-Modell, eingeführt von Pál Erdős und Alfréd Rényi 1959–60, war eine der ersten rigorosen Demonstrationen, dass Zufallsstrukturen einen scharfen Phasenübergang durchlaufen können: Unterhalb von ⟨k⟩ = 1 ist jede Komponente logarithmisch klein, doch in dem Moment, in dem ⟨k⟩ die 1 überschreitet, umfasst plötzlich eine einzelne Komponente einen endlichen Anteil des gesamten Graphen — obwohl direkt unterhalb der Schwelle keine solche Komponente existiert.
Häufig gestellte Fragen
Was genau wird in dieser Simulation randomisiert?
Die Simulation mischt vorab die vollständige Liste aller möglichen Knotenpaare (mittels Fisher-Yates-Shuffle) und deckt sie dann nacheinander als Kanten auf. Dies entspricht dem G(N,M)-Erdős-Rényi-Modell, bei dem genau M Kanten gleichmäßig zufällig aus den N(N−1)/2 möglichen Paaren gewählt werden, statt jede Kante unabhängig mit Wahrscheinlichkeit p einzuschließen — die beiden Formulierungen konvergieren für großes N.
Wie erkennt die Simulation die Riesenkomponente so schnell?
Sie verwendet eine Union-Find-(Disjoint-Set-Union)-Datenstruktur. Jeder Knoten beginnt in seiner eigenen Komponente; das Hinzufügen einer Kante ruft union(a,b) auf, was die beiden Komponenten verschmilzt, indem die Wurzel des kleineren Baums an die Wurzel des größeren angehängt wird. Mit Pfadkomprimierung (Abflachen des Baums bei find) und Union nach Rang laufen beide Operationen in nahezu konstanter Zeit, sodass das Verfolgen von Komponenten für Hunderte von Knoten und Tausende von Kanten auch in Echtzeit schnell bleibt.
Was steuert der Schieberegler für den mittleren Grad ⟨k⟩ tatsächlich?
⟨k⟩ ist die durchschnittliche Anzahl der Kanten pro Knoten, berechnet als 2M/N, wobei M die aktuelle Kantenzahl ist. Der Schieberegler legt ein Ziel-⟨k⟩ fest; die Simulation berechnet dann die Ziel-Kantenzahl M = round(⟨k⟩·N/2) und fügt entweder Kanten hinzu, um sie zu erreichen (wenn Sie ⟨k⟩ erhöhen), oder führt einen vollständigen Reset durch und baut von Grund auf neu auf (wenn Sie es verringern, da Kanten nicht schrittweise entfernt werden können).
Warum erscheint die Riesenkomponente so plötzlich um ⟨k⟩ = 1 herum?
Unterhalb von ⟨k⟩ = 1 ist der Zufallsgraph ein Wald aus kleinen baumartigen Clustern, jeweils von Größe O(log N), und keiner von ihnen kann zu einem endlichen Anteil des Graphen heranwachsen. Sobald ⟨k⟩ die 1 überschreitet, wird der Verzweigungsprozess, der das Clusterwachstum beschreibt, überkritisch: Ein Cluster hat nun im Durchschnitt mehr als einen neuen Knoten, in den er sich bei jedem Schritt ausdehnen kann, sodass sich das Wachstum eines Clusters verstärkt, bis er einen Anteil S aller N Knoten verschlingt, der S = 1 − e^(−⟨k⟩S) erfüllt. Dies ist ein echter Phasenübergang zweiter Ordnung, kein bloßer glatter Trend.
Beeinflusst das visuelle Layout der Knoten, welche Knoten in der Riesenkomponente landen?
Nein. Die Positionen auf dem Bildschirm sind rein kosmetisch, erzeugt durch ein einfaches kraftbasiertes Abstoßungslayout (oder ein Gitterlayout bei großem N), rein damit sich Knoten visuell nicht überlappen. Welche Knoten der Riesenkomponente beitreten, wird vollständig durch die zufällige Kantenreihenfolge und die Konnektivität des Graphen bestimmt — die Position auf dem Bildschirm trägt keine Information über Grad oder Komponentenzugehörigkeit.
Fügen Sie zufällige Kanten zu Knoten hinzu und beobachten Sie, wie die riesige zusammenhängende Komponente bei p_c = 1/N entsteht. Beobachten Sie den scharfen Erdős-Rényi-Phasenübergang.
3D · Three.js / WebGL-Renderer · 60 FPS Ziel · läuft vollständig clientseitig, keine Installation nötig