ผลต่างระหว่างรุ่นของ "204512-53/lecture7"
ไปยังการนำทาง
ไปยังการค้นหา
Kiatchumpol (คุย | มีส่วนร่วม) |
Kiatchumpol (คุย | มีส่วนร่วม) |
||
แถว 11: | แถว 11: | ||
=Shortest Paths= | =Shortest Paths= | ||
− | มี G = (v,E) โดยที่ n = |v| | + | มี <math>G = (v,E)</math> โดยที่ <math>n = |v|</math> |
− | มี <math>l</math> : E -> R โดยที่ m = |E| | + | มี <math>l</math> : <math>E -> R </math> โดยที่ <math>m = |E|</math> |
− | ให้ <math>d(u)</math> สำหรับ u ใดๆ แทนระยะทางที่สั้นที่สุดจาก s ไป u | + | ให้ <math>d(u)</math> สำหรับ <math>u</math> ใดๆ แทนระยะทางที่สั้นที่สุดจาก <math>s</math> ไป <math>u</math> |
− | '''Lemma:''' ถ้าให้ <math> | + | '''Lemma:''' ถ้าให้ <math>d_T (s,v)</math> เป็นระยะทางจาก <math>s</math> ไป <math>v</math> บน <math>T</math> แล้ว <math>T</math> จะเป็น shortest path tree ก็ต่อเมื่อ(if and only if) สำหรับทุกๆ เส้นเชื่อม <math>(u,v) \in E </math> |
<math>d_T (s,u) + l(u,v) \geq d_T (s,v) </math> | <math>d_T (s,u) + l(u,v) \geq d_T (s,v) </math> | ||
[[ไฟล์:lecture7_figure1.png]] | [[ไฟล์:lecture7_figure1.png]] | ||
+ | |||
+ | |||
+ | พิจารณาตัวอย่าง | ||
+ | |||
+ | [[ไฟล์:lecture7_figure2.png]] | ||
+ | |||
+ | จากรูปข้างบน ในที่นี้ <math>d_T(s,v)</math> ไม่ใช่ shortest path แล้ว ถ้าเราอยากทราบ shortest path เราก็บอก parent ของ <math>v</math> ให้วิ่งไปหา shortest path ทางอื่น อย่าวิ่งผ่านมาที่ <math>v</math> (นี่คือการ update shortest path) | ||
+ | |||
+ | |||
+ | '''Framework''' ของการหา shortest path | ||
+ | |||
+ | * ทุกๆ โหนดเก็บ parent , โหนด <math>u</math> เก็บ <math>p(u)</math> ที่เป็น parent ใน candidate shortest path tree | ||
+ | |||
+ | (เริ่มต้น) <math>p(s) = nil </math> | ||
+ | <math> \forall{u} \in V, p(u) = nil</math> | ||
+ | |||
+ | * ทุกๆ โหนด <math>u</math> เก็บ <math>D(u)</math> ซึ่งแทนระยะทางที่สั้นที่สุด''"เท่าที่ทราบ"'' จาก <math>s</math> ไป <math>u</math> | ||
+ | |||
+ | (เริ่มต้น) <math>D(s) = 0 </math> | ||
+ | <math> \forall{u} \in V - \{s\} , D(u) = \infty </math> |
รุ่นแก้ไขเมื่อ 09:09, 29 สิงหาคม 2553
จดบันทึกคำบรรยายโดย:
5314550032 นาย กิตติกานต์ ดวงประภา
5314550041 นาย เกียรติชุมพล สุทธิศิริกุล
5314550059 นาย ฉนานนท์ ตันสกุล
Shortest Paths
มี โดยที่
มี : โดยที่
ให้ สำหรับ ใดๆ แทนระยะทางที่สั้นที่สุดจาก ไป
Lemma: ถ้าให้ เป็นระยะทางจาก ไป บน แล้ว จะเป็น shortest path tree ก็ต่อเมื่อ(if and only if) สำหรับทุกๆ เส้นเชื่อม
พิจารณาตัวอย่าง
จากรูปข้างบน ในที่นี้ ไม่ใช่ shortest path แล้ว ถ้าเราอยากทราบ shortest path เราก็บอก parent ของ ให้วิ่งไปหา shortest path ทางอื่น อย่าวิ่งผ่านมาที่ (นี่คือการ update shortest path)
Framework ของการหา shortest path
- ทุกๆ โหนดเก็บ parent , โหนด เก็บ ที่เป็น parent ใน candidate shortest path tree
(เริ่มต้น)
- ทุกๆ โหนด เก็บ ซึ่งแทนระยะทางที่สั้นที่สุด"เท่าที่ทราบ" จาก ไป
(เริ่มต้น)