Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

12
7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 1/12 Capita Selecta: Artifici¨ ele Intelligentie opdracht 2 Willem Van Onsem 25 november 2011

Transcript of Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

Page 1: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 1/12

Capita Selecta: Artificiele Intelligentie opdracht 2

Willem Van Onsem

25 november 2011

Page 2: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 2/12

Samenvatting

De opdracht bestaat eruit om een verdeling op te stellen bij het vinden van het aantal patronen nH  (G) in eengrafe G met patroon H , hierbij is zowel in het patroon H  als in de grafe G tussen twee verschillende knopensteeds een boog gedefinieerd. Deze boog is blauw met een kans p, in het ander geval is deze rood. Het is debedoeling op een symbolisch model op te stellen die de verdeling van het aantal inbeddingen berekend vooreen willekeurige p en met de grootte van de graaf  n ∈ {1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 24}. Dit doen we voor depatronen op figuur 1. In sectie 1 introduceren we enkele variabelen en functies die we zullen gebruiken om toteen resultaat te komen. Vervolgens ontwikkelen we in sectie 2 een model om deze verdeling te berekenen. In

sectie 3 bespreken we de resultaten van een simulatie met een Java-programma, en plaatsen we de resultatenvan deze simulatie tegenover de verwachtte resultaten van het model.

(a) (b) (c)

Figuur 1: De verschillende patronen.

Inhoudsopgave

1 Variabelen en Functies 2

2 Ontwikkeling van het model 2

2.1 Eerste geval: n < k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2 Tweede geval: n = k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3 Derde geval: n ≥ k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3.1 Ruw probabilistisch model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3.2 Verfijnd inductief probabilistisch model . . . . . . . . . . . . . . . . . . . . . . . . . . 42.3.3 Zoeken naar een exacte oplossing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Simulatie met een Java-programma 8

Page 3: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 3/12

1 Variabelen en Functies

In deze sectie zullen we enkele variabelen en functies invoeren, die we in de loop van het verslag regelmatigzullen gebruiken. Deze variabelen stellen meestal expressies voor die om de formules leesbaar te houdenafgekort worden. De volgende variabelen en functies komen regelmatig terug:

•We definieren een functie nedges(l) die het aantal bogen in een grafe met l knopen berekent. Deze is

gedefinieerd als:

nedges : N→ N : l → nedges(l) =l · (l − 1)

2(1)

• Het aantal knopen van de grafe G en het patroon H  stellen we voor door kleine letters: repsectievelijkn en k.

• Het aantal subgrafen van de grafe G die een equivalent aantal knopen hebben als dat van het patroonH  stellen we voor door s. s is gedefinieerd als:

s =

n

k

(2)

•Het aantal bogen van deze grafes stellen we dan voor een hoofdletter: N  = nedges(n) en K  =

nedges(k). Het aantal blauwe bogen in het patroon stellen we voor met B, het aantal rode metR = K − B.

• Andere eigenschappen van het patroon stellen we voor met speciale letters: I H  stelt het isomorfismein het patroon voor, F H  stelt de fractie voor van grafen met hetzelfde aantal blauwe en rode bogenwaar we het patroon H  mee kunnen identificeren. Voor de concrete patronen op figuur 1 zijn deze:

 I H  =

6 (a)2 (b)6 (c)

F H  =

1/1 = 1 (a)3/3 = 1 (b)4/20 = 0.2 (c)

(3)

• Af en toe zullen we de complementaire kans 1 − p afkorten tot q , deze notatie veralgemenen we ooknaar andere kansen zoals p∗ en P c.

2 Ontwikkeling van het model

In het model maken we een onderscheid tussen drie gevallen. In het eerste geval is n < k, in het tweede isn = k en in het derde geval is n ≥ k. Voor de eerste twee gevallen zullen we respectievelijk in de subsecties2.1 en 2.2 een exact model formuleren. Voor het laatste geval is de oplossing niet zo triviaal, en zullenwe ons behelpen met enerzijds een ruw probabilistisch model in subsubsectie 2.3.1 en een fijner inductief probabilistisch model in subsubsectie 2.3.2. Verder zullen we ook enkele resultaten in de zoektocht naar eenexact model toelichten in subsubsectie 2.3.3.

2.1 Eerste geval: n < k

In het geval dat n < k kunnen we eenvoudigweg nooit een inbedding vinden. Immers bestaat er tussen tweeverschillende knopen steeds een boog. Er bestaan echter geen bogen tussen twee dezelfde knopen. Indien wedus een afbeelding beschouwen van V  (H ) naar V  (G) met n < k besluiten we uit het duifhokprincipe datminstens twee knopen h1, h2 uit H  op eenzelfde knoop g uit G moeten worden afgebeeld. We weten echterdat er zich een boog tussen h1 en h2 bevindt, maar niet tussen g en g. Hierdoor weten we dat het aantalinbeddingen altijd gelijk is aan 0:

P  (|emb(H, G)| = 0) = 1 (n < k) (4)

2

Page 4: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 4/12

2.2 Tweede geval: n = k

In het tweede geval is het aantal knopen in G gelijk aan het aantal knopen in H . In dat geval kunnen er dustwee zaken optreden:

• ofwel is G ≡ H , in dat geval is het aantal imbeddingen van H  in G gelijk aan I H .

• In het andere geval is het aantal inbeddingen opnieuw 0.Het eerste geval heeft een kans:

P  = F H  · pB · (1 − p)K −B ·

B

(5)

Het andere geval heeft logischerwijs de complementaire kans.

We formaliseren dit tot:

P (|emb(H, G)| = 0) = 1 − F H  · pB · (1 − p)K −B · K 

B

P (|emb(H, G)| = I H ) = F H  · pB · (1 − p)K −B · K 

B

(n = k) (6)

Merk op dat in het algemeen het aantal imbeddingen telkens een veelvoud van I H  zal zijn. Immers telt of wel een subgraaf volledig, ofwel helemaal niet.

2.3 Derde geval: n ≥ k

Een algemener geval van 2.2 is n ≥ k. Hiervoor zullen we twee probablistische modellen ontwikkelen, envervolgens enkele stappen zetten in het vinden van een exacte oplossing.

2.3.1 Ruw probabilistisch model

We beginnen met de bouw van een eenvoudig probabilistisch model. Hierbij zullen we het geval n ≥ kproberen op te lossen met behulp van het geval n = k. Een grafe G bestaat uit een aantal subgrafen met kknopen, dit aantal is zoals reeds vermeld in sectie 1, s =

nk

. Een grafe kan dus uitsluitend veelvouden van

 I H  als aantal inbeddingen bevatten. Een grafe bevat l · I H  patronen indien van al deze subgrafen er juist lzijn die aan het patroon voldoen, en de overige s − l afwijken van het patroon. Welke van deze subgrafen isin feite irrelevant. We kunnen dit dus samenvatten als:

P  (|emb(H, G)| = l · I H ) = P lc · (1 − P c)s−l · s

l

met P c = F H  · pB · (1 − p)

K −B · K B

(n ≥ k) (7)

In subsubsectie 2.3.2 zullen we in vergelijking (16) een exacte formule afleiden voor patroon (b) en het gevaln = 4. We kunnen op basis van dit exacte model een inschatting maken over de foutenmarge. We berekenendan ook de standaarddeviatie met behulp van volgende formule:

σ =

 

 10

sl=0

(P b (|emb (H, G)| = l · I H ) − P (|emb (H, G)| = l · I H ))2 dp

s + 1=

√ 18532044773

7·√ 

19274644506(8)

Met P b de kansverdeling van het probabilistische model. We komen uit op een standaardafwijking vanongeveer 14%. Dramatischer is dat de maximale afwijking 42% bedraagt. Dit komt hoofdzakelijk omdatwe een eigenschap van de grafe verwaarloosd hebben: de configuratie van een subgrafe heeft invloed op zijnburen. Bovendien zal vanaf  n ≥ k + 2 gelden dat een subgrafe buren heeft die een verschillend aantal bogenmet hem delen. Indien echter n k zal het model in het algemeen verbeteren zoals wordt geıllustreerd doortabel 2 op pagina 9.

3

Page 5: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 5/12

2.3.2 Verfijnd inductief probabilistisch model

We kunnen het probleem met afhankelijkheden tussen verschillende subgrafen gedeeltelijk oplossen doormiddel van een inductief systeem. Hierbij stellen we dat een grafe met n knopen bestaat uit een “interne”grafe met n − 1 knopen en een knoop. Deze laatste knoop genereert vervolgens een hoeveelheid s nieuwesubgrafen met:

s

=n

−1

k − 1

(9)

Er zijn echter n − 1 bogen tussen de externe knoop en de interne grafe. Verder hangt elk van de nieuwesubgrafes af van k − 1 van deze bogen. Op basis van deze eigenschap kunnen we het delen van bogen totop zekere hoogte afdwingen in het model. Figuur 2 geeft deze situatie schematisch weer. Omdat we dus s

nieuw puntl − l1 subgrafen met patronen vereist

kans p op een blauwe boog

interne grafel1 subgrafen met patronen

kans p∗n−1,l1 op een blauwe boog

Figuur 2: Situatie bij het inductief probabilistisch model.

subgrafen toevoegen aan het systeem, kan het aantal patronen hoogstens met s · I H  toenemen. Indien we dekans willen bepalen dat de volledige grafe G dus l · I H  bevat dienen we enkele scenarios te onderzoeken: welaten het aantal patronen gevonden in de interne grafe varieren van (l − s) · I H  tot l · I H  en laten vervolgensde subgrafen tussen de externe knoop en de interne grafe de overige patronen opvullen. De kans dat er zichdus l · I H  patronen in de volledig grafe bevinden is dan:

P n (|emb(H, G)| = l · I H ) =l

l1=l−s

P n−1 (|emb(H, G)| = l1 · I H ) · T H 

(l − l1) · I H , p∗n−1,l1 , n − 1

(10)

Hierbij staat P n−1 logischerwijs voor de kans op een aantal imbeddingen in een grafe met n − 1 knopen,de interne grafe dus. Verder staat T H  voor de kans dat de nieuwe grafen ons (l − l1) · I H  nieuwe patronenopleveren. Deze kans is afhankelijk van een zekere p∗n−1,l1 , de kans op een blauwe boog in de interne grafe.

Immers zullen we om de patronen te vervolledigen ook eigenschappen uit de interne grafe moeten kennen. Wegebruiken dus een vorm van dynamisch programmeren op dit probleem op te lossen. Als basisstap gebruikenwe opnieuw het geval n = k, waarvoor we in de volgende paragraaf de specificaties uitwerken.

De basisstap n = k De basisstap hebben we al ruimschoots besproken in subsectie 2.2. De kansverdelingvan de basisstap is dan ook equivalent met vergelijking (6). l1 kan in het basisgeval dus alleen de waardes 0en 1 aannemen. Verder kunnen we ook de forumule voor de p∗ eenvoudig uit vergelijking (6) afleiden:

 p∗k,0 =K  · p − F H  · B · pB · (1 − p)

K −B · K B

K  ·

1 − F H  · pB · (1 − p)K −B · K 

B

 p∗k,1 = B/K 

(11)

De inductiestap De inductiestap zullen we toelichten door deze uit te werken voor de verschillendepatronen. Patroon (a) is van toepassing indien alle bogen in een 3-kliek blauw zijn. In totaal zijn er n − 1bogen die van de interne grafe naar de nieuwe knoop gaan. Indien i daarvan blauw zijn, betekent dit dat eri · (i − 1) /2 toegevoegde subgrafen zijn, die eventueel kans maken om patronen te worden. Dit betekent datde twee bogen in hun patroon naar de nieuwe knoop allebei blauw zijn. Het patroon legt echter op dat ernog een derde boog blauw is. Deze boog bevindt zich tussen twee knopen in de interne grafe, en heeft dus

4

Page 6: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 6/12

een kans p∗. Indien we zoeken naar exact l2 patronen betekent dit dus dat l2 interne bogen blauw moetenzijn, de overige bogen van de kanshebbers moeten rood zijn. Dit leid tot een formule:

( p∗)l2 · (1 − p∗)

nedges(i)−l2 · pi · (1 − p)n−i−1 (12)

We voegen verder twee multipliciteiten toe: het maakt immers niet uit over welke bogen tussen de knoop

en interne grafe of interne bogen het gaat. Verder sommeren we vervolgens over elk aantal bogen tussen deinterne grafe en de nieuwe knoop wat ons uiteindelijk de volgende vergelijking oplevert:

T (a) (l2 · I H , p∗, n − 1) =n−1i=0

( p∗)l2 · (q ∗)

nedges(i)−l2

nedges (i)

l2

· pi · q n−i−1 ·

n − 1

i

(13)

De nieuwe p∗ waarden kunnen we vervolgens berekenen aan de hand van de Wet van de Bayes. We berekenenop welke manieren we tot een grafe met l · I H  patronen kunnen komen, en delen dit door de frequentie datde grafe met l · I H  voorkomt. Verder dienen we ook het aantal blauwe bogen in de interne grafe in rekeningte brengen hierbij.

Voor patroon (b) kunnen we een soortgelijke oplossing voorstellen. Een probleem hierbij is dat er verschil-lende subgrafen zijn die kans maken om een patroon te bevatten: subgrafen die twee blauwe bogen krijgen,

en dus nog een rode boog in de subgrafe moeten halen, en subgrafen met een blauwe en een rode boog, dievervolgens een blauwe boog uit de interne grafe halen. Een probleem met meerdere soorten kandidaten is datelk van deze kandidaten een willekeurig aantal nieuwe patronen kan bijdragen. Om dus tot het gevraagdeaantal te komen zijn er verschillende configuraties mogelijk, deze gaan we een voor een af met behulp vaneen sommatie. We bekomen voor patroon (b) dan ook volgende inductieformule:

T (b) (l2 · I H , p∗, n − 1) =n−1i=0

 pi · q n−i−1 ·

n − 1

i

· R

met R =

l2la=0

nedges (i)

la

·

i · (n − i − 1)

l2 − la

( p∗)

nedges(i)+l2−2·la · (q ∗)2·la−l2+i·(n−i−1)

(14)

Op analoge wijze kunnen we ook een inductiefunctie definieren voor patroon (c):

T (c) (l2 · I H , p∗, n − 1) =n−1i=0

 pi · q n−i−1 ·

n − 1

i

· R

met R =

l2la=0

t1la

·

t2l2 − la

( p∗)

2la+l2 · (q ∗)3t1−3la+2l2−2la ·

1 − p∗ · q ∗2

t2−l2−la

t1 =(n − i − 1) · (n − i − 2) · (n − i − 3)

6en t2 =

i · (i − 1) (n − i − 1)

2

(15)

Uiteraard zou een grotere stapgrootte (niet 1 maar bijvoorbeeld twee knopen toevoegen) ons een nog ac-

curater model leveren. Het probleem is dat dit model complexer te modelleren is, en computationeel ookzwaarder. De simulaties op pagina 8 tonen echter aan dat dit model de standaardafwijking al kan reducerentot een derde. Bij grote n heeft dit tweede model minder toegevoegde waarde, omdat ook de fout op hetruw probabilistisch model daalt. Bij grote n wordt bovendien de standaardafwijking van het inductief modelgelijk aan de standaardafwijking van het ruw probabilistisch model.

5

Page 7: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 7/12

2.3.3 Zoeken naar een exacte oplossing

Naast de twee vorige oplossingen werd ook getracht een exacte oplossing te bekomen. Dit doel werd nietbereikt. Wel werd enige vooruitgang geboekt in het tellen van subgrafen. Het bouwen van grafen met dezesubgrafen blijkt echter geen triviaal probleem. We beginnen met een voorbeeld waarin we een exact modeluitwerken voor patroon (b) bij n = 4. Vervolgens zullen we een methode beschrijven om subgrafen te tellen.

G0 G1 G2 G3 G4 G5 G6

Figuur 3: De verschillende patronen.

Voorbeeld In het voorbeeld proberen we patroon (b) af te beelden op een grafe G met 4 knopen. Wezullen de verdeling berekenen door eerst een grafegroep

G0 met 0 blauwe bogen te beschouwen, en telkens

een boog toe te voegen zodat Gi enkel grafen bevat met i blauwe bogen heeft. We blijven itereren toteen groep GN . Belangrijk hierbij is dat de kans dat we i blauwe bogen genereren is de kans op generatieP  (Gi) =

N i

· pi · (1 − p)N −i. Elk van deze grafen heeft dan ook nogN i

varianten: hierbij veranderen we

de plaats van de blauwe en de rode bogen. Dit resulteert in totaal in 2N  grafen. Een grafe Gi,j die tot Gibehoort heeft een kans van P  (Gi,j) = pi · pN −i om gegenereerd te worden. Figuur 3 geeft alle varianten vandeze grafen schematisch weer. Bij elk van deze grafen kunnen we vervolgens het aantal patronen tellen. Weverhogen vervolgens de kans dat we dat aantal uitkomen met pi · (1− p)N −i bij een grafe uit de groep Gi. We

6

Page 8: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 8/12

bekomen dan tenslotte een kansverdeling. Toegepast op ons voorbeeld levert het ons de volgende verdelingop:

P  (|emb(H, G)| = 0) = 1q 6 + 6 p1q 5 + 3 p2q 4 + 4 p3q 3 + 1 p6

P  (|emb(H, G)| = 2) = 12 p2q 4

P  (|emb(H, G)| = 4) = 12 p3

q 3

+ 12 p4

q 2

+ 6 p5

q 1

P  (|emb(H, G)| = 6) = 4 p3q 3

P  (|emb(H, G)| = 8) = 3 p4q 2

(voorbeeld) (16)

We zouden met behulp van een computer dus alle mogelijke grafe-configuraties kunnen berekenen en zoeen verdeling kunnen laten opstellen. Dit zou echter zeer inefficient zijn, omdat er O (2n) grafen moetenworden gegenereerd, het tellen van het aantal patronen vereist per grafe met een backtrackingsalgoritmeO (n!/ (n − k)!). Het algoritme zou dus een tijdscomplexiteit van O (2n · n!/ (n − k)!) hebben, wat bij groten benadert wordt door O 2n · nk

. In dat geval kunnen we de kansverdeling formaliseren tot:

P (

|emb(H, G)

|= l

· I H ) =

i=0

#

{G

|G

∈ Gi : nH  (G) = l

· I H 

} · pi

·(1

− p)

N −i(17)

Met deze formule zijn we dus in staat op een kansverdeling op te stellen in functie van p. Een groot nadeelis dat n vooraf gekend moet zijn om de factoren bij de termen te berekenen. Bovendien stellen we vast datdeze termen moeilijk te berekenen zijn.

Subgrafen tellen Is het mogelijk om iets te zeggen over de subgrafen van alle grafen die tot een bepaaldegrafengroep Gi behoren? Uit het voorbeeld op figuur 3 kunnen we een tabel afleiden die per grafengroep,het aantal subgrafen met k knopen afleiden die j blauwe bogen heeft, zoals op tabel 1. Deze tabel zullen

G0 G1 G2 G3 G4 G5 G6#S (0) 4 12 12 4 0 0 0#S (1) 0 12 36 36 12 0 0

#S (2) 0 0 12 36 36 12 0#S (3) 0 0 0 4 12 12 4Totaal 4 24 60 80 60 24 4

Tabel 1: Het aantal subgrafen in een grafengroep.

we de S -tabel noemen. Het is een (K + 1) × (N  + 1) tabel die op de i-de rij en de j-de kolom het aantalsubgrafen S i,j met i blauwe bogen bevat uit alle grafen met j blauwe bogen. Wat opvalt is dat de tabelvolledig symmetrisch is. Dit is logisch omdat we door rode en blauwe bogen om te wisselen, tot een equivalentprobleem komen. Er geldt dus:

S i,j = S K −i,N −j (18)

Een tweede logische eigenschap is dat het totaal aantal subgrafen van een grafengroep Gi gelijk is aan:

K i=0

S i,j =

N  j

·

nk

(19)

Er zijn immersN j

grafen in de grafengroep Gj en elk van deze grafen heeft

nk

subgrafen. Deze eigenschap

heeft als logisch gevolg:

S 0,0 =

n

k

, S i,0 = 0 voor i = 1 . . . K   (20)

7

Page 9: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 9/12

Immers kunnen er bij een grafe met 0 blauwe bogen onmogelijk subgrafen zijn met een of meer blauwe bogen,bijgevolg behoren alle subgrafen tot S 0,0. We kunnen nu verder redeneren over wat er met deze subgrafengebeurt wanneer we een grafengroep hoger gaan. Uit de grafes van de grafengroep Gj kunnen we immersde grafen uit de grafengroep Gj+1 berekenen. De vraag is wat het effect is op de subgrafen. Aangeziener een blauwe boog bijkomt bij de grafen, kan een subgrafe er dus hooguit een extra blauwe boog hebben.Verder dienen we ook het aantal manieren waarin deze formatie kan bestaan in rekening te brengen. Bij een

subgrafe met i blauwe bogen zijn erK 

i

mogelijke manieren om dit te realiseren. Indien we dus een blauweboog toevoegen aan de grafe “migreren” alle subgrafes met een bepaald aantal blauwe bogen naar een niveaumet een boog extra. Het aantal is echter niet identiek en is gegeven door volgende formule:

S i+1,j+1 ·

i

= S i,j ·

i + 1

⇒ S i+1,j+1 =

K − i

i + 1· S i,j (21)

Een laatste probleem met die we moeten oplossen is hoeveel subgrafen er bestaan zonder blauwe bogen. Ditprobleem kunnen we eenvoudig oplossen met de somformule in vergelijking (19).

De volledige formule om dus de S  tabel te genereren is:

S i,j =

nk

if  i = 0 ∧ j = 0

0 if  i = 0 ∧ j = 0

K −i+1i

· S i−1,j−1 =K i

· S 0,j−i if  i = 0 ∧ j = 0

N j

−K 

l=1 S l,j if  i = 0 ∧ j = 0

(22)

Merk op dat een programma dus in staat is om de tabel te genereren in O (N × K ), waarbij het algoritmebovendien slechts de helft van de tabel moet uitrekenen. Deze tabel laat ons toe de structuur van de subgrafente onderzoeken, de puzzelstukken om vervolgens een grafes.

Het bouwen van grafen We vermoeden dat het mogelijk is om uit de S -tabel een exacte verdelingte berekenen. Het probleem is dat we opnieuw moeten rekening houden met het delen van bogen tussen

subgrafen. Er zijn enkele triviale verbanden tussen de exacte verdeling en de S  tabel. Maar deze bleken nietvoldoende om een omzetting te kunnen verwezenlijken.

3 Simulatie met een Java-programma

In Java werd een programma geımplementeerd die grafen genereerde met n knopen en een kans p dat ertussen twee verschillende knopen een blauwe boog werd getekend. Hierbij stelden we een grafe voor als eenHashSet. Indien een boog tussen twee knopen blauw was, werd deze boog in de HashSet gestopt, in hetgeval dat de boog rood was, was deze niet aanwezig in de structuur. Een patroon werd voorgesteld metbehulp van twee HashSets. De ene bepaalde welke bogen blauw moeten zijn, de andere welke rood moetenzijn. Indien de kleur van de boog niet relevant is voor het patroon kunnen we dit dan uitdrukken door deboog in geen enkele van de twee HashSets op te nemen.

Het algoritme genereert een grafe op met behulp van de parameters n en p en telt vervolgens hetaantal patronen door middel van een backtrackings algoritme. We voerden het experiment uit met allepatronen uit figuur 1 en lieten p varieren van 0 tot 1 met staplengte 0.01. n nam waardes aan uit{1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 24}. Bij elke configuratie voerden we 131072 experimenten uit. Dit leverde onseen tabel op met waarden waaruit we een verdeling konden berekenen.

8

Page 10: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 10/12

Ruw probabilistisch model We zetten de resultaten van het eerste probabilistisch model (subsubsectie2.3.1) uit tegen de resultaten van de simulatie. Telkens berekenden we de variantie, minimale en maximi-male afwijking, het gemiddelde berekenen heeft immers geen zin. De simulatie en het probablistisch modelsommeren allebei tot 1, waardoor het gemiddelde telkens op 0 zou uitkomen. De resultaten van deze expe-rimenten staan in tabel 2. Deze resultaten werden op twee manieren berekend. Eerst werden deze berekendmet behulp van floating points. Omdat we echter met soms zeer kleine getallen werken kunnen fouten in de

berekeningen het resultaat zwaar beınvloeden. Daarom werd ook een implementatie gebouwd met behulpvan breuken die getallen van willekeurige grootte kunnen verwerken, en dus een exact resultaat kunnenbepalen.

n (a) (b) (c)σ min max σ min max σ min max

1 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000002 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.000003 0.00096 -0.00329 0.00329 0.00112 -0.00281 0.00281 0.00000 0.00000 0.000004 0.09663 -0.24845 0.42182 0.14180 -0.31517 0.42063 0.00042 -0.00173 0.001735 0.07269 -0.38341 0.38369 0.06943 -0.36459 0.38515 0.01853 -0.03547 0.067146 0.05052 -0.47414 0.37184 0.05389 -0.46456 0.37316 0.03426 -0.13350 0.205717 0.04030 -0.53447 0.37293 0.04972 -0.52908 0.37306 0.03453 -0.26597 0.31466

8 0.02916 -0.57005 0.31679 0.03624 -0.56684 0.31895 0.02917 -0.38274 0.3573612 0.01184 -0.51355 0.10971 0.01301 -0.51345 0.11759 0.01306 -0.62324 0.3669016 0.00633 -0.36072 0.06809 0.00631 -0.36072 0.11090 0.00574 -0.71585 0.3576724 0.00262 -0.20332 0.05432 0.00229 -0.20332 0.09541 0.00192 -0.79344 0.36750

Tabel 2: De resultaten van het ruwe probabilistisch model.

Verfijnd inductief model We vergeleken ook de resultaten met het model van het inductief probabilistischmodel (subsubsectie 2.3.2), en staan in tabel 3. Dit model is computationeel zwaar waardoor de methode met

n (a) (b)σ min max σ min max

1 0.00000 0.00000 0.00000 0.00000 0.00000 0.000002 0.00000 0.00000 0.00000 0.00000 0.00000 0.000003 0.00096 -0.00329 0.00329 0.00112 -0.00281 0.002814 0.02462 -0.09679 0.05413 0.10576 -0.29604 0.234755 0.02346 -0.14572 0.07806 0.02927 -0.15071 0.090636 0.01715 -0.17251 0.07203 0.03022 -0.17738 0.125107 0.01330 -0.19123 0.07316 0.01412 -0.19611 0.072048 0.01016 -0.20325 0.07270 0.01318 -0.20758 0.07145

12 0.00471 -0.22874 0.06684 0.00816 -0.23056 0.0657516 0.00370 -0.25058 0.06450 0.00482 -0.25120 0.06406

Tabel 3: De resultaten van het inductief probabilistisch model.

de breuken niet kon worden aangewend, de resultaten zijn dan ook eerder een benadering. Bovendien werdmaar gerekend tot n = 16 voor patroon (a) en (b). We zien dat er een opmerkelijke verbetering plaatsvindtegenover het ruw probabilistisch model. We dienen echter voorzichtig om te springen met deze data: ze zijnhet resultaat van lange berekeningen waarbij soms grote getallen met kleine getallen worden opgeteld. Ditleid tot een slechte stabiliteit. De boosdoener van dit probleem zijn de combinatorische termen die kunnenoplopen rond het midden, waarna andere meestal niet meer significant genoeg zijn om enig effect te hebben.Een oplossingsmethode bestond erin om de getallen oplopend op te tellen.

9

Page 11: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 11/12

Grafische weergave We eindigen met enkele plots voor het geval met patroon (a) en n = 4. We opteerdenvoor een kleine n omdat in dat geval de experimentele waarden behoorlijk waarheidsgetrouw zijn, verder zijner weinig verdelingen om mee rekening te houden, in dit geval 4. En bovendien zullen deze verdelingen ookgrotere waardes aannemen. We delen figuur 4 op in een 3 ×5 matrix. Hierbij staan de rijen voor de verdelingvan de kans op I H  · l patronen. De eerste kolom bevat de experimentele verdeling. De tweede kolom bevatde verdeling volgens het ruwe probabilistische model, de derde kolom ten slotte bevat de verdeling volgens

het inductieve probabilistische model. Hierbij zien we ook dat de verdeling volgens het verfijnde model meerde lijn volgt van de experimentele waarden. Enkel bij de verdeling voor 18 embeddingen (rij 3) scoort deruwe verdeling beter.

10

Page 12: Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

7/30/2019 Capita Selecta Artificiële Intelligentie: Pattern Matching in Probabilistische Grafes

http://slidepdf.com/reader/full/capita-selecta-artificiele-intelligentie-pattern-matching-in-probabilistische 12/12

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(0) experimenteel

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(0) model 1

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(0) model 2

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(6) experimenteel

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(6) model 1

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(6) model 2

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(12) experimenteel

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(12) model 1

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(12) model 2

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(18) experimenteel

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(18) model 1

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(18) model 2

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(24) experimenteel

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(24) model 1

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

  v  e  r   d  e   l   i  n  g

   P

kans p

P(24) model 2

Figuur 4: Concrete verdeling voor (a) met n = 4.

11