204512/บรรยาย 12
จดบันทึกคำบรรยายโดย:
- นาย ชาคริต กิตโร รหัส 50653757
- นาย รักพงค์ แก้วพวง รหัส 50653880
เนื้อหา
Min-cost flow
ให้กราฟ ความจุ บนเส้นเชื่อม หา Max-flow ที่ cost ต่ำที่สุด for flow
ให้ Max flow หาว่า เป็น min-cost หรือไม่ ให้ เป็น residual graph ของ
- Thm Max flow เป็น min-cost เมื่อ และต่อเมื่อไม่มี negative cost cycle
- Prof พิสูจน์ว่า เป็น min-cost จะไม่มี negative cost cycle ใน
- Assume เป็น min-cost และมี negative cost cycle ใน
- ?รูป
- augment ไปตาม cycle ทำให้ cost ของ flow ต่ำลง → ไม่ใช่ min-cost flow contradiction
- Prof พิสูจน์ว่า ถ้า ไม่มี min-cost flow จะมี negative cost cycle ใน
- ให้ เป็น min-cost max flow
- พิจารณา มองในเชิงของ flow;
- พิจารณา → เป็น cyculation ลบกันแล้วหักล้างกัน
- ทำให้ เป็นลบ แสดงว่าต้องมี cycle อย่างน้อย 1 อัน เป็นลบ
- <-
- ผลรวมของ circulation ที่แต่ละวงเป็น cycle ที่มี cost รวมเป็นลบ
- ดังนั้นมีบาง cycle ที่มี cost เป็นลบ
Negative cost cycle cancelling algorithm
- หา max flow
Repeat หา negative cost cycle ใน cancel จาก Until ไม่มี negative cost cycle ใน
- Running Time
- ถ้า cost เป็น integer และ cap เป็น integer
- นิยาม max cost, max cap,
- ในแต่ละรอบ cost ของ flow จะลดลงอย่างน้อย 1 หน่วย
- bound ของ cost เป็น
- แต่ละรอบใช้เวลาหา negative cost cycle ใช้ belman-ford ใช้เวลา
- รวม
- cancel cycle ที่ทำให้ cost ลดลงมากที่สุด
- cancel cycle ที่มี minimum mean cost → ได้ algorithm ที่ run ใน strongly polynomial time
- weakly polynomial time = poly(n m log u log c)
- strongly polynomial time = poly(n m)
Shortest Paths
ระยะทาง D: V-> R
เงื่อนไขที่ D เป็น shortest path
D(x)+l(x,y)-D(y)>=0
Price Function reduced cost
เรียก function p : V-> R ว่าเป็น price function สำหรับ price function p นิยาม reduced cost Cp(x,y) = p(x) + c(x,y)-p(y)
พิจารณา path P = ความยาวของ P บน Cp คือ
พิจารณา cycle W Cp(W)=C(W) หมายเหตุ : ยังไม่ได้ใส่รูป การใช้ reduced cost ไม่มีผลต่อการมีอยู่ของ negative cost cycle
จะกล่าวว่า Price function P เป็น feasible price function ถ้า
Lemma : ถ้ากราฟมี negative cost cycle จะไม่มี feasible price function
Proof.
หมายเหตุ : ยังไม่ได้ใส่รูป
พิจารณา price function p ใดๆ พิจารณา negative cost cycle W Cp(W)=C(W)<0 นั่นคือมีบาง edge
ที่ Cp(e) < 0 นั่นคือ p ไม่ feasible
Optimulity condition
- ไม่มี negative cost cycle ใน
- Thm flow จะเป็น min cost flow ถ้ามี price function
- Assume กราฟไม่มี negative cost cycle หา shortest path จาก ใดๆ แล้วให้ ระยะทางสั้นที่สุดจาก →
- Observation 1 เป็น feasible price function →
- Observation 2 ถ้าพิจารณา shortest path จาก ไปยัง node ใดๆ ทุกๆ edge บน มี ::D
- D
Successive Shortest Path
เป็น Algorithm ที่ใช้่ในการหา Max flow จาก s ไป t
f<- Zero Flow Repeat : หา min cost path บน Gf (*) จาก s ไป t (ด้วย shortest path algorithm ที่ทำงานบนกราฟที่มี cost เป็นลบได้ เช่น Belman-Ford) augment flow ตาม path นั้น until f เป็น max flow
Running Time
1. หา shortest path O(mn) ต่อรอบ
2. augment flow ทั้งหมด <= mC รอบ
3. ทำงานในเวลา O(nC)
Lemma2: ในแต่ละรอบที่ augment flow f ที่ได้เป็น min cost flow
proof : ในรอบแรก f เป็น zero flow เป็น min cost
พิจารณาการ augment ในรอบที่ i - flow f ก่อนการ augment เป็น min cost flow ใน Gf ไม่มี negative cost cycle - ให้ d(u) เป็นระยะทางสั้นที่สุดยน Gf จาก s ที่หาได้ในขึ้นตอน(*) จาก observation 2 จะได้ว่า Cd(e)=0 สำหรับทุกๆ edge e บน shortest path จาก s ไป t
*ยังไม่ได้ใส่รูป
ให้ เป็น flow ที่ได้จากหลักการ augment พิจารณา G claim : d เป็น feasible price function บน G พิจารณา edge(x,y) บน G case1: case2: นั่นคือ C(y,x) shortest path และถูก augment นั่นคือ Cd(y,x)=0 Cd(x,y)=d(x)+c(x,y)-dy = -(-d(x)-c(x,y)+dy) = -(dx(x)+c(x,y)-dy) = -Cd(y,x) -Cd(y,x)>=0 นั้นคือ เป็น min cost flow
Ford Fulkerson + Capacity Scalling
มี parameter Δ เป็น scale บอกว่าจะ augment flow ใน path ครั้งละ Δ หน่วย ให้ Δ , Zero flow Repeat Repeat หา , หา augmenting path ที่มี cap Δ เติม augment Δ หน่วย until หา augmenting path ขนาด Δ ไม่ได้ Δ Δ until Δ
Capacity scalling min cost flow
- แต่ละ node จะมี demand
- โดย parameter Δ จะเติม flow ครั้งละ Δ
- ให้
- Δ เป็นเซตของ node ที่ Δ
- Δ เป็นเซตของ node ที่ &minus Δ
- Δ เป็น residual graph ที่ทุก edge มี cap อย่างน้อย Δ
- รูป?
- หลังจาก Δ augment flow ที่เหลือไม่เกิน Δ
- Δ ไม่มี negative cost cycle → มี feasible price function
- ΔΔ
- อาจมี negative cost cycle นั้นคือ ไม่มี min cost บน ที่
- สร้างคู่ demand excess