1 / 30

Asst.Prof . Dr.Surasak Mungsing E-mail: Surasak.mu@spu.ac.th

CSE 221/ICT221 Analysis and Design of Algorithms Lecture 10: Problem Solving Problem with Graphs: Shortest Path and และ Minimum Spanning Tree. Asst.Prof . Dr.Surasak Mungsing E-mail: Surasak.mu@spu.ac.th. Sparse Graphs.

otham
Download Presentation

Asst.Prof . Dr.Surasak Mungsing E-mail: Surasak.mu@spu.ac.th

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. CSE 221/ICT221 Analysis and Design of AlgorithmsLecture 10:Problem Solving Problem with Graphs: Shortest Pathand และ Minimum Spanning Tree Asst.Prof. Dr.SurasakMungsing E-mail: Surasak.mu@spu.ac.th

  2. Sparse Graphs In a sparse graph the number of edges is significantly less than |V| squared.

  3. Dense Graphs In a dense graph most of the vertices are connected by edges.

  4. Adjacency List Representation In order to run algorithms on graphs we can use one of two representations of them. The first is an adjacency list. Here each vertex has an entry in an array that contains a linked list to the adjacent vertices.

  5. Adjacency-Matrix Representation Another method of storing the information about the graph is called an adjacency-matrix. Here a V by V matrix is formed with entries 0 or 1.

  6. Directed Graphs A directed graph the edge (u,v) is distinct from the edge (v,u). Here is an example:

  7. Matrix Representation

  8. Weighted Graphs A weighted graph has a real value associated with each edge as in this graph:

  9. Matrix Representation

  10. Single Source Shortest Path • กำหนด (un)weighted, directed graph G = {V, E}มาให้ซึ่งแต่ละedgeมีค่าcost(หรือ weight)เป็นจำนวนบวก • Problem: จงหาค่ารวมของcost ของเส้นทางทีสั้นที่สุดจากvertexต้นทางไปยังvertexปลายทางอื่นๆ • ความยาวของเส้นทางคือคารวมของcostของedgeต่างๆบนเส้นทางนั้น • ทำไมไม่กำหนดเส้นทางใดเส้นทางหนึ่งไปยังจุดหมายปลายทาง? • Application: G คือแผนที่เส้นทางบินของสายการบินซึ่งจะต้องหาเส้นทางบินจากเมืองที่กำหนดให้ไปยังอีกเมืองอื่นๆโดยใช้เวลาเดินทางน้อยที่สุด

  11. Dijkstra’s Algorithm • รักษาset Sของverticesซึ่งรู้ค่าของเส้นทางที่สั้นทีสุดจากต้นทางแล้ว • ตอนเริ่มต้นSมีเพียงvertexต้นทาง เท่านั้น • ในแต่ละstep,เราเพิ่มvertex wที่เหลือซึ่งมีเส้นทางจากvertexต้นทางสั้นทีสุดเข้าไปในS • สมมติว่าทุกedgeมีcostเป็นบวก เราสามารถหาเส้นทางที่สั้นที่สุดจากต้นทางไปยังvertexอื่นโดยผ่านเส้นทางในS (special path)เท่านั้นได้เสมอ • ในทุกๆstep เราใช้array บันทึกค่าระยะทางที่สั้นที่สุดของspecial pathไปยังแต่ละvertex • เสร็จสิ้นการคำนวณเมื่อใน Sครอบคลุมทุกvertex(all paths are special)

  12. Algorithm • Directed graph G={V, E} • V={1, 2, …, n}, Vertex 1 is the source • Cost-adjacency matrix A[0:n][0:n] • Array D[1:n]; at each step D[i] contains the length of the current shortest special path to vertex i • Initially D[i] = A[s][i] • Array P[1:n] of vertices, such that P[v] contains the vertex immediately before v in the shortest path • Initially P[v]=1, v1

  13. Explanations • How do we compute D[v]? • At each step: D[v] := min(D[v], D[w]+A[w][v]) • How do we update P? • After computing D[v], if D[w]+A[w][v]< D[v] then P[v] :=w

  14. Dijkstra: Example 1 G 10 100 30 5 2 10 50 60 3 4 20 Shortest path from 1 to 5? In reverse direction: 53 4 1

  15. An Example inf inf 7 a d 5 2 2 inf 4 b f 5 1 s 3 inf 0 1 7 e 4 c 4 inf inf

  16. 2 inf 7 a d 5 2 2 4 5 b f 5 1 s 3 inf 0 1 7 e 4 c 4 inf 4

  17. 2 9 7 a d 5 2 2 4 4 b f 5 1 s 3 inf 0 1 7 e 4 c 4 inf 4

  18. 2 8 7 a d 5 2 2 4 4 b f 5 1 s 3 inf 0 1 7 e 4 c 4 7 4

  19. 2 8 7 a d 5 2 2 4 4 b f 5 1 s 3 inf 0 1 7 e 4 c 4 7 4

  20. 2 8 7 a d 5 2 2 4 4 b f 5 1 s 3 14 0 1 7 e 4 c 4 7 4

  21. 2 8 7 a d 5 2 2 4 4 b f 5 1 s 3 13 0 1 7 e 4 c 4 7 4

  22. 2 8 7 a d 5 2 2 4 4 b f 5 1 s 3 13 0 1 7 e 4 c 4 7 4

  23. Shortest Path Tree The unique simple path from s to v in the tree is a shortest path from s to v. 2 8 a d 5 2 2 4 4 b f s 3 13 0 e 4 c 7 4

  24. 2 (2) (1) v1 v2 10 4 3 1 2 Minimum Spanning Tree 7 v3 v4 v5 5 4 8 6 v6 v7 1 Prim’s Algorithm

  25. 2 Minimum Spanning Tree (4) (3) v1 v2 10 4 3 1 2 7 v3 v4 v5 5 4 8 6 v6 v7 1 Prim’s Algorithm

  26. 2 (5) v1 v2 10 4 3 1 2 Minimum Spanning Tree 7 v3 v4 v5 5 4 8 6 v6 v7 1 Prim’s Algorithm

  27. (1) (3) (2) (5) (4) (6) Prim’s Algorithm

  28. Kruskal’sAlgorithm

  29. (1) (3) (2) (4) (5) (6) Kruskal’sAlgorithm

More Related