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 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 Oversikt Introduksjon Grafer Svakt kordale grafer Gjenkjenning av svakt kordale grafer Sekvensiell implementasjon av algoritmen Parallell implementasjon av algoritmen Oppsummering

5 17. desember Graf 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 Komplementgraf G: En komplementgraf G inneholder de samme nodene som G, men akkurat de kanter som ikke er i G. G:

7 17. desember 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: 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 simplicial-LBer ikantHverG  en iGGkordeharog 4 lengde avsykler Alle   graf kordalsvaktener G Svakt kordale grafer G:

9 17. desember 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 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 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 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 a b G

13 17. desember 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 a b G({a,b,1,2,3}): Merking 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 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} 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 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 Eksempel G: ccc 1 : 1 3 ccc 2 :

18 17. desember Eksperimentelle resultat Verifisering av svakt kordale grafer med noder og – kanter

19 17. desember 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 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 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 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 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 Eksperimentelle resultat pT p (min) SE Testkjøring med vilkårlig graf med noder og kanter og økende antall prosessorer.

25 17. desember Oversikt Kort introduksjon Sekvensiell implementasjon av algoritmen Parallell implementasjon av algoritmen Oppsummering

26 17. desember 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 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