You are on page 1of 44

TS.

Trần Văn Hoài

Đồ thị
(Graph)

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Ứng dụng

☞ Một ngành lâu đời, nhưng dùng nhiều trong ứng dụng
hiện đại
Khởi xướng bởi Leonhard Euler (thế kỷ 18)

☞ Ứng dụng: nhiều nhiều nhiều


➳ Mạng máy tính
➳ Vi mạch (chẳng hạn, planar
➳ Quan hệ
circuit board)
➳ Giải hệ phương trình
➳ Xếp lịch
➳ ...

Sử dụng rất nhiều trong trường đại học, cũng như


trong công nghiệp
Đồ thị (Graph) 2008-2009
TS. Trần Văn Hoài

Đồ thị đơn (simple graph)

☞ Đồ thị đơn G = (V, E), trong đó


• V : tập không rỗng các đỉnh (vertex)
• E: tập các cặp không thứ tự, gọi là cạnh (edge) nối các đỉnh phân
biệt

Lạng Sơn Đà Nẵng Cà Mau

Hà Nội Tp. Hồ Chí Minh

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Ví dụ đơn đồ thị

Những bài toán sau có thể biểu diễn bằng đơn đồ thị không ?

☞ Mạng điện thoại cố định

☞ Mạng giao thông

☞ Mạng thần kinh

☞ Mạng xe buýt

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đa đồ thị (multigraph)

☞ Đa đồ thị G = (V, E), trong đó


• E: cho phép nhiều cạnh nối 2 đỉnh

Lạng Sơn Đà Nẵng Cà Mau

Hà Nội Tp. Hồ Chí Minh

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Giả đồ thị (pseudograph)

☞ Giả đồ thị G = (V, E), trong đó


• E: cho phép vòng (khuyên - loop)

Lạng Sơn Đà Nẵng


Cà Mau

Hà Nội Tp. Hồ Chí Minh

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đồ thị có hướng (directed graph)

☞ Directed graph G = (V, E), trong đó


• V : tập không rỗng các đỉnh (vertex)
• E: tập các cặp có thứ tự, gọi là cung (arc) nối các đỉnh

Lạng Sơn Đà Nẵng Cà Mau

Hà Nội Tp. Hồ Chí Minh

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đồ thị tình yêu

Tên Giới tính Sở thích


A trai thời trang, thể thao, nấu ăn
B gái thời trang
C gái nấu ăn, khiêu vũ
D gái thể thao, nấu ăn, khiêu vũ
E trai khiêu vũ

Các cặp có cùng ít nhất một sở thích có thể ghép vào nhau

♥ Tìm một cách ghép các đôi sao cho số lượng


người cô đơn là ít nhất
Đồ thị (Graph) 2008-2009
TS. Trần Văn Hoài

Mô hình đồ thị
B
A C

D E

➠ G = (V, E), trong đó:


• V : tập người = {A, B, C, D, E}
• E: (u, v) ∈ E nếu u, v có cùng ít nhất 1 sở thích

Giải bài toán matching sẽ cho ta kết quả


Đồ thị (Graph) 2008-2009
TS. Trần Văn Hoài

Đồ thị tiên quyết và xử lý đồng thời

Ví dụ: Mô tả sự phụ thuộc dữ liệu của những câu lệnh sau:

S6
S5
S1 : a=0
S2 : b=1
S3 : c=a+1
S3
S4
S4 : d=b+a
S5 : e=d+1
S6 : e=c+d
S1 S2

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Hội thảo video (video conferencing)

Có n điểm tham gia hội thảo. Mỗi điểm phát tín


hiệu video cho tất cả những điểm còn lại.
☞ Tổng các kết nối ra từ v phải ≤ băng thông ra
của v
☞ Thời gian trễ từ v đến u nào đó phải ≤ 1 thông
số cho trước
☞ Băng thông được sử dụng tốt nhất

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Internet

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Internet

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Mô hình đồ thị
G = (V, E), trong đó:

☞ V : tập các người tham gia hội thảo

☞ E: tập tất cả các kết nối có thể có (đồ thị đầy đủ)

☞ Tìm một cây phủ (spanning tree) là cây thể hiện quá trình
phát tín hiệu video từ 1 điểm

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Internet

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Những thuật ngữ cơ sở (1)

Cho G = (V, E) là đồ thị vô hướng và e = (u, v) ∈ E.

☞ u và v liền kề (adjacent)

☞ e gọi là cạnh liền thuộc (incident) với u, v.

☞ u và v được gọi là đầu mút (endpoint) của e

☞ Bậc (degree) của 1 đỉnh bằng tổng số cạnh liền thuộc với
nó.

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

deg(b) = 6
deg(a) = 4
a c
b c là treo

g
g là cô lập
d e f

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Những thuật ngữ cơ sở (2)

Cho G = (V, E) là đồ thị có hướng và e = (u, v) ∈ E.

☞ u nối tới (adjacent to) v, v nối từ (adjacent from) u

☞ u đỉnh đầu (initial vertex), v đỉnh cuối (terminal vertex)

☞ deg − (u): bậc vào (in-degree) của u, deg +(u) bậc ra (out-
degree) của u

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

deg − (b) = 4
deg + (a) = 3
a c
b

d e f
deg − (d) = 1

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Một số định lý cơ bản về bậc


Cho G = (V, E) là đồ thị vô hướng.

☞ 2|E| = deg(v)
P
v∈V

☞ Số lượng đỉnh có bậc lẻ là chẵn

Cho G = (V, E) là đồ thị có hướng.


☞ deg (v) = deg + (v) = |E|
P P
v∈V v∈V

☞ Bỏ qua hướng của G, ta có đồ thị vô hướng nền


của G có số cạnh bằng số cung của G

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Một số đồ thị đơn đặc biệt

Đồ thị đầy đủ (complete graph)


Bánh xe (wheel) W5
K5

W5
K5

Khối n chiều (n-cube) Q3


Chu trình (cycle) C5
110
111
100 101

C5 010
011
Q3
000 001

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đồ thị phân đôi (bipartite graph)

☞ Đồ thị G = (V, E) là phân đôi nếu


• V = V1 ∪ V2 , V1 , V2 6= ∅ và V1 ∩ V2 = ∅
• (u, v) ∈ E, u ∈ Vi , v ∈ Vj ⇒ (i 6= j)
V1 V2

☞ Đồ thị G = (V, E) là phân đôi đầy


đủ nếu
• G là phân đôi
• ∀u ∈ V1 , v ∈ V2 , (u, v) ∈ E
V1 V2

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Ví dụ đồ thị phân đôi

Ví dụ: Những đồ thị sau có


phân đôi không ? b
a
☞ C6
☞ Cn c
☞ K3 d
☞ Kn f
e
☞ Đồ thị bên

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Xác định sự phân đôi

☞ Dùng breadth first search


0 nếu v ∈ V1









☞ Đánh số đỉnh lv∈V =  1 nếu v ∈ V2





2 chưa duyệt




Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài
0 0 1
2
2 1
2 2
2 2
2 2 2 2
V1 V2 V1 V2
0 0
1 1
1 1
0 0
2 1
0 2 1
0
V1 V2 V1 V2
Đồ thị (Graph) 2008-2009
TS. Trần Văn Hoài

Ứng dụng của đồ thị đơn đặc biệt

☞ Mạng cục bộ: hình sao, vòng, bus, lai (có dư thừa nhưng
tăng độ tin cậy)

☞ Cấu trúc kết nối của máy tính song song: một chiều, lưới,
siêu khối (n-cube)

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Tạo đồ thị mới từ đồ thị cũ

☞ Đồ thị con (subgraph) của G = (V, E) là đồ thị H = (W, F ),


trong đó W ⊆ V, F ⊆ E.

☞ Cho 2 đồ thị G1 = (V1, E1 ) và G2 = (V2, E2). Định nghĩa


G1 ∪ G2 = (V1 ∪ V2, E1 ∪ E2)

G1 G2 G1 ∪ G2

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Một số khái niệm bổ sung

Đồ thị đơn G = (V, E) là chính quy (regular) nếu


deg(u) = deg(v), ∀u, v ∈ V

Ví dụ: Đồ thị nào chính quy ?


➠ Kn
➠ Qn

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đồ thị bù Ḡ = (W, F ) (complementary graph) của


đồ thị đơn G = (V, E) có

W =V
F = {(u, v)|u ∈ V ∧ v ∈ V ∧ (u, v) 6∈ E}

Ví dụ: Xác định đồ thị bù


➠ Kn
➠ Qn

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Biểu diễn đồ thị - danh sách liền kề


Đỉnh Đỉnh liền kề Đỉnh xuất phát Đỉnh liền kề

a b, c, e a b, c, d, e

b a b b, d

c a, d, e c a, c, e

d c, e d c, e

e a, c, d e b, c, d
b b

a c a
c

d d
e e

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Biểu diễn đồ thị - ma trận liền kề


Cho đồ thị G = (V, E). Ma trận liền kề (adjacency matrix) AG của G có
tính chất
• Kích thước |V | × |V |
• Hệ sốma trận
1 nếu (vi , vj ) ∈ E



aij = 

 0 trường hợp khác

a b c d
a e2 b  
a  0 1 1 1 
e4
 
 
b 1 0 1 0
 
e1  
e3
 
 
c 1 1 0 0
 
d
 
c 



1 0 0 0
 
d

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Biểu diễn đồ thị - ma trận liên thuộc


Cho đồ thị G = (V, E). Ma trận liên thuộc (incidence matrix) MG của G
có tính chất
• Kích thước |V | × |E|
• Hệ số ma trận
1 nếu ej liên thuộc với vi



mij = 

 0 trường hợp khác

e1 e2 e3 e4
a e2 b
a d 1 1 1 0 e
e4
e1 b | 0 1 0 1 |
e3
c d c | 1 0 0 1 |
d b 0 0 1 0 c

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đồ thị đẳng cấu (isomorphism)

☞ Nhu cầu xác định xem 2 đồ thị có thể vẽ cùng 1 cách


không
Công thức phân tử hóa học giống nhau, nhưng cấu trúc khác nhau

Hai đồ thị là đẳng cấu (isomorphic) nếu có một song


ánh giữa tập đỉnh của 2 đồ thị đảm bảo quan hệ liền
kề.

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài
Ví dụ:
u1 u2 v1 v2
u4 v3 v4
u3
Song ánh f : U −→ V với
f (u1 ) = v1 f (u2 ) = v4
f (u3 ) = v3 f (u4 ) = v2
Đồ thị (Graph) 2008-2009
TS. Trần Văn Hoài

Xác định sự đẳng cấu

☞ Khó xác định sự đẳng cấu, n! khả năng


☞ Dùng các lượng bất biến để xác định sự không đẳng cấu
(của đồ thị đơn)
➠ Số đỉnh bằng nhau
➠ Số cạnh bằng nhau
➠ Bậc của các đỉnh bằng nhau

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đường đi

☞ Đường đi (path) có độ dài n từ u đến v là danh


sách e1, e2, . . . , en sao cho f (e1) = (x0, x1 ), f (e2 ) =
(x1, x2 ), . . . , f (en ) = (xn−1, xn ), trong đó xi ∈ V và
x0 = u, xn = v
☞ Với đồ thị đơn, ta có thể dùng danh sách các
đỉnh x0, . . . , xn
☞ Đường đi là chu trình (circuit) nếu u = v
☞ Đường đi đơn nếu không chứa 1 cạnh quá 1 lần

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

b
a

c
d

e f

Đường đi đơn
Chu trình

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Sự liên thông trong đồ thị vô hướng


Đồ thị vô hướng gọi là liên thông nếu

∀u, v ∈ V, u 6= v, ∃ đường đi giữa u, v

Đồ thị vô hướng liên thông ⇒ ∃ đường đi đơn.

b
a

c
d

e f

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

b
a

c
d

e f

Cạnh cắt - cạnh khớp

Đỉnh cắt - đỉnh khớp

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Sự liên thông trong đồ thị vô hướng

☞ Liên thông mạnh nếu có đường đi giữa mọi cặp


đỉnh u, v (cả 2 chiều)
☞ Liên thông yếu nếu có đường đi giữa 2 đỉnh bất
kỳ trong đồ thị nền

a b a b

c c

e d e d
Liên thông mạnh Liên thông yếu
Đồ thị (Graph) 2008-2009
TS. Trần Văn Hoài

Đường đi và sự đẳng cấu

☞ Vòng đơn chiều dài k (k > 2) là 1 đại lượng bất biến

Không đẳng cấu vì H có vòng đơn chiều dài 3, trong khi G


không có

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đếm số đường đi

Đồ thị G với ma trận liền kề A với thứ tự các đỉnh


v1, v2 , . . . , vn (vô hướng hoặc có hướng, cạnh bội,
khuyên).
Số đường đi độ dài r ∈ Z+ từ vi đến vj bằng giá trị
của phần tử (i, j) của ma trận Ar .
Chứng minh: Quy nạp toán học.

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Phân đôi không ?

Đồ thị (Graph) 2008-2009


TS. Trần Văn Hoài

Đẳng cấu không ?

Đồ thị (Graph) 2008-2009

You might also like