ผลต่างระหว่างรุ่นของ "204512/บรรยาย 7"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(wqaRCOHpEvNiNcogd)
 
(ไม่แสดง 40 รุ่นระหว่างกลางโดยผู้ใช้ 13 คน)
แถว 1: แถว 1:
==Network Flows==
+
Smack-dab what I was loonkig for-ty!
 
 
หาการไหลของ flow ที่มีขนาดมากที่สุด จะเท่ากับขนาดของ flow
 
<br>
 
 
 
[[ภาพ:N01.PNG]]
 
 
 
<br>
 
ให้กราฟมีทิศทาง <math>G = (V,E)</math><br>
 
ฟังก์ชันความจุ cap :<math>VxV \to R^ +</math> และ s,t &isin; V<br>
 
ฟังก์ชัน f : <math>VxV \to R</math> จะเรียกว่าเป็น flow <br>
 
ถ้า<br>
 
i) สำหรับทุกๆคู่ u,v : <math>f(u,v)  \le cap(u,v)</math> [Capacity Constraint]<br>
 
 
 
ii)สำหรับทุกๆ u,v : <math>f(u,v) = -f(u,v)</math> [Skew Symmetry]<br>
 
 
 
iii)สำหรับทุกๆ <math>{\rm u } \notin {\rm  \{ s,t\} , }\sum\limits_{{\rm v} \in {\rm V}} {{\rm f(u,v)  =  0}}
 
</math> [Flow conservation Constraint]<br>
 
 
 
<u>ขนาดของ flow f</u> ,|f|, คือ<br>
 
<br>
 
<math>\sum\limits_{v \in V} {f(s,v)}
 
</math><br>
 
<br>
 
มี Flow s-t
 
<br>
 
[[ภาพ:N02.PNG]]
 
<br>
 
จะเรียก <math>(x,\bar x)</math> ว่าเป็น s-t cut ถ้า <math>s \in x,t \in \bar x
 
</math> และ <math>\bar x = v - x</math><br>
 
 
 
สำหรับ cut <math>(x,\bar x)</math>,<math>f(x,\bar x) = \sum\limits_{u \in x} {\sum\limits_{v \in \bar x} {f(u,v)} }</math><br>
 
<br>
 
 
 
'''<u>Lemma</u>''' : สำหรับทุกๆ s-t cut <math>(x,\bar x),f(x,\bar x) = |f|</math><br><br>
 
'''<u>Proof</u>'''  : <math>f(x,\bar x) = \sum\limits_{u \in x} {\sum\limits_{v \in \bar x} {f(u,v) = \sum\limits_{u \in x} {\sum\limits_v {f(u,v) - \sum\limits_{u \in x} {\sum\limits_{v \in x} {f(u,v)} } } } } } </math><br>
 
 
 
:::::= <math>\sum\limits_v {f(s,v) = |f|}</math><br>
 
<br>
 
flow ที่หน้าตัดใดๆ เท่ากับ Flow ที่ออกจาก soure นั้นๆ<br>
 
<br>
 
สำหรับ cut <math>(x,\bar x)</math> ใด ๆ ให้ <math>cap(x,\bar x) = \sum\limits_{u \in x} {\sum\limits_{v \in \bar x} {cap(u,v)} }</math><br>
 
<br>
 
'''<u>Lemma</u>''' : สำหรับ s-t cut <math>(x,\bar x)</math> ใดๆ และ flow f ใดๆ <br>
 
::<math>|f| = f(x,\bar{x})\le cap(x,\bar{x})</math><br>
 
'''<u>Proof</u>''' : ลองคิดเอง???<br><br>
 
สำหรับ flow f , capacity บนเส้นเชื่อม (u,v) ใน Residual graph R<sub>f</sub> ของ f เท่ากับ <br>
 
::<math>cap(u,v) - f(u,v) \equiv r_f (u,v)</math><br>
 
<br>
 
ให้ R<sub>f</sub> มีเฉพาะเส้นเชื่อมที่มี capacity เป็นบวก <br>
 
flow f เป็น maximum flow ถ้า |f| มากที่สุด<br><br>
 
'''<u>Lemma</u>''' : ถ้า f* เป็น maximum flow, f เป็น flow ใดๆ แล้ว <br>
 
:::f'=f*-f จะเป็น flow ใน R<sub>f</sub> เมื่อ f'(x,y)=(f*-f)(x,y)=f*(x,y)-f(x,y)<br><br>
 
'''<u>Proof</u>''' : check 
 
:::capaciy constraint <math>\forall  \cup v,f(u,v) \le cap(u,v)</math><br>
 
:::skew symmetry <math>\forall  \cup v,f(u,v) =  - f(u,v)</math><br>
 
:::conservation <math>\forall v \notin \{ s,t\} ,\sum\limits_w {f(v,w) = \emptyset }</math><br>
 
 
 
:ตรวจสอบ capacity constraint พิจารณา (u,v)<br>
 
:::<math>f'(u,v) = f^* (u,v) - f(u,v)\le cap(u,v) - f(u,v) = r_f (u,v)</math><br>
 
 
 
===Flow Augmenting Step===
 
 
 
เรียก path ใน R<sub>f</sub> จาก s ไป  t ว่าเป็น augmenting path <br>
 
:1. <math>f \leftarrow \emptyset</math>
 
:2. คำนวณ R<sub>f</sub>
 
:3. หา augmenting path P &isin; R<sub>f</sub>
 
:4. ถ้าหาไม่ได้ จบ
 
:5. ให้ <math>C = \min _{e \in P} r_f (e)</math>
 
:6. ปรับค่า f ด้วย flow บน path p ที่มีขนาด C
 
:7. กลับไป step2
 
<br>
 
 
 
'''<u>Theorem</u>''' : ถ้า FF จบ, จะมี s-t cut <math>(x,\bar x)</math> ที่ <math>|f| = cap(x,\bar x)</math> นั่นคือ f เป็น maximum flow<br>
 
<br>
 
'''<u>Proof</u>''' : ถ้ามี cut ดังกล่าว f เป็น maximum flow <br>
 
พิจารณา <math>R_f</math> เนื่องจาก FF terminate ไม่มี path จาก s ไป t ใน <math>R_f</math><br>
 
:<math>x = \{ v \in V|</math> มี path จาก s ไป v ใน <math>R_f \}</math> จะได้ว่า <math>x \notin t</math><br>
 
<br>
 
:1. จะแสดงว่า f(u,v)=0 สำหรับทุกๆ
 

รุ่นแก้ไขปัจจุบันเมื่อ 03:53, 1 ตุลาคม 2554

Smack-dab what I was loonkig for-ty!