Komplex hálózatok átfedő csoportosulásainak vizsgálata

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Komplex hálózatok átfedő csoportosulásainak vizsgálata"

Átírás

1 Diplomamunka Eötvös Loránd Tudományegyetem fizikus szak Komplex hálózatok átfedő csoportosulásainak vizsgálata Ábel Dániel Témavezető: Dr. Vicsek Tamás egyetemi tanár, az MTA tagja ELTE, Biológiai Fizika Tanszék

2 Tartalomjegyzék 1. Előszó 3 2. A csoportosulás fogalma Véges dimenziós adatok klaszterezése A gráf-partíciós feladat Nem-átfedő csoportosulás-kereső módszerek Modularitás-függvények Modularitás-függvény definiálása Csoportosulások definiálása modularitás-függvény alapján Modularitás-függvények felbontás-korlátja Csoportosulás-keresés modularitás-függvény alapján Szeletelő illetve egyesítő módszerek Szinkronizációs módszerek Véletlen bolyongásra és diffúzióra alapuló módszerek Lokális módszerek Átfedő csoportosulás-kereső módszerek Nem-átfedő módszerek alapján A klikk-perkolációs módszer Csoportosulás-kereső módszerek alkalmazása Heurisztikából általánosítás Értelmezés-váltás Magasabb szintű szerkezet vizsgálata Átfedő csoportosulások súlyozott hálózatokban Súlyozott klikk-perkoláció Fázisátalakulás Erdős-Rényi gráfokban Mért mennyiségek A mérés menete A Hoshen-Kopelman algoritmus A méréshez használt eljárás Elméleti becslések

3 7. Eszközök hálózatok vizsgálatához Különböző programok áttekintése NetworkX Cytoscape A fejlesztett program (FirmNet) főbb funkciói Csúcsok centralitás-mutatói Csúcsok halmazának centralitás-mutatója Irodalomjegyzék 47 3

4 1. fejezet Előszó Az utóbbi időben egyre elterjedtebb hálózatok használata bonyolult rendszerek tanulmányozására. Az ilyen vizsgálatok mögötti alap-feltevés, hogy az eredeti, bonyolult rendszer vizsgálata helyett célszerűbb lehet az abból képzett, jóval egyszerűbb (de még mindig eléggé összetett) hálózatot vizsgálni. Ez a hálózat az eredeti rendszer leegyszerűsített modellje, amelyben az eredeti rendszer részei csúcsokként, egymáshoz való viszonyuk pedig a csúcsok között lévő élekként szerepelnek. Ezek egy matematikai értelemben vett gráfot alkotnak. A hálózat szó néhol a gráf szó szinonímájaként bukkan fel, de a továbbiakban egy gráfnál összetettebb szerkezetet értünk rajta, amelyben a csúcsoknak és éleknek egyéb tulajdonságuk is lehet. Egy hálózatnak a legfontosabb jellemzője a csúcsok és élek ezen gráfja (amelyet néhol a hálózat topológiájának fogunk hívni), és ezen dolgozatban is főleg a gráf tulajdonságaival fogunk foglalkozni. Amikor egy olyan összetett és bonyolult rendszert, mint például egy sejt vagy egy szociális közösség, egy jóval egyszerűbb, csúcsokból és élekből álló hálózatra akarunk leegyszerűsíteni, meg kell indokolnunk, hogy ilyen leegyszerűsítés miért jogos. Minden esetben nyilvánvaló, hogy egy absztrakt modell nem őriz meg minden információt az eredeti rendszerről. A modell használata akkor és csak akkor indokolható, ha olyan új nézőpontot nyújt, ami segít az eredeti rendszer megértésében. Az, hogy ez lehetséges-e egyáltalán, első ránézésre egyáltalán nem nyilvánvaló. Bizonyos esetekben mégis lehetséges, amit az alábbi két példával szeretnék szemléltetni. Az első példa egy általános séma, amivel az eredeti rendszer és a belőle képzett hálózat tulajdonságai közötti összefüggést deríthetünk fel. Ehhez elegendő a tulajdonságokat matematikailag kezelhető formába önteni, és a két matematikai mennyiség közötti korreláció mértékét meghatározni. Amennyiben ez a korreláció a véletlen zaj alapján vártnál nagyobb, az egyik mennyiség értékéből következtethetünk a másik mennyiségre[1]. Egy másik, jóval látványosabb eset a Google PageRank példája. Ugyan a Google cég üzleti sikerében, a Google kereső használhatóságában sok minden egyéb is közrejátszik, de a PageRank algoritmus elég prominens helyen szerepel. Egy internetes kereső-motor sok részből áll: be kell gyűjteni az oldalakat, azokat tárolni, indexelni és keresni kell, könnyen átlátható felhasználói felületet kell biztosítani a keresést végző felhasználónak. Mindezeket a Google-t megelőző kereső-motorok is viszonylag használható módon tudták biztosí- 4

5 tani. Ugyan a Google ezeket a feladatokat is valamivel jobban oldotta meg, de nem ezért lett annyira elterjedt. Egy internetes kereső esetén ugyanis nem elég egyszerű teljes szövegű keresést végrehajtani. A legtöbb kereső-kérdésre ugyanis kezelhetetlenül sok a találat, a kereső-kérdésnek megfelelő lap. Ezeket valamilyen fontossági, relevancia sorrendbe kell rakni. Ennek a sorrendnek a számítógéppel történő meghatározása alapvetően nehéz feladat. Egyrészt különböző felhasználókat különböző témák érdeklik, ezért más-más sorrendet tartanak természetesnek, így maga a feladat nem egyértelműen meghatározott. Másrészt ilyen sorrend felállítása első ránézésre emberi (vagy ember feletti) intelligenciát igényelne. Meg kellene határozni például, hogy melyik lapokon fordul elő csak érintőlegesen az adott kifejezés, és melyik lapok szólnak szinte kizárólag az adott témáról. Ehhez végső soron az összes oldal tartalmát meg kellene érteni. Ilyen megértés azonban automatizált módszertől nem várható el. A Google PageRank algoritmusa[2] ennél jóval egyszerűbb módszert használ. A lapok és a köztük lévő hivatkozások hálózatán kiszámolja az irányított sajátvektor-centralitás nevű tulajdonságot és azokat a lapokat sorolja előre, amelyeknek ez az értéke magas. Ezáltal a hálózat egy topológiai jellemzőjét használja az egyes lapok tartalma, a közöttük lévő kapcsolat mélyebb jelentése helyett. Természetesen ez a módszer sem tökéletes: többféleképpen is manipulálható, és a Google által ténylegesen használt rangsorolás több apró finomítást tartalmaz. Ennek ellenére kijelenthető, hogy a hálózat numerikus tulajdonságának használata nagyban segíti a releváns oldalak kiválogatását. Első hallásra meglepőnek tűnhet a tényleges megértést egy szűklátókörű matematikai függvényre lecserélni, de minden olyan esetben, amikor az adott rendszer tényleges megértése lényegében lehetetlen, ez az egyetlen lehetőségünk. Ugyanilyen okok miatt vagyunk kénytelenek tudományos teljesítményt (jobbhíján) a publikált cikkek száma, az idézettség, vagy a h-index alapján mérni. Csoportosulások, klaszterek azonosítása hálózatokban hasonló probléma: a feladat a hálózat gráfjából, lehetőleg minél kevesebb külső információt használva a csúcsokat bizonyos szempont szerint csoportosítani, majd ezen csoportokból az eredeti rendszerre érvényes következtetéseket levonni. Ezáltal a hálózat által rejtetten tartalmazott információ kinyerése próbálható meg. Ebben a dolgozatban általános módszerekkel foglalkozom. A hálózatok bevezetésének egyik nagy előnye, hogy a hálózat fogalma nagyon általános: nagyon sok rendszert lehet (több-kevesebb jóindulattal) hálózattal modellezni. Emiatt egy általános hálózatokat használó módszer sokféle rendszerre lehet alkalmazható. Természetesen ez még nem jelenti azt, hogy minden ilyen alkalmazás jo- 5

6 gos is, mivel ebben az esetben egy adott rendszeren kidolgozott módszert egy másik (akár gyökeresen eltérő) rendszerre általánosítunk. A tapasztalat azonban azt mutatja, hogy ez az általánosítás egyes esetekben meglepően jogos lehet. 6

7 2. fejezet A csoportosulás fogalma Maga a csoportosulás nem teljesen egzaktul definiált fogalom. A többféle értelmezés lehetősége már önmagában garantálja, hogy többféle, egymással csak korlátozottan összehasonlítható csoportosulás-kereső algoritmus lehetséges. Ezek között az alapvető különbség nem a használt algoritmusban, hanem a csoportosulás-definícióban van. Maga a csoportosulás fogalma több különböző intuitív elképzelést takarhat. Jelenthet funkcionális csoportokat, a hálózat csúcsainak olyan csoportosítását, amelyet egy külső tényező határoz meg. Az ilyen csoportokat ugyan nem a hálózat gráf-szerkezete alakítja ki, de sok esetben a külső tényező hatása tükröződik azon. Például egy szó-asszociációs hálózat esetén, ahol két él között akkor szerepeltetünk egy élt, ha a kísérleti személy az egyik szó láttán a másikra gondol, az azonos témakörhöz kapcsolódó szavak ilyen jellegű csoportot alkotnak. A hálózat nem a szavak jelentése alapján épül ki, de az mégis hatást gyakorol rá. Hasonló helyzet áll elő proteinek kölcsönhatási hálózatában elkülöníthető funkcionális csoportokkal: a hálózatot a proteinek kémiai reakciói határozzák meg, a csúcsokat (proteineket) viszont csoportosíthatjuk a funkció alapján, aszerint hogy a sejtben milyen folyamatban vesznek részt. A hálózat ilyen meghatározása egyáltalán nem teszi szükségszerűvé, hogy hasonló rendeltetésű fehérjék a hálózat elkülönülő részeiben helyezkedjenek el, de mégis sok esetben ilyesmi történik. Más szempontból a csoportosulás fogalma jelenthet olyan részeket, amelyekre könnyű a hálózatot felvágni: olyan hálózatoknál, ahol a topológia dinamikusan változik, a hálózat részekre bomlik vagy egyesül, ezeket a részeket mint szerkezeti elemeket kezelhetjük. Ilyen, kísérletileg mért hálózatok ismertek emberek és delfinek szociális hálozatára is. A szakirodalomban Zachary karate-klub néven ismert adatrendszer esetén egy sportkör tagjainak kapcsolatai alapján készült el a hálózat. A sportkör nem sokkal az adatok felvétele után két részre vált. A delfinek megfigyeléséből származó adatok [3] esetén a hálózat néhány delfin elvándorlásával egyidőben két részre bomlott, majd ezek visszatérésekor újra egyesült. De pusztán a hálózat gráfját vizsgálva is találhatunk csoportosulásokat: a kísérletileg meghatározott hálózatok többsége másmilyen tulajdonságokat mutat kicsi, mint nagy skálán. Sok esetben a hálózat egésze ritka, az élek száma a csúcsok számához képest alacsony. A hálózat azonban lokálisan mégis sűrű: a csúcsok kisebb, szorosan összekapcsolt csoportokba tömörülnek. 7

8 A fenti három meghatározás mindegyike más-más megközelítéssel a hálózat más-más tulajdonságát emeli ki. És mégis, mindegyik egy közös, általános jellemzőt sejtet. Az egyes jellemzők összefüggnek, a három közül az egyik (például a szorosabban összekötött részek) alapján talált csoportosulások a tapasztalat alapján sok esetben megfelelnek egy másik meghatározásnak (például funkcionális csoportot alkotnak). A csoportosulás-kereső módszerek fejlesztésére irányuló munka pont ilyen jellegű összefüggéseket próbál kiaknázni. A cél olyan általános módszer kidolgozása, amely meg tudja ragadni a hálózat ilyen rejtett szerkezetét, és fényt tud deríteni a különböző jellegű tulajdonságok hatására, ezáltal megmutatva azt is, hogy az eredeti rendszer nehezzen megfogható tulajdonságai hogyan nyílvánulnak meg egyszerűbben mérhető jellemzőkben. A legtöbb algoritmus esetén a sűrűbb részek fogalmából indulnak ki, mivel a fentiek közül ezt a legkönnyebb numerikusan jellemezni, illetve ez általánosítható a legkönnyebben. Az így kidolgozott eljárásokat azonban (mivel végső felhasználásukhoz jobban hasonlít, illetve mert a numerikus jellemzés ellenőrzésére is szolgál) a fent említett másik két értelmezésre is érdemes kipróbálni és összevetni. A módszer végső próbája természetesen a gyakorlati felhasználás lehetősége, amikor az eredeti rendszer más, kevésbé mérhető tulajdonságaira szeretnénk következtetni Véges dimenziós adatok klaszterezése A csoportosulás-keresési feladathoz nagyon hasonló, és valamivel régebbi múltra visszatekintő feladat véges dimenziós adatok claszterezése. Ebben az esetben az adathalmaz egy véges (alacsony) dimenziós (vektor)térbe beágyazott pontokból áll. A meghatározni kívánt klaszter-szerkezet ugyan úgy jellemezhető, mint egy hálózat csoportosulás-szerkezete: a fent leírt kérdések (nem-egyértelműség, a csoportosulások számának ismeretlen volta, a kapott szerkezet relevanciájának kérdése) mind-mind felmerülnek. Az egyetlen különbség az adatok szerkezetében van: véges dimenziós esetben a vektortér, amelyben az adatpontok elhelyezkednek, valamilyen metrikát biztosít, amelynek tulajdonságait az adatpontok klaszterezése során ki lehet használni. Hálózatok esetében ilyen metrikáról csak kissé erőltetetten beszélhetünk: bizonyos esetekben megpróbálhatjuk metrikaként használni két csúcs távolságát, az őket összekötő legrövidebb út lépésszámában, vagy a legrövidebb utat alkotó élek súlyainak összegében mérve. Ilyen jellegű távolság-definíciók azonban olykor meglepő tulajdonságúak és így nem minden esetben alkalmazhatóak: például irányított hálózatra általánosítva, ha megköveteljük, hogy a legrövidebb út bejárásakor csak az éleken az irányítottságuknak megfelelően 8

9 lépdeljünk végig, az egyik irányba nagyobb lehet a távolság, mint a másik irányba. Így lehet, hogy a csúcs távolabb van b-től, mint b a-tól, sőt, előfordulhat, hogy a-ból b-be a távolság véges (el lehet jutni egyikből a másikba), de fordítva végtelen (mert visszafele nem vezet út). Ilyen problémák miatt egy hálózatra, általános esetben, mint egy lényegében végtelen dimenziós adathalmazra kell tekintenünk. Ennek ellenére egyes módszerek, ha nem is teljes egészében, de legalább alapötletet tekintve átvehetőek. Így például a 3.2. pontban ismertetendő eljárások, illetve az ott bevezetendő dendrogram lényegében a hierarchikus klaszterezés eljárás megfelelője. A hálózatok csoportosulásai, illetve véges dimenziós klaszterezés hasonlósága természetesen olykor lehetővé teszi, hogy az egyik típusú adatra a másik típusú módszert alkalmazzuk. Így viszonylag egyszerű véges dimenziós adat-halmazra egy hálózatos módszer alkalmazása, a hálózat éleit az adatpontok távolsága alapján definiálva[4]. Ebben az esetben a módszer egyszerűen átvihető, mivel egy hálózat egy véges dimenziós adathalmazhoz képest általánosabb adatszerkezet, viszont korántsem biztos, hogy az így kapott öszvér-megoldás versenyképes lesz más adat-klaszterező eljárásokkal. A másik irányú alkalmazás is lehetséges, bár valamivel nehézkesebb[5]. Ebben az esetben a legfőbb problémát az jelenti, hogy a hálózat csúcsait egy véges-dimenziós vektortérbe kell beágyazni. Ez a feladat nagyjából hasonló nehézségű kérdés, mint a hálózatok csoportosulás-szerkezete meghatározása: ugyanúgy nem szigorúan definiált, és az egyes esetekre kidolgozott eljárások gazdagsága a témakör megoldatlanságára utal A gráf-partíciós feladat Matematikai szempontból sokat vizsgált az ú.n. gráf-partíciós feladat.ennél a cél egy adott gráf csúcsainak felbontása megadott számú részhalmazra úgy, hogy az egyes részhalmazok között futó élek száma (illetve súlyozott gráf esetén a súlyok összege) minimális legyen. Ilyen feladat merül fel például amikor egy elosztott számítási feladatot néhány számolóegység (CPU) között szeretnénk felosztani. Mivel a számolóegységek közötti kommunikáció jóval lassabb, ezért érdemes azokra minél függetlenebb rész-problémákat kiosztani. Ez a feladat nyilvánvaló hasonlóságot mutat egy gráffal definiált hálózat csoportosulásai meghatározásának problémájával. Mindkét esetben a gráf csúcsait szeretnénk halmazokba sorolni, és a fent említett csoportosulás sűrűbben kapcsolt -elv alapján a két esetben kapott felosztás között lesznek hasonlóságok. Vannak azonban fontos különbségek is. Egyrészt a gráfparticionálás esetén a halmazok száma paraméterként meg van adva, míg 9

10 csoportosulás-keresés esetén azt inkább mint az eljárás egyik részeredményét szeretnénk megkapni. Másrészt csoportosulás-kereső algoritmus esetén sok esetben a kapott csoportosulások relevanciáját is fontos meghatározni, míg gráf-particionálás esetén a legjobb felosztásra (bármennyire is esetleges az) vagyunk kíváncsiak. 10

11 3. fejezet Nem-átfedő csoportosulás-kereső módszerek A természetben megfigyelhető hálózatok szerkezete sokszor átfedő csoportosulásokkal írható le[6, 7], amelyben mindegyik csúcs több csoportosuláshoz is tartozhat egyszerre. Ennek ellenére az egyszerűség kedvéért sok csoportosuláskereső módszer feltételezi, hogy az egyes csoportosulások diszjunktak, mindegyik csúcsot csak egy csoportosuláshoz sorolva. Az ilyen, nem-átfedő módszerek valamivel egyszerűbbek és könnyebben általánosíthatóak, de a csoportosulások átfedését megengedő eljárásoknál pontatlanabbak Modularitás-függvények A csoportosulás fogalmának definiálására az egyik lehetőség olyan függvény felírása, ami jellemezni tudja egy adott csoportosulás-felbontás jóságát. Ehhez először néhány jelölést vezetünk be: a továbbiakban a hálózatot az A szomszédsági mátrixszal jellemezzük, ennek A ij eleme 0, ha nincs az i csúcsból induló és j csúcsban végződő él, és 1, ha van. (A legegyszerűbb, irányítatlan esetben A szimmetrikus, mert i és j között lévő él j és i között lévő élt is jelent, súlyozott hálózatnál A ij az adott él súlyát adja meg.) A csoportosulás-felbontást a σ vektorral fogjuk leírni, egyelőre csak diszjunkt csoportosulásokat tekintve, amelynek σ i eleme azon csoportosulás, amelybe az i csúcs tartozik. Az ilyen jellegű függvényt a továbbiakban modularitás-függvénynek fogjuk nevezni. Valós értékű, és két változója A és σ. Mivel egy adott hálózat esetén a megfelelő σ felbontást keressük, ezért a továbbiakban A-t konstansnak tekintjük, és nem fogjuk változóként kiírni. A függvény felírásakor a korábban említett három szempont közül a sűrűbb részek jellegűt fogjuk használni, így a következő mondatot fogjuk kvantitatíven megfogalmazni: jó csoportosulás-felbontás esetén a csoportosulások sűrűek, és az egyes csoportosulások gyengébben kapcsolódnak. Így sok él fut csoportosuláson belül (mindkét végpontja azonos csoportosulásban van), és kevés él fut csoportosulások között (a két végpontja különböző csoportosulásban van) 11

12 Modularitás-függvény definiálása Modularitás-függvénynek Reichardt és Bornholdt az alábbi általános függvényt javasolta[8]: M(σ) = a ij A ij δ(σ i, σ j ) + b ij (1 A ij )δ(σ i, σ j ) + (1) + c ij A ij (1 δ(σ i, σ j )) + d ij (1 A ij )(1 δ(σ i, σ j )) ahol az összegek a csúcspárokon mennek végig, δ(σ i, σ j ) pedig 1, ha i és j egy csoportosulásban van, és 0 ha nem. A (1) összeg négy tagból áll, mindegyik csúcspár csak az egyik tagban fog nem-nulla járulékkal szerepelni. A csúcspárokat aszerint osztályozva, hogy van-e köztük él illetve azonos vagy különböző csoportosulásba tartoznak-e (az élt tekintve csoportosuláson belül vagy csoportosulások között van-e) a négy tag sorra a belső élek, a belső nem-élek, a külső élek és a külső nem-élek járulékát írja le. Természetesen a függvényben szereplő a ij, b ij, c ij és d ij egyelőre paraméterek, amelyek értéke nagymértékben befolyásolja a függvény értelmezését. Ezek megválasztásánál természetesen újabb feltevéseket építhetünk be a függvénybe. A továbbiakban törekedni fogunk arra, hogy M(σ) ne tegyen különbséget a hálózat egyes részei között: ha két csúcs a hálózaton bellül hasonló helyzetű, akkor a belőlük kiinduló élek járulékát is hasonló súllyal vegyük figyelembe. A fejezet bevezetőjében kimondott elvvel akkor lesz kompatibilis a fenti függvény, ha a ij és d ij pozitív, míg b ij és c ij negatív, mivel azonos csoportosulásban lévő csúcspárnál azt tartjuk kedvezőnek, ha éllel össze vannak kötve, míg különböző csoportosulásba tartozó csúcspárnál azt, ha nem. Amennyiben azonos súllyal vesszük figyelembe a külső és a belső éleket, a ij = c ij választással kell élnünk. Hasonló módon az éllel nem összekötött csúcspárok alapján megkövetelhetjük b ij = d ij teljesülését. Ezzel a (1) egyenlet az alábbira egyszerűsödik 1 : M(σ) = a ij A ij δ(σ i, σ j ) + b ij (1 A ij )δ(σ i, σ j ) (2) Természetesen még meg kell adnunk az a ij és b ij súlyokat. [8]-ot követve legyen a ij = 1 p ij és b ij = p ij. Ekkor M(σ) = (A ij p ij )δ(σ i, σ j ) (3) 1 Pontosabban (2) baloldalán M (σ) = (M(σ) c ij A ij d ij (1 A ij )) /2 állna, de M pontos értékét nem, csak a minimum-helyét fogjuk használni, az pedig konstanssal hozzáadása és szorzás hatására nem változik, ezért a továbbiakban ezt az M -ot fogjuk használni. 12

13 Ebben az alakban A ij δ(σ i, σ j ) azon élek száma, amelyek csoportosuláson belül vannak, míg p ij δ(σ i, σ j )-ot értelmezhetjük úgy, mint az ilyen élek várható számát. p ij tehát egy null-modellt határoz meg, amihez az adott hálózatnál kapott eredményt hasonlítjuk, jó csoportosulás-felbontásnak pedig azt tekinti M(σ) ilyen választása, amelynél a vártnál több él fut csoportosuláson belül. Ezen null-modellt tartalmazó tag nagyon fontos: pusztán A ij δ(σ i, σ j ) (amely lényegében megfelel a gráf-partíciós feladat jóság-függvényének) nem használhatjuk modularitás-függvénynek, mivel ez akkor maximális, ha az összes csúcs azonos csoportosulásban van, azaz az egész hálózat egyetlen csoportosulás. Mint a 2.2. pontban említettük, ilyen alak csak akkor használható, ha a csoportosulások számát más módon rögzítjük. A null-modellre a legegyszerűbb lehetőség a p ij = p választás, amely az ú.n. Erdős-Rényi modellnek felel meg. Valódi hálózatok azonban nagyon erősen eltérnek az Erdős-Rényi gráf-modelltől, főként a fokszám-eloszlás tekintetében. Ezen modell esetén ugyanis a fokszám-eloszlás binomiális, tehát mindegyik csúcsnak lényegében azonos a fokszáma. A valós hálózatoknál azonban jellemzően vannak kiugróan magas fokszámú csúcsok (hubok) azaz a fokszám-eloszlás vastag-szélű, nem egy érték körül sűrűsödő. Emiatt ezt a p ij -t lényegében nem alkalmazzák. Valamivel realisztikusabb választás a p ij = k ik j (ahol k 2E i a i csúcs fokszáma, azaz az adott csúcsból induló élek száma, és E = 1 ki a teljes hálózatban lévő élek száma), amely figyelembe veszi a hálózat fokszám-eloszlását. 2 A modularitás-függvényt használó módszerek szinte mindegyike ezen p ij -t használja, többnyire azért, mert ez felel meg a legelőször bevezetett[9] ú.n. Q-modularitás mennyiségnek. Ezen Q-modularitás eredeti alakja Q = α (e αα a 2 α) (4) ahol α a csoportosulásokat indexeli, e αβ = 1 2E i α,j β A ij az élek azon hányada, amelyek egyik végpontja α csoportosulásban, másik végpontja β csoportosulásban van, és a α = 1 2E i α k i az α csoportosulásban lévő élvégződések hányada. A fenti (1-4) definíciók alapján látható, hogy a modularitás-függvény pontos alakjának megválasztására több lehetőségünk van. A továbbiakban ismertetendő, ilyen jellegű függvényt használó módszerek majdnem mindegyike a Q-modularitást használja. Ugyan ezen eljárások használhatóságát, pontosságát ezzel a függvénnyel vizsgálták, de az esetek többségében maguk az alkalmazott algoritmusok szinte változtatás nélkül használhatóak bármilyen más modularitás-függvénnyel. 13

14 Csoportosulások definiálása modularitás-függvény alapján A Q-modularitás (4) alakja alapján, amelyben az összeg tagjai egy-egy csoportosulásnak felelnek meg, kézzelfoghatóbbá válik, hogy a modularitás-függvény definíciójából hogy tudunk csoportosulás-definíciót képezni: a csúcsok azon részhalmazát, amelyre e αα a 2 α pozitív, nevezhetjük csoportosulásnak. Ez azonban csak egy irányelvként használható, mert a függvény maximalizálásával kapott csoportok nem feltétlenül azok lesznek, amelyekre ez a feltétel teljesül. A függvényt ugyanis a teljes hálózaton egyszerre maximalizáljuk, míg ezen elv az egyes csoportosulásokat külön-külön nézné. Ennek ellenére ez a meggondolás intuitív fogalmat adhat arról, hogy egyegy adott modularitás-függvénynek milyen következményei vannak. Fontos azonban figyelembe venni, hogy bár az intuitív csoportosulás-fogalom a csoportosulást önmagában, a hálózat távolabbi részeitől függetlenül definiálná, a modularitás-függvény maximalizálásával kapott csoportosulások a teljes hálózat egészétől függnek Modularitás-függvények felbontás-korlátja Az eddig említett modularitás-függvényeknek van egy nem nyilvánvaló hátrányuk. Mind a Q-modularitás, mind a valamivel általánosabb (3) alak esetében egy rejtett felbontás-korlát van a modularitás-függvénybe építve[10, 11]: bizonyos méretnél kisebb csoportosulásokat a függvény nem tud érzékelni. Ez azt jelenti, hogy van olyan hálózat, ahol nem az intuitíven nyilvánvaló csoportosulás-felbontás adja a függvények maximum-helyét. Emiatt az adott függvény maximalizálásával egy másik, torzítottnak nevezhető csoportosulásszerkezetet fogunk találni. A problémát az okozza, hogy a csúcsok egy adott halmazának csoportosulás-voltának eldöntésekor a modularitás függvény a nullmodell figyelembevételekor a teljes hálózat méretéhez viszonyít. Így például ha teljes rész-gráfokból egy gyűrűt alkotunk, úgy, hogy mindegyik rész-gráfot egyegy él köti a két szomszédoshoz. Az így kapott hálózatban a rész-gráfok méretétől és számától függően a modularitás-függvény maximum-helyének a szomszédos rész-gráfokból kettesével vagy többesével alakított csoportosulások fognak megfelelni. Mivel intuitíven ránézésre látszik, hogy a helyes csoportosulás-felbontásban az egyes rész-gráfok alkotják a csoportosulásokat, ezért azt mondhatjuk, hogy a modularitás-függvényt alkalmazó eljárás nem helyes szerkezetet talált. Mivel más (többek között a 4.2. pontban ismertetett klikk-perkolációs) módszerekkel egy hálózaton belül talált csoportosulások mérete akár több 14

15 nagyságrendű különbséget is mutat, sőt bizonyos esetekben hatvány-függvény jellegű[12], ezért ilyen felbontás-korlát minden bizonnyal ténylegesen torzítja a valós hálózatok vizsgálatánál kapott eredményeket Csoportosulás-keresés modularitás-függvény alapján Modularitás-függvényt kétféleképpen is fel tudunk használni: egyrészt alkalmazható különböző csoportosulás-szerkezetek összehasonlítására, és ezáltal különböző csoportosulás-kereső módszerek öszevetésére, hatékonyságuk elemzésére. Másrészt viszont csoportosulás-kereső módszert is lehet belőlük építeni: ha úgyis a függvény értékei alapján választjuk ki a legjobb eljárást, akkor logikus ötlet egész egyszerűen ezen érték maximumát keresni. A tényleges maximum megkeresése NP-teljes feladat[13], így lényegében megoldhatatlan nagyméretű hálózatokra. Valós felhasználás esetén azonban sok esetben közelítő megoldással is megelégedhetünk. Az ilyen közelítő módszerek két nagy csoportra oszthatóak. Egyes módszerek közvetlenül a Q-modularitás maximumát próbálják valamilyen optimalizációs eljárással megkeresni. Ilyen jellegűek a genetikus algoritmust [14], szimulált hőkezelést [15] vagy a extremális optimalizálást [16] használó módszerek. Ezen eljárások, mivel azonos heurisztikus elgondolásra alapulnak, és azonos numerikus jellemzést használnak, viszonylag könnyen összehasonlíthatóak[17] gépigény illetve közelítés pontossága szempontjából. Mivel a (3) egyenlet által meghatározott modularitás-függvény formálisan azonos egy q-állapotú Potts spin-üveg Hamilton-függvényével[18], ezért maximumának kiszámolása azonos ezen spin-üveg alapállapotának meghatározásával. Hasonló megfeleltetéssel más, hálózatokat spin-rendszerekre leképező és a spinrendszer alapállapotából csoportosulás-szerkezetet számoló eljárás is felfogható egy modularitás-függvény közvetlen maximalizálásának[19, 8]. A másik csoportot azok az eljárások alkotják, amelyek nem expliciten a maximalizálási feladat közelítő-megoldását keresik. Ezek más heurisztikát követnek, és kisszámú javasolt csoportbeosztást állítanak elő, amelyek közül a legnagyobb Q-modularitás értékűt adják végeredményül. Így végső soron egy ad-hoc módszerrel állítják elő a közelítő megoldást. Ezek többnyire a következő pontban ismertetendő szeletelő vagy egyesítő típusú módszerek Szeletelő illetve egyesítő módszerek Sok különböző algoritmus besorolható az ú.n. szeletelő (divisive) illetve egyesítő (agglomerative) algoritmusok csoportjába. Ezek nagyon hasonlóak a 15

16 ábra: Egy apró hálózat és dendrogramja. Piros szaggatott vonallal jelölve egy adott csoportosulás-felbontást eredményező vágás véges dimenziós adathalmazoknál alkalmazott hierarchikus klaszterezési eljárásokra. A szeletelő algoritmusok a teljes hálózatból (mint egyetlen csoportosulásból) indulnak ki, és minden lépésnél valamelyik meglévő csoportosulást vágják fel két részre. Így az algoritmus futása során egyre több és egyre kisebb csoportosulások jönnek létre, mígnem mindegyik csoportosulás már csak egyetlen csúcsot tartalmaz. Az algoritmus lépéseit egy ú.n. dendrogramon lehet ábrázolni. Egy ilyen látható a 1. ábrán. Ez egy fa-szerkezet, amelynek levelei az eredeti hálózat csúcsai (a képen alul), az ágak pedig egy-egy csoportosulás. Az ábrán lentről fölfelé haladva először az 1, 2, 3 illetve 4, 5, 6 csúcsokból hozunk létre egy-egy csoportosulást, majd az utóbbit kibővítjük a 7-és csúccsal, és végül összeolvasztjuk a kettőt. Függőlegesen a lépések száma olvasható le, de ha a dendrogramot előállító algoritmus egy folytonos paraméter függvényében állítja elő az egyes szinteket, akkor a függőlegesen az elágazásokat ennek függvényében is ábrázolhatjuk. Az egyesítő algoritmusok az ellenkező irányban haladnak: különálló csúcsokból indulnak, és minden lépésben két csoportosulást egyesítenek. Így ezek eredménye is ábrázolható dendrogramon, a fő különbség az egyes lépéseknél használt heurisztika megfogalmazásában van: van olyan elv, amit szeleteléssel, van olyan, amit egyesítéssel az egyszerűbb megfogalmazni. A fenti általános sémákban pont a legfontosabb részt hagytuk ki: azt, hogy hogyan döntsük el, hogy az egyes lépésekben melyik csoportosulást és hol vágjuk ketté, illetve melyik két csoportosulást egyesítsük. Ezeket a döntéseket sokféle elv alapján nagyon változatos módon lehet meghozni, ezek közül néhányat a későbbiekben ismertetünk. 16

17 A két algoritmus-típusnak van két nagyon fontos közös jellemzője: mindegyik esetben diszjunkt csoportosulásokat kapunk, és mindegyik esetben az algoritmus a két véglet (a teljes hálózat egyetlen csoportosulás illetve mindegyik csúcs különálló csoportosulás) között halad. Így szigorúan szólva egyik esetben sem kapunk egy adott csoportosulás-felbontást az algoritmus végeredményeként. Ez utóbbi tulajdonság előnyként és hátrányként is értékelhető. Ha egy adott csoport-felbontásra lenne szükségünk, akkor hátrány. Ebben az esetben a leggyakoribb eljárás a dendrogram elvágása egy adott helyen. A dendrogramot vízszintesen elvágva (a 1. ábrán piros szaggatott vonallal) egy csoportosulás-felbontást kapunk. Természetesen ezt elvileg bárhol megtehetjük, ezért az optimális vágási hely meghatározásához egy külön feltételt szoktak használni. Erre leggyakrabban a Q-modularitás értékét alkalmazzák, úgy választva meg a vágás helyét, hogy a Q-modularitás értéke maximális legyen. Ha azonban nem ragaszkodunk a csoport-felbontáshoz, maga a dendrogram többet is elárulhat a hálózat szerkezetéről, mivel azt mutatja, hogy a hálózat hogyan épül fel hierarchikusan egymásba ágyazott csoportosulásokból. Amennyiben ilyen módon szeretnénk felhasználni a kapott eredményt, érdemes óvatosnak lennünk: ugyan az algoritmusok ezen hierarchiát minden szinten előállítják, de természetesen nem mindegyik szintje lesz egyformán megbízható. A dendrogramot sok olyan helyen is elvághatjuk, ahol a csoportszerkezet teljesen esetleges, és nem jellemző a hálózat szerkezetére. A hálózatokon végzett csoportosulás-keresés egyik legelső szeletelő al-... goritmusa az ú.n. Girvan-Newman algoritmus[9]. Ez minden lépésben a legnagyobb közöttiségű élt vágja el, és az így kapott összefüggő komponenseket tekinti csoportosulásoknak. Az eljárás fontos eleme, hogy minden egyes él elvágása után újra kell számolni az összes él közöttiségét. (Radikálisan eltérő és sokkal kevésbé használható csoportosulás-szerkezetet eredményezne ha csak egyszer számolnánk ki a közöttiség-értékeket.) Ezen módszernek rögtön két változata is van: használhatjuk a legrövidebb utakra épülő ú.n. geodesic betweenness-t, vagy a két csúcs között nem csak a legrövidebb, hanem egyéb útvonalakat is figyelembe vevő random walk betweenness-t is. Az eljárás működő-képességének belátására az alábbiakat érdemes végiggondolni: ha a hálózat csoportosulás-szerkezetet mutat, de egyetlen összefüggő komponensből áll, az egyes csoportosulásokat kevés számú él köti össze. Ezen élek közöttisége nagy lesz, mivel két, nem azonos csoportosulásban lévő csúcsot összekötő útvonalaknak mind át kell haladniuk rajta. Az algoritmus a közöttiség alapján azonosítja ezeket az éleket. Elvágva őket az hálózat szétesik kettő vagy több darabra, amelyek mind egy-egy csoportosulásnak fognak megfelelni. 17

18 Egyesítő algoritmusra példa Newman gyors algoritmusa[20, 12], amely a Q értékét mohó módon optimalizálja: mindig azt a két csoportot egyesíti, amelyek összeolvasztása a legjobban növeli (ill. legkevésbé csökkenti) Q értékét. Bizonyos szempontból szeletelő illetve egyesítő módszernek tekinthetőek azok az eljárások is, melyek valamilyen, a hálózatra helyezett dinamikai rendszer tulajdonságát használják ki. Ilyenekre példákat adunk a 3.3. pontban Szinkronizációs módszerek Az a csoportosulás-keresés feladat népszerűségének egyik oka az, hogy a feltételezés szerint a csoportosulások fontos szerepet játszanak a hálózatokkal modellezhető rendszerek működésében és dinamikájában. Ezt az elgondolást természetesen meg is lehet fordítani: ha a csoportosulás-szerkezet befolyásolja egy hálózaton zajló folyamat dinamikáját, akkor ezt a dinamikát megfigyelve következtetni lehet a csoportosulás-szerkezetre. Egy ilyen dinamika a hálózat csúcsaiban elhelyezett oszcillátorok szinkronizációja. A szinkronizációs folyamatok modellezésére használt Kuramoto modell egyik alap-eredménye, hogy szinkronizáció bekövetkeztéhez megfelelően erős kölcsönhatásra van szükség. Ha a hálózat csúcspontjaiban elhelyezett oszcillátorok a hálózat élei mentén hatnak kölcsön, akkor a sűrűn összekapcsolt részek erős kölcsönhatást fognak érezni, míg a gyengébben összekapcsolt részek kisebbet. A szinkronizációs átmenet ezért függ a hálózat szerkezetétől[21]. Ezt a korábban említett, heurisztikus csoportosulás-definícióval összevetve azt mondhatjuk, hogy (a rendszert a rendezetlen állapotból indítva) a csoportosulásokon belül előbb fog szinkronizáció fellépni, mint egyes csoportosulások között. Oszcillátor-párok korrelációját vizsgálva a páronként erősen korrelált részeket feleltethetjük meg csoportosulásoknak[22]. Ahogy a teljes hálózat egyre szinkronizáltabb lesz, ezek egyesülnek. Így időtől függő szinkronizáltságot kapunk, amelyet különböző szigorúsággal definiált csoportosulásoknak feleltethetünk meg. Egy másik lehetőség, hogy a hálózatot a rendezett állapotból indítva a kölcsönhatások erősségét apránként csökkentjük[23]. Így a hálózatban először az egyes csoportosulások közötti szinkronizáció bomlik fel, miközben a csoportosulásokon belül a szinkronizáció megmarad. Az oszcillátorok frekvenciáinak eloszlását mérve a csoportokat elkülöníthetjük egymástól. A fenti eljárások bizonyos szempontból szeletelő illetve egyesítő módszernek is tekinthetőek. Rendezett állapotból indítva végső soron szeletelő eljárást hajtunk végre, míg rendezetlen állapotból indítva egyesítés történik. 18

19 Emiatt ezen eljárásokra is igazak a 3.2. pontban említett jellemzők, itt is dendrogramot kapunk eredményül. Ezek a módszerek leginkább abban térnek el a szeletelő és egyesítő módszerektől, hogy futásuk közben nem használják az addig kapott csoportosulás-szerkezetet: míg a 3.2. pontban említett eljárások minden vágás illetve egyesítés után a részeredményül kapott hálózaton számoltak tovább, ezek a módszerek végig az eredeti hálózaton definiált dinamikai rendszert használják Véletlen bolyongásra és diffúzióra alapuló módszerek Oszcillátorok szinkronizációja nem az egyetlen olyan dinamikus jelenség amelynek lefolyásából csoportosulás-szerkezetre lehet következtetni. A hálózaton végzett véletlen bolyongás illetve az ahhoz szorosan kapcsolódó diffúzió hasonló alkalmazást tesz lehetővé. A hálózaton végzett véletlen bolyongás hosszútávú, aszimptotikus viselkedése jól ismert: ez egy-egy összefüggő komponenssen belül (ahol minden csúcsból minden másik csúcsba el lehet jutni a hálózat élei mentén) csak a csúcsok fokszámától függ. A bolyongás középtávú, tranziens jellemzői ellenben sokkal összetettebbek. Intuitíven belátható, hogy csoportosulásszerkezetet mutató hálózatban, mivel minden csúcsból a kiinduló élek nagy része csoportosuláson belül fut, a bolyongás hosszabb időre beleragad egy-egy csoportosulásba. Ezt az elgondolást használja fel [24], amely rövid, önelkerülő bolyongásokat használ. Minden csúcsból indítva néhány ilyet, azokat a csúcspárokat helyezi azonos csoportosulásba, amelyeknél az egyiken átmenő bolyongás nagy valószínűséggel átmegy a másikon is. Jelöljük Pij-vel t annak valószínűségét, hogy i csúcsból induló, t lépés hosszú bolyongás j csúcsban végződik. Ekkor Pi t egy valószínűség-eloszlás, amely a hálózatra és a i csúcs helyére jellemző. Várható, hogy egymáshoz közeli, egy csoportosulásban lévő csúcsokra ez hasonló lesz: az azonos csoportosulásba tartozó csúcsok a hálózat többi részét hasonló módon látják. A Walktrap algoritmus[25, 26] ezt a hasonlóságot használja ki: csúcsok hasonlóságát Pi -on t definiált L 2 metrikával mérve, és egy mohó algoritmussal igyekezve a csoportosulásokat a hasonló csúcsokból létrehozni. Egy kissé összetettebb módszert használ [27]. Ugyan az eredeti megfogalmazásban a hálózatot elektromos áramkörnek tekintve a csúcspontok feszültség-szintjeit vizsgálták, de maga az eljárás érthetőbb ha az ezzel matematikailag ekvivalens valószínűségi értelmezést használjuk. A hálózaton ki- 19

20 választunk két csúcsot (továbbiakban pólusok), majd az összes többi csúcsra kiszámoljuk, hogy az onnan indított véletlen bolyongás mekkora valószínűséggel melyik pólushoz ér el előbb. Amennyiben a hálózat két jól elkülönülő csoportosulás bontható, és a két pólus különböző csoportosulásban van, a csúcsok ezen valószínűségei jól elkülönülnek: mindegyik csúcsból a csoportosulásában lévő pólushoz jut el nagyobb valószinűséggel. Az eljárásnak két fő hibája van: egyrészt csak két részre bontottuk a hálózatot, amelyeket tovább kell darabolni. Másrészt a kettévágás erősen függhet a pólusok kiválasztásától. Ez utóbbi problémát többféleképpen is megpróbálhatjuk kezelni: egyrészt a többi csúcs valószinűségének eloszlásában valamennyire tükröződik, hogy mennyire tisztán bomlik fel a hálózat. Ha nem találunk jó elkülönülést, másik póluspárral érdemes próbálkozni. Másrészt megpróbálhatjuk az összes lehetséges nem-szomszédos pólus-párt végigpróbálni, abban bízva, hogy a csoportosulások nagyjából hasonló méretűek, így az esetek kicsit több mint felében a pólusok különböző csoportosulásba esnek. (Ha minden lehetséges pólus-párt néznénk, az esetek nagyjából felében esnének különböző csoportosulásba, de ha kizárjuk a szomszédos párokat, ez valamit javul.) 3.5. Lokális módszerek Ha valakit megkérünk, hogy találjon ki egy csoportosulás-kereső eljárást, az egyik első próbálkozása valószínűleg valami ilyesmi jellegű lesz: elindulunk az egyik csúcsból, és ezen csúcs csoportosulásához vesszük azokat szomszédokat, amelyekkel szoros csoportot alkot. Valami ilyen jellegű módszert használunk intuitíven amikor egy kicsi hálózaton kézzel különítjük el a csoportosulásokat. Az eddig ismertetett módszerek egyike sem ilyen jellegű volt. A jelek szerint ilyen típusú módszert pontosan megfogalmazni nehéz, bár az elgondolás lokális volta miatt van egy fontos előnye ennek az ötletnek. Sok esetben egy nagy hálózat néhány csúcsa körüli csoportosulásra van csak szükségünk. A teljes hálózatot használó módszerek mindig a teljes csoportosulás-szerkezetet előállítják, amely nagyon nagy hálózatra sok számolást igényel, mivel az eljárás erőforrás-igénye a teljes hálózat méretétől függ. Lokális módszerek ezzel szemben többnyire a hálózat bármely csúcsából indíthatóak, így lehetséges velük csak azokat a csoportosulásokat előállítani, amelyekre aktuálisan szükségünk van, és sebességük csak az ehhez használt hálózat-rész méretétől függ. Emiatt ilyen esetekben sokkal gyorsabbak lehetnek, ami lehetővé teheti az adott módszer használatát akkor is, ha globális módszerek lassúságuk miatt már nem alkalmazhatóak. Az egyik ilyen eljárás az n legnagyobb fokszámú csúcsból (hub-ból) kezdve 20

21 építi fel a csoportosulásokat[28], mindegyik csúcsot a hozzá legközelebbi hub csoportosulásába sorolva. Bár ez az eljárás nagyon gyors, és bizonyos esetekben (pl. a Zachary karate-klub hálózatra) használható is, de több súlyos hátránya is van. Egyrészt a csoportosulások számát (n-t) paraméterként kell megadni, másrészt azon feltevéssel él, hogy mindegyik csoportosulás hub köré szerveződik. Ez utóbbi sok hálózatban nem teljesül, más módszerrel meghatározott csoportosulásokat nézve egyes hub-ok csoportosulások szélén helyezkednek el, és szomszédjaik több különböző csoportosulásban vannak (lásd pontban). A Bagrow és Bollt által javasolt[29] módszer minden egyes csúcs köré igyekszik kiépíteni az adott csúcshoz tartozó csoportosulást: a csúcs körül növekvő héjakat néz (a csúcstól 1, 2, stb. távolságra lévő csúcsokat), és a héjból kifele illetve befele induló élek száma alapján határozza meg, hogy mikor érte el a csoportosulás határát. A módszer legnagyobb problémája, hogy minden csúcs körül szimmetrikus csoportosulást tételez fel. Mivel a végeredményként várt csoportosulás-szerkezetnél minden csoportosulás szélénél is vannak csúcsok, ezért a végső szerkezetet különböző csúcsokból növesztett héjak által adott eredmények egyesítésével kell meghatározni. Ehhez hasonló Clauset módszere[30], amely azonban nem minden csúcsból, szimmetrikusan indul ki, hanem egyetlen csoportosulást derít fel, mohón optimalizálva egy Q-modularitáshoz hasonló lokális mennyiséget. 21

22 4. fejezet Átfedő csoportosulás-kereső módszerek Az előző fejezetben kiindulásként használt feltételezéssel ellentétben sok valós hálózatnál nem jogos diszjunkt csoportosulás-szerkezetet feltételezni: bizonyos csúcsok több csoportosuláshoz tartoznak egyszerre. 2. ábra: Két, átfedő csoportosulás (a), és lehetséges eredmények nem-átfedő módszerrel (b: teljes hálózat egy csoportosulás, c: két csoportosulás felismerve, de középső csúcs csak egyikhez tartozhat.) Bármilyen diszjunkt csoportosulásokkal dolgozó módszert használunk is, ha olyan hálózatra alkalmazzuk, amelyet intuitíven átfedő csoportosulásszerkezettel írnánk le, nagyon pontatlan eredményt fogunk kapni. Az adott módszertől és az átfedés mértékétől függően amint az a 2. ábrán látható két lehetőség van: Egyetlen csoportosulást kapunk ott, ahol többet találhatnánk. Ez következik be, ha az átfedés az adott módszer küszöb-szintjénél erősebb. Több részre bomlik olyan csoportosulás, aminek egybe kellene maradnia. Ilyen eset áll elő, ha az átfedés gyenge, és az átfedésben lévő csúcsokat az egyik (és csak az egyik) csoportba kell besorolni, ezzel a többi csoportot csonkítva. 22

23 4.1. Nem-átfedő módszerek alapján Átfedő csoportosulások meghatározására több lehetőség is van. Elsőként azokat ismertetem, amelyek valamilyen eddig ismertetett, diszjunkt csoportosuláskereső módszer módosításaként jellemezhetőek. Az egyik lehetőség sztochasztikus algoritmusból kiindulni. Az eddig ismertetett eljárások egyik része determinisztikus algoritmus, amely egy adott hálózaton minden esetben azonos eredményt fog adni, másik része sztochasztikus, amely ugyan azon a hálózaton különböző eredményekre vezethet. Ilyen módszerrel tehát több, egymástól eltérő csoportosulás-szerkezetet is előállíthatunk, amelyek többé-kevésbé egyformán jogosak (hiszen azonos módszerrel készültek). Ezek bizonyos helyen egyezni, máshol különbözni fognak. A különbségeket értelmezhetjük úgy, hogy az átfedő csoportosulás-szerkezetet egyszer így, másszor amúgy látjuk, és megpróbálhatjuk kikövetkeztetni a hálózat valós, átfedő csoportokat tartalmazó szerkezetét. Ilyen módszert használ [31], amely a korábban ismertetett, determinisztikus Girvan-Newman algoritmust (lásd. 16. oldalon) teszi sztochasztikussá azáltal, hogy az eljárás során használt él-közöttiség értékét nem pontosan számolja ki, hanem csak megbecsüli. Ez az algoritmus ezen részét gyorsabbá teszi, ami valamennyire ellensúlyozza a többszörös futtatás miatti megnövelt erőforrás-igényt. Azonos módszerből több, ekvivalens eredményre úgy is juthatunk, ha a módszer egy függvény szélsőértékét számolja ki (tehát egy modularitásfüggvény maximumát keresi), és ezen szélsőérték nem egyedi[8]. Ez bizonyos szempontból az előző, sztochasztikus eset egy változata: mivel valós méretű hálózatnál az egzakt szélsőérték kiszámolása valószínűleg túl időigényes, ezért a gyakorlatban minden bizonnyal egy közelítő módszert fogunk használni, amely, ha sztochasztikus, de eléggé pontos, akkor a különböző szélsőértékek egyikét fogja megközelíteni. A különböző csoportosulás-szerkezeteket összehasonlítva kétféle eset fordulhat elő[8]. Lehetséges, hogy valamelyik csúcs az egyik esetben az egyik, a másik esetben egy másik csoportosulás része. Ebben az esetben jogosan mondhatjuk, hogy az adott csúcs mindkét csoportosuláshoz egyszerre tartozik. Az is előfordulhat viszont, hogy az egyik esetben olyan csoportosulásokat is találunk, amelyeket a másik esetben nem. (Például az egyik esetben talált valamelyik csoportosulás a másik esetben két részre vágva, két csoportosulásként azonosítjuk.) Ez az eset nem igazán nevezhető átfedő csoportosulásként, mert az egyik csoportosulást teljes egészében tartalmazza a másik. Átfedő csoportosulásokat kaphatunk úgy is, ha a véges-dimenziós adatokra kidolgozott fuzzy klasztereket előállító módszert alkalmazunk hálózatokra[5]. Ilyen esetben természetesen szembekerülünk a 2.1. pontban említett 23

24 3. ábra: csoportosulás meghatározása k-klikk gördítésével: baloldalon sötétkék k-klikk kétszer gördíthető, ezzel egy 5 csúcsból álló csoportosulást határozva meg. A vörös csúcs az kék és a zöld csoportosulások átfedését alkotja. problémával: a hálózat csúcsait egy véges-dimenziós térbe kell elhelyezni, és ezen elhelyezés jósága erősen befolyásolhatja a kapott eredményeket A klikk-perkolációs módszer Az ú.n. klikk-perkolációs módszer (Clique Percolation Method, CPM)[7] nagymértékben eltér az eddig ismertetett módszerektől. Nem használ modularitásfüggvényt, és eleve átfedő csoportosulásokat határoz meg. A 4. pontban ismertetett módszerek egy nem-átfedő definíciót illetve módszert módosítva éri el átfedő csoportosulások meghatározását, ami rejtett problémákat okozhat. További nagy különbség, hogy a CPM nem csúcsok és élek alapján dolgozik. A fenti módszerek szinte mindegyike a hálózatot az élek alapján vizsgálja, a CPM viszont az ú.n. k-klikkeket használja. A k-klikk egy k csúcsból álló, teljes részgráf (amelyben minden csúcspár között van él). Két k-klikket akkor nevezünk szomszédosnak, ha k 1 közös csúcsuk van. Egy csoportosulást egyszerűen a szomszédos k-klikkek uniójaként definiáljuk. Ugyanezen definíciót egy kicsit eltérő módon is elképzelhetjük: egy k- klikket úgy tudunk gördíteni, hogy csak egyik csúcsát mozgatjuk, miközben a többi csúcs változatlan marad, és az összes él a megfelelő módon élbe megy át. Egy csoportosulásnak a hálózat azon része felel meg, amelyet egy k- klikkből kiindulva be tudunk járni, azaz a kiinduló k-klikket végig tudjuk gördíteni rajta. Egy szemléltető példa látható a 3. ábrán. Látható, hogy ezen definíció hasonlít a 3.5. pontban ismertetett módszerekre, mivel itt is a hálózat egy apró részletéből kiindulva növesztjük a csoportosulást. Az eltérés abban van, hogy míg az ott ismertetett eljárások az éleken, a tényleges hálózaton zajlanak, addig a klikk-perkolációs módszer a klikkek szomszédsága által meghatározott klikk-hálózatot használja. A fenti módon csoportosulást mint k-klikkek halmazát definiáltuk. A csoportosuláshoz tartozónak fogjuk tekinteni azonban ezen klikkek éleit illetve 24

25 csúcsait is. Mivel két k-klikknek lehetnek közös élei és csúcsai anélkül hogy szomszédosak lennének, ezért egy él illetve csúcs több csoportosulásba is tartozhat. Ekkor az adott csoportosulások átfednek, és ezen élek illetve csúcsok a két csoportosulás közötti átfedésben van. A k = 2 esetben a k-klikkeknek az élek felelnek meg, amelyek akkor szomszédosak, ha egyik végpontjuk azonos. Ekkor a csoportosulásoknak a hagyományos összefüggő komponensek felelnek meg, amelynél két csúcs akkor tartozik azonos komponensbe, ha el lehet jutni egyiktől a másikig az élek mentén. 25

26 5. fejezet Csoportosulás-kereső módszerek alkalmazása Bár a csoportosulás-kereső módszerek kidolgozása még korántsem tekinthető lezárt témakörnek és a jelenlegi módszereken bőven akad fejleszteni való, de már a most rendelkezésre álló eljárások is sok esetben sikeresen használhatóak. Ez a korai felhasználás nemcsak az adott cél-terület számára, hanem csoportosulás-kereső módszerek továbbfejlődése számára is fontos. A különböző szemléletmódok alapján kidolgozott módszerek legmeggyőzőbb összehasonlítása (mint természettudományoknál általában) a gyakorlati felhasználás lehetőségén alapul. Bármennyire is elegánsabb lehet az egyik módszer a másiknál, ha ez utóbbi gyakorlati, ipari felhasználásra alkalmas, míg az előbbi nem. Az egyes alkalmazások vizsgálatánál fontos észben tartani, hogy minden esetben a csoportosulás-kereső módszert heurisztikusan használjuk. Ennek következménye, hogy az így kapott eredmények semmiképpen sem egzaktak. A kapott csoportosulás-szerkezetből leszűrt eredmények semmiképp sem lesznek bizonyító erejűek, és önmagukban nem megbízhatóak. A fő felhasználási mód nem valamilyen kapcsolat vagy következtetés bizonyítása vagy igazolása, hanem megsejtése. Az így kapott sejtéseket minden egyes esetben egyenként ellenőrizni és igazolni kell Heurisztikából általánosítás Az egyik lehetőség, hogy a csoportosulás-kereső rendszer kidolgozásakor használt heurisztikát használjuk tovább. Például a csoportosulás egyik értelmezési módja a sűrűn összekapcsolt rész volt. Az erre alapuló csoportosuláskereső módszerek a hálózat olyan részeit fogják elkülöníteni, amelyek sűrűbbek ugyan a teljes hálózatnál, de nem teljes gráfok (tehát a csoportosuláson belül nincs mindenki mindenkivel összekapcsolva). Mivel a hálózat egésze (az esetek többségében) jóval ritkább egy teljes gráfnál, ezért a sűrű részeinek sem kell a lehető legsűrűbbnek lenniük, ahhoz hogy csoportosulásnak tekinthessük őket. Tehát a csoportosuláson belül lesznek olyan csúcs-párok, amelyek nincsenek éllel összekötve. Az eddig követett elgondolás szerint azonban durván általánosítva azt mondhatnánk, hogy csoportosuláson belül mindenki szomszédos. A heurisztikát tovább-gondolva feltételezhetjük, hogy az ilyen csúcs- 26

27 párok között kellene lennie élnek, csak valamilyen okból (például mérési hiba, vagy zaj miatt) hiányzik. Egy ilyen felhasználásra példa [31], ahol gének hálózatát állítják össze aszerint, hogy mely gének fordultak elő együtt referált cikkek címeiben és absztraktjaiban. Az így kapott hálózaton csoportosulásokat elkülönítve egy csoportosuláson belül hiányzó él esetén (tehát amikor a két gén nem volt együtt említve) a szomszédok sűrű kapcsolatai alapján mondják ki, hogy a két gén esetleg mégis kapcsolódik valahogy. Ezt természetesen meg is lehet fordítani: két olyan csúcs esetén, amely esetleg más tulajdonságok miatt hasonlóak, de különböző csoportosulásba kerülnek, ez a tény a különbséget megerősítő jel lehet. Az előbb említett cikk[31] esetén két olyan gén, amely szerkezetében hasonló, más-más mechanizmus szerint vesznek részt hasonló folyamatban, és a mechanizmusok ilyen eltérése hangsúlyozódik ki a csoportosulás-felbontásban Értelmezés-váltás Csoportosítás-kereső módszerek alkalmazására egy másik lehetőséget a 3. fejezet bevezetőjében említett értelmezési lehetőségek különbözősége adja. Az egyik értelmezési mód alapján kidolgozott csoportosulás-kereső módszer nyilvánvalóan azon értelmezésnek megfelelő csoportosulásokat fog elkülöníteni. Ezeket azonban megpróbálhatjuk egy másik értelmezési lehetőség szerinti csoportosulásnak felfogni, és ebből különböző következtetéseket levonni. Ez a logikai ugrás sok felhasználási módszer fontos eleme, érdemes észben tartani, hogy megtétele egy heurisztikus lépés, az esetek többségében semmi nem garantálja, hogy ténylegesen megtehető. Erre sok helyen használt módszer a sűrű csoportosulások felderítésére alapuló eljárás (például egy modularitás-függvényt maximalizáló, vagy a klikkperkolációra alapuló) által adott csoportosulások funkcionális csoportokként történő értelmezése. Egy biológiai példa[32]: biológiai rendszereket, mint például egy sejt, felfoghatunk egy ismeretlen működésű gépként: elvben az összes alapvető kölcsönhatást ismerjük, hiszen jogosan feltételezhetjük, hogy a sejt működése a fizika ismert törvényeit követi. Az apró részletek pontos ismerete azonban nem jelenti a teljes működés megértését. A sejt egészének megértése érdekében megpróbálhatjuk egyes részeit aszerint jellemezni, hogy milyen funkciót látnak el. Esetleg abban is reménykedhetünk, ha minden rész funkcióját sikerül megérteni, a teljes sejt működését ismerni fogjuk, és például gyógyszer-fejlesztés próba-szerencse alapon történő folyamatát hatékonyabb, pontosabb tervezési eljárásra cserélhetjük fel. Ilyen felfogást követve megpróbálhatjuk néhány alkotóelem funkcióját 27

28 meghatározni kísérleti eszközökkel. Az összes alkotóelemet egyenként végigvizsgálni túlságosan nagy feladat lenne, de bizonyos esetekben a sűrű részek által meghatározott csoportosulások jó közelítéssel megfelelnek funkcionális csoportoknak: egy csoportosuláson belül azonos funkciójú elemek vannak. Az így funkcionális csoportoknak kinevezett csoportosulások tanulmányozása mellett ez más felhasználási módra is alkalmat ad: ha néhány elem funkciója ismert, az alapján megpróbálhatunk funkciót tulajdonítani az egyes csoportoknak, majd ugyanezt a funkciót átvinni az ismeretlen funkciójú elemekre. Ezáltal bizonyos elemek funkcióit sejthetjük meg. Hasonló módon szociális hálózatokban a talált csoportosulásokat baráti közösségeknek tekinthetjük. Így például iskolások szociális hálózata alapján lehet tanulmányozni etnikai különbségek okozta hatásokat[33]. Az ilyen eljárások fő előnye, hogy nagy mennyiségű adatot is képesek kezelni. Bár az alkalmazott csoportosulások nem feltétlenül felelnek meg azon funkcionális csoportoknak, vagy baráti közösségeknek, amelyekként értelmezni akarjuk őket, de az eltérések nem teszik lehetetlenné bizonyos következtetések levonását. Mivel ilyen nagy mennyiségű adat esetén a csoportosulások pontosabb vagy kézi meghatározása lényegében lehetetlen, ezért ha ekkora adathalmazokat szeretnénk ilyen szempontból tanulmányozni, más módszer nem is igazán áll rendelkezésünkre. Egyetlen vigaszként az szolgálhat, hogy a csoportosulások értelmezésekor elkövetett logikai ugrás miatti pontatlanságokat egyszerűen mérési hibaként is felfoghatjuk Magasabb szintű szerkezet vizsgálata Ha elfogadjuk, hogy valamilyen csoportosulás-kereső módszer által adott felbontás a hálózat szerkezetét (a csúcsok és élek szintjénél úgymond magasabb szinten lévő szerkezetet) tükrözi, megpróbálhatjuk ezen csoportosulások tulajdonságait vizsgálni. Vizsgálhatjuk például a csoportosulások együttes jellemzőit, például a méreteloszlásukat. Előállíthatjuk a csoportosulások hálózatát, amelyben diszjunkt csoportosulások esetén akkor húzunk be egy élt két csoportosulás között, ha az egyikben van olyan csúcs amely a másikban lévő csúcssal van összekötve az eredeti hálózatban. Átfedő csoportosulások használata esetén a csoportosulások hálózatát úgy is definiálhatjuk, hogy él akkor szerepel két csoportosulás között, ha azok átfednek. Az így kapott hálózaton az összes hálózat-kutatási módszert kipróbálhatjuk: vizsgálhatunk fokszámot, különböző korrelációkat vagy eloszlásokat. Sőt, csoportosulás-kereső módszert is alkalmazhatunk, ezzel csoportosulások csoportosulásait határozva meg. Egy másik lehetőség, hogy a csúcsok hálózatban betöltött szerepét próbál- 28

29 juk meg a csoportosulás-szerkezet alapján meghatározni[34, 35]: az egyes csúcsokat csoportokba oszthatjuk két szempont szerint. Egyrészt hogy a belőle kiinduló élek közül hány halad a saját csoportosulásán belül (within-module degree), ezzel jellemezve, hogy milyen erősen kapcsolódik a csoportosuláshoz. Másrészt hogy azon élek, amelyek másik csoportosulásban végződnek, hogy vannak elosztva: mindegyik ugyan azon másik csoportosulásban végződik, vagy a végződések egyenletesen vannak-e elosztva a többi csoportosulás között. A két szempontot numerikus módon jellemezve a csúcsokat egy 2-dimenziós síkon ábrázolva és azt részekre felosztva olyan szerepeket különíthetünk el, mint például periférikus csúcsok amelyek erősen kapcsolódnak egy csoportosuláshoz, és alig van más csoportosulásban végződő élük, provinciális hubok, amelyek nagy fokszámúak ugyan, de szomszédaik mind néhány csoportosulásban vannak csak, vagy globális hub-ok amelyek sok éle sok másik csoportosuláshoz kapcsolódik. Az, hogy az élek hogyan oszlanak el a különböző szerepű csúcs-párok között, a hálózat mintegy ujjlenyomatát adja. Egy további érdekes lehetőség, hogy a hálózat dinamikáját, idő fejlődését vizsgálhatjuk a csúcsok és élek helyett a csoportosulások szintjén[36, 37]. Ezzel mintegy a hálózat egy magasabb szintű szerkezet dinamikáját tárhatjuk fel. 29

30 6. fejezet Átfedő csoportosulások súlyozott hálózatokban 6.1. Súlyozott klikk-perkoláció A 4.2. pontban ismertetett klikk-perkolációs módszer egyik hátránya, hogy nehezen alkalmazható súlyozott hálózatokra. Sok esetben, amikor egy rendszert hálózatként kívánunk tanulmányozni, az egyszerű, egyéb tulajdonságokat nem hordozó éleket tartalmazó hálózat túlzott leegyszerűsítés lenne. Ha az eredeti rendszer fontos tulajdonsága, hogy a kölcsönhatások erőssége széles skálán változik, az összes kölcsönhatást azonos típusú, tulajdonságú élként kezelni nem túl bíztató. Ilyen esetekben általában indokolt az alkalmazott hálózatot egy kissé összetettebbként kezelni. Ezáltal ugyan a hálózat szerkezete bonyolultabb lesz, de hűbben fogja leképezni az eredeti rendszer tulajdonságait. Amennyiben mégis egyszerű, súlyozatlan hálózatként szeretnénk tanulmányozni a rendszerünket, lényegében egyetlen választásunk egy küszöb-szint bevezetése. Ezen küszöb-szintnél erősebb kölcsönhatások esetén szerepeltetünk élt a megfelelő két csúcs között, gyengébb kölcsönhatások esetén nem. Bár ez az eljárás eléggé drasztikus vágást jelent, van egy fontos előnye ami miatt alkalmanként súlyozott hálózatok esetén is érdemes használni. A gyakorlatban előforduló rendszerek esetén jóval több gyenge, mint erős kölcsönhatás van, így ilyen küszöbölés használatával nagymértékben csökken az élek száma, ami a hálózat vizsgálatát megkönnyíti. Bizonyos esetekben nemcsak egy módszer használhatósága miatt van szükség a hálózat ilyen csonkítására. A kísérletileg mért hálózatok mind többkevesebb zajt tartalmaznak, és a gyenge élek eldobása egy egyszerű zajszűrésként is alkalmazható. A súlyozott klikk-perkoláció (Clique Percolation Method with weigths, CPMw) algoritmus[38] az eredeti CPM algoritmushoz hasonlóan szomszédos k-klikkek adják a csoportosulásokat. A különbség a k-klikkek kiválasztásában van: a CPMw esetén azokat a k-klikkeket vesszük figyelembe, amelyek éleinek mértani közepe (amit a továbbiakban intenzitásnak nevezünk) egy adott I küszöb fölött van. Mivel ezen feltételt a klikkekre és nem az élekre rójuk ki, ezért előfordulhat, hogy egy adott élt valamelyik csoportosulásnál figyelembe kell venni, egy másiknál viszont nem. A CPM és a CPMw módszer közötti különbséget a 4. ábra szemlélteti. 30

31 a) w 1 a weighted network with disassortative link weights w 2 each node connected to the n/2 nearest neighbour nodes on both sides ( here n = 4 ) w > 1 > w 1 2 n(n/2+1)/4 1 w 1 w 2 = 1 b) 1) removing links weaker than W = 1 c) CPMw with k = 3 and intensity threshold I < 1 unweighted module finding method weighted method 2) CPM no modules entire graph recognized as one module 4. ábra: A CPM és a CPMw közötti különbség: A körben elhelyezkedő, vastagon jelölt nagy súlyú éleket vékonyan jelölt kisebb súlyú élek köztik össze. A CPM eljárást használva csak a nagy súlyú élek maradnak meg, amelyek nem alkotnak háromszögeket, így nem kapunk csoportosulásokat. A CPMw-t használva az erős és gyenge élek által alkotott háromszögek intenzitása elég nagy, így egy nagy csoportosulást kapunk. (ábra a [38] cikkből) Érdemes megemlíteni, hogy az ábrán látható látványos különbség akkor tapasztalható, ha az él-súlyok disasszortatívak, tehát egy erős él szomszédai (amelyekkel egyik csúcspont közös) gyenge élek. Valós hálózatban ezzel ellentétes jelenséget találtunk[38]: az élsúlyok gyengén asszortatívak, azaz erős élek szomszédai nagyobb valószinűséggel erősek. Ez valamennyire csökkenti a CPM és a CPMw által adott eredmények között várható különbséget. A fent említett, intenzitásra alapuló kritérium helyett elvileg más feltételt is kiróhatnánk. Mivel az alábbiakban ismertetett algoritmusok nem használják fel a kritérium pontos alakját, hanem a k-klikkek már a kritérium alapján megszűrt listája alapján dolgoznak, ezért másmilyen feltétel esetére is lényegében változtatás nélkül alkalmazhatóak Fázisátalakulás Erdős-Rényi gráfokban A CPMw eljárás kipróbálásához a súlyozott k-klikkek perkolációs átmenetét vizsgáltuk Erdős-Rényi gráf-modellben. Ez az egyszerű gráf-modell lehetővé teszi az átmenet analitikus és kísérleti vizsgálatát is, és összehasonlítási alapot ad más, például valós, hálózatok esetén kapott eredmények kiértékeléséhez. Az Erdős-Rényi modell[39] az egyik legelső véletlen-gráf modell. Az N 31

32 csúcs között lehetséges N(N 1)/2 darab él mindegyike azonos p valószínűségű. A gráf szerkezete ezen p paraméter értékétől függ: alacsony p esetén kevés él van, a hálózat apró részekből áll (ne összefüggő). p-t növelve az összefüggő részek mérete nő, majd p c = 1/N értéket elérve a hálózatban egy O(N) méretű óriás-komponens jön létre. Ennél nagyobb p esetén lényegében az egész hálózat összefüggő. Mivel súlyozott hálózatra van szükségünk, ezért minden élt ellátjuk egy w értékkel, amelyet a (0, 1] intervallumból egyenletesen és véletlenszerűen választunk ki Mért mennyiségek A k = 2-nek megfelelő összefüggő komponensek méretének p-függéséhez hasonló viselkedést várunk a magasabb k-jú klikkekből álló csoportosulások esetén is. Alacsony p-nél és magas I-nél a korábban kiszabott kritériumnak megfelelő klikkek száma kicsi, míg magas p-nél és alacsony I-nél szinte az összes klikk megfelel a feltételnek, így nagy csoportosulásokat fogunk kapni. E két tartomány közötti fázisátmenetet szeretnénk jellemezni. Az átmenet leírásához néhány numerikus mennyiséget vezetünk be: legyen az α indexű csoportosulás mérete n α, és legyen a legnagyobb méretű (legtöbb csúcsot tartalmazó) csoportosulás indexe 1, így mérete n 1. Rendparaméterként használhatjuk a Φ = n 1 /N mennyiséget, amely 0 és 1 között változik. Szuszceptibilitás-jellegű mennyiség a χ = α 1 n α, amely átalakulástól távol kicsi (mivel vagy alig vannak és kicsik a csoportosulások, vagy egy nagy csoportosulás van, amely szinte az összes k-klikket tartalmazza, és így a többi csoportosulás kicsi), míg a fázisátalakulás környékén nagy értékű. A fázisátmenet az előbb említett példától eltérően nem egyetlen p c érték, hanem egy p c (I) függvény írja le. Véges N esetén p c (I) pontos értékét többféleképpen is definiálhatjuk: mint azt az értéket, ahol a legnagyobb csoportosulás a csúcsok felét tartalmazza (ahol Φ = 1/2), azt az értéket, ahol χ maximális, stb. Ezek ugyan véges N esetén egymástól kissé eltérő eredményt adnak, de termodinamikai limesben, N esetén azonosak A mérés menete Feladatunk tehát I minél több értékénél kiszámolni a fenti p c értékét. Ehhez súlyozott Erdős-Rényi gráfokat fogunk generálni, majd a csoportosulások összeállításával meghatározzuk a fázisátmenet helyét jelentő kritikus vonal helyét. Mint előbb említettük, ezt a vonalat egy adott hálózatnál többféleképpen is kijelölhetnénk. A mérés elvégzésekor a legegyszerűbb, ha a Φ = 1/2 32

33 a) b) I p 0.2 c) d) 1 numerikus analitikus (2. rend) k=3 4 p D I N 5. ábra: A mérés menete és a kapott eredmények: (a) Φ(p, I) függvény, (b) a kritikus vonal mérése: a rácspontokban mért Φ értékek alapján lineáris interpolációval kaptuk a rács-egyeneseken lévő pontokat. (c) a mért és az elméleti görbe különbségének számolása, a kettő közötti terület alapján. (d) a kapott eredmények: a mért és elméleti görbe (amelyet részletesen lásd a pontban) különbség-integráljának (D) N-függése. Az (a-c) paneleken látható szemléltető eredmények egyetlen, N = 100 méretű hálózat k = 3 klikkjei alapján készültek. A (d) panelen látható mindegyik pont N-től függően hálózat méréséből számolt átlag. A szórás az ábrán látható jeleknél kisebb. 33

34 szintvonal által meghatározott vonalat használjuk, mivel ezt a legkönnyebb és legegyértelműbb mérni. A Φ(p, I) függvény a 5. ábra a) részén látható. A behúzott szintvonalat úgy határoztuk meg, hogy ezen függvény értékeit egy rács pontjaiban mértük meg, majd a mért pontokból interpolációval állítottuk elő a kritikus vonalat: a szintvonal két oldalán lévő pontok között a rács-vonalaknál lineáris interpolációt végezve. Így a szintvonal egy közelítését kapjuk. Az analitikus becsléssel való összehasonlítás érdekében a mért görbe és az elméleti becslés (a mért görbénél jóval nagyobb pontossággal, de szintén diszkrét pontokban kiszámolt) görbéje közötti területet trapéz-módszerrel számítottuk ki. Ez a mért és a becsült görbe közötti különbség-integrál egy közelítését adja az adott hálózat esetén. Ezt az eljárást az egyes N értékeknél többször végrehajtva, a kapott értékeket átlagolva kaptuk a 5. ábra d) paneljén látható eredményeket. Ugyan a fenti két bekezdésben leírt eljárás elég egyszerűen hangzik, tényleges megvalósításához sok trükköt kell felhasználni. Az alábbiakban ismertetem azokat az ötleteket, amelyek lehetővé tették a 5. ábrához szükséges adatok kiszámolását A Hoshen-Kopelman algoritmus Mivel egy fázisátmenetet, illetve elméleti becslésekhez való konvergenciát szeretnénk meghatározni, ezt a lehető legnagyobb rendszeren (tehát minél nagyobb N-nél), a lehető leggyorsabban kell elvégezni (hogy a megfelelő statisztikához ismételt mérések átlagát lehessen használni). Erre a probléma jellemzőit kihasználó módszert dolgoztam ki. Az algoritmus alapvetően a Hoshen-Kopelman módszerre[40] épül. Ez az eljárás, amelyet matematikusok union-find algoritmusnak hívnak, lehetővé teszi egy adott p, I értéknél a csoportosulás-szerkezet gyors kiszámolását. Ennél még fontosabb, hogy lehetőséget ad arra is, hogy egy adott p, I értéknél számolt csoportosulás-szerkezetet felhasználjuk egy másik p, I értéknél végzett számoláshoz. Ezen tulajdonsága lesz különösen értékes számunkra. A Hoshen-Kopelman algoritmus elemek diszjunkt halmazokba osztására használható. Legegyszerűbb alkalmazási területe összefüggő komponensek keresése akár hálózatokban akár szabályos rácsokon, perkolációs feladatoknál. Két alapműveletből áll: Unió, amely két halmazt egyesít, és Keres, amely egy (már valamelyik halmazba sorolt) elem alapján megkeresi azt a halmazt, amelybe tartozik. Ez utóbbi művelet az algoritmus hatékonysága érdekében szükséges: az unió végrehajtásakor, az unió művelet felgyorsítása érdekében nem jelöljük meg minden elemnél, hogy az új halmazba tartozik, csak számon tartjuk, hogy a régi halmaz az új halmaz része. 34

35 A fent említett két műveletet optimális módon megoldva a teljes algoritmus a következőképpen néz ki: az elemeket egyenként adjuk hozzá a már halmazokba sorolt elemekhez. Minden elem hozzáadásakor megvizsgáljuk, hogy mely már meglévő elemekkel kell egy halmazba tartoznia. Ha nincs ilyen elem, egy új halmazt hozunk létre. Ha egy van, vagy több, de azok ugyan azon halmaz elemei, akkor ahhoz a halmazhoz adjuk hozzá az új elemet. Ha több, különböző halmazhoz tartozó elemmel is egy halmazba kell tartoznia, az azt jelenti, hogy azon halmazok elemei is egy halmazba tartoznak, tehát ezen halmazokat egyesíteni kell. Az algoritmus nagyon fontos jellemzője, hogy a halmazok monotonon nőnek. Ezt egyrészt az egyes rész-lépések optimális megvalósításához is ki lehet használni, másrészt lehetővé teszi az algoritmus inkrementális használatát. Az elemeket egyenként adjuk hozzá a meglévőekhez, és mindegyik elem hozzáadása után érvényes, az addig hozzáadott elemekből felépülő szerkezet áll rendelkezésünkre. Így például ha azt szeretnénk vizsgálni, hogy Erdős- Rényi gráfok legnagyobb összefüggő komponensének mérete hogyan függ a p paramétertől, a következő módon kerülhetjük el, hogy minden p értéknél újra kelljen kezdeni a komponensek összeállítását: Egy teljes gráf mindegyik élére felírunk egy, a (0, 1] intervallumról egyenletesen, véletlenszerűen választott π számot. A továbbiakban úgy vesszük, hogy mindegyik él akkor része a p paraméterű hálózatnak, ha az adott él π paramétere kisebb p-nél, mivel egy ilyen szűréssel egy p paraméterű Erdős- Rényi gráfot kapunk. Ha egy adott p értéknél szeretnénk meghatározni a legnagyobb komponens méretét, megtehetnénk, hogy először kiválogatjuk az annál kisebb π értékű éleket, összeállítjuk a hálózatot, majd megmérjük a komponensek méretét. Ez felelne meg a minden p-nél külön mérünk eljárásnak, és ekkor minden mérési ponton (p értéknél) külön-külön össze kellene állítani a komponenseket. Ennél sokkal hatékonyabb, ha a komponens-kereső algoritmust egyszer futtatjuk csak le, de az éleket valamilyen esetleges sorrend helyett π értékük szerint növekvő sorrendben helyezzük be a hálózatba. Így az algoritmus fent említett inkrementális tulajdonsága miatt minden π értéknél megkapjuk a komponens-szerkezetet és így az általunk keresett mennyiséget is. Külön előnye ennek az eljárásnak, hogy nemcsak hogy elég egyszer összeállítani a komponenseket, de még szabályosan beosztott p-kre sem korlátoz az algoritmus: eredményül (az adott hálózatra vonatkozó) egzakt függvényeket kapjuk meg. Ezek természetesen lépcsős függvények lesznek, mivel a komponens mérete azon p értéknél változik, ahol új él jelenik meg. (Ezen tulajdonságot nem fogjuk kihasználni, mert nagyon sok részeredmény eltárolását tenné szükségessé, illetve két paraméteres esetben nehezebben kihasználható.) 35

36 6. ábra: Eljárás szemléltetéséhez. A klikkek helyét piros keresztek jelölik, a kék körrel jelölt rács-pontoknál határozzuk meg a csoportosulás-szerkezetet A méréshez használt eljárás Az esetünkben ilyen jellegű megoldást fogunk használni. Közvetlenül a csúcsokra, mivel átfedő csoportosulásokba osztjuk őket, nem használhatnánk ezt a módszert. A k-klikkekre viszont igen, mivel egy k-klikk egyszerre csak egy csoportosulásban lehet. Az általunk megoldandó probléma azonban egy fontos részletben eltér az előbb ismertetettől: a hálózatot nem egy, hanem két paraméter jellemzi, így a kiszámolandó függvények két-változósak. Bármelyik paramétertől való függést nézzük is, a kiszámolandó csoportosulás-szerkezet annak monoton függvénye, így a koordináta-tengelyekkel párhuzamosan haladva használhatjuk a fenti eljárást. Például 6. ábrán látható 1-el jelölt kék rács-pontnál úgy kaphatjuk meg a csoportosulás-szerkezetet, ha a jobbra és alatta lévő (a halvány-kékkel színezett részbe eső) klikkekből (amelyek I értéke nagyobb és p értéke kisebb, mint az 1-es ponté) építjük fel a csoportosulásokat. Hasonlóan járhatunk 36

37 el a 2-essel jelölt rácspont esetén is, ebben az esetben a pirosan, valamint a kéken színezett területbe eső klikkekre van szükségünk. Mint a területek elhelyezkedésén látható, ha az 1-es rácspontnál már ismerjük a csoportosulásszerkezetet, akkor elég ahhoz hozzáadni a pirosan színezett részre eső klikkeket, hiszen mindegy, hogy a klikkeket milyen sorrend szerint állítjuk össze csoportosulásokká. Ugyan így haladhatunk tovább a 2-es pontról a 3-asra. Az eljárás természetesen a másik tengellyel párhuzamosan is működik: a 4-es pontnál lévő csoportosulás-szerkezetet úgy számoljuk ki, hogy az 1-es pontnál lévő szerkezethez hozzáadjuk a zölden színezett területre eső klikkeket. Jóval érdekesebb kérdés az 5-ös pont kiértékelése. Ezt megtehetnénk úgy, hogy először összeolvasztjuk a 4-es és a 2-es pontnál kapott csoportosulásszerkezeteket, majd ehhez hozzáadjuk az 1, 2, 4, 5 pontok által határolt négyzetbe eső klikkeket. Így tudnánk a leginkább felhasználni a korábban kiszámolt rácspontoknál kapott eredményeket. Sajnos azonban egy ilyen megoldás több problémát is felvet: egyrészt a két különböző ponton (a mi példánkban a 2-es és 4-es pontokon) kapott csoportosulások összeolvasztása jóval összetettebb feladat, mint egyszerűen egy adott csoportosulás-szerkezet kibővítése újabb klikkekkel. A másik probléma, hogy a futás közben tárolandó adatok mennyisége jóval nagyobb: míg az irányba lépdelésnél minden pillanatban csak egy csoportosulás-szerkezetet kell tárolni, addig a 1 2, 1 4 majd 2, 4 5 lépések esetén egyszerre kettőt is, illetve a teljes eljárás során nagyjából a rács-vonalak számával megegyező számút kellene tárolni, ami jelentősen megnövelné a program memória-igényét. Bár az összetettebb, 2, 4 5 jellegű összeolvasztó lépéseket is kihasználó módszer valószínűleg gyorsabb lenne, de ezen komplikációk miatt, és mert csak egy igen speciális feladat miatt lenne rá szükség, amelynél az egyszerűbb algoritmus is elég gyorsan értékelhető eredményeket adott, nem tartottam fontosnak a fenti lehetőséget részletesebben kidolgozni. Így tehát csak jellegű lépéseket fogunk használni, és minden esetben az egyik koordináta-tengellyel párhuzamosan fogunk haladni. Ekkor is alkalmazhatunk azonban még két trükköt: egyrészt nem szükséges a teljes Φ(p, I) függvény kiszámolása, mivel csak egy szintvonalára vagyunk kíváncsiak. A számolás során mindig a kevés klikket tartalmazó helyzetből indulunk, tehát egy alacsony Φ-jű pontból, és ahogy klikkeket adunk hozzá a már meglévőekhez, Φ monotonon nő. Ezért érdemes azonnal félbeszakítani a folyamatot akkor, amikor Φ meghaladja az 1/2-et. (Illetve amikor túlhaladtunk azokon a rácspontokon, amiket majd interpolációhoz fogunk használni. Ez egy kicsivel összetettebb feltétel, nem elég Φ értékét figyelni.) Mint a 5. ábra (c) paneljén látható, a kritikus vonal a p = 0 és az I = 1 egyenesekhez simul. Mivel a p, I síknak pont ezen a részén üres a hálózat, csak a 37

38 7. ábra: Haladási irány megválasztása: a) mindig az egyik tengely mentén haladva, b) mindig a közelebbi tengely mentén haladva kritikus vonal és ezen egyenesek közé eső klikkekkel kell foglalkozni. A másik fontos szempont a haladási irány kiválasztása. A 7. ábrán berajzolt kísérleti és elméleti görbék mutatják a felderítendő területet. A haladás irányát a szürke nyilak szemléltetik. Az (a) panelen szemléltetett módon eljárni, tehát mindig az I tengellyel párhuzamosan haladni, a magas p-jű részen már nagyon alacsony hatékonyságú. Ezen a részen, ahol a nyilak már nagyon rövidek, néhány lépést tudunk csak egymás után megtenni, mire a kritikus vonalig elérunk. Azt elérve viszont újra az I = 1-től és üres csoportszerkezettől kell indulni, miközben a figyelembe veendő klikkek nagy részét (amely az adott nyíl alatt helyezkednek el) már az előző néhány lépésben is össze kellett építeni csoportosulásokká. Ez a probléma az alacsony p-jű részen jóval kevésbé jelentkezik, mivel ott nyilak hosszúak, így nagy területet bejárhatunk a kritikus vonalba ütközés nélkül. Mondhatjuk úgy is, hogy a nyilak hossza a megtakarított munka mennyiségét jellemzik: minnél hosszabb utat tudunk megtenni a kritikus vonalig, annál jobban tudjuk felhasználni a korábban kiszámolt csoportosulás-szerkezetet. Emiatt érdemes az ábra (b) paneljén szemléltetett módon eljárni, és mindig a közelebbi tengellyel párhuzamosan haladni. Ekkor ugyan a p, I sík egy részét kétszer is be kell járnunk (ahol az ábrán a nyilak egymást keresztezik), de ezt több mint kompenzálja az így elért hatékonyság-növekedés. (Különösen mivel a kétszer bejárandó területen a legkisebb a klikkek sűrűsége.) Érdemes megjegyezni, hogy az eredeti, CPM algoritmus más jellegű optimalizációkat tartalmaz. Amennyiben csak egy adott hálózatnál kell sú- 38

39 lyozatlan csoportosulás-szerkezetet számolni (és nem egy egész paramétertartományt kívánunk feltérképezni), nem érdemes a hálózatot ténylegesen klikkekre felbontani, majd azokból összeállítani a csoportosulásokat. Egy nagyobb, teljes rész-gráf ugyanis nagyon-nagyon sok kisebb klikket tartalmaz. Emiatt hatékonyabb, ha először ezeket próbáljuk meg elkülöníteni, megkeresve a nagy, teljes rész-gráfokat. A CPM definíciója szerint ezeket egyben csoportosulásnak tekinthetjük, anélkül, hogy fel kellene bontani, majd újra össze kellene építeni őket. Ezt azonban a CPMw esetén nem használhatjuk ki, mivel a klikkekre kirótt kritérium miatt mindenképp fel kell sorolni az összes klikket, hogy eldönthessük, hogy megfelelnek-e a kritériumnak Elméleti becslések A kisérleti eredmények ellenőrzésére érdemes meghatározni a kritikus vonalat elméleti meggondolások alapján is. Az alábbiakban a [38] cikk alapján három különböző elméleti becslést ismertetünk. Mindhárom a csoportosulások klikk-gördítéssel (lásd 3. ábrán) való leírását használja. N esetet nézve a klikk-gördítés egy lépését fogjuk vizsgálni: meg fogjuk becsülni, hogy hány irányba haladhatunk tovább. Ha ez 1-nél kisebb, akkor előbb-utóbb elakadunk valahol, véges méretű csoportosulást hozva létre. Ha azonban 1-nél nagyobb, a gördítést mindig tovább folytathatjuk, végtelen méretű csoportosulást alkotva. A kritikus vonalat tehát pont ezen mennyiség 1 értéke fogja meghatározni. Egy adott k-klikkhez (továbbiakban szülő-klikk) elérve valamelyik szomszédos, az intenzitás-kritériumnak megfelelő k-klikkbe (továbbiakban leányklikk) tudunk továbbhaladni. A lehetséges leány-klikkek száma (N közelítésben) p k 1 N(k 1). Ezt 1-el egyenlővé téve és p-t kifejezve kapjuk a súlyozatlan Erdős-Rényi gráf klikk-perkolációs kritikus pontját[41]: p c (I = 0) = [(k 1)N] 1/(k 1). Súlyozott Erdős-Rényi gráf esetén az első lehetőségünk a fejezet bevezétésében is említett közelítés alkalmazása: a klikkekre kirótt kritérium helyett az éleket szűrve, tehát csak az I-nél nagyobb súlyú éleket tartva meg, és az így kapott szűrt hálózaton vizsgálva a klikk-perkolációt. A szűrt hálózat is egy Erdős-Rényi gráf, p = p(1 I) él-valószinűséggel, amit behelyettesítve p c (I) p c (I = 0)/(1 I). Ez egy természetesen egy viszonylag durva közelítés, hiszen a súlyozott klikk-perkoláció alapötletét, a klikkekre kirótt intenzitás-kritériumot nem használja fel. A kritérium figyelembe vételét az alábbiak szerint tehetjük meg: jelöljük P k -val annak valószínűségét, hogy egy leány-klikk megfelel az intenzitás-kritériumnak. Ekkor p c (I) p c (I = 0)P 1/(k 1). A P k értékére két becslést is fogunk adni. 39

40 Az első lehetőség, hogy a leány-klikkek éleinek súlyait egymástól függetlennek és (0, 1]-en egyenletes eloszlásúnak tételezzük fel. A k-klikkben található k(k 1)/2 él súlyainak mértani közepére róttunk ki feltételt, tehát P k annak valószínűsége, hogy k(k 1)/2 darab ilyen eloszlású véletlen változó mértani közepe a feltételnek megfelel. Ezen elsőrendű közelítés k alacsony értékeire néhány integrál elvégzésével viszonylag könnyen meghatározható. A második esetben figyelembe vesszük azt a tényt, hogy a szülő k-klikk a feltételnek megfelelt. Emiatt a leány-klikk éleinek súlyai nem függetlenek egymástól. A szülő-klikk éleit egymástól függetlennek feltételezve, ebben a másodrendűnek nevezhető esetben is kiszámolható P k értéke, bár valamivel bonyolultabban, mint az elsőrendű esetben. A pontos eredmények megtalálhatóak a [38] cikkben. A 5. ábrán látható elméleti görbén ezen másodrendű közelítés alapján számolt p c vonal látható. 40

41 7. fejezet Eszközök hálózatok vizsgálatához A modern természettudomány legfontosabb eszköze a számítógép, a tudományos kutatás egyre inkább számítógépek segítségével zajlik. Különösen így van ez a hálózatok vizsgálatánál. Ugyan a (kísérleti) hálózatok alapjául szolgáló mérési eredmények egy része más módon (például kémiai mérésekkel, állati vagy emberi közösségek megfigyelésével) készülnek, az adatok feldolgozása és vizsgálata kizárólag számítógéppel történhet. De sok kísérleti hálózat kimérése is számítógéppel történik: ilyen például fehérjék szakirodalomvizsgálat alapján összeállított hálózata, amelyben két fehérje között az élek olyan cikkeket jelképeznek, amelyben az adott két fehérje előfordult, vagy egy hálózat. Ez nemcsak az adatok nagy mennyiségének következménye: még viszonylag kis méretű adat-halmazoknál is az feldolgozás nagy része olyan könnyen automatizálható rész-feladatokból áll, amelyre a hibalehetőségek csökkentése, illetve ismétlődő feladatok leegyszerűsítése miatt is érdemesebb számítógépes módszereket alkalmazni. Az alábbiakban néhány olyan programot szeretnék bemutatni, amely véleményem szerint hatékonyan alkalmazhatóak hálózatok vizsgálatára. Szeretném bemutatni, hogy ezek használata hogyan gyorsítja fel és egyszerűsíti egyes vizsgálatok elvégzését Különböző programok áttekintése Sok, nagyon változatos működésű és minőségű program érhető el az interneten. Ezek közül az alábbiakban kettőt említek meg, amelyek számomra hasznosak voltak NetworkX A NetworkX[42] egy Python-ban[43] készült program-könyvtár. Fő előnye hogy prototípusok gyors elkészítését teszi lehetővé: mivel python-ban készült, ezért könnyen módosítható és továbbfejleszthető. Ugyan a pythonban készült programok valamivel lassabbak mint az alacsonyabb szintű programnyelvben, például C-ben vagy C++-ban készült programok, de ez prototípus készítésekor, amikor az algoritmus kidolgozása a szempont, nem igazán fontos. A fejlesztés ezen szakaszában ugyanis a program-fejlesztés sebessége sokkal fontosabb, mint a program sebessége. 41

42 Az ilyen, kísérletező jellegű programozást különösen segíti a python interaktív konzolja. Hagyományos programozási nyelvekben az elkészült programot külön lefordítani, linkelni, majd futtatni kell. Az olyan dinamikus nyelvek, mint a python viszont lehetővé teszik olyan parancssoros környezet használatát, ahol a begépelt utasítások azonnal futtathatóak. Ezáltal a hagyományos munkafolyamat helyett a felhasználó mintegy párbeszédet folytathat a számítógéppel, sokkal interaktívabb felhasználást lehetővé téve Cytoscape A Cytoscape[44] egy nemzetközi összefogásban fejlesztett, hálózat-vizualizáló és -kezelő program. Mivel a programot elsősorban biológiai hálózatok vizsgálatára fejlesztik, némelyik része még ezt az örökséget tükrözi, de a fejlesztők igyekeznek általánosan használhatónak tartani így lényegében bármilyen hálózat vizsgálatához jól használható eszköz. A program egy keretrendszerből és azt kiegészítő plugin-ekből áll. A keretrendszer kezeli különböző file-formátumok beolvasását is írását, a hálózatok megjelenítését. A hálózat elemeihez tulajdonságokat lehet rendelni, és az elemek grafikus megjelenítése szabályozható ezen tulajdonságokkal. Így például minden csúcshoz egy tulajdonságként a csúcs fokszámát rendelve, majd a grafikus megjelenítésnél a csúcs méretét ezen tulajdonság alapján beállítva a kihangsúlyozhatóak a nagy fokszámú csúcsok. Mivel a tulajdonság alapján grafikus jellemző beállítása teljesen általános, ezért bármilyen numerikus jellemző megjeleníthető így. A plugin-ek az alap-programot egészítik ki, lehetővé téve a hálózat szűrését (a hálózat bizonyos feltételnek megfelelő elemeiből új hálózat létrehozását), a hálózat elemeinek külső adatokhoz való kapcsolását (például géneket megjelenítő csúcsokat internetes gén-adatbázishoz), különböző statisztikai jellemzők vizsgálatával. Ez azt is lehetővé teszi, hogy egy-egy újonnan kidolgozott módszer publikálásakor az adott módszert megvalósító plugin is közzé tehető. Így az eljárás rögtön széles körűen kipróbálható és alkalmazható, az adott módszert kifejlesztő kutatóknak pedig nem kell a keretrendszer által nyújtott alapvető dolgokat újra-programozniuk. Ezek közül jónéhány feladat domén-specifikus: csak bizonyos típusú rendszereknél van értelme, mert olyan eljárásokat használnak, amelyek működőképesége, az eredmények relevanciája csak ilyen rendszerekből képzett hálózatoknál biztosított, vagy mert olyan külső információra van szükségük, amelyek csak ilyen rendszereknél áll rendelkezésre. Az, hogy az alap-program plugin-ekkel könnyen és rugalmasan bővíthető, lehetővé teszi, hogy az ilyen domén-specifikus részeket ne kelljen szorosan a programba integrálni. Ennek két előnye is van: egyrészt a fő-program a domén-specifikus részektől függet- 42

43 lenül fejleszthető, másrészt a felhasználóknak se kell olyan domén-specifikus részekkel foglalkozniuk, amelyekre nincs szükségük. Az előbbi a programkódot, az utóbbi a felhasználói felületet segít egyszerűbbé tenni. A program LGPL licence-ű, ami garantálja az alap-program forráskódjának szabad elérhetőségét, de lehetővé teszi zárt-forráskódú plugin-ek fejlesztését is.ez a nyíltság széles körű újra-felhasználhatóságot jelent, ezzel elősegítve, hogy ne kelljen ugyan azt a problémát különböző fejlesztői csoportoknak újra és újra megoldaniuk, hanem egy közös program-csomagra építve lehessen kamatoztatni a közös erőfeszítéseket. A Cytoscape véleményem szerint interaktív használatra az egyik legjobban használható program. A program sok eleme segíti az interaktív használatot. Egy ilyenre jó példa a nagy hálózatok megjelenítésére beépített korlát: sok vizuális tulajdonságot beállítva a hálózat megjeleníthetősége lelassulhat, ha a hálózat sok eleme látszik egyszerre. A megjelenítés sebessége interaktív felhasználás szempontjából kritikus, mivel a hálózat navigációját (különböző részek kinagyítása, a csúcsok elrendezésének finomítása, stb.) alapvetően befolyásolja. Lassú megjelenítés esetén a teljes program használhatatlanná válna. Szerencsére a probléma viszonylag egyszerűen javítható: sok elem csak távoli nézeten látszik, amikor minden elem kicsi. Ekkor viszont az apró részletek (pl. egyes élek szaggatott vonal-volta, élek végén lévő nyílhegyek, csúcsok részletes alakja) úgysem vehetőek ki, így azok megjelenítését lehagyva a hálózat megjelenítése a minőség túlzott romlása nélkül javítható. A Cytoscape ezt automatikusan megteszi: a felhasználó által beállítható elemszám-korlátoktól függően durvább részletességű ábrát jelenítve meg. Ez természetesen csak egy apró trükk, de jól jellemzi az intuitív felhasználói felületek készítésekor felmerülő problémákat A fejlesztett program (FirmNet) főbb funkciói A főleg biológiai hálozatok elemzésére használt Cytoscape keretrendszerre épülve FirmNet néven egy olyan programot fejlesztettem, amely szociológiai hálózatok elemzését is lehetővé teszi. A FirmNet program szociológiai vizsgálatoknál használt műveleteket automatizálja, lehetővé teszi a szociális hálózatoknál használt numerikus jellemzők számolását. A Cytoscape keretrendszer ugyan képes numerikus tulajdonságok tárolására, kezelésére és megjelenítésére, de jelenleg nem képes olyan, hálózatkutatásban elterjedt numerikus tulajdonságok kiszámolásra, mint például a fokszám vagy a közelség. Az ilyen algoritmusok beépítése nagyban növeli a 43

44 program interaktív elemezésekre való használhatóságát. Mivel ezek (habár általánosan elterjedtek) domén-specifikus jellegűek, pluginként valósítottam meg. Az alábbiakban leírom az általam megvalósított numerikus mennyiségeket, értelmezésüket és használatukat. Ezen mennyiségek többsége a valamilyen szempont alapján alkotott központiságmérték (centrality) és a hálózat bizonyos szempontból legfontosabb csúcsainak meghatározására használhatóak. A numerikus algoritmusok egy részéhez felhasználtam a JUNG[45] programkönyvtárat, amely egy BSD licence-ű, szabadon terjeszthető és módosítható, különböző gráf-algoritmusokat tartalmazó java programkönyvtár Csúcsok centralitás-mutatói Az alábbi néhány numerikus jellemző az adott csúcsra és az adott hálózatra jellemző, a csúcs fontosságát, centralitását segít meghatározni. Ezért az adott hálózaton belül, az illető csúcs ú.n. lokális (hálózathoz kapcsolódó) tulajdonsága. A Cytoscape-ben a tulajdonságok alapértelmezés szerint globálisak, tehát csak az adott csúcsra jellemzőek, függetlenül attól, hogy milyen hálózatban vannak. A lokális tulajdonságok ezzel szemben csak egy adott hálózatban érvényesek: ha a csúcs egy másik hálózatnak is tagja (ami pl. előfordulhat úgy, hogy a felhasználó az eredeti hálózat részéből új hálózatot készít) akkor a lokális tulajdonságok különböző értékűek lehetnek az egyes hálózatokban. Fokszám (node degree) az adott csúcsnál végződő élek száma. A kétféle (irányított és irányítatlan) éltípus alapján ez 4 féle lehet: k in, k out, k undir, k any sorban a ki-fokszám (adott csúcsból induló irányított élek száma), a befokszám (adott csúcsba érkező irányított élek száma), az irányítatlan fokszám (adott csúcsnál végződő irányítatlan élek száma) illetve tetszőleges fokszám, amely az adott csúcsnál végződő élek száma (él típusától és irányától függetlenül), így k any = k in + k out + k undir. A fokszám a leglokálisabb tulajdonság: míg a továbbiakban ismertetett mennyiségek általában a hálózat egészétől függenek, a fokszám csak az adott csúcs közvetlen környezetétől. Az eredeti rendszer jellege és az élek definiálásának módja többé-kevésbé meghatározza, hogy a csúcsok fokszáma milyen értéket vehet fel. Sok esetben az élekhez valamilyen költség társul, és emiatt egy csúcs fokszáma nem lehet túl nagy. Például a weboldalak hálózatán (www) az oldalakon elhelyezett hivatkozások egy irányított hálózatot határoznak meg. A hivatkozás elhelyezésével kapcsolatos költségeket csak az egyik fél állja (az a lap, amelyen a hivatkozás van, nem az, amelyikre mutat). Emiatt a k out erősen korlátozott (nem lehet tetszőleges számú hivatkozás egy oldalon), míg k in -t csak a 44

45 hálózat teljes mérete korlátozza, és így nagyságrendekkel nagyobb lehet. A fokszámot egyesek csúcs-központiságnak (degree centrality) nevezik. A nagy fokszámú csúcsok (hub-ok) bizonyos hálózatoknál a legfontosabb, a hálózatban fontos szerepet játszó csúcsok. Ez azonban eléggé leegyszerűsített elképzelés, és ha a hálózat erősen inhomogén szerkezetű (csoportosulásszerkezetet mutat) akkor minden bizonnyal téves: a kis fokszámú, de egyes csoportosulásokat összekötő csúcsok sok esetben fontosabb szerepet töltenek be. Távolság (farness) az adott csúcsból elérhető csúcsok távolsága (súlyozatlan hálózat esetén élek számában mérve, és irányított élek esetén az élirányítottságot is figyelembe véve) a kiinduló csúcstól. A Közelség (closeness) ennek reciproka, így magas értéke esetén az adott csúcs minden (elérhető) csúcshoz közel van, míg alacsony értéke esetén vannak elérhető, de távoli csúcsok. Fontos, hogy ezek a mennyiségeket csak az adott csúcsból elérhető csúcsok alapján számoljuk: ha egy csúcs nem érhető el egy másikból (mert a hálózat nem összefüggő, és két különböző összefüggő komponensben vannak), akkor távolságuk végtelen. Így egyetlen izolált csúcs is az összes farness értéket végtelenné, és az összes closeness értéket nullává teszi. Ezt elkerülendő ezen mennyiségeket csak egy adott összefüggő komponensen belül értelmezzük. Ekkor viszont a kapott mennyiségek nem a teljes hálózatra, hanem csak az adott komponensre jellemzőek, így félrevezető lenne a teljes hálózat központiságaként értelmezni. Ezen valamennyire segíthet, ha a kapott értékeket az adott csúcsot tartalmazó összefüggő komponens méretével súlyozzuk. Fontos felhívni a figyelmet, hogy bárhogyan tesszük is ezt meg, mindenképpen a komponensenként kapott eredményt extrapoláljuk a teljes hálózatra. Ez esetenként nem indokolt, bar van amikor igen: mondhatjuk azt, hogy az a csúcs, amely egy nagy komponensben fontos szerepet tölt be, a teljes hálózatot tekintve is fontosnak tekintendő. Közöttiség (betweenness) azt adja meg, hogy az adott csúcson keresztül hány legrövidebb út halad át. Ez arra jellemző, hogy a csúcs milyen közvetítő szerepet játszik más csúcsok között. Bizonyos esetekben indokolható lehet ennek egy másik változatát, a véletlen bolyongásokra épülő közöttiséget (random walk betweenness) használni. Ha például egy szociális hálózatban az információ-áramlás szempontjából fontos csúcsokat szeretnénk meghatározni, a kettő közötti választás igazából az információ-áramlás módjától függ. Azt kell eldönteni, hogy a valós információ-áramlás milyen útvonalon halad: véletlen bolyongáshoz hasonlóan, vagy a legrövidebb utak mentén. Betweenness a élekre vonatkozó változatára (amely az adott élen keresztülhaladó legrövidebb utak számát adja meg) szeletelő csoportosulás-kereső 45

46 8. ábra: Csoportos reach példa-ablak. A hálózatban sárgán jelölt kiválasztott csúcsok alapján számolt reach látható a kis ablak alján. építhető (lásd. a 3.2. oldalon) A reach az adott csúcsból 1, 2,... lépésben elérhető csúcsok számát adja meg. Ez természetesen nem egyetlen szám, hanem egy számsorozat. A program minden lépés-számhoz külön tulajdonságban tárolja el az adott lépésszámhoz tartozó reach értékét. Mivel sokszor nem az elérhető csúcsok száma, hanem aránya a fontos, ez is kiszámolásra kerül, kétféle normálással: a normált reach az összes csúcs számának arányában, míg a cluster normed reach az elérhető csúcsok számának arányában adja meg a reach értékét Csúcsok halmazának centralitás-mutatója Egy-egy csúcs fontosságának meghatározása mellett alkalmanként szükség van csúcsok egy csoportjának vizsgálatára is. Ekkor a csoport együttes fontosságára vagyunk kiváncsiak, amely nem a csúcsokat külön-külön, hanem az egész csoportot együtt jellemzi. A FirmNet ezt a csoportos reach számolásával teszi lehetővé. Mivel ilyen csoportos tulajdonság nem egyetlen csúcs tulajdonsága, hanem az egész 46

Közösség detektálás gráfokban

Közösség detektálás gráfokban Közösség detektálás gráfokban Önszervező rendszerek Hegedűs István Célkitűzés: valamilyen objektumok halmaza felett minták, csoportok detektálása csakis az egyedek közötti kapcsolatok struktúrájának a

Részletesebben

22. GRÁFOK ÁBRÁZOLÁSA

22. GRÁFOK ÁBRÁZOLÁSA 22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is

Részletesebben

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor Gráfok 2. Legrövidebb utak, feszítőfák előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor Óbudai Egyetem,Neumann János Informatikai Kar Legrövidebb utak keresése Minimális feszítőfa keresése Gráfok 2

Részletesebben

Gráfelméleti alapfogalmak-1

Gráfelméleti alapfogalmak-1 KOMBINATORIKA ELŐADÁS osztatlan matematika tanár hallgatók számára Gráfelméleti alapfogalmak Előadó: Hajnal Péter 2015 1. Egyszerű gráfok Nagyon sok helyzetben egy alaphalmaz elemei között kitűntetett

Részletesebben

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés Gépi tanulás a gyakorlatban Kiértékelés és Klaszterezés Hogyan alkalmazzuk sikeresen a gépi tanuló módszereket? Hogyan válasszuk az algoritmusokat? Hogyan hangoljuk a paramétereiket? Precízebben: Tegyük

Részletesebben

Társadalmi és gazdasági hálózatok modellezése

Társadalmi és gazdasági hálózatok modellezése Társadalmi és gazdasági hálózatok modellezése 2. el adás A hálózatkutatás néhány fontos fogalma El adó: London András 2015. szeptember 15. Átmér l ij a legrövidebb út a hálózatban i és j pont között =

Részletesebben

Szalai Péter. April 17, Szalai Péter April 17, / 36

Szalai Péter. April 17, Szalai Péter April 17, / 36 Szociális hálók Szalai Péter April 17, 2015 Szalai Péter April 17, 2015 1 / 36 Miről lesz szó? 1 Megfigyelések Kis világ Power-law Klaszterezhetőség 2 Modellek Célok Erdős-Rényi Watts-Strogatz Barabási

Részletesebben

Markov-láncok stacionárius eloszlása

Markov-láncok stacionárius eloszlása Markov-láncok stacionárius eloszlása Adatbányászat és Keresés Csoport, MTA SZTAKI dms.sztaki.hu Kiss Tamás 2013. április 11. Tartalom Markov láncok definíciója, jellemzése Visszatérési idők Stacionárius

Részletesebben

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA 26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma

Részletesebben

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás) Matematika A2c gyakorlat Vegyészmérnöki, Biomérnöki, Környezetmérnöki szakok, 2017/18 ősz 1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás) 1. Valós vektorterek-e a következő

Részletesebben

Szociális hálózatok Gráf alapú módszerek. Adatbányászat. Klaszterezés Szociális hálózatok. Szegedi Tudományegyetem. Adatbányászat

Szociális hálózatok Gráf alapú módszerek. Adatbányászat. Klaszterezés Szociális hálózatok. Szegedi Tudományegyetem. Adatbányászat Klaszterezés Szegedi Tudományegyetem Élei lehetnek címkézettek (pl. ellenség, barát), továbbá súlyozottak (pl. telefonbeszélgetés) Megjelenési formái Ismeretségi, társszerzőségi gráf (Erdős-Bacon szám)

Részletesebben

Közösségek keresése nagy gráfokban

Közösségek keresése nagy gráfokban Közösségek keresése nagy gráfokban Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 2011. április 14. Katona Gyula Y. (BME SZIT) Közösségek

Részletesebben

A maximum likelihood becslésről

A maximum likelihood becslésről A maximum likelihood becslésről Definíció Parametrikus becsléssel foglalkozunk. Adott egy modell, mellyel elképzeléseink szerint jól leírható a meghatározni kívánt rendszer. (A modell típusának és rendszámának

Részletesebben

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus. 5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus. Optimalis feszítőfák Egy összefüggő, irányítatlan

Részletesebben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 10 X. SZIMULÁCIÓ 1. VÉLETLEN számok A véletlen számok fontos szerepet játszanak a véletlen helyzetek generálásában (pénzérme, dobókocka,

Részletesebben

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén

Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Dombi József Szegedi Tudományegyetem Bevezetés - ID3 (Iterative Dichotomiser 3) Az ID algoritmusok egy elemhalmaz felhasználásával

Részletesebben

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y. Algoritmuselmélet Legrövidebb utak, Bellmann-Ford, Dijkstra Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 3. előadás Katona Gyula Y. (BME

Részletesebben

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI 1 A digitális áramkörökre is érvényesek a villamosságtanból ismert Ohm törvény és a Kirchhoff törvények, de az elemzés és a tervezés rendszerint nem ezekre épül.

Részletesebben

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1. Nagyságrendek Kiegészítő anyag az Algoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: Algoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 018. február 1. Az O, Ω, Θ jelölések Az algoritmusok

Részletesebben

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI Mesterséges Intelligencia MI Problémamegoldás kereséssel - csak lokális információra alapozva Pataki Béla BME I.E. 414, 463-26-79 pataki@mit.bme.hu, http://www.mit.bme.hu/general/staff/pataki Lokálisan

Részletesebben

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8. Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás

Részletesebben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 9 IX. ROBUsZTUs statisztika 1. ROBUsZTUssÁG Az eddig kidolgozott módszerek főleg olyanok voltak, amelyek valamilyen értelemben optimálisak,

Részletesebben

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám. 1 Az utazó ügynök problémája Utazó ügynök feladat Adott n számú város és a városokat összekötő utak, amelyeknek ismert a hossza. Adott továbbá egy ügynök, akinek adott városból kiindulva, minden várost

Részletesebben

Társadalmi és gazdasági hálózatok modellezése

Társadalmi és gazdasági hálózatok modellezése Társadalmi és gazdasági hálózatok modellezése 5. el adás Közösségszerkezet El adó: London András 2017. október 16. Közösségek hálózatban Homofília, asszortatívitás Newman modularitás Közösségek hálózatban

Részletesebben

Gráf-algoritmusok ERŐS / GYENGE KÖTÉSEK

Gráf-algoritmusok ERŐS / GYENGE KÖTÉSEK Gráf-algoritmusok ERŐS / GYENGE KÖTÉSEK Sapientia-EMTE 2017-18 http://www.cs.cornell.edu/home/kleinber/networks-book/ A gyenge kapcsolatok ereje The strength of weak ties (legidézettebb cikk) 1969 (American

Részletesebben

A mérési eredmény megadása

A mérési eredmény megadása A mérési eredmény megadása A mérés során kapott értékek eltérnek a mérendő fizikai mennyiség valódi értékétől. Alapvetően kétféle mérési hibát különböztetünk meg: a determinisztikus és a véletlenszerű

Részletesebben

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

Részletesebben

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László) Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus

Részletesebben

1. tétel - Gráfok alapfogalmai

1. tétel - Gráfok alapfogalmai 1. tétel - Gráfok alapfogalmai 1. irányítatlan gráf fogalma A G (irányítatlan) gráf egy (Φ, E, V) hátmas, ahol E az élek halmaza, V a csúcsok (pontok) halmaza, Φ: E {V-beli rendezetlen párok} illeszkedési

Részletesebben

Függvények növekedési korlátainak jellemzése

Függvények növekedési korlátainak jellemzése 17 Függvények növekedési korlátainak jellemzése A jellemzés jól bevált eszközei az Ω, O, Θ, o és ω jelölések. Mivel az igények általában nemnegatívak, ezért az alábbi meghatározásokban mindenütt feltesszük,

Részletesebben

17. előadás: Vektorok a térben

17. előadás: Vektorok a térben 17. előadás: Vektorok a térben Szabó Szilárd A vektor fogalma A mai előadásban n 1 tetszőleges egész szám lehet, de az egyszerűség kedvéért a képletek az n = 2 esetben szerepelnek. Vektorok: rendezett

Részletesebben

Számítógépes döntéstámogatás. Genetikus algoritmusok

Számítógépes döntéstámogatás. Genetikus algoritmusok BLSZM-10 p. 1/18 Számítógépes döntéstámogatás Genetikus algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu BLSZM-10 p. 2/18 Bevezetés 1950-60-as

Részletesebben

Példa a report dokumentumosztály használatára

Példa a report dokumentumosztály használatára Példa a report dokumentumosztály használatára Szerző neve évszám Tartalomjegyzék 1. Valószínűségszámítás 5 1.1. Események matematikai modellezése.............. 5 1.2. A valószínűség matematikai modellezése............

Részletesebben

Számítógépes döntéstámogatás. Döntések fuzzy környezetben Közelítő következtetések

Számítógépes döntéstámogatás. Döntések fuzzy környezetben Közelítő következtetések BLSZM-09 p. 1/17 Számítógépes döntéstámogatás Döntések fuzzy környezetben Közelítő következtetések Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu

Részletesebben

Diszkréten mintavételezett függvények

Diszkréten mintavételezett függvények Diszkréten mintavételezett függvények A függvény (jel) értéke csak rögzített pontokban ismert, de köztes pontokban is meg akarjuk becsülni időben mintavételezett jel pixelekből álló műholdkép rácson futtatott

Részletesebben

Struktúra nélküli adatszerkezetek

Struktúra nélküli adatszerkezetek Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A

Részletesebben

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3 Síkgráfok Kuratowski-tétel: egy gráf akkor és csak akkor síkba rajzolható gráf, ha nincs olyan részgráfja, ami a K 5 -el, vagy a K 3,3 -altopologikusan izomorf (homeomorf). Euler síkgráfokra vonatkozó

Részletesebben

Gráfelméleti alapfogalmak

Gráfelméleti alapfogalmak 1 Gráfelméleti alapfogalmak Gráf (angol graph= rajz): pontokból és vonalakból álló alakzat. pontok a gráf csúcsai, a vonalak a gráf élei. GRÁ Irányítatlan gráf Vegyes gráf Irányított gráf G H Izolált pont

Részletesebben

Gráfelméleti feladatok. c f

Gráfelméleti feladatok. c f Gráfelméleti feladatok d e c f a b gráf, csúcsok, élek séta: a, b, c, d, e, c, a, b, f vonal: c, d, e, c, b, a út: f, b, a, e, d (walk, lanţ) (trail, lanţ simplu) (path, lanţ elementar) 1 irányított gráf,

Részletesebben

Király Zoltán, Kondé Zoltán, Kovács Antal, Lévai Annamária 2006

Király Zoltán, Kondé Zoltán, Kovács Antal, Lévai Annamária 2006 A Network-Elemzés - és felhasználása általános iskolai osztályok társas szerkezetének és a szerveződésért felelős személyes tulajdonságok feltárására Király Zoltán, Kondé Zoltán, Kovács Antal, Lévai Annamária

Részletesebben

A MODELLALKOTÁS ELVEI ÉS MÓDSZEREI

A MODELLALKOTÁS ELVEI ÉS MÓDSZEREI SZENT ISTVÁN EGYETEM GÖDÖLLŐ MECHANIKAI ÉS GÉPTANI INTÉZET A MODELLALKOTÁS ELVEI ÉS MÓDSZEREI Dr. M. Csizmadia Béla egyetemi tanár, az MMK Gépészeti Tagozatának elnöke Budapest 2013. október. 25. BPMK

Részletesebben

Mátrixjátékok tiszta nyeregponttal

Mátrixjátékok tiszta nyeregponttal 1 Mátrixjátékok tiszta nyeregponttal 1. Példa. Két játékos Aladár és Bendegúz rendelkeznek egy-egy tetraéderrel, melyek lapjaira rendre az 1, 2, 3, 4 számokat írták. Egy megadott jelre egyszerre felmutatják

Részletesebben

HÁLÓZAT Maximális folyam, minimális vágás

HÁLÓZAT Maximális folyam, minimális vágás HÁLÓZAT Maximális folyam, minimális vágás HÁLÓZAT informálisan Hálózat Irányított gráf Mindegyik élnek adott a (nemnegatív) kapacitása Spec csúcsok: Forrás (Source): a kiindulási pont csak ki élek Nyelő

Részletesebben

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus Csíkszereda IRT-. kurzus 3. Előadás: A mohó algoritmus 1 Csíkszereda IRT. kurzus Bevezetés Az eddig tanult algoritmus tipúsok nem alkalmazhatók: A valós problémák nem tiszta klasszikus problémák A problémák

Részletesebben

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,

Részletesebben

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2)

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2) Legyen adott a P átmenetvalószín ség mátrix és a ϕ 0 kezdeti eloszlás Kérdés, hogy miként lehetne meghatározni az egyes állapotokban való tartózkodás valószín ségét az n-edik lépés múlva Deniáljuk az n-lépéses

Részletesebben

Megerősítéses tanulás 7. előadás

Megerősítéses tanulás 7. előadás Megerősítéses tanulás 7. előadás 1 Ismétlés: TD becslés s t -ben stratégia szerint lépek! a t, r t, s t+1 TD becslés: tulajdonképpen ezt mintavételezzük: 2 Akcióértékelő függvény számolása TD-vel még mindig

Részletesebben

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( )

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( ) Budapesti Műszaki és Gazdaságtudományi Egyetem Gépészmérnöki Kar Hidrodinamikai Rendszerek Tanszék, Budapest, Műegyetem rkp. 3. D ép. 334. Tel: 463-6-80 Fa: 463-30-9 http://www.vizgep.bme.hu Alap-ötlet:

Részletesebben

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Dr. Kallós Gábor 2014 2015 1 Az Ordó jelölés Azt mondjuk, hogy az f(n) függvény eleme az Ordó(g(n)) halmaznak, ha van olyan c konstans (c

Részletesebben

Gráfalgoritmusok ismétlés ősz

Gráfalgoritmusok ismétlés ősz Gráfalgoritmusok ismétlés 2017. ősz Gráfok ábrázolása Egy G = (V, E) gráf ábrázolására alapvetően két módszert szoktak használni: szomszédsági listákat, illetve szomszédsági mátrixot. A G = (V, E) gráf

Részletesebben

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI 3. Fuzzy aritmetika Gépi intelligencia I. Fodor János BMF NIK IMRI NIMGI1MIEM Tartalomjegyzék I 1 Intervallum-aritmetika 2 Fuzzy intervallumok és fuzzy számok Fuzzy intervallumok LR fuzzy intervallumok

Részletesebben

Összefoglalás és gyakorlás

Összefoglalás és gyakorlás Összefoglalás és gyakorlás High Speed Networks Laboratory 1 / 28 Hálózatok jellemző paraméterei High Speed Networks Laboratory 2 / 28 Evolúció alkotta adatbázis Önszerveződő adatbázis = (struktúra, lekérdezés)

Részletesebben

A Riemann-Siegel zeta függvény kiugró értékeinek keresése. A matematikai egyik legnehezebb problémája, avagy a prímszámok misztériuma

A Riemann-Siegel zeta függvény kiugró értékeinek keresése. A matematikai egyik legnehezebb problémája, avagy a prímszámok misztériuma A Riemann-Siegel zeta függvény kiugró értékeinek keresése A matematikai egyik legnehezebb problémája, avagy a prímszámok misztériuma 2013 A probléma fontossága és hatása a hétköznapi életre A prímszámok

Részletesebben

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga BABEŞ-BOLYAI TUDOMÁNYEGYETEM, KOLOZSVÁR MATEMATIKA ÉS INFORMATIKA KAR MATE-INFO UBB verseny, 218. március 25. MATEMATIKA írásbeli vizsga FONTOS TUDNIVALÓK: 1 A feleletválasztós feladatok,,a rész esetén

Részletesebben

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Keresés képi jellemzők alapján Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Lusta gépi tanulási algoritmusok Osztályozás: k=1: piros k=5: kék k-legközelebbi szomszéd (k=1,3,5,7)

Részletesebben

Gépi tanulás és Mintafelismerés

Gépi tanulás és Mintafelismerés Gépi tanulás és Mintafelismerés jegyzet Csató Lehel Matematika-Informatika Tanszék BabesBolyai Tudományegyetem, Kolozsvár 2007 Aug. 20 2 1. fejezet Bevezet A mesterséges intelligencia azon módszereit,

Részletesebben

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11. 11. gyakorlat Branch-and-Bound a korlátozás és szétválasztás módszere 1. Az egészértéketű programozás 1.1. Bevezető Bizonyos feladatok modellezése kapcsán előfordulhat olyan eset, hogy a megoldás során

Részletesebben

Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások

Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások Bevezetés Ebben a cikkben megmutatjuk, hogyan használhatóak a Mathematica egylépéses numerikus eljárásai,

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. Mérai László előadása alapján Készítette: Nagy Krisztián 1. előadás Gráfok halmaza, gráf, ahol a csúcsok halmaza, az élek illesztkedés reláció: illesztkedik az élre, ha ( -él illesztkedik

Részletesebben

Leképezések. Leképezések tulajdonságai. Számosságok.

Leképezések. Leképezések tulajdonságai. Számosságok. Leképezések Leképezések tulajdonságai. Számosságok. 1. Leképezések tulajdonságai A továbbiakban legyen A és B két tetszőleges halmaz. Idézzünk fel néhány definíciót. 1. Definíció (Emlékeztető). Relációknak

Részletesebben

ELTE IK Esti képzés tavaszi félév. Tartalom

ELTE IK Esti képzés tavaszi félév. Tartalom Diszkrét Matematika 2 vizsgaanyag ELTE IK Esti képzés 2017. tavaszi félév Tartalom 1. Számfogalom bővítése, homomorfizmusok... 2 2. Csoportok... 9 3. Részcsoport... 11 4. Generátum... 14 5. Mellékosztály,

Részletesebben

II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés

II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés II. Két speciális Fibonacci sorozat, szinguláris elemek, természetes indexelés Nagyon könnyen megfigyelhetjük, hogy akármilyen két számmal elindítunk egy Fibonacci sorozatot, a sorozat egymást követő tagjainak

Részletesebben

STATISZTIKA ELŐADÁS ÁTTEKINTÉSE. Matematikai statisztika. Mi a modell? Binomiális eloszlás sűrűségfüggvény. Binomiális eloszlás

STATISZTIKA ELŐADÁS ÁTTEKINTÉSE. Matematikai statisztika. Mi a modell? Binomiális eloszlás sűrűségfüggvény. Binomiális eloszlás ELŐADÁS ÁTTEKINTÉSE STATISZTIKA 9. Előadás Binomiális eloszlás Egyenletes eloszlás Háromszög eloszlás Normális eloszlás Standard normális eloszlás Normális eloszlás mint modell 2/62 Matematikai statisztika

Részletesebben

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrás: (

HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör. Forrás: ( HAMILTON KÖR: minden csúcson PONTOSAN egyszer áthaladó kör Teljes gráf: Páros gráf, teljes páros gráf és Hamilton kör/út Hamilton kör: Minden csúcson áthaladó kör Hamilton kör Forrás: (http://www.math.klte.hur/~tujanyi/komb_j/k_win_doc/g0603.doc

Részletesebben

III. Gráfok. 1. Irányítatlan gráfok:

III. Gráfok. 1. Irányítatlan gráfok: III. Gráfok 1. Irányítatlan gráfok: Jelölés: G=(X,U), X a csomópontok halmaza, U az élek halmaza X={1,2,3,4,5,6}, U={[1,2], [1,4], [1,6], [2,3], [2,5], [3,4], [3,5], [4,5],[5,6]} Értelmezések: 1. Fokszám:

Részletesebben

Láthatósági kérdések

Láthatósági kérdések Láthatósági kérdések Láthatósági algoritmusok Adott térbeli objektum és adott nézőpont esetén el kell döntenünk, hogy mi látható az adott alakzatból a nézőpontból, vagy irányából nézve. Az algoritmusok

Részletesebben

Általános algoritmustervezési módszerek

Általános algoritmustervezési módszerek Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat

Részletesebben

Számítógép és programozás 2

Számítógép és programozás 2 Számítógép és programozás 2 11. Előadás Halmazkeresések, dinamikus programozás http://digitus.itk.ppke.hu/~flugi/ A keresési feladat megoldása Legyen a lehetséges megoldások halmaza M ciklus { X legyen

Részletesebben

Kémiai reakciók mechanizmusa számítógépes szimulációval

Kémiai reakciók mechanizmusa számítógépes szimulációval Kémiai reakciók mechanizmusa számítógépes szimulációval Stirling András stirling@chemres.hu Elméleti Kémiai Osztály Budapest Stirling A. (MTA Kémiai Kutatóközpont) Reakciómechanizmus szimulációból 2007.

Részletesebben

Statisztika - bevezetés Méréselmélet PE MIK MI_BSc VI_BSc 1

Statisztika - bevezetés Méréselmélet PE MIK MI_BSc VI_BSc 1 Statisztika - bevezetés 00.04.05. Méréselmélet PE MIK MI_BSc VI_BSc Bevezetés Véletlen jelenség fogalma jelenséget okok bizonyos rendszere hozza létre ha mindegyik figyelembe vehető egyértelmű leírás általában

Részletesebben

2. Visszalépéses keresés

2. Visszalépéses keresés 2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel

Részletesebben

A zsebrádiótól Turán tételéig

A zsebrádiótól Turán tételéig Jegyzetek egy matekóráról Lejegyezte és kiegészítésekkel ellátta: Meszéna Balázs A katedrán: Pataki János A gráfokat rengeteg életszagú példa megoldásában tudjuk segítségül hívni. Erre nézzünk egy példát:

Részletesebben

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Adaptív dinamikus szegmentálás idősorok indexeléséhez Adaptív dinamikus szegmentálás idősorok indexeléséhez IPM-08irAREAE kurzus cikkfeldolgozás Balassi Márton 1 Englert Péter 1 Tömösy Péter 1 1 Eötvös Loránd Tudományegyetem Informatikai Kar 2013. november

Részletesebben

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský

R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský R ++ -tree: an efficient spatial access method for highly redundant point data - Martin Šumák, Peter Gurský Recenzió: Németh Boldizsár Térbeli indexelés Az adatszerkezetek alapvetően fontos feladata, hogy

Részletesebben

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI Mesterséges Intelligencia MI Valószínűségi hálók - következtetés Dobrowiecki Tadeusz Eredics Péter, és mások BME I.E. 437, 463-28-99 dobrowiecki@mit.bme.hu, http://www.mit.bme.hu/general/staff/tade Következtetés

Részletesebben

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Számítógépes képelemzés 7. előadás Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Momentumok Momentum-alapú jellemzők Tömegközéppont Irányultáság 1 2 tan 2 1 2,0 1,1 0, 2 Befoglaló

Részletesebben

2. Visszalépéses stratégia

2. Visszalépéses stratégia 2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:

Részletesebben

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13. Algoritmuselmélet NP-teljes problémák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 13. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet

Részletesebben

Diszkrét matematika II., 8. előadás. Vektorterek

Diszkrét matematika II., 8. előadás. Vektorterek 1 Diszkrét matematika II., 8. előadás Vektorterek Dr. Takách Géza NyME FMK Informatikai Intézet takach@inf.nyme.hu http://inf.nyme.hu/ takach/ 2007.??? Vektorterek Legyen T egy test (pl. R, Q, F p ). Definíció.

Részletesebben

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága Algoritmusok bonyolultsága 5. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 27 Gazdaságos faváz Kruskal-algoritmus Joseph Kruskal (1928 2010) Legyen V = {v 1, v 2,..., v n }, E = {e 1, e 2,...,

Részletesebben

Ramsey-féle problémák

Ramsey-féle problémák FEJEZET 8 Ramsey-féle problémák "Az intelligens eljárást az jellemzi, hogy még a látszólag megközelíthetetlen célhoz is utat nyit, megfelelő segédproblémát talál ki és először azt oldja meg." Pólya György:

Részletesebben

Diszkrét matematika 2. estis képzés

Diszkrét matematika 2. estis képzés Diszkrét matematika 2. estis képzés 2018. tavasz 1. Diszkrét matematika 2. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Összefoglaló Gráfok / EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF Adott a G = (V, E) gráf ahol a V a csomópontok, E az élek halmaza E = {(x, y) x, y V, x y (nincs hurokél) és (x, y) = (y, x)) Jelölések:

Részletesebben

Gauss-Seidel iteráció

Gauss-Seidel iteráció Közelítő és szimbolikus számítások 5. gyakorlat Iterációs módszerek: Jacobi és Gauss-Seidel iteráció Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján 1 ITERÁCIÓS

Részletesebben

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30. Online algoritmusok Algoritmusok és bonyolultságuk Horváth Bálint 2018. március 30. Horváth Bálint Online algoritmusok 2018. március 30. 1 / 28 Motiváció Gyakran el fordul, hogy a bemenetet csak részenként

Részletesebben

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott . Minimális súlyú feszítő fa keresése Képzeljük el, hogy egy útépítő vállalat azt a megbízást kapja, hogy építsen ki egy úthálózatot néhány település között (a települések között jelenleg nincs út). feltétel

Részletesebben

Érdemes egy n*n-es táblázatban (sorok-lányok, oszlopok-fiúk) ábrázolni a két színnel, mely éleket húztuk be (pirossal, kékkel)

Érdemes egy n*n-es táblázatban (sorok-lányok, oszlopok-fiúk) ábrázolni a két színnel, mely éleket húztuk be (pirossal, kékkel) Kombi/2 Egy bizonyos bulin n lány és n fiú vesz részt. Minden fiú pontosan a darab lányt és minden lány pontosan b darab fiút kedvel. Milyen (a,b) számpárok esetén létezik biztosan olyan fiúlány pár, akik

Részletesebben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 4 IV. MINTA, ALAPsTATIsZTIKÁK 1. MATEMATIKAI statisztika A matematikai statisztika alapfeladatát nagy általánosságban a következőképpen

Részletesebben

Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése

Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése Hasonlósági keresés molekulagráfokon: legnagyobb közös részgráf keresése Kovács Péter ChemAxon Kft., ELTE IK kpeter@inf.elte.hu Budapest, 2018.11.06. Bevezetés Feladat: két molekulagráf legnagyobb közös

Részletesebben

Normák, kondíciószám

Normák, kondíciószám Normák, kondíciószám A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István Lineáris egyenletrendszerek Nagyon sok probléma közvetlenül lineáris egyenletrendszer megoldásával kezelhetı Sok numerikus

Részletesebben

Tanulási cél Szorzatfüggvényekre vonatkozó integrálási technikák megismerése és különböző típusokra való alkalmazása. 5), akkor

Tanulási cél Szorzatfüggvényekre vonatkozó integrálási technikák megismerése és különböző típusokra való alkalmazása. 5), akkor Integrálszámítás Integrálási szabályok Tanulási cél Szorzatfüggvényekre vonatkozó integrálási technikák megismerése és különböző típusokra való alkalmazása Motivációs feladat Valószínűség-számításnál találkozhatunk

Részletesebben

Taylor-polinomok. 1. Alapfeladatok. 2015. április 11. 1. Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Taylor-polinomok. 1. Alapfeladatok. 2015. április 11. 1. Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját! Taylor-polinomok 205. április.. Alapfeladatok. Feladat: Írjuk fel az fx) = e 2x függvény másodfokú Maclaurinpolinomját! Megoldás: A feladatot kétféle úton is megoldjuk. Az els megoldásban induljunk el

Részletesebben

10. modul: FÜGGVÉNYEK, FÜGGVÉNYTULAJDONSÁGOK

10. modul: FÜGGVÉNYEK, FÜGGVÉNYTULAJDONSÁGOK MATEMATIK A 9. évfolyam 10. modul: FÜGGVÉNYEK, FÜGGVÉNYTULAJDONSÁGOK KÉSZÍTETTE: CSÁKVÁRI ÁGNES Matematika A 9. évfolyam. 10. modul: FÜGGVÉNYEK, FÜGGVÉNYTULAJDONSÁGOK Tanári útmutató 2 MODULLEÍRÁS A modul

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. 2018. szeptember 21. 1. Diszkrét matematika 2. 2. előadás Fancsali Szabolcs Levente nudniq@cs.elte.hu www.cs.elte.hu/ nudniq Komputeralgebra Tanszék 2018. szeptember 21. Gráfelmélet

Részletesebben

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján

6. gyakorlat. Gelle Kitti. Csendes Tibor Somogyi Viktor. London András. jegyzetei alapján Közelítő és szimbolikus számítások 6. gyakorlat Sajátérték, Gersgorin körök Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor Vinkó Tamás London András Deák Gábor jegyzetei alapján . Mátrixok sajátértékei

Részletesebben

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus GRÁFELMÉLET 7. előadás Javító utak, javító utak keresése, Edmonds-algoritmus Definíció: egy P utat javító útnak nevezünk egy M párosításra nézve, ha az út páratlan hosszú, kezdő- és végpontjai nem párosítottak,

Részletesebben

7. Régió alapú szegmentálás

7. Régió alapú szegmentálás Digitális képek szegmentálása 7. Régió alapú szegmentálás Kató Zoltán http://www.cab.u-szeged.hu/~kato/segmentation/ Szegmentálási kritériumok Particionáljuk a képet az alábbi kritériumokat kielégítő régiókba

Részletesebben

Hálózati folyamok. A használt fogalmak definiálása

Hálózati folyamok. A használt fogalmak definiálása Hálózati folyamok Hálózat A használt fogalmak definiálása Ez összesen 4 dologból áll: - Egy irányított G gráf - Ennek egy kitüntetett pontja, amit forrásnak hívunk és s-sel jelölünk - A gráf még egy kitüntetett

Részletesebben

Statisztikai módszerek a skálafüggetlen hálózatok

Statisztikai módszerek a skálafüggetlen hálózatok Statisztikai módszerek a skálafüggetlen hálózatok vizsgálatára Gyenge Ádám1 1 Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Számítástudományi és Információelméleti

Részletesebben