You are on page 1of 50

LÝ THUYẾT ĐỒ THỊ

Thông tin môn học


Chương 1: Một số khái niệm cơ bản về đồ thị
Chương 2: Biểu diễn đồ thị trên máy tính
Chương 3: Tìm kiếm trên đồ thị
Chương 4: Đồ thị Euler và Đồ thị Hamilton
Chương 5: Đường đi ngắn nhất trên đồ thị
Chương 6: Cây
Chương 7: Luồng cực đại trong mạng
Chương 8: Tô màu đồ thị
Lý thuyết đồ thị
❑ Nghiên cứu đầu tiên bởi Euler (1735)

Có thể chỉ một lần đi qua tất cả


7 chiếc cầu này hay không?
Ứng dụng
❑ Tìm đường đi ngắn nhất (google maps, hệ thống giao
hàng)
❑ Lập lịch thi và phân chia kênh cho các đài truyền hình
❑ Giải bài toán đi tham quan tất cả các đường phố của
một thành phố sao cho mỗi đường phố đi qua đúng
một lần
❑ Tìm số các màu cần thiết để tô các vùng khác nhau
của một bản đồ
Chương 1. Một số khái niệm cơ bản
❑ Định nghĩa đồ thị
❑ Các loại đồ thị
❑ Các thuật ngữ cơ bản trong đồ thị
❑ Đường đi, chu trình
❑ Đồ thị liên thông
❑ Các dạng đồ thị đặc biệt
1 Định nghĩa đồ thị
❑ Một đồ thị là một bộ hai tập hợp:
❑ Tập đỉnh V (vertex)
❑ Tập cạnh E (edge)
❑ Ký hiệu G = (V, E)
6 đỉnh 5 cạnh

2 đỉnh lập
thành 1 cạnh
Ví dụ
G = (V, E) trong đó:
V = (1, 2, 3, 4)
E = (a, b, c, d, e)
hoặc ((1,2), (1,3), (1,4), (3,4), (2,3))

→ Đồ thị có 4 đỉnh 5 cạnh


2 Các loại đồ thị
Đơn đồ thị

Đồ thị Vô hướng Đa đồ thị

Giả đồ thị

Đồ thị có hướng
Có hướng
Đa đồ thị có hướng
2 Các loại đồ thị
❑ Đồ thị vô hướng: cạnh không có
hướng (quan hệ đối xứng)
(𝑢, 𝑣) ≡ (𝑣, 𝑢)
Vd: đường 2 chiều

❑ Đồ thị có hướng: cạnh có hướng


(quan hệ không đối xứng)
𝑢, 𝑣 ≠ (𝑣, 𝑢)
vd: đường 1 chiều
2.1 Đơn đồ thị vô hướng
❑ Đơn đồ thị vô hướng G = (V, E) gồm
❑ V là tập các đỉnh
❑ E gồm các cặp không có thứ tự gồm hai phần tử khác nhau
của V

Đơn đồ thị:
• Không có khuyên
• Không có cạnh lặp
2.2 Đa đồ thị vô hướng
❑ Đa đồ thị vô hướng G = (V, E) gồm
❑ V là tập các đỉnh
❑ E gồm các cặp không có thứ tự gồm hai phần tử khác nhau
của V, có chứa cạnh lặp

Đa đồ thị:
• Không có khuyên
• Có cạnh lặp
2.3 Giả đồ thị
❑ Giả đồ thị vô hướng G = (V, E) gồm
❑ V là tập các đỉnh
❑ E gồm các cặp không có thứ tự gồm hai phần tử không
nhất thiết khác nhau của V, có chứa cạnh lặp (multiple
egdes), có chứa khuyên (loops)
Giả đồ thị:
• Có khuyên
• Có cạnh lặp
Đây là dạng đồ thị tổng quát nhất
Bài tập
❑ Xác định các đồ thị là đơn, đa, hay giả đồ thị?

G1 G2 G3 G4
2.4 Đồ thị có hướng
❑ Đồ thị vô hướng G = (V, E) gồm
❑ V là tập các đỉnh
❑ E gồm các cặp có thứ tự gồm hai phần tử khác nhau của V,
không có cạnh lặp

Đồ thị vô hướng:
• Không có cạnh lặp
2.5 Đa đồ thị có hướng
❑ Đồ thị có hướng G = (V, E) gồm
❑ V là tập các đỉnh
❑ E gồm các cặp có thứ tự gồm hai phần tử khác nhau của V,
hai cạnh e1, e2 tương ứng với cùng một cặp đỉnh được gọi
là cạnh lặp

Đa đồ thị có hướng:
• Có cạnh lặp
Tóm lại
Không cạnh lặp,
Đơn đồ thị không khuyên

Có cạnh lặp,
Vô hướng Đa đồ thị không khuyên
Đồ thị

Có cạnh lặp,
Giả đồ thị có khuyên

Không cạnh lặp


Đồ thị có hướng
Có hướng
Có cạnh lặp
Đa đồ thị có hướng
3. Các thuật ngữ cơ bản
❑ Kề, liên thuộc
❑ Bậc của đỉnh
❑ Định lý bắt tay
3.1 Kề và liên thuộc đồ thị vô hướng
❑ Giả sử u và v là hai đỉnh của đồ thị vô hướng G và
e=(u, v) là cạnh của đồ thị, khi đó ta nói:
❑ 2 đỉnh u và v kề nhau (adjacent)
❑ cạnh e liên thuộc (incident) với u và v
❑ u và v là các đầu mút (endpoints) của cạnh e
3.2 Bậc của đỉnh đồ thị vô hướng
Cho G = (V, E) là đồ thị vô hướng,
❑ Bậc của đỉnh là số lượng cạnh liên
thuộc của nó, khuyên được tính 2
lần
❑ Ký hiệu deg(v)

deg(1)= 2, deg(2)=2, deg(3)= 3,


deg(4)=3, deg(5)=3, deg(6)=1 (đỉnh treo),
deg(7)=0 (đỉnh cô lập)
3.3 Định lý bắt tay
❑ Giả sử G=(V, E) là đồ thị vô hướng với m cạnh. Khi đó
tổng tất cả các bậc của đỉnh trong V bằng 2m
෍ deg 𝑣 = 2𝑚

෍ deg 𝑣 = 3 + 3 + 3 + 3 = 12 = 2 × 6
3.3 Định lý bắt tay
❑ Chứng minh: mỗi cạnh nối 2 đỉnh, do đó mỗi cạnh sẽ
đóng góp vào 2 đơn vị cho tổng các bậc
෍ deg 𝑣 = 2𝑚

→ Tổng các bậc phải là một số chẵn

Hệ quả: Số lượng các số đỉnh bậc lẻ là một số chẵn


3.4 Kề và liên thuộc trong đồ thị có
hướng
❑ Giả sử u và v là hai đỉnh của đồ
thị có hướng G và e=(u, v) là
cạnh của đồ thị, khi đó ta nói:
❑ 2 đỉnh u và v kề nhau
❑ cạnh e đi ra khỏi u và đi vào v
❑ u là đỉnh đầu, và v là đỉnh cuối
3.5 Bậc của đỉnh đồ thị có hướng
Bán bậc vào và bán bậc ra deg-(v) của đỉnh v
❑ Bán bậc ra: số cạnh ra khỏi nó
❑ Bán bậc vào: số cạnh đi vào nó
❑ Ký hiệu: deg+(v) và deg-(v)
3.3 Bậc của đỉnh đồ thị có hướng
Bậc của đỉnh (degree of a vertex):
Cho G = (V, E) là đồ thị vô hướng
❑ Bậc của đỉnh là số lượng cạnh liên thuộc của nó,
khuyên được tính 2 lần
❑ Ký hiệu deg(v)

deg+(u) = 1
deg-(u) = 0
deg+(v) = 0
deg-(v) = 1
3.3 Bậc của đỉnh đồ thị có hướng
❑ Định lý
Giả sử G=(V,E) là đồ thị có hướng, khi
đó tổng các bán bậc vào bằng tổng
các bán bậc ra và bằng tổng số cạnh:
෍ 𝑑𝑒𝑔+ 𝑣 = ෍ 𝑑𝑒𝑔− 𝑣 = 𝑚

m=7
4. Đường đi, chu trình
❑ Đường đi, chu trình trong đồ thị vô hướng
❑ Đường đi, chu trình trong đồ thị có hướng
4.1 Đường đi đồ thị vô hướng
❑ Đường đi độ dài n từ đỉnh u đến đỉnh v trên đồ thị vô
hướng G=(V,E) là dãy (theo đỉnh): x0, x1, …, xn-1, xn.
Trong đó:
❑ u= x0
❑ v= xn
❑ (xi, xi+1) ∈ E
❑ Đường đi theo cạnh: (x0, x1), (x1, x2), …, (xn-1, xn).
❑ u gọi là đỉnh đầu, v gọi là đỉnh cuối của đường đi.
4.2 Chu trình đồ thị vô hướng
❑ Đường đi có điểm đầu trùng điểm cuối gọi là chu trình
❑ Đường đi (chu trình) đơn nếu nó chỉ qua mỗi cạnh một
lần

Chu trình đơn: (1, 2, 6, 3, 1)


Chu trình không phải chu trình đơn:
(2, 6, 4, 3, 6, 2)
A

B D

Có thể chỉ một lần đi qua tất cả


C 7 chiếc cầu này hay không?
4.3 Đường đi đồ thị có hướng
❑ Đường đi độ dài n từ đỉnh u đến đỉnh v trên đồ thị vô
hướng G=(V, E) là dãy (theo đỉnh): x0, x1, …, xn-1, xn.
Trong đó:
❑ u= x0
❑ v= xn
❑ (xi, xi+1) ∈ E
❑ Đường đi theo cạnh: (x0, x1), (x1, x2), …, (xn-1, xn).
❑ u gọi là đỉnh đầu, v gọi là đỉnh cuối của đường đi.
5. Đồ thị liên thông
❑ Đồ thị vô hướng G=(V, E) được gọi là liên thông nếu
luôn tìm được đường đi giữa 2 đỉnh bất kỳ của nó.

G H

G liên thông, H không liên thông và có 3 thành phần liên thông


5.1 Đỉnh rẽ nhánh và cầu
❑ Đỉnh v được gọi là đỉnh rẽ nhánh (cut vertex) nếu việc
loại bỏ v cùng các cạnh liên thuộc với nó sẽ làm tăng
số thành phần liên thông của đồ thị

❑ Cạnh e được gọi là cầu nếu việc loại bỏ e sẽ làm tăng


số thành phần liên thông của đồ thị
Ví dụ

❑ Đỉnh 2 là đỉnh rẽ nhánh vì nếu


loại các cạnh (1,2), (2,3) và
(2,3) sẽ tạo ra 2 thành phần
liên thông

❑ Cạnh (2,3) là cầu


5.3 Liên thông trong đồ thị có hướng
Khái niệm liên thông giống với đồ thị vô hướng
❑ Liên thông mạnh: luôn tìm được đường đi giữa 2 đỉnh bất kỳ

❑ Liên thông yếu: đồ thị vô hướng tương ứng của nó là liên


thông
5.4 Đồ thị con
❑ Một đồ thị không liên thông sẽ được phân rã thành
các thành phần liên thông, và mỗi thành phần liên
thông này là một đồ thị con của đồ thị ban đầu.
6. Một số dạng đồ thị đặc biệt
❑ Đầy đủ
❑ Vòng
❑ Đồ thị bánh xe
❑ Lưỡng phân
6.1 Đồ thị đầy đủ
❑ Đồ thị đầy đủ (complete graph) là một đơn đồ thị gồm n
đỉnh mà mọi đỉnh có bậc n-1
❑ Ký hiệu: Kn

K1 K2
Vẽ K5 K3
6.2 Đồ thị vòng
❑ Đồ thị vòng là một đơn đồ thị n đỉnh 𝑛 ≥ 3 (v1, v2, v3
,…vn) và có n cạnh (v1, v2), (v2, v3),… (vn, v1)
❑ Ký hiệu Cn
6.3 Đồ thị bánh xe
❑ Từ đồ thị vòng Cn, thêm vào đỉnh vn+1 và các cạnh
(vn+1,v1), (vn+1,v2), ..., (vn+1,vn), ta nhận được đơn đồ
thị gọi là đồ thị bánh xe, ký hiệu là Wn.
❑ Như vậy, Wn có n+1 đỉnh, 2n cạnh, một đỉnh bậc n và
n đỉnh bậc 3.
6.4 Đồ thị lưỡng phân
❑ Đồ thị G=(V, E) được gọi là đồ thị lưỡng phân nếu tập
V được phân hoạch thành 2 tập V1, V2 sao cho mỗi
cạnh e của đồ thị G nối một đỉnh V1 và một đỉnh V2

❑ Ví dụ
6.4 Đồ thị lưỡng phân
❑ Đồ thị lưỡng phân đầy đủ nếu mỗi đỉnh của V1 (có m
đỉnh) kề với mọi đỉnh của V2 (có n đỉnh)
❑ Ký hiệu Km,n
Chương 2. Biểu diễn đồ thị trên máy tính

Cách biểu
diễn đồ thị

Danh sách Danh sách Ma trận


Ma trận kề
cạnh kề liên thuộc

Ma trận trọng số
1 Ma trận kề
❑ Ma trận kề (vô hướng)
❑ Ma trận kề (có hướng)
❑ Ma trận trọng số (vô hướng)
❑ Ma trận trọng số (có hướng)
1.1 Ma trận kề (đồ thị vô hướng)
❑ Định nghĩa: đơn đồ thị G = (V,E) với tập đỉnh V =
{0,…,n 1}, tập cạnh E = {e0, e0,… em-1}.
❑ Ta gọi ma trận kề của G là A = {ai,j với i,j = 0…n-1}

1 𝑛ế𝑢 𝑖, 𝑗 ∈ 𝐸
𝑎𝑖,𝑗 =ቊ
0 𝑛ế𝑢 𝑖, 𝑗 ∉ 𝐸
1.1 Ma trận kề (đồ thị có hướng)
❑ Định nghĩa: đơn đồ thị G = (V,E) với tập đỉnh V =
{0,…,n 1}, tập cạnh E = {e0, e0,… em-1}.
❑ Ta gọi ma trận kề của G là A = {ai,j với i,j = 0…n-1}

1 𝑛ế𝑢 𝑖, 𝑗 ∈ 𝐸
𝑎𝑖,𝑗 =ቊ
0 𝑛ế𝑢 𝑖, 𝑗 ∉ 𝐸
1.1 Ma trận kề (đồ thị có hướng)
Đối với đa đồ thị
❑ Định nghĩa
❑ E là tập các cạnh/cung
❑ Ai,j là số cạnh nối đỉnh i và đỉnh j
1.2 Tính chất
❑ Ma trận kề của đồ thị vô hướng là đối xứng

❑ Nếu là đồ thị vô hướng


Tổng dòng thứ i = Tổng cột j = deg(i)
❑ Nếu là đồ thị có hướng
Tổng dòng thứ i = deg+(i), Tổng cột j = deg-(i)
1.3 Ma trận trọng số
❑ Định nghĩa: đơn đồ thị G = (V,E) với tập đỉnh V =
{0,…,n 1}, tập cạnh E = {e0, e0,… em-1}.
❑ Ta gọi ma trận trọng số của G là A = {ai,j với i,j =
0…n-1}

𝐶𝑘 𝑛ế𝑢 𝑖, 𝑗 ∈ 𝐸
𝑎𝑖,𝑗 =ቊ
0 𝑛ế𝑢 𝑖, 𝑗 ∉ 𝐸
❑ Biểu diễn đồ thị sau dưới dạng ma trận trọng số
1.4 Ưu điểm và hạn chế của ma trận kề

❑ Dễ cài đặt ❑ Tốn n2 ô nhớ (thường < 300


đỉnh)
❑ Dễ kiểm tra 2 đỉnh kề u,v có kề ❑ Kiểm tra có bao nhiêu đỉnh kề
nhau hay không với đỉnh u cần duyệt toàn bộ các
đỉnh khác

You might also like