Hovedfagspresentasjon

Slides:



Advertisements
Liknende presentasjoner
Telemator ® Programvare for prosjektering, dokumentasjon og drift av:
Advertisements

Varmepumper Av Snorre Nordal Seksjon for læring og lærerutdanning
Kunden som med-designer
Hartveit Butikk AS Produktkatalog
MEDLEM AV SKOLENS SAMARBEIDSUTVALG
TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Forskningsrapporten: Sjekkliste før innlevering (empirisk rapport)
Ulike sorteringsmetoder Kompleksitet av dem
Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov.
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Teoriøving 4 (1) Strongly connected component: ”det maksimale settet med noder slik at for alle nodepar (u,v) i settet finnes kantene u -> v og v -> u.
Øvingsforelesning 9 Flytnettverk, maksimum flyt og
Eksempel AOA (Activity On Arc)
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Kompleksitetsanalyse
Øvingsforelesning 12 Redusering av problemer,
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø
Øvingsforelesning Magnus Haug
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Reiserute med maksimal opplevelse. LOG530 Distribusjonsplanlegging 2 2 I følgende eksempel er det en turist som ønsker å velge kjøreruten med mest severdigheter,
Lokalisering og minimum maxavstand. LOG530 Distribusjonsplanlegging 2 2 I mange situasjoner ønsker en å finne lokaliseringer som minimerer maksimalavstanden.
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
LOG530 Distribusjonsplanlegging
Målprogrammering. LOG530 Distribusjonsplanlegging 2 2 Vi fortsetter eksempel 10.2, men vil nå se på oppfyllelse av flere mål samtidig. Målprogrammering.
Komplekse tall Naturlige tall
Strukturerende elementer i UML
fagakademiet.no1// Temakurs knyttet til Samhandlingsreformen Kreativ omsorg, Tromsø Odd Mandal, kompetanserådgiver Fagakademiet.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
Øvingsforelesning 9 - Børge Rødsjø
Kap 10 Graf.
Improving Products Gruppe Presenteres av : Hege-Kristin Johansen Herman Kolås Marianne Ates Marit Finden Jonas Lillevold André Johansen Tom.
Automated Testing Tool & When to Stop Testing
Java sertifisering - testern tester test
Arbeidsmarked NHH-kandidater
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
A randomized protocol for signing contracts (extended abstract) S.Even, O. Goldreich, A.Lempel.
ATP modellen Datakvalitet – enkle kontrollrutiner.
FAU - Lysarkene ligger på MEDLEM AV FAU - HVA NÅ? - Hva gjør FAU? - Hvordan jobber FAU? - Hvorfor har vi FAU? Alle foreldre som.
PROSJEKT: UADRESSERT REKLAME Omnibus: 23. august – 30 august 2006
Oppgave 1. Automaten aksepterer språket over alfabetet {a,b} bestående av strenger med et like antall forekomster av a og et like antall forekomster av.
Disjunktiv normalform, oppsummering Et litteral… er en utsagnsvariabel eller negasjonen av en utsagnsvariabel. P  P Q S  R En fundamental konjunksjon.
Forskning en oversikt over noen sentrale forhold
CARISMA Context-Aware Reflective Middleware System for Mobile Applications.
INF 4130 Eksamen 2008 Gjennomgang.
Magnus Haug Algoritmer og Datastrukturer
Behov for plater Mål: En møbelfabrikk har en kappliste som definerer materialbehovet framover for alle komponenter som skal sages ut av plater. Vi skal.
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
Kantlister / Pakninger / Fenderlister / Vinduslister
The Impact of DHT Routing Geometry on Resilience and Proximity TDT 2, Olav Engelsåstrø
Sterke og 2-sammenhengende komponeneter, DFS
Routing Indices For P2P Systems TDT2 – Avanserte Distribuerte Systemer Lars-Erik Bjørk.
Regresjon Petter Mostad
Trekkstrukturer Bygges opp fra en mengde trekk f,g,h,… og en mengde atomære verdier a,b,c,… Defineres som en DAG (directed acyclic graph), det vil si en.
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
Kapittel 12 Samlingar Samlingar og datastrukturar Ei samling (collection) blir brukt til å oppbevare og handtere andre objekt ArrayList – klassen.
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
Strukturerende elementer i UML
Eric Jul PSE, Inst. for informatikk
Utskrift av presentasjonen:

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

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(m2), 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 Sekvensielt: bruke en prosessor Parallelt: bruke flere prosessorer 17. desember 2002 skeide@ii.uib.no

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

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)} G: 3 5 4 1 2 n = |V|, m = |E| Nodene representert ved sirkler, og kantene med streker mellom par av noder Vi betegner antall noder med n og antall kanter med m En sti i en graf er en sekvens av noder med kanter mellom, eks. 1-3 En sykel er en sti som starter og ender i den sammen noden, eks. 1-1 Dersom det går en sti mellom alle par av noder, så er grafen sammenhengende 17. desember 2002 skeide@ii.uib.no

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

Minimal separator G: G(s): En separator s er en mengde noder som deler en graf i to eller flere sammenhengende komponenter. En minimal separator skiller to noder med et minste antall noder i separatoren. 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 En betegnelse som vil gå igjen G(s) er grafen bestående av nodene i s og alle kantenene mellom dem. G(s): 5 2 17. desember 2002 skeide@ii.uib.no

Svakt kordale grafer G: G: en i G korde har og 4 lengde av sykler Alle c > graf kordal svakt er simplicial - LB er i kant Hver G c G: En korde i en sykel er en kant mellom to ikke-etterfølgende noder 17. desember 2002 skeide@ii.uib.no

LB - simplicial kant G({a,b,1,2,3}): 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. 17. desember 2002 skeide@ii.uib.no

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 17. desember 2002 skeide@ii.uib.no

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 17. desember 2002 skeide@ii.uib.no

Algoritmen litt mer detaljert N(e): 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 e 1 2 3 a b G 5 6 7 4 8 4 1 2 3

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. Merking 1 2 e 1 2 3 a b G({a,b,1,2,3}): 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 1 3 2 1 2 17. desember 2002 skeide@ii.uib.no

Algoritmen i O(m2) 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 svakt kordal

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). 1 2 10 9 7 8 6 5 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. S1 = {3,4} S2 = {4} S3 = {7,8} 17. desember 2002 skeide@ii.uib.no

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 separator har O(n) noder. Å finne de ko-sammenhengende komponentene til en separator er derfor samme problement som å finne sammenhengende komponenter av en graf G. 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. desember 2002 skeide@ii.uib.no

Eksempel G: ccc1: ccc2: 1 2 2 3 1 3 5 5 4 4 17. desember 2002 skeide@ii.uib.no

Eksperimentelle resultat Verifisering av svakt kordale grafer med 5 000 noder og 25 000 – 100 000 kanter Ønsker å få frem hvordan den teoretiske tidskompleksiteten samsvarer med testene 17. desember 2002 skeide@ii.uib.no

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 Har brukt Message Passing Programming model og standarden MPI. Programmet blir en samling av prosessorer med lokale variabler og mulighet for eksplisitt å sende og motta data mellom prosessorer ved hjelp av meldinger 17. desember 2002 skeide@ii.uib.no

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 17. desember 2002 skeide@ii.uib.no

Måling av parallelle resultat Speedup S=Ts/Tp: 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<E1 (E=1: lineær speedup) 17. desember 2002 skeide@ii.uib.no

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 Har brukt statisk lastbalansering i den parallelle implementasjonen. 17. desember 2002 skeide@ii.uib.no

Parallell algoritme Gitt graf G = (V,E) og p prosessorer Pi, i = 0, ..., p – 1. Er G svakt kordal? for hver prosessor Pi Del E i like deler og finn mine_kanter Sjekk om alle mine_kanter er LB – simplicial og send svar til P0 hvis P0 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 17. desember 2002 skeide@ii.uib.no

Eksperimentelle resultat Testkjøring med vilkårlig graf med 90 449 noder og 2 455 670 kanter og økende antall prosessorer. p Tp(min) S E 1 5258 1.0 1.00 2 2505 2.1 1.05 4 1563 3.4 0.85 6 1223 4.3 0.72 8 892 5.9 0.74 10 801 6.6 0.66 12 602 8.7 0.73 14 549 9.6 0.69 16 436 12.1 0.76 17. desember 2002 skeide@ii.uib.no

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

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. 17. desember 2002 skeide@ii.uib.no

Ekstra: Kordale vs. svakt kordale grafer en er G korde har i 3 lengde av sykler Alle c > Þ en i G korde har og 4 lengde av sykler Alle c > graf kordal svakt er er simplicial - LB i node Hver G c simplicial - LB er i kant Hver G c Kordale og svakt kordale grafer er to klasser av grafer som har en gitt struktur. <klikk> G er en kordal graf dersom alle sykler av lengde >3 i G har en korde Eks: 4-sykel -> legg til korde og få kordal graf En korde i en sykel er en kant mellom to ikke-etterfølgende noder <klikk> G e svakt kordal dersom alle sykler av lengde >4 i G eller komplementgrafen til G har en korde. <klikk> Vi legger og merke til at en graf som e kordal og e svakt kordal Min oppgave har altså gått ut på å gjenkjenne svakt kordale grafer på en ny måte beskrevet av bl.a. Pinar, på en lignende måte en før har gjenkjent kordale grafer på. For til tross for at de to klassene har svært like definisjoner, så har det til fram til no ikkje vært like måte å gjenkjenne de på <klikk> Dersom hver node i G er LB-simplicial, er grafen kordal Denne måten å beskrive kordale grafer på er gitt av Lekkerkerker og Boland (derfor LB). (En node er LB-simplicial dersom alle minimale separatorer inkludert nabomengden til noden er klikker) <klikk> Dersom hver kant i G er LB-simplicial, er grafen svakt kordal. Det e då lett å se den samme strukturen for å gjennkjenne kordale og svakt kordale grafer, der en node i en kordal graf tilsvarer en kant i en svakt kordal graf. 17. desember 2002 skeide@ii.uib.no