ผลต่างระหว่างรุ่นของ "01204512/congestion1"
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 20: | แถว 20: | ||
ปัญหานี้อาจจะยากสักหน่อย เราจะพิจารณาปัญหาที่ง่ายลง แทนที่เราจะ minimize ค่า congestion ที่สูงที่สุด เราจะ minimize ค่าเฉลี่ยของ congestion กล่าวคือ เราจะ: | ปัญหานี้อาจจะยากสักหน่อย เราจะพิจารณาปัญหาที่ง่ายลง แทนที่เราจะ minimize ค่า congestion ที่สูงที่สุด เราจะ minimize ค่าเฉลี่ยของ congestion กล่าวคือ เราจะ: | ||
− | |||
<center> | <center> | ||
minimize <math>\frac{1}{m} \sum_{e\in E} c(e)</math>, เมื่อ <math>m</math> แทนจำนวนเส้นเชื่อม | minimize <math>\frac{1}{m} \sum_{e\in E} c(e)</math>, เมื่อ <math>m</math> แทนจำนวนเส้นเชื่อม | ||
แถว 26: | แถว 25: | ||
สังเกตว่าผลรวมของ congestion บนทุก ๆ เส้นเชื่อมนั้น เท่ากับผลรวมของความยาวของทุก ๆ path ดังนั้นเป้าหมายที่เราต้องการจะ minimize คือ | สังเกตว่าผลรวมของ congestion บนทุก ๆ เส้นเชื่อมนั้น เท่ากับผลรวมของความยาวของทุก ๆ path ดังนั้นเป้าหมายที่เราต้องการจะ minimize คือ | ||
− | |||
<center> | <center> | ||
<math>\frac{\sum_{i}\ell(p_i)}{m}</math> | <math>\frac{\sum_{i}\ell(p_i)}{m}</math> | ||
</center> | </center> | ||
+ | ซึ่งปัญหานี้ เราสามารถแก้ได้โดยง่าย โดยใช้อัลกอริทึมสำหรับ shortest path | ||
− | + | สังเกตเพิ่มเติมว่า ค่าคำตอบของปัญหา average congestion minimization นี้ เป็น lower bound ของค่าของคำตอบของปัญหา congestion minimization (เพราะอะไร?) ดังนั้น ถ้าเราจะแก้ปัญหา congestion minimization โดยการใช้วิธีของปัญหาแรกเลยจะได้หรือไม่? | |
+ | |||
+ | ถ้าเราพิจารณาให้ดี เราจะพบว่า มีตัวอย่างง่าย ๆ ที่ผลลัพธ์ที่ได้ มี congestion เท่ากับ <math>k</math> ในขณะที่คำตอบที่ดีที่สุดให้ congestion แค่ 1 เท่านั้น |
รุ่นแก้ไขเมื่อ 09:35, 27 มิถุนายน 2555
หน้านี้เป็นเอกสารประกอบวิชา 01204512
ปัญหา congestion minimization
ให้กราฟ และเซตของคู่ของจุดยอด จำนวน คู่ เราต้องการหาเซตของเส้นทาง (path) ที่เชื่อมจุดยอดแต่ละคู่ โดยต้องการทำให้จำนวน path ที่ผ่านเส้นเชื่อมใด ๆ มีค่าน้อยที่สุด (เราจะเรียกจำนวนผ่านที่ผ่านเส้นเชื่อมใด ๆ ว่าเป็น congestion ของเส้นเชื่อมนั้น)
คำตอบใด ๆ ของปัญหานี้ คือเซตของ path จำนวน เส้น แต่เราต้องการให้ path เหล่านี้ กระจายกันไป path เหล่านี้ทำให้เกิด congestion บนเส้นเชื่อม เป้าหมายที่เราต้องการจะทำให้มีค่าต่ำสุดของปัญหานี้คือ congestion ที่มากที่สุดบนเส้นเชื่อมใด ๆ
ถ้าเขียนให้ชัดเจนก็คือ เราต้องการจะ:
หา path:
ที่ เชื่อมระหว่าง กับ สำหรับ
เพื่อจะ minimize
เมื่อ คือจำนวน path ที่ผ่านเส้นเชื่อม
ปัญหานี้อาจจะยากสักหน่อย เราจะพิจารณาปัญหาที่ง่ายลง แทนที่เราจะ minimize ค่า congestion ที่สูงที่สุด เราจะ minimize ค่าเฉลี่ยของ congestion กล่าวคือ เราจะ:
minimize , เมื่อ แทนจำนวนเส้นเชื่อม
สังเกตว่าผลรวมของ congestion บนทุก ๆ เส้นเชื่อมนั้น เท่ากับผลรวมของความยาวของทุก ๆ path ดังนั้นเป้าหมายที่เราต้องการจะ minimize คือ
ซึ่งปัญหานี้ เราสามารถแก้ได้โดยง่าย โดยใช้อัลกอริทึมสำหรับ shortest path
สังเกตเพิ่มเติมว่า ค่าคำตอบของปัญหา average congestion minimization นี้ เป็น lower bound ของค่าของคำตอบของปัญหา congestion minimization (เพราะอะไร?) ดังนั้น ถ้าเราจะแก้ปัญหา congestion minimization โดยการใช้วิธีของปัญหาแรกเลยจะได้หรือไม่?
ถ้าเราพิจารณาให้ดี เราจะพบว่า มีตัวอย่างง่าย ๆ ที่ผลลัพธ์ที่ได้ มี congestion เท่ากับ ในขณะที่คำตอบที่ดีที่สุดให้ congestion แค่ 1 เท่านั้น