Komplex rendszerek szimulációs módszerei (ff2n1s04/1)

1. Komplex hálózatok (2017 tavasz)

([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 (2017 tavasz)

([1] Chapter 2)

  • Készítsük el a logisztikus leképezés bifurkációs diagramját!
  • Készítsünk egy interaktív ábrát a logisztikus leképezésről, melyen r értéke szabadon állítható. A kiválasztott r értékhez az ábra gyártsa le az $x_n(n)$ idősort, az $x_{n+1}(x_n)$ 2D Poincaré plotot és az $x_n(n)$ idősor Fourier-transzformáltját. Az interaktív ábra kódja mellékletben szerepeljen, a beadott PDF fájl legfeljebb néhány screenshotot tartalmazzon.
  • Vizsgáljuk meg a logisztikus leképezés Ljapunov-exponensét a stabil fixpontokkal rendelkező és a kaotikus tartományban!
  • Szimuláljuk a Lorenz-modellt és vizsgáljuk a rendszer viselkedését különböző paramétertartományokon. A kaotikus tartományon mérjük le a különös attraktor box-counting dimenzióját és korrelációs dimenzióját! Hasonlítsuk össze a kapott eredményeket, diszkutáljuk az esetleges eltéréseket az irodalmi értéktől.
  • Szorgalmi feladat (a helyes megoldásért +10 pont szerezhető, mely azonban a minimumkövetelménybe nem számít bele): Ábrázoljuk a klasszikus Hénon-leképezés attraktorát. Ábrázoljuk a $D(Q)$ általánosított dimenziót $Q$ függvényében, illetve az $f(\alpha)$ multifraktál spektrumot $\alpha$ függvényében. A megoldásban segít a Wikipedia megfelelő szócikke, illetve egy leírás a multifraktálokról.
  • Szorgalmi feladat (a helyes megoldásért +3 pont szerezhető, mely azonban a minimumkövetelménybe nem számít bele): Határozzuk meg egy természetben előforduló fraktált ábrázoló képen (még jobb, ha saját!) a fraktáldimenziót. (Sok-sok segítség.)

További segédanyagok:

  • A fizika numerikus módszerei I. tantárgy anyaga (Python alapok, interaktív ábrák, jupyter notebook környezet)
  • Diákjegyzet Csordás András Nemlináris dinamika és káosz című kurzusához (Bővebben a dinamikai rendszerekről, fraktálokról, fraktáldimenziókról)

3. Sejtautomaták (2017 tavasz)

([1] Chapter 3)

  • Ismerkedjünk meg a sejtautomaták működésével és statisztikai leírásával:

  • 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állapotú elemi sejtautomaták! Hasonlítsuk össze az alábbi módszereket!

    • Tesztelésnek generáljuk le mind a 256 szabályt és vizsgáljuk meg vizuálisan a viselkedést. (A beadott pdf fájlban legfeljebb néhány érdekes ábra szerepeljen!)
    • 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énysűrűség-spektrumot!
  • Implementáljuk az alábbi egyszerű járványterjedési modellt egy 2D négyzetrácson Moore-szomszédsággal:
    • A cellák lehetséges állapotai:
      • 0 - üres,
      • 1 - egészséges, de fertőzhető,
      • 2 - fertőzőtt,
      • 3 - gyógyult/immunis.
    • A dinamikai szabályok:
      • Egy üres sejt üres marad.
      • Egy egészséges sejt fertőzötté válik, ha 2 vagy több szomszédja fertőzött.
      • Egy fertőzött sejt meggyógyul, ha 4 vagy kevesebb szomszédja fertőzött.
      • Egy gyógyult vagy immunis sejt többé nem fertőződhet meg.
    • Az algoritmus változtatandó paraméterei:
      • A kezdeti $p_0$ valószínűség, hogy egy adott helyen létezik sejt. (Tehát $1-p_0$ valószínűséggel üres egy cella.)
      • A kezdeti $p_i$ valószínűség, hogy egy létező sejt fertőzött.
    • Vizsgáljuk az alábbiakat:
      • Vizsgáljuk a rendszer komplexitását (valamelyik fent definiált mérték szerint) attól függően, hogy milyen kezdeti paramétereket választunk.
      • Vizsgáljuk a rendszer végállapotai közti hasonlóságot. (Például a kölcsönös információtartalom mérésével.)
      • Vizsgáljuk a járvány során megfertőzött sejtek számát, illetve a stacionárius állapot eléréséhez szükséges időt a kezdeti paraméterek függvényében (ábrázoljuk 3D ábrán). Próbáljuk a tapasztalatokat általánosan megfogalmazni a járványterjedéssel kapcsolatban. Térjünk ki a modell előnyeire és gyenge pontjaira. Tegyünk javaslatokat (esetleg kísérletet is) a modell finomítására.
  • Vizsgáljunk egy 2D négyzetrácsot Moore-szomszédsággal.

    • A cellák lehetséges állapotai:
      • 0 - tartózkodó,
      • 1 - együttműködő,
      • 2 - áruló.
    • A cellák minden iteráció során ún. fogolydilemma-játékot játszanak szomszédaikkal külön-külön. Ha mindkét sejt együttműködik, mindkettőjük jutalma 1. Ha mindketten árulók, mindkettőjük "jutalma" 0. Ha az egyikük áruló, másikuk együttműködő, az áruló jutalma $b$ ($2>b>1$), az együttműködő "jutalma" pedig 0. Egy tartózkodó sejt jutalma minden esetben $s$ ($1>s>0$). Egy együttműködő sejt jutalma tartózkodóval találkozva 1, egy áruló jutalma tartózkodóval találkozva 0.
    • A dinamikai szabályok:
      • Minden iteráció során a szomszédokkal játszott fogolydilemma-játékok jutalmai az adott sejtre összeadódnak.
      • Amennyiben a sejt szomszédai közül van, akinek a jutalma nagyobb, mint a sejté, a sejt a következő lépésben átveszi legsikeresebb szomszédja stratégiáját. Ha több különböző stratégia közül kell így választani, véletlenül választ.
      • Ha a sejt a legsikeresebb a szomszédságában, megtartja korábbi stratégiáját.
    • Az algoritmus változtatandó paraméterei:
      • A $b$ paraméter értéke.
      • Az $s$ paraméter értéke.
    • Vizsgáljuk az alábbiakat:
      • Milyen stacionárius állapotai lesznek a rendszernek?
      • A $b$ és $s$ paraméterek változtatása milyen hatással van a különböző stratégiájú sejtek arányára?
      • Látunk-e önszerveződési folyamatokat, igaz-e hogy hasonló a hasonlóval szeret együtt élni? Diszkutáljuk!
      • Mennyiben befolyásolja az eredményeket, ha másféle szomszédságot, esetleg másféle rácsot választunk?
  • Szorgalmi feladat (a helyes megoldásért +2 pont szerezhető, mely azonban a minimumkövetelménybe nem számít bele): 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 (a helyes megoldásért +4 pont szerezhető, mely azonban a minimumkövetelménybe nem számít bele): Készítsük el a rácsgáz HPP és FHP modelljé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 helyes megoldásért +5 pont szerezhető, mely azonban a minimumkövetelménybe nem számít bele): 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).
  • Szorgalmi feladat (a megoldásért maximálisan +10 pont szerezhető, mely azonban a minimumkövetelménybe nem számít bele): A szomszédsági viszonyok egy lehetséges általánosítása, ha négyzetrács helyett különböző gráfmodelleket alkalmazunk a "sejtek" közötti kapcsolatok leírására. Vizsgáljuk meg a kötelező feladatok között leírt járványmodell viselkedését (stacionárius állapot, fertőzöttek száma, paraméterfüggés) az 1. projekt gráfmodelljeire (pl. ER, BA, WS), esetleg az SNAP oldalról egy valós kapcsolati hálózatra is! Értelmezzük a tapasztalatainkat!

4. Neuronhálózatok (2017 tavasz)

  • Készítsük el a Hopfield-modell 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 teszthalmazként használhatunk pl. "kézzel írt" karaktereket. (Kiegészítő feladat a TTF vagy egyéb karakterformátum olvasása és "bemeneti vektorrá" alakítása.) 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?
  • Szorgalmi feladat (a megoldásért maximálisan +8 pont szerezhető, mely azonban a minimumkövetelménybe nem számít bele): 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!

Szoftverek:

Gráf elemző csomagok

Gráfok síkba ágyazása, ábrázolás

Jegyzőkönyvek beküldése:

  • komplexszim(kukac)gmail.com

Irodalom:

Valid XHTML 1.0 | Copyright © Istvan Csabai 2009-2017