ผลต่างระหว่างรุ่นของ "204512/บรรยาย 7"
แถว 7: | แถว 7: | ||
ถ้า<br> | ถ้า<br> | ||
i) สำหรับทุกๆคู่ u,v : <math>f(u,v) \le cap(u,v)</math> [Capacity Constraint]<br> | i) สำหรับทุกๆคู่ u,v : <math>f(u,v) \le cap(u,v)</math> [Capacity Constraint]<br> | ||
− | ii)สำหรับทุกๆ u,v : | + | ii)สำหรับทุกๆ u,v : f(u,v) = -f(u,v) [Skew Symmetry]<br> |
iii)สำหรับทุกๆ u,v .....[Flow conservation Constraint]<br> | iii)สำหรับทุกๆ u,v .....[Flow conservation Constraint]<br> | ||
แถว 19: | แถว 19: | ||
'''Lemma''' : สำหรับทุกๆ s-t cut (...),f(...)=|f|<br> | '''Lemma''' : สำหรับทุกๆ s-t cut (...),f(...)=|f|<br> | ||
− | ''' | + | '''Proof''' : ....<br> |
+ | flow ที่หน้าตัดใดๆ เท่ากับ Flow ที่ออกจาก soure นั้นๆ<br> | ||
+ | <br> | ||
+ | สำหรับ cut () ใด ๆ ให้...<br> | ||
+ | <br> | ||
+ | '''Lemma''' : สำหรับ s-t cut()ใดๆ และ flow f ใดๆ <br> | ||
+ | ::|f| = <math>f(x,...)\le cap(...)</math><br> | ||
+ | '''Proof''' : ลองคิดเอง???<br> | ||
+ | สำหรับ flow f , capacity บนเส้นเชื่อม (u,v) ใน Residual graph Rf ของ f เท่ากับ<br> | ||
+ | ......<br> | ||
+ | ให้ Rf มีเฉพาะเส้นเชื่อมที่มี capacity เป็นบวก <br> | ||
+ | flow f เป็น maximum flow ถ้า |f| มากที่สุด<br> | ||
+ | '''Lemma''' : ถ้า f* เป็น maximum flow, f เป็น flow ใดๆ แล้ว f'=f*-f จะเป็น flow ใน Rf เมื่อ f'(x,y)=(f*-f)(x,y)=f*(x,y)-f(x,y)<br> | ||
+ | '''Proof''' : ตรวจสอบ capacity constraint พิจารณา (u,v)<br> | ||
+ | :::f'(u,v)=f*(u,v)-f(u,v)<=cap(u,v)-f(u,v) = Rf(u,v)<br> | ||
+ | |||
+ | ===Flow Augmenting Step=== | ||
+ | เรียก path ใน Rf จาก s ไป t ว่าเป็น augmenting path <br> | ||
+ | :1. f<-0 | ||
+ | :2. คำนวณ Rf | ||
+ | :3. หา augmenting path ... | ||
+ | :4. ถ้าหาไม่ได้ จบ | ||
+ | :5. ให้ C = .... | ||
+ | :6. ปรับค่า f ด้วย flow บน path p ที่มีขนาด C | ||
+ | :7. กลับไป step2 |
รุ่นแก้ไขเมื่อ 17:11, 26 กรกฎาคม 2550
Network Flows
........
ให้กราฟมีทิศทาง
ฟังก์ชันความจุ cap : VxV -> .... และ .....
ฟังก์ชัน f : จะเรียกว่าเป็น flow
ถ้า
i) สำหรับทุกๆคู่ u,v : [Capacity Constraint]
ii)สำหรับทุกๆ u,v : f(u,v) = -f(u,v) [Skew Symmetry]
iii)สำหรับทุกๆ u,v .....[Flow conservation Constraint]
ขนาดของ flow f ,|f|, คือ
........
มี Flow s-t
จะเรียก (x,...)ว่าเป็น s-t cut ถ้า ....และ .....
สำหรับ cut(x,...),f(x,..)...
Lemma : สำหรับทุกๆ s-t cut (...),f(...)=|f|
Proof : ....
flow ที่หน้าตัดใดๆ เท่ากับ Flow ที่ออกจาก soure นั้นๆ
สำหรับ cut () ใด ๆ ให้...
Lemma : สำหรับ s-t cut()ใดๆ และ flow f ใดๆ
- |f| =
- |f| =
Proof : ลองคิดเอง???
สำหรับ flow f , capacity บนเส้นเชื่อม (u,v) ใน Residual graph Rf ของ f เท่ากับ
......
ให้ Rf มีเฉพาะเส้นเชื่อมที่มี capacity เป็นบวก
flow f เป็น maximum flow ถ้า |f| มากที่สุด
Lemma : ถ้า f* เป็น maximum flow, f เป็น flow ใดๆ แล้ว f'=f*-f จะเป็น flow ใน Rf เมื่อ f'(x,y)=(f*-f)(x,y)=f*(x,y)-f(x,y)
Proof : ตรวจสอบ capacity constraint พิจารณา (u,v)
- f'(u,v)=f*(u,v)-f(u,v)<=cap(u,v)-f(u,v) = Rf(u,v)
- f'(u,v)=f*(u,v)-f(u,v)<=cap(u,v)-f(u,v) = Rf(u,v)
Flow Augmenting Step
เรียก path ใน Rf จาก s ไป t ว่าเป็น augmenting path
- 1. f<-0
- 2. คำนวณ Rf
- 3. หา augmenting path ...
- 4. ถ้าหาไม่ได้ จบ
- 5. ให้ C = ....
- 6. ปรับค่า f ด้วย flow บน path p ที่มีขนาด C
- 7. กลับไป step2