1 / 18

Algoritmer och datastrukturer

Algoritmer och datastrukturer. Graf och Grafalgoritmer. Några enkla graf teorier. Hur IP trafik hittar destinationen i Internät ? GPS-system ?. 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.

deana
Télécharger la présentation

Algoritmer och datastrukturer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Göteborg 40 Borås Jönköping 60 60 70 Varberg 200 120 70 Växjö 100 Halmstad Terminology • Vertices & edges ( Noderochförbindelseellerbå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 40 Borås Jönköping 60 60 70 Varberg 200 120 70 Växjö 100 Halmstad

  5. Göteborg 40 Borås Jönköping 60 60 70 Varberg 200 120 70 Växjö 100 Halmstad Mer terminology • Path length • Oviktad pathlength – antalet förbindelse mellan två noder • Viktad pathlength- summan av vikter mellan två nod • Riktad graph • Visa förbindelseärenbartenvägs • Viktenför en förbindelsebehövsintevaradessamaibådariktningarna ( ombådafinns) Göteborg 40 Borås Jönköping 60 60 70 Varberg 200 120 70 Växjö 100 Halmstad

  6. Göteborg 40 Borås Jönköping 60 60 70 Varberg 200 120 70 Växjö 100 Halmstad 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.

  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. 6 (1) 7 (6) 5 (10) 4 (3) 1 (4) 2 (2) 5 (2) 7 (4) 6 (8) 3 (2) 6 (5) 4 (1) Graph representation • Adjacent list • Varje node håller en länkad lista som innehåller information om grann- noder och vikt. 1 2 2 Node 1 Node 2 3 1 3 10 4 4 Node 3 Node 5 Node 4 2 2 5 8 6 5 4 6 Node 6 Node 7 1 7

  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 2 Node 1 Node 2 2 3 10 3 4 5 1 3 10 4 4 2 2 8 4 Node 3 Node 5 Node 4 5 6 2 2 6 8 6 5 4 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 0 Node 3 Node 1 Node 2 1 Node 1 1 Node 6 2 0 3 Node 3 Node 5 2 Node 2 Node 4 2 Node 4 3 1 3 Node 5 Node 6 Node 7 3 Node 7

  14. 2 1 3 1 4 3 2 8 1 5 4 1 Dijkstra’s Algorithm • For viktade grafer From Distance Node 1 Node 2 Node 1 Node 2 Node 3 Node 3 Node 5 Node 4 Node 4 Node 5 Node 6 Node 6 Node 7 Node 7

  15. 2 1 3 1 4 3 2 8 1 5 4 1 Dijkstra’s Algorithm • För viktade grfer From Distance Node 1 Node 2 Node 1 INF 4 3 Node 1 (4) INF Node 2 1 6 Node 6 (5) Node 4 (5) Node 2 (6) Node 3 0 - Node 3 Node 5 Node 4 Node 4 INF 1 5 Node 5 INF Node 6 INF 3 5 Node 6 Node 7 INF Node 7

  16. 2 1 3 1 4 3 2 8 1 5 4 1 Dijkstra’s Algorithm • For viktade grafer! From Distance Node 1 Node 2 Node 1 4 3 Node 6 (5) Node 2 1 6 Node 4 (5) Node 5 (8) Node 3 0 - Node 3 Node 5 Node 4 Node 7 (9) Node 2 (6) Node 4 1 5 Node 5 INF 4 8 Node 6 3 5 Node 6 Node 7 INF Node 7 4 9

  17. 2 1 3 1 4 3 2 8 1 5 4 1 Dijkstra’s Algorithm • För viktade grapher! From Distance Node 1 Node 2 Node 1 4 3 Node 5 (7) Node 2 (6) Node 2 1 6 Node 5 (8) Node 3 0 - Node 3 Node 5 Node 4 Node 7 (9) Node 4 1 5 Node 5 2 4 7 8 Node 6 3 5 Node 6 Node 7 5 Node 7 4 8 9

  18. From Distance 2 Node 1 Node 2 Node 1 4 3 1 3 1 Node 2 1 4 6 Node 3 0 - Node 3 Node 5 Node 4 Node 4 1 5 3 2 Node 5 2 7 8 1 5 4 Node 6 3 5 Node 6 Node 7 5 Node 7 8 1 Dijkstra’s Algorithm • För viktade grapher! Node 1 3 Node 2 1 3 Node 3 Node 4 1 3 Node 5 2 1 3 Node 6 3 Node 7 5 2 1 3

More Related