Lesson 13 of 15
Self-Organized Criticality
Self-Organized Criticality
Self-organized criticality (SOC) describes systems that naturally evolve toward a critical state without external tuning. The hallmark is power-law distributions of event sizes (avalanches).
The 1D Bak-Tang-Wiesenfeld Sandpile
Proposed by Bak, Tang, and Wiesenfeld (1987), the sandpile model is the canonical SOC system:
- Each site has a height (number of sand grains)
- A site is unstable if (we use threshold )
- Toppling rule in 1D: an unstable site loses 2 grains, and each neighbor gains 1:
- Sand falls off the boundaries (open boundary conditions)
- Add one grain to a random site, then topple until stable
- Avalanche size = total number of topplings
Why Criticality Emerges
The system self-organizes to a state where:
- Adding one grain triggers avalanches of all sizes
- Avalanche sizes follow a power law:
This criticality is achieved without tuning any external parameter.
Mean Field Approximation
The mean avalanche size grows as the system approaches its capacity. For a system of size , the mean height at the critical state is approximately .
Implementation
def sandpile_topple(heights, threshold=2):
# Repeatedly topple all unstable sites until stable
# Returns (final_heights, total_topplings)
# Open boundaries: grains fall off edges
...
def sandpile_add_grain(heights, site):
# Return new heights list with one grain added at site
...
def mean_avalanche_size(avalanche_sizes):
# Return mean of all values (including zeros)
...
def power_law_check(avalanche_sizes):
# MLE exponent estimate for power law on sizes > 0
# tau = 1 + n / sum(log(s/s_min))
...Python runtime loading...
Loading...
Click "Run" to execute your code.