Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Hovedfagspresentasjon Recognizing weakly chordal graphs Lars S. Skeide 17. desember 2002 Institutt for informatikk Universitetet i Bergen.

Liknende presentasjoner


Presentasjon om: "Hovedfagspresentasjon Recognizing weakly chordal graphs Lars S. Skeide 17. desember 2002 Institutt for informatikk Universitetet i Bergen."— Utskrift av presentasjonen:

1

2 Hovedfagspresentasjon Recognizing weakly chordal graphs Lars S. Skeide 17. desember 2002 Institutt for informatikk Universitetet i Bergen

3 17. desember 2002skeide@ii.uib.no2 Motivasjon En ny algoritme for gjenkjenning av svakt kordale grafer ble i 2000 presentert i artikkelen “Recognizing weakly triangulated graphs by edge separability” av Berry, Bordat og Heggernes Kjøretiden er bevist O(m 2 ), men ikke implementert tidligere Utgangspunktet for oppgaven har vært å implementere algoritmen og finne ut hvordan den fungerer i praksis Algoritmen er parallell av natur, og målet var dermed å implementere den både sekvensielt og parallelt

4 17. desember 2002skeide@ii.uib.no3 Oversikt Introduksjon Grafer Svakt kordale grafer Gjenkjenning av svakt kordale grafer Sekvensiell implementasjon av algoritmen Parallell implementasjon av algoritmen Oppsummering

5 17. desember 2002skeide@ii.uib.no4 Graf 3 5 4 12 G: En graf G = (V,E) er en mengde noder V og en mengde kanter E. Eks.: V = {1,2,3,4,5}, E = {(1,2),(1,5),(2,3),(3,5),(4,5)} n = |V|, m = |E|

6 17. desember 2002skeide@ii.uib.no5 Komplementgraf G: En komplementgraf G inneholder de samme nodene som G, men akkurat de kanter som ikke er i G. G: 3 5 4 1 2 3 5 4 1 2

7 17. desember 2002skeide@ii.uib.no6 Minimal separator En separator s er en mengde noder som deler en graf i to eller flere sammenhengende komponenter. s = {2,5} gir komponentene {1}, {3} og {4} s er også en minimal separator siden nodene 1 og 3 ikke kan skilles dersom 2 eller 5 blir fjernet fra separatoren. G: 3 5 4 1 2 G(s) er grafen bestående av nodene i s og alle kantenene mellom dem. G(s): 5 2 En minimal separator skiller to noder med et minste antall noder i separatoren.

8 17. desember 2002skeide@ii.uib.no7 simplicial-LBer ikantHverG  en iGGkordeharog 4 lengde avsykler Alle   graf kordalsvaktener G Svakt kordale grafer G:

9 17. desember 2002skeide@ii.uib.no8 LB - simplicial kant En kant e er LB - simplicial dersom for hver minimale separator s i nabomengden til e, så, for hver sammenhengende komponent av G(s), ser minst én node i e alle nodene i komponenten. e 1 2 3 Lar s = {1, 2, 3} være eneste minimale separator i nabomengden til e = (a,b). a b G({a,b,1,2,3}): De sammenhengende komponentene av G(s) er {1} og {2, 3}. Siden a ser 1 og b ser 2 og 3 er e LB – simplicial.

10 17. desember 2002skeide@ii.uib.no9 Gjenkjenningsalgoritmen på enkleste form Gitt graf G = (V,E). Er G svakt kordal? for alle kanter e  E hvis e ikke er LB-simplicial returner G er ikke svakt kordal returner G er svakt kordal

11 17. desember 2002skeide@ii.uib.no10 Oversikt Kort introduksjon Sekvensiell implementasjon av algoritmen Gjenkjenningsalgoritmen mer detaljert Finne minimale separatorer Finne sammenhengende komponenter i komplementgraf Eksperimentelle resultat Parallell implementasjon av algoritmen Oppsummering

12 Algoritmen litt mer detaljert Gitt graf G = (V,E). Er G svakt kordal? for alle kanter e  E finn N(e) finn alle minimale separatorer s i N(e) for hver s finn alle sammenhengende komponenter ccc i G(s) for hver ccc hvis ikke minst en node i e ser alle nodene i ccc returner G er ikke svakt kordal returner G er svakt kordal N(e): e 1 2 3 a b G 5 6 7 4 8 3 4 1 2

13 17. desember 2002skeide@ii.uib.no12 Utfordinger med algoritmen Hver separator kan forekomme flere, men maksimalt m+n ganger i en svakt kordal graf. Ønsker ikke å beregne de ko-sammenhengende komponentene mer enn én gang for hver originale separator. e 1 2 3 a b G({a,b,1,2,3}): Merking 1 2 2 1 3 2 1 1 2 Løsning: Merk hver node i nabomengden til hver kant (a,b) med 1, 2 el. 3, avhengig av om den er sett av a, b eller begge nodene. Samle alle min. separatorer i en liste og sorter denne. Finn de ko-sammenhengende kun for hver originale separator

14 Algoritmen i O(m 2 ) tid Gitt graf G = (V,E). Er G svakt kordal? for alle kanter e=(a,b)  E finn N(e) og merk hver node med 1, 2 el. 3 om den er sett av a, b eller begge nodene i e finn alle minimale separatorer s i N(e) og lagre dem i en liste S Sorter separatorlisten S med en lineær sorteringsalgoritme original_s = Ø, #originale = 0 for hver minimale separator s  S hvis s  original_s original_s = s, #originale++ hvis #originale > n + m returner G er ikke svakt kordal ellers finn alle sammenhengende komponenter ccc i G(s) for hver ccc hvis  to noder i ccc med merking 1 og 2 returner G er ikke svakt kordal returner G er svakt kordal

15 17. desember 2002skeide@ii.uib.no14 Finne minimale separatorer De minimale separatorene i nabomengden til en kant e kan finnes ved å finne nabomengdene til de sammenhengende komponentene som fremkommer ved å fjerne e og N(e). S 1 = {3,4}S 2 = {4}S 3 = {7,8} 1 210 9 7 8 65 3 4 e Til dette brukes dybde-først-søk: Nodene i N(e) farges røde, og hver gang en rød node er funnet, er dette en node i nabomengden til en sammenhengende komponent. For hver gang søket starter på en ny node, starter vi på en ny komponent og en ny separator.

16 17. desember 2002skeide@ii.uib.no15 Finne sammenhengende komponenter i en komplementgraf For å overholde tidskompleksiteten må komponentene finnes i O(m) tid. Metoden er bygget på følgende observasjon: Ved å merke alle naboer til en node v i en graf G, så vet vi at i hvert fall alle umerkede noder må være i den sammen komponenten som v i komplementgrafen til G. Dermed kan noden v fjernes fra grafen og legges i en komponent sammen med en umerket node, som også merker alle sine naboer. Nå må alle noder som ikke er merket av en av de to nodene i komponenten, også tilhøre komponenten. En ny observasjon viser når vi ikke kan legge til flere noder: Ved gjentagende å legge noder til en ko-sammenhengende komponent i en graf, og for hver node lagt til merke alle noder i dens nabomengde, så kan ingen flere noder legges til når alle gjenværende noder er merket av alle nodene i komponenten.

17 17. desember 2002skeide@ii.uib.no16 Eksempel G: 1 2 3 4 55 4 2 ccc 1 : 1 3 ccc 2 :

18 17. desember 2002skeide@ii.uib.no17 Eksperimentelle resultat Verifisering av svakt kordale grafer med 5 000 noder og 25 000 – 100 000 kanter

19 17. desember 2002skeide@ii.uib.no18 Oversikt Kort introduksjon Sekvensiell implementasjon av algoritmen Parallell implementasjon av algoritmen Generelt om parallellisering og hvordan måle parallelle resultat Lastbalansering Termineringsdeteksjon Eksperimentelle resultat Oppsummering

20 17. desember 2002skeide@ii.uib.no19 Generelt om parallelliseringen Den enkleste formen av algoritmen er parallell av natur Med m prosessorer kan hver prosessor sjekke én kant om den er LB- simplicial Urealistisk for store grafer Mål: Med p < m prosessorer snarest mulig avgjøre om grafen er svakt kordal Lastbalansering: Fordele beregningene likt mellom prosessorene Statisk: Del arbeidet i p like deler/jobber Mulige ulemper: Vanskelig å estimere størrelsen på jobbene, ekstra beregninger Dynamisk: Prosessorer med ledig kapasitet hjelper der det trengs Ulemper: Kommunikasjon og dataoverføringer Termineringsdeteksjon: Så snart én kant er funnet ikke LB - simplicial, stoppes alle beregninger

21 17. desember 2002skeide@ii.uib.no20 Måling av parallelle resultat Speedup S=T s /T p : Hvor mange ganger raskere et problem blir løst med p prosessorer i stedet for en Teoretisk maksimal speedup: p (lineær speedup) Superlineær speedup > p kan forekomme bl.a. i forbindelse med søkealgoritme Effektivitet E=S/p: Hvor stor del av tiden hver prosessor er benyttet 0 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.no/8/2164581/slides/slide_21.jpg", "name": "17.", "description": "desember 2002skeide@ii.uib.no20 Måling av parallelle resultat Speedup S=T s /T p : Hvor mange ganger raskere et problem blir løst med p prosessorer i stedet for en Teoretisk maksimal speedup: p (lineær speedup) Superlineær speedup > p kan forekomme bl.a. i forbindelse med søkealgoritme Effektivitet E=S/p: Hvor stor del av tiden hver prosessor er benyttet 0

22 17. desember 2002skeide@ii.uib.no21 Statisk lastbalansering Lik fordeling av kantene mellom prosessorene gir en statisk lastbalansering uten kommunikasjon, men med O(p) ekstra beregninger av de ko-sammenhengende komponentene Enkel men effektiv under 2 antagelser Tiden for ekstra beregninger er mindre enn dataoverføringen for å plassere alle like separatorer på en prosessor Lastubalansen forårsaket av statisk balansering er mindre enn tiden for kommunikasjon og dataoverføring for å dynamisk korrigere ubalansen

23 17. desember 2002skeide@ii.uib.no22 Parallell algoritme Gitt graf G = (V,E) og p prosessorer P i, i = 0,..., p – 1. Er G svakt kordal? for hver prosessor P i Del E i like deler og finn mine_kanter Sjekk om alle mine_kanter er LB – simplicial og send svar til P 0 hvis P 0 for hver prosessor P i Motta lokalt svar hvis lokalt svar er ”Minst én kant er ikke LB - simplicial” Stopp alle prosessorer som fortsatt arbeider returner G er ikke svakt kordal returner G er svakt kordal

24 17. desember 2002skeide@ii.uib.no23 Eksperimentelle resultat pT p (min) SE 152581.01.00 225052.11.05 415633.40.85 612234.30.72 88925.90.74 108016.60.66 126028.70.73 145499.60.69 1643612.10.76 Testkjøring med vilkårlig graf med 90 449 noder og 2 455 670 kanter og økende antall prosessorer.

25 17. desember 2002skeide@ii.uib.no24 Oversikt Kort introduksjon Sekvensiell implementasjon av algoritmen Parallell implementasjon av algoritmen Oppsummering

26 17. desember 2002skeide@ii.uib.no25 Oppsummering  Gjennom den sekvensielle implementeringen har algoritmen vist seg godt anvendbar ved at teoretisk kjøretid samsvarte med praktisk kjøretid.  Algoritmen viste seg som antatt å være godt parallelliserbar. Selv med statisk lastbalansering ga implementasjonen svært bra speedup og overgikk forventningene.

27 17. desember 2002skeide@ii.uib.no26 simplicial-LBer ikantHverG  ersimplicial-LB i nodeHverG  graf kordalener G kordeenhar i 3 lengde avsykler Alle G   en iGGkordeharog 4 lengde avsykler Alle   graf kordalsvaktener G  Ekstra: Kordale vs. svakt kordale grafer


Laste ned ppt "Hovedfagspresentasjon Recognizing weakly chordal graphs Lars S. Skeide 17. desember 2002 Institutt for informatikk Universitetet i Bergen."

Liknende presentasjoner


Annonser fra Google