Trafiksimulering: Grafalgoritmer

Relevanta dokument
Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges).

Föreläsning 7 Datastrukturer (DAT037)

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

Föreläsning 5: Grafer Del 1

Föreläsningsanteckningar F6

Föreläsning Datastrukturer (DAT036)

Datastrukturer. föreläsning 8. Lecture 6 1

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

729G04 - Diskret matematik. Lektion 4

Föreläsning 5: Dynamisk programmering

Graphs (chapter 14) 1

TNK049 Optimeringslära

Datastrukturer. föreläsning 7. Maps 1

Föreläsning Datastrukturer (DAT037)

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning 10. Grafer, Dijkstra och Prim

Grafer och grannmatriser

Föreläsning 6 Datastrukturer (DAT037)

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 9: NP-fullständighet

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Datastrukturer. föreläsning 8. Maps 1

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Föreläsning 2: Grafer. Exempel på graf

Föreläsning 1. Introduktion och sökning i graf. Vad är en algoritm?

Datastrukturer. föreläsning 7. Maps 1

Föreläsning 2. Kortaste vägar i grafer.

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Kaliningrad) låg vid bägge sidor av floden Pregel samt på

729G04 - Diskret matematik. Lektion 4

Ekvivalensrelationer

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

FÖRELÄSNING 11 DATALOGI I

Googles sidrankning - linjär algebra värt en förmögenhet

Algoritmer, datastrukturer och komplexitet

Tentamen Datastrukturer för D2 DAT 035

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Tommy Färnqvist, IDA, Linköpings universitet

Föreläsning 10. Riktade grafer. Viktade grafer. TDDC91,TDDE22,725G97: DALG. Innehåll. Innehåll Riktade grafer A 10.3

Föreläsning 4 Datastrukturer (DAT037)

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

Trädstrukturer och grafer

Datastrukturer och Algoritmer D0041D

Föreläsning 6 Datastrukturer (DAT037)

Matematik för språkteknologer (5LN445) Institutionen för lingvistik och filologi VT 2014 Författare: Marco Kuhlmann 2013

Datastrukturer. föreläsning 9. Maps 1

Föreläsning 8 Datastrukturer (DAT037)

Magnus Nielsen, IDA, Linköpings universitet

Algoritmer, datastrukturer och komplexitet

MA2047 Algebra och diskret matematik

Föreläsning 2. Kortaste vägar i grafer.

Föreläsning 1. Introduktion. Vad är en algoritm?

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Algoritmer, datastrukturer och komplexitet

Föreläsning 12+13: Approximationsalgoritmer

F11. Läsanvisning: kap 10 + dessa OH. Kruskals algoritm kortaste vägar en till alla

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Tentamen Datastrukturer D DAT 036/INN960

Datastrukturer och algoritmer

Optimering Kruskal s algoritm Prim-Jarník s algoritm

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

Avancerad Problemlösning och Programmering i Praktiken

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:15 19:15

Algoritmer och datastrukturer, föreläsning 11

TNSL05 Optimering, Modellering och Planering. Föreläsning 5

Tentamen Datastrukturer D DAT 036/INN960

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll

Ruttplanering i vägdatabas M A L E N A S Ö D E R L U N D

Föreläsning 8+9: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Algoritmer, datastrukturer och komplexitet

Datastrukturer. föreläsning 9. Maps 1

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

Lösningar Datastrukturer TDA

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Algoritmer, datastrukturer och komplexitet

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Tentamen, Algoritmer och datastrukturer

Kap.6 Grafer. Egenskaper: Handskakningslemmat och Eulers formel Sats om eulerkrets/väg Isomorfi och representation av grafer Graffärgning

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Algoritmer, datastrukturer och komplexitet

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15-13:15

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 09:00 14:00

Algoritmer, datastrukturer och komplexitet

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

Installation Site Country/Year Earth Simulator Center Japan/2002 Los Alamos National Laboratory USA/2002. Los Alamos National Laboratory USA/2002

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

Diskret matematik: Övningstentamen 4

Tentamen Datastrukturer, DAT037 (DAT036)

Transkript:

1 (38) Trafiksimulering: Grafalgoritmer Michael Hanke Skolan för teknikvetenskap SF1538 Projekt i simuleringsteknik

2 (38) Introduktion Varför grafalgoritmer? Grafer möjliggör en enkel och systematisk modellering av många avancerade problem Många problem kan lösas genom algoritmer på grafer

3 (38) Exempel: Trafiksimulering Ni kan modellera enkla (enkelriktade) vägar: Makroskopiskt med hjälp av konserveringslagar (senare i denna kurs) Mikroskopiskt med hjälp av cellulära automater (i kursen SI1335) Hur kan man modellera ett vägnät? (Anpassade) grafer

4 (38) Andra tillämpningar Elektriska kretsar (MNA-analys; vissa analytiska egenskaper kan karakteriseras genom grafegenskaper) Kraftnät (lastfördelning, styrningsproblem) Paketdirigering (routning) i internet och GSM Hantering av ostrukturerade nät för lösning av partiella differentialekvationer Algoritmer för glesa matriser Lastfördelning för parallella algoritmer

5 (38) Vad är en graf? Definition En riktad graf är ett par (V, E) där V är en ändlig mängd noder och E V V är mängden av kanter. En oriktad graf är ett par (V, E) där V är en ändlig mängd noder och E = {{u, v} u, v V }. För trafiksimuleringar: Noder är viktiga punker i trafiknätet, oftast korsningar men även städer etc. En kant är en väg mellan två noder.

6 (38) Viktad graf Definition En viktad graf är en trippel (V, E, w) där (V, E) är en graf och w : E R är en viktsfunktion. Anmärkningar: Viktfunktionen beskriver viktiga attribut. T ex kantlängden. Viktfunktioner kan även innehäller flera attribut så att w(e) kan vara en vektor. Det är helt möjligt att ha en viktfunktion r definerad på noderna: r : V R.

7 (38) Flera definitioner Definition En väg från en nod v till en nod u är en följd v 0, v 1,..., v k av noder v i V där v = v 0 och u = v k så att (v i 1, v i ) E ({v i 1, v i } E) för i = 1,..., k. En väg v 0, v 1,..., v k är en cycel om v 0 = v k En graf är sammanhängande om det finns minst en väg mellan varje par av noder. En delgraf (V, E ) av (V, E) är en graf med V V and E E V V. Grannarna till noden v V är all u V med (v, u) E.

8 (38) Representation av grafer: Grannmatriser Definition Grannmatrisen A R N N till grafen (V, E) med noderna V = {v 1, v 2,..., v N } är { 1, if (v i, v j ) E, a ij = 0, annars.

9 (38) Anmärkningar Grannmatrisen för en oriktad graf är symmetrisk. För en viktad graf definerar vi den viktade grannmatrisen w(v i, v j ), om (v i, v j ) E, a ij = 0, om i = j,, annars. På datorn identifieras oftast v i med i.

10 (38) Representation av grafer: Implementering Definition En graf kallas för gles om antalet kanter är mycket mindre än kvadraten på antalet noder. Om grafen är inte gles kan grannmatrisen implementeras genom en array. Om grafen är gles använder man vanligtvis en (länkad) lista: För varje v V är grannlistan Adj[v] = {u V (v, u) E}. Matlab använder internt listor för att spara glesa matriser!

11 (38) Olika grafalgoritmer Beräkning av den Snabbaste vägen (Shortest path) Beräkning av en Minimalt uppspännande träd (MST) Beräkning av sammanhängande komponenter Beräkning av transitiv slutning Beräkning av en maximal oberoende mängd (MIS) Grafpartitionering

12 (38) Shortest path: Problem Problem Låt (V, E, e) vara en viktad graf och s, t V två (olika) noder. Bestäm en väg mellan s och t så att summan av alla kantvikter längs vägen är minimal bland alla vägar mellan s och t. Vi antar att grafen är sammanhängande. Vi antar att w(e) > 0 för alla kanter e E. (Varför?) Generaliseringar Single source shortest path Kortaste vägen mellan alla par av noder (Floyd)

13 (38) Shortest path: Dijkstras algoritm Grundidén består i att bestämma avståndet (kortaste vägen) från startnoden till varje nod i grafen. Det gör man successivt: Först bestämmer man avståndet från startpunkten till alla grannar. Sedan väljer man noden med minsta avståndet till startnoden. Sedan uppdateras avståndet mellan valda noden och alla dessa grannar. Sedan väljer man igen noden med minsta avståndet etc.

14 (38) Dijkstras algoritm 1 Låt B = {s}. Sätt g(v) = A(s, v) för alla v V \ B. 2 Välj en nod a V \ B med minimalt avstånd (dvs g(a) = min v V \B g(v)). B := B {a}. 3 Om a = t stop. 4 Uppdatera avståndet för alla grannoder till a: Om v V \ B och (a, v) E så sätt g(v) = min(g(v), g(a) + A(a, v)). 5 Gå till 2.

Exempel Bestäm den kortaste vägen från Frankfurt till München! (Alla bilder tagna från de.wikipedia.org) 15 (38)

Exempel (cont) 16 (38)

Exempel (cont) 17 (38)

Exempel (cont) 18 (38)

Exempel (cont) 19 (38)

Exempel (cont) 20 (38)

Exempel (cont) 21 (38)

Exempel (cont) 22 (38)

Exempel (cont) 23 (38)

Exempel (cont) 24 (38)

25 (38) Bestäm den kortaste vägen Låt p(v) vara föregångare till v på den kortaste vägen. 1 Låt B = {s}, p(s) = 0. Sätt g(v) = A(s, v) för alla v V \ B. 2 Välj en nod a V \ B med minimalt avstånd (dvs g(a) = min v V \B g(v)). B := B {a}. 3 Om a = t stop. 4 Uppdatera avståndet för alla grannoder till a: Om v V \ B och (a, v) E och g(v) > g(a) + A(a, v) så sätt g(v) = g(a) + A(a, v) och p(v) = a. 5 Gå till 2.

26 (38) Komplexitet Stegen 2-5 görs högst n = V gånger. Kritiskt är steg 2 och 4: Om datastrukturen är inte anpassad till problemet så kräver båda stegen O(n) jämförelser (hitta alla v V \ B och beräkna mimimum). Det leder till en komplexitet O(n 2 )! En implementation med hjälp av Fibonacci heap (speciell implementation av en prioritetskö (priority queue)) får man komplexiteten O(n log n + E ).

27 (38) Grafpartitionering Om man vill lösa stora och komplexa problem måste man använda parallella beräkningar Exempel: Detaljerad undersökning av stora vägnät (storstäder eller hela landet) Numeriska metoder för tredimensionella turbulenta flödesproblem

28 (38) PDCs stora dator Cray XT6m Computer at KTH PDC (36384 cores, 237 TFlops)

29 (38) Generisk datorstruktur A collection of P processor-memory pairs Processors communicate over the interconnect We might not know what the interconnects look like Problem All processors should have the same amount of computational work to do. Communication should be minimized ( unproductive work )

30 (38) Lastbalansering som grafproblem Problem Låt (V, E, w, r) vara en viktad oriktad graf med kantvikt w och nodvikt r. P-vägs grafpartitioneringsproblem är att bestämma en partition V = V 1 V 2 V P där V p är parvis disjunkta och v V p r(v) = const, (u,v) E,u V p,v V q(p q) w(u, v) min! Problemet är NP-fullständigt. Tolkning: r motsvarar antalet beräkningar som processorn p V ska göra. w motsvarar kommunikationskostnader mellan processorerna.

31 (38) Recursiv bisection Antag att P är en potens av två. Beräkna rekursivt två-vägs partitioneringar. Egenskaper: Problemet är också NP-fullständigt. För många grafer leder recursive bisection till en nästan optimal P-vägs partitionering. Recursive bisection kan effektivt parallelliseras!

32 (38) Partitineringsmetoder Geometriska metoder Kombinatoriska metoder Spektralmetoder Multilevelmetoder Kombinerade metoder Antag nedan att w(u, v) 1, r(v) 1.

33 (38) Levelized Nested Dissection Välj en startnod v Hitta successivt alla noder som har avståndet 1, 2,... från v. Om halva antalet noder har funnits, stop. Egenskaper: Väldigt snabb algoritm (breadth first traversing) Ger oftast bara dåliga partitioneringar. Därför gör man flera försök (med olika startnoder).

Spectral bisection 34 (38)

35 (38) Idé: Ersätt det diskreta optimeringsproblemet med ett kontinuerligt. För grafen (V, G) definerar vi den diskreta Laplacematrisen L: 1, om i j, (v i, v j ) E, l ij = deg(v i ), om i = j, 0, annars. L är negativt semidefinit, det största egenvärdet är 0. Om grafen är sammanhängande så är storleken på det andra egenvärdet en indikator för hur stark konnektiviteten i grafen är. Eigenvektorn x tillhörande till näststörsta egenvärdet (Fiedler-vektor) är ett mått på avståndet mellan noderna. Bisection: Bestäm medianen m av x; sätt V 1 = {i x(i) > m}, V 2 = V \V 1. Beräkning av x är kostsamt.

Exempel: Diskretisering av en pde 36 (38)

Exempel (cont) 37 (38)

38 (38) Sammanfattning Modellering av nätverksproblem med hjälp av grafer En enkel grafalgoritm En komplex grafalgoritm Tillämpning på routning