Graph Theory 1 Department of Computer Science, BUU

Report
Graph Theory
Department of Computer Science, BUU
1
What are Graphs?
Not
• ความหมายของกราฟโดยทัว่ ไปทางคณิ ตศาสตร์ได้แก่:
การวาดเส้นหรื อแผนภูมิของข้อมูลตัวเลข โดยใช้พิกดั
(coordinate)
• แต่ในสาขาdiscrete mathematics:
กราฟเป็ นโครงสร้างที่นิยามขึ้นเพื่อใช้ประโยชน์ในการแทน
ความสัมพันธ์และแสดงภาพให้เข้าใจปัญหาหนึ่งๆได้ชดั เจนขึ้น
• สามารถประยุกต์ใช้กราฟในการแก้ปัญหาเครื อข่าย การออกแบบวงจร
การวางแผนการเดินทาง การจัดตารางเวลา ฯลฯ
Department of Computer Science, BUU
2
Simple Graphs
• แทนความสัมพันธ์ทวินาม R ที่มีคุณสมบัติสมมาตร
(symmetric), ไม่สะท้อน(irreflexive)
• กราฟอย่างง่าย(simple graph) G=(V,E)
Visual Representation
ประกอบด้วย:
of a Simple Graph
– เซต V ของจุด(vertices)
– เซต E ของด้าน(edges) : ได้แก่คู่สมาชิกที่ต่างกัน u,v  V, โดย
ที่ uRv
Department of Computer Science, BUU
3
Example of a Simple Graph
• ให้ V เป็ นเซตของรัฐต่างๆในอเมริ กาเหนือ:
–เช่ น, V={FL, GA, AL, MS, LA, SC, TN, NC}
• ให้ E={{u,v}|u เชื่อมต่อไปยัง v}
={{FL,GA},{FL,AL},{FL,MS},
{FL,LA},{GA,AL},{AL,MS},
{MS,LA},{GA,SC},{GA,TN}, MS
{SC,NC},{NC,TN},{MS,TN},
{MS,AL}}
LA
Department of Computer Science, BUU
TN
AL
NC
SC
GA
FL
4
Multigraphs
• คล้ายกับกราฟอย่างง่าย แต่อาจมีเส้นเชื่อมระหว่างจุดได้มากกว่า
หนึ่งเส้น
• กราฟหลายเส้น(multigraph) G=(V, E, f ) ประกอบด้วย
เซตของจุด V ,เซตของด้าน E และฟังก์ชนั่
f:E{{u,v}|u,vV  uv}
• ตัวอย่าง เช่น จุดแทนเมือง และด้านแทนทางด่วนเชื่อมเมืองต่างๆ
Parallel
edges
Department of Computer Science, BUU
5
Pseudographs
• คล้ายกับกราฟหลายเส้น แต่อาจมีดา้ นที่เชื่อมเข้าหาตัวเองได้ (R มี
คุณสมบัติสะท้อนได้)
• กราฟเทียม(pseudograph) G=(V, E, f ) โดยที่
f:E{{u,v}|u,vV} ด้าน eE เป็ นลูป ถ้า
f(e)={u,u}={u}
• ตัวอย่ าง เช่ น จุดแทน ที่ตั้งแค้ มป์
และด้ านแทนเส้ นทางเดินเขาผ่ านป่ า
เพื่อกลับไปยังจุดตั้งแค้ มป์
Department of Computer Science, BUU
6
Directed Graphs
• ใช้แทนความสัมพันธ์ทวินาม R ซึ่ งอาจไม่ มคี ุณสมบัติสมมาตร
• กราฟแบบมีทิศทาง(directed graph) (V,E) ประกอบด้วย
เซตของจุด V และความสัมพันธ์ทวินาม E บนเซต V
• ตัวอย่าง เช่น: V = เซตของประชากร,
E={(x,y) | x รัก y}
Department of Computer Science, BUU
7
Directed Multigraphs
• คล้ายกราฟแบบมีทิศทาง แต่อาจมีเส้นเชื่อมจากจุดหนึ่งไปยังอีกจุด
หนึ่งได้มากกว่าหนึ่งเส้น
• กราฟหลายเส้นแบบมีทิศทาง(directed multigraph)
G=(V, E, f ) ประกอบด้วยเซตของจุด V เซตของด้าน E
และฟังก์ชนั่ f:EVV
• ตัวอย่ าง เช่ น., V=เว็บเพจ,
E=ไฮเปอร์ลิงค์ WWW แทนได้ ด้วย
กราฟหลายเส้นแบบมีทิศทาง
Department of Computer Science, BUU
8
Types of Graphs: Summary
Term
Simple graph
Multigraph
Pseudograph
Directed graph
Directed multigraph
Edge
type
Undir.
Undir.
Undir.
Directed
Directed
Multiple
edges ok?
No
Yes
Yes
No
Yes
Department of Computer Science, BUU
Department of Computer Science, Burapha University
Selfloops ok?
No
No
Yes
Yes
Yes
9
Graph Terminology
ให้ G แทนกราฟแบบไม่มีทิศทางซึ่งมีดา้ นแทนด้วยเซต E ให้
eE แทนคู่ {u,v} ดังนั้น เรากล่าวได้วา่ :
• u, v ประชิดกัน(adjacent) เป็ นเพื่อนบ้านกัน(neighbors)
เชื่อมถึงกัน(connected)
• ด้าน e เป็ นด้านที่ติดกัน(incident) หรื อตกกระทบกับจุด u และ
จุด v
• ด้าน e เชื่อม(connects) u และ v ถึงกัน
• จุด u และจุด v เป็ นจุดปลาย(endpoints) ของด้าน e
Department of Computer Science, BUU
Department of Computer Science, Burapha University
10
Example
Edge incident
with b,d
a
b
e
g
d
f
c
Adjacent
Vertices
Department of Computer Science, BUU
Department of Computer Science, Burapha University
11
Degree of a Vertex
• ให้ G แทนกราฟแบบไม่มีทิศทาง, จุด vV
• ดีกรี (degree) ของ v เขียนแทนด้วย deg(v), คือจานวนของ
ด้านที่ติด(incident)กับจุดนั้น (ยกเว้นกรณี ที่เป็ นลูปจะนับสอง
ครั้ง)
• จุดที่มีดีกรี เป็ น 0 เรี ยกว่า สันโดษ(isolated)
• จุดที่มีดีกรี เป็ น 1 เรี ยกว่า pendant
Department of Computer Science, BUU
Department of Computer Science, Burapha University
12
Graph Terminology
Example: กราฟต่อไปนี้จุดใดเป็ นจุดสันโดษ จุดใดเป็ น pendant และจุดใดมีดีกรี มาก
ที่สุด และกราฟที่กาหนดให้เป็ นกราฟชนิดใด?
d
a
b
f
c
e
i
g
h
j
Solution: จุด f เป็ นจุดสันโดษ และจุด a, d และ j เป็ น pendant จุดที่มีดีกรี มาก
ที่สุดคือจุด g ซึ่ง deg(g) = 5
กราฟที่กาหนดให้เป็ น กราฟเทียม(pseudograph) (ไม่มีทิศทาง และมีลูปได้)
Department of Computer Science, BUU
Department of Computer Science, Burapha University
13
Graph Terminology
•จงพิจารณาที่กราฟเดิมอีกครั้ง และหาจานวนด้านทั้งหมด และผลรวมของดีกรี ของทุกจุดใน
กราฟว่าเท่ากับเท่าไร:
d
a
b
f
c
e
i
g
h
j
Result: มีจานวนด้าน 9 ด้าน และผลรวมดีกรี เท่ากับ 18 สามารถอธิบายได้วา่ แต่ละ
เส้นเชื่อมที่เพิ่มเข้าไปในกราฟ จะทาให้ผลรวมของดีกรี ของกราฟนั้นเพิ่มขึ้นอีกสองเสมอ
Department of Computer Science, BUU
Department of Computer Science, Burapha University
14
Handshaking Theorem
• ให้ G แทนกราฟแบบไม่มีทิศทาง ด้วยเซตของจุด V และเซตของด้าน E
ดังนั้น
 deg( v)  2 E
vV
Corollary: กราฟแบบไม่มีทิศทางใดๆ จะมีจานวนจุดที่มีดีกรี เป็ นคี่เป็ นเลขคู่
ตัวอย่าง เช่น กราฟที่มีท้ งั หมด 10 จุด แต่ละจุดมีดีกรี 6 จะมีจานวนด้านทั้งหมด
เท่าไร?
ตอบ: ผลรวมของดีกรี ของจุดทั้งหมดเท่ากับ 610 = 60 จาก
Handshaking Theorem จะได้วา่ 2e = 60 ดังนั้น กราฟนี้มีจานวน
ด้าน 30 ด้าน
Department of Computer Science, BUU
15
Directed Degree
• ให้ G เป็ นกราฟที่มีทิศทาง, v เป็ นจุดในกราฟ G
– ดีกรี เข้า(in-degree) ของ v, deg(v), คือจานวนของด้านที่เข้าไปยัง v
– ดีกรี ออก(out-degree) ของ v, deg(v), คือจานวนของด้านที่ออกมาจาก v
– ดีกรี (degree) ของ v, deg(v):deg(v)+deg(v), คือผลรวมของดีกรี เข้า
และดีกรี ออกของ v
• Directed Handshaking Theorem ให้ G แทนกราฟแบบมีทิศทาง
ซึ่ งมีจุดแทนด้วยเซต V และด้านแทนด้วยเซต E ดังนั้น:
1
deg (v)   deg (v)   deg( v)  E

2 vV
vV
vV


Department of Computer Science, BUU
16
Directed Degree
Example: จงหาดีกรี เข้าและดีกรี ออกของจุด a, b, c, d ใน
กราฟต่อไปนี้:
a
deg-(b) = 4
b deg+(b) = 2
deg-(d) = 2
d
deg+(d) = 1
deg-(c) = 0
c deg+(c) = 2
deg-(a) = 1
deg+(a) = 2
Department of Computer Science, BUU
17
Special Graph Structures
รู ปแบบพิเศษของกราฟแบบไม่มีทิศทาง:
•
•
•
•
•
•
Complete graphs Kn
Cycles Cn
Wheels Wn
n-Cubes Qn
Bipartite graphs
Complete bipartite graphs Km,n
Department of Computer Science, BUU
18
Complete Graphs
• สาหรับจานวนนับใดๆ nN, กราฟสมบูรณ์(complete
graph) ที่มี n จุด, Kn, คือกราฟอย่างง่ายที่มี n จุด ซึ่งทุกจุด
ประชิดกับทุกๆจุดที่เหลือ: u,vV: uv{u,v}E
K1
สั งเกตว่ า Kn มี
K4
K3
K2
n 1
i 
i 1
n( n  1)
2
K5
K6
ด้ าน
Department of Computer Science, BUU
19
Cycles
• สาหรับจานวนนับ n3, วงจร(cycle)ที่มี n จุด, Cn, คือ
กราฟอย่างง่ายซึ่ง V={v1,v2,… ,vn} และ
E={{v1,v2},{v2,v3},…,{vn1,vn},{vn,v1}}
C3
C4
C5
C6
C7
C8
มีจานวนด้านทั้งหมดกี่ดา้ นใน Cn?
Department of Computer Science, BUU
20
Wheels
• สาหรับจานวนนับ n3, วงล้อ(wheel) Wn, คือกราฟอย่าง
ง่ายที่ประกอบด้วยวงจร Cn และจุดหนึ่งจุด vhub และด้านอีก n
ด้าน {{vhub,v1}, {vhub,v2},…,{vhub,vn}}
W3
W4
W5
W6
W7
W8
มีจานวนด้านทั้งหมดกี่ดา้ นใน Wn?
Department of Computer Science, BUU
21
n-cubes (hypercubes)
• สาหรับจานวนนับใดๆ nN, ลูกบาศก์(hypercube) Qn
คือกราฟอย่างง่ายที่ประกอบด้วยสาเนาของกราฟ Qn-1 สองชุด
นามาเชื่อมต่อเข้าด้วยกัน โดย Q0 มี 1 จุด
Q0
Q1
Q2
Q3
Q4
จานวนจุดทั้งหมดคือ: 2n จานวนด้ านทั้งหมดเท่ ากับเท่ าไร?
Department of Computer Science, BUU
22
Bipartite Graphs
• นิยาม: กราฟ G=(V,E) เป็ นกราฟสองส่ วน(bipartite) ก็
ต่อเมื่อ V = V1  V2 โดยที่ V1∩V2= และ
eE: v1V1,v2V2: e={v1,v2}
• กราฟสามารถแบ่งจุดออกเป็ นสองเซตได้
โดยอาจมีเส้นเชื่อมเกิดขึ้นระหว่างจุดในเซตทั้งสอง
และไม่มีเส้นเชื่อมระหว่างจุดที่อยูใ่ นเซตเดียวกัน
V1
Department of Computer Science, BUU
V2
23
Bipartite Graphs
Example I: กราฟ C3 เป็ นกราฟสองส่ วน(bipartite)หรื อไม่?
v1
v2
No, ไม่สามารถแบ่งจุดออกเป็ นสองเซต โดยที่ไม่มีเส้นเชื่อมเกิดขึ้น
ระหว่างจุดในเซตเดียวกันได้
v3
Example II: กราฟ C6 เป็ นกราฟสองส่ วน(bipartite)หรื อไม่?
v1
v6
v2
v3
v5
Yes, เพราะสามารถเขียน
กราฟ C6 ใหม่ในรู ปกราฟ
สองส่ วนได้ดงั รู ป:
v4
Department of Computer Science, BUU
v1
v5
v3
v6
v2
v4
24
Complete Bipartite Graphs
• สาหรับ m,nN, กราฟสองส่ วนสมบูรณ์(complete
bipartite graph) Km,n คือกราฟสองส่ วนซึ่ง |V1| = m,
|V2| = n, และ E = {{v1,v2}|v1V1  v2V2}
– นัน่ คือมี m จุดในเซตด้านซ้าย และ
n จุดในเซตด้านขวา และ
ทุกจุดในเซตด้านซ้ายมีเส้นเชื่อม
ไปยังทุกจุดในเซตด้านขวา
Department of Computer Science, BUU
K4,3
Km,n มี _____ จุด
และ _____ ด้าน
25
Subgraphs
• กราฟย่อย(subgraph) ของกราฟ G=(V,E) คือกราฟ
H=(W,F) โดยที่ WV และ FE
H
G
K5
Department of Computer Science, BUU
กราฟย่อยของ K5
26
Graph Unions
• การรวม(union) G1G2 ของกราฟอย่างง่าย G1=(V1,
E1) และ G2=(V2,E2) คือกราฟอย่างง่าย (V1V2,
E1E2)
a
b
d
e

c
a
d
a
b
c
d
e
f
Department of Computer Science, BUU
b
c
f
27
Graph Representations &
Isomorphism
• การแทนกราฟ(Graph representations):
– Adjacency lists
– Adjacency matrices
– Incidence matrices
• การพ้องรู ปของกราฟ(Graph isomorphism) :
– กราฟสองกราฟพ้องรู ปกัน(isomorphic) ก็ต่อเมื่อ กราฟทั้งสอง
สามารถเขียนให้เหมือนกันได้ ยกเว้นชื่อจุดอาจไม่เหมือนกันได้
Department of Computer Science, BUU
Department of Computer Science, Burapha University
28
Adjacency Lists
• สร้างตาราง 1 แถวต่อหนึ่งจุด จากนั้นเขียนชื่อจุดที่ประชิดกับจุด
นั้นๆ
Adjacent
b
a
c
d
e
f
Vertex
a
b
c
d
e
f
Vertices
b, c
a, c, e, f
a, b, f
b
c, b
Department of Computer Science, BUU
Department of Computer Science, Burapha University
29
Adjacency Lists
b
c
d
Vertex Adjacent Vertices
a
f
e
a
b
c
d
e
f
Department of Computer Science, BUU
Department of Computer Science, Burapha University
a, f
a, f, e
b, d
b
c, e
b, c, e
30
Adjacency Matrices
• เมตริ กซ์ A=[aij], โดยที่ aij เป็ น 1 ถ้า {vi, vj} เป็ นด้านของกราฟ
G, และเป็ น 0 หากไม่มีดา้ นระหว่างจุดทั้งสอง
• ในกรณี ของกราฟเทียม สมาชิกในเมตริ กซ์อาจมีค่ามากกว่า 1 หากจุดนั้นๆมี
เส้นเชื่อมระหว่างกันมากกว่า 1 เส้น
a
b
d
a b c d
e
c
•สั งเกตว่ า: เมตริ กซ์ประชิด(Adjacency
matrices) ของกราฟแบบไม่มีทิศทาง จะเป็ น
เมตริ กซ์สมมาตรเสมอ
e
a 0 1 1 1 0
b 1 0 1 0 0
c 1 1 0 1 0
d 1 0 1 0 1
e 0 0 0 1 0
Department of Computer Science, BUU
31
e
a
b
c
a
b
c
d
e
f
g
g
d
a
1
1
1
0
0
0
0
b
1
1
2
3
0
0
0
c
1
2
1
0
0
0
0
d
0
3
0
1
1
1
2
Department of Computer Science, BUU
e
0
0
0
1
1
0
1
Department of Computer Science, Burapha University
f
0
0
0
1
0
1
2
g f
0
0
0
2
1
2
1
32
a
b
c
f
e
d
1 0 0 0 0 1
1 0 0 0 1 1
0 1 0 1 0 0
0 1 0 0 0 0
0 0 1 0 1 0
0 1 1 0 1 0
Department of Computer Science, BUU
Department of Computer Science, Burapha University
33
Incidence Matrices
นิยาม: ให้ G = (V, E) เป็ นกราฟแบบไม่มีทิศทาง โดยที่ |V| = n สมมติวา่ จุดและด้าน
ของกราฟ G ได้แก่ v1, v2, …, vn และ e1, e2, …, em
• เมตริ กซ์ติดกัน(incidence matrix) ของ G ซึ่ งสอดคล้องกับรายการจุดและด้าน
จะอยูใ่ นรู ปของเมตริ กซ์ 0-1 ขนาด nm ที่มีค่า 1 ที่ตาแหน่ง (i, j) เมื่อด้าน ej ติด
กับจุด vi, และ 0 หากไม่มีดา้ นติดกับจุดนั้นๆ
• หรื อกล่าวได้วา่ เมตริ กซ์ติดกัน M = [mij],
mij = 1
mij = 0
ถ้ามีดา้ น ej ติดกันกับจุด vi
ถ้าไม่มีดา้ น ej ติดกันกับจุด vi
Department of Computer Science, BUU
34
Incidence Matrices
e1
a
e2
b
e1
e3
e4
d e6 e
e5
c
a
b
c
d
e
1
0

0

1
0
e2 e3
e4 e5
e6
1
1
0
0
0
0
1
1
0
0
0

0
0

1
1
Department of Computer Science, BUU
1
0
1
0
0
0
0
1
1
0
35
Incidence Matrices
a
2
Example: จงเขียนเมตริ กซ์ติดกัน M ของกราฟ G โดย
เรี ยงลาดับจุด a, b, c, d และด้าน 1, 2, 3, 4, 5, 6?
Solution:
1
1
M 
0

0
1 0 0 1 0
0 1 0 0 0
0 0 1 1 1

1 1 1 0 0
d
1
3
b
5
4
c
6
•สั งเกตว่ า: เมตริ กซ์ติดกันของกราฟแบบไม่มีทิศทาง ในแต่ละคอลัมน์จะมี 1สองตัว
เพราะด้านหนึ่งด้านจะเชื่อมจุดสองจุดเข้าด้วยกัน ส่ วนคอลัมน์ที่แทนด้านที่เป็ นลูปจะมี 1
เพียงตัวเดียว
Department of Computer Science, BUU
36
Graph Isomorphism
• นิยาม:
– กราฟอย่างง่าย G1=(V1, E1) และ G2=(V2, E2) พ้องรู ปกัน
(isomorphic) ก็ต่อเมื่อ  bijection f :V1V2 โดยที่
a,bV1, a และ b ประชิดกันในกราฟ G1 ก็ต่อเมื่อ f(a) และ
f(b) ประชิดกันในกราฟ G2
– f เป็ นฟังก์ชนั่ ที่เปลี่ยนชื่อระหว่างเซตของจุดสองเซต ที่ทาให้กราฟทั้ง
สองนั้นเหมือนกัน
Department of Computer Science, BUU
37
Graph Invariants under Isomorphism
การตรวจสอบว่ากราฟ G1=(V1, E1) ไม่พอ้ งรู ปกับกราฟ G2=(V2, E2) ทา
ได้โดยการตรวจสอบคุณสมบัติที่ไม่เปลี่ยนแปลง(invariants), ก็สามารถ
ตัดสิ นได้แล้วว่ากราฟทั้งสองไม่พอ้ งรู ปกัน เพราะกราฟที่พอ้ งรู ปกัน :
– ต้องมี |V1|=|V2|, และ |E1|=|E2|
– จานวนจุดที่มีดีกรี n ต้องเท่ากันในทั้งสองกราฟ
– ทุกๆกราฟย่อย g ของกราฟหนึ่ง จะต้องมีกราฟย่อยของอีกกราฟหนึ่งซึ่ งพ้องรู ปกับกราฟ
ย่อย g
•สังเกตว่าหากกราฟสองกราฟมีคุณสมบัติขา้ งต้นต่างกัน แสดงว่าไม่พอ้ งรู ปกัน แต่
ถ้ามีเหมือนกันทุกประการ ยังไม่สามารถสรุ ปได้ทนั ทีวา่ กราฟทั้งสองพ้องรู ปกัน
จะต้องทาการพิสูจน์ต่อไป
Department of Computer Science, BUU
38
Graph Isomorphism-Example
ตัวอย่าง: จงพิสูจน์วา่
พ้องรู ปกับ
ขั้นแรก ตั้งชื่อจุดลงในกราฟทั้งสอง:
1
2
3
1
2
3
5 4
5 4
Department of Computer Science, BUU
39
Graph Isomorphism-Example
ขั้นต่อไป กาหนด f (1) = 1 และพยายามลากเส้นตามเข็มนาฬิกาบนรู ปดาว
ด้านขวามือ
1
2
3
1
2
3
5 4
5 4
Department of Computer Science, BUU
40
Graph Isomorphism -Example
ขั้นต่อไป กาหนด f (1) = 1 และพยายามลากเส้นตามเข็มนาฬิกาบนรู ปดาว
ด้านขวามือ จุดต่อไปคือ 3, ไม่ใช่จุด 2 ดังนั้นกาหนดให้ f (2) = 3
1
2
3
1
2
3
5 4
5 4
Department of Computer Science, BUU
41
Graph Isomorphism -Example
ขั้นต่อไป กาหนด f (1) = 1 และพยายามลากเส้นตามเข็มนาฬิกาบนรู ปดาว
ด้านขวามือ จุดต่อไปคือ 3, ไม่ใช่จุด 2 ดังนั้นกาหนดให้ f (2) = 3 จุด
ต่อไปคือ 5 ดังนั้นกาหนดให้ f (3) = 5
1
2
3
2
1
3
5 4
5
Department of Computer Science, BUU
4
42
Graph Isomorphism-Example
ขั้นต่อไป กาหนด f (1) = 1 และพยายามลากเส้นตามเข็มนาฬิกาบนรู ปดาว
ด้านขวามือ จุดต่อไปคือ 3, ไม่ใช่จุด 2 ดังนั้นกาหนดให้ f (2) = 3 จุด
ต่อไปคือ 5 ดังนั้นกาหนดให้ f (3) = 5 จุดต่อไปคือ 2 ดังนั้นกาหนดให้
f (4) = 2
2
1
5
3
2
1
4
5
Department of Computer Science, BUU
3
4
43
Graph Isomorphism-Example
ขั้นต่อไป กาหนด f (1) = 1 และพยายามลากเส้นตามเข็มนาฬิกาบนรู ปดาว
ด้านขวามือ จุดต่อไปคือ 3, ไม่ใช่จุด 2 ดังนั้นกาหนดให้ f (2) = 3 จุด
ต่อไปคือ 5 ดังนั้นกาหนดให้ f (3) = 5 จุดต่อไปคือ 2 ดังนั้นกาหนดให้
f (4) = 2 จุดต่อไปคือ 4 ดังนั้นกาหนดให้ f (5) = 4
1
5
2
3
1
4
2
3
5 4
Department of Computer Science, BUU
44
Graph Isomorphism-Example
ขั้นต่อไป กาหนด f (1) = 1 และพยายามลากเส้นตามเข็มนาฬิกาบนรู ปดาว
ด้านขวามือ จุดต่อไปคือ 3, ไม่ใช่จุด 2 ดังนั้นกาหนดให้ f (2) = 3 จุด
ต่อไปคือ 5 ดังนั้นกาหนดให้ f (3) = 5 จุดต่อไปคือ 2 ดังนั้นกาหนดให้
f (4) = 2 จุดต่อไปคือ 4 ดังนั้นกาหนดให้ f (5) = 4 ถ้าเช็คต่อไปจะ
กลับไปที่ f (1) =1 ดังนั้นขบวนการตรวจสอบจึงเสร็ จสิ้ นลง จึงสรุ ปได้วา่
เราสามารถหาฟังก์ชนั่ f ซึ่ งเป็ นฟังก์ชนั่ พ้องรู ปสาหรับกราฟทั้งสองได้
1
2
3
1
2
3
5 4
กราฟทั้งสองพ้ องรู ปกัน
Department of Computer Science, BUU
5 4
45
Isomorphism Example
กราฟทั้งสองต่อไปนี้พอ้ งรู ปกันหรื อไม่?
a
b
c
a
e
d
c
b
b
e
d
วิธีทา: Yes, กราฟทั้งสองพ้องรู ปกัน เพราะสามารถเขียน
กราฟหนึ่งให้เหมือนกันกับอีกกราฟหนึ่งได้โดยในกราฟ
ด้านขวา ย้ายจุด b ไปทางซ้ายของด้าน {a, c} และหมุน
รู ปกราฟใหม่ เราจึงสามารถหากฟังก์ชนั่ พ้องรู ป f จากกราฟ
ด้านซ้ายไปยังกราฟด้านขวาได้ดงั นี้: f(a) = e, f(b) = a,
f(c) = b, f(d) = c, f(e) = d
Department of Computer Science, BUU
a
e
c
d
e
a
d
b
c
46
Isomorphism Example
• กราฟทั้งสองพ้องรู ปกันหรื อไม่ ถ้าพ้องรู ปกันจงใส่ ชื่อจุดลงในกราฟ
ด้านขวามือ หากไม่พอ้ งรู ปกันจงบอกคุณสมบัติที่แตกต่าง
d
b
a
b
d
a
c
e
e
c
f
f
กราฟทั้งสองพ้องรูปกัน
Department of Computer Science, BUU
47
Isomorphism Example
กราฟทั้งสองต่อไปนี้พอ้ งรู ปกันหรื อไม่?
b
c
a
a
e
d
b
c
e
d
Solution: No, กราฟทั้งสองไม่พอ้ งรู ปกัน เพราะดีกรี ของจุดต่างๆไม่
เหมือนกัน จากกราฟด้านขวาจะเห็นว่าจุด d มีดีกรี เป็ นหนึ่ง แต่กราฟด้านซ้ายไม่มีจุด
ใดที่มีดีกรี เป็ นหนึ่งเลย
Department of Computer Science, BUU
48
Are These Isomorphic?
• กราฟทั้งสองพ้องรู ปกันหรื อไม่ ถ้าพ้องรู ปกันจงใส่ ชื่อจุดลงในกราฟ
ด้านขวามือ หากไม่พอ้ งรู ปกันจงบอกคุณสมบัติที่แตกต่าง
• กราฟทั้งสองมี
จานวนจุดเท่ ากัน
• กราฟทั้งสองมีจานวน
ด้ านเท่ ากัน
• แต่ จานวนจุดที่มีดีกรี
เป็ น 2 ไม่ เท่ ากัน
(กราฟด้ านซ้ ายมี 1 จุด
กราฟด้ านขวามี 3 จุด)
a
b
d
c
e
Department of Computer Science, BUU
49
Connectivity
• วิถี(path)ที่มีความยาว n จากจุด u ไปยังจุด v คือชุดลาดับของด้านที่ประชิดกับ
จุด u ไปยังจุด v
• วิถีใดๆจะเรี ยกว่าวงจรหรื อวัฏจักร(circuit) ถ้า u=v
• สาหรับกราฟใดๆจะเรี ยกกราฟนั้นว่า กราฟเชื่อมโยง(connected) ก็ต่อเมื่อ มีวิถี
อย่างน้อยหนึ่งวิถีระหว่างทุกคู่จุดในกราฟนั้นๆ
b
c
a
d
•No
b
a
b
e
e
c
a
d
c
•Yes
Department of Computer Science, BUU
Department of Computer Science, Burapha University
d
f
e
•No
50
Euler & Hamilton Paths
• วงจรออยเลอร์(Euler circuit) ในกราฟ G คือวงจรอย่างง่าย
ที่ประกอบด้วยทุกๆด้านของกราฟ G
• ทางเดินออยเลอร์(Euler path) ในกราฟ G คือทางเดิน(วิถี)
อย่างง่ายที่ประกอบด้วยทุกๆด้านของกราฟ G
• วงจรแฮมิลตัน(Hamilton circuit) คือวงจรที่เดินทางไปยัง
แต่ละจุดในกราฟ G จนครบทุกจุดเพียงครั้งเดียว
• ทางเดินแฮมิลตัน(Hamilton path) คือทางเดิน(วิถี)ที่เดินทาง
ไปยังแต่ละจุดในกราฟ G จนครบทุกจุดเพียงครั้งเดียว
Department of Computer Science, BUU
51
Euler circuit & Euler path
บทนิยาม วิถอี อยเลอร์ (Euler path) ในกราฟ คือทางเดินที่ผา่ นเส้นทุกเส้นของกราฟ
เพียงครั้งเดียว
บทนิยาม วงจรออยเลอร์ (Euler circuit) ในกราฟ คือ วงจรที่บรรจุจุดทุกจุดและเส้น
ทุกเส้นของกราฟ
และเรี ยกกราฟที่บรรจุวงจรออยเลอร์ วา่ กราฟออยเลอร์ (Eulerian graph)
• ตัวอย่าง กราฟ G1 มีวิถีออยเลอร์ ( Euler path) a, c, d, e, b, d, a, b
a
c
b
d
Department of Computer Science, BUU
e
Department of Computer Science, Burapha University
52
Example
• abcdefgehia เป็ นวงจร แต่ไม่เป็ นวงจรออยเลอร์ เนื่องจากวงจรนี ้
ไม่ได้บรรจุเส้น bd, hd, hc และ ci
• แต่อย่างไรก็ตาม G เป็ นกราฟออยเลอร์ เนื่องจากกราฟ G บรรจุวงจร
ออยเลอร์
• abicbdchdefgehia
Department of Computer Science, BUU
Department of Computer Science, Burapha University
53
Bridges of Königsberg Problem
• เราสามารถเดินผ่านเมืองแต่ละเมือง(A,B,C,D) โดยการข้าม
สะพานจนครบทุกสะพานเพียงครั้งเดียว และกลับมาสิ้ นสุ ดที่
จุดเริ่ มต้นได้หรื อไม่?
A
D
B
C
ปัญหาตั้งต้ น
กราฟทีส่ มมูลกับปัญหาตั้งต้ น
Department of Computer Science, BUU
54
Euler Path Theorems
• Theorem: กราฟหลายเชิงที่เชื่อมต่อ(connected multigraph) จะมี
วงจรออยเลอร์ ก็ต่อเมื่อ แต่ละจุดมีดีกรี เป็ นคู่
• Theorem: กราฟหลายเชิงที่เชื่อมต่อ จะมีทางเดินออยเลอร์ (แต่ไม่มีวงจร
ออยเลอร์ ) ก็ต่อเมื่อกราฟนั้นมีเพียง 2 จุดเท่านั้นที่มีดีกรี เป็ นคี่
– จุดหนึ่งคือจุดเริ่ มต้น, และอีกจุดหนึ่งคือจุดสิ้ นสุ ด
อัลกอริธึมในการหาวงจรออยเลอร์ (Euler Circuit Algorithm) :
• เริ่ มต้นที่จุดใดๆ
• สร้างทางเดินอย่างง่ายจากจุดนั้น จนกระทัง่ วนกลับไปที่จุดเริ่ มต้นนั้นอีกครั้ง
• ทาซ้ าหากยังมีกราฟย่อยเหลือ
• ประกอบวงจรย่อยๆที่หาได้กลับเข้าไปในวงจรตั้งต้น
Department of Computer Science, BUU
55
Hamilton circuit&Hamilton path
วิถแี ฮมิลตัน (Hamilton path) ของกราฟ คือวิถีที่บรรจุจุดทุก
จุดของกราฟ โดยการท่องไปยังแต่ละจุดเพียงครั้งเดียว
วงจรแฮมิลตัน (Hamilton circuit) ของกราฟ คือ วงจรที่
ประกอบด้วยจุดทุกจุดของกราฟ โดยการท่องไปยังแต่ละจุดเพียง
ครั้งเดียว
กราฟแฮมิลตัน (Hamiltonian graph) คือ กราฟที่บรรจุวงจร
แฮมิลตัน
Department of Computer Science, BUU
Department of Computer Science, Burapha University
56
Hamiltonian Graph
กราฟนี้ไม่มีวิถีออยเลอร์และไม่มีวิถีแฮมิลตัน
Department of Computer Science, BUU
57
Hamilton path
• ให้ G เป็ นกราฟที่มีตวั แทนเชิงกราฟดังรู ป
• กราฟ G มีวิถีแฮมิลตันคือ abcde แต่เนื่องจากทุกแนวเดินปิ ดของ
กราฟ G ที่บรรจุจุดทุกจุด จะปรากฏเส้น de 2 ครั้ง ดังนั้นจะไม่
สามารถหาวงจรในกราฟ G ที่บรรจุจุดทุกจุด นัน่ คือ G ไม่ เป็ น
กราฟแฮมิลตัน
Department of Computer Science, BUU
Department of Computer Science, Burapha University
58
Hamilton circuit
• ให้ G เป็ นกราฟที่มีตวั แทนเชิงกราฟดังรู ป (ก) จะเห็นได้วา่ เรา
สามารถกาหนดหมายเลขให้กบั จุดดังรู ป (ข) โดยการอันดับปกติ
ของจุด จะได้วา่ G เป็ นกราฟแฮมิลตัน
Department of Computer Science, BUU
Department of Computer Science, Burapha University
59
Round-the-World Puzzle
• สามารถเดินทาง(traverse) ไปยังจุดทุกจุดของรู ปเหลี่ยม 12 หน้า
โดยเดินเพียงจุดละครั้งเดียวได้หรื อไม่?`
รู ปเหลีย่ ม 12 ด้ าน
กราฟทีส่ มมูลกับรูป 12 ด้ าน
Department of Computer Science, BUU
60
Hamilton Paths
• การจาแนกกราฟแฮมิลตัน มีวิธีที่สามารถใช้ในการจาแนกหลายวิธี
ในที่น้ ีจะกล่าวเพียงบางวิธี เช่น พิจารณาตัวแทนเชิงกราฟในรู ป ถ้า
เรากาหนดหมายเลขให้กบั จุดในกราฟดังรู ป โดยการอันดับปกติของ
จุดจะได้วฏั จักร(วงจร)แฮมิลตัน
Department of Computer Science, BUU
61
Hamiltonian Path Theorems
• Dirac’s theorem: ถ้ากราฟ G เป็ นกราฟอย่างง่ายที่
เชื่อมโยง(connected, simple)ที่มีจานวนจุด n3 จุด,
และทุกจุดv deg(v)n/2, แล้วกราฟ G มีวงจรแฮมิลตัน
• Ore’s corollary: ถ้ากราฟ G เป็ นกราฟอย่างง่ายที่
เชื่อมโยง ที่มีจานวนจุด n≥3 จุด และ deg(u)+deg(v)≥n
สาหรับทุกๆคู่ จุดu,v ที่ไม่ใช่จุดที่ประชิดกัน , แล้ว กราฟ G มี
วงจรแฮมิลตัน
Department of Computer Science, BUU
Department of Computer Science, Burapha University
62
ตัวอย่ าง
จงแสดงว่ากราฟ G ที่มีตวั แทนเชิงกราฟดังรู ป เป็ นกราฟแฮมิลตัน
วิธีทา เนื่องจากกราฟ G เป็ นกราฟเชิงเดียวอันดับ 5 และจุดทุกจุดมีระดับขั้นมากกว่า
หรื อเท่ากับ 3 ซึ่ ง 3 ≥ 5/2 นัน่ คือ G มีวงจรกราฟแฮมิลตัน
ดังนั้นโดยทฤษฎีบท G เป็ นกราฟแฮมิลตัน
Department of Computer Science, BUU
63
Planar Graph
• บทนิยาม จะเรี ยกกราฟ G ว่า กราฟเชิ งระนาบ (planar graph) ถ้า
สามารถวาดตัวแทนเชิงกราฟของกราฟ G ลงบนระนาบได้โดยที่ไม่มีเส้นคู่ใด
ของกราฟตัดกัน
• ในรู ปข้างล่างแสดงตัวอย่างของทรงหลายหน้าและกราฟเชิงระนาบที่สมนัยกัน
Department of Computer Science, BUU
Department of Computer Science, Burapha University
64
Example
• ปัญหาบ้าน 3 หลัง และ สาธารณูปโภค3 ชนิด เป็ นสถานการณ์ซ่ ึ งสามารถ
จาลองในรู ปตัวแทนเชิงกราฟ ปัญหาคือ มีบา้ น 3 หลัง โดยที่แต่ละหลังมีการ
เชื่อมต่อสาธารณูปโภค 3 ชนิด ได้แก่ น้ า ไฟฟ้า และโทรศัพท์ การเชื่อมต่อ
เป็ นแบบเดินท่อใต้ดิน คาถามคือ เป็ นไปได้หรื อไม่ ที่จะทาการเชื่อมต่อโดย
ท่อใต้ดินจะไม่ไขว้ทบั กัน ซึ่ งปั ญหานี้สามารถแสดงโดยใช้ตวั แทนเชิงกราฟ
ดังรู ป
Department of Computer Science, BUU
Department of Computer Science, Burapha University
65
Degree of a face
• บทนิยาม ให้ G เป็ นกราฟเชิงระนาบ เมื่อวาดตัวแทนเชิงกราฟของกราฟ G
ลงบนระนาบ ระนาบจะถูกแบ่งออกเป็ นบริ เวณที่เรี ยกว่า หน้ า (faces)
• ดีกรี ของหน้ า (degree of a face) เขียนแทนด้วย d(f) หมายถึง
จานวนของเส้นที่เป็ นขอบเขต หรื อ ล้อมรอบหน้านั้น ในการนับจานวนหน้า
ของกราฟ จะพิจารณาบริ เวณภายนอกกราฟเป็ นหนึ่ งหน้าซึ่ งเรี ยกว่า หน้ า
อนันต์ (the infinite face)
Department of Computer Science, BUU
Department of Computer Science, Burapha University
66
Example
• กราฟนี้มีจานวนหน้า 3 หน้า คือ f1 , f2 และ f3 โดยมี f3 เป็ นหน้าอนันต์และ
d(f1) = 3, d(f2) = 4, d(f3) = 5 ตามลาดับ ผลรวมของดีกรี ของหน้าทั้งหมดเท่ากับ 12
และมีจานวนด้าน 6 ด้าน
• จากตัวอย่างนี้ สังเกตว่าผลรวมของระดับขั้นของหน้าเป็ นสองเท่าของจานวนด้านใน
กราฟ เนื่องจากด้านทุกด้านจะเป็ นขอบเขตของหน้าสองหน้าที่ต่างกัน ในการหาผลรวม
ของระดับขั้นของหน้า ด้านแต่ละด้านจะถูกนับสองครั้ง ดังนั้นสาหรับกราฟเชิงระนาบ
G ที่มีจานวนหน้า n หน้า แทนด้วย f1, f2, …, fn และมีจานวนด้าน e ด้าน จะได้วา่
Department of Computer Science, BUU
Department of Computer Science, Burapha University
67
Example
• จากกราฟที่กาหนดมี 10 หน้า คือ f1, f2, f3,…,f10 มีจานวนด้านทั้งหมด 22 ด้าน
10
และ  d ( f i )  4  4  4  4  6  4  4  4  4  6  44  2(22)
i 1
• ทฤษฎีบท ให้ G เป็ นกราฟเชิงระนาบและเป็ นกราฟเชื่อมโยง มีจานวนจุ ด n จุด
จานวนด้าน e ด้าน และจานวนหน้า f หน้าแล้ว n – e + f = 2
• จากตัวอย่างข้างต้น นัน่ คือ 14 – 22 + 10 = 2
Department of Computer Science, BUU
Department of Computer Science, Burapha University
68
Weighted Graphs
กราฟถ่ วงนา้ หนัก คือ กราฟที่ดา้ นทุกด้าน e ของกราฟ G ถูกกาหนดด้วยจานวนจริ งที่ไม่เป็ นลบ
w(e) กากับเส้น โดยเรี ยก w(e) ว่า นา้ หนัก (weight) ของเส้น e และ แทนน้ าหนัก
ของกราฟ G ด้วย w(G) โดยที่ w(G) คือ ผลรวมน้ าหนักของเส้นทุกเส้นในกราฟ G
BOS
2534
1855
SF
957
DEN
CHI
722
NY
908
349
ATL
LA
595
MIA
Department of Computer Science, BUU
Department of Computer Science, Burapha University
69
Shortest Path Problems
ปั ญหาที่มีชื่อเสี ยงเกี่ยวกับกราฟถ่วงน้ าหนัก ได้แก่ ปั ญหาการเดินทาง
ของพนักงานขายสิ นค้า (The traveling saleman’s problem) ซึ่ งเป็ นปัญหาในการ
หาเส้นทางที่ส้ นั ที่สุดที่พนักงานขายสิ นค้าสามารถเริ่ มต้น และสิ้ นสุ ดการเดินทาง
ที่เมืองๆเดียวกัน โดยหลีกเลี่ยงการเดินทางผ่านเมืองที่เคยผ่านมาแล้ว
ดังนั้น ถ้าแทนผังของการเดินทางด้วยกราฟโดยให้จุดแต่ละจุดแทน
เมือง ด้านแต่ละด้านที่เชื่อมระหว่างจุด 2 จุดแทนเส้นทางที่เชื่อมระหว่างเมืองทั้ง
สอง และกาหนดน้ าหนักให้กบั เส้นทุกเส้นของกราฟแทนระยะทางระหว่างเมือง
จะทาให้ได้กราฟถ่วงน้ าหนัก โดยเป้าหมายของปั ญหาตัวแทนเชิงกราฟ คือ
ต้องการหาวงจรแฮมิลตันที่มีความยาวสั้นที่สุดในกราฟ เพื่อที่จะประหยัด
ค่าใช้จ่ายในการเดินทาง หรื อเพื่อให้เสี ยเวลาในการเดินทางน้อยลง
Department of Computer Science, BUU
Department of Computer Science, Burapha University
70
Shortest Path Problems
ในการหาวิถีถ่วงน้ าหนักที่มีน้ าหนักต่าสุ ดที่เชื่อมระหว่างจุด 2 จุดที่
กาหนดให้ โดยที่น้ าหนักแทนระยะทางระหว่างเมืองที่มีการเชื่อมต่อ
โดยตรง มีข้นั ตอนวิธีที่แตกต่างกันหลากหลายวิธี ขั้นตอนวิธีหนึ่งที่จะ
กล่าวต่อไปนี้ ถูกคิดค้นโดยนักคณิ ตศาสตร์ชาวเนเธอร์แลนด์ คือ เอ็ดส
เกอร์ ไวบี ดิสตร้า (Dijkstra, Edsger Wybe)
Dijkstra’s algorithm เป็ นขั้นตอนวิธีทาซ้ าเพื่อหาวิถีส้ น
ั ที่สุด
ระหว่างจุด a ถึงจุด z ในกราฟถ่วงน้ าหนัก
Department of Computer Science, BUU
Department of Computer Science, Burapha University
71
Dijkstra’s algorithm
procedure ดิสตร้า (G: กราฟเชิงเดียวถ่วงน้ าหนักที่เป็ นกราฟเชื่อมโยง โดย
น้ าหนักทั้งหมดเป็ นจานวนบวก)
{G มีจุด a = v0, v1, …, vn = z และน้ าหนัก w(vi, vj) = ∞
ถ้า vivj ไม่เป็ นเส้นใน G}
begin
for i := 1 to n do
L(vi) := ∞
L(a) := 0
S := ∅
{การกาหนดค่าเริ่ มต้น ค่าของจุด a เป็ น 0 และค่าของจุดอื่นๆ เป็ น ∞ และ S=∅}
Department of Computer Science, BUU
Department of Computer Science, Burapha University
72
Dijkstra’s algorithm
while z ∉ S
begin
u := จุดที่ไม่อยูใ่ น S ที่ L(u) มีค่าน้อยสุ ด
S := S  {u}
for v ∉ S
if L(u)+w(u,v)<L(v) then L(v):=L(u)+w(u,v)
{เพิ่มจุดใน S ด้วยค่าที่นอ้ ยที่สุด และ กาหนดค่าใหม่ให้กบั จุดที่ไม่อยูใ่ น S}
end {L(z) = น้ าหนักต่าสุ ดของวิถีจากจุด a ถึงจุด z}
end
Department of Computer Science, BUU
Department of Computer Science, Burapha University
73
Example
จงหาวิถีที่ส้ นั ที่สุดจากจุด a ไปยังจุด z จากกราฟถ่วงน้ าหนัก
กาหนดค่าให้จุด a เป็ น 0 และ
ค่าของจุดอื่นๆเป็ น ∞ นัน่ คือ L0(a) = 0
ขณะที่ L0(b), L0(c), L0(d), L0(e)
และ L0(z)เป็ น ∞ และ S0 = ∅
Department of Computer Science, BUU
Department of Computer Science, Burapha University
74
Example
เลือกจุด a ซึ่งมีค่าของจุดน้อยที่สุด
เป็ นสมาชิกของ S1 นัน่ คือ
S1 = { a } และกาหนดค่าใหม่
ให้กบั จุดที่ประชิดกับจุด a นัน่ คือ
•
•
•
•
L1(b) = min {L0(b), L0(a) + w(a, b)} = min {∞, 0 + 4} = 4
L1(c) = min {L0(c), L0(a) + w(a, c)} = min {∞, 0 + 2} = 2
ขณะที่ L1(d), L1(e) และ L1(z) เป็ น ∞
ดังนั้น S2 = {a, c}
Department of Computer Science, BUU
Department of Computer Science, Burapha University
75
Example
กาหนดค่าใหม่ให้กบั จุดที่ประชิดกับจุด c
•
•
•
•
•
L2(b) = min {L1(b), L1(c) + w(c, b)} = min {4, 2 + 1} = 3
L2(d) = min {L0(d), L1(c) + w(c, d)} = min {∞, 2 + 8} = 10
L2(e) = min {L0(e), L1(c) + w(c, e)} = min {∞, 2 + 10} = 12
ขณะที่ L2(z) เป็ น ∞
ดังนั้น S3 = {a, c, b}
Department of Computer Science, BUU
Department of Computer Science, Burapha University
76
Example
กาหนดค่าใหม่ให้กบั จุดที่ประชิดกับจุด b
• L3(d) = min {L2(d), L2(b) + w(b, d)} = min {10, 3 + 5} = 8
• ขณะที่ L3(z) เป็ น ∞
• ดังนั้น S4 = {a, c, b, d}
Department of Computer Science, BUU
Department of Computer Science, Burapha University
77
Example
• L4(e) = min {L2(e), L3(d) + w(d, e)} = min {12, 8 + 2} = 10
• L4(z) = min {L0(z), L3(d) + w(d, z)} = min {∞, 8 + 6} = 14
• ดังนั้น S4 = {a, c, b, d, e}
Department of Computer Science, BUU
Department of Computer Science, Burapha University
78
Example
•
•
•
•
L5(z) = min {L4(z), L4(e) + w(e, z)} = min {14, 10 + 3} = 13
ดังนั้น S5 = {a, c, b, d, e, z}
นัน่ คือวิถีที่ส้ นั ที่สุดจากจุด a ไปยังจุด z คือ acbdez
และมีความยาวเท่ ากับ 13 หน่ วย
Department of Computer Science, BUU
Department of Computer Science, Burapha University
79
Graph Coloring
• การให้สีกราฟ(graph coloring) คือการกาหนดสี ให้กบั จุดต่างๆ ในกราฟ
รู ปหนึ่งโดยไม่ให้สองจุดใดๆที่อยูบ่ นเส้นเชื่อมเดียวกัน มีสีเหมือนกัน
• Chromatic number ของกราฟคือจานวนสี ที่นอ้ ยที่สุดที่ใช้ในการให้สี
กราฟนั้น
C4
C5
C6
• กราฟ C5 มีจานวน Chromatic number เป็ น 3
• กราฟ C4 ,C6 มีจานวน Chromatic number เป็ น 2
• สรุป กราฟ Cycle Cn มีจานวน Chromatic number เป็ น 3 เมื่อ n เป็ น
จานวนคี่ และมีจานวน Chromatic number เป็ น 2 เมื่อ n เป็ นจานวนคู่
Department of Computer Science, BUU
Department of Computer Science, Burapha University
80
Example
การระบายสี กราฟสมบูรณ์ Kn จะใช้จานวนสี ที่ระบาย n สี และกราฟ
สมบูรณ์แบบสองส่ วน K m, n จานวน Chromatic numberคือ 2
Department of Computer Science, BUU
Department of Computer Science, Burapha University
81
The 4-color theorem
• Chromatic number ของแผนที(่ planar graph) ≤4
• The Four color theorem: chromatic number ของกราฟเชิง
ระนาบจะมีค่าไม่มากกว่า 4
• Example: กราฟ G1 มี chromatic number = 3, กราฟ G2 มี
chromatic number = 4
G1
G2
Department of Computer Science, BUU
Department of Computer Science, Burapha University
82
Application of Graph Coloring
• การกาหนดตารางสอบปลายภาคเรี ยน
– เราจะมีวิธีกาหนดตารางสอบอย่างไรที่จะทาให้นกั เรี ยนไม่มีวิชา
ที่สอบพร้อมกัน
– ใช้กราฟโมเดล โดยใช้จุดยอดแทนรายวิชาและรายวิชาที่
นักเรี ยนลงทะเบียนเรี ยนทั้ง 2 รายวิชาจะอยูบ่ นด้านของกราฟ
– ช่วงเวลาที่จะสอบจะแทนด้วยจานวนสี ที่ใช้ระบายกราฟ
Department of Computer Science, BUU
Department of Computer Science, Burapha University
83
Example
• กรรมการจัดตารางสอบของภาควิชาวิทยาการคอมพิวเตอร์ ต้องทาการ
กาหนดเวลาสอบให้กบั วิชาจานวน 7 วิชา (ซึ่งแทนด้วยตัวเลข 1, 2,…,7)
โดยมีบางคู่วิชาซึ่งไม่สามารถจัดสอบพร้อมกันได้ เนื่องจากมีนกั เรี ยน
ลงทะเบียนเรี ยนวิชาเหล่านั้นควบคู่กนั เช่น
–
–
–
–
–
–
1-2, 1-3, 1-4, 1-7
2-3,2-4,2-5,2-7
3-4,3-6,3-7
4-5,4-6
5-6,5-7
6-7
Department of Computer Science, Burapha University
84

similar documents