The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

ทฤษฎีกราฟเบื้องต้น
หนังสือที่มีความรู้พื้นฐานด้านวิทยาศาสตร์พร้อมการประยุกต์ในหลายสาขา เหมาะสำหรับผู้สนใจศึกษาหาความรู้เบื้องต้น

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Wonlop Hemvong, 2021-09-24 01:18:22

ทฤษฎีกราฟเบื้องต้น

ทฤษฎีกราฟเบื้องต้น
หนังสือที่มีความรู้พื้นฐานด้านวิทยาศาสตร์พร้อมการประยุกต์ในหลายสาขา เหมาะสำหรับผู้สนใจศึกษาหาความรู้เบื้องต้น

Keywords: ทฤษฎีกราฟ,กราฟ,ข่ายงาน,กราฟแบบออยเลอร์

บทที่ 7
การไหลในข่ายงาน

การไหลในข่ายงาน (network flow) อาจเป็นการไหลในลกั ษณะเป็นหน่วยเวลา

ปริมาณน้ามนั หรือก๊าซเป็นลิตร ไฟฟ้ าเป็ นกิโลวตั ต์ จานวนประชากร ขา่ วสาร หรือการ
ขนส่งตา่ ง ๆ ในบทน้ีเป็นการศึกษาการไหลในขา่ ยงานซ่ึงการไหลมากสุดตอ้ งเกิดข้ึนเสมอ
ในข่ายงานหน่ึง ๆ และศึกษาข้นั ตอนวธิ ีของฟอร์ดและฟุลเกอร์สันท่ีเป็ นวธิ ีการหาค่าการ
ไหลมากสุด

7.1 ฟังก์ชันการไหลและเซตของส่วนตัด (Flow Functions and Cut sets)

บทนิยาม 7.1.1 ข่ายงาน (network) N คือ กราฟระบุทิศทางอยา่ งง่ายท่ีเป็นกราฟเชื่อมโยง
ซ่ึงสาหรับอาร์ค a ใด ๆ ของ N จะใหค้ ่าจานวนเตม็ ที่ไมเ่ ป็นลบ c(a) และจะเรียก c(a) วา่
ความจุ (capacity) ของ a

บทนิยาม 7.1.2 จะเรียก จุดยอด s ของข่ายงาน N วา่ แหล่งต้นทาง (source) ถา้ s มีระดบั
ข้นั เขา้ เป็ นศูนย์ จะเรียก จุดยอด t ของ N วา่ แหล่งปลายทาง (sink) ถา้ t มีระดบั ข้นั ออก
เป็นศูนย์ และจะเรียก จุดยอดอื่น ๆ ของ N วา่ จุดยอดระหว่างกลาง (intermediate
vertices)

จากบทนิยาม 7.1.2 จะไดว้ า่ อาร์คท่ีประชิดกบั แหล่งตน้ ทาง s จะมีทิศทางจาก s
ไปบางจุดยอดในขา่ ยงาน N และอาร์คท่ีประชิดกบั แหล่งปลายทาง t จะมีทิศทางจากบาง
จุดยอดใน N ไป t

x

42
4
s 3 y2 1 t

2
14

Nz

รูป 7.1 แสดงขา่ ยงาน N และความจุของแตล่ ะอาร์คใน N

196 ทฤษฎีกราฟเบ้ืองตน้

จากรูป 7.1 จุดยอด s เป็นแหล่งตน้ ทาง จุดยอด t เป็นแหล่งปลายทาง และ x , y , z
เป็นจุดยอดระหวา่ งกลางของข่ายงาน N และ c(sx) = 4 , c(xz) = 2 เป็นตน้

ตวั อย่าง 7.1.1 ตวั อยา่ งของข่ายงาน ไดแ้ ก่ โรงงานผผู้ ลิตเป็นแหล่งตน้ ทาง ตลาดเป็น
แหล่งปลายทางและตวั แทนจาหน่ายเป็นจุดยอดระหวา่ งกลาง ขณะท่ีความจุของแตล่ ะ
อาร์คคือปริมาณมากสุดของสินคา้ ที่จะถูกส่งจากจุดเริ่มตน้ ของอาร์คไปจุดสิ้นสุดของแต่ละ
อาร์ค ดงั รูป 7.1 จะไดว้ า่ s เป็นแหล่งตน้ ทาง t เป็นแหล่งปลายทาง และ x,y,z เป็นจุด
ยอดระหวา่ งกลางของข่ายงาน


ตอ่ ไปน้ี จะสมมุติใหข้ ่ายงานใด ๆ มีแหล่งตน้ ทางและแหล่งปลายทางเพยี งอยา่ ง
ละหน่ึงจุดยอดเท่าน้นั และสาหรับเซตของอาร์คท่ีมีทิศทางเขา้ หาจุดยอด u ในข่ายงาน N
เขียนแทนดว้ ย I(u) และเซตของอาร์คท่ีมีทิศทางออกจาก u เขียนแทนดว้ ย O(u)

บทนิยาม 7.1.3 การไหล (flow)ในขา่ ยงาน N จากแหล่งตน้ ทาง s ไปแหล่งปลายทาง t คือ
ฟังกช์ นั f ที่มีอาร์ค a ใด ๆ ของ N จะใหค้ ่าจานวนเตม็ ที่ไม่เป็นลบ โดยที่

(1) f(a)  c(a) สาหรับแตล่ ะ a

(2) ผลรวมการไหลเขา้ t เท่ากบั ผลรวมการไหลออก s หรือ
aOf(s()a) = aI(ft()a)

(3) ผลรวมการไหลเขา้ x เท่ากบั ผลรวมการไหลออก x สาหรับจุดยอดระหวา่ ง
กลาง x ใด ๆ ใน N หรือ aO(fx()a) = aI(fx()a)

ให้ d = aOf(s()a) =aI(ft()a) แลว้ จะเรียก d วา่ ค่าการไหล (value of the
flow)ของ f

บทที่ 7 การไหลในข่ายงาน 197

ตัวอย่าง 7.1.2 แสดงการไหลในข่ายงาน N ในรูป 7.1
x

32
0
s 2 y1 0 t

2
14

Nz

รูป 7.2 แสดงการไหลในขา่ ยงาน N

จากการไหลในข่ายงาน N ในรูป 7.2 จะไดว้ า่

aOf(s()a) = 3 + 1 + 2 = 6 = 2 + 4 = aI(ft()a)
aO(fx()a) = 2 + 1 = 3 = 3 + 0 + 0 = aI(fx()a)
aO(fy()a) = 0 + 2 = 2 = 2 = aI(fy()a)
aO(fz()a) = 0 + 4 = 4 = 1 + 2 + 1 = aI(fz()a)
และ มีคา่ การไหลเทา่ กบั 6


ให้ f เป็นการไหลในข่ายงาน N = ( V, A ) และให้ X  V , X  V และให้ X

คือส่วนเติมเตม็ ของ X ใน V หรือ X = V - X จะไดว้ า่ ถา้ X บรรจุ s หรือ t อยา่ งใด

อยา่ งหน่ึงแลว้ คา่ การไหลของ f จากจุดยอดใน X ไปจุดยอดใน X จะเท่ากบั

d = aOf(s()a) =aI(ft()a)

198 ทฤษฎีกราฟเบ้ืองตน้

ตัวอย่าง 7.1.3 ใหข้ า่ ยงาน N เป็นดงั รูป 7.3 และในแตล่ ะอาร์ค a จะใหต้ วั เลขแรก แทน
ความจุของอาร์ค a (หรือ c(a)) ส่วนตวั เลขหลงั แทนค่าการไหลในอาร์ค a (หรือ f(a))

u 2, 0 v

fs 4, 3 3, 3 1, 0 4, 0 t

5, 1 2, 1 4, 4
w N x

รูป 7.3 แสดงการไหล f ในขา่ ยงาน N

ในที่น้ี ถา้ ให้ X = {s , u , x} จะไดว้ า่ X = {v , w , t} แลว้ อาร์คจากจุดยอดใน
X ไปจุดยอดใน X คือ uv , sw , และ xt และมีเพียงอาร์คเดียวที่จากจุดยอดใน X ไป X
คือ wx ดงั น้นั ค่าการไหลของ f จากจุดยอดใน X ไปจุดยอดใน X คือ f (uv) + f (sw) + f
(xt) – f (wx) = 0 + 1 + 4 - 1 = 4 (เท่ากบั ค่าการไหล f (su) + f(sw) = 3 + 1 หรือ f (vt) + f
(xt) = 0 + 4 )


บทนิยาม 7.1.4 ให้ X, Y เป็ นเซตยอ่ ยใด ๆ ของเซตของจุดยอดในข่ายงาน N ให้ A(X ,Y)
เป็นเซตของอาร์คจากจุดยอดใน X ไปจุดยอดใน Y และให้ g เป็นฟังกช์ นั ซ่ึงระบุจานวน
เตม็ ที่ไม่เป็นลบของอาร์ค a ในข่ายงาน N จะไดว้ า่ g(X, Y) =  g(a)

aA(X, Y)

จากบทนิยาม 7.1.4 จะเห็นวา่ g อาจเป็ นฟังกช์ นั ของความจุ c หรือ การไหล f
และ g(X, Y) เป็นผลรวมของคา่ ของฟังกช์ นั g ในแต่ละอาร์คจากจุดยอดใน X ไปจุดยอด
ใน Y

บทนิยาม 7.1.5 เซตตัด (cut set) ในขา่ ยงาน N คือ เซตของอาร์ค A( X, X ) บน N ซ่ึงมี
แหล่งตน้ ทาง sX และแหล่งปลายทาง t X

บทนิยาม 7.1.5 หมายความวา่ ถา้ ทุก ๆ อาร์คใน A( X, X ) บน N ถูกตดั แลว้ จะไม่
มีวถิ ีจาก s ไป t นนั่ คือ ไม่มีการไหลจาก s ไป t ในข่ายงาน N

บทท่ี 7 การไหลในขา่ ยงาน 199

ตวั อย่าง 7.1.4 จากรูป 7.3 ให้ X = {s, u, x}, X  V(N)
จะไดว้ า่ A(X, X ) คือเซตตดั บน N และสาหรับฟังกช์ นั ความจุ c
c (X, X ) =  c(a)

a  A(x, x)

= c(uv) + c(sw) + c(xt)
= 2+5+4
= 11


ตวั อยา่ ง 7.1.4 ถา้ X = {s, u, v} จะไดว้ า่ A(X, X ) ไม่เป็นเซตตดั บน N ท้งั น้ี
เพราะมีวถิ ีจาก X ไป X โดยอาร์ค wv

ทฤษฎีบทตอ่ ไปน้ีจะแสดงให้เห็นถึงวา่ ค่าการไหล d เทา่ กบั ผลรวมการไหลออก
จาก X ลบดว้ ยผลรวมการไหลเขา้ สู่ X และ มีค่าไม่เกินผลรวมของความจุของอาร์คจาก X
ไป X

ทฤษฎบี ท 7.1 ให้ f เป็นการไหลในข่ายงาน N = (V, A) ซ่ึงมีคา่ การไหลเท่ากบั d

ถา้ A(X , X ) เป็นเซตตดั บน N จะไดว้ า่ d = f(X, X ) – f( X ,X) และ d  c(X, X )
พสิ ูจน์ จากบทนิยามของการไหล สาหรับแหล่งตน้ ทาง s จะไดว้ า่ f ({s},V) = d และ

f (V,{s}) = 0 ขณะท่ีสาหรับจุดยอด u ใด ๆ, u  s, t จะไดว้ า่

f ({u},V) = aO(fu(a))  aI(fu()a) = f (V,{u}) หรือ f ({u},V) – f (V,{u}) = 0 , u  s, t
ดงั น้นั สาหรับเซตตดั A(X,X) จะไดว้ า่

xX(f({x},V) f(V,{x})) = f ({s},V) – f (V,{s}) + 0
= d–0+0 = d

หรือ f(X, V) – f(V, X) = d

แต่ f(X, V) = f(X, X X ) = f(X, X) + f(X, X )
ทานองเดียวกนั

f(V, X) = f(X, X) + f( X , X)

200 ทฤษฎีกราฟเบ้ืองตน้

ดงั น้นั d = f(X, V) - f(V, X)
= f(X, X) + f(X, X ) - f(X, X) - f( X , X)
= f(X, X ) - f( X , X)

และ เนื่องจาก f(a)  c(a) สาหรับแตล่ ะอาร์ค a บน N
จะไดว้ า่ f(X, X )  c(X, X )
ดงั น้นั d = f(X, X ) - f( X , X)  f(X, X )  c(X, X )
นนั่ คือ d = c(X, X )


ตอนทา้ ยทฤษฎีบท 7.1 บอกใหท้ ราบวา่ การไหลใด ๆ ในขา่ ยงานจะมีคา่ นอ้ ยกวา่
หรือเท่ากบั ความจุของอาร์คจาก X ไป X สาหรับเซตตดั A(X, X )ใด ๆ ดงั น้นั ถา้ f มี
ค่าการไหลเป็น d จะไดว้ า่

d  min { c(X, X )  A(X, X ) เป็นเซตตดั ใด ๆ }

บทนิยาม 7.1.6 การไหลท่ีมีคา่ เทา่ กบั min {c(X, X )  A(X, X ) เป็นเซตตดั ใด ๆ } จะ
เรียกวา่ การไหลมากสุด (maximal flow)

บทนิยาม 7.1.6 บอกใหท้ ราบวา่ การไหลในข่ายงาน N ท่ีมีค่าเทา่ กบั ค่าความจุของ
เซตตดั A(X, X ) จะเป็นการไหลมากสุด และความจุน้ีจะมีค่านอ้ ยสุด

ขา่ ยงาน N รูป 7.3 ในตวั อยา่ ง 7.1.3 ถา้ A(X, X ) เป็นเซตตดั แลว้ sX, t X
และมีจุดยอดระหวา่ งกลาง u , v , w และ x ซ่ึงตอ้ งอยใู่ น X หรือไมก่ ็อยใู่ น X อยา่ งใด
อยา่ งหน่ึง ซ่ึงทาใหไ้ ดว้ า่ มีจานวน 24 = 16 เซตตดั ท่ีเป็นไปไดใ้ นขา่ ยงาน N (ถา้ มีจุดยอด
ระหวา่ งกลาง n จุด จะมีเซตตดั จานวน 2n เซต ) และถา้ ตรวจสอบเซตตดั A(X, X ) ท้งั
16 เซตน้ี จะพบวา่ เซตตดั A(X, X ) ซ่ึง X = {s , u , w ,x } , X = {v, t} มีความจุเท่ากบั

c(uv) + c(wv) + c(xt) = 2 + 1 + 4 = 7 ซ่ึงเป็นค่าความจุนอ้ ยสุด
ดงั น้นั ในบทนิยาม 7.1.6 การไหลในขา่ ยงาน N น้ี มีการไหลมากสุดเป็น 7

ต่อไปน้ีเป็นการหาการไหลมากสุดในข่ายงานดงั น้ี

บทท่ี 7 การไหลในข่ายงาน 201

ตวั อย่าง 7.1.5 ให้ N เป็นข่ายงาน และ f เป็นฟังกช์ นั การไหลใน N ดงั รูป 7.4 พจิ ารณา

u 2, 0 v

4, 3 3, 3 1, 0 4, 0
fs t

5, 1 2, 1 4, 4
w N x

รูป 7.4 แสดงขา่ ยงาน N และการไหล f

จากรูป 7.4 จะเห็นวา่ การไหล f มีคา่ เท่ากบั 4 + 0 = 4 และการไหลบนวถิ ี s u
v t ยงั มีคา่ ไมม่ ากสุด ท้งั น้ีเพราะการไหลบนแตล่ ะอาร์ค su, uv และ vt สามารถเพมิ่ ค่าได้
อีก 1 ดงั น้นั จึงใหก้ ารไหล f เปลี่ยนเป็น f1 ดงั รูป 7.5

u 2, 1 v

4, 4 3, 3 1, 0 4, 1
f1 s t

5, 1 2, 1 4, 4
w N x

รูป 7.5 แสดงการไหล f1 มีค่าเทา่ กบั 5

จากรูป 7.5 จะไดว้ า่ การไหล f1 มีคา่ เท่ากบั 4 + 1 = 5 ซ่ึงมากกวา่ ค่าการไหลของ
f และทานองเดียวกนั f1 ยงั ไมเ่ ป็นการไหลมากสุด เน่ืองจากบนวถิ ี s w v t สามารถเพมิ่
คา่ ไดอ้ ีก 1 บนอาร์ค sw, wv และ vt ดงั น้นั จึงใหก้ ารไหล f1 เปล่ียนเป็นการไหล f2 มีคา่
การไหลเท่ากบั 4 + 2 = 6 ดงั รูป 7.6

202 ทฤษฎีกราฟเบ้ืองตน้

u 2, 1 v

4, 4 3, 3 1, 1 4, 2
f2 s t

5, 2 2, 1 4, 4
w N x

รูป 7.6 แสดงการไหล f2 มีคา่ เท่ากบั 6

ขณะน้ี ท้งั 4 วถิ ีจาก sไป t คือ s u v t, s u x t , s w x t และ s w v t มีอาร์คซ่ึง
การไหลเทา่ กบั ความจุของอาร์ค คืออาร์ค su ของ s u v t และ s u x t , อาร์ค xt ของ s w

x t และอาร์ค wv ของ s w v t ซ่ึงดูเหมือนวา่ f2 ใหค้ ่าการไหลมากสุด (เท่ากบั 6 )
แต่ความจริงถา้ เพมิ่ การไหลอีก 1 บนอาร์ค sw, wx, uv , vt และลดการไหลลง 1

บนอาร์ค ux จะทาใหไ้ ดก้ ารไหล f3 ซ่ึงมีคา่ การไหลเป็น 3 + 4 = 7 และเนื่องจากมีเซต
ตดั ที่ผลรวมความจุของอาร์คบนคตั เซตเท่ากบั 7 ดงั น้นั f3 จึงเป็ นการไหลมากสุด ดงั รูป
7.7

u 2, 2 v

4, 4 3, 2 1, 1 4, 3
f3 s t

5, 3 2, 2 4, 4
w N x

รูป 7.7 แสดงการไหล f3 มีคา่ เท่ากบั 7 ซ่ึงเป็ นการไหลมากสุดในข่ายงาน N


ต่อไปจะใหค้ วามหมายของคาเพ่ือนาไปใชพ้ สิ ูจน์ข้นั ตอนวธิ ีการหาคา่ การไหลมาก

สุดในขา่ ยงาน

บทที่ 7 การไหลในข่ายงาน 203

บทนิยาม 7.1.7 ให้ W = v0v1 . . . vk เป็นแนวเดินใด ๆ ในอนั เดอร์ไลอิ้งกราฟ G ของ
ข่ายงาน N จะไดว้ า่ อาร์คที่ประชิดกนั ใน N จะอยใู่ นรูป vi– 1vi หรือ vivi– 1 เรียกอาร์ค
vi– 1vi วา่ อาร์คข้างหน้า (forward arc) ของ W และเรียกอาร์ค vivi– 1 วา่ อาร์คผนั กลบั
(reward arc) ของ W

ถา้ f เป็นการไหลใน N แลว้ ส่วนเพม่ิ (increment) ของ W จะเขียนแทนดว้ ย

จานวนเตม็ ท่ีไมเ่ ป็ นลบ i(W) ซ่ึง i(W) = min { i(a)  a เป็นอาร์คในแนวเดิน W }

โดยท่ี i(a) = c(a) f (a) ถา้ a เป็นอารคข์ ั้างหนา้ ขอWง
 f(a) ถา้ a เป็นอารค์ ผัันกลบั ขอWง

ตัวอย่าง 7.1.6 ให้ f เป็นการไหลในข่ายงาน N ดงั รูป 7.8

u 2, 0 v

4, 3 3, 3 1, 0 4, 0
fs t

5, 1 2, 1 4, 4
w N x

รูป 7.8 แสดงขา่ ยงาน N และการไหล f

พจิ ารณา แนวเดิน W = s w x u v มีอาร์คขา้ งหนา้ คือ sw, wx และ uv
มีอาร์คผนั กลบั คือ xu จะไดว้ า่

i(sw) = c(sw) – f(sw) = 5 – 1 = 4
i(wx) = c(wx) – f(wx) = 2 – 1 = 1
i(uv) = c(uv) – f(uv) = 2 – 0 = 2
i(ux) = f(ux) = 3
ดงั น้นั i(W) = min { 4, 1, 2 , 3 } = 1


ค่า i(W) เป็นคา่ มากสุดที่จะเพม่ิ การไหล f ในแนวเดิน W = s w x u v ซ่ึงจะเพิ่ม
การไหลอีก 1 บน sw , wx และ uv และลดการไหลลง 1 บนอาร์คผนั กลบั xu

204 ทฤษฎีกราฟเบ้ืองตน้

บทนิยาม 7.1.8 ให้ f เป็นการไหลในข่ายงาน N แลว้ แนวเดิน W จะเรียกวา่ แนวเดิน
อมิ่ ตัว(saturated walk)ของ f ถา้ i(W) =0 และแนวเดินไม่อม่ิ ตัว(unsaturated walk)ของ f
ถา้ i(W) > 0

บทนิยาม 7.1.9 แนวเดินส่วนเพมิ่ (incrementing walk) ของ f คือแนวเดินไม่อ่ิมตวั ของ
f จากแหล่งตน้ ทาง s ไปแหล่งปลายทาง t

ในตวั อยา่ ง 7.1.6 จะเห็นวา่ แนวเดิน W = s w x u v มี i(W) = 1 > 0 ดงั น้นั
แนวเดิน W เป็นแนวเดินไม่อิ่มตวั ของ f ส่วนแนวเดิน W = s u v t ซ่ึงมี i(W) = 1 > 0
และแนวเดิน W = s w x u v t ซ่ึงมี i(W) = 1 > 0 ท้งั คูเ่ ป็นแนวเดินส่วนเพิม่ ของ f

ตอ่ ไปเป็ นการพิสูจนท์ ฤษฎีบทข้นั ตอนวธิ ีสร้างการไหลมากสุดในข่ายงาน ซ่ึงเป็น
ของฟอร์ด(L. R. Ford)และฟุลเกอร์สนั (D. R. Fulkerson) (Clark & Holton, 1991)

ทฤษฎบี ท 7.2 (The max-flow, min-cut theorem) ให้ N เป็นข่ายงานท่ีมี c เป็นฟังกช์ นั

ความจุ จะไดว้ า่ คา่ การไหลมากสุดใน N เทา่ กบั

min {c(X, X )  A(X, X ) เป็นเซตตดั }

พสิ ูจน์ ในทฤษฎีบท 7.1 สาหรับการไหล f ใด ๆ ใน N ที่มีค่าการไหลเท่ากบั d จะไดว้ า่

d  min { c(X, X )  A(X, X ) เป็นเซตตดั }

ให้ f เป็นการไหลใด ๆ และให้ X เป็นเซตของจุดยอด z ใน N ซ่ึง z = s หรือ

z อยใู่ นอนั เดอร์ไลอิง้ กราฟ G ของ N อยา่ งใดอยา่ งหน่ึงแลว้ จะมีแนวเดินไม่อ่ิมตวั ของ f

ใหเ้ ป็ น W = v0 . . . vk จาก s ไป z (ดงั น้นั s = v0 , z = vk )
สาหรับแหล่งปลายทาง tX หรือไม่ t X อยา่ งใดอยา่ งหน่ึง

สมมุติ tX จะไดว้ า่ ตอ้ งมีแนวเดินไมอ่ ่ิมตวั ของ f ใหเ้ ป็น W จาก s ไป t นนั่ คือ

ตอ้ งมีแนวเดินส่วนเพิม่ ของ f เลือกแนวเดิน W และให้ i(W) =  ดงั น้นั  > 0

กาหนดฟังกช์ นั f1 บนอาร์ค a ของ N นิยามดงั น้ี

f(a) ε ถา้ a เป็นอารค์ ขั้างหนา้ ใน W

f1(a) =  f(a)- ε ถา้ a เป็นอารค์ ผัันกลบั ใน W

 f(a) ถา้ a เป็นอารค์ อัืัๆ่นใน W


จะไดว้ า่ f1 มีคา่ การไหลเป็น d +  เน่ืองจากโดยนิยาม  เป็นจานวนเตม็ บวก ดงั น้นั

เพ่ิมคา่ การไหล f เป็น f1 มีคา่ การไหลเป็น d + 

บทที่ 7 การไหลในข่ายงาน 205

ถา้ tX แลว้ วธิ ีการเพมิ่ ค่าการไหลทาไดเ้ สมอ โดยวธิ ีการหาแนวเดินส่วนเพ่ิม
ซ้า ๆ จนกระทง่ั tX ซ่ึงเมื่อถึงข้นั น้ีจะไม่มีแนวเดินส่วนเพิ่ม ดงั น้นั จะได้ A(X, X )
เป็นเซตตดั จะไดก้ ารไหลใหมใ่ หเ้ ป็น f ที่จุดยอด t ไม่อยใู่ น X นน่ั คือ t X จะไดว้ า่
A(X, X ) เป็นเซตตดั ถา้ xX โดยนิยามของ X จะไดว้ า่ มีแนวเดินไม่อิ่มตวั ของ f ใหเ้ ป็ น
W = v0 . . . vk จาก s ไป x (ดงั น้นั s = v0 และ vk = x) สมมุติวา่ จุดยอด y X นนั่ คือ
y X จะไดว้ า่ มีอาร์ค xy จาก x ไป y ท่ี f(xy) < c(xy) แลว้ แนวเดิน W1 = v0 . . . vk y
จาก sไป y จะเป็นแนวเดินไมอ่ ่ิมตวั ของ f ดว้ ย แสดงวา่ y X นน่ั คือ y  X เกิดขอ้
ขดั แยง้ กบั ที่สมมุติฐาน ทานองเดียวกนั ถา้ มีอาร์ค yx จาก y ไป x ที่ f(yx) > 0 จะไดว้ า่

แนวเดิน W2 = v0 . . . vk y จาก sไป y จะเป็นแนวเดินไมอ่ ิ่มตวั ของ f แสดงวา่ y X ซ่ึง
เกิดขอ้ ขดั แยง้ เช่นกนั ดงั น้นั อาร์คใดๆในรูป xy ที่ xX และ y  X ตอ้ งมี f(yx) = 0
ซ่ึงแสดงใหเ้ ห็นวา่

f(X, X ) = c(X, X ) และ f( X , X) = 0

ดงั น้นั ถา้ f มีค่าการไหลเท่ากบั d แลว้ เนื่องจาก A(X, X ) เป็นเซตตดั โดยทฤษฎีบท 7.1
จะไดว้ า่ d = f(X, X ) – f( X , X) ดงั น้นั d = c(X, X ) – 0 = c(X, X ) หรือ ค่าการไหล
f เทา่ กบั คา่ ความจุของเซตตดั A(X, X ) นน่ั คือ f เป็นการไหลมากสุด


ในตวั อยา่ ง 7.1.5 รูป 7.7 จะไดว้ า่ f = f3 และเซต X = { s ,w }, X = {u, v, x, t }
มีอาร์คจาก X ไป X หรือ A(X, X ) = { su , wv , wx } ดงั น้นั

c(X, X ) = c(su) + c(wv) + (wx) = 4 + 1 + 2
= 7 ซ่ึงเทา่ กบั คา่ การไหลมากสุดของการไหล f3

แบบฝึ กหดั 7.1

1. จงหาเซตตดั ท้งั หมดและเซตตดั นอ้ ยสุดของแต่ละข่ายงานตอ่ ไปน้ี
a 8b
a 2b
9 4 3
s3 5 s4 25
1 4 t c 4 t
5 1 5

c d0
N0 N

12

206 ทฤษฎีกราฟเบ้ืองตน้

2. พิจารณาข่ายงานที่มีแหล่งตน้ ทางและแหล่งปลายทางหลายแหล่ง ดงั น้ี
ให้ N เป็ นข่ายงานท่ีมีแหล่งตน้ ทางเป็ น s1, . . . ,sk และแหล่งปลายทางเป็ น t1, . . .,tl

แลว้ การไหลใน N จาก si ไป tj คือ ฟังกช์ นั f จากจานวนจริงที่ไม่เป็นลบไปแต่ละอาร์คใน
N ซ่ึงนิยามดงั น้ี

(1) f(a)  c(a) สาหรับแตล่ ะอาร์ค a
(2) ผลรวมการไหลออกจากแหล่งตน้ ทางทาง s1, . . .,sk เทา่ กบั ผลรวมการไหลเขา้

แหล่งปลายทาง t1, . . . ,tl
(3) สาหรับจุดยอด x ใด ๆ ท่ีไมเ่ ป็นแหล่งตน้ ทางหรือแหล่งปลายทาง ผลรวมการ

ไหลเขา้ ของ x เทา่ กบั ผลรวมการไหลออกของ x

คา่ การไหล d ของ f คือผลรวมที่ไหลออกจากแหล่งตน้ ทางท้งั หมดและ
kl
โดยขอ้ (2) จะไดว้ า่ d= i  1 ao(s f (a) = j 1 aI(t f (a)
i) j)

จากข่ายงาน N สร้างขา่ ยงาน N* ใหม้ ีแหล่งตน้ ทางและแหล่งปลายทางเดียว โดย
เชื่อมอาร์ค ai จาก s ไป si และเชื่อมอาร์ค bj จาก tj ไป t ซ่ึงความจุของอาร์คใหมใ่ น N* ได้
จากผลรวมของอาร์คใน N

ให้ f* เป็นการไหลใน N* และ f เป็นฟังกช์ นั restricting f*
2.1 จงแสดงวา่ คา่ การไหลของ f เท่ากบั คา่ การไหลของ f*
2.2 จงแสดงวา่ ถา้ f* เป็นการไหลค่ามากสุดใน N* แลว้ f เป็นการไหลค่ามากสุดใน N

3. ให้ f เป็นการไหลในข่ายงาน N และให้ A(X, X ) เป็นเซตตดั ใน N
3.1 จงพสิ ูจนว์ า่ ถา้ f(a) = c(a) สาหรับทุก aA(X, X )
f(a) = 0 สาหรับทุก aA( X ,X )
แลว้ f เป็นการไหลมากสุด และ A(X, X ) เป็นเซตตดั นอ้ ยสุด
3.2 จงพสิ ูจน์วา่ ถา้ f เป็นการไหลมากสุดใน N และ A(X, X ) เป็นเซตตดั นอ้ ยสุดแลว้
f(a) = c(a) สาหรับทุก aA(X, X ) และ f(a) = 0 สาหรับทุก aA( X ,X )
(บทกลบั ของ 3.1)

บทท่ี 7 การไหลในขา่ ยงาน 207

4. ให้ f1 และ f2 เป็นการไหลในขา่ ยงาน N และให้ A(X, X ) เป็นเซตตดั ใน N
4.1 จงพสิ ูจน์วา่ ถา้ f1 และ f2 เป็นการไหลมากสุด แลว้ f1(a) = f2(a) สาหรับทุกคา่

aA(X, X ) และสาหรับ aA( X ,X )

4.2 บทกลบั ของ 4.1 เป็นจริงหรือไม่

7.2 ข้ันตอนวธิ ีของฟอร์ดและฟุลเกอร์สัน (Ford and Fulkerson algorithm)

ข้นั ตอนวธิ ีของฟอร์ดและฟุลเกอร์สัน เป็นการหาการไหลมากสุดในข่ายงาน โดยใช้
ทฤษฎีบท 7.2 ซ่ึงเป็นทฤษฎีการไหลมากสุดและเซตตดั เล็กสุด

บทนิยาม 7.2.1 ใหฟ้ ังกช์ นั f เป็นการไหลในขา่ ยงาน N จะไดว้ า่ ต้นไม้ไม่อม่ิ ตัว
(unsaturated tree) ของ f ใน N คือตน้ ไมย้ อ่ ย(subtree) T ของกราฟอนั เดอร์ไลอิ้ง G ของ N
ที่มีแหล่งตน้ ทาง s เป็นจุดยอดใน T และสาหรับจุดยอด v ใด ๆ ใน T จะมี s – v เพียงวถิ ี
เดียวเท่าน้นั ใน T ที่เป็นวถิ ีไมอ่ ่ิมตวั ของ f

ตัวอย่าง 7.2.1 ให้ f เป็นการไหลในข่ายงาน N ดงั รูป 7.9

z

f 4, 4 1, 1 5, 5 1, 0 4, 0

s 6, 1 w 3, 2u 5, 3 5, 5 t
3, 2 2, 0
y
2, 2

Nx

รูป 7.9 แสดงตน้ ไมไ้ ม่อิ่มตวั ของ f ใน N

จากรูป 7.9 ตน้ ไมไ้ มอ่ ิ่มตวั ของ f ในข่ายงาน N แสดงไวด้ ว้ ยเส้นประ



208 ทฤษฎีกราฟเบ้ืองตน้

ข้นั ตอนวธิ ีของฟอร์ดและฟุลเกอร์สนั เพอื่ หาคา่ การไหลมากสุดในข่ายงาน มีดงั น้ี
ข้นั ท่ี 1. ให้ f(xy) = 0 สาหรับอาร์ค xy ใด ๆ ในข่ายงาน N
ข้นั ท่ี 2. ให้ A =  (A คือเซตของอาร์คในตน้ ไมไ้ มอ่ ่ิมตวั )
ให้ (s) =  สาหรับแหล่งตน้ ทาง s ของ N
ให้ L = {s} (L คือเซตของจุดยอดท่ีถูกระบุคา่ )
ให้ S =  ( S คือเซตของจุดยอดใน L ท่ีถูกหาส่วนเพิม่ ในอาร์คแลว้ )
ข้นั ที่ 3. ให้ F เป็นเซตของอาร์ค xy ใน N ซ่ึง c(xy) > f(xy) (อาร์คขา้ งหนา้ )
ให้ R เป็นเซตของอาร์ค xy ใน N ซ่ึง f(xy) > 0 (อาร์คผนั กลบั )
ข้นั ที่ 4. ถา้ L – S =  ใหไ้ ปทาข้นั ที่ 10
ข้นั ที่ 5. เลือก xL – S
ข้นั ที่ 6. ถา้ ไม่มี y  L ซ่ึง xy F และเซตของอาร์ค A{ xy } ก่อใหเ้ กิด
ตน้ ไมอ้ นั เดอร์ไลอิง้ แลว้ ใหไ้ ปทาข้นั ที่ 7
ถา้ มี y  L ซ่ึง xy F และเซตของอาร์ค A{ xy } ก่อใหเ้ กิด
ตน้ ไมอ้ นั เดอร์ไลอิ้งแลว้ ใหร้ ะบุ y โดยท่ี (y) = min { (x), c(xy) –
f(xy) }
เปล่ียน A เป็น A{ xy }
และเปลี่ยน L เป็น L{ y }
ทาข้นั น้ีซ้า
ข้นั ท่ี 7. ถา้ ไม่มี y  L ซ่ึง yx R และเซตของอาร์ค A{ yx } ก่อใหเ้ กิด
ตน้ ไมอ้ นั เดอร์ไลอิง้ แลว้ ให้ไปทาข้นั ท่ี 8
ถา้ มี y  L ซ่ึง yx R และเซตของอาร์ค A{ yx } ก่อใหเ้ กิด
ตน้ ไมอ้ นั เดอร์ไลอิง้ แลว้ ใหร้ ะบุ y โดยที่ (y) = min { (x), f(yx) }
เปลี่ยน A เป็น A{ yx }
และเปล่ียน L เป็น L{ y }
ทาข้นั น้ีซ้า
ข้นั ที่ 8. เปลี่ยน S เป็น S{ x } ถา้ t L ใหก้ ลบั ไปทาข้นั ท่ี 4.
ข้นั ที่ 9. (ข้นั น้ี จะไดว้ า่ t ถูกระบุค่า)
ใชข้ ้นั ตอนวธิ ียอ้ นกลบั หาวถิ ีส่วนเพม่ิ W จาก sไป t ใน N โดยใชอ้ าร์ค
จาก A และสาหรับ a W ใด ๆ ใหเ้ ปลี่ยน f(a) เป็น f(a) + (t)

บทท่ี 7 การไหลในขา่ ยงาน 209

ถา้ aF และใหเ้ ปล่ียน f(a) เป็น f(a) - (t) ถา้ aR
กลบั ไปทาข้นั ท่ี 2

ข้นั ท่ี 10. (ข้นั น้ีจุดยอดท่ีระบุทุกจุด ถูกหาส่วนเพม่ิ ในอาร์คของมนั แลว้ )
f(xy) จะใหค้ า่ การไหลมากสุดใน N สาหรับแตล่ ะอาร์ค xy N
และเซตของจุดยอด L จะเป็นเซตตดั เล็กสุด

ตัวอย่าง 7.2.2 ให้ f เป็นการไหลในขา่ ยงาน N ในรูป 7.9 ของตวั อยา่ ง 7.2.1 จงใช้
ข้นั ตอนวธิ ีของฟอร์ดและฟุลเกอร์สัน หาค่าการไหลมากสุดและเซตตดั เลก็ สุด
วธิ ีทา ให้ f เป็นการไหลในข่ายงาน N

แตล่ ะข้นั จะแสดงตน้ ไมไ้ มอ่ ่ิมตวั ดว้ ยเส้นประ ส่วนจุดยอดที่กาลงั ถูกหาส่วนเพิ่ม
ในอาร์คของมนั จะแทนดว้ ยจุดโปร่งและจะถูกระบุคา่ โดยแสดงไวใ้ นตารางและจะละ

ข้นั ตอนการหาและการเปลี่ยนเซต A, L และ S ดงั ต่อไปน้ี

z

f 4, 4 1, 1 5, 5 1, 0 4, 0

s 6, 1 w 3, 2 5, 3 y 5, 5 t
○ u 2, 0 2, 2 

3, 2 จุดยอดที่ระบุ s

ค่าท่ีระบุ 

Nx

z

4, 4 4, 0
1, 1 5, 5 1, 0
s 3, 2 t
○ 6, 1 w u 5, 3 y 5, 5 
2, 0 2, 2
3, 2 จุดยอดท่ีระบุ s w

ค่าท่ีระบุ  min{,6-1}=5

x

รูป 7.10

210 ทฤษฎีกราฟเบ้ืองตน้

z

4, 4 4, 0
1, 1 5, 5 1, 0
s 6, 1 w○ 3, 2u t
5, 3 5, 5 
3, 2 2, 0 y
2, 2 จุดยอดที่ระบุ s w x
ค่าท่ีระบุ  5 min{5,3-2}=1

x

z

4, 4 4, 0
1, 1 5, 5 1, 0
s 3, 2 t
6, 1 5, 3 y 5, 5 
w u 2, 0 2, 2
3, 2 จุดยอดที่ระบุ
s w x u

○x คา่ ท่ีระบุ  5 1 min{1,2-0}=1

z

4, 4 4, 0
1, 1 5, 5 1, 0
s 3, 2 t
6, 1 2 u○ 5, 5 
w 5, 3 y
2, 0 2, 2
3,

x

จุดยอดท่ีระบุ s w x u y
คา่ ท่ีระบุ  5 1 1 min{1,5-3}=1

รูป 7.11

บทที่ 7 การไหลในขา่ ยงาน 211

○z t

4, 4 4, 0
s 1, 1 3, 2 5, 5 1, 0

6, 1 w u 5, 3 y 5, 5
3, 2 2, 2

x

จุดยอดท่ีระบุ s w x u y z
ค่าที่ระบุ  5 1 1 1 min{1,1}=1

z

4, 4 4, 0
1, 1 5, 5 1, 0
s 3, 2 t
6, 1 w u 5, 3 5, 5
2, 0 y ○
3, 2 2, 2
ถึงข้นั น้ีจะไดว้ า่
การไหลของ f

x เท่ากบั 1

จุดยอดที่ระบุ s w x u y z t
ค่าท่ีระบุ  5 1 1 1 1 min{1,4-0}=1

รูป 7.12

ถึงข้นั น้ีจะไดว้ า่ การไหลของ f ทาใหไ้ ดส้ ่วนเพิม่ ในอาร์คของแนวเดิน W = s w x u y z t
เท่ากบั 1

212 ทฤษฎีกราฟเบ้ืองตน้

z

4, 4 4, 1
1, 1 3, 2 5, 5 1, 1
s○ 6, 2 wu 5, 4 5, 5 t
3, 3 2, 1 y 
เปล่ียนการไหลใหม่ 2, 2

x

กลบั ไปทาข้นั ที่ 2 เพ่อื หาส่วนเพิ่มในอาร์คในแนวเดินใหมต่ ่อไป ซ่ึงสามารถทา
ไดท้ านองเดียวกนั กบั ขา้ งตน้ แตจ่ ะไมข่ อแสดงเป็นกราฟ ดงั น้ี

จากกราฟที่ไดก้ ารไหลใหม่ขา้ งบนน้ี
1. จุดยอดท่ีระบุ s

คา่ ที่ระบุ 

2. จุดยอดที่ระบุ s w

คา่ ที่ระบุ  min{,6-2}=4

3. จุดยอดที่ระบุ s w u

ค่าที่ระบุ  4 min{4, 2}=2

4. จุดยอดที่ระบุ s w u z

ค่าที่ระบุ  4 2 min{2, 2}=2

5. จุดยอดที่ระบุ s w u z t

คา่ ที่ระบุ  4 2 2 min{2, 4-1}=2

บทที่ 7 การไหลในข่ายงาน 213

ถึงข้นั น้ีจะไดว้ า่ การไหลของ f ทาใหไ้ ดส้ ่วนเพมิ่ ในอาร์คของแนวเดิน W = s w u
z t เทา่ กบั 2 เปลี่ยนการไหลใหม่ไดก้ ราฟดงั รูปต่อไปน้ี

z

4, 4 4, 3
1, 1 5, 3 1, 1
s○ 6, 4 3, 0 t
wu 5, 4 y 5, 5 
เปล่ียนการไหลใหม่ 3, 3 2, 1 2, 2

x

กลบั ไปทาข้นั ท่ี 2 เพ่อื หาส่วนเพม่ิ ในอาร์คในแนวเดินใหม่ต่อไป ซ่ึงสามารถทา
ไดท้ านองเดียวกนั กบั ขา้ งตน้ ดงั น้ี จากกราฟที่ไดก้ ารไหลใหมข่ า้ งบน

1. จุดยอดท่ีระบุ s

ค่าท่ีระบุ 

2. จุดยอดที่ระบุ s w

ค่าที่ระบุ  min{,6-4}=2

z

4, 4 4, 3
1, 1 5, 3 1, 1
s 3, 0 t
6, 4 w○ u 5, 4 5, 5 
2, 1 y
3, 3 2, 2

x

รูป 7.13

214 ทฤษฎีกราฟเบ้ืองตน้

แผนภาพสุดทา้ ยน้ีแสดงใหเ้ ห็นวา่ ไดห้ าส่วนเพมิ่ ในอาร์คของจุดยอดที่ระบุท้งั หมด
คือ s , w และไมม่ ีจุดยอดท่ีระบุใหมไ่ ดอ้ ีก นนั่ คือ L = S ตามข้นั ตอนวธิ ีหาและไม่มีจุดยอด
ที่ทาใหเ้ กิดการไหลที่ไมอ่ ่ิมตวั บนอาร์คท่ีจะทาใหเ้ กิดการไหลส่วนเพม่ิ ไดอ้ ีก ดงั น้นั การ
ไหลในแผนภาพสุดทา้ ยน้ีมีค่าการไหลเทา่ กบั

f(sz) + f(sw) = 4 + 4 = 8
และมีเซต X = { s , w }, X = {u, y, x, z, t}
จะไดว้ า่ A(X, X ) = {sz, wz, wx } เป็นเซตตดั เลก็ สุดและ
มีคา่ ความจุ c(X, X ) = c(sz) + c(wz) + c(wx) = 4 + 1 + 3 = 8
และค่าการไหลเทา่ กบั 8 น้ีเป็ นค่าการไหลมากสุดตามทฤษฎีบท 7.2


ตวั อย่าง 7.2.3 จงหาคา่ การไหลมากสุดในขา่ ยงาน N รูป 7.14 และตรวจสอบวา่ เป็นค่า

การไหลมากสุด

a6 d

26 10 4
b e
s 10 39 t

85 2 10

c3 f

รูป 7.14

วธิ ีทา ใหก้ ารไหล f1 ผา่ นอาร์คขา้ งหนา้ ตามแนวเดิน s a d t , s b e t และ s c f t เป็น 2 , 3
และ 3 ตามลาดบั จะไดก้ ารไหล f1 ดงั รูป 7.15

a 6, 2 d

2, 2 6, 0 10, 0 4, 2
b e
f1 s 10, 3 3, 3 9, 3 t

8, 3 5, 0 2, 0 10, 3

c 3, 3 f

รูป 7.15

บทท่ี 7 การไหลในข่ายงาน 215

ตอ่ ไปเพม่ิ คา่ การไหลเป็น 2 หน่วยผา่ นทางแนวเดิน s b d t และ s b f t จะไดก้ าร

ไหล f2 ดงั รูป 7.16

a 6, 2 d

2, 2 6, 0 10, 2 4, 4
b e
f2 s 10, 7 3, 3 9, 3 t

8, 3 5, 0 2, 2 10, 5

c 3, 3 f

รูป 7.16

ขณะน้ีไม่มีแนวเดินจาก s ไป t ท่ีจะเพิ่มการไหลในอาร์คขา้ งหนา้ ได้ แตส่ ามารถ

ใชอ้ าร์คผนั กลบั d a เพื่อเพ่ิมการไหลในแนวเดินส่วนเพิ่ม s c b d a e t โดยท่ี i(W) = 2

เพม่ิ ค่าการไหลเป็น 2 หน่วยใหก้ บั อาร์ค s c , c b , b d , a e และ e t และลบค่าการไหลใน

อาร์ค a d ออก 2 หน่วย จะไดก้ ารไหล f3 ดงั รูป 7.17

a 6, 0 d

2, 2 6, 2 10, 4 4, 4
b e
f3 s 10, 7 3, 3 9, 5 t

8, 5 5, 2 2, 2 10, 5

c 3, 3 f

รูป 7.17

ในการหาแนวเดินส่วนเพม่ิ เพือ่ เพ่มิ คา่ การไหลของ f3 ต่อไปน้ี จะเห็นวา่ แนวเดิน
จาก s ผา่ น b ตอ้ งไป d หรือจาก s ผา่ น c , b ตอ้ งไป d ซ่ึงจะไมม่ ีอาร์คใดที่ไม่อ่ิมตวั นนั่
คือ การไหลใน f3 น้ี เป็ นคา่ การไหลมากสุดคือเท่ากบั 14 ซ่ึงสามารถตรวจสอบไดด้ งั น้ี

เน่ืองจากเราไดเ้ ซตตดั A(X, X ) โดยที่ X = { s, b, c, d } และ X = { a, e, f, t }
และเซตตดั น้ีมีความจุเทา่ กบั c(sa)+ c(be)+ c(bf)+ c(cf)+ c(dt) = 2+ 3+ 2+ 3+ 4 = 14
เนื่องจากคา่ ความจุในเซตตดั เท่ากบั คา่ การไหลซ่ึงโดยทฤษฎีบท 7.2 จะไดว้ า่ คา่ การไหล
มากสุดในขา่ ยงาน N เทา่ กบั 14 โดยมี A(X, X ) เป็นเซตตดั เลก็ สุด



216 ทฤษฎีกราฟเบ้ืองตน้

แบบฝึ กหดั 7.2

1. จงใชข้ ้นั ตอนวธิ ีของฟอร์ดและฟุลเกอร์สัน เพ่ือหาคา่ การไหลมากสุด และหาเซตตดั ท่ีมี
ความจุเทา่ กบั คา่ การไหลน้ี ของแต่ละข่ายงานในแบบฝึ กหดั 7.1 ขอ้ 1.
2. จงใชข้ ้นั ตอนของฟอร์ดและฟุลเกอร์สนั เพ่ือหาค่าการไหลมากสุด และหาเซตตดั ที่มี
ความจุเทา่ กบั คา่ การไหล ของแต่ละขา่ ยงานดงั รูปต่อไปน้ี

a 6b 3 c a 4f
4
63 69 8 c3 b 7 10 6
e s9 7 15 6
s 7 d5 4 t 7 t
10 3
8 35 d

f e 8g
N1 N2

3. ในสองขา่ ยงานดงั รูปตอ่ ไปน้ี มีแหล่งตน้ ทางและแหล่งปลายทางหลายแหล่ง ใหใ้ ชว้ ธิ ีท่ี

อธิบายในแบบฝึกหดั 7.1 ขอ้ 2 และข้นั ตอนวธิ ีของฟอร์ดและฟุลเกอร์สัน เพื่อหาค่าการ

ไหลมากสุดแตล่ ะข่ายงาน

c a t1
t2
s1 40 25 15 25 10 15 b 25 t3
s2 a 15 10 s1 11 11
t1
25 10 d 10 10
10 c 10
10 15 20 20 s2 10 d 11

5 b 20 t1 11 10 20
e 25
s3 e

บทท่ี 7 การไหลในข่ายงาน 217

7.3 เซตแบ่งแยก (Separating Sets)

ในหวั ขอ้ น้ีจะใชท้ ฤษฎีของการไหลมากสุดเซตตดั เลก็ สุด พสิ ูจนผ์ ลลพั ธ์บางประการ
ของความเชื่อมโยงในกราฟ

บทนิยาม 7.3.1. ให้ u และ v เป็นจุดยอดในกราฟ G ซ่ึง u  v และให้ S V(G) โดยที่
u และ v ไม่อยใู่ น S แลว้ จะเรียกเซต S วา่ เซตแบ่งแยก u – v (u – v separating set)
ถา้ G – S เป็นกราฟไม่เช่ือมโยงและ u และ v อยใู่ นกราฟยอ่ ยส่วนประกอบที่ต่างกนั

ให้ F E(G) จะเรียกเซต F วา่ เซตแบ่งแยก u – v ถา้ G – F เป็นกราฟไม่
เช่ือมโยงและ u และ v อยใู่ นกราฟยอ่ ยส่วนประกอบที่ต่างกนั

ตวั อย่าง 7.3.1 ใหก้ ราฟ G เป็นดงั ในรูป 7.18
ab

uc d v

e Gf

รูป 7.18 แสดงเซตแบ่งแยก u – v ใน G

จากรูป 7.18 โดยบทนิยาม 7.3.1 จะไดว้ า่ S = { b , c , e } เป็นเซตแบง่ แยก u – v
ขณะที่เซต F = { bv ,bd , cd , cf , eu } เป็นเซตแบง่ แยก u – v เช่นกนั


ทฤษฎบี ท 7.3 ให้ u , v เป็นจุดยอดของกราฟ G ท่ี u  v จะไดว้ า่

(1) เซตยอ่ ย S ของเซตของจุดยอดใน G เป็นเซตแบ่งแยก u – v กต็ อ่ เม่ือ แต่ละวถิ ี
u – v มีอยา่ งนอ้ ยหน่ึงจุดยอดท่ีอยใู่ น S

(2) เซตยอ่ ย F ของเซตของเส้นเชื่อมใน G เป็นเซตแบ่งยอ่ ย u – v กต็ อ่ เมื่อ แตล่ ะวถิ ี
u – v มีอยา่ งนอ้ ยหน่ึงเส้นเช่ือมที่อยใู่ น F
พสิ ูจน์ (1) () ให้ S เป็นเซตแบ่งแยก u – v ของจุดยอดใน G และให้ P เป็นวถิ ี
u – v ถา้ P ไมม่ ีจุดยอดของ S แลว้ G – S ยงั มีวถิ ี u – v จะไดว้ า่ u และ v อยใู่ นกราฟ
ยอ่ ยส่วนประกอบเดียวกนั ซ่ึงเกิดขอ้ ขดั แยง้ กบั สมมุติฐาน

218 ทฤษฎีกราฟเบ้ืองตน้

() ใหแ้ ตล่ ะวถิ ี u – v มีจุดยอดท่ีเป็นของ S จะไดว้ า่ ถา้ G – S จะทาให้

ไม่มีวถิ ีจาก u ไป v นน่ั คือ u และ v อยใู่ นกราฟยอ่ ยส่วนประกอบท่ีตา่ งกนั ดงั น้นั S เป็น

เซตแบง่ แยก u – v

(2) พิสูจน์ในทานองเดียวกนั กบั (1) 

ทฤษฎบี ท 7.4 (Menger’s theorem) ให้ u และ v เป็นจุดยอดท่ีไมป่ ระชิดกนั ในกราฟ G

จะไดว้ า่ จานวนมากสุดของวถิ ี u – v ที่เป็นอินเทอนลั ลีดิสจอยทใ์ น G เท่ากบั จานวนนอ้ ย

สุดของจุดยอดในเซตแบ่งแยก u – v

พสิ ูจน์ สาหรับผสู้ นใจการพสิ ูจนศ์ ึกษาไดใ้ นหนงั สือ The First Look at Graph theory ของ

J. Clark and D. A. Holton หนา้ 283 – 285


จะเห็นวา่ กราฟ G ในตวั อยา่ ง 7.3.1 มีเซตแบง่ แยก u – v จานวนหลายเซตและ

มีเซตแบง่ แยก u – v ท่ีมีจานวนจุดยอดนอ้ ยสุด 3 จุด โดยทฤษฎีบท 7.4 ของเมนเจอร์

ทาใหไ้ ดว้ า่ มีวถิ ี u – v ท่ีเป็นอินเทอนลั ลีดิสจอยทใ์ น G จานวนมากสุด 3 วถิ ี


ทฤษฎบี ท 7.5 กราฟเชิงเดียว G เป็น n- คอนเน็กกราฟ ก็ต่อเม่ือ สาหรับจุดยอด u , v ท่ี
ตา่ งกนั ใด ๆ ของ G จะมีจานวนอยา่ งนอ้ ย n วถิ ีท่ีเป็นอินเทอนลั ลีดิสจอยท์

พสิ ูจน์ () สมมุติวา่ G เป็น n- คอนเน็กกราฟและ u และ v เป็นจุดยอดที่ตา่ งกนั ใน G
จะไดว้ า่ สาหรับเซตแบ่งแยก u – v ใด ๆ ตอ้ งมีอยา่ งนอ้ ย n จุดยอด ดงั น้นั โดยทฤษฎีบท
7.4 ตอ้ งมีอยา่ งนอ้ ย n วถิ ี u – v ท่ีเป็นอินเทอนลั ลีดิสจอยท์

() สมมุติวา่ สองจุด u , v ที่ต่างกนั ใน G มีอยา่ งนอ้ ย n วถิ ี u – v ท่ีเป็นอิน
เทอนลั ลีดิสจอยท์ โดยทฤษฎีบท 7.4 จะไดว้ า่ ทุก ๆ เซตแบง่ แยก u – v ตอ้ งมีอยา่ งนอ้ ย
n จุดยอดระหวา่ ง u , v ดงั น้นั ตอ้ งลบจุดยอดออกอยา่ งนอ้ ย n จุดยอด จึงจะทาให้ G
เป็นกราฟไมเ่ ชื่อมโยงหรือเป็ นกราฟ K1 นนั่ คือ G เป็น n- คอนเน็กกราฟ


ทฤษฎบี ท 7.6 (The edge version of Menger’s theorem) ให้ u และ v เป็นจุดยอดใน
กราฟ G จะไดว้ า่ จานวนมากสุดของวถิ ี u – v ท่ีไมม่ ีเส้นเช่ือมร่วมกนั ใน G เท่ากบั
จานวนนอ้ ยสุดของเส้นเชื่อมในเซตแบง่ แยก u – v
พสิ ูจน์ สาหรับผสู้ นใจการพสิ ูจนศ์ ึกษาไดใ้ นหนงั สือ The First Look at Graph theory ของ
J. Clark and D. A. Holton หนา้ 285 – 287



บทท่ี 7 การไหลในข่ายงาน 219

ต่อไปจะกล่าวถึงสภาพเช่ือมโยงของกราฟโดยเส้นเชื่อม ดงั น้ี

บทนิยาม 7.3.2 ให้ G เป็นกราฟเชิงเดียว สภาพเช่ือมโยงโดยเส้นเช่ือมของ G เขียนแทน

ดว้ ย e(G) คือ จานวนเส้นเช่ือมท่ีนอ้ ยที่สุดซ่ึงลบออกจาก G แลว้ ทาให้ G เป็นกราฟ
ไม่เชื่อมโยงหรือเป็นกราฟวา่ ง

ตวั อย่าง 7.3.2 (1) กราฟเชิงเดียว G ที่ไม่เป็นกราฟวา่ งและมีสะพาน จะไดว้ า่ e(G) = 1
(2) e(G) = 0 ก็ตอ่ เม่ือ G เป็นกราฟไมเ่ ชื่อมโยงหรือ G เป็นกราฟวา่ ง
(3) ให้ G เป็นกราฟดงั รูป 7.19 จะไดว้ า่ G มี e(G) = 2

รูป 7.19 แสดงกราฟ G ที่มี e(G) = 2


บทนิยาม 7.3.3 กราฟเชิงเดียว G จะเรียกวา่ n-เอดจ์คอนเน็กกราฟ (n-edge connected
graph) ก็ต่อเมื่อ e(G)  n , n  1

ทฤษฎบี ท 7.7 กราฟเชิงเดียว G เป็น n-เอดจค์ อนเน็กกราฟ ก็ต่อเม่ือ สาหรับจุดยอด u , v
ท่ีตา่ งกนั ใด ๆ ใน G จะมีจานวนอยา่ งนอ้ ย n วถิ ีท่ีไมม่ ีเส้นเช่ือมร่วมกนั จาก u ไป v
พสิ ูจน์ () สมมุติวา่ G เป็น n-เอดจค์ อนเน็กกราฟ และ u , v เป็นจุดยอดท่ีต่างกนั ใน
G จะไดว้ า่ เซตแบ่งแยก u – v ใด ๆ ของเส้นเชื่อมตอ้ งมีอยา่ งนอ้ ย n เซต ดงั น้นั โดย
ทฤษฎีบท 7.6 ตอ้ งมีอยา่ งนอ้ ย n วถิ ี ที่ไม่มีเส้นเช่ือมร่วมกนั ของวถิ ี u – v

() สมมุติวา่ กราฟ G มีอยา่ งนอ้ ย n วถิ ีที่ไม่มีเส้นเชื่อมร่วมกนั จาก u ไป v ที่
u  v , โดยทฤษฎีบท 7.6 จะไดว้ า่ สาหรับแต่ละคู่จุดยอด u , v ใด ๆ ทุก ๆ เซตแบ่งแยก
u – v ของเส้นเชื่อม ตอ้ งมีอยา่ งนอ้ ย n เส้น ดงั น้นั ถา้ ลบเส้นเหล่าน้ีออกจาก G จะทาให้
G เป็นกราฟไม่เชื่อมโยง หรือเป็นกราฟวา่ ง นนั่ คือ G เป็น n- เอดจค์ อนเน็กกราฟ


ทฤษฎีบทสุดทา้ ยตอ่ ไปน้ี แสดงใหเ้ ห็นถึงความสมั พนั ธ์ระหวา่ งสภาพเช่ือมโยง
โดยจุดยอดและโดยเส้นเช่ือมของกราฟซ่ึงจะให้ (G) แทนระดบั ข้นั นอ้ ยสุดของจุดยอดใน
G

220 ทฤษฎีกราฟเบ้ืองตน้

ทฤษฎบี ท 7.8 ให้ G เป็นกราฟอยา่ งง่าย จะไดว้ า่ (G)  e(G)  (G)
พสิ ูจน์ ให้ v เป็นจุดยอดซ่ึง dG(v) = (G) ถา้ ลบจานวน (G) เส้นเช่ือมท่ีประชิดกบั v
ออกจะทาใหไ้ ดก้ ราฟ K1 หรือ กราฟไมเ่ ชื่อมโยง H ที่มีจุดยอดเอกเทศ v H ดงั น้นั
e(G)  (G)

ถา้ e(G) = 0 แลว้ G เป็นกราฟไม่เช่ือมโยงหรือเป็นกราฟวา่ ง ดงั น้นั (G) = 0
ถา้ e(G) = 1 แลว้ G เป็นกราฟเช่ือมโยงและมีสะพาน ใหเ้ ป็น e จะไดว้ า่ G = K2
หรือ G มีจุดยอดส่วนตดั ซ่ึงเป็นจุดยอดปลายของ e ดงั น้นั (G) = 1
สมมุติวา่ e(G)  2 , ให้ e(G) = k จะไดว้ า่ G มี { e1 , . . . , ek } เป็นเซต
ของเส้นท่ีลบออกจาก G แลว้ ทาให้ G เป็นกราฟไม่เชื่อมโยงและไม่มีเซตใดท่ีมีเส้นเชื่อม
นอ้ ยกวา่ ที่ลบออกจาก G แลว้ ทาให้ G เป็นกราฟไม่เช่ือมโยง ดงั น้นั การลบเส้นเชื่อม
e1 , . . . , ek - 1 จานวน k – 1 เส้นเชื่อมทาใหไ้ ดก้ ราฟยอ่ ย H ของ G ท่ียงั คงเป็นกราฟ
เช่ือมโยง ซ่ึงมีเส้นเชื่อม ek เป็นสะพาน ให้ ek = uv
สาหรับ i = 1, . . . , k – 1 เนื่องจาก G เป็นกราฟอยา่ งง่าย ดงั น้นั ให้ ui เป็น
จุดยอดปลายของ ei ที่ ui  u , ui  v และ ui  uj โดยท่ี i  j และให้ Hเป็ นกราฟยอ่ ย
ของ G ท่ีลบดว้ ยจุดยอด ui เหล่าน้ี จานวน k – 1 จุด ถา้ H เป็นกราฟไม่เช่ือมโยง จะไดว้ า่
(G)  k – 1 < k = e(G)
ถา้ H เป็นกราฟเช่ือมโยง เน่ืองจาก H เป็นกราฟยอ่ ยของ H ที่เส้นเชื่อม ek = uv
ซ่ึงเป็นสะพาน ดงั น้นั H K2 หรือ H มี u หรือไมก่ ็ v เป็นจุดยอดส่วนตดั ดงั น้นั ถา้
ลบ u หรือ v ออกจาก H จะทาให้ H เป็นกราฟไม่เช่ือมโยง หรือกราฟ K1 ดงั น้นั (G)
 k = e(G) นน่ั คือ (G)  e(G)  (G)



แบบฝึ กหดั 7.3

1. ให้ u และ v เป็นจุดยอดท่ีแตกตา่ งกนั ในกราฟ G จงพิสูจนว์ า่ เซตของเส้นเช่ือม F ของ
G เป็นเซตแบ่งแยก u – v ก็ตอ่ เม่ือ แต่ละวถิ ี u – v มีเส้นเชื่อมท่ีอยใู่ น F อยา่ งนอ้ ยหน่ึงเส้น

บทที่ 7 การไหลในขา่ ยงาน 221

2. จงแสดงวา่ ทฤษฎีบท 7.4 และ 7.6 เป็นจริงสาหรับสองจุดยอด u และ v ของกราฟ G1
และ G2 ดงั รูปตอ่ ไปน้ี

u vu v

G1 G2

3. จงแสดงวา่ กลบั บทของทฤษฎีบท 7.5 และ 7.7 เป็นจริง สาหรับกราฟสองส่วนแบบ
บริบรู ณ์ K2, 3 และ K4, 4 กราฟลอ้ W5 และกราฟลูกบาศก์ Q4
4. ให้ G เป็นกราฟบนระนาบ และ G* เป็นกราฟคูก่ นั ของ G สาหรับแตล่ ะเซตของเส้น
เชื่อม F ของ G ให้ F* แทนเซตของเส้นเชื่อมใน G* ที่เส้นเช่ือมเหล่าน้นั สมนยั กบั เส้นเช่ือม
ใน F จงพิสูจน์วา่ เซตของเส้นเชื่อม F ใน G อยใู่ นรูปกราฟวฏั จกั ร ก็ต่อเม่ือ G* - F* เป็น
กราฟไม่เช่ือมโยง แต่ G* - F1* เป็นกราฟเช่ือมโยง สาหรับเซตยอ่ ยแท้ F1ใด ๆ ของ F

222 ทฤษฎีกราฟเบ้ืองตน้

เอด็ ส์เจอร์ ไวบ์ ดจิ ค์สตรา (Edsger Wybe Dijkstra)

เป็นบุคคลท่ีมีความสาคญั มากท่ีสุดคนหน่ึงในการวางรากฐานทางวทิ ยาการ
คอมพวิ เตอร์ อาทิ

 ข้นั ตอนวธิ ีออกแบบ (algorithm design)
 โปรแกรมภาษา (programming languages)
 โปรแกรมออกแบบ (program design)
 ระบบปฏิบตั ิการ (operating systems)
 การประมวลแบบกระจาย (distributed

processing)
 รูปแบบคุณลกั ษณะและการตรวจสอบ (formal

specification and verification)
 การออกแบบการอา้ งเหตุผลทางคณิตศาสตร์ (design of mathematical arguments)
ดิจคส์ ตรามีความสนใจในการสอนมาก โดยเฉพาะดา้ นวทิ ยาการคอมพวิ เตอร์กบั
ซอฟทแ์ วร์โรงงาน

ที่มา (Richards, 2002)

บทท่ี 8
การจับคู่

การจบั คูไ่ ดม้ ีการประยกุ ตใ์ ชใ้ นดา้ นเชิงการจดั และดา้ นการหาค่าที่เหมาะที่สุด
เช่น การมอบหมายงาน การจดั วางตารางการทางาน หรือปัญหาการแบง่ ส่วน ปัญหาการ
ไหลในข่ายงาน เพอ่ื ความเหมาะสมและดีท่ีสุด ในบทน้ีจะศึกษาการจบั คู่ในบางกราฟโดย
ท่ีจะใหก้ ราฟต่อไปน้ีเป็นกราฟท่ีไมม่ ีวงวน

8.1 เซตจับคู่และวถิ ีแต่งเติม (Matching Sets and Augmenting Paths)

บทนิยาม 8.1.1 ให้ G = (V, E) เป็นกราฟ จะเรียกเซตยอ่ ย M ของ E วา่ เซตจับคู่ M
(M-matching set) ใน G ถา้ สองเส้นเช่ือมใด ๆ ของ M ไม่มีจุดยอดปลายร่วมกนั และ
สาหรับเส้นเช่ือม eM ถา้ u, v เป็นจุดยอดปลายของ e แลว้ จะกล่าววา่ u จบั คูก่ บั v โดย M

ตัวอย่าง 8.1.1 ให้ G และ H เป็นกราฟดงั รูป u1 u2 u3
ab

cd v1 v2 H v3 v4
G

รูป 8.1 แสดงเซตจบั คู่ในกราฟ G และ H

จากรูป 8.1 จะไดว้ า่ {ab}, {bc}, {cd}, {bd}, {ab, cd} เป็นเซตจบั คูใ่ น G
และ {u1v2 , u2v4}, {u1v2 , u2v4 , u3v1} เป็ นเซตจบั คูใ่ น H



บทนิยาม 8.1.2 เซตจบั คู่ M ใน G จะเรียกวา่ เซตจับคู่สมบูรณ์ M (M-perfect matching
set) ถา้ ทุกจุดยอดของ G เป็นจุดยอดปลายของเส้นเช่ือมของ M และเซตจบั คู่ M ใน G จะ

เรียกวา่ เซตจับคู่สูงสุด (maximum matching set) ถา้ MM สาหรับทุก ๆ เซตจบั คู่ M
ใน G

จากบทนิยาม จะไดว้ า่ เซตจบั คู่สมบรู ณ์เป็นเซตจบั คูส่ ูงสุด

224 ทฤษฎีกราฟเบ้ืองตน้

ตวั อย่าง 8.1.2 จากตวั อยา่ ง 8.1.1 จะไดว้ า่ {ab, cd} เป็นเซตจบั คูส่ มบรู ณ์ และเป็นเซตจบั คู่
สูงสุดใน G แต่ {u1v2 , u2v4 , u3v1} เป็ นเซตจบั คู่สูงสุดใน H แต่ไม่เป็ นเซตจบั คู่สมบรู ณ์ใน
H


บทนิยาม 8.1.3 ให้ M เป็นเซตจบั คู่ในกราฟ G = (V, E) จะไดว้ า่ วถิ ีสลบั ของ M (M-
alternating path) ใน G คือ วถิ ีท่ีสลบั ระหวา่ งเส้นเชื่อมของ M และ E-M

ถา้ วถิ ีสลบั ของ M มีจุดเริ่มตน้ และจุดสิ้นสุดท่ีไมเ่ ป็นจุดยอดปลายของเส้นเช่ือมใน
M จะเรียกวา่ วถิ ีแต่งเตมิ ของ M (M- augmenting path)

ตัวอย่าง 8.1.3 ให้ G เป็นกราฟดงั รูป และเซตจบั คู่ M={e3, e5, e6}

v1 e1 v2 e2 v3

e9 e3 e4 e5 e8 e6
e10 v4 e11 e7 v5 v6

v7 e12
G

รูป 8.2 แสดงบางวถิ ีสลบั v1 v4 v2 v5 v6 v3 ของ M

จากรูป 8.2 จะไดว้ า่ วถิ ี v7 v1 v4 v2 v5 v6 v3 เป็ นวถิ ีสลบั ของ M แต่ไมเ่ ป็ นวถิ ีแต่ง
เติมของ M แตว่ ถิ ี v7 v1 v4 v5 v2 v3 v6 v7 เป็ นวถิ ีแต่งเติมของ M


จากบทนิยาม 8.1.3 และตวั อยา่ ง 8.1.3 ให้ P เป็นวถิ ีแต่งเติมในเซตจบั คู่ M ใน G

แลว้ M เป็นเซตของเส้นเช่ือมท้งั หมดที่ไม่อยใู่ นเซต M ของ P ถา้ แทนที่เส้นเช่ือมของเซต
M ใน P ดว้ ยเส้นเช่ือมในเซต M ของ P จะไดว้ า่ Mเป็นเซตจบั คู่ใหมท่ ่ีM= M+ 1

และจะไดว้ ถิ ีแตง่ เติมของ M เช่นในตวั อยา่ ง 8.1.3 จะไดว้ า่ M= {e2 ,e7 ,e9 ,e12}

บทท่ี 8 การจบั คู่ 225

ทฤษฎบี ท 8.1 ให้ M1 และ M2 เป็นเซตจบั คูใ่ นกราฟเชิงเดียว G ให้ H เป็นกราฟยอ่ ยของ G

ท่ีอินดิวส์ โดยเซตของเส้น M1 M2 = (M1 - M2)  (M2- M1) จะไดว้ า่ แต่ละกราฟยอ่ ย
ส่วนประกอบของกราฟ H จะมีลกั ษณะเป็นกราฟใดกราฟหน่ึงในสองลกั ษณะต่อไปน้ี

(1) เป็นกราฟวฏั จกั รท่ีมีความยาวคูแ่ ละเส้นเชื่อมสลบั กนั ระหวา่ ง M1 และ M2 หรือ
(2) เป็นกราฟวถิ ีซ่ึงเส้นเชื่อมสลบั กนั ระหวา่ ง M1 และ M2 และจุดยอดปลายท้งั สอง
ของวถิ ีไมอ่ ยใู่ น M1 ท้งั คู่หรือ M2 ท้งั คู่
พสิ ูจน์ ให้ v เป็นจุดยอดใด ๆ ของกราฟยอ่ ย H จะไดว้ า่ v จะอยใู่ นกรณีใดกรณีหน่ึง

ตอ่ ไปน้ี กรณี 1 v เป็นจุดยอดปลายของเส้นเชื่อมใน M1- M2 และใน M2 - M1 หรือ กรณี 2
v เป็นจุดยอดปลายของเส้นเช่ือมใน M1- M2 หรือไมก่ ็ M2- M1 อยา่ งใดอยา่ งหน่ึง

เน่ืองจาก M1 เป็นเซตจบั คู่ในท้งั สองกรณี จะมีเพียงเส้นเช่ือมเดียวใน M1 ที่ v เป็น
จุดยอดปลาย และเช่นเดียวกนั จะมีเส้นเช่ือมเดียวใน M2 ท่ี v เป็นจุดยอดปลาย ดงั น้นั ใน
กรณีท่ี 1 v มีระดบั ข้นั เป็น 2 ใน H ในขณะท่ีกรณีที่ 2 v มีระดบั ข้นั เป็ น 1 ใน H ดงั น้นั ทุก
ๆ จุดยอดของ H จะมีระดบั ข้นั เป็น 1 หรือ 2 อยา่ งใดอยา่ งหน่ึง ทาใหไ้ ดก้ ราฟยอ่ ย
ส่วนประกอบ H อยใู่ นลกั ษณะใดลกั ษณะหน่ึงจริงตามทฤษฎีบท



ตวั อย่าง 8.1.4 เป็นตวั อยา่ งการใชท้ ฤษฎีบท 8.1 ดงั น้ี

จากรูป 8.2 ให้ M1 = {e2 ,e8 ,e10} และ M2 = {e1 ,e7 ,e12} ซ่ึงเป็ นเซตจบั คู่ จะไดว้ า่

M1 M2 = { e1 ,e2 ,e7 ,e8 ,e10 , e12} ทาใหไ้ ดก้ ราฟยอ่ ย H ของ G เป็ น 2 ลกั ษณะ ดงั รูป 8.3

คือเป็นวฏั จกั รความยาว 4 และเป็นวถิ ีที่เส้นเชื่อมสลบั กนั ของ M1 และ M2 ซ่ึงจุดยอดปลาย

หน่ึงอยใู่ น M1 และอีกจุดหน่ึงอยใู่ น M2 v2 e2 v3
v1 e1

v4 e7 v5 e8 v6

e10
v7 e12

รูป 8.3 แสดงกราฟยอ่ ย H ของ G อินดิวส์โดย M1M2



226 ทฤษฎีกราฟเบ้ืองตน้

ต่อไปจะใชท้ ฤษฎีบท 8.1 พิสูจนท์ ฤษฎีการจบั คูส่ ูงสุด

ทฤษฎบี ท 8.2 (Berge, 1957) เซตจบั คู่ M ในกราฟ G เป็นเซตจบั คูส่ ูงสุด ก็ตอ่ เมื่อ G ไมม่ ี
วถิ ีแต่งเติมของ M
พสิ ูจน์ ()ให้ M เป็นเซตจบั คูส่ ูงสุดใน G ถา้ มีวถิ ีแต่งเติม P ของ M ใน G แลว้ จะ
สามารถหา P ในเซตจบั คู่ M ซ่ึง M = M+ 1 ได้ ซ่ึงเป็นไปไม่ไดเ้ พราะ M เป็น
เซตจบั คูส่ ูงสุด ดงั น้นั G ไมม่ ีวถิ ีแต่งเติมของ M
() สมมุติ M เป็นเซตจบั คู่ใน G ที่มีวถิ ีแต่งเติมใน G จะตอ้ งแสดงวา่ M เป็นเซตจบั คู่
สูงสุด ให้ M เป็นเซตจบั คู่สูงสุดใด ๆ ใน G จะแสดงวา่ M= M และให้ H กราฟ
ยอ่ ยของ G ท่ีอินดิวส์โดย M  M = (M - M)  (M- M) ดงั น้นั กราฟยอ่ ย
ส่วนประกอบของ H มีลกั ษณะ ดงั ทฤษฎีบท 8.1 ถา้ มีวถิ ีในลกั ษณะ (2) เป็นความยาวค่ีจะ
ไดว้ า่ จุดเร่ิมตน้ และจุดสิ้นสุดไม่อยใู่ น M หรือไม่กไ็ มอ่ ยใู่ น M ดงั น้นั จะไดว้ ถิ ีแต่งเติมของ
M ซ่ึงเป็นไปไม่ไดโ้ ดยสมมุติฐาน หรือ จะไดว้ ถิ ีแต่งเติมของ Mซ่ึงเป็นไปไม่ไดอ้ ีก เพราะ
M เป็นเซตจบั คู่สูงสุดดงั น้นั กราฟยอ่ ยส่วนประกอบของ H เป็นวถิ ีที่ความยาวเป็นจานวนคู่
หรือเป็นวฏั จกั รท่ีมีความยาวคู่ จะไดว้ า่ จานวนเส้นเช่ือมที่เกิดจาก M จะเทา่ กบั M ดงั น้นั
M - M = M- M

จากความรู้เกี่ยวกบั เซต ถา้ A X , B X จะไดว้ า่
A= A - B+A  B

ถา้ X = E(G) , A = M , B = M แลว้ M= M - M+M M
และ M= M - M+M M จะไดว้ า่ M= M
นนั่ คือ M เป็นเซตจบั คูส่ ูงสุด



แบบฝึ กหัด 8.1
1. ให้ M เป็นเซตจบั คู่ แสดงดว้ ยเส้นหนาของแต่ละกราฟตอ่ ไปน้ี

บทที่ 8 การจบั คู่ 227

(1.1) จงหาวถิ ีสลบั ของ M ที่ไมเ่ ป็นวถิ ีแต่งเติม
(1.2) จงหาวถิ ีแต่งเติมของ M และใชว้ ถิ ีน้ีหาเซตจบั คู่สูงสุด
2. ให้ G เป็นกราฟและมี M เป็นเซตจบั คู่ แสดงดว้ ยเส้นหนาดงั รูปต่อไปน้ี

x1 x2 x3 x4 x5 x6

y1 y2 y3 y4 y5 y6
จงหาวถิ ีต่อไปน้ี (ถา้ มี)
2.1 วถิ ีสลบั ของ M จาก x1 ไป x6
2.2 วถิ ีแต่งเติมของ M จาก x1 ไป x6
2.3 วถิ ีแต่งเติมของ M จาก x5 ไป y5
3. มีเซตจบั คูส่ มบูรณ์ที่แตกต่างกนั จานวนก่ีเซต ในกราฟ K 2n และ K n,n เม่ือ n  1
4. พิสูจน์วา่ กราฟ G ที่เป็นกราฟปกติระดบั ข้นั 2 มีเซตจบั คู่สมบรู ณ์ ก็ต่อเม่ือ ทุก ๆ กราฟ
ยอ่ ยส่วนประกอบของ G เป็ นกราฟวฏั จกั รคู่
5. จงพิสูจนว์ า่ ตน้ ไมม้ ีเซตจบั คูส่ มบรู ณ์ไดม้ ากสุดเพยี งเซตเดียว
6. จงพสิ ูจน์วา่ ถา้ G เป็นกราฟเช่ือมโยงท่ีทุก ๆ จุดยอดมีระดบั ข้นั เป็ น 1 หรือ 2 อยา่ งใด
อยา่ งหน่ึง แลว้ G จะเป็นกราฟวถิ ีหรือเป็นกราฟวฏั จกั รอยา่ งใดอยา่ งหน่ึง

228 ทฤษฎีกราฟเบ้ืองตน้

8.2 ข้ันตอนวธิ ีการจับคู่ (Matching Algorithm)

บทพิสูจนข์ องทฤษฎีบท 8.2 ซ่ึงเป็นทฤษฎีบทของเบิร์จ ทาใหส้ ามารถสร้างข้นั ตอนวธิ ี
เพือ่ หาเซตจบั คู่สูงสุดในกราฟ G ซ่ึงมีลาดบั ข้นั ในเบ้ืองตน้ ดงั น้ี

ข้นั ท่ี 1 กาหนดเซตจบั คู่ M
ข้นั ท่ี 2 หาวถิ ี P ซ่ึงเป็นวถิ ีแต่งเติมของ M

ถา้ ไมพ่ บใหห้ ยดุ จะไดว้ า่ M เป็นเซตจบั คู่สูงสุด
ถา้ พบ P ใหไ้ ปทาข้นั ท่ี 3
ข้นั ที่ 3 สร้างเซตจบั คู่ M โดยใชก้ ระบวนการในการพสิ ูจนข์ องทฤษฎีบทของเบิร์จ

แทน M ดว้ ย M และไปทาข้นั ท่ี 2

ดงั น้นั การหาเซตจบั คู่สูงสุด จะตอ้ งหาเงื่อนไขที่เพยี งพอ ในการหาวถิ ีแตง่ เติมของ
เซต M

ให้ G = (V, E) เป็นกราฟสองส่วน ซ่ึง V = X  Y วธิ ีหน่ึงที่จะหาเซตจบั คู่สูงสุด
ใน G คือการใชก้ ารไหลในข่ายงาน ซ่ึงสามารถสร้างขา่ ยงาน N = (V, A) จากกราฟ G โดย
การเติมแหล่งเร่ิมตน้ s และจุดสิ้นสุด อาร์ค (s, X) และ (Y, t) และเส้นเช่ือมท้งั หมดใน G ท่ี
กาหนดทิศทางจาก X ไป Y ทุกอาร์คใน N มีความจุเป็น 1 ซ่ึงจากบทที่ 7 จะเห็นวา่ ทุก ๆ
การไหลใน N จะเป็นเซตจบั คูใ่ น G กล่าวคือ ใหเ้ ส้นเช่ือมของเซตจบั คู่เป็นอาร์คของ N ซ่ึง
จุดปลายหน่ึงอยใู่ น X และอีกจุดหน่ึงอยใู่ น Y มีคา่ การไหลเป็น 1 ในทางกลบั กนั ให้ M

เป็นเซตจบั คู่ เราสามารถหาการไหลใน N ที่มีคา่ เป็นMโดยการส่งค่าการไหลเป็นหน่ึง
ของทุก ๆ วถิ ี s , x , y , t ที่ทุก xy M

จะเห็นวา่ วถิ ีของการไหลแต่งเติมใด ๆ ใน N สมนยั แบบ 1-1 กบั วถิ ีแตง่ เติมของ M
ใน G และมีวถิ ีแต่งเติมของการไหล ก็ตอ่ เม่ือ มีวถิ ีแต่งเติมของ M และตอ่ ไปน้ีเป็นเง่ือนไข
ของการมีวถิ ีแตง่ เติมของ M ใน G

บทนิยาม 8.2.1 ให้ M เป็นเซตจบั คูใ่ น G และให้ u เป็นจุดยอดใน G ท่ีไมเ่ ป็นจุดยอดของ
เส้นเช่ือมใน M แลว้ จะเรียก ตน้ ไม้ H G วา่ ต้นไม้มีราก (rooted tree) ที่ u ของวถิ ีสลบั

ของ M ถา้ u  V(H) และ สาหรับทุก ๆ จุดยอด v H จะมีวถิ ี u – v เพียงวถิ ีเดียวเท่าน้นั
ที่เป็นวถิ ีสลบั ของ M

บทท่ี 8 การจบั คู่ 229

วธิ ีการหาวถิ ีแต่งเติม หรือการแสดงใหเ้ ห็นวา่ ไมม่ ีวถิ ีแต่งเติมน้นั นกั คณิตศาสตร์
ชาวฮงั การี 2 ท่าน คือ เคอนิก (D. König) และ เอเกอร์วารี (J. Egerváry) ไดค้ ิดใช้ ข้นั ตอน
วธิ ีแบบฮังกาเรียน (Hungary algorithm) ดงั น้ี

ให้ M เป็นเซตจบั คู่ใด ๆ ในกราฟสองส่วน G และจุดยอด u ไม่เป็นจุดยอดของเส้น
เช่ือมใน M

ข้นั ที่ 1 ให้ T =  และ T=  (T เป็นเซตของเส้นเช่ือมในตน้ ไม้ ,

Tเป็ นเซตของเส้นเช่ือมท่ีถูกแทนท่ี)
ให้ O = {u} และ I =  (O เป็นเซตของจุดยอดที่ไมเ่ ป็นจุดยอดปลายของเส้น
เช่ือมใน M และ I เป็นเซตของจุดยอดปลายของเส้นเช่ือมใน M)

ข้นั ท่ี 2 พิจารณาจุดยอดใน O ของเส้นเช่ือม {x,y} ใด ๆ ที่ xO แต่ x T หรือ x T
ถา้ ไม่พบเส้นดงั กล่าว ใหไ้ ปทาข้นั ท่ี 5

ข้นั ท่ี 3 ถา้ yI แทนเส้นเช่ือม xy ใน Tและกลบั ไปทาข้นั ท่ี 2
ถา้ yI  O แทนเส้นเช่ือม xy ใน T และไปทาข้นั ที่ 4
(สงั เกตวา่ yO , เนื่องจาก G เป็นกราฟสองส่วน)

ข้นั ที่ 4 หยดุ , ถา้ y ไมเ่ ป็นจุดยอดปลายของเส้นเชื่อมใน M
จะไดว้ า่ วถิ ี u – y เป็นวถิ ีแตง่ เติมของ G
ถา้ y เป็นจุดยอดของเส้นเช่ือมใน M จะไดว้ า่ มีเส้นเชื่อม yz ใน M
ใหแ้ ทน yz ใน T โดยท่ี yI และ zO แลว้ กลบั ไปทาข้นั ที่ 2

ข้นั ที่ 5 หยดุ ไมม่ ีวถิ ีแต่งเติมใน G ท่ีมีจุดยอด u เป็นจุดเริ่มตน้

จากข้นั ตอนวธิ ีขา้ งบน ถา้ การหาไดเ้ สร็จสิ้นลง จะไดว้ า่ M ใหมท่ ี่ไดจ้ ะเป็นเซต
จบั คู่สูงสุดใน G

230 ทฤษฎีกราฟเบ้ืองตน้

ตัวอย่าง 8.2.1 ให้ G เป็ นกราฟสองส่วนดงั รูป และเซตจบั คู่ M = {x2y1 , x3y4 , x5y5} จงหา
เซตจบั คู่สูงสุด

x1 x2 x3 x4 x5

y1 y2 y3 y4 y5

รูป 8.4 แสดงกราฟ G และเซตจบั คู่ M

วธิ ีทา
1. ให้ u = x1 , O = { x1} , I =  , T =  , T= 
2. พจิ ารณา x1
y2 y4 O

x1 I

เนื่องจาก y2 ไมเ่ ป็นจุดยอดของเส้นเชื่อมใน M จะไดว้ า่ x1y2 เป็นวถิ ีแตง่ เติมของ M
ดงั น้นั M= M  { x1y2} เป็นเซตจบั คู่ใน G ที่ M= M + 1

เซตจบั คู่ Mแสดงดงั รูป 8.5
x1 x2 x3 x4 x5

y1 y2 y3 y4 y5

รูป 8.5 เซตจบั คู่ Mแสดงดว้ ยเสน้ หนา

บทท่ี 8 การจบั คู่ 231

ต่อไปพจิ ารณาท่ี x4 x5
1. ให้ u = x4 , O = { x4} , I =  , T =  , T= 
2. พจิ ารณา x4

x2

y1 y5
x4

3. พจิ ารณา x2 , x5

y2 y3 y4
x2 x5

y1 y5

x4
เนื่องจาก y3 ไม่เป็นจุดยอดของเส้นเช่ือมใน M
จะไดว้ า่ x4 y5 x5 y3 เป็ นวถิ ีแต่งเติมของ M
ดงั น้นั M= (M- {y5 x5})  { x4y5 , x5y3} เป็ นเซตจบั คูใ่ น G ที่ M= M + 1
เซตจบั คู่ M แสดงดงั รูป 8.6

x1 x2 x3 x4 x5

y1 y2 y3 y4 y5

รูป 8.6 แสดงเซตจบั คู่ M แสดงดว้ ยเสน้ หนา

232 ทฤษฎีกราฟเบ้ืองตน้

จะเห็นวา่ M เป็นเซตจบั คู่สมบรู ณ์
ดงั น้นั M เป็นเซตจบั คู่สูงสุด


ตวั อย่าง 8.2.2 ให้ G เป็นกราฟสองส่วนดงั รูป 8.7 และ M เป็นเซตจบั คูท่ ี่แสดงดว้ ยเส้น
หนา จงหาเซตจบั คูส่ ูงสุด

x1 x2 x3 x4 x5 x6

y1 y2 y3 y4 y5 y6

รูป 8.7 แสดงกราฟ G และเซตจบั คู่ M

วธิ ีทา
1. ให้ u = x4 , O = { x4} , I = , T =  , T= 
2. พิจารณา x4 , x1 และ x5 จะไดต้ น้ ไม้ T ดงั รูป

x5 x1

y1 y3
x4

จะเห็นวา่ เส้นเช่ือมใน T ท่ีแสดงดว้ ยเส้นประ ทาใหไ้ ม่สามารถสร้าง T ใหม่
ต่อไปได้ ดงั น้นั M จึงเป็ นเซตจบั คูส่ ูงสุดใน G แต่ M ไม่เป็นเซตจบั คู่สมบูรณ์ใน G



บทที่ 8 การจบั คู่ 233

บทนิยาม 8.2.2 ให้ S เป็นเซตของจุดยอดในกราฟ G จะกล่าววา่ ยา่ นใกลเ้ คียงของ S ใน G
เขียนแทนดว้ ย N(S) คือ เซตของจุดยอดท้งั หมดท่ีประชิดกบั จุดยอดใน S

จากตวั อยา่ ง 8.2.2 ให้ S = { x1 , x4 , x5 } จะไดว้ า่ N(S) = { y1 , y3} ซ่ึงจะเห็นวา่
3 = S  N(S)  = 2 ดงั น้นั จึงเป็ นไปไมไ่ ดท้ ี่ G จะมีเซตสมบูรณ์ และสามารถ
พิสูจนไ์ ด้ จากทฤษฎีเซตต่อไปน้ี

ทฤษฎบี ท 8.3 (Hall’s theorem) ให้ G = (V,E) เป็นกราฟสองส่วนซ่ึง V = XY จะไดว้ า่
G มีเซตจบั คูท่ ี่บรรจุทุกจุดยอดของ X ก็ต่อเม่ือ N(S)  S  สาหรับทุก ๆ SX
พสิ ูจน์ () สมมุติวา่ G มีเซตจบั คู่ M ท่ีบรรจุทุกจุดยอดของ X และให้ S  X เห็นได้
ชดั วา่ โดยบทนิยาม 8.1.2 จะไดว้ า่ N(S)  S 
() สมมุติวา่ สาหรับทุก ๆ SX , N(S)  S  และ G ไมม่ ีเซตจบั คูท่ ี่บรรจุทุก
จุดยอดของ X ให้ M* เป็นเซตจบั คู่สูงสุดใน G และให้ u เป็นจุดยอดใน X ที่ไม่เป็นจุดยอด
ของเส้นเช่ือมใน M* ให้ Z เป็นเซตของจุดยอดท้งั หมดที่เช่ือมโยงกบั u โดยวถิ ีสลบั ของ
M* แลว้ โดยทฤษฎีบทของเบิร์จ(ทฤษฎีบท 8.2) จะไดว้ า่ u Z ดงั น้นั เซต S = ZX
และ T = ZY และจุดยอดของ S - {u} ถูกจบั คูโ่ ดย M* ดว้ ยจุดยอดใน T ดงั น้นั T =
S - 1 และ T  N(S) เน่ืองจากทุกจุดยอดใน N(S) เชื่อมโยงกบั u โดยวถิ ีสลบั ของ
M* ดงั น้นั N(S) = T ทาใหไ้ ดว้ า่ N(S) = S - 1  S  เกิดขอ้ ขดั แยง้ กบั
สมมุติฐาน


บทแทรก 8.4 (Marriage theorem) ถา้ G เป็นกราฟสองส่วนแบบปกติระดบั ข้นั k ซ่ึง k  0
จะไดว้ า่ G มีเซตจบั คูส่ มบูรณ์
พสิ ูจน์ ใหพ้ ิสูจนเ์ ป็นแบบฝึ กหดั



234 ทฤษฎีกราฟเบ้ืองตน้

แบบฝึ กหดั 8.2

1. จงใชข้ ้นั ตอนวธิ ีแบบฮงั กาเรียนเพ่ือหาเซตจบั คู่สูงสุดและเซตจบั คูส่ มบรู ณ์(ถา้ มี)ของ
กราฟต่อไปน้ี

x1 x2 x3 X

1.1

y1 y2 y3 y4 Y

x1 x2 x3 x4 x5

1.2

y1 y2 y3 y4 y5

2. จงหาเซตจบั คู่ M ที่ M = M + 1 ในแบบฝึกหดั 8.1 ขอ้ 2 และ M เป็นเซต

จบั คูส่ ูงสุดหรือไม่

3. ให้ G เป็นกราฟสองส่วนและ M เป็นเซตจบั คูท่ ่ีแสดงดว้ ยเส้นหนา ดงั น้ี

x1 x2 x3 x4 x5 x6

y1 y2 y3 y4 y5 y6 y7

จงหาเซตจบั คูส่ ูงสุดใน G

บทท่ี 8 การจบั คู่ 235

8.3 การประยุกต์ทฤษฎกี ารจับคู่ในบางปัญหา (Some Applications of Matching Theory)
ในหวั ขอ้ น้ีจะกล่าวถึงการนาทฤษฎีการจบั คูป่ ระยกุ ตใ์ ชก้ บั บางปัญหา โดยเฉพาะ

ปัญหาในทางเชิงการจดั เร่ิมจากบทนิยามและตามดว้ ยตวั อยา่ งต่อไปน้ี

บทนิยาม 8.3.1 ให้ A เป็นเซตจากดั ท่ีไมเ่ ป็ นเซตวา่ ง และให้ F = { S1 , S2 , . . . , Sn }
เป็นเซตของเซตยอ่ ยของ A โดยที่ Si  Sj อาจไม่เป็นเซตวา่ ง จะไดว้ า่ ทรานสเวอร์ซัล
(transversal) หรือ ระบบ SDR (system of distinct representatives) ของ F คือ

T = (a1 , a2 , . . . , an) ซ่ึงเป็น n อนั ดบั ที่สมาชิกแตกตา่ งกนั ท้งั หมด โดยท่ี ai Si , 1 i  n

ตวั อย่าง 8.3.1 เป็นตวั อยา่ งปัญหาทางทฤษฎีรหสั

แฟ้ มขอ้ มูล F1 , F2 , . . . , Fn จานวน n แฟ้ ม แต่ละแฟ้ มมีรหสั เปิ ดเป็นกลุ่มเลข
โดดส่ีตวั เลข โดยใชต้ วั เลข 0 , 1 , 2 , . . . , t เป็นไปไดห้ รือไม่ที่จะเปิ ดแฟ้ มดว้ ยเลขโดด

เหล่าน้ี
จำลองปัญหำ โดยใชก้ ราฟสองส่วน G ดงั น้ี

X = { รหสั เลขโดดส่ีตวั เลข } , X = n

Y = {0,1,2,...,t } , Y = t + 1

xX เชื่อมโยงกบั yY ก็ตอ่ เม่ือ y เป็นเลขโดดใน X
ปัญหำ G มีเซตจบั คูส่ ูงสุดที่บรรจุทุกจุดยอดใน X หรือไม่ ซ่ึงทฤษฎีบทของ

ฮอลล์ ตอบวา่ G มีเซตลกั ษณะดงั กล่าว ถา้ N(S)  S  ทุก ๆ S  X
ปัญหาน้ีแสดงใหเ้ ห็นในเชิงการจดั เทอมของเซต ดงั น้ี

ให้ F = { S1 , S2 , . . . , Sn } โดยที่ Si  Sj อาจไมเ่ ป็ นเซตวา่ ง

ให้ T = (a1 , a2 , . . . , an) เป็ น n อนั ดบั ที่ ai Si , 1 i  n ซ่ึง ai แตกต่างกนั
ท้งั หมด แลว้ F จะมีทรานสเวอร์ซลั หรือ ระบบ SDR ตอ้ งมีเงื่อนไขที่จาเป็นอยา่ งไรบา้ ง



ตัวอย่าง 8.3.2 ให้ F = { S1 , S2 , S3 , S4 , S5 } โดยท่ี S1= { a, b, c} , S2= { b, c, d } ,
S3= { c, d, e } , S4= { d, e } , S5= { a, b, e } แลว้ F มีระบบ SDR หรือไม่

จำลองปัญหำ เป็นกราฟสองส่วน ดงั น้ี

X = { S1 , S2 , S3 , S4 , S5 } และ Y = { a, b, c, d, e }
จุดยอด xX เช่ือมโยงกบั จุดยอด yY ก็ตอ่ เมื่อ S บรรจุ y

236 ทฤษฎีกราฟเบ้ืองตน้

ปัญหำ สาหรับปัญหาน้ีกค็ ือ การหาเซตจบั คูซ่ ่ึงบรรจุทุกจุดยอดของ X ซ่ึงแสดง
ไดด้ ว้ ยกราฟขา้ งล่าง โดยที่เส้นเช่ือมในเซตจบั คู่แสดงไวด้ ว้ ยเส้นหนา

S1 S2 S3 S4 S5

a b c de

รูป 8.8 แสดงเซตจบั คูท่ ่ีบรรจุทุกจุดยอดใน X

ดงั น้นั จะไดว้ า่ T = (b, c, d, e, a) เป็นทรานสเวอร์ซลั ของF หรือ F มีระบบ SDR


ตวั อย่าง 8.3.3 ให้ F = { S1 , S2 , S3 , S4 , S5 ,S6 } ซ่ึง S1 = { a, b} , S2 = { b, c } ,

S3 = { a, b, c } , S4 = { b, c, d } , S5 = { a, c } และ S6 = { c, d, e, f } แลว้ F มีระบบ
SDR หรือไม่

จำลองปัญหำ เป็นกราฟได้ ดงั น้ี

S1 S2 S3 S4 S5 S6

a b c de f

รูป 8.9 แสดงกราฟซ่ึงไมม่ ีเซตจบั คูท่ ่ีบรรจุทุกจุดยอดใน X

จะเห็นวา่

N( S1 S2 S3  S4  S5)= 4  5 = S1 S2 S3  S4  S5
ดงั น้นั โดยทฤษฎีบทของฮอลล์ จะไดว้ า่ กราฟน้ีไม่มีเซตจบั คูท่ ี่บรรจุทุกจุดยอด
ของ Si , 1 i  5 นน่ั คือ F ไม่มีระบบ SDR


ทฤษฎบี ท 8.5 ให้ F = { S1 , S2 , . . . , Sn } จะไดว้ า่ F มีระบบ SDR ก็ต่อเมื่อ สาหรับ
ทุกคา่ k , 1 i  n ของ Si จานวน k ตวั ใด ๆ จะตอ้ งบรรจุสมาชิกอยา่ งนอ้ ย k สมาชิก
ท่ีแตกต่างกนั

ทฤษฎีบทน้ีเป็นทฤษฎีบทของฮอลลส์ าหรับกราฟสองส่วน ซ่ึงกล่าวไวใ้ นลกั ษณะ
ของ ทรานสเวอร์ซลั หรือกล่าวในระบบ SDR ซ่ึงในที่น้ีจะไม่ขอพิสูจน์

บทที่ 8 การจบั คู่ 237


นอกจากน้ี เซตจบั คูส่ ูงสุดยงั มีความสมั พนั ธ์กบั เซตปกคลุมต่าสุด โดยเฉพาะใน

กราฟสองส่วน ดงั ตอ่ ไปน้ี

บทนิยาม 8.3.1 เซตปกคลมุ (covering set) ของกราฟ G = (V,E) คือ เซตยอ่ ย K ของ V ซ่ึง
ทุกเส้นเช่ือมของ G มีจุดยอดปลายอยใู่ น K อยา่ งนอ้ ยหน่ึงจุด

เซตปกคลุม K ของ G จะเป็นเซตปกคลุมตา่ สุด (minimum covering) ถา้ G ไมม่ ี
เซตปกคลุม K ซ่ึง K  K 

ตวั อย่าง 8.3.4 ให้ G เป็นกราฟดงั รูป และให้ K1 = { a, b, c, d, e } , K2 = { b, d, e, f }
b

a c
f

ed

รูป 8.10 แสดงเซตปกคลุมของกราฟ

จากรูป 8.10 จะไดว้ า่ K1 เป็นเซตปกคลุม และ K2 เป็นเซตปกคลุมต่าสุด


สาหรับเซตจบั คู่ M และเซตปกคลุม K ใด ๆ ของกราฟ G จะไดว้ า่ M  K 

ทฤษฎบี ท 8.6 ให้ G เป็นกราฟสองส่วน M เป็นเซตจบั คู่สูงสุดใน G และ K เป็นเซตปก
คลุมต่าสุดใน G จะไดว้ า่ M = K 
พสิ ูจน์ ให้ G = (V,E) เป็ นกราฟสองส่วนท่ี V = XY และให้ M เป็นเซตจบั คู่สูงสุด
ของ G ให้ U เป็นเซตของจุดยอดใน X ที่ไม่เป็นจุดยอดปลายของเส้นเช่ือมใน M ให้ Z
เป็นเซตของจุดยอดของ G ที่เช่ือมโยงจุดยอดของ U โดยวิถีสลบั ของ M พิจารณา
S = ZX และ T = ZY จะเห็นวา่ ทุก ๆ จุดยอดของ T เป็นจุดยอดปลายของเส้นเชื่อม
ใน M และ N(S) = T ดงั น้นั ให้ K = (X-S)T จะพจิ ารณาวา่ ทุกเส้นเช่ือมของ G
มีอยา่ งนอ้ ยหน่ึงจุดยอดที่เป็ นจุดยอดปลายใน K

238 ทฤษฎีกราฟเบ้ืองตน้

สมมุติวา่ ไม่เป็นตามสมมุติฐาน จะไดว้ า่ มีหน่ึงเส้นเช่ือมที่จุดยอดปลายจุดหน่ึงอยู่
ใน S และอีกจุดยอดปลายอยใู่ น Y-T เกิดขอ้ ขดั แยง้ กบั ท่ีวา่ N(S) = T ดงั น้นั K เป็นเซต
ปกคลุมของ G ซ่ึงจะเห็นได้ K = M  ถา้ K ไม่เป็นเซตปกคลุมต่าสุด จะไดว้ า่
สาหรับเซตปกคลุมต่าสุด K จะไดว้ า่ K = M  K  K  ซ่ึงเกิดขอ้ ขดั แยง้



แบบฝึ กหดั 8.3

1. บริษทั แห่งหน่ึงมีงาน 5 อยา่ งคือ งาน a, b, c, d และ e มีผมู้ าสมคั รงาน 7 คน คือ A, B,
C, D, E, F และ G ซ่ึงแตล่ ะคนมีความถนดั ในงานอยา่ งนอ้ ยหน่ึงอยา่ ง ดงั ตารางต่อไปน้ี

ผสู้ มคั รงาน งานที่ถนดั
A a, c, d
B b, c
C b, c, d, e
D a, d
E a, c, d, e
Fa
G a, b, c, d, e

1.1 จงเขียนแบบจาลองปัญหาทางกราฟ
1.2 บริษทั น้ีจะบรรจุแต่ละคนที่มีความถนดั ในงานไดห้ รือไม่ ถา้ ได้ จะทาไดก้ ี่วธิ ี
2. ให้ abcd, cde, a, b และ ce เป็นคา จะเกบ็ คาเหล่าน้ีไวใ้ นคอมพิวเตอร์เพียงคาละหน่ึง
ตวั อกั ษรจะทาไดห้ รือไม่ อธิบาย
3. จงหาระบบ SDR ในแต่ละเซตของเซตยอ่ ยในแตล่ ะขอ้ ต่อไปน้ี โดยใชเ้ ง่ือนไขใน
ทฤษฎีบทของฮอลล์

3.1 S1 = { a, b, f } , S2 = { a } , S3 = { a, b, d, f } , S4 = { a, b } ,
S5 = { b, f } , S6 = { d, e, f } , S7 = { a, f }

3.2 S1 = { c } , S2 = { a, e } , S3 = { a, c } , S4 = { a, b, c, d }
4. มหาวทิ ยาลยั แห่งหน่ึงตอ้ งการคดั เลือกนกั ศึกษา 6 คนท่ีมีความสามารถดา้ น A, B, C, D,
E และ F อยา่ งนอ้ ยคนละหน่ึงดา้ น เป็นตวั แทนส่งเขา้ แข่งขนั ชิงรางวลั มีนกั ศึกษาสมคั ร

บทที่ 8 การจบั คู่ 239

ใหค้ ดั เลือกจานวน 10 คนท่ีมีความสามารถดา้ นต่าง ๆ ตามตาราง ( 1, 0 แทน มีและไมม่ ี

ความสามารถ ตามลาดบั )

นกั ศึกษา ความสามารถ

คนท่ี A B C D E F

1 111000

2 110110

3 111000

4 100111

5 011000

6 110000

7 111000

8 100000

9 111000

10 1 1 0 0 0 0

ถา้ มหาวทิ ยาลยั แห่งน้ีตอ้ งการนกั ศึกษา 6 คนท่ีไปแข่งขนั ความสามารถแตล่ ะดา้ น
6 ดา้ นไมซ่ ้ากนั จะคดั เลือกไดห้ รือไม่
5. จงหาเซตจบั คู่สูงสุดและเซตปกคลุมต่าสุดในแตล่ ะกราฟตอ่ ไปน้ี

a ea e

b fb f
c dgc dg

6. ให้ F = { S1 , S2 , . . . , Sn } เป็นเซตของเซตยอ่ ยของเซต { 1, 2, . . . , n } สาหรับแต่ละ
r , r  1 จงแสดงวา่ มีทรานสเวอร์ซลั ของ F
7. จงพิสูจนห์ รือยกตวั อยา่ งคา้ นขอ้ ความต่อไปน้ี “ กราฟ G ไมเ่ ป็นกราฟสองส่วน ก็ต่อเม่ือ
จานวนเส้นเช่ือมในเซตจบั คู่สูงสุดไมเ่ ทา่ กบั จานวนจุดยอดในเซตปกคลุมต่าสุด”

240 ทฤษฎีกราฟเบ้ืองตน้

8.4 ปัญหาการกาหนดงานทเ่ี หมาะทส่ี ุด (Optimal Assignment Problems)
หวั ขอ้ ที่ผา่ นมาไดก้ ล่าวถึงข้นั ตอนวธิ ีการจบั คูใ่ นกราฟที่ไม่ถ่วงน้าหนกั แต่มีหลาย

ปัญหาที่จะตอ้ งหาการจบั คู่แบบถ่วงน้าหนกั สูงสุด ปัญหาในลกั ษณะเช่นน้ี จะเรียกวา่ ปัญหา
การกาหนดงานที่เหมาะที่สุด

ให้ G = (V,E) เป็ นกราฟสองส่วนที่ V = XY และ X = { x1 , x2 , . . . , xn } ,
Y = { y1 , y2 , . . . , yn } และให้ wij = w(xiyj) เป็ นน้าหนกั ของเส้นเช่ือม xiyj ซ่ึงหมายถึง
ประสิทธิภาพการทางานของคนงาน xi กบั งาน yj ดงั น้นั ปัญหาการกาหนดงานที่เหมาะ
ท่ีสุดคือ การหาเซตจบั คูส่ มบรู ณ์ใน G เพ่อื หาผลรวมน้าหนกั สูงสุดของเส้นเชื่อมในกราฟ
ถ่วงน้าหนกั G ซ่ึงจะเรียกเซตจบั คูน่ ้ีวา่ เซตจับคู่ทเ่ี หมาะทส่ี ุด (optimal matching set)ใน G

บทนิยาม 8.4.1 ให้ G = (V,E) เป็นกราฟสองส่วนถ่วงน้าหนกั ท่ี V = XY จะกล่าววา่ 
เป็นฟังก์ชันทรี่ ะบุจุดยอดเหมาะสม (feasible vertex labelling function) ของ G ถา้  เป็น
ฟังกช์ นั ค่าจริงบนเซตของจุดยอด XY ของ G โดยท่ี (x) + (y)  w(xy) , สาหรับ
ทุกจุดยอด xX , yY

ตวั อย่าง 8.4.1 ให้ G เป็นกราฟสองส่วนถ่วงน้าหนกั ดงั รูปตอ่ ไปน้ี

x1 5 x2 x3
2
87 34
y3
y1 y2
G

และมีการระบุแต่ละจุดยอดใน G ดว้ ย  ดงั น้ี

(x1)=4 (x2)=2 (x3)=0 (x1)=5 (x2)=8 (x3)=7
5 5
2 2
87 34 87 34
(y1)=6 ( 1(y)2)=1 (y3)=2 (y1)=0 (2(y)2)=0 (y3)=0

รูป 8.11 แสดงการระบุจุดยอดในกราฟ G

บทที่ 8 การจบั คู่ 241

จากรูป 8.11 จะเห็นวา่ รูป 8.11 (1) ไมเ่ ป็นการระบุจุดยอดเหมาะสมใน G แตร่ ูป
8.11 (2) เป็นการระบุจุดยอดเหมาะสมใน G



ทฤษฎบี ท 8.7 ในกราฟสองส่วนใด ๆ จะมีฟังกช์ นั ที่ระบุจุดยอดเหมาะสมเสมอ

พสิ ูจน์ ให้ G = (V,E) เป็นกราฟสองส่วนที่ V = XY และให้ v เป็นจุดยอดใด ๆ ใน

G จะไดว้ า่ มีฟังกช์ นั  โดยที่

(v) = 0 , if vY
max{w(xy) yY} , if vX

จะเห็นไดช้ ดั วา่  เป็นฟังกช์ นั ท่ีระบุจุดยอดเหมาะสม ของ G


บทนิยาม 8.4.2 ให้  เป็นฟังกช์ นั ท่ีระบุจุดยอดเหมาะสม ของกราฟ G = (V,E) และให้

E= { xyE (x) + (y) = w(xy) } แลว้ จะเรียกกราฟยอ่ ยแบบทอดขา้ มของ G โดยที่
เส้นเชื่อมท้งั หมดอยใู่ น E วา่ กราฟย่อยภาวะเท่ากนั (equality subgraph) ของ G เขียน
แทนดว้ ย G

ตัวอย่าง 8.4.2 กราฟของการระบุจุดยอดเหมาะสมของ G ในรูป 8.11 (2) จะมีกราฟยอ่ ย
ภาวะเท่ากนั ดงั รูป 8.12

(x1)=5 (x2)=8 (x3)=7
5

87

(y1)=0 (y2)=0 (y3)=0

รูป 8.12 แสดงกราฟ G ของ G


ความเช่ือมโยงระหวา่ งกราฟยอ่ ยภาวะเท่ากนั กบั เซตจบั คู่เหมาะท่ีสุด จะเห็นได้

จากทฤษฎีบทตอ่ ไปน้ี

242 ทฤษฎีกราฟเบ้ืองตน้

ทฤษฎบี ท 8.8 ให้  เป็นฟังกช์ นั ท่ีระบุจุดยอดเหมาะสมของกราฟสองส่วนถ่วงน้าหนกั G

ถา้ กราฟยอ่ ยภาวะเท่ากนั G มีเซตจบั คูส่ มบูรณ์ M* แลว้ M* จะเป็นเซตจบั คู่เหมาะที่สุด
ใน G

พสิ ูจน์ ให้ M* เป็นเซตจบั คู่สมบรู ณ์ในกราฟ G เน่ืองจาก G เป็นกราฟยอ่ ยแบบทอด
ขา้ มของ G ดงั น้นั M* เป็นเซตจบั คู่สมบรู ณ์ใน G ดว้ ย จะไดว้ า่ ผลรวมของน้าหนกั ทุกเส้น

เช่ือมใน M* หรือ

w(M*) =  w(e)

eM*

และแต่ละเส้นเช่ือม eM* อยใู่ น G  จะไดว้ า่ w(e) = (x) + (y) เม่ือ x , y เป็นจุด

ยอดปลายของ e และเนื่องจาก M* เป็นเซตจบั คูส่ มบรู ณ์ใน G ดงั น้นั เซตของเส้นเชื่อมใน

M* มีจุดยอดปลายเป็นจุดยอดท้งั หมดใน G นนั่ คือ

n
w(M*) =  w(e) = ((xi )  (yi )) (*)

eM* i1
ในทางตรงกนั ขา้ ม ถา้ M เป็ นเซตจบั คูส่ มบูรณ์ใด ๆ ในกราฟ G จะไดว้ า่

n (**)

w(M) =  w(e)  ((xi )  (yi ))
eM i1

จาก (*) และ (**) จะไดว้ า่

w(M*)  w(M)
เน่ืองจาก Mเป็นเซตจบั คู่สมบรู ณ์ใด ๆ ใน G จะไดว้ า่ M* จะเป็นเซตจบั คู่เหมาะที่สุดใน G


ทฤษฎีบท 8.8 น้ี เป็นพ้ืนฐานของข้นั ตอนวธิ ีการหาเซตจบั คู่เหมาะท่ีสุดในกราฟ
สองส่วนแบบบริบูรณ์ถ่วงน้าหนกั ซ่ึงเป็นข้นั ตอนวธิ ีของคูน (Kuhn) และ มุงเกรซ
(Munkres) (Caccetta, 2004) ถา้ ไม่เป็นกราฟแบบบริบูรณ์ สามารถทาใหเ้ ป็นแบบบริบรู ณ์

โดยการเพ่มิ เส้นเช่ือมใหม้ ีน้าหนกั ที่เหมาะสมซ่ึงอาจเป็ นศูนย์

ข้นั ตอนวธิ ีของคูนและมุงเกรซ (Kuhn-Munkres algorithm) เพือ่ ใชห้ าเซตจบั คู่เหมาะท่ีสุด
ในกราฟ มีดงั น้ี

ข้นั ท่ี 1 สร้างฟังกช์ นั  การระบุจุดยอดเหมาะสมและกราฟยอ่ ยภาวะเทา่ กนั G
ของ G

ข้นั ที่ 2 หาเซตจบั คู่สูงสุด M ใน G โดยใชข้ ้นั ตอนวธิ ีแบบฮงั กาเรียน ดงั น้ี

บทที่ 8 การจบั คู่ 243

ให้ G เป็นกราฟสองส่วน และ H เป็นตน้ ไมข้ องวถิ ีสลบั ของ M ใน G

(1) ให้ S = {จุดยอดที่ไมอ่ ยใู่ น H} และ T  NG ( S ) ซ่ึงเท่ากบั V(H) – S

(2) ให้  = min { (x) + (y) = w(xy) }

xS
yT

และ  = (v)   ถา้ vS
(v)   ถา้ vT

(v) ถา้ vT หรือ S

แทน  ดว้ ย  และแทน G ดว้ ย G

(3) สร้างตน้ ไม้ H ของวถิ ีสลบั ของ M ใน G

ถา้ H บรรจุวถิ ีแตง่ เติมของ M ใหห้ าเซตจบั คูส่ ูงสุด Mใน G

ถา้ Mเป็นเซตจบั คู่สมบรู ณ์ ใหห้ ยดุ

ถา้ Mไม่เป็นเซตจบั คู่สมบูรณ์ ใหห้ าตน้ ไม้ Tของวถิ ีสลบั ของ M ใน G
แทน T ดว้ ย T แลว้ กลบั ไปทาใน (1)

ข้นั ท่ี 3 ถา้ M เป็นเซตจบั คู่สมบรู ณ์ จะไดว้ า่ M เป็นเซตจบั คูเ่ หมาะท่ีสุด
ถา้ M ไม่เป็นเซตจบั คู่สมบูรณ์ ในตอนสุดทา้ ยของข้นั ตอนการหาเซตจบั คู่

ในตน้ ไม้ H ของวถิ ีสลบั ของ M จะไม่มีวถิ ีแตง่ เติมของ M

ข้นั ที่ 4 สร้างฟังกช์ นั  เป็นการระบุจุดยอดเหมาะสม โดยที่ท้งั M และ H บรรจุ
อยใู่ น G กลบั ไปทาข้นั ที่ 2

ต่อไปจะเป็ นการนาข้นั ตอนวิธีไปใช้ ให้ เมตริกซ์ W = [wij] แทนน้าหนกั ของเส้น
เช่ือมในกราฟ ซ่ึงจะเห็นวา่ W สามารถเขียนเป็นกราฟสองส่วนได้ และใหค้ ่าของฟังกช์ นั ท่ี
ระบุจุดยอดเหมาะสมอยดู่ า้ นล่างและดา้ นขวาของ W

244 ทฤษฎีกราฟเบ้ืองตน้

ตัวอย่าง 8.4.3 จงหาการจบั คู่ที่มีน้าหนกั สูงสุดในกราฟสองส่วนแบบบริบูรณ์น้าหนกั G

โดยท่ี X = { x1 , x2 , . . . , x5 } และ Y = { y1 , y2 , . . . , y5 } ซ่ึง wij แทนน้าหนกั ของแต่ละ

เส้นเช่ือม xiyj ในเมตริกซ์ตอ่ ไปน้ีx
3 5 5 4 1
2 2 0 2 2

W = 2 4 4 1 0
0 1 1 0 0
1 2 1 3 3

วธิ ีทา

ข้นั ท่ี 1 สร้างฟังกช์ นั  ของการระบุจุดยอดเหมาะสมใหก้ บั G และหา G ซ่ึงไดด้ งั น้ี

y1 y2 y3 y4 y5 (xi)
x1 3 5 5 4 1 5 x1 x2 x3 x4 x5
2 2 2
x2 2 2 0 2 0 4
x3 4 4 1

x4 0 1 1 0 0 1
x5 1 2 1 3 3 3
(yj) 0 0 0 0 0 y1 y2 y3 y4 y5

รูป 8.13 แสดงฟังกช์ นั  และกราฟ G

ข้นั ที่ 2 หาเซตจบั คูส่ ูงสุด M ใน G
สมมุติวา่ เซตจบั คู่ M = { x2y2 , x3y3 , x5y5}

x1 x2 x3 x4 x5

y1 y2 y3 y4 y5

รูป 8.14 แสดงเซตจบั คู่ M ใน G


Click to View FlipBook Version