Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere Horváth Árpád 2014. február 7.
A tárgy célja: Az összetett hálózatok fogalomrendszerének használata a tudomány több területén gyümölcsöz®nek bizonyult. A baráti társaságok, a fehérje-kölcsönhatások, az idegrendszer, az agy, a tápanyaghálózat, a fert®zésterjedés vizsgálata mind nagyjából azonos fogalmi keretek között és azonos algoritmusok használatával vizsgálható. A kurzus folyamán a hálózatokhoz tartozó fontosabb fogalmakat és algoritmusokat ismerik meg a hallgatók, továbbá megismerkednek egy hálózatvizsgáló szoftvercsomag, az igraph használatával. Az igraph egy C-ben írt függvénykönyvtár, amelynek függvényei C programokon kívül Python és R programokból is használhatóak. A kurzusban elsajátítják a Python programozási nyelv szintaktikáját, és hasznos programozási fogásait is, valamint a Python pylab nev¶ csomagjának alapszín¶ használatát, amely függvények ábrázolására ad lehet®séget a MATLAB-éhoz hasonló módokon. Alább található a tantárgy felbontása modulokra és leckékre, az egyes modulok céljai és leckénként a követelmények.
0.1.
lecke Tanulási útmutató
A lecke id®tartama 45 perc. A lecke célja: A tanulót segíteni a tananyag minél könnyebb és eredményesebb feldolgozásában. Követelmények: A hallgató • tisztában van a használt tananyagok és feladatok típusaival és javasolt feldolgozási módjával,
• tudja, hogy milyen feladatokat mikorra kell elvégeznie, • ismeri a tananyagok és feladatok szerz®i-jogi vonatkozásait, • tudja lejátszani a tananyaghoz kapcsolódó videókat, • ismeri a lehet®ségét, hogyan lehet a tananyag nagyjából felét eKönyv-olvasóval elsajátítani.
1
1.
modul Alapfogalmak
A modul célja: A hálózatok alapfogalmait megismerjék a hallgatók, és olyan kis hálózatokon meg tudják állapítani a hálózatokkal kapcsolatos alapvet® mennyiségek értékeit, amelyek lerajzolva áttekinthet®ek.
1.1.
lecke Példák hálózatokra
A lecke id®tartama 90 perc.
Követelmények: A hallgató • fel tud sorolni egy-egy példát hálózatokra a szociológia, a biológia, és az informatika területér®l, • példát tud mondani gyakorlati alkalmazásokra, • tudja csoportosítani irányítottság szempontjából a hálózatokat. • el tudja magyarázni a hálózatok és gráfok közötti kapcsolatot, • megfogalmazásban helyesen használja a csúcs, él és csomópont elnevezéseket, • felismeri egy hálózat ábráján a többszörös és hurokéleket, • el tudja magyarázni, hogy egy hálózat egyszer¶, vagy nem, • felismerni, hogy egy hálózat egyszer¶, vagy nem, • el tudja magyarázni, hogy mit jelent a páros gráf, • kétréteg¶ hálózat projekcióját el tudja végezni, • tud két példát mondani páros gráfon alapuló hálózatra, és el tudja mondani, mi a kiinduló páros gráfjaik két rétege.
1.2.
lecke Csúcsok távolsága
A lecke id®tartama 90 perc.
Követelmények: A hallgató • el tudja magyarázni az út és az út hossza fogalmakat, • meg tudja állapítani egy ábrázolt hálózatban egy út hosszát, és két csúcs távolságát, • meg tudja határozni algoritmus alapján, hogy egy adott csúcstól a többi csúcs milyen messze van, • meg tudja magyarázni, mit jelent a hálózat átmér®je és átlagos úthossza, • meg tudja határozni egy hálózat átmér®jét, és átlagos úthosszát.
1.3.
lecke Fokszám, átlagfokszám, fokszámeloszlás
A lecke id®tartama 45 perc.
Követelmények: A hallgató • meg tudja állapítani egy csúcs fokszámát, irányított hálózatnál a befokszámát, kifokszámát is, • el tudja mondani, mit jelent deníció szerint az átlagfokszám, • meg tudja határozni egy hálózat átlagfokszámát, • ki tudja számolni adott csúcsszámú és élszámú hálózat átlagfokszámát, • meg tudja magyarázni, miért helyes a csúcsszám, az élszám és átlagfokszám közötti összefüggés, • ki tudja számolni a fokszámeloszláshoz tartozó valószín¶ségeket, és ábrázolni tudja a fokszámeloszlást.
2
1.4.
lecke Összefügg®ség, komponensek
A lecke id®tartama 90 perc.
Követelmények: A hallgató • meg tudja magyarázni, mit jelent az, hogy összefügg® egy hálózat (irányított esetben gyengén illetve er®sen összefügg®), • meg tudja állapítani egy hálózatról, hogy összefügg®-e hálózat (irányított esetben gyengén illetve er®sen összefügg®-e), • meg tudja határozni, hogy egy irányítatlan hálózatban hány komponens van, • el tudja magyarázni, milyen algoritmus szerint lehet egy hálózatban megkeresni egy adott csúcsot tartalmazó komponenst, illetve hogyan lehet megkeresni az összes komponenst, • meg tudja fogalmazni, mit jelent egy irányított hálózatban egy csúcs kikomponense és bekomponense, • el tudja magyarázni milyen algoritmus alapján lehet megkeresni egy csúcs kikomponensét és bekomponensét és a csúcsot tartalmazó er®sen összefügg® komponenst, • meg tudja határozni, hogy egy irányított hálózatban hány gyengén összefügg® és hány er®sen összefügg® komponens van, • meg tudja határozni egy irányítatlan hálózatban a legnagyobb komponens relatív méretét.
3
2.
modul Python bevezetés
A modul célja: A hallgatók ismerjék meg a Python nyelv alapjait olyan szinten, hogy a hálózatok vizsgálatára szolgáló függvényeket képesek legyenek írni. A hallgatók ismerjék a hálózatok éllistás megadását.
2.1.
lecke A használt szoftverek bemutatása
A lecke id®tartama 90 perc.
Követelmények: A hallgató • tudja felsorolni és elmagyarázni a Python négy három f® jellemz®jét, • párosítani tudja, hogy melyik programozási nyelv illetve programcsomag mire való: Python, pylab, matplotlib, numpy, igraph, • ismerje az alábbiak szoftverek használatának jogi feltételeit: Debian, Python, matplotlib, numpy, igraph, • tudja felsorolni a Python nyelv legalább három alkalmazási területét, • képes telepíteni a VirtualBox alá a tanuláshoz szükséges Debiant, és azt elindítani, szabályosan leállítani, • ismeri a python3, ipython3 és IDLE3 parancsértelmez®k alapvet® jellemz®it, • képes használni az ipython3 parancsértelmez®t, képes a Python oktató példáit lefuttatni benne, • képes használni az IDLE3 fájlszerkeszt®jét vagy a Vim (gVim) szövegszerkeszt®t Python programok szerkesztésére.
2.2.
lecke A Python nyelv alapjai
A lecke id®tartama 90 perc.
Követelmények: A hallgató • képes megjegyzést adni a programhoz, parancssorhoz, • képes karakterláncokat létrehozni, összevonni, indexelni, szeletelni, • képes létrehozni int és float típusú számokat, képes alkalmazni a 4 alapm¶velet és a // és ** és % m¶veleteket, • képes használni az alulvonás _ változót, • képes létrehozni karakterláncokat, képes alkalmazni a karakterláncok összef¶zésének lehet®ségeit, a nyers karakterláncokat és a háromszoros idéz®jeles formát, • képes a karakterláncok indexelésére, szeletelésére, • képes listák létrehozására, indexelésére, szeletelésére, összef¶zésére, • képes listák adott index¶ elemének és adott szeletének megváltoztatására értékadással, • meg tudja magyarázni, hogy mit jelent, hogy a listák megváltoztathatóak, a karakterláncok pedig nem, • képes a listák append és count metódusainak használatára, • képes a print kulcsszavas paramétereinek (end, sep) használatára. • képes feltételes elágazás létrehozására, az elif és else ágak használatára, • képes while és for ciklus értelmezésére és létrehozására, akár break és continue utasítások használatával is, • képes a range() függvény használatára for-ciklusban.
4
2.3.
lecke Az éllista
A lecke id®tartama 90 perc.
Követelmények: A hallgató • el tudja magyarázni, hogyan tárolhatóak irányítatlan és irányított hálózatok éllistában, • létre tud hozni egyszer¶bb függvények, a return utasítás helyes használatával és dokumentációs karakterlánccal, (A Python-oktató "Függvények deniálása" fejezete) • tesztelni tudja assert utasítással függvények visszatérési értékeit, • létre tud hozni olyan függvényeket, amelyek éllistából meghatározza a hálózat éleinek számát, egy csúcs fokszámát.
2.4.
lecke A Python adatszerkezetei
A lecke id®tartama 90 perc.
Követelmények: A hallgató • használni tudja a listaértelmezést, feltételekkel is és tuple-ekb®l álló listák létrehozására is, • képes gyakorlatban alkalmazni a tuple-ok és általában a sorozatok általános tulajdonságait, • alkalmazni tudja a sorozatok szétpakolását, • képes létrehozni halmazokat (üreset is), • ellen®rizni tudja, hogy egy objektum benne van-e a halmazban, • létrehozni tudja hozni két halmaz különbségét, metszetét, unióját, • alkalmazni tudja a halmazértelmezést, • képes függvényt írni egy éllistában szerepl® csúcsok számának meghatározására.
2.5.
lecke Szótárak, függvények b®vebben
A lecke id®tartama 90 perc.
Követelmények: A hallgató • létre tud hozni szótárakat hagyományos módon, szótárértelmezéssel és kulcsszavas argumentumokkal, • ellen®rizni tudja, hogy egy kulcs szerepel-e a szótárban, • meg tudja változtatni adott kulcsú elemek értékét, • képes végigmenni for ciklussal egy szótár kulcsain, illetve kulcs-érték párjain, • képes meghatározni egy szótár kulcsainak a számát, • képes függvényt írni a legnagyobb fokszámú csúcs meghatározására, • meg tud adni alapértelmezett értékeket a függvény argumentumlistájában, • használni tudja a kulcsszavas argumentumokat, • létre tud hozni függvényt a tetsz®leges hosszúságú argumentumlistákkal.
5
3.
modul Hálózatkezel® osztályok megvalósítása, unittest használata
A modul célja: A hallgatók képesek legyenek osztályok létrehozására, metódusok írására és a programfejlesztés során az egységtesztek hatékony használatára. A hallgatók ismerjék a szomszédsági lista és a szomszédsági halmaz fogalmát, és azok korlátait. A hallgatók képesek legyenek a programfejlesztés során a hálózatok alapfogalmainak angol nyelv¶ használatára.
3.1.
lecke A szomszédsági halmaz és pár metódusának megvalósítása osztály használatával
A lecke id®tartama 90 perc.
Követelmények: A hallgató • tudjon létrehozni osztályt, __init__ metódussal, egyéb metódusokkal és adajellemz®kkel, • ismeri a speciális metódusok jelölési módját, • ismerje a szomszédsági lista és szomszédsági halmaz fogalmát, • képes legyen szomszédsági halmaz létrehozására éllistából, • ismeri a hálózatok alapfogalmainak angol megfelel®it. (1-2. feladat, szótár)
3.2.
lecke A unittest modul használata
A lecke id®tartama 90 perc.
Követelmények: A hallgató • képes legyen unit-tesztek írására a setUp metódus, assertEqual és assertRaises, assertAlmostEqual használatával dokumentáció használata nélkül, • képes legyen a unit-tesztek futtatására, • tudja megkeresni a unittest modul további vizsgálati lehet®ségeit a dokumentációban, • képes legyen az egységtesztek alapján programfejlesztésre. (3. feladat)
3.3.
lecke A BaseNetwork modul befejezése
A lecke id®tartama 90 perc.
Követelmények: A hallgató • rugalmasan tudja kezelni a Python adatszerkezeteit, • képes legyen a hibák megkeresésére alkalmazni a Python hibakeres®jét a pdb modult. (4-6. feladat)
6
3.4.
lecke Modulok használata
A lecke id®tartama 90 perc.
Követelmények: A hallgató • importálni tud egy modult, illetve annak egy objektumát, • képes egy modul megírására, • végre tud hajtani egy modult szkriptként, • képes csak a szkriptben végrehajtódó programrészlet írására, (Oktató 6., a 6.1.2. már nem, a BaseNetwork kimaradt részei, copy)
3.5.
lecke Távolságok, átmér® meghatározása
A lecke id®tartama 90 perc.
Követelmények: A hallgató • képes program írására, amely egy irányítatlan hálózat átmér®jét határozza meg. (A Network osztály 1. és 2. feladatai)
3.6.
lecke Komponensek meghatározása
A lecke id®tartama 90 perc.
Követelmények: A hallgató • képes program írására, amely egy irányítatlan hálózat komponenseit és azok relatív méretét határozzák meg. (A Network osztály 3. és 4. feladatai)
7
4.
modul A igraph és pylab modulok használata
A modul célja: A hallgatók ismerjék meg a igraph és pylab modulok használatát olyan szinten, amelyek szükségesek a hálózatok interaktív vizsgálatához illetve a hálózatok vizsgálatát végz® programok írásához.
4.1.
lecke Gráfok létrehozása és kirajzoltatása az igraph használatával
A lecke id®tartama 90 perc.
Követelmények: A hallgató • létre tud hozni él nélküli irányított és irányítatlan gráfokat akárhány csúccsal, • hozzá tud adni, illetve törölni tud éleket és csúcsokat egyesével és többet egyszerre, • meg tudja állapítani a hálózat csúcsainak és éleinek a számát, • képes kiszámoltatni az értelmez®vel a hálózat átlagfokszámát, • meg tudja állapítani, hogy összefügg®-e a gráf, • meg tudja állapítani, hogy egyszer¶-e a gráf, • létre tud hozni irányítatlan és irányított hálózatokat a Graph osztály Formula metódusával, • létre tud hozni és le tud kérdezni gráf, él és csúcsjellemz®ket, • értelmezni tudja a summary metódus kimenetét, • ki tud válogatni adott jellemz®j¶ csúcsokat éleket, • ki tud rajzoltatni gráfokat, • fel tudja sorolni a csúcsok és élek kirajzolását befolyásoló csúcs- és éljellemz®ket (három csúcs- és két éljellemz®), • értelmezni tudja a igraph.summary(net) függvény kimenetét.
4.2.
lecke Átmér® és komponensek meghatározása az igraph használatával
A lecke id®tartama 90 perc.
Követelmények: A hallgató • be tud tölteni graphml formátumú fájlba mentett hálózatokat, • meg tudja határozni hálózatok irányítatlan hálózatok komponenseinek számát, azok méreteit (csúcsainak számát), • meg tudja határozni hálózatok irányított hálózatok er®sen és gyengén összefügg® komponenseinek számát és azok méreteit, • ki tud rajzoltatni egy komponenst, • meg tudja határozni egy hálózatban a legnagyobb komponens relatív méretét az egész hálózathoz képest, • meg tudja határozni irányítatlan hálózat átmér®jét, • meg tudja határozni irányítatlan hálózatban két csúcs távolságát, • meg tudja határozni és értelmezni irányított hálózat kétféle átmér®jét.
8
4.3.
lecke A pylab használatának alapjai
A lecke id®tartama 90 perc.
Követelmények: A hallgató • létre tud hozni tömböket a linspace, az array és az arange függvényekkel/osztályokkal, • képes értelmezni tömböket és számokat tartalmazó m¶veleteket, • ki tud rajzoltatni függvényeket úgy hogy esetleg a két tengely egyikén vagy mindegyikén logaritmikus skálát használ, • képes a függvényeket különböz® vonaltípusakkal, színekkel és jelekkel ábrázolni, • képes az ábrákat tengelyfeliratokkal, ábrafelirattal, jelmagyarázattal ellátni, • képes az elkészült ábrákat elmenteni különböz® formátumokba.
9
5.
modul A hálózatok jellemz®i és modelljeik
A modul célja: A hallgatók tudják megvizsgálni a hálózatokat különböz® szempontok szerint; meg tudjanak valósítani az egyszer¶bb hálózatmodelleket; képesek legyenek a hálózatok ellenállóképességének vizsgálatára programot írni.
5.1.
lecke A fokszám eloszlásának és a komponensek méreteloszlásának ábrázolása
A lecke id®tartama 90 perc.
Követelmények: A hallgató • be tudjanak tölteni hálózat-adatokat fájlokból, • létre tudja hozni egy hálózat fokszám-listáját, • meg tudja határozni a maximális és minimális fokszámot, • el® tudja állítani a fokszámok gyakoriságát és a fokszámeloszlást, • ábrázolni tudja parancssorból a fokszámeloszlást különböz® skálák használatával az egyes engelyeken (mindkett®n lineáris, mindkett®n logaritmikus, egyiken logaritmikus), • létre tudja hozni, és képes ábrázolni a komponensek méreteloszlását.
5.2.
lecke Véletlen hálózatok
A lecke id®tartama 90 perc.
Követelmények: A hallgató • el tudja magyarázni a véletlen hálózat fogalmát, • ki tudja számolni a véletlen hálózatban az átlagfokszám és az átlagos élszám várható értékét, • képes programot írni véletlen hálózat létrehozására, • képes összehasonlítani a valódi hálózatok fokszámeloszlánának jellegét hasonló él és csúcsszámú véletlen hálózatéval.
5.3.
lecke Skálafüggetlen hálózatok
A lecke id®tartama 90 perc.
Követelmények: A hallgató • ismeri a skálafüggetlen hálózatok fogalmát, • fel tudja sorolni és el tudja magyarázni a Barabási-Albert modell két kiinduló feltevését, • képes létrehozni igraph-fal BarabásiAlbert-modellb®l és Erd®sRényi-modellb®l származó hálózatokat, • fel tudja sorolni a BarabásiAlbert-modell és a Price-modell két f® különbségét, • el tudja magyarázni a hatványfüggvény-eloszlású hálózatok fokszámkitev®jének meghatározására alkalmas képletben az egyes mennyiségeket. • képes meghatározni a BarabásiAlbert- és Price-modellekb®l származó hálózatok fokszámkitev®jét a paramétereikb®l.
10
6.
modul Válogatott fejezetek az összetett hálózatokról
A modul célja: A hallgatók ismerjenek meg az alapfogalmakon túl további gyakran használt fogalmakat és mennyiségeket. Ismerjék meg a hálózatok tárolására alkalmazott adattípusokat, azok el®nyeivel és hátrányaival.
6.1.
lecke A csoporter®sségi együttható és fokszámfüggése
A lecke id®tartama 90 perc.
Követelmények: A hallgató • el tudja magyarázni a csoporter®sségi együttható fogalmát (csúcsét és hálózatét is), • ki tudja számítani kis hálózatnak illetve egyes csúcsainak csoporter®sségi együtthatóját, • igraph-fal meg tudja határozni egy csúcs illetve egy hálózat csoporter®sségi együtthatóját, • meg tudja magyarázni, hogy mit jelent a hierarchikus hálózat, • egy-egy példát tud mondani olyan hálózatra, amelyik hierarchikus és amelyik nem, • tud mondani egy olyan jellemz®t, amely általában meghatározza, hogy egy hálózat hierarchikus lesz-e vagy nem.
6.2.
lecke A szoftvercsomag-hálózat vizsgálata, összetett fokszámeloszlás
A lecke id®tartama 90 perc.
Követelmények: A hallgató • el tudja mondani, hogy mit jelent a szoftvercsomag-hálózat: mik a csúcsok, milyen típusú csúcsok és élek vannak, mit jelöl az élek iránya, • létre tudja hozni a cxnet csomaggal a Debian vagy Ubuntu aktuális szoftvercsomag-hálózatát, • meg tudja határozni maximális fokszámát, a legnagyobb fokszámú csúcsok nevét, átlagos fokszámát (ki/befokszám esetén is), • ismeri, hogy mit jelent az összetett fokszámeloszlás, • ki tudja rajzoltatni egy hálózat összegzett fokszámeloszlását, • meg tudja állapítani az összegzett fokszámeloszlás megfelel® ábrájából, hogy egy hálózat mennyire tekinthet® skálafüggetlennek.
6.3.
lecke Hálózatok ellenállóképessége
A lecke id®tartama 90 perc.
Követelmények: A hallgató • képes a saját Network osztályra építve szimulálni célzott támadást és véletlen meghibásodásokat, • össze tudja hasonlítani különböz® hálózatoknak a célzott támadással és véletlen meghibásodásokkal elleni ellenállóképességet, • össze tudja hasonlítani a véletlen és a skálafüggetlen hálózatok viselkedését a kétféle behatással szemben.
11