Komplex rendszerek szimulációs módszerei (ff2n1s04/1)
FIGYELEM: 2017-től új honlap itt!
1. Komplex hálózatok
([1] Chapter 1)- Erdős-Rényi gráf generálása, p függvényében fokszám eloszlás, perkolációs küszöb, átmérő mérése és összevetése az analitikus eredményekkel
- Az összekötöttségi mátrix spektrumának felvétele, a félkör törvény igazolása numerikusan (pár bonyodalom ami általában nehezítheti a feladatot)
- Klikk keresés, a Bron-Kerbosch algoritmus implementációja
- Kis-világ és skálafüggetlen gráfok generálása, azok elemzés az ER gráfokhoz hasonlóan
- Gráfok robusztusságának vizsgálata élek/csúcsok eltávolításával szemben
- Hálózatok valódi adatokból (a bátraknak): Agyi hálózatok: OpenConnectome, Filmek: Netflix , Internet: DIMES , Gének: co-expression, GEO DataServer
2. Kaotikus dinamika
([1] Chapter 2)- Készítsük el a logisztikus leképezés bifurkációs diagramját!
- Vizsgáljuk meg a Ljapunov exponenst a stabil fixpontokkal rendelkező és a kaotikus tartományban!
- Szimuláljuk a Lorenz-modelt és mérjük le különös attraktorának fraktál-dimenzióját!
3. Sejtautomaták
([1] Chapter 3)-
Ismerkedjünk meg a sejtautomaták működésével és
statisztikai leírásával:
- D. Schiffman: Nature of Code Ch. 7 (local copy)
- S. Wolfram: Cellular automata as models of complexity (Nature, Vol 311. No. 5985. pp. 419-424 (1984))
- M.A. Smith: Cellular Automata Methods in Mathematical Physics (MIT, PhD thesis) 2. fejezete
- D.R. Kunkle: Automatic Classification of 1 dimensional Cellular Automata (Rochestter Institute of Technology, MSc thesis) 3-5. fejezetek
- C. Langton: Computation at the edge of chaos: phase transitions and emergent computation, Physica D 42 12-37 (1990)
- W. Li et al: Transition Phenomena in Cellular Automata Rule Space, Physica D 45 77-94 (1990)
- S. Ninagawa: Power Spectral Analysisi of Elementary Cellular Automata, Complex Systems, 17 399-411 (2008)
-
Vizsgáljuk meg, hogy a S. Wolfram által
meghatározott négy kategóriába hogyan oszthatóak be az 1 dimenziós
kétállpotú elemi sejtautomaták! Hasonlytsuk össze az alábbi
módszereket!
- Generáljuk le mind a 256 szabályt és vizsgáljuk meg vizuálisan a viselkedést.
- Számoljuk ki a fraktáldimenziót illetve a térbeli és időbeli entrópiákat!
- Számoljuk ki a C. Langton által bevezetett lambdát!
- Minden osztályból néhány kiválasztott szabály néhány cellájának időbeli viselkedésére számoljunk teljesítmény-sűrűség spektrumot!
- Telepítsük a Golly szimulátort, és vizsgáljuk meg a Conway féle "Life" automatát illetve egy másik szabadon választott szabály néhány komplexitás mérték szerint! (Golly script leírás és példák ).
- Szorgalmi feladat :Készítsük el a rácsgáz HPP és FHP modeljének szimulációját és szimuláljunk egyszerű áramlási példát (akadály körül, végtelen csőben áramlási profil, stb)! Segítség: Python kód , Matlab kód, Golly: Other-Rules/HPP-demo.rle.
-
Szorgalmi feladat: A sejtautomaták
általánosíthatóak nem csak rácsokra, de tetszőleges reguláris gráfra
is (minden csomópontnak ugyanannyi bemenő éle van). Ilyen modellt ír
le Stuart Kauffman NK-modellje, melyet a könyv 3. fejezete
részletesen tárgyal. Értsük meg a modellt, majd generáljuk az összes N=3, K=1 gráfot az összes
lehetséges (fix) szabállyal! Vizsgáljuk meg az állapotteret,
számoljuk le a diszjunkt vonzási tartományokat! (hasonlóan mint 86.
old. 3.3.b ábra). Vegyük az N=10, K=1 esetet véletlen gráfokkal.
Nézzük meg néhány fix véletlen realizáción a tiszta identitás,
tiszta negálás, illetve ezek véletlen keverékeként alkotott
szabályok esetén a vonzási tartományok terét! (hasonlóan a 98. old.
3.9 ábrához).
4. Neuron-hálózatok
- Készítsük el a Hopfield-model implementációját Hopfield eredeti cikke alapján! Igazoljuk kísérletileg a később elméletileg is igazolt kritikus p=0.14N kapacitás értéket (sok véletlen minta, többször megismételve a statisztika javításáért)! Javaslat legyen N legalább 100, de valószínűleg pár ezres érték is kezelhető. (Hopfield eredeti cikke)
- Tanítsuk meg a Hopfield modellt betűk felismerésére! Tanító és teszt halmazként használhatunk pl. "kézzel írt" karaktereket. (kiegészítő feladat a TTF vagy egyéb karakter formátum olvasása és "bemeneti vektorrá"). Karakterek helyett kereshetünk más tanító halmazt a mesterséges intelligencia adatbázisban. Vizsgáljuk meg, hogy ilyen nem véletlen mintákra mekkora a kritikus kapacitás!
- Implementáljuk a háttéranyagok (coursera, perceptron, perceptron szabály) alapján a perceptron szabályt! Próbáljuk meg az egyes karaktereket (pl. "A" vagy "nem A") a perceptronoknak (karakterenként 1 perceptron) megtanítani. (Hasonlóan mint az alábbi feladatleírásban). A perceptron vagy a Hopfield Modell ad jobb eredményt?
- A 80-as évek végén népszerű neuronhálózatok az azóta megnövekedett tanítóhalmazok és számítógép kapacitás miatt látványosan újraéledtek és nagy sikereket érnek el (pl. AlphaGo). Legjobban elterjedt módszer a Deep Learning, amely nagyon sok mesterséges neuronból alkotott hálózatot tanít. Könnyen elindítható Python wrapper is rendelkezésre áll, ami a GPU-k párhuzamos kapacitását is kihasználja. Indítsuk el a csomag példáit és módosítsuk úgy, hogy a karakterfelismerési problémát oldja meg!
Régebbi projekt 3. Dinamika Boole-hálókon
([1] Chapter 3)- Generáljuk az összes N=3, K=1 gráfot az összes lehetséges (fix) szabállyal! Vizsgáljuk meg az állapotteret, számoljuk le a diszjunkt vonzási tartományokat! (hasonlóan mint 86. old. 3.3.b ábra)
- Vizsgáljuk meg a fentieket N=4, K=1 esetében is!
- Vegyük az N=10, K=1 esetet véletlen gráfokkal. Nézzük meg néhány fix véletlen realizáción a tiszta identitás, tiszta negálás, illetve ezek véletlen keverékeként alkotott szabályok esetén a vonzási tartományok terét! (hasonlóan a 98. old. 3.9 ábrához)
- Vizsgáljuk meg a 3.3 (86. old.) ábrán látható N=3, K=2 automata állapotterét szinkron és aszinkron dinamika esetében.
- A 2 dimenziós, periodikus határfeltételű, szabályos N=nxn négyzetrácson lévő, 4 közvetlen szomszédos, ferromágneses Ising-modell T=0 hőmérsékletű változatát írjuk fel Kauffman automataként! Szimuláljuk a 20x20-as rácsot T=0.1, 0.2, ... 2.9, 3.0 hőmérsékleteken 100000*20x20 Metropolis frissítéssel (aszinkron) ! Mérjük az utolsó 1000*20x20 lépésben az átlagos mágnesezettséget, és ábrázoljuk a hőmérséklet függvényében! Vessük össze a kapott ábrát az elméletileg ismert fázisátalakulási ponttal!
- Az előző pontban vizsgált rendszeren változtassunk a szabályon! (Pl. szigorúan a szomszédok többségi szabálya, vagy a szomszédok és az aktuális nódus többségi szabálya, vagy a szomszédok paritása, stb.). Vizsgáljuk meg különböző hőmérsékleteken a rendszer dinamikáját és keressünk esetleges fázisátalakulást!
-
Vizsgáljuk meg a ferromágneses Ising-modell
viselkedését négyzetrács helyett
- Erdős-Rényi
- skálafüggetlen
Van-e fázisátalakulás?
Szoftverek:
- Gráf elemző csomagok
- igraph (R, Python, C)
- NetworkX (Python)
- graph-tool (Python)
- LEMON (C++, !magyar fejlesztés)
- Gráfok síkba ágyazása, ábrázolás
Jegyzőkönyvek beküldése:
komplexszim(kukac)gmail.com
Beadási határidők
- 1. Komplex hálózatok: 2016.03.10 16:00
- 2. Kaotikus dinamika: 2016.03.31 16:00 (VÁLTOZÁS: 2016.04.01 rövid megbeszélés utána Vattay Gábor órája lesz. 2016.04.08: MTA Statisztikus Fizika Nap, érdemes regisztrálni, résztvenni!)
- 3. Sejtautomaták: 2016.04.21 16:00
- 4. Neuonhálózatok: 2016.05.12 16:00
Irodalom:
[1]
Claudius Gros:
Complex and Adaptive Dynamcial Systems, Springer; 1st ed.2008. Corr. 2nd
printing edition (July 1, 2009)
A feladatokban hivatkozott régebbi verzió.
Neuron-hálózatokhoz:
[2] http://ecee.colorado.edu/~ecen4831/demuth.html
(perceptron szabály, backpropagation)
[3] http://www.cs.bham.ac.uk/~jxb/inn.html
(egy másik áttekintő kurzus)
[4] http://page.mi.fu-berlin.de/rojas/neural/
(Paul Rojas teljes könyve, perceptron, backpropagation, Hopfield-model és sok más)
[5] http://en.wikipedia.org/wiki/Perceptron (Perceptron Wikipedia)
[6] http://en.wikipedia.org/wiki/Hopfield_net (Hopfield Model Wikipedia)