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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 3: แถว 3:
 
........<br>
 
........<br>
 
ให้กราฟมีทิศทาง <math>G = (V,E)</math><br>
 
ให้กราฟมีทิศทาง <math>G = (V,E)</math><br>
ฟังก์ชันความจุ cap :<math>\[VxV \to R^ + \]</math> และ s,t &isin; V<br>
+
ฟังก์ชันความจุ cap :<math>VxV \to R^ +</math> และ s,t &isin; V<br>
ฟังก์ชัน f : <math>\[VxV \to R\]</math> จะเรียกว่าเป็น flow <br>
+
ฟังก์ชัน f : <math>VxV \to R</math> จะเรียกว่าเป็น flow <br>
 
ถ้า<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 : <math>f(u,v) = -f(u,v)</math> [Skew Symmetry]<br>
 
ii)สำหรับทุกๆ u,v : <math>f(u,v) = -f(u,v)</math> [Skew Symmetry]<br>
iii)สำหรับทุกๆ u &notin; {s,t},&sum;f(u,v)=0 [Flow conservation Constraint]<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>
 
<u>ขนาดของ flow f</u> ,|f|, คือ<br>
&sum;f(s,v)<br>
+
<br>
 +
<math>\sum\limits_{v \in V} {f(s,v)}
 +
</math><br>
 
<br>
 
<br>
 
มี Flow s-t<br>
 
มี Flow s-t<br>
จะเรียก (x,\bar{x})ว่าเป็น s-t cut ถ้า s &isin; x,t &isin; \bar{x} และ \bar{x}=v-x<br>
+
จะเรียก <math>(x,\bar x)</math> ว่าเป็น s-t cut ถ้า <math>s \in x,t \in \bar x
สำหรับ cut(x,\bar{x}),f(x,\bar{x})= &sum;&sum;f(u,v)<br>
+
</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>
 
<br>
  
'''<u>Lemma</u>''' : สำหรับทุกๆ s-t cut (x,\bar{x}),f(x,\bar{x})=|f|<br>
+
'''<u>Lemma</u>''' : สำหรับทุกๆ s-t cut <math>(x,\bar x),f(x,\bar x) = |f|</math><br><br>
'''<u>Proof</u>''' : f(x,\bar{x}) = &sum;&sum;f(u,v) <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>
:::= &sum;&sum;f(u,v)-&sum;&sum;f(u,v)<br>
+
 
:::= &sum;f(s,v)=|f|<br>
+
:::::= <math>\sum\limits_v {f(s,v) = |f|}</math><br>
 
<br>
 
<br>
 
flow ที่หน้าตัดใดๆ เท่ากับ Flow ที่ออกจาก soure นั้นๆ<br>
 
flow ที่หน้าตัดใดๆ เท่ากับ Flow ที่ออกจาก soure นั้นๆ<br>
 
<br>
 
<br>
สำหรับ cut (x,\bar{x}) ใด ๆ ให้ cap(x,\bar{x}) = &sum;&sum;cap(u,v)<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>
 
<br>
'''<u>Lemma</u>''' : สำหรับ s-t cut (x,\bar{x})ใดๆ และ flow f ใดๆ <br>
+
'''<u>Lemma</u>''' : สำหรับ s-t cut <math>(x,\bar x)</math> ใดๆ และ flow f ใดๆ <br>
::|f| = <math>f(x,\bar{x})\le cap(x,\bar{x})</math><br>
+
::<math>|f| = f(x,\bar{x})\le cap(x,\bar{x})</math><br>
'''<u>Proof</u>''' : ลองคิดเอง???<br>
+
'''<u>Proof</u>''' : ลองคิดเอง???<br><br>
 
สำหรับ flow f , capacity บนเส้นเชื่อม (u,v) ใน Residual graph R<sub>f</sub> ของ f เท่ากับ <br>
 
สำหรับ flow f , capacity บนเส้นเชื่อม (u,v) ใน Residual graph R<sub>f</sub> ของ f เท่ากับ <br>
::cap(u,v)-f(u,v)&equiv; r<sub>f</sub>(u,v)<br>
+
::<math>cap(u,v) - f(u,v) \equiv r_f (u,v)</math><br>
 +
<br>
 
ให้ R<sub>f</sub> มีเฉพาะเส้นเชื่อมที่มี capacity เป็นบวก <br>
 
ให้ R<sub>f</sub> มีเฉพาะเส้นเชื่อมที่มี capacity เป็นบวก <br>
flow f เป็น maximum flow ถ้า |f| มากที่สุด<br>
+
flow f เป็น maximum flow ถ้า |f| มากที่สุด<br><br>
 
'''<u>Lemma</u>''' : ถ้า f* เป็น maximum flow, f เป็น flow ใดๆ แล้ว <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>
+
:::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 &forall; &cup; v , f(u,v)\le cap(u,v)<br>
+
'''<u>Proof</u>''' : check
:::skew symmetry &forall; &cup; v , f(u,v)= - f(v,u)<br>
+
:::capaciy constraint <math>\forall \cup v,f(u,v) \le cap(u,v)</math><br>
:::conservation &forall; v &notin; {s,t}, &sum;f(v,w)=&oslash;<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>
 
:ตรวจสอบ capacity constraint พิจารณา (u,v)<br>
:::f'(u,v)=f*(u,v)-f(u,v)<=cap(u,v)-f(u,v) = r<sub>f</sub>(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===
 
===Flow Augmenting Step===
  
 
เรียก path ใน R<sub>f</sub> จาก s ไป  t ว่าเป็น augmenting path <br>
 
เรียก path ใน R<sub>f</sub> จาก s ไป  t ว่าเป็น augmenting path <br>
:1. f <- &oslash;
+
:1. <math>f \leftarrow \emptyset</math>
 
:2. คำนวณ R<sub>f</sub>  
 
:2. คำนวณ R<sub>f</sub>  
 
:3. หา augmenting path P &isin; R<sub>f</sub>
 
:3. หา augmenting path P &isin; R<sub>f</sub>
 
:4. ถ้าหาไม่ได้ จบ
 
:4. ถ้าหาไม่ได้ จบ
:5. ให้ C = min r<sub>f</sub>(e)
+
:5. ให้ <math>C = \mathop {\min }\limits_{e \in P} r_f (e)</math>
 
:6. ปรับค่า f ด้วย flow บน path p ที่มีขนาด C
 
:6. ปรับค่า f ด้วย flow บน path p ที่มีขนาด C
 
:7. กลับไป step2
 
:7. กลับไป step2
 +
<br>

รุ่นแก้ไขเมื่อ 06:48, 27 กรกฎาคม 2550

Network Flows

........
ให้กราฟมีทิศทาง
ฟังก์ชันความจุ cap : และ s,t ∈ V
ฟังก์ชัน f : จะเรียกว่าเป็น flow
ถ้า
i) สำหรับทุกๆคู่ u,v : [Capacity Constraint]

ii)สำหรับทุกๆ u,v : [Skew Symmetry]

iii)สำหรับทุกๆ [Flow conservation Constraint]

ขนาดของ flow f ,|f|, คือ



มี Flow s-t
จะเรียก ว่าเป็น s-t cut ถ้า และ

สำหรับ cut ,

Lemma : สำหรับทุกๆ s-t cut

Proof :

=


flow ที่หน้าตัดใดๆ เท่ากับ Flow ที่ออกจาก soure นั้นๆ

สำหรับ cut ใด ๆ ให้

Lemma : สำหรับ s-t cut ใดๆ และ flow 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 : check

capaciy constraint
skew symmetry
conservation
ตรวจสอบ capacity constraint พิจารณา (u,v)

Flow Augmenting Step

เรียก path ใน Rf จาก s ไป t ว่าเป็น augmenting path

1.
2. คำนวณ Rf
3. หา augmenting path P ∈ Rf
4. ถ้าหาไม่ได้ จบ
5. ให้
6. ปรับค่า f ด้วย flow บน path p ที่มีขนาด C
7. กลับไป step2