งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Shortest-Path Algorithms

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Shortest-Path Algorithms"— ใบสำเนางานนำเสนอ:

1 Shortest-Path Algorithms
BY นาย จิรวัฒน์ กรัณย์วิทยาการ ID ITE 209 Sec 01

2 Shortest-Path Algorithms
ใช้ directed graph ที่มี weighted Cost ของ path คือ cost ของแต่ละ edge path รวมกัน → “weighted path length” ถ้า unweighted graph,unweighted path length = N-1 Shortest path problem คือการหา shortest weighted path จากจุดเริ่มต้น(s)ไปยังทุกๆ node ใน graph Path ที่มี negative cost จะหา shortest path ได้ยุ่งยาก

3 Shortest-Path Algorithms
1) unweighted shortest paths แต่ละ path จะมีค่า = 1 Breadth-first search AND dept-first search strategy ใช้คำนวณหา shortest path

4 Shortest-Path Algorithms
2) Weighted shortest-paths (Djikstra’s algorithm) Djikstra’s algorithm ใช้หลักการคล้ายกับ breadth-first search strategy จัดเป็นจำพวก greedy algorithm Shortest path อาจไม่ใช่เส้นทางที่สั้นที่สุด เพราะต้องดู weight ประกอบด้วยเป็นหลัก Shortest path เป็นเส้นทางที่มีผลรวม weight น้อยที่สุด

5 Shortest-Path Algorithms
Graph with Negative edge costs ตัวนี้ไม่ค่อยการใช้งานมากนัก เพราะคำนวณได้ยากมาก Weighted มีค่าติดลบได้ ทำให้การหา shortest path ยุ่งยากมากขึ้น

6 Shortest-Path Algorithms
Shortest path in acyclic graph & Critical path analysis กราฟที่เป็น Acyclic graph สามารถนำมาประยุกต์ใช้หา critical path analysis ได้โดยสามารถแสดงให้เห็นได้จาก activity node graph ดังรูป C(3) A(3) F(3) D(2) H(1) Finish Start B(2) G(2) E(1) K(4)

7 Shortest-Path Algorithms
แต่ละโหนดจะแทนถึง activity และเวลาที่ต้องใช้ และedge ที่เชื่อมระหว่างโหนดจะแสดงถึงลำดับว่า activity ไหนที่ต้องทำก่อนหน้าหลัง กราฟในลักษณะนี้ถูกนำไปใช้อย่างแพร่หลายในการกำหนดตารางการดำเนินงาน time schedule ของงานพวกก่อสร้าง ซึ่งมักใช้เป็นตัวช่วยตอบคำถามหลักๆว่า โครงการนี้จะใช้เวลาทำเสร็จเร็วสุดกี่วัน และช่วยตอบคำถามที่ว่า activity ไหนบ้างที่สามารถทำล่าช้ากว่ากำหนดได้และช้าได้กี่วัน โดยไม่ส่งผลให้ภาพรวมของโครงการช้าไป

8 Shortest-Path Algorithms
โหนดไหนมี input มากกว่า 1 จะต้องใช้ dummy node มาช่วย ซึ่งจะเห็นได้จากโหนด 6,8,11 เป็นต้น ขั้นที่ 1 D/1 3 5 9 B/1 H/1 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 C/2 I/1 J/2 4 7 10 F/4

9 Shortest-Path Algorithms
การหาเวลาที่เร็วที่สุดที่โครงการจะทำเสร็จ(earliest) สามารถหาได้จากการหา path ที่ยาวที่สุดของกราฟ โดยจะเลือกเส้นทางจากค่าที่มากที่สุดดังรูป ขั้นที่ 1 D/1 3 5 9 H/1 B/1 2 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 C/2 I/1 J/2 4 7 10 F/4

10 Shortest-Path Algorithms
Earliest ขั้นที่ 2 3 D/1 3 5 9 H/1 B/1 A/2 2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 C/2 4 I/1 J/2 4 7 10 F/4

11 Shortest-Path Algorithms
Earliest ขั้นที่ 3 3 D/1 3 5 9 H/1 B/1 A/2 2 4 E/2 G/2 K/1 1 2 6 6 8 8 11 11 C/2 4 I/1 J/2 4 7 10 F/4

12 Shortest-Path Algorithms
Earliest ขั้นที่ 4 3 4 D/1 3 5 9 H/1 B/1 2 4 E/2 6 G/2 K/1 1 A/2 2 6 6 8 8 11 11 C/2 4 8 I/1 J/2 4 7 10 F/4

13 Shortest-Path Algorithms
Earliest ขั้นที่ 5 3 4 D/1 3 5 9 H/1 B/1 2 4 6 8 E/2 G/2 K/1 1 A/2 2 6 6 8 8 11 11 C/2 4 8 I/1 J/2 4 7 10 F/4

14 Shortest-Path Algorithms
Earliest ขั้นที่ 6 3 4 D/1 3 5 9 H/1 B/1 2 4 6 8 10 E/2 G/2 K/1 1 A/2 2 6 6 8 8 11 11 C/2 4 8 I/1 J/2 4 7 10 F/4

15 Shortest-Path Algorithms
Earliest ขั้นที่ 7 3 4 11 D/1 3 5 9 H/1 B/1 2 4 6 8 10 E/2 G/2 K/1 1 A/2 2 6 6 8 8 11 11 C/2 4 8 I/1 11 J/2 4 7 10 F/4

16 Shortest-Path Algorithms
Earliest จากรูปให้สังเกตตัวเลขที่อยู่บนวงกลม จะพบว่าเวลาที่เร็วที่สุดที่จะทำโครงการนี้ได้เสร็จคือ 14 วัน ตามเส้นทาง ขั้นที่ 8 3 4 11 D/1 3 5 9 H/1 B/1 2 4 6 8 10 13 E/2 G/2 K/1 1 A/2 2 6 6 8 8 11 11 C/2 4 8 I/1 11 J/2 4 7 10 F/4

17 Shortest-Path Algorithms
Earliest จากรูปให้สังเกตตัวเลขที่อยู่บนวงกลม จะพบว่าเวลาที่เร็วที่สุดที่จะทำโครงการนี้ได้เสร็จคือ 14 วัน ตามเส้นทาง ขั้นที่ 8 3 4 11 D/1 3 5 9 H/1 B/1 2 4 6 8 10 13 14 E/2 G/2 K/1 1 A/2 2 6 6 8 8 11 11 C/2 4 8 I/1 11 J/2 4 7 10 F/4

18 Shortest-Path Algorithms
สำหรับการตอบคำถามว่า activity ไหนพอที่จะล่าช้าได้บ้างโดยไม่ทำให้ทั้งโครงการล่าช้า เราจะต้องเริ่มจากการหา latest completion times ให้ได้ก่อนโดยการทำย้อนกลับจากจุด finish โดยจะเลือกเส้นทางจากค่าที่น้อยที่สุดแทนดังรูป D/1 3 5 9 H/1 B/1 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 13 14 C/2 I/1 J/2 4 7 10 F/4

19 Shortest-Path Algorithms
Latest ขั้นที่ 1 D/1 3 5 9 H/1 B/1 13 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 13 14 C/2 I/1 J/2 4 7 10 F/4 11

20 Shortest-Path Algorithms
Latest ขั้นที่ 2 D/1 3 5 9 H/1 B/1 13 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 10 13 14 C/2 I/1 J/2 4 7 10 F/4 11

21 Shortest-Path Algorithms
Latest ขั้นที่ 3 D/1 3 5 9 H/1 B/1 13 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 8 10 I/1 13 14 C/2 J/2 4 7 10 F/4 11

22 Shortest-Path Algorithms
Latest ขั้นที่ 4 D/1 3 5 9 H/1 B/1 8 13 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 8 8 10 I/1 13 14 C/2 J/2 4 7 10 F/4 8 11

23 Shortest-Path Algorithms
Latest ขั้นที่ 5 D/1 3 5 9 H/1 B/1 7 8 13 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 6 8 8 10 I/1 13 14 C/2 J/2 4 7 10 F/4 4 8 11

24 Shortest-Path Algorithms
Latest ขั้นที่ 6 D/1 3 5 9 H/1 B/1 7 8 13 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 6 8 8 10 I/1 13 14 C/2 J/2 4 7 10 F/4 4 8 11

25 Shortest-Path Algorithms
Latest ขั้นที่ 7 D/1 3 5 9 H/1 B/1 7 8 13 A/2 E/2 G/2 K/1 1 2 6 6 8 8 11 11 2 6 8 8 10 I/1 13 14 C/2 J/2 4 7 10 F/4 4 8 11

26 Shortest-Path Algorithms
Latest ขั้นที่ 8 D/1 3 5 9 H/1 B/1 7 8 13 E/2 G/2 K/1 1 A/2 2 6 6 8 8 11 11 2 6 8 8 10 I/1 13 14 C/2 J/2 4 7 10 F/4 4 8 11

27 Shortest-Path Algorithms
จากนั้นให้เขียนตัวเลขของทั้งที่หาได้จาก Earliest completion time และ Latest completion times เข้าด้วยกันแล้วเมื่อเอาค่า Latest completion ลบด้วยค่า Earliest completion ก็จะได้ค่า slack time ที่ activity นั้นจะล่าช้าได้ แต่ถ้าลบแล้วได้ 0 แสดงว่า activity นั้นจะล่าช้าไม่ได้ หากไม่จะส่งผลให้ทั้งโครงการล่าช้า และเส้นทางที่มีค่า slack time=0 ตลอดเส้นทาง ก็คือ critical path นั่นเอง ดังรูป

28 Shortest-Path Algorithms
Critical Path 3 4 11 D/1 3 5 9 H/1 B/1 7 8 13 2 4 6 8 10 13 14 E/2 G/2 K/1 1 A/2 2 6 6 8 8 11 11 2 6 8 8 10 I/1 13 14 C/2 4 8 11 J/2 4 7 10 F/4 4 8 11

29 Shortest-Path Algorithms
activity time latest earliest slack A 2 B 1 7 3 4 C D 8 E 6 F G 10 H 13 11 I J K 14 ตารางแสดงค่าแต่ละ activity


ดาวน์โหลด ppt Shortest-Path Algorithms

งานนำเสนอที่คล้ายกัน


Ads by Google