Počet bodov:
Popis:  9b

Predstavme si mriežku štvorčekov. Každý štvorček môže byť obsadený s pravdepodobnosťou \(p\) alebo byť prázdny s pravdepodobnosťou \(1-p\). Obsadenosť každého štvorčeka je náhodná.

Ak je \(p\) malé, môžeme vidieť niekoľko malých ostrovčekov obsadených štvorčekov v prázdnom „oceáne“ neobsadenenej mriežky. Ako postupne zvyšujeme \(p\), malé ostrovčeky (clustre) sa zväčšujú, až nastane situácia, kedy existuje spojitý prechod z ľavej strany mriežky na pravú stranu mriežky (tzv. perkolácia).

Dvojrozmerná štvorcová mriežka pri pravdepodobnosti obsadenosti $p = 0.4$ a $p = 0.1$. Na obrázku sú obsadzované hrany štvorčekov, nie samotné štvorčeky. Ide však o tú istú úlohu.
Dvojrozmerná štvorcová mriežka pri pravdepodobnosti obsadenosti \(p = 0.4\) a \(p = 0.1\). Na obrázku sú obsadzované hrany štvorčekov, nie samotné štvorčeky. Ide však o tú istú úlohu.

Táto jednoduchá myšlienka je základom teórie perkolácie. Vyzerá jednoducho, ale má bohaté aplikácie v problémoch reálneho života, ako sú napríklad lesné požiare alebo tok kvapalín cez pórovitú štruktúru (viď Introduction to percolation theory od Stauffer a Aharony).

V tejto úlohe budeme študovať štvorcové mriežky a budeme hľadať medznú hodnotu \(p_c\), pri ktorej sa objaví perkolujúci stav.

Perkolácia v 1D

Uvažujme jednorozmernú mriežku (pásik) veľkosti \(N\), kde každý bod mriežky je obsadený s pravdepodobnosťou \(p\). Spočítajte počte clusterov, t.j. počet obsadených súvislých polí pri danej pravdepodobnosti \(p\). Nájdite medznú hodnotu \(p\) (fázový prechod) \(p_c\), pri ktorej bude najväčší cluster makroskopicky veľký. Ak označíme \(N_{lc}\) veľkosť najväčšieho clustra a \(N_o\) počet obsadených bodov na pásiku, tak veľkosť perkolujúceho clustra je \(P = N_{\mathrm{lc}} / N\).

Opakujte merania pre rozličné hodnoty \(N\) a na ich základe dajte predpoveď \(N \rightarrow \infty\).

Perkolácia v 2D

Druhý rozmer prináša nový stupeň voľnosti, v ktorom môže cluster rásť, preto by mala byť medzná hodnota \(p_c\) iná.

Uvažujme dvojrozmernú štvorcovú mriežku rozmeru \(N \times N\). Ako v predcházajúcom prípade, nájdite medznú hodnotu \(p_c\), kedy veľkosť najväčšieho clustra začína rapídne rásť.

Ak zvolíme \(p>p_c\) \(P\) je úmerné \((p - p_c)^\alpha\), kde \(\alpha\) je tzv. kritický exponent. Nájdite numerickú hodnotu tohto exponentu.

(Bonus) Perkolácia v 3D

Nájdite medznú hodnotu a kritický exponent aj pre tento prípad.

Ako na to?

  • Počet clustrov a ich veľkosť môžete spočítať napríklad aj pomocou flood fill algoritmu. Avšak s naivnou implementáciou si nevystačíte, keďže sa dopracujete k problému stack overflow, teda pretečeniu zásobníka s inštrukciami.
  • V simulácii použite periodické okrajové podmienky.
  • Pre každú hodnotu \(p\) a \(N\) vykonajte niekoľko simulácie a následne zoberte priemerné hodnoty.

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.