Your SlideShare is downloading. ×
0
1
กราฟกราฟ ((Graphs)Graphs)
2
วัตถุประสงค์
•เพื่อศึกษาหลักการเบื้องต้นเกี่ยวกับ
กราฟ (graphs)
•ประยุกต์ความสัมพันธ์ของข้อมูลในรูป
กราฟสำาหรับกระบวนการ...
3
กราฟคืออะไร?
• ไม่ใช่กราฟในความหมายทางคณิตศาสตร์ที่เกิด
จากการ Plot จุดลงบนแกน x,y
• กราฟในวิชาคณิตศาสตร์ไม่ต่อเนื่องจะห...
4
การประยุกต์ของกราฟ
• เพื่อแสดงความสัมพันธ์ของสิ่งที่เราสนใจ.
• เครือข่าย(คอมพิวเตอร์ ธุรกิจ) การจัดการ
ตาราง(scheduling)...
5
กราฟอย่างง่าย (Simple Graphs)
• กราฟอย่างง่าย คือ G=(V,E) ซึ่งประกอบด้วย
– เซตของจุดยอด(vertices) หรือจุดยอด(nodes) แทน
...
6
มัลติกราฟ(Multi-graphs)
• มัลติกราฟ คือ กราฟอย่างง่าย ซึ่งอย่างน้อย
จะต้องมีด้านมากกว่า หนึ่งด้าน เชื่อมระหว่าง
จุดยอดคู...
7
กราฟเทียม(Pseudo-graphs)
• กราฟเทียม หมายถึง มัลติกราฟที่มีจุดยอดหนึ่งจุด
ยอดใดที่ยอมให้มี ด้านเข้าและออกไปยังตัวเอง. (R...
8
กราฟระบุทิศทาง(Directed
Graphs)
• กราฟระบุทิศทาง(directed graph) หรือ
digraph
ซึ่งจะสอดคล้องกับความสัมพันธ์แบบทวิภาค
(bi...
9
มัลติกราฟระบุทิศทาง(Directed Multi-
graphs)
• มัลติกราฟระบุทิศทาง คือกราฟระบุทิศทาง
ซึ่งอย่างน้อยจะต้องมี ด้านมากกว่าหนึ...
10
คำาศัพท์ที่เกี่ยวข้อง
กราฟ(terminology)
• Adjacent, connects, endpoints, degree,
initial, terminal, in-degree, out-degr...
11
ประชิด (Adjacency)
ให้ G เป็น กราฟไม่ระบุทิศทาง(undirected
graph) ซึ่งมี ด้าน E, e∈E เขียนด้วยคู่ลำาดับจุด
ยอด {u,v} แล...
12
ดีกรีของจุดยอด(Degree of a
Vertex)
• เมื่อG เป็นกราฟไม่ระบุทิศทาง,และ v∈V.
• ดีกรีของ vใดๆ เขียนด้วย deg(v) หมายถึง
จำา...
13
Handshaking Theorem
• ให้ G เป็นกราฟไม่ระบุทิศทาง (simple, multi-,
or pseudo-) แล้ว
Ev
Vv
2)deg( =∑∈
How many vertices ...
14
Directed Adjacency Graph
• ให้ G เป็น กราฟระบุทิศทาง เมื่อ u, v เป็น
โหนดใดๆบน G เราจะกล่าวว่า:
– u is adjacent to v, v...
15
Directed Degree
• ให้ G เป็น กราฟระบุทิศทาง เมื่อ v เป็นจุดยอด
ใดๆบน G เราจะกล่าวว่า:
– in-degree ของv, deg−
(v), คือจำ...
16
Directed Handshaking Theorem
• ให้ G เป็น กราฟระบุทิศทางแล้ว ได้ว่า:
Evvv
VvVvVv
=== ∑∑∑ ∈∈
+
∈
−
)deg(
2
1
)(deg)(deg
17
Special Graph Structures
กราฟอย่างง่ายที่มีลักษณะพิเศษบางรูปแบบ
:
• Complet graphs Kn
• Cycles Cn
• Wheels Wn
• n-Cubes...
18
กราฟสมบูรณ์ (Completed Graphs)
• กราฟแบบ Complet graph ที่มีจุดยอด n จุดซึ่ง
แทนได้ด้วยสัญลักษณ์ Kn คือ กราฟที่ประกอบ
ด...
19
Cycles
• G เป็นกราฟอย่างง่าย แล้ว G จะเป็น cycle Cn
ภายใต้ n≥3
ถ้าเซตของจุดยอด V={v1,v2,… ,vn} แล้ว
E={{v1,v2},{v2,v3},...
20
Wheels
• G เป็นกราฟอย่างง่าย แล้ว G จะเป็น wheel
Wn, ภายใต้ n≥3, ถ้ากราฟ G เป็น Cn และ
สามารถหา จุดยอด vhub ที่สามารถเช...
21
n-cubes (hyper-cubes)
• G เป็นกราฟอย่างง่าย, n∈N แล้ว G
เป็นhypercube Qn ถ้า สามารถสร้างกราฟชุด
ที่ 2 Qn-1 โดยที่แต่ละจ...
22
n-cubes (hyper-cubes)
กราฟแบบ n-Cubes ซึ่งแทนได้ด้วยสัญลักษณ์ Qn เป็น
กราฟที่มีจำานวนจุด เป็น 2n
โดย n แทนค่าความยาว
ขอ...
23
• G=(V,E) เป็น bipartite (two-part) ก็ต่อเมื่อ
V = V1∩V2 เมื่อ V1∪V2=∅ และe∈E: ∃v1∈V1,v2∈V2: e={v1,v2}.
• bipartite คื...
24
กราฟสองส่วนสมบูรณ์
(Complete Bipartite Graphs)
• เมื่อ m,n∈N, Km,n เป็น complete bipartite graph
ถ้าให้ |V1| = m และ |V...
25
ตัวอย่าง กราฟสองส่วนสมบูรณ์
26
ตัวอย่าง : กราฟสองส่วน
กราฟ G เป็นกราฟสองส่วนหรือไม่ ?
ตอบ G เป็น กราฟสองส่วน เพราะสามารถแบ่ง
เซตของจุดยอดเป็นสองเซต คื...
27
ตัวอย่าง : กราฟสองส่วน
กราฟ Gและ H เป็นกราฟสองส่วนหรือไม่ ?
28
เฉลย : กราฟสองส่วน
• วิธีทำา กราฟ G เป็นกราฟสองส่วน เพราะ
สามารถแบ่งเซตของจุดเป็นสองเซต คือ
• V1 = {a, b, d} และ V2 ={c...
29
• กราฟ H ไม่ใช่กราฟสองส่วน เพราะเซตของจุด
ยอดไม่สามารถแบ่งได้เป็น 2 เซตย่อยได้ โดยที่
แต่ละเซตย่อย 2 เซตย่อยนั้น จุดใดๆ...
30
กราฟย่อย (Subgraphs)
• Subgraph ของกราฟ G=(V,E) คือกราฟ
H=(W,F) เมื่อ W⊆V และ F⊆E.
G H
31
ประยุกต์ของ Subgraph
• บางครั้งเราต้องการเพียงบางส่วนของกราฟเพื่อ
ใช้ในการแก้ปัญหา เช่น เราต้องการเพียงบาง
ส่วนของศูนย์...
32
Graph Unions
• G1∪G2 เป็น graph union ของกราฟอย่างง่าย
G1=(V1, E1) และ G2=(V2,E2) โดยที่ (V1∪V2, E1∪E2).
33
รูปแทนของกราฟ และไอโซ
มอฟิคซ์
(Graph Representations & Isomorphism)
• Graph representations:
– Adjacency lists.
– Adjac...
34
Adjacency Lists
• จัดเก็บอยู่ในรูปตาราง โดยแต่ละแถว จะเก็บจุด
ยอดที่ถูกเชื่อมโยงกับจุดยอดที่สนใจ เช่น จุด
ยอด a มีจุดยอ...
35
เมตริกซ์ประชิด
(Adjacency Matrices)
• ให้ A เป็นเมตริกซ์ และaij เป็นสมาชิกแถวที่ i ,
คอลัมภ์ที่ j แล้ว A จะเรียกว่าเมตร...
36
เมตริกซ์กระทบ
(Incidence matrices)
• ให้ G เป็นกราฟอย่างง่าย โดยที่ v1,v2,v3,….,vn และ
e1,e2,e3,…,em เป็นจุดยอดและ ด้าน...
37
เฉลย : เมตริกซ์กระทบ
v1
v3
v2
v4
e1
e2
e4
e5
e3
e1 e2 e3 e4 e5
1 0 1 0 0
0 0 1 0 1
1 1 0 1 0
0 0 0 1 1
v1
v2
v3
v4
38
เมตริกซ์กระทบ
Test: จากกราฟ G ที่กำาหนดให้จงหา เมตริกซ์
ประชิด และ เมตริกซ์กระทบ
v1
v3
v2
v4
e1
e2
e4
e5
e3
G:
v1 v2 v3...
39
กราฟถอดแบบ(Graph Isomorphism)
นิยาม ให้ G1=(V1, E1) และ G2=(V2, E2) เป็นกราฟ
อย่างง่าย และให้ f:V1→V2 ในแบบสมนัยกัน
ระห...
40
กราฟ G1 และ G2 เป็นกราฟถอดแบบกันก็ต่อเมื่อ การ
เรียงลำาดับของจุดและด้าน ทำาให้เมตริกซ์ประชิดและเมตริ
กซ์ตกกระทบของกราฟส...
41
• G1 จะ ไอโซโมฟิคซ์ กับกราฟ G2 ถ้าสามารถ
แสดงได้ว่าด้าน ระหว่างจุดยอดบนกราฟเหมือน
กัน.a
b
c
d
e
G1
G2
ตัวอย่าง Isomorph...
42
ตัวอย่าง Isomorphism
• G3 จะ ไอโซโมฟิคซ์ กับกราฟ G4 ถ้า
สามารถแสดงได้ว่ามีด้าน ระหว่างจุดยอดบน
กราฟเหมือนกัน.
a
b
cd
e
...
43
• Test กราฟ G5 เป็น isomorphic กับ กราฟ
G6หรือไม่?
ตัวอย่าง Isomorphism
ANS: A - 7, B - 4, C - 3, D - 6, E - 5, F - 2, ...
44
ให้เลือกทดสอบอย่างน้อย 1
ข้อ
1.กำาหนดกราฟแบบระบุทิศทางมาให้ ให้แสดง
การแทนกราฟด้วย adjacency matrices และ
incidence mat...
45
46
การเชื่อมโยงบนกราฟ
(Connectivity)
• (กราฟไม่ระบุทิศทาง) ความยาวของเส้นทาง
(path) จากจุดยอด u ไปยังจุดยอด v มีค่า n
คือล...
47
ความเชื่อมโยงบน
กราฟ(Connectedness)
•connected graph หมายถึงกราฟที่
ทุกจุดยอดบนกราฟมีเส้นทางที่สามารถเชื่อม
โยงไปยังจุด...
48
Euler & Hamilton Paths
• Euler circuit ในกราฟ G คือวงจรอย่างง่ายที่
ประกอบด้วยด้านทุกด้านใน G.
• Euler path ในกราฟ G คื...
49
ตัวอย่าง: Euler circuit
A B
C D
A
B
C
D
E
F
G
H
50
ตัวอย่าง: Euler path
?
51
โจทย์คำาถาม
• กราฟแบบไม่ระบุทิศทางในรูปข้างล่างนี้
กราฟใดมีวงจรออยเลอร์ กราฟใดไม่มีวง
จรออยเลอร์ และกราฟใดมีเส้นทางเดิน...
52
ตัวอย่าง: Hamilton circuit & Hamilton
path
53
โจทย์คำาถาม
•กราฟแบบไม่มีทิศทางในรูปข้างล่างนี้ กราฟ
ใดมีวงจรแฮมมิลตัน กราฟใดไม่มีวงจรออย
เลอร์ และกราฟใดมีเส้นทางเดินแ...
54
ปัญหาการข้ามสะพาน
Königsberg
• จะมีวิธีการเดินข้ามสะพานทั้งเจ็ดแบบไม่ซำ้ากัน
โดยมีจุดเริ่มต้นและจุดสุดท้ายเป็นจุดเดียวก...
55
Euler Circuit & Euler Path Theorems
• ทฤษฎี: มัลติกราฟของกราฟเชื่อมต่อจะมี
วงจรออยเลอร์(euler circuit ) ถ้าทุกจุด
ยอดต่...
56
ปัญหาระยะทางสั้นที่สุด
(Shortest-Path Problems)
• Single Source Shortest Path by
Dijkstra’s algorithm
ต้องการหาระยะทางส...
57
ปัญหาระยะทางสั้นที่สุด
(Shortest-Path Problems)
• Single Source Short Path by Dijkstra’s
algorithm
ต้องการหาระยะทางสั้น...
58
Dijkstra’s algorithm
No.
Source min
weight
Distance from A
B C D E F G
0 {A} - 3 2 5 ∞ ∞ ∞
1
2
3
4
5
6
A B
C D E
F G
G7...
59
Dijkstra’s algorithm
No.
Source min
weight
Distance from A
B C D E F G
0 {A} - 3 2 5 ∞ ∞ ∞
1 {A,C} C 3 2 5 ∞ 6 ∞
2
3
4
...
60
Dijkstra’s algorithm
No.
Source min
weight
Distance from A
B C D E F G
0 {A} - 3 2 5 ∞ ∞ ∞
1 {A,C} C 3 2 5 ∞ 6 ∞
2 {A,C...
61
Dijkstra’s algorithm
No.
Source min
weight
Distance from A
B C D E F G
0 {A} - 3 2 5 ∞ ∞ ∞
1 {A,C} C 3 2 5 ∞ 6 ∞
2 {A,C...
62
Dijkstra’s algorithm
No.
Source min
weight
Distance from A
B C D E F G
0 {A} - 3 2 5 ∞ ∞ ∞
1 {A,C} C 3 2 5 ∞ 6 ∞
2 {A,C...
63
Dijkstra’s algorithm
No.
Source min
weight
Distance from A
B C D E F G
0 {A} - 3 2 5 ∞ ∞ ∞
1 {A,C} C 3 2 5 ∞ 6 ∞
2 {A,C...
64
Dijkstra’s algorithm
No.
Source min
weight
Distance from A
B C D E F G
0 {A} - 3 2 5 ∞ ∞ ∞
1 {A,C} C 3 2 5 ∞ 6 ∞
2 {A,C...
65
Dijkstra’s algorithm
No.
Source min
weight
Distance from A
B C D E F G
0 {A} - 3 2 5 ∞ ∞ ∞
1 {A,C} C 3 2 5 ∞ 6 ∞
2 {A,C...
Upcoming SlideShare
Loading in...5
×

Graphs

1,464

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,464
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Graphs"

  1. 1. 1 กราฟกราฟ ((Graphs)Graphs)
  2. 2. 2 วัตถุประสงค์ •เพื่อศึกษาหลักการเบื้องต้นเกี่ยวกับ กราฟ (graphs) •ประยุกต์ความสัมพันธ์ของข้อมูลในรูป กราฟสำาหรับกระบวนการทาง คอมพิวเตอร์
  3. 3. 3 กราฟคืออะไร? • ไม่ใช่กราฟในความหมายทางคณิตศาสตร์ที่เกิด จากการ Plot จุดลงบนแกน x,y • กราฟในวิชาคณิตศาสตร์ไม่ต่อเนื่องจะหมายถึง โครงสร้างความสัมพันธ์ซึ่งประกอบด้วย จุด(หรือจุดยอด) และเส้นเชื่อมโยงระหว่างจุด หรือจุดยอด เพื่ออธิบายความสัมพันธ์ของสิ่งที่ เราสนใจ
  4. 4. 4 การประยุกต์ของกราฟ • เพื่อแสดงความสัมพันธ์ของสิ่งที่เราสนใจ. • เครือข่าย(คอมพิวเตอร์ ธุรกิจ) การจัดการ ตาราง(scheduling) การจัดการระบบ งาน(flow optimization) การออกแบบวงจร.
  5. 5. 5 กราฟอย่างง่าย (Simple Graphs) • กราฟอย่างง่าย คือ G=(V,E) ซึ่งประกอบด้วย – เซตของจุดยอด(vertices) หรือจุดยอด(nodes) แทน ด้วยสัญญลักณ์ V – เซตของเส้นเชื่อมโยงระหว่างจุดยอดหรือ เรียกอีกอย่าง ว่า ด้าน(edges) หรือ ด้าน แทนด้วยสัญญลักณ์ E ซึ่ง แทนด้วยคู่ลำาดับ u,v ∈ V Visual Representation of a Simple Graph
  6. 6. 6 มัลติกราฟ(Multi-graphs) • มัลติกราฟ คือ กราฟอย่างง่าย ซึ่งอย่างน้อย จะต้องมีด้านมากกว่า หนึ่งด้าน เชื่อมระหว่าง จุดยอดคู่เดียวกันบนกราฟ. • G=(V, E, f ) f:E→{{u,v}|u,v∈V ∧ u≠v}. • ตัวอย่าง เช่น ถ้าให้จุดยอดแทนเมืองและให้ ถนนแทนด้าน ในความเป็นจริงก็อาจมีถนน เชื่อมเมืองได้มากกว่าหนึ่ง เส้นทาง. Parallel edges
  7. 7. 7 กราฟเทียม(Pseudo-graphs) • กราฟเทียม หมายถึง มัลติกราฟที่มีจุดยอดหนึ่งจุด ยอดใดที่ยอมให้มี ด้านเข้าและออกไปยังตัวเอง. (R may be reflexive.) • G=(V, E, f ) เมื่อ f:E→{{u,v}|u,v∈V}. e∈E เรียกว่า ลูบ(loop) ถ้า f(e)={u,u}={u}.
  8. 8. 8 กราฟระบุทิศทาง(Directed Graphs) • กราฟระบุทิศทาง(directed graph) หรือ digraph ซึ่งจะสอดคล้องกับความสัมพันธ์แบบทวิภาค (binary relations). • กราฟระบุทิศทาง(V,E) ประกอบด้วย จุดยอด V และความสัมพันธ์ทวิภาค E บน V โดยมีการระบุ ทิศทางความสัมพันธ์ว่าเป็นความสัมพันธ์จากจุด ยอดใดไปยังจุดยอดใด. • ตัวอย่างเช่น: V = เซตของคน, E={(x,y) | x loves y}
  9. 9. 9 มัลติกราฟระบุทิศทาง(Directed Multi- graphs) • มัลติกราฟระบุทิศทาง คือกราฟระบุทิศทาง ซึ่งอย่างน้อยจะต้องมี ด้านมากกว่าหนึ่งด้าน ระหว่างจุดยอดคู่หนึ่งบนกราฟ • G=(V, E, f ) ประกอบด้วยเซตของ V และ E ที่ f:E→V×V. • ตัวอย่าง เช่นให้ V=web pages และ E=hyperlinks โดย WWW เป็น directed multigraph...
  10. 10. 10 คำาศัพท์ที่เกี่ยวข้อง กราฟ(terminology) • Adjacent, connects, endpoints, degree, initial, terminal, in-degree, out-degree, complete, cycles, wheels, n-cubes, bipartite, sub-graph, union. http://oneweb.utc.edu/~Christopher-Mawata/petersen/lesson12b.htm
  11. 11. 11 ประชิด (Adjacency) ให้ G เป็น กราฟไม่ระบุทิศทาง(undirected graph) ซึ่งมี ด้าน E, e∈E เขียนด้วยคู่ลำาดับจุด ยอด {u,v} แล้วจะกล่าวว่า: u, v เป็น adjacent / neighbors / connected. • ด้าน e เป็นด้านตกกระทบ(incident) กับ จุดยอด u และv. • ด้าน e จะเชื่อมต่อ(connect) ระหว่าง u และ v. • จุดยอด u และ v ต่างก็เป็นจุดปลายของ ด้าน e. A B C D E e1 e2 e5 e4 e7 e3e6 G1
  12. 12. 12 ดีกรีของจุดยอด(Degree of a Vertex) • เมื่อG เป็นกราฟไม่ระบุทิศทาง,และ v∈V. • ดีกรีของ vใดๆ เขียนด้วย deg(v) หมายถึง จำานวนของด้านตกกระทบ(incident edges) ยกเว้นกรณี self-loops นับเพียงสองครั้ง • จุดยอดที่มีดีกรี 0 เรียกว่า isolated. • จุดยอดที่มีดีกรี 1 เรียกว่า pendant.
  13. 13. 13 Handshaking Theorem • ให้ G เป็นกราฟไม่ระบุทิศทาง (simple, multi-, or pseudo-) แล้ว Ev Vv 2)deg( =∑∈ How many vertices are there in a graph with 30 edges and degree 4 in each vertices?
  14. 14. 14 Directed Adjacency Graph • ให้ G เป็น กราฟระบุทิศทาง เมื่อ u, v เป็น โหนดใดๆบน G เราจะกล่าวว่า: – u is adjacent to v, v is adjacent from u – e comes from u, e goes to v. – e connects u to v, e goes from u to v – the initial vertex of e is u – the terminal vertex of e is v u v e
  15. 15. 15 Directed Degree • ให้ G เป็น กราฟระบุทิศทาง เมื่อ v เป็นจุดยอด ใดๆบน G เราจะกล่าวว่า: – in-degree ของv, deg− (v), คือจำานวน ด้าน ที่พุ่งเข้า สู่ v. – out-degree ของv, deg+ (v), คือจำานวน ด้าน ที่พุ่ง ออกจาก v. – ดีกรีของ v เท่ากับ deg(v) ≡ deg− (v) + deg+ (v). A B C DE e1 e2 e5 e4 e7 e3e6 G2
  16. 16. 16 Directed Handshaking Theorem • ให้ G เป็น กราฟระบุทิศทางแล้ว ได้ว่า: Evvv VvVvVv === ∑∑∑ ∈∈ + ∈ − )deg( 2 1 )(deg)(deg
  17. 17. 17 Special Graph Structures กราฟอย่างง่ายที่มีลักษณะพิเศษบางรูปแบบ : • Complet graphs Kn • Cycles Cn • Wheels Wn • n-Cubes Qn • Bipartite graphs • Complete bipartite graphs Km,n
  18. 18. 18 กราฟสมบูรณ์ (Completed Graphs) • กราฟแบบ Complet graph ที่มีจุดยอด n จุดซึ่ง แทนได้ด้วยสัญลักษณ์ Kn คือ กราฟที่ประกอบ ด้วยด้านเพียง 1 ด้านระหว่างจุดยอดแต่ละคู่ที่ แตกต่างกัน u,v∈V: u≠v↔{u,v}∈E. จำานวน ด้านใน Kn เท่ากับ edges.2 )1(1 1 − =∑ − = nn i n i K1 K2 K3 K4 K5 K6
  19. 19. 19 Cycles • G เป็นกราฟอย่างง่าย แล้ว G จะเป็น cycle Cn ภายใต้ n≥3 ถ้าเซตของจุดยอด V={v1,v2,… ,vn} แล้ว E={{v1,v2},{v2,v3},…,{vn−1,vn},{vn,v1}}. C3 C4 C5 C6 C7 C8 How many edges are there in Cn?
  20. 20. 20 Wheels • G เป็นกราฟอย่างง่าย แล้ว G จะเป็น wheel Wn, ภายใต้ n≥3, ถ้ากราฟ G เป็น Cn และ สามารถหา จุดยอด vhub ที่สามารถเชื่อมโยง ทุกจุดยอดใน Cn เข้าด้วยกัน {{vhub,v1}, {vhub,v2},…,{vhub,vn}}. W3 W4 W5 W6 W7 W8 How many edges are there in Wn?
  21. 21. 21 n-cubes (hyper-cubes) • G เป็นกราฟอย่างง่าย, n∈N แล้ว G เป็นhypercube Qn ถ้า สามารถสร้างกราฟชุด ที่ 2 Qn-1 โดยที่แต่ละจุดยอดถูกเชื่อมต่อเข้าด้วย กันในทุกตำาแหน่งที่สอดคล้องกัน เช่น Q0 คือ hypercube ประกอบด้วยจุดยอด 1 จุดยอด. Q0 Q1 Q2 Q3 Q4 Number of vertices: 2n . Number of edges:Exercise to try!
  22. 22. 22 n-cubes (hyper-cubes) กราฟแบบ n-Cubes ซึ่งแทนได้ด้วยสัญลักษณ์ Qn เป็น กราฟที่มีจำานวนจุด เป็น 2n โดย n แทนค่าความยาว ของบิต เช่นถ้ากราฟมี 2 จุด แสดงว่า กราฟแบบ n- Cubes มีด้านเพียง 1 ด้าน และมีความยาวเพียง 1 บิต ดังกราฟ Q1และ n-Cubes มีด้าน4ด้านจะมีความยาว บิตเป็น 2 เช่น Q2 และ n-Cubes มีด้าน 4 จะมีความ ยาวบิตเป็น 3 เช่น Q3.
  23. 23. 23 • G=(V,E) เป็น bipartite (two-part) ก็ต่อเมื่อ V = V1∩V2 เมื่อ V1∪V2=∅ และe∈E: ∃v1∈V1,v2∈V2: e={v1,v2}. • bipartite คือกราฟที่มีสมบัติว่าสามารถแบ่งเซตของจุด ยอดออกเป็น 2 เซ็ตย่อย โดยที่เซ็ตย่อยทั้งสองนั้นจะมี เส้นที่เชื่อมระหว่างจุดยอด แต่ต้องไม่มีเส้นเชื่อมจุดยอด ภายในเซ็ตย่อย เดียวกัน กราฟสองส่วน(Bipartite Graphs) V1 V2This definition can easily be adapted for the case of multigraphs and directed graphs as well. Can represent with zero-one matrices.
  24. 24. 24 กราฟสองส่วนสมบูรณ์ (Complete Bipartite Graphs) • เมื่อ m,n∈N, Km,n เป็น complete bipartite graph ถ้าให้ |V1| = m และ |V2| = n, แล้ว E = {{v1,v2}|v1∈V1 ∧ v2∈V2}. – ถ้ามี m จุดยอดในกราฟทางซ้าย และ n จุดยอดในกราฟทางขวา แล้วทุกจุดยอดในกราฟทางซ้าย จะมีเส้นเชื่อมต่อกับทุกจุดยอดกับ กราฟทางขวา. K4,3
  25. 25. 25 ตัวอย่าง กราฟสองส่วนสมบูรณ์
  26. 26. 26 ตัวอย่าง : กราฟสองส่วน กราฟ G เป็นกราฟสองส่วนหรือไม่ ? ตอบ G เป็น กราฟสองส่วน เพราะสามารถแบ่ง เซตของจุดยอดเป็นสองเซต คือ V1 = {a, d, e, f} และ V2 = {b, c, g} โดยที่แต่ละจุดภายในเซต V1 ไม่มีเส้นเชื่อมกัน และแต่ละจุดภายในเซต V2 ก็ไม่มีเส้นเชื่อมเช่นเดียวกัน
  27. 27. 27 ตัวอย่าง : กราฟสองส่วน กราฟ Gและ H เป็นกราฟสองส่วนหรือไม่ ?
  28. 28. 28 เฉลย : กราฟสองส่วน • วิธีทำา กราฟ G เป็นกราฟสองส่วน เพราะ สามารถแบ่งเซตของจุดเป็นสองเซต คือ • V1 = {a, b, d} และ V2 ={c, e, f, g} • โดยที่แต่ละจุดยอดในเซต V1 ไม่มีเส้นเชื่อม และแต่ละจุดยอดในเซต V2 ก็ไม่มีเส้นเชื่อมเช่น เดียวกัน (กราฟ G เป็นกราฟสองส่วน • ไม่จำาเป็นว่าทุกๆ จุดในเซต {a, b, d}ต้องอยู่ติด กับทุกๆจุดในเซต {c, e, f, g} • ตัวอย่างเช่น b และ g ไม่ได้อยู่ติดกัน)
  29. 29. 29 • กราฟ H ไม่ใช่กราฟสองส่วน เพราะเซตของจุด ยอดไม่สามารถแบ่งได้เป็น 2 เซตย่อยได้ โดยที่ แต่ละเซตย่อย 2 เซตย่อยนั้น จุดใดๆในเซต ย่อยนั้นไม่มีเส้นเชื่อมกัน • ดังนั้นจะไม่สามารถติดต่อจุดสองจุดจาก เซต ย่อยเดียวกัน (ผู้เรียนควรพิสูจน์โดยพิจารณา จากจุด a, b, f) เฉลย : กราฟสองส่วน
  30. 30. 30 กราฟย่อย (Subgraphs) • Subgraph ของกราฟ G=(V,E) คือกราฟ H=(W,F) เมื่อ W⊆V และ F⊆E. G H
  31. 31. 31 ประยุกต์ของ Subgraph • บางครั้งเราต้องการเพียงบางส่วนของกราฟเพื่อ ใช้ในการแก้ปัญหา เช่น เราต้องการเพียงบาง ส่วนของศูนย์คอมพิวเตอร์ขนาดใหญ่ใน กรุงเทพฯ เชียงใหม่ ขอนแก่นและสงขลา เรา สามารถเพิกเฉยกับคอมพิวเตอร์ในศูนย์ คอมพิวเตอร์ที่อื่นๆ และสายโทรศัพท์ทั้งหมดที่ ไม่เชื่อมกับศูนย์คอมพิวเตอร์ทั้ง 4 แห่ง ใน กราฟสำาหรับระบบขนาดใหญ่ เราสามารถกำาจัด สิ่งที่เหมือนกันที่เราสนใจของศูนย์คอมพิวเตอร์ ทั้ง 4 แห่งที่เหมือนกันได้และสามารถกำาจัดเส้น
  32. 32. 32 Graph Unions • G1∪G2 เป็น graph union ของกราฟอย่างง่าย G1=(V1, E1) และ G2=(V2,E2) โดยที่ (V1∪V2, E1∪E2).
  33. 33. 33 รูปแทนของกราฟ และไอโซ มอฟิคซ์ (Graph Representations & Isomorphism) • Graph representations: – Adjacency lists. – Adjacency matrices. – Incidence matrices. • Graph isomorphism: – กราฟสองกราฟจะ isomorphic ก็ต่อเมื่อ กราฟทั้ง สองเป็นกราฟเดียวกัน.
  34. 34. 34 Adjacency Lists • จัดเก็บอยู่ในรูปตาราง โดยแต่ละแถว จะเก็บจุด ยอดที่ถูกเชื่อมโยงกับจุดยอดที่สนใจ เช่น จุด ยอด a มีจุดยอดเชื่อมโยงกับ b และ จุดยอด c. a b dc f e Vertex Adjacent Vertices a b b, c a, c, e, f c a, b, f d e b f c, b
  35. 35. 35 เมตริกซ์ประชิด (Adjacency Matrices) • ให้ A เป็นเมตริกซ์ และaij เป็นสมาชิกแถวที่ i , คอลัมภ์ที่ j แล้ว A จะเรียกว่าเมตริกซ์ประชิด (Adjacency Matrices) ถ้า 1 เมื่อ มีเส้นเชื่อมโยงระหว่างจุดยอด i และ จุดยอด j 0 เมื่อไม่มีเส้นเชื่อมโยงระหว่างจุดยอด i และ จุดยอด j aij = a b dc f e a b c d e f a b c d e f 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0
  36. 36. 36 เมตริกซ์กระทบ (Incidence matrices) • ให้ G เป็นกราฟอย่างง่าย โดยที่ v1,v2,v3,….,vn และ e1,e2,e3,…,em เป็นจุดยอดและ ด้านต่างๆของกราฟ G เขียนอยู่ในรูปเมตริกซ์ประชิด M (ขนาด n * m)มี สมาชิกเป็น mij ถ้า mij = 1 เมื่อด้าน ej ตกกระทบบนจุด vi และ ถ้า mij = 0 แสดงว่าไม่มีด้าน ej ตกกระทบบน จุด vi v1 1 0 1 0 0 v2 0 0 1 0 1 v3 1 1 0 1 0 v4 0 0 0 1 1 e1 e2 e3 e4 e5 จากเมตริกซ์ M กราฟประชิดมีรูปร่างอย่างไร ? M =
  37. 37. 37 เฉลย : เมตริกซ์กระทบ v1 v3 v2 v4 e1 e2 e4 e5 e3 e1 e2 e3 e4 e5 1 0 1 0 0 0 0 1 0 1 1 1 0 1 0 0 0 0 1 1 v1 v2 v3 v4
  38. 38. 38 เมตริกซ์กระทบ Test: จากกราฟ G ที่กำาหนดให้จงหา เมตริกซ์ ประชิด และ เมตริกซ์กระทบ v1 v3 v2 v4 e1 e2 e4 e5 e3 G: v1 v2 v3 v4 v5 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 v1 v2 v3 v4 e1 e2 e3 e4 e5 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 v1 v2 v3 v4 Ans
  39. 39. 39 กราฟถอดแบบ(Graph Isomorphism) นิยาม ให้ G1=(V1, E1) และ G2=(V2, E2) เป็นกราฟ อย่างง่าย และให้ f:V1→V2 ในแบบสมนัยกัน ระหว่างเซตของจุดยอดของกราฟ G1และ กราฟG2 ซึ่งถ้า e1 กับ e2 เป็นด้านประชิดของ G1 แล้วได้ว่า f(e1) กับ f(e2) จะเป็นด้าน ประชิดของ G2 แล้วจะกล่าวได้ว่ากราฟ G1 มี isomorphic กับกราฟ G2 หรืออาจกล่าวได้ว่า กราฟทั้งสองต่างเป็นกราฟถอดแบบกัน. v1 v3 v2 v4 e1 e2 e4 e5 e3 G: v1 v3 v2 v4 e1 e2 e4 e5 e3 H:
  40. 40. 40 กราฟ G1 และ G2 เป็นกราฟถอดแบบกันก็ต่อเมื่อ การ เรียงลำาดับของจุดและด้าน ทำาให้เมตริกซ์ประชิดและเมตริ กซ์ตกกระทบของกราฟสองชุดนี้ เหมือนกัน โดยตรวจสอบว่า 1. มีด้านเท่ากันหรือไม่? 2. มีจุดเท่ากันหรือไม่? 3. มี degrees ของแต่ละจุดเมื่อเปรียบเทียบระหว่างกราฟ 2 รูปเท่ากันหรือไม่ ? 4. เมตริกซ์ประชิดระหว่างกราฟ 2 รูปเท่ากันหรือไม่ ? (โดยการเทียบระหว่างจุดที่สมนัยกัน) กราฟถอดแบบ(Graph Isomorphism)
  41. 41. 41 • G1 จะ ไอโซโมฟิคซ์ กับกราฟ G2 ถ้าสามารถ แสดงได้ว่าด้าน ระหว่างจุดยอดบนกราฟเหมือน กัน.a b c d e G1 G2 ตัวอย่าง Isomorphism #vertices =5 ---------------- #deg(3) {a, b, c, e} #deg=2 {d} #vertices=5 --------------- #deg(4) #deg(3) #deg=2
  42. 42. 42 ตัวอย่าง Isomorphism • G3 จะ ไอโซโมฟิคซ์ กับกราฟ G4 ถ้า สามารถแสดงได้ว่ามีด้าน ระหว่างจุดยอดบน กราฟเหมือนกัน. a b cd e f 1 2 3 4 65 G3 G4
  43. 43. 43 • Test กราฟ G5 เป็น isomorphic กับ กราฟ G6หรือไม่? ตัวอย่าง Isomorphism ANS: A - 7, B - 4, C - 3, D - 6, E - 5, F - 2, G - 1 A B C D E F G G5 1 2 3 4 5 6 7 G6
  44. 44. 44 ให้เลือกทดสอบอย่างน้อย 1 ข้อ 1.กำาหนดกราฟแบบระบุทิศทางมาให้ ให้แสดง การแทนกราฟด้วย adjacency matrices และ incidence matrices 2.ให้กราฟแบบไม่ระบุทิศทางมาให้สองกราฟ ให้ แสดงว่ากราฟทั้งสองเป็นกราฟถอดแบบกัน (15 นาที) Quiz -V
  45. 45. 45
  46. 46. 46 การเชื่อมโยงบนกราฟ (Connectivity) • (กราฟไม่ระบุทิศทาง) ความยาวของเส้นทาง (path) จากจุดยอด u ไปยังจุดยอด v มีค่า n คือลำาดับของด้านประชิด จากจุดยอด u ไปยัง จุดยอด v. • และเส้นทางจะเป็น circuit ถ้า u=v. • (กราฟระบุทิศทาง) : ความยาวของเส้นทาง (path) จากจุดยอด u ไปยังจุดยอด v มีค่า n คือลำาดับของด้านประชิด จากจุดยอด u ไปยัง จุดยอด v โดยพิจารณาตามทิศทางของการ ประชิดระหว่างจุดยอด
  47. 47. 47 ความเชื่อมโยงบน กราฟ(Connectedness) •connected graph หมายถึงกราฟที่ ทุกจุดยอดบนกราฟมีเส้นทางที่สามารถเชื่อม โยงไปยังจุดยอดหนึ่งจุดยอดใดบนกราฟ. • ให้ A เป็นเมตริกซ์ประชิด บนกราฟ G เส้น ทางมีความยาวขนาด k จาก vi ไป vj จะ เท่ากับ (Ak )i,j. •cut vertex or cut edge คือจุดยอด หรือด้านที่เมื่อโดนลบหรือตัดออกไปแล้วจะ
  48. 48. 48 Euler & Hamilton Paths • Euler circuit ในกราฟ G คือวงจรอย่างง่ายที่ ประกอบด้วยด้านทุกด้านใน G. • Euler path ในกราฟ G คือเส้นทางอย่างง่ายที่ ประกอบด้วยด้านทุกด้านใน G. • Hamilton circuit คือวงจรที่จุดยอดทุกจุด ในกราฟ G จะถูกเดินผ่านเพียงครั้งเดียว. • A Hamilton path คือเส้นทางเดินที่จุดยอด ทุกจุดในกราฟ G จะถูกเดินผ่านเพียงครั้ง เดียว.
  49. 49. 49 ตัวอย่าง: Euler circuit A B C D A B C D E F G H
  50. 50. 50 ตัวอย่าง: Euler path ?
  51. 51. 51 โจทย์คำาถาม • กราฟแบบไม่ระบุทิศทางในรูปข้างล่างนี้ กราฟใดมีวงจรออยเลอร์ กราฟใดไม่มีวง จรออยเลอร์ และกราฟใดมีเส้นทางเดินแบ บออยเลอร์ บ้าง?
  52. 52. 52 ตัวอย่าง: Hamilton circuit & Hamilton path
  53. 53. 53 โจทย์คำาถาม •กราฟแบบไม่มีทิศทางในรูปข้างล่างนี้ กราฟ ใดมีวงจรแฮมมิลตัน กราฟใดไม่มีวงจรออย เลอร์ และกราฟใดมีเส้นทางเดินแบบแฮมมิล ตัน บ้าง?
  54. 54. 54 ปัญหาการข้ามสะพาน Königsberg • จะมีวิธีการเดินข้ามสะพานทั้งเจ็ดแบบไม่ซำ้ากัน โดยมีจุดเริ่มต้นและจุดสุดท้ายเป็นจุดเดียวกันได้ หรือไม่? A B C D The original problem Equivalent multigraph
  55. 55. 55 Euler Circuit & Euler Path Theorems • ทฤษฎี: มัลติกราฟของกราฟเชื่อมต่อจะมี วงจรออยเลอร์(euler circuit ) ถ้าทุกจุด ยอดต่างก็มีจำานวนดีกรีเป็นจำานวนคู่. • ทฤษฎี: มัลติกราฟของกราฟเชื่อมต่อจะมี เส้นทางออยเลอร์(euler path) ถ้าหาได้ว่า มีจุดยอดสองจุดที่มีดีกรีเป็นจำานวนคี่.
  56. 56. 56 ปัญหาระยะทางสั้นที่สุด (Shortest-Path Problems) • Single Source Shortest Path by Dijkstra’s algorithm ต้องการหาระยะทางสั้นที่สุดที่จะเดินทาง จากจุด เริ่มต้น(source) ไปยังจุดอื่นใน G จะทำาอย่างไร ? A B C D E F G G7 2 3 4 5 1 2 3 1 62
  57. 57. 57 ปัญหาระยะทางสั้นที่สุด (Shortest-Path Problems) • Single Source Short Path by Dijkstra’s algorithm ต้องการหาระยะทางสั้นที่สุดที่จะเดินทาง จากจุด เริ่มต้น(source) ไปยังจุดอื่นใน G A B C D E F G G7 2 3 4 5 1 2 3 1 62 0 3 2 5 0 0 0 3 0 0 0 2 0 0 2 0 0 0 0 4 0 5 0 0 0 3 1 2 0 2 0 3 0 0 6 0 0 4 1 0 0 1 0 0 0 2 6 1 0 A B C D E F G A B C D E F G
  58. 58. 58 Dijkstra’s algorithm No. Source min weight Distance from A B C D E F G 0 {A} - 3 2 5 ∞ ∞ ∞ 1 2 3 4 5 6 A B C D E F G G7 2 3 4 5 1 2 3 1 62
  59. 59. 59 Dijkstra’s algorithm No. Source min weight Distance from A B C D E F G 0 {A} - 3 2 5 ∞ ∞ ∞ 1 {A,C} C 3 2 5 ∞ 6 ∞ 2 3 4 5 6 A B C D E F G G7 2 3 4 5 1 2 3 1 62
  60. 60. 60 Dijkstra’s algorithm No. Source min weight Distance from A B C D E F G 0 {A} - 3 2 5 ∞ ∞ ∞ 1 {A,C} C 3 2 5 ∞ 6 ∞ 2 {A,C,B} B 3 2 5 5 6 ∞ 3 4 5 6 A B C D E F G G7 2 3 4 5 1 2 3 1 62
  61. 61. 61 Dijkstra’s algorithm No. Source min weight Distance from A B C D E F G 0 {A} - 3 2 5 ∞ ∞ ∞ 1 {A,C} C 3 2 5 ∞ 6 ∞ 2 {A,C,B} B 3 2 5 5 6 ∞ 3 {A,C,B,D} D 3 2 5 5 6 7 4 5 6 A B C D E F G G7 2 3 4 5 1 2 3 1 62
  62. 62. 62 Dijkstra’s algorithm No. Source min weight Distance from A B C D E F G 0 {A} - 3 2 5 ∞ ∞ ∞ 1 {A,C} C 3 2 5 ∞ 6 ∞ 2 {A,C,B} B 3 2 5 5 6 ∞ 3 {A,C,B,D} D 3 2 5 5 6 7 4 {A,C,B,D,E} E 3 2 5 5 6 7 5 6 A B C D E F G G7 2 3 4 5 1 2 3 1 62
  63. 63. 63 Dijkstra’s algorithm No. Source min weight Distance from A B C D E F G 0 {A} - 3 2 5 ∞ ∞ ∞ 1 {A,C} C 3 2 5 ∞ 6 ∞ 2 {A,C,B} B 3 2 5 5 6 ∞ 3 {A,C,B,D} D 3 2 5 5 6 7 4 {A,C,B,D,E} E 3 2 5 5 6 7 5 {A,C,B,D,E,F} F 3 2 5 5 6 7 6 A B C D E F G G7 2 3 4 5 1 2 3 1 62
  64. 64. 64 Dijkstra’s algorithm No. Source min weight Distance from A B C D E F G 0 {A} - 3 2 5 ∞ ∞ ∞ 1 {A,C} C 3 2 5 ∞ 6 ∞ 2 {A,C,B} B 3 2 5 5 6 ∞ 3 {A,C,B,D} D 3 2 5 5 6 7 4 {A,C,B,D,E} E 3 2 5 5 6 7 5 {A,C,B,D,E,F} F 3 2 5 5 6 7 6 {A,C,B,D,E,F,G} G 3 2 5 5 6 7 A B C D E F G G7 2 3 4 5 1 2 3 1 62 Solution Paths : A -> B; A ->C; A ->D; A -> B -> E; A ->C -> F; A ->D -> G
  65. 65. 65 Dijkstra’s algorithm No. Source min weight Distance from A B C D E F G 0 {A} - 3 2 5 ∞ ∞ ∞ 1 {A,C} C 3 2 5 ∞ 6 ∞ 2 {A,C,B} B 3 2 5 5 6 ∞ 3 {A,C,B,D} D 3 2 5 5 6 7 4 {A,C,B,D,E} E 3 2 5 5 6 7 5 {A,C,B,D,E,F} F 3 2 5 5 6 7 6 {A,C,B,D,E,F,G} G 3 2 5 5 6 7 A B C D E F G G7 2 3 4 5 1 2 3 1 62
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×