Ladda ner presentationen
Presentation laddar. Vänta.
1
Algoritmer och datastrukturer
Graf och Grafalgoritmer
2
Några enkla graf teorier
Hur IP trafik hittar destinationen i Internät ? GPS-system ?
3
Några enkla graf teorier
Sociala nätverk Vanligaste frågeställningar: Hur hittar man från A->B? Hur beräknas den kortaste vägen mellan A B
4
Terminology Vertices & edges ( Noder och förbindelse eller bågar)
En nod a är granne till b i en oriktad graf om det finns en båge mellan a och b. Paths (väg) Viktad Oviktad Riktad Oriktad Göteborg Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60 40 Borås 60 Jönköping 60 70 Varberg 200 120 70 Växjö 100 Halmstad
5
Mer terminology Path length
Oviktad path length – antalet förbindelse mellan två noder Viktad path length- summan av vikter mellan två nod Riktad graph Visa förbindelse är enbart envägs Vikten för en förbindelse behövs inte vara dessama i båda riktningarna ( om båda finns) Göteborg Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60 40 Borås 60 Jönköping 60 70 Varberg 200 120 70 Växjö 100 Halmstad
6
Mer terminology Simple paths ( Enkla vägar)
Innehåller en nod enbart en gång Cyclic paths ( cykliska vägar) Startar och slutar i samma nod. Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60
7
Ännu mer terminology Graph täthet
Refererar till antalet förbindelse i grafen gles graph tät graph ( ~~ N2 förbindelse ) Node 1 Node 2 Node 1 Node 2 Node 6 Node 3 Node 6 Node 3 Node 5 Node 4 Node 5 Node 4
8
Graph representation Adjacent list
Varje node håller en länkad lista som innehåller information om grann- noder och vikt. 1 2 (2) 4 (1) 2 5 (10) 4 (3) Node 1 2 Node 2 3 1 (4) 6 (5) 4 1 3 10 4 5 (2) 7 (4) 6 (8) 3 (2) Node 3 Node 4 Node 5 2 2 5 7 (6) 5 8 4 6 Node 6 Node 7 6 1 7 6 (1)
9
Graph representation Adjacent matrix
En kvadratisk matris där raderna och kolumnerna är representerade av noder och elementen i matrisen av förbindelser. För viktad graph innehåller elemnenten i matrisen just vikten 1 2 3 4 5 6 7 1 2 1 Node 1 2 Node 2 2 3 10 1 3 4 5 4 3 10 4 2 2 8 4 Node 3 Node 4 Node 5 2 2 5 6 5 8 4 6 6 Node 6 Node 7 7 1 1
10
Vad är en nod (vertex) ? protected class Vertex { String name;
List adjacents; Vertex (String n) { name = n; adjacents = new LinkedList(); } }
11
Vad är en förbindelse? public class Edge { public Vertex dest; public double cost; public Edge( Vertex d, double c) { dest=d; cost=c; } }
12
Traversera graf- Bredden-först:
Motsvarar närmast level-by-level-traversering av träd. Man besöker först utgångsnoden, sedan dess grannar, sedan grannarnas grannar osv. Använder en extra attribut ”visited-attribut”. Endast noder till vilka det finns en väg från utgångsnoden kommer att besökas. Djupet först- ett annat teknik för graf traversering
13
Bredden-först – tillämpning – hitta kortaste vägen
i oviktade grafer 1 2 Node 3 Node 1 Node 2 1 Node 1 1 Node 6 2 3 Node 3 Node 4 Node 5 2 Node 2 2 Node 4 1 3 3 Node 5 Node 6 Node 7 3 Node 7
14
Dijkstra’s Algorithm For viktade grafer Distance From 2 1 3 4 5 8
Node 1 Node 2 Node 1 Node 2 Node 3 Node 3 Node 4 Node 5 Node 4 Node 5 Node 6 Node 6 Node 7 Node 7
15
Dijkstra’s Algorithm För viktade grfer Distance From 2 1 3 4 5 8
Node 1 Node 2 Node 1 4 INF 3 Node 1 (4) Node 2 6 INF 1 Node 4 (5) Node 2 (6) Node 6 (5) Node 3 - Node 3 Node 4 Node 5 Node 4 5 INF 1 Node 5 INF Node 6 5 INF 3 Node 6 Node 7 Node 7 INF
16
Dijkstra’s Algorithm Distance From 2 1 3 4 5 8 Node 1 4 3 Node 6 (5)
For viktade grafer! Distance From 2 1 3 4 5 8 Node 1 Node 2 Node 1 4 3 Node 6 (5) Node 2 6 1 Node 4 (5) Node 5 (8) Node 3 - Node 3 Node 4 Node 5 Node 7 (9) Node 2 (6) Node 4 5 1 Node 5 INF 8 4 Node 6 5 3 Node 6 Node 7 Node 7 INF 9 4
17
Dijkstra’s Algorithm Distance From 2 1 3 4 5 8 Node 1 4 3 Node 2 (6)
För viktade grapher! Distance From 2 1 3 4 5 8 Node 1 Node 2 Node 1 4 3 Node 2 (6) Node 5 (7) Node 2 6 1 Node 5 (8) Node 3 - Node 3 Node 4 Node 5 Node 7 (9) Node 4 5 1 Node 5 7 8 4 2 Node 6 5 3 Node 6 Node 7 Node 7 8 9 5 4
18
Dijkstra’s Algorithm Node 1 3 Node 2 1 3 Node 1 Node 2 Node 3 Node 4
För viktade grapher! Node 1 3 Node 2 1 3 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Distance From - 4 5 3 1 6 7 2 8 Node 6 Node 7 Node 1 Node 2 Node 5 Node 3 Node 4 2 1 3 4 5 8 Node 3 Node 4 1 3 Node 5 2 1 3 Node 6 3 Node 7 5 2 1 3
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.