gyakori rÉszgrÁfok keresÉse...

39
EÖTVÖS LORÁND TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKON SZAKDOLGOZAT Kovács Ténia Alexandra Matematika BSc Matematikai elemz ˝ o szakirány Témavezet˝ o: Dr. Kósa Balázs Információs Rendszerek Tanszék Budapest 2015

Upload: others

Post on 31-Oct-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

EÖTVÖS LORÁND TUDOMÁNYEGYETEM

TERMÉSZETTUDOMÁNYI KAR

GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKON

SZAKDOLGOZAT

Kovács Ténia Alexandra

Matematika BSc

Matematikai elemzo szakirány

Témavezeto: Dr. Kósa Balázs

Információs Rendszerek Tanszék

Budapest

2015

Page 2: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Tartalomjegyzék

1. Bevezetés 3

1.1. Hálózatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2. Gyakori elemhalmazok . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.1. Fogalma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.2. Apriori algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.3. ECLAT algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . 8

2. Gyakori részgráfok 11

2.1. Alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3. TreeMiner algoritmus 14

3.1. Alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.2. Jelölt eloállítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.3. A Treeminer algoritmus menete . . . . . . . . . . . . . . . . . . . . . . 19

4. AGM algoritmus 28

4.1. Alapfogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2. Jelölt eloállítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.3. Az AGM algoritmus menete . . . . . . . . . . . . . . . . . . . . . . . . 36

5. Összegzés 37

Irodalomjegyzék 37

2

Page 3: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

1. fejezet

Bevezetés

A szakdolgozatom célja, bemutatni azon algoritmusokat, melyek alkalmasak az irányí-tott, a véletlen és a skálafüggetlen hálózatok gyakori részgráfjainak megkeresésére. Atovábbiakban szó lesz a hálózatok nevezetes tulajdonságairól, illetve a gyakori elemhal-mazok fogalmáról. Továbbá részletesen tárgyalni fogom az apriori elven alapuló AGM-és a treeminer- algoritmust.

1.1. Hálózatok

"A hálózatok mindenütt jelen vannak." [1]- írja Barabási László, a Behálózva címu köny-vében. Valóban, a hálózatok felfedezhetoek az élet minden területén, amelyeket tipikusangráfokként reprezentálunk, ahol a csomópontok a modellezni kívánt esetek, az élek pe-dig valamely közös tulajdonságot, vagy kapcsolatot jelölnek a két csúcs között. Ilyenrelehet példa az emberi kapcsolati rendszer, amelyet szociális hálónak is szokás nevezni,ahol az embereket a csúcsok, a közöttük lévo kapcsolatokat, pedig az élek jelölik. Vagya biológiában a neurális hálózatok, ahol a neuronok helyezkednek el a gráf csomópont-jaiban, míg a szinapszisokat az élek reprezentálják. De a számítástechnikában is nagyszámban fordulnak elo, mint az internet felépítésében, ahol a számítógépek és router-ek acsúcsok és a kábeles, vagy wifi-s adatátviteli kommunikációk pedig a gráf élei. Ugyanígymodellezheto a Word Wide Web is, ahol a web oldalakat linkekkel kötjük össze.

Ezen hálózatok sok érdekes tulajdonsággal rendelkeznek, melyekbol kettot emelnékki, a kisvilág tulajdonságot és a hálózatok fokszámainak hatványeloszlását. Az elobbiretalán a legjobb példa, a web átmérojének vizsgálata. Tegyük fel azt a kérdést, hogy egybarátunk blogjáról, átlagosan hány kattintással juthatunk el, egy Fokvárosban élo biológushonlapjára.

A kérdés megválaszolásához, érdemes megemlítenem Stanley Milgram nevét, aki1967-ben azt vizsgálta, hogy átlagosan hány ismeretségi távolságra van egymástól, kétvéletlenszeruen kiválasztott amerikai állampolgár. A kísérlet eredménye átlagosan 5,5lett. Már Milgram elott is elterjedt volt az az elmélet miszerint bármely két ember azegész világon átlagosan hat lépésnyi távolságra van egymástól, de ez az egész emberiség-re vonatkozott, amely felveti azt a sejtést hogy a távolság, nem függ a vizsgált hálózat

3

Page 4: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

nagyságától. Ezen a gondolatmeneten elindulva Barabási és csapata elkezdte kutatni avilágháló átmérojét és arra jutottak, hogy a távolság arányos a hálózatban lévo csomó-pontok számának logaritmusával [1]. Így egy 1998-as mérés szerint a web átméroje 19kattintás volt. Ami lényegében azt jelenti, hogy egy tetszoleges weboldalról 19 kattintás-sal eljuthattunk, bármelyik másikba 17 évvel ezelott.

A másik érdekes tulajdonsága a hálózatoknak, különösen a skálafüggetlen hálóza-toknak, hogy a csúcsok fokszámainak eloszlása, hatványfüggvényt követ. Ez azt jelenti,hogy csak kevés csúcs rendelkezik nagy számú élekkel, amelyekkel a többi csúcshoz kap-csolódnak, míg a kevés fokszámmal rendelkezo csúcsok vannak többségben a hálózaton.Ez a jelenség megfigyelheto a szociális hálókban, a légiforgalmi rendszerekben, illetve azinterneten is. Mind a három esetben vannak olyan csomópontok, amelyek nagyságren-dekkel több éllel rendelkeznek, mint a társaik. Ezen csúcsokat középpontoknak nevezzükés a hatványfüggvény farkánál helyezkednek el.

1.1. ábra. Példa egy hálózat fokszámainak hatványeloszlására [1]

1.2. Gyakori elemhalmazok

A gyakori elemhalmazok kutatási területe, akkor vált érdekessé, amikor a vásárlói szoká-sokat modellezték, a nagyobb profit érdekében. Rájöttek, hogy az együtt vásárolt termé-kekbol levont következtetések, nagyobb nyereséget tudnak termelni az áruházaknak, ígylett a gyakori elemhalmazok keresése és meghatározása az adatbányászat egy új kutatásiterülete, ahol ennek megoldása végett számtalan algoritmus látott napvilágot. Ezekbol azApriori és az Eclat algoritmust mutatom be nagy vonalakban, mert ez a két legfontosabbés leggyakrabban használt algoritmus, továbbá az ott szereplo ötletek a gyakori részgráfkeresésnél is szerepelni fognak.

1.2.1. Fogalma

Legyen I = {i1, i2, ..., im} az elemek halmaza, továbbá T = {t1, t2, ..., tn} a tranzakciókhalmaza, amely az I hatványhalmaza felett értelmezett, bemeneti sorozat, azaz ti ⊆ I .Másképp I a termékek, T pedig a tranzakciók, vagy a vásárlói kosarak halmaza.

4

Page 5: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Azt mondjuk, hogy az A ⊆ I elemhalmaz fedése megegyezik, azon tranzakciókkal,amelyeknek A részhalmaza. Ekkor a fedésének elemszáma, adja meg az A halmaz támo-gatottságát, amelyet supp(A)-val jelölünk. Például, ha egy termék több vásárlói kosárbanis szerepel, akkor annak a terméknek a támogatottsága megegyezik ezen kosarak számá-val.

A feladat az, hogy meghatározzuk az összes olyan elemhalmazt, amely gyakori. Egyelemhalmazt, akkor nevezünk gyakorinak, ha annak támogatottsága elér egy elore defi-niált támogatottsági küszöböt, amelyet minsupp-pal szokás jelölni. Elofordul, hogy nema minimális támogatottságot, hanem egy gyakorisági küszöböt adnak meg. Ekkor a gya-koriságot az elemhalmaz támogatottságának és a tranzakciók elemszámának hányadosaadja meg. Formálisan freq(A) = supp(A)

|T | és ennek az értéknek kell nagyobbnak lennie,mint az elore meghatározott gyakorisági küszöb.

Ahhoz hogy meghatározzuk a gyakori elemhalmazokat, át kell vizsgálunk az összestranzakciót és elemhalmazt, így célszeru nagy gondot fektetni ezen kosarak tárolásánakmódjára az adatbázisokban. Erre a tárolásra háromféle lehetoség adott. Horizontális,mikor is a tranzakciók sorszámához hozzárendeljük a bennük lévo elemeket. Vertikális,ahol minden elemhez hozzárendeljük, hogy mely tranzakciókban szerepelnek, illetve re-lációs tábla, ahol a tranzakciók sorszámához, külön felsoroljuk azon elemeket, amelyekettartalmaznak.

Például legyen T = {(XY ), (XY Z), (Y ), (Y Z)} a tranzakciók halmaza. Az 1.2ábrán látható, mind a három adattárolási formához példák.

1.2. ábra. Adattárolási típusok

A tranzakciók ábrázolására két módszert alkalmazhatunk. A bináris mátrixot, ahol asorok a tranzakciókat, az oszlopok az elemeket jelölik, így az i-dik sor j-edik eleme 1, haaz i-dik tranzakció tartalmazza a j-edik elemet, különben 0. A másik ábrázolási mód agráfban való reprezentálás. Ekkor legyen G = (A,B,E) irányítatlan páros gráf, ahol Aa tranzakciók, B az elemek, E pedig az élek halmaza. Ha a ∈ A és b ∈ B, akkor a és bközött csak akkor megy él, ha az a tranzakció tartalmazza a b elemet.

Fentebb említettem, hogy az elemhalmazok támogatottságának meghatározásához vé-gig kell nézni az összes tranzakciót. Ez a muvelet kevés elemre jól muködik, mert elfér

5

Page 6: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

a memóriában, de nagyobb számú elemhalmazok esetében exponenciálisan nagy méretekölthet az I hatványhalmazainak száma. Ahhoz, hogy megvizsgáljuk hogy egy elemhal-maz szerepel-e a tranzakciók sorozatán, az összes tranzakciót és az elemek halmazánértelmezett hatványhalmazokat is végig kell olvasnunk. Azért, hogy ez hatékonyan mu-ködjön definiálnunk kell egy lehetoleg teljes rendezést az I elemein és így a tranzakciókatés az I hatványhalmazait ezen rendezés szerint tároljuk. Ez után következhet a gyakorirészhalmazok keresése, amelyre az úgynevezett GYEK (gyakori elemhalmazokat kinye-ro) algoritmusok vannak a segítségünkre. Az Apriori és az Eclat algoritmus alapját azalábbi három lépés iterációja adja.

• jelölteket állítanak elo

• meghatározzák ezen jelöltek támogatottságát

• kiválogatják a gyakoriakat a jelöltek közül

Mind a ketto az üres mintából kiindulva állítja elo a jelölteket, ahol a jelöltek azon elem-halmazok, amelyekrol a támogatottság meghatározása után el szeretnénk dönteni, hogygyakoriak-e vagy sem. Egy algoritmus akkor teljes, ha minden gyakori elemhalmazt meg-talál és helyes, ha csak a gyakoriakat találja meg. [2] Azt mondjuk, hogy a jelölt-eloállításismétlés nélküli, ha nem állítja elo ugyanazt a jelöltet többféleképpen. Az Apriori és azEclat algoritmus ismétlés nélkül állítja elo a jelölteket, amelyet az elemek és a tranzakciókfelett értelmezett rendezéssel tudunk garantálni.

1.2.2. Apriori algoritmus

Az Apriori algoritmus az üres halmazból kiindulva, szélességi bejárás szerint határozzameg a gyakori elemhalmazokat, azaz minden szinten eggyel nagyobb méretu elemhalma-zokkal foglalkozik. Az algoritmus alapját a jelöltek definiálásánál használt állítás adja,miszerint:

1.1. Állítás. Gyakori elemhalmaz minden részhalmaza gyakori.

Ugyanígy értelmes ennek megfordítása is, hogy ha egy elemhalmaznak van ritka rész-halmaza, akkor az biztosan nem gyakori. Ennek alapján ne legyen jelölt az az elemhal-maz, amelynek van ritka részhalmaza. A fenti állítás az anti-monoton tulajdonságbólkövetkezik.

1.2. Definíció. Legyen (H,�) egy részben rendezett halmaz. A p : H → {igaz, hamis}predikátum anti-monoton, amennyiben tetszoleges x ∈ H elem esetén, ha p(x) = igaz,akkor p(y) is igazat ad ∀y � x elemre.

A jelöltek eloállítása során az l elemu jelölteket a bemeneti sorozat l-edik átolvasásaelott állítja elo, azaz a priori, ahonnan a nevét is kapta az algoritmus.

6

Page 7: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Jelöltek eloállítása

Legyen GYl olyan halmaz, amely csak az l méretu gyakori elemhalmazokat tartalmazza,ekkor az algoritmus a GYl-bol (l+1) méretu jelölteket állít elo a következo képpen. I1 ésI2 párokat keres, amelyek elemei a GYl-nek. Ezek lesznek az úgynevezett generátorok.Ha igaz rájuk, hogy:

• I1 lexikografikusan megelozi I2-t

• I1-bol a legnagyobb elem törlésével ugyanazt az elemhalmazt kapjuk, mintha I2legnagyobb elemét töröltük volna

akkor vesszük I1 és I2 unióját, majd megvizsgáljuk, hogy a kapott elemhalmaz mindenrészhalmaza gyakori-e. Ehhez persze elég csak azt ellenoriznünk, hogy az összes(l+ 1) darab l-elemu prefixe gyakori-e, hisz az 1.1 állításból következik, hogy azok min-den részhalmaza is gyakori, mivel abból indultunk ki, hogy ok gyakori elemhalmazok. Haminden részhalmaza gyakori volt, akkor az I1 ∪ I2 jelölt lesz. Ahol egy sorozat l-elemuprefixén a sorozat elso l elemébol képzett részsorozatát értjük [2].

Támogatottság meghatározása

Miután eloállította az összes jelöltet az iterációban következik a jelöltek támogatottságá-nak meghatározása. Amennyiben 1 vagy 2 elemu jelöltekrol van szó egyszeru dolgunkvan. 1 elemueknél elég egy lista vagy tömb, ahol az index jelöli az elemet, az indexnéllévo számláló pedig a támogatottságot. Így a tranzakciók egyszeri átolvasásával, csaka megfelelo elemekhez tartozó számlálót kell növelni eggyel, amennyiben tartalmazza akosár az adott elemet. Ezután kiválogatjuk, azokat melyek gyakoriak a többit pedig el-dobjuk, majd új sorszámot adunk a gyakoriaknak, így jutunk el a 2 elemu jelöltekhez.Ekkor ha n db elemet találtunk gyakorinak, akkor létrehozunk a kételemu jelöltek számá-ra egy (n − 1) ∗ (n − 1)-es tömböt vagy mátrixot, mivel az indexelést nullával kezdjük.Tegyük fel, hogy i < j, ekkor az i és j elemekbol álló pár támogatottságát a tömb vagymátrix i-dik sorának (j − i)-dik oszlopában találjuk.

Abban az esetben, ha kettonél több elemszámú jelölteket vizsgálunk két mutatóra vanszükségünk. Az egyik mutató a kosár elemein a másik a jelölt elemein fut végig. Kez-detben mind a két mutatót az elso elemekre állítjuk, azaz a rendezés szerinti növekvosorrend legkisebb elemeire. Ha azok megegyeznek, akkor továbbléptetjük mind a kettot.Ellenkezo esetben, ha a tranzakcióban található elem, amelyre mutatunk a rendezés sze-rint kisebb, mint a jelöltünk, akkor csak a kosár mutatóját léptetjük, különben megállunk,mert biztosan nem tartalmazza a kosár a jelöltünket. Ha a jelölt utolsó eleme megegyezika tranzakció valamely elemével, akkor az tartalmazz a jelöltet. Ez a módszer sajnos nagyelemszámú jelölteknél és tranzakcióknál igen lassú, ezért hogy az algoritmus futási idejegyorsabb legyen, szokás a jelölteket szófába, vagy hash-fában tárolni.

Az algoritmus

Összefoglalva az algoritmusnak szüksége van a bemeneti tranzakciók sorozatára és egyminimális támogatottsági küszöbre, hogy a gyakori elemhalmazokat megtudjuk határozni.

7

Page 8: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Ezután az üres halmazból kiindulva meghatározza a támogatottságokat, majd azokbólkiválogatja a gyakoriakat és eggyel nagyobb elemszámú jelölteket állít elo a gyakoriakból.Az algoritmus pszeudokódja a következo, ahol GYl az l elemu gyakori elemhalmazokatjelöli, bemenetként pedig meg kell adni a T tranzakciók halmazát, illetve a minsupp-ot,azaz a minimális támogatottsági küszöböt:

Apriori algoritmus - pszeudokód

l := 0Jl := {∅}while |Jl| 6= 0 do

támogatottság _ meghatározása(T ,Jl)GYl :=gyakoriak_ kiválogatása(Jl,minsupp)Jl+1 =jelölt_ eloállítás(GYl)l := l + 1

end while

1.2.3. ECLAT algoritmus

Az Eclat algoritmus hasonlóan az Apriori algoritmushoz, az üres halmazból kiindulvaállítja elo a jelölteket, ellenben egy rekurzív mélységi bejárással halad az elemhalma-zokon szemben az Apriori algoritmussal. Továbbá amint eloállított egy jelöltet azonnalmeg is határozza annak a támogatottságát. Tehát az (l + 1) elemu, P prefixu jelölteket,ahol |P | = l − 1 az l-elemu, P prefixu gyakori elemhalmazokból állítja elo, páronkéntiunióképzéssel [2].

Az algoritmus erejét az úgynevezett TID (Transaction IDentifier) halmazok adják.Egy elemhalmaz TID-halmazának elemei azon tranzakciók sorszámai, amelyek tartal-mazzák a vizsgált elemhalmazt. Az általánosság megsértése nélkül feltesszük, hogy aszámozást nullától kezdjük és hogy egy tranzakció azonosítója megegyezik a bemene-ti sorozatban elfoglalt helyével. Például legyen T = {XY,XY Z,X, Y Z}, ekkor azI = {Y Z} elemhalmaz TID-halmaza {1, 3}.

A TID-halmazoknak két fontos tulajdonságuk van.

• Az I elemhalmaz TID-halmazának mérete megadja az I támogatottságát.

• Egy jelölt TID-halmazát megkaphatjuk a generátorainak TID-halmazából egy egy-szeru unióképzéssel [2].

Tehát az algoritmus elso lépésben meghatározza az elemek támogatottságát, majd ki-válogatja a gyakoriakat. Ekkor látható, hogy az elso iterációs lépés során eloállított jelöl-tek megegyeznek az Apriori elso lépésben eloállított jelöltjeivel, azaz GY ∅ = GY1. Ez-után megadja a gyakori elemek TID-halmazait és csak ezek segítségével keresi a nagyobbméretu gyakori elemhalmazokat. Általánosan egy iteráció a következoképpen zajlik. Le-gyen GY P , a P prefixu, |P | + 1 méretu gyakori elemhalmaz család. Továbbá adott a

8

Page 9: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

minsupp. Jelölje gy a GY P egy rögzített elemét. Ekkor minden olyan gy′ ∈ GY P elem-mel veszi az unióját gy -nek, melyre igaz, hogy gy ≺ gy′ az elemhalmazokon definiáltrendezés szerint. Ezek lesznek a jelöltek, majd meghatározza a TID-halmazaikat, melybolkönnyen kiolvasható ezen jelöltek támogatottsága. Ezután kiválogatja belolük a gyako-riakat, melyeket hozzáad a GY gy halmazhoz. Ezután sorra veszi a GY P többi elemétis, amelyekbol szintén kap egy egy gyakori elemhalmazt, majd veszi ezek unióját, amelymegadja a GY P+1-et. Például legyen T = {(XY ), (XY Z), (Y ), (Y Z)} és minsupp = 2.Ekkor GY ∅ = {X, Y, Z}, a TID-halmazaik pedig rendre {0, 1}{0, 1, 2, 3}{1, 3}. Ezutánvesszük az X többi elemmel képzett unióját, azaz {XY,XZ} melyeknek TID-halmazai{0, 1}{1}, ahol látható, hogy a Z-vel képzett uniója nem gyakori és mivel több részhal-mazt nem tudunk eloállítani ezen az ágon, így XY biztosan gyakori és következhet azY ∪ Z, mert csak ot elozi meg a rendezésben elfoglalt helyével, melynek TID-halmaza{1, 3}, azaz mérete ketto, tehát o is gyakori.

Az általános lépés pszeudokódja - Eclat_segéd

Input:P : prefix halmazGY P : P prefixu, P -nél eggyel nagyobb méretu gyakori elemhalmazokból alkotott hal-mazcsaládminsupp

for all gy ∈ GY P dofor all gy′ ∈ GY P , gy ≺ gy′ do

j := gy ∪ gy′j.T ID := gy.T ID ∩ gy′.T IDif |j.T ID| ≥ minsupp thenGY gy := GY gy ∪ j

end ifend forif |GY gy| ≥ 2 thenGY := GY ∪GY gy∪ Eclat_segéd(gy,GY gy,minsupp)

elseGY := GY ∪GY gy

end ifend forreturn GY [2]

Az algoritmus a jelölt-eloállítások során nem ellenorzi, hogy az unióképzéssel kapotthalmaznak minden részhalmaza gyakori-e, szemben az Apriorival, bár erre nem is lennelehetosége a mélységi bejárás miatt [2], mivel egybol meghatározza az elemhalmaz támo-gatottságát és tovább is megy az eggyel nagyobb méretuekre, továbbá a TID-halmazokbólmár nem tud erre következtetni, mert a bemeneti sorozatot már nem használja. Ebbol ki-folyólag legalább annyi jelöltet állít elo az Eclat, mint az Apriori, így több lesz a ritkajelöltje is.

9

Page 10: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Mindennek ellenére a nagy elonye az Apriorival szemben, hogy a jelöltek TID halma-zainak eloállítása egy rendkívül egyszeru és gyors folyamat, mivel minél nagyobb elem-számú jelöltet állít elo, úgy csökken a TID-halmazok mérete és így nagyon gyorsan meg-tudja adni azok támogatottságát, szemben az Apriorival, ahol minél nagyobb számú ajelöltek elemhalmazának mérete, úgy lassul az algoritmus futási ideje a támogatottságokmeghatározásánál.

Összefoglalva az algoritmus eloször meghatározza a jelölteket, majd azok TID-halmazait,melybol adott azok támogatottsága, ezután pedig kiválogatja közülük a gyakoriakat. Ezta rekurziós eljárást addig ismételgeti, amíg be nem járja az egész teret és nem talál többgyakori elemhalmazt.

10

Page 11: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

2. fejezet

Gyakori részgráfok

A gyakori részgráfok keresése, számos környezetben eloforduló feladat. Ilyen területpéldául a webes szokások elemzése, a bioinformatika, illetve a félig strukturált és XMLstruktúrájú adatok vizsgálata. Mivel ezeket a hálózati rendszereket gráfokként tudjukcsak reprezentálni, azon belül is a legtöbb esetben irányított gráfokként, így a feladatakövetkezokben gyakori mintázatok, vagy -részgráfok keresésére az adathalmazon.

2.1. Alapfogalmak

2.1. Definíció. Legyen G = (V,E) irányított gráf, ahol V 6= {∅} és E ⊆ V × V , ahol Va csúcsok E pedig az élek halmaza. A G gráf irányítatlan, ha ∀x, y ∈ V : (x, y) ∈ E ⇔(y, x) ∈ E.

2.2. Definíció. A G = (V,E, L, l) gráfot címkézett gráfnak nevezzük, ahol V a csúcsok,E ⊆ V × V élek, L pedig a címkék halmaza és l : V ∪ E → L olyan függvény, amelymegadja a csúcsok vagy élek címkéjét. [5]

2.3. Definíció. Sétának nevezzük a szomszédos csúcsok és élek egy váltakozó sorozatát.Ha a séta kezdo és végpontja nem egyezik meg és önmagát nem metszo akkor útnak, ha akezdo és végpont megegyezik akkor pedig körnek nevezzük.

2.4. Definíció. Legyen G irányított gráf és x, y, z ∈ V , akkor ha ∃ út x-bol z-be, amelyáthalad az y csúcson, azt mondjuk hogy y ose z-nek és z leszármazottja y-nak. Jelölésbeny ≤l z, ahol l az y-ból z-be vezeto út hossza. Ha l = 1, akkor azt mondjuk hogy y szülojez-nek és fordítva z gyereke y-nak. Amennyiben két csúcsnak megegyezik a szüloje, úgyoket testvéreknek definiáljuk.

2.5. Definíció. A G′ = (V ′, E ′) gráf a G = (V,E) gráf részgráfja, ha V ′ ⊆ V,E ′ ⊆ E.A továbbiakban jelölje ezt G′ � G.

2.6. Definíció. A G = (V,E) és a G′ = (V ′, E ′) gráfok izomorfak, ha van olyan egy-egyértelmu megfeleltetés - bijekció - V és V ′ között, hogy G-ben pontosan akkor szomszédoskét pont, ha G′-ben a nekik megfelelo pontok szomszédosak és szomszédos pontpárokesetén ugyanannyi él fut közöttük [3].

11

Page 12: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

2.7. Definíció. Legyen G = (V,E, L, l) egy címkézett irányított gráf és f : V (G) →V (G′) egy bijektív függvény, akkor G izomorf G′-vel ha:∀u ∈ V (G), lG(u) = lG′(f(u)) és∀(u, v) ∈ E(G), (f(u), f(v)) ∈ E(G′) és lG(u, v) = lG′(f(u), f(v)). [5]

A gráfok izomorfiájának eldöntése nehéz feladat, mivel egy n csúcsú gráf esetében n!bijekció lehetséges. A feladat bizonyítottan NP-teljes [8]. A gráf izomorfia problémájábólszületett a gráfok kanonikus kódolásának problémája [2].

2.1. ábra. Példa kanonikus kódra: 12242-1-1-1315-1-1-1-15-1

2.8. Definíció. A gráfok kanonikus kódolása (vagy kanonikus címkézése) egy olyan kódo-lás, amely az izomorf gráfokhoz és csak azokhoz azonos kódsorozatot rendel [2].

Megjegyzés: Egy gráfnak több kanonikus kódolása is lehet. Például ha a gyermekeksorrendje minden fában egyértelmu a címkéjük alapján, akkor az egy kanonikus kód. Atovábbiakban a 2.1 példában ismertetett kódolást alkalmazzuk.

Példa 2.1

A 2.1 ábrán látható példában mélységi bejárást alkalmazva, rendre feljegyezzük a látottcsúcsok címkéjét és amennyiben nem tudunk tovább haladni, úgy a visszalépést a kód-ban -1-gyel jelöljük, így feltéve hogy nincs olyan csúcs a gráfban, amely ilyen címkévelrendelkezne. A kódnak akkor van vége, ha visszaléptünk a kiindulási csúcsba.

2.9. Definíció. Azt mondjuk, hogy G elofordul G′-ben, ha ∃ olyan G′′ részgráfja G′-nek,ahol G és G′′ izomorfak.

Legyen G = {G1, G2, . . . , Gk} a bemeneti gráfok halmaza, továbbá G′ részgráfja Gi-nek (i ≤ k). Ekkor jelölje δGi

(G′) azon részgráfok számát Gi-ben, melyek izomorfakG′-vel.

• Ha δGi> 0⇒ dGi

(G′) = 1

• ha δGi= 0⇒ dGi

(G′) = 0.

12

Page 13: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Így a σ(G′) =∑

Gi∈G dGi(G′) a G′ támogatottságával egyenlo, magyarán azon Gi-k

száma, melyek tartalmazzák G′-t a G bemeneti halmazon. Szokás még súlyozott támoga-tottságot is számítani, ekkor σw(G′) =

∑Gi∈G δGi

(G′), amely megadja G′ összes elofor-dulásainak számát G-n. Amennyiben ha egy a gyakori elemhalmazok keresésénél használtminimális támogatottsági küszöböt megadunk és aG′ részgráf támogatottsága nem kisebbmint ez a minsupp, úgy azt mondjuk, hogy G′ gyakori részgráf a G halmazban.

13

Page 14: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

3. fejezet

TreeMiner algoritmus

A Treeminer algoritmus, melyet Zaki publikált [4] a gyakori részfák keresésére alkotta.Az algoritmus irányítatlan, csúcs-címkézett, gyökeres és rendezett fákban keresi a gyakorirészfákat, de egy kis módosítással az algoritmus általánosítható a címkézetlen gráfokbanés erdokben való keresésre is.

3.1. Alapfogalmak

A fa definíció szerint egy összefüggo, körmentes gráf. Jelölje ezt T = (V,E), ahol V acsúcsok, E pedig az élek halmaza. Így egy n csúcsú fa esetén, a fa mérete |T | = n. Anem összefüggo, de körmentes gráfok összességét erdonek nevezzük.

Gyökeres egy fa, ha egy csúcsot a többitol kitüntetettként kezelünk, ez lesz a gyökércsúcs.

Rendezettnek mondunk egy gyökeres fát, ha minden csúcsára teljesül, hogy a gyere-keik között adott egy rendezés. Ez a rendezés kiterjesztheto egy teljes rendezéssé a gráfpontjai között.

A továbbiakban jelölje ni egy csúcs pozícióját/helyét annak függvényében, hogy a fáta gyökér csúcsból kiindulva, mint 0. lépésbol mélységi bejárás szerint végiglátogatva, acsúcsot az i-dik lépésben fedeztük fel, ahol i = 0, 1, ..., |T | − 1.

Legyen L = {0, 1, . . . ,m− 1} a címkék halmaza és l : V → L olyan függvény melymegadja az ni csúcs címkéjét, azaz l(ni) = y ∈ L.

Jelölje a T fa egy élét az e = (nx, ny) ∈ E, ami a továbbiakban egy rendezett pár,ahol nx szüloje ny-nak.

A fák egyszerubb és helytakarékosabb tárolása végett, a Példa 2.1-ben bemutatottkanonikus kódolással reprezentáljuk. Ha elhagyjuk a kódból a -1-eket, akkor a T fa címkelistáját (label sequence) kapjuk, jelölje ezt l(T ). Erre mutat példát a 3.1-es ábra.

14

Page 15: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

3.1. ábra. Példa a kódos tárolásra, a címke listára (label sequence), valamint a csúcsokpozíciójára

3.1. Definíció. Azt mondjuk, hogy S = (VS, ES) egy beágyazott részfa (embedded sub-tree) a T = (V,E) fában, jelölje ezt S � T , ha

i) VS ⊆ V

ii) e = (nx, ny) ∈ ES akkor és csak akkor, ha nx ≤l ny a T fában, azaz akkortartalmaz egy élt S, ha nx leszármazottja az ny. Ha S � T , akkor azt mondjuk,hogy T tartalmazza S-t.

Egy részfa méretét jelölje k, ekkor ot k-részfának (k-subtree) nevezzük. Látható, hogya fenti definíció némileg eltér az 2.9-es részgráfokra kimondott általános definíciótól, mertnem csak a szülo-gyerek éleket tartalmazhatja egy részfa, mint a részgráfoknál, hanem azos-leszármazott éleket is [4]. Erre mutat példát a 3.2-es ábra, ahol a T fának részfái aza),b) és c) jelu fák.

Jelölje T a fák halmazát és legyen S � T , ahol T ∈ T . Ekkor S egy elofordulásátT -ben az úgynevezett illeszkedési címkével (match label) kaphatjuk meg.

Azaz legyen {t1, t2, ..., tn} a T csúcsainak halmaza, {s1, s2, ..., sm} az S csúcsainakhalmaza, ahol |T | = n és |S| = m. Ekkor S illeszkedési címkéje {ti1 , ti2 , ..., tim} akkorés csak akkor, ha

i) l(sk) = l(tik), ∀k = 1, ...,m

ii) e = (sj, sk) ∈ ES ⇔ ha tij ose tik-nak T -ben.

Megjegyzés: S összes csúcsának címkéje illeszkedik T -re. Valamint a csúcsok illeszke-désének topológiája T -ben és S-ben is megegyezik [4].

S elofordulásainak száma T -ben, azonos az 2.9-ben definiált támogatottsággal, illetve a

15

Page 16: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

3.2. ábra. Példa egy fa lehetséges részfáira

súlyozott támogatottság definíciójával. Ugyanígy érvényes a minsupp támogatottsági kü-szöb is a gyakori részfák meghatározásához. A továbbiakban jelölje a k méretu gyakorirészfák halmazát Fk.

Ahhoz, hogy könnyebben megtudjuk számolni a gyakori részfákat, szükséges defini-álnunk az érvényességi tartomány (scope) fogalmát.

3.2. Definíció. Legyen T (nl) egy nl gyökeru részfa és az nr csúcs, a T (nl) fa legjobbol-dalibb levele, azaz a legnagyobb pozícióban lévo csúcs a részfában. Ekkor [l, r] inter-vallumot az nl csúcs érvényességi tartományának nevezzük, ahol l az intervallum alsó, rpedig a felso korlátja.

Példa 3.1

A 3.3 ábrán látható egy T ∈ T fa, valamint annak két részfája S1 és S2. A már be-vezetett ni csúcsjelölések mellett, az ehhez tartozó érvényességi tartomány, valamint akanonikus kódjuk alatt, a címke listájuk is fel van tüntetve. Az illeszkedési címkék hal-maza T azon pozícióit tartalmazza, melyekre illeszkedik a részfa címke listája. Látszik,hogy mindkét részfa támogatottsága 1, valamint a súlyozott támogatottság az S1 részfaesetében 3, mivel kétféleképpen is illeszkedik a címke listája a T fa címke listájára.

3.2. Jelölt eloállítás

A Treeminer algoritmus az Apriori GYEK algoritmushoz hasonlóan a jelöltek eloállításá-hoz az anti-monoton tulajdonságot használja fel. Azaz egy mintázat gyakorisága kisebbvagy egyenlo mint annak részmintáinak gyakorisága. Így hasonlóan a fentebb bemutatottGYEK algoritmusokhoz a (k + 1)-részfa jelölteket a gyakori k-részfákból állítja elo.

Ekvivalencia osztály

16

Page 17: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

3.3. ábra. Példa fa részfáira és a csúcsok érvényességi tartományára

Azt mondjuk, hogy két k-részfa X, Y ugyanabban a prefix ekvivalencia osztályban van,akkor és csak akkor, ha a (k − 1)-dik csúcsig a prefixük megegyezik.

Formálisan legyen X ,Y a két fa kanonikus kódja és p(X , i) olyan függvény, amelymegadja X prefixszét az i-dik csúcsig. EkkorX és Y ugyanabban a prefix osztályban vanakkor és csak akkor, ha p(X , k− 1) = p(Y , k− 1). Azaz a két részfa prefixsze legfeljebbaz utolsó csúcsban térhet el egymástól [4]. Legyen P egy k − 1 méretu részfa prefixszeés jelölje ezt az osztályt [P ]k−1. Jelölje (x, i) pár azt, hogy az x címkéju csúcs, az i-dikpozícióban lévo csúcshoz csatlakozik a P prefixben.Ekkor ha (x, i) eleme ennek az osz-tálynak, akkor az (x, i) ∈ [P ] jelölést használjuk. Amennyiben egy új prefixszu részfátalkotunk, úgy hogy (x, i) elemet hozzáadjuk a P -hez, úgy azt Px-szel jelöljük.

Példa 3.2

A 3.4 ábrán látható, hogy az 5 pontú részfák közül, melyek azok amik a 4 hosszú pre-fixszükben egyeznek meg, tehát ugyanabban az osztályban vannak. Látszik, hogy az(x, 2) nem ilyen, mivel csak az utolsó (k−2) prefixszében egyezik meg az eredetivel, ígya lehetséges jelöltek, amelyek egy prefix ekvivalencia osztályban vannak, csak a 0, 1, 3

17

Page 18: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

3.4. ábra. Prefix ekvivalencia osztály

pozíciókban csatlakozhatnak a részfához.

3.3. Lemma. Legyen P egy részfa prefix osztálya és nr a legjobboldalibb levél csúcs P -ben, amelynek az érvényességi tartománya [r, r]. Legyen (x, i) ∈ [P ]. Ekkor azon csúcsokpozíciói, melyek az x címkéju csúcshoz csatlakozhatnak a P -ben az [i, r] érvényességi tar-tományba esnek, ahol ni az i-dik csúcs a P -ben és a hozzátartozó érvényességi tartományaz [i, r].

Azaz egy új csúcs, csak a legjobboldalibb csúcshoz csatlakozhat a prefixben, amelypozíciója az [i, r] érvényességi tartományba esik.

Az (x, i) párokon definiálunk egy rendezést, miszerint eloször az x címkék, majd azi pozíciók szerint rendezzük oket. Az (x, i) < (y, j) akkor és csak akkor, ha x < y vagyx = y és i < j, akkor ez egy teljes rendezés a [P ]k−1 osztályban.

Az osztályok kiterjesztése

3.4. Definíció. Legyen P egy prefix osztály, melynek kanonikus kódját jelöljeP és (x, i), (y, j)ennek az osztálynak két eleme. Jelölje Px azt az osztályt, amely tartalmazza az (x, i) ele-met. Definiáljuk az összekapcsolás (join) ⊗ operátort a két elem között, azaz a (x, i) ⊗(y, j) muvelet a következoket eredményezi, ha:

• i = j

– ha P 6= ∅, akkor adjuk hozzá (y, j) és (y, j + 1) elemet a [Px] osztályhoz.

– ha P = ∅, akkor adjuk hozzá (y, j) elemet a [Px] osztályhoz.

• i > j: adjuk hozzá (y, j) elemet a [Px] osztályhoz.

• i < j: nem tudunk jelöltet eloállítani.

3.5. Tétel. Legyen [P ]k−1 egy prefix osztály teljes rendezés szerint rendezett elemekkel,azaz (x, i) < (y, j) akkor és csak akkor, ha x < y vagy x = y és i < j. Ekkor az osztályokkiterjesztésének módszere [P ]k osztályú, csúcsaiban rendezett jelölteket generál.

18

Page 19: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

3.6. Tétel. Az osztályok kiterjesztésének módszere, az összes lehetséges részfa jelölteteloállítja helyesen és legfeljebb egyszer.

Példa 3.3

A 3.5 ábrán X és Y részfákból jelölteket generálunk az összekapcsolás muvelet segí-téségével. Eloször a (2, 1)⊗ (2, 1) összekapcsolást hajtjuk végre, ahol a 3.4 definíció elsoesete szerint 1 = 1, így hozzácsatoljuk az X részfához a (2, 1) és a (2, 2) csúcsot (lásd1.a)1.b)). Mind a kettonél bovítjük a P2-t a megfelelo elemekkel. A következo össze-kapcsolás a (2, 1) ⊗ (3, 0), melyre a második eset teljesül, miszerint 1 > 0, így az Xfához és P2-hez hozzáadjuk a (3, 0) elemet (lásd 2.a)). A (3, 0)⊗ (3, 0) esetében szinténegyenloség teljesül, azaz 0 = 0 tehát hozzáadjuk az Y fához a (3, 0) és a (3, 1) elemet,továbbá bovítjük a P3 halmazt is. A (3, 0)⊗(2, 1) muveletnél a tétel utolsó pontja teljesül,így ebbol nem tudunk jelölteket generálni. Tehát az 15 prefixszu jelöltekbol elo tudtunkállítani egy 152, illetve egy 15-13 prefixszu jelöltet.

3.5. ábra. Jelöltek generálása, az összekapcsolás muveletének alkalmazása [4]

3.3. A Treeminer algoritmus menete

Az algoritmus a gyakori részfákat a mélységi keresés segítségével kutatja fel. Annakérdekében, hogy a támogatottság kiszámításának muvelete gyors legyen, úgynevezett ér-vényességi tartomány listákban tárolja a fákat.

19

Page 20: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Érvényességi tartomány lista

Jelölje X , T egy részfáját, amelynek utolsó csúcsa xk. Jelölje L(X) az X részfa ér-vényességi tartomány listáját, amely (t,m, s) párokat tartalmaz, ahol t annak a fának azazonosítója, amely tartalmazza az X-et, m az X (k− 1) hosszú prefixszének illeszkedésicímkéje, valamint s az xk érvényességi tartománya. Ekkor a lista elemszáma, egyenlo arészfa súlyozott támogatottságával, ha a minimális támogatottsági küszöböt eléri.

Megjegyzés Az egyelemu részfáknak üres a prefixszük, mert nincs nekik még illeszkedé-si címkéjük.

Példa 3.4

A 3.6 ábrán a fák tárolására láthatunk példát. Az algoritmus horizontális és vertikálistárolást alkalmaz. Az 1. táblázat a horizontális tárolást mutatja be, ahol az elso attribútuma fa ID-ja a második, pedig annak kanonikus kódja. A 2. táblázat az egyelemu fák verti-kális tárolásra mutat példát. Azaz az érvényességi tartomány listára, ahol a fejlécben azegy elemu fák címkéi találhatóak, azon belül a felsorolásban pedig olyan párok, melyekelso eleme annak a fának az azonosítója, amelyben az egyelemu fa megtalálható, a másikeleme pedig, a hozzá tartozó érvényességi tartomány. Mivel az egyelemu fáknak nincsenilleszkedési címkéje, így csak a fák ID-ját és az érvényességi tartományokat tartalmazzáka listák, az egyelemu fák esetében.

3.6. ábra. Példa a horizontális és vertikális tárolásra

1- és 2-elemu gyakori részfák meghatározása

20

Page 21: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Az F1-ek meghatározásánál a fák horizontális tárolását alkalmazza, azaz (faID, kano-nikus kód ). Az 1 elemu fákat, egy 1-dimenziós tömbben számlálja meg, ahol az indexjelöli a fát, a tömb elemei pedig a számlálókat tartalmazzák, akárcsak, mint az AprioriGYEK algoritmusnál. Ezután kiválogatja közülük a minsupp segítségével a gyakoriakatés létrehozza az F1-et. Ekkor F1 elemeinek prefixsze üres, azaz [P0] = ∅, ezeket jelölje:{(i,−1), i ∈ F1}. Ennek a lépésnek a lépésszáma O(n), ahol n = |T |.

A kételemu gyakori részfák meghatározása a 3.4 definíció szerint történik, ahol a jelöl-tek osztálya [P ]1 = [i] (i ∈ F1), amely csak (j, 0) alakú elemeket tartalmazhat, ahol j > i.Ezek leszámlálására egy 2-dimenziós tömböt alkalmazunk, melynek mérete F1 × F1 ésaz [i][j]-dik elem az ij − 1 kanonikus kódú elem számlálóját tartalmazza. Miután vég-zett az algoritmus a leszámlálással, akkor a gyakoriak kiválogatása közben megalkotja F2

érvényességi tartomány listáját is. A teljes lépés muveletszáma O(n2).

A kettonél nagyobb elemszámú részfák meghatározása a jelöltek eloállításánál azérvényességi tartomány listák összekapcsolásának muveletével hajtható végre, jelölése:L(x) ∩⊗ L(y).

Legyen két részfa érvényességi tartománya az sx = [lx, ux] és az sy = [ly, uy] a [P ]osztályban. Ekkor azt mondjuk, hogy sx szigorúan kisebb, mint az sy, azaz sx < sy, akkorés csak akkor, ha ux < ly. Továbbá sx tartalmazza az sy-t, jelölésben sy ⊂ sx, akkor éscsak akkor, ha lx ≤ ly és uy ≤ ux. Így két eset állhat fenn. Vagy y leszármazottja azx-nek, vagy x és y beágyazott testvérek (embedded sibilings), azaz x-nek és y-nak vanközös osük.

A 3.4 definíció szerint az (x, i) ⊗ (y, j) muvelet két elemmel bovítheti a Px osztályt,vagy (y, j + 1)-gyel, vagy (y, j)-vel.

• Ha (y, j + 1)-et adjuk hozzá a [Px] osztályhoz, akkor a tétel szerint szükségsze-ru, hogy i = j legyen és hogy y az x gyereke. Ekkor ezt a (Pxy) kanonikuskóddal tudjuk reprezentálni, ahol Px az x prefix osztály kódja. Ahhoz, hogy leel-lenorizzük, hogy ez a részfa elofordul-e a bemeneti T fában a t azonosítóval, úgya (ty, sy,my) ∈ L(y)-ra és a (tx, sx,mx) ∈ L(x)-re teljesülniük kell a következok-nek:

1) ty = tx, azaz mind a két hármas elofordul ugyanabban a t azonosítójú fában.

2) my = mx, x és y prefixsze megegyezik az m illeszkedési címkéjével.

3) sy ⊂ sx, azaz x tartalmazza az y-t.

Ha a fentiek teljesülnek a két hármasra, úgy találtunk egy jelöltet, ahol x-nek le-származottja az y a T fában és bovíthetjük aP prefixet azmy illeszkedési címkével,így ezt az új prefixet jelöljük Px-szel és hozzáadjuk a (ty, sy, {my ∪ lx}) hármast az(y, j + 1) érvényességi tartomány listájához a [Px]-ben.

• Ha a (y, j) elemet adjuk hozzá a [Px]-hez, akkor az a helyzet áll fenn, hogy y ésx beágyazott testvérek a P prefixben és sx < sy. Az elem hozzáadása után annakkanonikus kódja (Px− 1...− 1y) alakú lesz, ahol a−1-ek száma függ, a j-bol x-bemeno út hosszától. Ekkor (y, j) elofordul a T fában a t azonosítóval, ha teljesülneka (ty, sy,my) ∈ L(y)-ra és a (tx, sx,mx) ∈ L(x)-re a következok:

21

Page 22: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

1) ty = tx, azaz mind a két hármas elofordul ugyanabban a t azonosítójú fában.

2) my = mx, x és y prefixsze megegyezik az m illeszkedési címkéjével.

3) sx < sy, azaz x-et elobb láttuk meg a mélységi bejárás során, mint az y-t ésnincs átfedés a két csúcs érvényességi tartományán.

Amennyiben a fentiek igazak a két hármas párra úgy (y, j) érvényességi tartománylistájához, hozzáadjuk a (ty, sy, {my ∪ lx}) hármast a [Px]-ben.

A fentieket alkalmazva az Fk-k meghatározása, ahol (k ≥ 2) a következoképpen történik.Bemenetként adott egy [P ] osztály, ami az elemeket és a hozzájuk tartozó érvényességitartomány listákat tartalmazza. Ezután leellenorzi, hogy a lista csak gyakori elemeket tar-talmazzon, majd összekapcsolja az összes elem érvényességi tartomány listáját, beleértveaz önmagával vett összekapcsolását is az elemeknek.

Az (x, i) ⊗ (y, j) összekapcsolás eredménye két jelölt lehet a tétel szerint, amiketaz egyszeruség kedvéért egy R halmazban tárol az algoritmus és L(R) jelöli ezeknekaz érvényességi tartomány listáját. Ha egy részfát gyakorinak talál egy szinten, akkor akövetkezo szint megegyezik ezen elemek osztályával. Az eljárás a rekurziót addig ismé-telgeti, amíg elo tud állítani jelölteket.

Ha [P ] n számú elemet tartalmaz, akkor a lépésszáma az algoritmusnak O(ln2), aholl az érvényességi tartományok listás összekapcsolásának muveletigénye. Valamint a me-mória használata is kicsi, mert csak a jelenlegi [P ] osztályt és az új jelöltek [Px] osztályáttárolja el.

A Treeminer algoritmus pszeudokódja

TreeMiner (D,minsupp):F1 = {gyakori 1-részfák}F2 = { gyakori 2-részfák a [P ]1 osztályon}for all [P ]1 ∈ E do gyakori_részfák_eloállítása([P ]1);

gyakori_részfák_eloállítása([P ]):for each elem (x, i) ∈ [P ] do

Px = ∅;for each elem (y, j) ∈ [P ] do

R = {(x, i)⊗ (y, j)};L(R) = {L(x) ∩⊗ L(y)};if for any R ∈ R, R gyakori then[Px] = [Px] ∪ {R};

gyakori_részfák_eloállítása([Px]);

Példa 3.5

A 3.7 ábrán látható három különbözo fa T0, T1, T2 azonosítóval, amelyekben keressük a

22

Page 23: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

3.7. ábra. 1-elemu jelöltek eloállítása és érvényességi tartomány listájuk

gyakori részfákat. Az ott látható táblázat, tartalmazza az 1-elemu fák érvényességi tarto-mány listáját. Legyen a minsupp = 100%, azaz akkor tekintünk gyakorinak egy részfát,ha az mind a három bementi fában elofordul.

A 3. táblázatban látszik, hogy a (2,−1) és (4,−1) elemek nem gyakoriak, így az L(2)és L(4)listáját a továbbiakban nem vesszük figyelembe. Ezután következik a két elemurészfák eloállítása, ahol az érvényességi listákat fogjuk összekapcsolni. Mivel itt a gya-koriak prefixsze üres és az elemek, amikkel bovíthetjük a gyakoriakat (1,−1), (3,−1),(5,−1). Így a 3.4 definíció elso esete áll fent, azon belül is az elso állítás, miszerint agyakori elemekhez az (x, i) ⊗ (y, j) összekapcsolással, csak (y, j + 1) alakú elemeketadhatjuk hozzá. Továbbá legyen sx az x csúcs, sy az y csúcs érvényességi tartománya,akkor sy ⊂ sx-nek teljesülnie kell, azaz x érvényességi tartománya tartalmazza az y érvé-nyességi tartományát.

Tehát legyen az érvényességi listák összekapcsolása a következo:L(x) ∩⊗ L(y), ahol x, y = 1, 3, 5, ekkor:

• L(1) ∩⊗ L(1):

– t = 0, s1 = [0, 3] - mivel nincs s2 így a T0 fa biztosan nem tartalmaz ilyenjelöltet.

– t = 1, s1 = [0, 5], s2 = [2, 3] ⇒ s2 ⊂ s1 így hozzáadhatjuk az (1,−1) elem-hez az (1, 0) elemet, így a (1, 0, [2, 3]) hármast hozzáadjuk az új érvényességitartomány listához.

– t = 2, s1 = [0, 7], s2 = [1, 3]⇒ s2 ⊂ s1 → (2, 0, [1, 3]).

• L(3) ∩⊗ L(3):

23

Page 24: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

– t = 0, s1 = [2, 2] - mivel nincs s2 nem tudunk jelöltet eloállítani.

– t = 1, s1 = [3, 3] - mivel nincs s2 nem tudunk jelöltet eloállítani.

– t = 2, s1 = [2, 3], s2 = [4, 7]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

• L(5) ∩⊗ L(5):

– t = 0, s1 = [3, 3] - mivel nincs s2 nem tudunk jelöltet eloállítani.

– t = 1, s1 = [4, 4], s2 = [5, 5]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

– t = 2, s1 = [6, 6] - mivel nincs s2 nem tudunk jelöltet eloállítani.

• L(1) ∩⊗ L(3):

– t = 0, s1 = [0, 3], s2 = [2, 2]⇒ s2 ⊂ s1 → (0, 0, [2, 2]).

– t = 1, s1 = [0, 5], s2 = [3, 3]⇒ s2 ⊂ s1 → (1, 0, [3, 3]).

– t = 1, s′1 = [2, 3], s′2 = [3, 3]⇒ s′2 ⊂ s′1 → (1, 2, [3, 3]).

– t = 2, s1 = [0, 7], s2 = [2, 3]⇒ s2 ⊂ s1 → (2, 0, [2, 3]).

– t = 2, s′1 = [0, 7], s′2 = [4, 7]⇒ s′2 ⊂ s′1 → (2, 0, [4, 7]).

– t = 2, s1” = [1, 3], s2” = [2, 3]⇒ s2” ⊂ s1”→ (2, 1, [2, 3]).

• L(1) ∩⊗ L(5):

– t = 0, s1 = [0, 3], s2 = [3, 3]⇒ s2 ⊂ s1 → (0, 0, [3, 3]).

– t = 1, s1 = [0, 5], s2 = [4, 4]⇒ s2 ⊂ s1 → (1, 0, [4, 4]).

– t = 1, s′1 = [0, 5], s′2 = [5, 5]⇒ s′2 ⊂ s′1 → (1, 0, [5, 5]).

– t = 2, s1 = [0, 7], s2 = [6, 6]⇒ s2 ⊂ s1 → (2, 0, [6, 6]).

• L(3) ∩⊗ L(1):

– t = 0, s1 = [2, 2], s2 = [0, 3]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

– t = 1, s1 = [3, 3], s2 = [0, 5]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

– t = 2 esetében nem tudunk jelöltet eloállítani, mert az L(3) egyik érvényes-ségi tartománya sem tartalmazza L(1) érvényességi tartományait.

• L(3) ∩⊗ L(5):

– t = 0, s1 = [2, 2], s2 = [3, 3]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

– t = 1, s1 = [3, 3], s2 = [4, 4]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

– t = 1, s1 = [3, 3], s2 = [5, 5]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

– t = 2, s1 = [4, 7], s2 = [6, 6] ⇒ s2 ⊂ s1 → (2, 4, [6, 6]) nem tudunk jelölteteloállítani.

• L(5) ∩⊗ L(1):

– t = 0, s1 = [3, 3], s2 = [0, 3]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

24

Page 25: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

– t = 1 esetében nem tudunk jelöltet eloállítani, mert az L(5) egyik érvényes-ségi tartománya sem tartalmazza L(1) érvényességi tartományait.

– t = 2 esetében nem tudunk jelöltet eloállítani, mert az L(5) egyik érvényes-ségi tartománya sem tartalmazza L(1) érvényességi tartományait.

• L(5) ∩⊗ L(3):

– t = 0, s1 = [3, 3], s2 = [2, 2]⇒ s2 6⊂ s1 nem tudunk jelöltet eloállítani.

– t = 1 esetében nem tudunk jelöltet eloállítani, mert az L(5) egyik érvényes-ségi tartománya sem tartalmazza L(1) érvényességi tartományait.

– t = 2 esetében nem tudunk jelöltet eloállítani, mert az L(5) egyik érvényes-ségi tartománya sem tartalmazza L(1) érvényességi tartományait.

A fenti jelöltek alapján, két jelöltet nyilváníthatunk gyakorinak, L(1) ∩⊗ L(3) és azL(1)∩⊗L(5) eredményeképp kapott részfákat. A két részfa az 3.8 ábrán látható, valaminta hozzájuk tartozó érvényességi tartomány listát a 4. táblázat tartalmazza. Látható hogymind a két részfának 1 a támogatottsága, valamint az elsonek 6, a másodiknak, pedig 4 asúlyozott támogatottsága.

3.8. ábra. 2-elemu gyakori részfák és érvényességi tartomány listájuk

Ezután következik a háromelemu jelöltek eloállítása, ahol a prefix 1 hosszú és azelemek pedig a (3, 0) és a (5, 0). Így a következo összekapcsolások generálhatnak újháromelemu jelölteket [9]:

• L(3, 0)⊗ L(3, 0):

– t = 0,m = 0, s1 = [2, 2] - mivel nincs s2 nem tudunk jelöltet eloállítani.

25

Page 26: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

– t = 1,m1 = 1,m2 = 2⇒ m1 6= m2 - nem tudunk jelöltet eloállítani.– t = 2,m1 = m2 = 0, s1 = [2, 3], s2 = [4, 7]⇒ s1 < s2 → (2, 02, [4, 7])

• L(3, 0)⊗ L(5, 0):

– t = 0,m1 = m2 = 0, s1 = [2, 2], s2 = [3, 3]⇒ s1 < s2 → (0, 02, [3, 3])

– t = 1,m1 = m2 = 0, s1 = [3, 3], s2 = [4, 4]⇒ s1 < s2 → (1, 03, [4, 4])

– t = 1,m1 = m2 = 0, s′1 = [3, 3], s′2 = [5, 5]⇒ s′1 < s′2 → (1, 03, [5, 5])

– t = 2,m1 = m2 = 0, s1 = [2, 3], s2 = [6, 6]⇒ s1 < s2 → (2, 02, [6, 6])

– t = 2,m1 = m2 = 0, s′1 = [4, 7], s′2 = [6, 6]⇒ s′2 ⊂ s′1 → (2, 04, [6, 6]) (itt afentiekkel ellentétben nem az (5, 0) elemet, hanem az (5, 1) elemet csatoljukhozzá a részfához)

• L(5, 0)⊗ L(5, 0):

– t = 0,m = 0, s1 = [3, 3] - mivel nincs s2 nem tudunk jelöltet eloállítani.– t = 1,m1 = m2 = 0, s1 = [4, 4], s2 = [5, 5] ⇒ s1 < s2 → (1, 04, [5, 5])

eloállítani.– t = 2, s1 = [6, 6] - mivel nincs s2 nem tudunk jelöltet eloállítani.

• L(5, 0)⊗ L(3, 0):

– t = 0,m = 0, s1 = [3, 3], s2 = [2, 2] ⇒ s1 ≮ s2 és s1 6⊂ s2 - nem tudunkjelöltet eloállítani.

– t = 1 esetén L(5)-nek nincs olyan érvényességi tartománya, amely vagy tar-talmazná, vagy kisebb lenne, mit az L(3) érvényességi tartományai.

– t = 2 esetén L(5)-nek nincs olyan érvényességi tartománya, amely vagy tar-talmazná, vagy kisebb lenne, mit az L(3) érvényességi tartományai.

A fentiek alapján látható, hogy csak aL(3, 0)⊗L(5, 0) összekapcsolás eredményezett,olyan részfát, amelyet gyakorinak tekintünk, azaz mind a három bementi fában elofordul.

Még egy utolsó szintje van az algoritmusnak, ahol a prefix 2 hosszú, illetve a hoz-záadható elem az (5, 0). Mivel a L(5, 0) ⊗ L(5, 0) összekapcsolással, csak egy jelöltettudunk eloállítani, ahol t1 = t2 = 1,m1 = m2 = 03, s1 = [4, 4], s2 = [5, 5] ⇒ s1 <s2 → (1, 034, [5, 5]) lesz a listabeli eleme, de mivel ez csak egy fában fordul elo nem le-het gyakori. Így az egyetlen gyakori részfa a 3.9 ábrán látható az érvényességi listájával,amibol látszik, hogy a támogatottsága 1, valamint a súlyozott támogatottsága 4.

Összegzés

A Treeminer algoritmus a bemeneti gyökeres és rendezett fákon, képes megtalálni a gya-kori beágyazott részfákat, a jelölt eloállítás módszerével, ahol minden jelöltet legfeljebb,csak egyszer állít elo. Továbbá a fákat egy úgynevezett kóddal látja el és így tárolja azokataz adatbázisban, majd ezekbol generál egy érvényességi tartomány listát és a mélységi be-járás alkalmazásával ezen listákat összekapcsolja és legenerálja az eggyel nagyobb számújelölteket és azok érvényességi tartomány listáját, majd meghatározza azok támogatottsá-gát.

26

Page 27: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

3.9. ábra. A 3-elemu gyakori részfák és érvényességi tartomány listájuk

27

Page 28: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

4. fejezet

AGM algoritmus

Az apriori algoritmuson alapuló gyakori részgráfokat kereso algoritmus, a továbbiakbanAGM (Apriori-based Graph Mining) a gráfokat szomszédsági mátrixokban reprezentál-ja és ezen mátrixokon definiál egy kanonikus kódot [6]. Az algoritmus erossége, hogyirányított és irányítatlan, valamint címkézett gráfokban való keresésre is alkalmas, ígykönnyedén használható a való életben eloforduló hálózatokban való keresésre.

4.1. Alapfogalmak

Az él és csúcs címkézett gráfokat a következoképpen reprezentálhatjuk szomszédságimátrixokban. LegyenG = (V (G), E(G), L(V (G)), L(E(G))) olyan címkézett gráf, aholL(V (G)) a csúcsok címkéjének, L(E(G)) pedig az élek címkéjének a halmaza.

Megjegyzés a gráf mérete megegyezik a csúcsainak számával.

4.1. Definíció. Adott egy G = (V (G), E(G), L(V (G)), L(E(G))) gráf, ahol az X szom-szédsági mátrix (i, j)-dik eleme az xij , ekkor

xij =

{num(l) ,ha e = (vi, vj) ∈ E(G) és l = l(e)0 ,ha (vi, vj) /∈ E(G)

(4.1)

ahol num(l) a címkét jelöli, egy egész számnak megfeleltetve. Ezen felül a mátrix i-diksorához (oszlopához) hozzárendelünk egy num(l) számot, ahol vi ∈ V (G) és l = l(vi).

4.2. Definíció. Egy G = (V (G), E(G), L(V (G)), L(E(G))) gráf egy tranzakció és jelöl-je G ezen tranzakciók egy halmazát, ahol G = {G1, G2, ..., Gn}.

A továbbiakban egy k méretu gráf szomszédsági mátrixát jelölje Xk, magát a gráfotpedig G(Xk).

4.3. Definíció. A G(Xk) gráf Xk szomszédsági mátrixának csúcsai rendezettek, hanum(l(vi)) ≤ num(l(vi+1)) (∀i = 1, ..., k − 1).

28

Page 29: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

4.1. ábra. Példa a szomszédsági mátrix sorainak (oszlopainak) rendezésére

Példa 4.1

A 4.3 definícióra látható példa a 4.1 ábrán, ahol az a) mátrix egy jó rendezettséget repre-zentál a fenti definíció értelmében, a b) mátrix pedig egy helytelent.

4.4. Definíció. Egy írányítatlan gráf csúcsaiban rendezett Xk szomszédsági mátrixánakkódját jelölje code(Xk), ahol

Xk =

x1,1 x1,2 . . . x1,kx2,1 x2,2 . . . x2,kx3,1 x3,2 . . . x3,k

...... . . . ...

xk,1 xk,2 . . . xk,k

Ekkor irányítatlan gráf esetében az Xk mátrix kódja:

code(Xk) = x1,1x1,2x2,2x1,3x2,3x3,3x1,4 . . . xk−1,kxk,k (4.2)

Azaz a felso háromszög mátrix elemei oszloponként felsorolva.

Irányított gráf esetében az Xk mátrix kódja:

code(Xk) = x1,1x1,2x2,1x2,2x1,3x3,1x2,3x3,2 . . . xk−1,kxk,k−1xk,k (4.3)

Azaz a bal felso elemtol indulva háromszögekben sorolja fel az elemeket.

4.5. Definíció. Adott egy G = (V (G), E(G), L(V (G)), L(E(G))) gráf, akkorGs = (V (Gs), E(Gs), L(V (Gs)), L(E(Gs))) részgráfja G-nek, ha teljesülnek rá a kö-vetkezok:

• V (Gs) ⊂ V (G), E(Gs) ⊂ E(G)

• ∀u, v ∈ V (Gs), (u, v) ∈ E(Gs)⇔ (u, v) ∈ E(G)

Azaz megegyezik a részgráf hagyományos definíciójával (lásd 2. fejezet).

29

Page 30: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

4.2. Jelölt eloállítás

Az AGM az Apriori GYEK-hez hasonlóan eloször az 1 elemu gyakori gráfokat állítja elo.Az i-dik lépésben az (i − 1) elemu gyakori részfgráfok segíségével eloállítja a i elemujelölteket, majd ellenorzi, hogy azok gyakoriak-e. Egy gráf gyakoriságának eldöntéséhezszüksége van a gráf támogatottságának meghatározására. Ez a támogatottság megegyezika 2. fejezetben kimondott támogatottsággal, azaz

4.6. Definíció. Adott egy G gráf és annak egy G′ gráfja. Ekkor G′ támogatottsága:

sup(G′) =azon G tranzakciók száma, ahol G′ ⊂ G ∈ G

az összes G ∈ G tranzakciók száma. (4.4)

Amennyiben a sup(G′) nem kisebb, mint a minimális támogatottsági küszöb (lásd.1.3.) úgy azt mondjuk, hogy G′ gyakori részgráf.

A jelöltek generálása a következoképpen zajlik. Legyen Xk és Yk két a csúcsaibanrendezett szomszédsági mátrixa a G(Xk) és G(Yk) gyakori k méretu feszített részgráfok-nak. Ha Xk és Yk elemei megegyeznek, kivéve a k-dik sort és k-dik oszlopot, úgy Xk-tés Yk-t összekapcsolhatjuk (join) és megalkotjuk a Zk+1 mátrixot.

Xk =

(Xk−1 x1xT2 xk,k

), Yk =

(Yk−1 y1yT2 yk,k

), Zk+1 =

Xk−1 x1 y1xT2 xk,k zk,k+1

yT2 zk+1,k yk,k

(4.5)

ahol az Xk−1 egy k − 1 méretu gráf szomszédsági mátrixa, xi és yi (i = 1, 2)(k − 1) × 1-es oszlopvektorok. A Zk+1 mátrixban található zk,k+1 és zk+1,k elemeknek,nincs meghatározva az Xk és Yk mátrixok által az értékük, így azok bármilyen num(l)értéket felvehetnek, beleértve a 0-t is. Abban az esetben, ha a gráf irányítatlan, úgyzk,k+1 = zk+1,k és az értékük 1, ha megy közöttük él, ha nem akkor 0. Ha a gráf irá-nyított, úgy 4 eset fordulhat elo.

1) A k-dik csúcsból él megy a k + 1-dik csúcsba.

2) A k + 1-dik csúcsból él megy a k-dik csúcsba.

3) Két irányú él van a k-dik és a k + 1-dik csúcs között.

4) Nincs él közöttük [7].

Ebben az esetben több különbözo mátrixot generál az összekapcsolás muvelete. Mindenesetben Xk-t elso mátrixnak (first matrix), Yk-t pedig második mátrixnak (second matrix)nevezzük.

Formálisan a (4.5) összekapcsolás, azaz ha a következo feltételek teljesülnek, úgy azXk, Yk, Zk+1 mátrixok megtartják a csúcsaikban a rendezettséget és elvégezheto rajtukösszekapcsolás muvelete, mely megtartja ezt a rendezettséget.

30

Page 31: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

l(vi|vi ∈ V (G(Xk))) = l(vi|vi ∈ V (G(Yk))) = l(vi|vi ∈ V (G(Zk+1)))

l(vi|vi ∈ V (G(Xk))) ≤ l(vi+1|vi+1 ∈ V (G(Xk)))

l(vk|vk ∈ V (G(Xk))) = l(vk|vk ∈ V (G(Zk+1)))

l(vk|vk ∈ V (G(Yk))) = l(vk+1|vk+1 ∈ V (G(Zk+1)))

l(vk|vk ∈ V (G(Xk))) ≤ l(vk|vk ∈ V (G(Yk)))

(i = 1, 2, ..., k − 1)

(4.6)

Továbbá két szomszédsági mátrixot csak akkor kapcsolhatunk össze, ha teljesül rájuk,hogy:

xk,k < yk,k. (4.7)

(code(elso mátrix) ≤ code(második mátrix)

Példa 4.2

A 4.2 ábra a) és b) két négy csúcsú irányítatlan, csúcsaiban címkézett gráfjához tarto-

4.2. ábra. Példa két gráf összekapcsolására és annak eredményére

zó szomszédsági mátrixok a következok, rendre jelölje oket X4 és Y4. Az X4 és Y4 mátrix1. sora az 1-es, 2. sora a 2-es 3. sora a 3-as, 4. sora szintén a 3-as címkéhez tartozik,ugyanez igaz az oszlopokra is.

X4 =

0 0 1 00 0 0 11 0 0 00 1 0 0

, Y4 =

0 0 1 10 0 0 11 0 0 01 1 0 0

Ekkor a két mátrix kódja a következo:code(X4) = 0001000100code(Y4) = 0001001100Látszik, hogy X4 és Y4 a bal felso 3× 3-as részmátrixában megegyezik. Ekkor ellenoriz-zük, hogy a címkéik sorrendje megfelelo-e, valamint a (4.8)-nak is teljesülnie kell, azazx4,3 ≤ y4,3. Így összekapcsolhatjuk a két mátrixot és megalkotjuk a Z5 mátrixot.

31

Page 32: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Z5 =

0 0 1 0 10 0 0 1 11 0 0 0 00 1 0 0 z4,51 1 0 z5,4 0

A címkék a Z5 mátrix soraiban a 4. sorig megegyezik az X4 és Y4-ben definiálttal, az

5. sorhoz tartozó címke pedig szintén a 3-as, mivel az az Y4 4. sorának és 4. oszlopánakfelel meg, ami szintén a 3-as címkéju csúcsot reprezentálja. A 4.2 ábra c) gráfja mutatjaazt, hogy a Z5 mátrix (5, 4), illetve (4, 5) eleme 0 vagy 1, azaz vagy megy él a két csúcsközött vagy nem [7].

Normalizálás

Az apriori-elven muködo algoritmusok a k + 1 méretu gyakori elemhalmazokat, úgy ál-lítják elo, hogy megbizonyosodnak arról, hogy azok minden k méretu részhalmazuk isgyakori. Nincs ez másképp az AGM algoritmusnál sem, mert akkor lesz egy k + 1 mé-retu részgráf jelölt, jelölje ezt G′, ha annak minden k méretu részgráfja gyakori. Ezt úgyellenorzi le, hogy kitörli a vi (1 ≤ i ≤ k + 1) csúcsot és annak minden élét a G′ gráfbólés ha az így keletkezett összes k méretu részgráf gyakori, akkor G′ részgráf jelölt lesz.

A fentebb bemutatott jelölt generálással kapott Zk+1 mátrixot normál formájúnak(normal form) nevezzük. Amennyiben egy szomszédsági mátrixot, úgy kapunk, hogytöröljük annak i-dik csúcsát vi-t, úgy azt nem normál formájúnak (non-normal form)nevezzük. Az algoritmus csak olyan szomszédsági mátrixokkal végzi a számításait, ame-lyek normál formájúak, így azokat, melyek nem, áttranszformálja normál formájúra. Eztaz eljárást nevezzük normalizálásnak.

Legyen Xk egy nem normál formájú szomszédsági mátrix. Az Xk-t transzformáljukát normál formájúra, úgy hogy alulról felfelé építjük meg a mátrix struktúráját.

1. Legyen a vi ∈ G(Xk), (i = 1, ..., k) csúcsoknak megfeleltetve egy-egy 1 × 1-esszomszédsági mátrix. Ekkor ha egy vi, vj ∈ G(Xk) csúcspár mátrixaira teljesül a(4.6) és (4.7), úgy végezzük el rajtuk az összekapcsolás muveletét.

Így (vi, vj) és (vj, vi) elemek értékét az Xk-ból helyettesítik a z1,2 és z2,1 nem dia-gonális elemek, amelyekbol rekonstruálható a G(Xk) gráf.

2. Az 1. pont végeredményeként kapott 2× 2-es mátrixokra megismételjük az össze-kapcsolás muveletét, amennyiben kielégítik a (4.6) és (4.7) feltételeket, így meg-kapjuk a z2,3 és z3,2 elemeket.

- Ezt a folyamatot addig ismételgetjük, míg meg nem kapjuk a k×k-s mátrixot, azazX ′k-t, ami egyben Xk normál formája is lesz és a G(Xk) struktúráját megfeleloenreprezentálja.

A normalizálás folyamata közbenG(Xk) összes részgráfjának normál formája kinyer-heto, így ezt a tulajdonságát kihasználva a normalizálásnak, számítjuk ki a gyakoriságo-kat. A normalizálás lényegében az Xk mátrix sorainak és oszlopainak egy permutáció-jából áll. Azaz X ′k = (Tk)

TXkTk, ahol Tk a transzformáció mátrix és X ′k az Xk mátrix

32

Page 33: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

4.3. ábra. Példa mátrix normál forma transzformációjára

normalizáltját jelöli.

Példa 4.3

A következo példában egy szomszédsági mátrix normál formájúra való transzformálásalesz levezetve egy csúcsra.

A 4.3 ábrán látható 0.szinten lévo X4 mátrixot transzformáljuk. Az 1. szinten lege-neráljuk a csúcsaiból képzett 1 × 1-es mátrixokat. Ezután mivel mindegyikre teljesül ahárom feltétel az összekapcsoláshoz így létrehozzuk a 2. szinten lévo 2×2-es mátrixokat,melyek kódjai alattuk találhatóak.

Ezután a 2. szinten lévo elso és második mátrixot összekapcsoljuk, mivel az elsomátrix kódja kisebb a másodiknál, így o lesz az "elso mátrix". Ebbol az összekapcsolásbólkapjuk a 3. szinten lévo elso mátrixot. Valamint a 2. szinten lévo harmadik mátrixotösszekapcsoljuk a másodikkal, mivelcode(harmadik mátrix) = 000 ≤ code(második mátrix) = 010, így létrehozzuk a 3.

33

Page 34: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

szinten lévo második mátrixot.

Ezután következik a 3. szinten lévo mátrixok összekapcsolása, amennyiben kielégítika három feltételt. A bal felso 2 × 2-es mátrixukban megegyeznek, valamint a címkéikreis teljesülnek a feltételek és a második mátrix kódja valóban kisebb mint az elsoé, így olesz az "elso" mátrix. Ennek eredménye a 4. szinten lévo mátrix, amely már az eredetiX4 mátrix egyik normál formája [7].

Kanonikus forma

Miután az összes részgráf jelöltet megkaptuk, meg kell határozni azok támogatottságát,ahhoz hogy eldöntsük, hogy melyek gyakoriak és melyek nem. Mivel egy mátrixnaktöbb normál formája is lehet, ezért nem lehet oket egyértelmuen megkülönböztetni anél-kül, hogy ugyanazt a részgráfot ne számolnánk meg többször. Ezen probléma megoldásavégett vezetjük be az úgynevezett kanonikus formáját egy gráf szomszédsági mátrixának.

4.7. Definíció. Adott egy N (Xk) halmaz, amely a G(Xk) gráf összes normál formájúszomszédsági mátrixát tartalmazza. Ekkor jelölje Xc,k azt az Xk normál formájú szom-szédsági mátrixot, amelynek kódja a legkisebb a többi közül, azaz

Xc,k = argminXk∈N (G(Xk)) code(Xk).

Megjegyzés: Xk egy permutációjaként megkapható az Xck kanonikus formájú mát-rix, azaz Xc = W T

k XkWk, ahol wi,j a Wk mátrix egy eleme, amely 1, ha az i-dik csúcsotcseréljük meg a j-dik csúccsal az Xk mátrixban, különben 0.

Tegyük fel, hogy az összes k − 1 méretu gyakori részgráf kanonikus formájú szom-szédsági mátrixa megkapható az Xk−1 mátrix transzformálásával, ahol a transzformációmátrixot jelölje Sk−1.Töröljük a G(Xk) gráf m-dik csúcsát (1 ≤ m ≤ k), majd ennekszomszédsági mátrixát jelölje Xm

k−1. Legyen ennek az Xmk−1 szomszédsági mátrixnak a

transzformált normál formája, amelyet a fenti normalizálással kapunk X ′mk−1. Ekkor is-

mert lesz a hozzá tartozó Tmk−1 transzformáció mátrix is. Jelölje Sm

k−1 azt a transzformációmátrixot, amellyel az X ′m

k−1 normál formájú mátrix kanonikus formájának mátrixát meg-kaphatjuk, így Xc,k−1 = (Tm

k−1Smk−1)

TXmk−1(T

mk−1S

mk−1). Azaz Xk kanonikus normálfor-

mája megkapható az Smk és a Tm

k transzformáció mátrixok segítségével, amelyeket pedigaz Sm

k−1 és Tmk−1 transzformáció mátrixokból számíthatunk ki. Azaz,

sij =

smi,j ,ha 0 ≤ i ≤ k − 1 és 0 ≤ j ≤ k − 1,1 ,ha i = k és j = k,0 különben

(4.8)

tij =

tmi,j ,ha i < m és j 6= k,tmi−1,j ,ha i > m és j 6= k,1 ,ha i = m és j = k,0 különben.

(4.9)

Ahol si,j az Smk , az smi,j az Sm

k−1, a ti,j a Tmk és a tmi,j pedig a Tm

k−1 mátrix egy eleme.

34

Page 35: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Megjegyzés: A fenti állítás bizonyítása megtalálható Akihiro Inokuchi diplomamunkájá-ban [8].

Példa 4.4

Legyen az X5 gráf olyan 5 csúcsú gráf, amely se nem irányított, se nem címkézett, azon-ban normál formájú és a kódja: code(X5)=00000010111010.

X5 =

0 0 0 1 10 0 0 0 10 0 0 1 01 0 1 0 11 1 0 1 0

Ekkor azon mátrixok, melyeket X5 1-1 sorának és oszlopának törlésével kapunk, legye-nek:

X14 =

0 0 0 10 0 1 00 1 0 11 0 1 0

, X24 =

0 0 1 10 0 1 01 1 0 11 0 1 0

, X34 =

0 0 1 10 0 0 11 0 0 11 1 1 0

,

X44 =

0 0 0 10 0 0 10 0 0 01 1 0 0

, X54 =

0 0 0 10 0 0 00 0 0 11 0 1 0

.

Ekkor az X14 mátrix normál formában van, mert a sorok és oszlopok nem permutálódtak

az eredetiX5 mátrixhoz képest, így ennek a T ′14 transzformáció mátrixa a 4×4-es egység-

mátrix, valamint az S14 transzformáció mátrixa is egy 4×4-es egységmátrix. AzazX1

4 ka-nonikus formában lévo szomszédsági mátrix, melynek kódja: code(X1

4 ) = 0000101010.Ekkor a (4.9) és a (4.10) szerint:

(T 15S

15)

TX5(T15S

15) =

0 0 0 1 00 0 1 0 00 1 0 1 11 0 1 0 10 0 1 1 0

Valamint a hozzá tartozó kód: m = 1 : 000010101000110.A fenti folyamatot végrehajtva rendre az m = 2, 3, 4, 5-re a következo kódokat kapjuk:m = 2 : 000010111000100m = 3 : 000010111000100m = 4 : 000000011010110m = 5 : 000000011011010,

35

Page 36: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

melyekbol jól látszik, hogy a 4-dik sor és oszlop törlésével kapott mátrixból származtatott(T 1

5S15)

TX5(T15S

15) mátrix lesz a kanonikus forma szomszédsági mátrixa, más szóval az a

mátrix amelynek minimális a kódja.

4.3. Az AGM algoritmus menete

Támogatottság meghatározása

A gyakori részgráfok támogatottságának meghatározásához át kell vizsgálni a tranzakciókhalmazát. Ez azt jelenti, hogy miután a bemeneti tranzakciókat reprezentáltunk szomszéd-sági mátrixokban, azokat normál formájúra kell hoznunk a normalizálási eljárással, majda tranzakció mátrixok segítségével, megadjuk azok kanonikus formáját is. Ezután ellen-orzi, hogy ezen jelöltek, minden részhalmaza gyakori-e és ha igen, akkor ezen jelöltekelofordulási száma a tranzakciókban adja meg a támogatottságukat. Ha ez a támogatott-ság eléri az elore meghatározott minimális támogatottsági küszöböt, akkor azt mondjuk,hogy az egy gyakori részgráf.

36

Page 37: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

5. fejezet

Összegzés

A dolgozatomban bemutatott Treeminer részfa kereso algoritmus, hasonlóan az elso feje-zetben tárgyalt Eclat algoritmushoz a mélységi bejárás szerint állítja elo a jelöltjeit és min-den szinten meghatározza azok támogatottságát. Az Eclat-nál bevezetett TID-halmazokés azok használata, hasonlóságot mutat a Treeminer érvényességi tartomány listás táro-lásához, valamint ezen listák összekapcsolásához, amikor a jelöltek eloállításánál a TID-halmazok metszetét képeztük az Eclat algoritmusban.

Az AGM algoritmus, mint a nevében is benne van az apriori elv alapján muködik.Azaz egy k + 1 méretu részgráf, akkor lesz jelölt, ha annak minden k méretu részgráfjagyakori, hasonlóan az Apriori GYEK algoritmushoz, ahol a k + 1 méretu jelölteket, a kméretu gyakori elemhalmazokból állítja elo, amelyeknek minden részhalmaza gyakori.

Az AGM algoritmus a gráfokat szomszédsági mátrixokban reprezentálja, majd ezenmátrixokat normalizálja és meghatározza a kanonikus formájukat. Szemben a Treemineralgoritmussal, ami a fákat úgynevezett kanonikus kódokban reprezentálja, illetve a fákcsúcsaihoz hozzá rendel egy érvényességi tartományt, majd ezután már csak ezen érvé-nyességi tartomány listákkal dolgozik tovább.

A Treeminer és az AGM algoritmus az összes gyakori részgráfot megtalálja a beme-neti adathalmazon és csak a gyakoriakat, így mind a ketto algoritmusról elmondható hogyhelyes és teljes.

37

Page 38: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Irodalomjegyzék

[1] Barabási Albert László. Behálózva, 2003.

[2] Dr. Bodon Ferenc. Adatbányászati algoritmusok 2010.

[3] Katona Gyula Y., Recski András, Szabó Csaba. A számítástudomány alapjai, 2010.

[4] Mohamed J. Zaki. Efficiently Mining Frequent Trees in a Forest, 2010.

[5] Xifeng Yan, Jiawei Han. gSpan: Graph-Based Substructure Pattern Mining, 2002.

[6] Akihiro Inokuchi, Takashi Washio, Hiroshi Motoda. An Apriori-based Algorithm forMining Frequent Substructures from Graph Data, 2010.

[7] Akihiro Inokuchi, Takashi Washio, Hiroshi Motoda. Complete Mining of FrequentPatterns from Graphs, 2002.

[8] Detlef Plump. Termination of graph rewriting is undecidable, Fundamenta Informati-cae, 1998.

[9] Yun Chi, Richard R. Muntz, Siegfried Nijssen, Joost N. Kok. Frequent Subtree Mi-ning — An Overview, 2001.

38

Page 39: GYAKORI RÉSZGRÁFOK KERESÉSE HÁLÓZATOKONweb.cs.elte.hu/blobs/diplomamunkak/.../2015/kovacs_tenia_alexandra.pdf · 1. fejezet Bevezetés A szakdolgozatom célja, bemutatni azon

Köszönetnyilvánítás

Köszönöm Dr. Kósa Balázs témavezetomnek, hogy értékes és precíz megjegyzéseivel fo-lyamatosan javíthattam a dolgozatom színvonalán. Valamint köszönettel tartozom csalá-domnak és barátaimnak, hogy a tanulmányaim során végig támogattak és bíztak bennem.

39