ผลต่างระหว่างรุ่นของ "01204512/congestion1"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(minor updates)
(ย้อนการแก้ไขของ CarolAnderson (Talk) ไปยังรุ่นของ Jittat)
 
แถว 51: แถว 51:
 
เมื่อ <math>e_i</math> คือ edge แรกใน path ที่มีจำนวน edge เท่ากับ <math>i</math> edges (สังเกตว่าทุก ๆ edge ใน path เดี่ยวกัน จะต้องมี congestion เท่ากัน)
 
เมื่อ <math>e_i</math> คือ edge แรกใน path ที่มีจำนวน edge เท่ากับ <math>i</math> edges (สังเกตว่าทุก ๆ edge ใน path เดี่ยวกัน จะต้องมี congestion เท่ากัน)
  
สังเกตว่า ผลลัพธ์ที่เราได้ จะต้องเป็น flow ที่มีขนาด k หน่วย  จากจุดสมดุลย์ข้างต้น เราส่ง flow ไปแล้วทั้งสิ้นเท ... \n
+
สังเกตว่า ผลลัพธ์ที่เราได้ จะต้องเป็น flow ที่มีขนาด k หน่วย  จากจุดสมดุลย์ข้างต้น เราส่ง flow ไปแล้วทั้งสิ้นเท่ากับ
  
== The Radical Linguist Noam Chomsky ==
+
<math>c(e_1)+c(e_2)+\cdots+c(e_k)</math> หน่วย ดังนั้นเราจะ scale flow ดังกล่าวลง เพื่อให้ได้ผลรวมเท่ากับ <math>k</math> เราจะต้องหาตัวคูณ <math>\alpha</math> ที่สอดคล้องกับ
  
For centuries experts held that every language is unique. Then one day in 1956, a young linguistics professor gave a legendary presentation at the Symposium on Information Theory at MIT. He argued that every intelligible sentence conforms not only to the rules of its particular language but to a universal grammar that encompasses all languages.
+
<math>\alpha\cdot(c(e_1)+c(e_2)+\cdots+c(e_k))=k</math> นั่นคือ  <math>\alpha=\frac{k}{c(e_1)+c(e_2)+\cdots+c(e_k)}</math>
  
[[http://goodvillenews.com/The-Radical-Linguist-Noam-Chomsky-WKTWnp.html The Radical Linguist Noam Chomsky]]
+
จัดนิพจน์ใหม่ ตามสมการด้านบน โดยแทนค่า <math>c(e_i)=c(e_1)/i</math> เราจะได้ว่า
  
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
+
<math>
 +
\alpha = \frac{k}{c(e_1)+\frac{c(e_1)}{2}+\frac{c(e_1)}{3}+\cdots+\frac{c(e_1)}{k}}
 +
= \frac{k}{c(e_1)\left(1+\frac{1}{2}+\frac{1}{3}+\cdots+\frac{1}{k}\right)}
 +
</math>
  
== The Story of Change ==
+
สังเกตว่าจำนวน flow ทั้งหมดที่ผ่านเส้นเชื่อม <math>e_1</math> หลังจากการ scale ด้วย <math>\alpha</math> แล้ว จะมีค่าเท่ากับ
  
"Ive come to see that we have two parts to ourselves; its almost like two muscles -- a consumer muscle and a citizen muscle. Our consumer muscle, which is fed and exercised constantly, has grown strong: So strong that "consumer" has become our primary identity, our reason for being. Were told so often that were a nation of consumers that we dont blink when the media use "consumer" and "person" interchangeably."
+
<math>
 +
\alpha\cdot c(e_1) = \frac{k}{1+\frac{1}{2}+\frac{1}{3}+\cdots+\frac{1}{k}}\approx k/{\ln k}
 +
</math>
  
  [[http://goodvillenews.com/The-Story-of-Change-hgReTV.html The Story of Change]]
+
ซึ่งดีกว่าค่า congestion <math>k</math> ในตอนแรก
  
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
+
=== การปรับระยะทางเป็นกำลังสอง ===
 +
แทนที่เราจะปรับแบบเชิงเส้น เราจะปรับความยาวให้มากขึ้น โดยเราจะให้ <math>\ell(e)=c(e)^2</math> สำหรับทุก ๆ เส้นเชื่อม
  
== The Importance of Learned Optimism ==
+
ในกรณีนี้ เราจะได้ว่า เส้นทางทุกเส้นจะมีความยาวเท่ากันก็ต่อเมื่อ
  
What 25 years of research reveal about the cognitive skills of happiness and finding lifes greater purpose.The illiterate of the 21st century, Alvin Toffler famously said, will not be those who cannot read and write, but those who cannot learn, unlearn, and relearn. Our outlook on the world and our daily choices of disposition and behavior are in many ways learned patterns to which Tofflers insight applies with all the greater urgency
+
<math>
 +
c(e_1)^2=2\cdot c(e_2)^2=3\cdot c(e_3)^2=\cdots = k\cdot c(e_k)^2
 +
</math>
  
[[http://goodvillenews.com/The-Importance-of-Learned-Optimism-jmZjsG.html The Importance of Learned Optimism]]
+
หรือ <math>c(e_i) = \sqrt{c(e_1)^2/i} = c(e_1)/\sqrt{i}</math>
  
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
+
เราแทนค่านี้ลงไปใหม่ ในการวิเคราะห์เดิมในกรณีที่ปรับค่าความยาวเป็นเชิงเสิ้น เราจะได้ว่า
  
== Little Things You Can Do to Make the World a Lot Nicer ==
+
<math>
 +
\alpha = \frac{k}{c(e_1)+\frac{c(e_1)}{\sqrt{2}}+\frac{c(e_1)}{\sqrt{3}}+\cdots+\frac{c(e_1)}{\sqrt{k}}}
 +
= \frac{k}{c(e_1)\left(1+\frac{1}{\sqrt{2}}+\frac{1}{\sqrt{3}}+\cdots+\frac{1}{\sqrt{k}}\right)}
 +
</math>
  
A few years ago, Debbie Tenzer was feeling overwhelmed by all the crises in the news. But rather than give in to despair, she thought, Maybe I cant solve our big problems, but I know I can do something.
+
ดังนั้นจำนวน flow ทั้งหมดผ่านเส้นเชื่อม <math>e_1</math> หลังจากการ scale ด้วย <math>\alpha</math> แล้ว จะมีค่าเท่ากับ
  
[[http://goodvillenews.com/Little-Things-You-Can-Do-to-Make-the-World-a-Lot-Nicer-PxxL5F.html Little Things You Can Do to Make the World a Lot Nicer]]
+
<math>
 +
c(e_1)\cdot\frac{k}{c(e_1)\left(1+\frac{1}{\sqrt{2}}+\frac{1}{\sqrt{3}}+\cdots+\frac{1}{\sqrt{k}}\right)}=
 +
\frac{k}{1+\frac{1}{\sqrt{2}}+\frac{1}{\sqrt{3}}+\cdots+\frac{1}{\sqrt{k}}}
 +
</math>
  
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
+
สังเกตว่า <math>\frac{1}{\sqrt{i}}\geq \frac{1}{\sqrt{k}}</math> เมื่อ <math>1\leq i \leq k</math> ดังนั้น
  
== Journey to the End of the Earth ==
+
<math>\frac{1}{1}+\frac{1}{\sqrt{2}}+\frac{1}{\sqrt{3}}+\cdots+\frac{1}{\sqrt{k}}\geq
 +
k\cdot\frac{1}{\sqrt{k}}=
 +
\sqrt{k}</math>
  
I realized quickly, after just having traveled to various villages in rural India, that distance is relative. Hailing from a city like San Francisco, going even a few hours outside of town is far but twelve hours outside of a major city? I half expected to run into another country.
+
ดังนั้น ค่า congestion บน <math>e_1</math> หลักการ scale จะมีค่าไม่เกิน <math> k/\sqrt{k} = \sqrt{k}</math>
  
[[http://goodvillenews.com/Journey-to-the-End-of-the-Earth-tbNql3.html Journey to the End of the Earth]]
+
=== การปรับระยะทางแบบยกกำลัง ===
 +
ถ้าเราจะปรับความยาวให้มากขึ้น โดยให้ <math>\ell(e)=2^{c(e)}</math> สำหรับทุก ๆ เส้นเชื่อม
  
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
+
ในกรณีนี้ เราจะได้ว่า เส้นทางทุกเส้นจะมีความยาวเท่ากันก็ต่อเมื่อ
 +
 
 +
<math>
 +
2^{c(e_1)}=2\cdot 2^{c(e_2)}=3\cdot 2^{c(e_3)}=\cdots = k\cdot 2^{c(e_k)}
 +
</math>
 +
 
 +
หรือ <math>c(e_i) = \log 2^{c(e_1)}/i = c(e_1)-\log i</math>  เมื่อนำสมการนี้เข้าไปแทนในการวิเคราะห์เราสามารถแสดงได้ไม่ยากว่า congestion ที่มากที่สุด จะมีค่าไม่เกิน <math>O(\log k)</math>

รุ่นแก้ไขปัจจุบันเมื่อ 06:03, 5 สิงหาคม 2555

หน้านี้เป็นเอกสารประกอบวิชา 01204512 เนื้อหาจาก http://www.cs.berkeley.edu/~satishr/cs270/sp12/ lecture 1

ปัญหา 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 เท่านั้น

Cong-512.png

สังเกตว่าทุก ๆ path จะพยายามไปใช้เส้นทางที่สั้นที่สุดพร้อม ๆ กันหมด เราจะพยายามแก้ปัญหานี้โดยการทำให้เส้นทางที่สั้นที่สุดมีความ "น่าใช้" ลดลงเรื่อย ๆ เราจะทดลองหลาย ๆ แบบ

การปรับระยะทางแบบเชิงเส้น

เราจะปรับความยาวของ edge ตาม congestion ของ edge นั้น กล่าวคือ ในแต่ละรอบที่เราหาเส้นทางที่สั้นที่สุดเราจะให้ สำหรับทุก ๆ เส้นเชื่อม เราจะทยอยเพิ่ม path เข้าไปในระบบจนกว่าระบบจะ "นิ่ง"

เมื่อใดที่เราจะเรียกว่าระบบ "นิ่ง"? ถ้าเราเลือกเส้นทางใด เราจะเพิ่มค่า congestion ให้กับ edge บน เส้นทางนั้น ทำให้ในรอบต่อไปเวลาเราจะเลือกเส้นทางที่สั้นที่สุด เราจะเลือกได้เส้นทางอื่น ในที่นี้เราจะพิจารณาแบบง่ายไปก่อนว่า เราจะเรียกว่าระบบนิ่ง เมื่อความยาวของ path ใด ๆ เท่ากัน

สังเกตว่าในกรณีนี้ ความยาวของ edge ใน path ที่มี edge เดียว (เส้นล่างสุด) จะต้องยาวเท่ากับเส้นอื่น ๆ ทั้ง เส้น นั่นคือเราจะได้ว่า

เมื่อ คือ edge แรกใน path ที่มีจำนวน edge เท่ากับ edges (สังเกตว่าทุก ๆ edge ใน path เดี่ยวกัน จะต้องมี congestion เท่ากัน)

สังเกตว่า ผลลัพธ์ที่เราได้ จะต้องเป็น flow ที่มีขนาด k หน่วย จากจุดสมดุลย์ข้างต้น เราส่ง flow ไปแล้วทั้งสิ้นเท่ากับ

หน่วย ดังนั้นเราจะ scale flow ดังกล่าวลง เพื่อให้ได้ผลรวมเท่ากับ เราจะต้องหาตัวคูณ ที่สอดคล้องกับ

นั่นคือ

จัดนิพจน์ใหม่ ตามสมการด้านบน โดยแทนค่า เราจะได้ว่า

สังเกตว่าจำนวน flow ทั้งหมดที่ผ่านเส้นเชื่อม หลังจากการ scale ด้วย แล้ว จะมีค่าเท่ากับ

ซึ่งดีกว่าค่า congestion ในตอนแรก

การปรับระยะทางเป็นกำลังสอง

แทนที่เราจะปรับแบบเชิงเส้น เราจะปรับความยาวให้มากขึ้น โดยเราจะให้ สำหรับทุก ๆ เส้นเชื่อม

ในกรณีนี้ เราจะได้ว่า เส้นทางทุกเส้นจะมีความยาวเท่ากันก็ต่อเมื่อ

หรือ

เราแทนค่านี้ลงไปใหม่ ในการวิเคราะห์เดิมในกรณีที่ปรับค่าความยาวเป็นเชิงเสิ้น เราจะได้ว่า

ดังนั้นจำนวน flow ทั้งหมดผ่านเส้นเชื่อม หลังจากการ scale ด้วย แล้ว จะมีค่าเท่ากับ

สังเกตว่า เมื่อ ดังนั้น

ดังนั้น ค่า congestion บน หลักการ scale จะมีค่าไม่เกิน

การปรับระยะทางแบบยกกำลัง

ถ้าเราจะปรับความยาวให้มากขึ้น โดยให้ สำหรับทุก ๆ เส้นเชื่อม

ในกรณีนี้ เราจะได้ว่า เส้นทางทุกเส้นจะมีความยาวเท่ากันก็ต่อเมื่อ

หรือ เมื่อนำสมการนี้เข้าไปแทนในการวิเคราะห์เราสามารถแสดงได้ไม่ยากว่า congestion ที่มากที่สุด จะมีค่าไม่เกิน