4. 85
กราฟเดียวกันและกราฟถอดแบบกัน
เราไดทราบแลววาในการเขียนกราฟ G จะกําหนดตําแหนงของจุดยอด ณ ตําแหนงใดก็ได จึง
ทําใหกราฟเดียวกันนั้นมีรูปที่แตกตางกันได
บทนิยาม เรากลาววา กราฟ G และกราฟ H เปนกราฟเดียวกัน(Identical) ก็ตอเมื่อ V(G) = V(H)
และ E(G) = E(H)
ตัวอยางที่ 4 พิจารณากราฟ G และกราฟ H ดังรูป
G H
จะเห็นวา
V(G) = {A, B, C, D} = V(H)
E(G) = {AC, BC, BD} = E(H)
ดังนั้น เราจะกลาววา กราฟ G และกราฟ H เปนกราฟเดียวกัน
บทนิยาม เรากลาววา กราฟ G และกราฟ H เปนกราฟถอดแบบกัน (Isomorphic) ก็ตอเมื่อ มี
ฟงกชัน φ ซึ่งเปนฟงกชัน หนึ่งตอหนึ่งจาก V(G) ไปทั่วถึง V(H)
โดยที่ uv ∈E(G) ก็ตอเมื่อ ∈φφ )v()u( E(H) สําหรับทุกๆจุดยอด u และจุดยอด v ใน G
5. 86
ตัวอยางที่ 5 พิจารณากราฟ
จะเห็นวา กราฟ H และกราฟ G กําหนดชื่อใหจุดยอดแตกตางกัน ถึงแมวารูปกราฟทั้งสองนี้จะดู
เหมือนกันก็ตาม แตกราฟ G และ กราฟ H เปนกราฟถอดแบบกัน ทั้งนี้มีฟงกชัน φ ซึ่งนิยามวา φ(ui)
= vi โดยที่ i = 1, 2, 3, 4, 5 เปนฟงกชันหนึ่งตอหนึ่งจาก V(H) ไปทั่วถึง V(G) โดยที่ uiuj ∈E(H) ก็
ตอเมื่อ vivj ∈E(G)
ดีกรีของจุดยอด
พิจารณากราฟตอไปนี้
จุดยอด จํานวนครั้งทั้งหมดที่เสนเชื่อมเกิดกับจุดยอด
a 2
b 4
c 4
d 2
จะเห็นวา เสนเชื่อมที่เกิดกับจุดยอด a ไดแก เสนเชื่อม ab และ ac ดังนั้น จํานวนครั้งทั้งหมดที่
เสนเชื่อมเกิดกับจุดยอด a คือ 2 สําหรับจุดยอด b มีเสนเชื่อมที่เกิดกับจุดยอด b ไดแก เสนเชื่อม ba,
bc และ bb เปนวงวน เกิดกับจุดยอด b กรณีที่มีเสนเชื่อมเปนวงวนจะกําหนดใหนับจํานวนเสนเชื่อมที่
6. 87
เกิดกับจุดยอดนั้นเพิ่มขึ้น โดยใหนับเสนเชื่อมที่เปนวงวน 1 วง วงวนเปน 2 ดังนั้นจํานวนครั้งทั้งหมดที่
เสนเชื่อมเกิดกับจุดยอด b จึงเปน 4
บทนิยาม ดีกรี (Degree) ของจุดยอด v ในกราฟ คือ จํานวนครั้งทั้งหมดที่เสนเชื่อมเกิดกับจุด
ยอด v
ตอไปจะเรียกจํานวนครั้งทั้งหมดที่เสนเชื่อมเกิดกับจุดยอดวา ดีกรี
ใชสัญลักษณ deg v แทนดีกรีของจุดยอด v
ตัวอยางที่ 6 กําหนดกราฟ ดังรูป
จากรูปจะไดวา deg a = 2
deg b = 1
deg c = 3
deg d = 4
ตัวอยางที่ 7 กําหนดกราฟ ดังรูป
7. 88
จากรูปจะไดวา deg a = 2
deg b = 5
deg c = 5
deg d = 4
สังเกตวา deg a + deg b + deg c + deg d = 16 และกราฟมีจํานวนเสนเชื่อมทั้งหมด 8 เสน
ความสัมพันธระหวางผลรวมของดีกรีของจุดยอดทุกจุดในกราฟกับจํานวนเสนเชื่อมของกราฟ
เปนไปตามทฤษฎีบทตอไปนี้
ทฤษฎีบท
ให u1, u2, u3, …, u )G(V
เปนจุดยอดทั้งหมดในกราฟ G จะไดวา
)G(E2udeg
)G(v
1i
i =∑=
นั่นคือ ผลรวมของดีกรีของจุดยอดทุดจุดในกราฟเทากับสองเทาของจํานวนเสนเชื่อมในกราฟ
พิสูจน
เนื่องจากเสนเชื่อมแตละเสนในกราฟเกิดกับจุดยอดเปนจํานวน 2 ครั้ง ดังนั้นเสนเชื่อมแตละเสน
จะถูกนับ 2 ครั้งในผลรวมของดีกรีของจุดยอดทุกจุด
นั่นคือ ผลรวมของดีกรีของจุดยอดทุกจุดในกราฟเทากับสองเทาของจํานวนเสนเชื่อมในกราฟ
ขอสังเกต
ผลรวมของดีกรีของจุดยอดทุกจุดในกราฟเปนจํานวนคูเสมอ
ตัวอยางที่ 8 จงหาจํานวนเสนเชื่อมของกราฟที่มีผลรวมของดีกรีของจุดยอดทุกจุดในกราฟเทากับ 22
วิธีทํา สมมติวา กราฟมีเสนเชื่อม n เสน
จากทฤษฎีบท 1 ผลรวมของดีกรีของจุดยอดทุดจุดในกราฟเทากับสองเทาของจํานวน
เสนเชื่อมในกราฟ
ดังนั้น 22 = 2n
นั่นคือ n = 11
สรุปไดวา กราฟมีเสนเชื่อม 11 เสน
ตัวอยางที่ 9 จงหาจํานวนจุดยอดของกราฟที่มีเสนเชื่อม 15 เสน และมีจุดยอด 3 จุด ที่มีดีกรี 4 สวน
จุดยอดที่เหลือมีดีกรี 3
วิธีทํา ให n เปนจํานวนจุดยอดที่มีดีกรี 3
10. 91
แนวเดินและกราฟเชื่อมโยง
สมมติวา แผนผังของเมืองหนึ่งแทนดวยกราฟดังรูป โดยใหจุดยอดแทนอําเภอ และเสนเชื่อมแทน
ถนนที่เชื่อมระหวางอําเภอสองอําเภอ
ในการเดินทางจากอําเภอ A ไปยังอําเภอ D มีเสนทางการเดินทางหลายเสนทาง
เสนทางตางๆ จะแทนดัวยลําดับของจุดยอดและเสนเชื่อม ดังนี้
เสนทาง A, e1, E, e5, D
บทนิยาม ให u และ v เปนจุดยอดของกราฟ
แนวเดิน u - v (u - v walk) คือ ลําดับจํากัดของจุดยอดและเสนเชื่อมสลับกัน
u = u0, e1, u1, e2, u2, …, un-1, en, un = v
โดยเริ่มตนที่จุดยอด u และสิ้นสุดที่จุดยอด v และแตละเสนเชื่อม ei จะเกิดกับ
จุดยอด ui-1 และ ui เมื่อ i ∈ {1, 2, …, n}
บทนิยาม
รอยเดิน (trail) คือ แนวเดินในกราฟที่เสนเชื่อมทั้งหมดแตกตางกัน
วิถี(Path) คือ แนวเดินในกราฟที่จุดยอดทั้งหมดแตกตางกัน
วงจร(Circuit) คือ แนวเดินที่เสนเชื่อมทั้งหมดแตกตางกัน โดยมีจุดเริ่มตนและจุดสุดทาย
เปนจุดยอดเดียวกัน
วัฏจักร(Cycle) คือวงจรที่ไมมีจุดยอดซ้ํากัน ยกเวนจุดเริ่มตนและจุดสุดทาย
บทนิยาม กราฟ G เปนกราฟเชื่อมโยง(connected graph) ถาจุดยอด 2 จุดใดๆ ใน G เชื่อไดดวยวิถี
13. 94
กราฟถวงน้ําหนัก (weight)
บทนิยาม
คาน้ําหนัก(weight) ของเสนเชื่อม e ในกราฟ คือ จํานวนที่ไมเปนลบที่กําหนดไวบนเสนเชื่อม e
กราฟถวงน้ําหนัก(weight graph) คือ กราฟที่เสนเชื่อมทุกเสนมีคาน้ําหนัก
ตัวอยาง กราฟตอไปนี้เปนถวงน้ําหนัก
2
5 1
3
4
2
ตัวอยาง กราฟตอไปนี้เปนกราฟถวงน้ําหนัก ซึ่งจําลองจากแผนที่เมืองในประเทศไทย
โดยใหจุดยอดแทนเมือง เสนเชื่อมแทนถนน และคาน้ําหนักเสนเชื่อมแทนระยะทางระหวาง
เมืองสองเมือง
A
DB
F
E
C
2
5
1
2
3
6
3 2
จะหาเสนทางจากเมือง A ไปยังเมือง E ทั้งหมดที่ไมผานเมืองซ้ํากัน
เสนทางที่ 1 A, B, D, E ระยะทางยาว 2 + 1 + 3 = 4 กิโลเมตร
เสนทางที่ 2 A, B, D, F, E ระยะทางยาว 2 + 1 + 2 + 2 = 7 กิโลเมตร
เสนทางที่ 3 A, B, D, C, F, E ระยะทางยาว 2 + 1 + 3 + 6 + 2 = 14 กิโลเมตร
เสนทางที่ 4 A, C, F, E ระยะทางยาว 5 + 6 + 2 = 13 กิโลเมตร
เสนทางที่ 5 A, C, F, D, E ระยะทางยาว 5 + 6 + 2 + 3 = 16 กิโลเมตร
14. 95
เสนทางที่ 6 A, C, D, E ระยะทางยาว 5 + 3 + 3 = 11 กิโลเมตร
เสนทางที่ 7 A, C, D, F, E ระยะทางยาว 5 + 3 + 2 + 2 = 12 กิโลเมตร
จะเห็นวาเสนทางที่ 1 A, B, D, E ระยะทางยาว 4 กิโลเมตรเปนระยะทางที่สั้นที่สุด
บทนิยาม
วิถีที่สั้นที่สุด จากจุด A ถึงจุดยอด Z ในกราฟถวงน้ําหนัก คือวิถี A - Z ที่ผลรวมของคา
น้ําหนักของเสนเชื่อมทุกเสนในวิถี A-Z นอยที่สุด
ฉะนั้นในตัวอยางขางตน จะเห็นวา วิถี A, B, D, E เปนวิถีที่สั้นที่สุด
สําหรับกราฟถวงนําหนักที่มีจุดยอดและเสนเชื่อมเปนจํานวนมาก การหาวิถี A - Z ที่สั้นที่สุด
โดยการคนหาวิถี A - Z ทั้งหมดแลวเลือกวิถีที่ผลรวมของคาน้ําหนักนอยที่สุด ทําไดไมสะดวกและ
เสียเวลา ในการหาวิถี A - Z ที่สั้นที่สุด มีขั้นตอนวิธีที่ใชหาวิถีที่สั้นที่สุด เชน ขั้นตอนวิธีของ Dijkstra
15. 96
ขั้นตอนวิธีของไดคสตรา (Dijkstra’s Algorithm)
เมื่อ G เปนกราฟไมขาดตอนที่มีน้ําหนัก นั่นคือ G เปนกราฟที่จุดทุกจุดมีวิถีอยางนอยหนึ่งวิถีเชื่อม
ถึงกัน และแตละเสน e ใน G ถูกกําหนดดวยจํานวนจริงที่ไมเปนลบ และ u0 เปนจุดที่กําหนดใหเปน
จุดเริ่มตน
w(uv) หมายถึงความยาวของเสน uv
S หมายถึง complement ของ เซต Sให i = 0, S0 = {u0},
และ L(v) = ∞
สําหรับทุก ๆ จุด v ≠ u0
กําหนดคาจุด v ดวย (L(v) , -)
yes
no
yes
no
|V(G) | = 1 ?
หาคา
iSv∈
min {L(v)}
จุดใดที่ทําใหเกิดคานอยที่สุด ใหเรียกจุดนั้นวา ui+1
กําหนดให Si+1 = Si U {ui+1}
แทนคา i ดวย i + 1
i = V(G)- 1 ?
Finish
สําหรับแตละจุด v iS∈
ให L(v) = min{ L(v) , L(ui)+w(uiv) }
กําหนดคา v ใหมเปน (L(v),ui)
ถาคา L(v) ที่ไดเปนคาใหม
19. 100
จากกราฟขางตน เราไดวา
วิถี A-H ที่สั้นที่สุดคือ A, B, E, H
วิถี A-D ที่สั้นที่สุดคือ A, C, D
วิถี A-G ที่สั้นที่สุดคือ A, C, G
วิถี A-F ที่สั้นที่สุดคือ A, B, F
หมายเหตุ จากขั้นตอนวิธีของ Dijkstra ขางตนเราจะไดวิถีที่สั้นที่สุดจาก A ไปยังจุดยอดใดๆ
เทานั้น ถาเราจะหาวิถีที่สั้นที่สุดจากจุดยอดที่ไมใชจุด A จะตองเริ่มขั้นตอนวิธีของ Dijkstra
ใหม
กิจกรรมการเรียนรู
1. ครูนําเขาสูบทเรียนโดยการใหนักเรียนพิจารณาลักษณะของกราฟถวงน้ําหนัก แลวพิจารณา
วิถีที่สั้นที่สุด
2. แจงจุดประสงคการเรียนรูประจําเรื่องใหนักเรียนทราบ
3. ครูใชเทคนิคการสอนแบบบรรยาย
4. ใชสื่อการสอนดวย PowerPoint เพื่อใหนักเรียนไดเขาใจทางเดินตางๆ มากยิ่งขึ้น
26. 107
ดัวอยาง พิจารณากราฟตอไปนี้
(A)
(D)(C)
(B)
จะเห็นวา กราฟในรูป (A) และ (B) เปนตนไม
กราฟในรูป (C) ไมเปนตนไม เพราะมีวัฏจักรปรากฏอยู
กราฟในรูป (D) ไมเปนตนไม เพราะไมใชกราฟเชื่อมโยง
ลักษณะเฉพาะของตนไม
ทฤษฎีบทตอไปนี้เปนทฤษฎีบทที่บงบอกลักษณะเฉพาะ(characterization) ของตนไม
ทฤษฎีบท
1. ให T เปนกราฟที่ไมมีวงวน กราฟ T เปนตนไม ก็ตอเมื่อ จุดยอด 2 จุดใดๆ ใน T
เชื่อมโยงกันไดดวยวิถีเพียงวิถีเดียว
2. ให T เปนกราฟที่มีจํานวนจุดยอดเปน n จุด กราฟ T เปนตนไม ก็ตอเมื่อ กราฟ T ไม
มีวัฏจักร และมีเสนเชื่อม n – 1 เสน
3. ให T เปนกราฟที่มีจํานวนจุดยอดเปน n จุด กราฟ T เปนตนไม ก็ตอเมื่อ กราฟ T เปน
กราฟเชื่อมโยงและมีเสนเชื่อม n – 1 เสน
4. ถา T เปนตนไมที่มีจํานวนจุดยอดอยางนอย 2 จุด แลว กราฟ T จะมีดีกรี 1 อยางนอย 2
จุด
ตนไมแผทั่ว (spanning tree)
กอนที่จะศึกษาตนไมแผทั่ว เราจะเริ่มตนศึกษากราฟยอยกอน
บทนิยาม กราฟยอย (subgraph) ของกราฟ G คือกราฟที่ประกอบดวยจุดยอดและเสนเชื่อมใน G
กลาวคือ กราฟ H เปนกราฟยอยของกราฟ G ถา V(G) V(H) และ E(H) E(G)⊂ ⊂
27. 108
ตัวอยาง กําหนดกราฟ G และกราฟ H ดังรูป
G :
A
B C
D A
B C
D
H :
V(G) = { A, B, C, D } V(H) = { A, B, C, D }
E(G) = {AB, BC, CD, DA, BD} E(H) = {AB, BC, DA, BD}
จะไดวา กราฟ H เปนกราฟยอยของกราฟ G
พิจารณาวากราฟใด เปนกราฟยอยของกราฟ G
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C
D
A
B
C A
B
C
D
G
G1 G2 G3
G4 G5 G6
D
D
กราฟ G2 และ G6 ไมเปนกราฟยอยของ G
พิจารณากราฟยอยของกราฟ G จะเห็นวากราฟ G1 , G3 และ G5 เปนกราฟยอยของ G และเปน
ตนไมดวย
บทนิยาม ตนไมแผทั่ว (spanning tree) คือตนไมซึ่งเปนกราฟยอยของกราฟเชื่อมโยง G ที่บรรจุจุดยอด
ทุกจุดยอด