Tải bản đầy đủ (.pdf) (48 trang)

Tìm hiểu sự liên hệ giữa đồ thị có hướng và ma trận

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (256 KB, 48 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA TOÁN

NGÔ THỊ HỒNG DIỄM

TÌM HIỂU SỰ LIÊN HỆ GIỮA
ĐỒ THỊ CÓ HƯỚNG VÀ MA TRẬN

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Toán ứng dụng

Người hướng dẫn khoa học
TS. TRẦN MINH TƯỚC

HÀ NỘI - 2013


Lời cảm ơn
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy
cô giáo trong trường Đại học Sư Phạm Hà Nội 2 nói chung và các thầy
cô giáo trong khoa Toán, bộ môn Ứng Dụng nói riêng đã tận tình giảng
dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong
suốt thời gian qua.
Đặc biệt em xin gửi lời cảm ơn đến thầy giáo TS. Trần Minh Tước,
thầy đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt
quá trình làm khóa luận tốt nghiệp. Trong thời gian làm việc với thầy,
em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập
được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu
quả, đây là những điều rất cần thiết cho em trong quá trình học tập và
công tác sau này. Đồng thời, em xin cảm ơn các bạn trong lớp K35
Cử Nhân Toán đã nhiệt tình giúp đỡ em trong quá trình học tập tại lớp.


Hà Nội, tháng 05, năm 2013
Sinh viên
Ngô Thị Hồng Diễm


Lời cam đoan
Em xin cam đoan đây là công trình nghiên cứu của riêng em. Các
số liệu, kết quả nêu trong khóa luận là trung thực và các thông tin được
trích dẫn trong khóa luận này đã được ghi rõ nguồn gốc.
Hà Nội, tháng 05, năm 2013
Sinh viên
Ngô Thị Hồng Diễm


Mục lục
Mở đầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chương 1: Nhắc lại về lý thuyết về đồ thị và ma trận
1.1 Đồ thị . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Đồ thị có hướng . . . . . . . . . . . . . . .
1.1.2 Bậc của đỉnh trong đồ thị có hướng . . . .
1.1.3 Sự liên thông . . . . . . . . . . . . . . . . .
1.2 Đường đi, chu trình, tính liên thông trong đồ thị có
1.2.1 Đường đi, chu trình . . . . . . . . . . . . .
1.2.2 Đồ thị có trọng số . . . . . . . . . . . . . .
1.3 Ma trận . . . . . . . . . . . . . . . . . . . . . . .
Chương 2: Liên hệ giữa đồ thị có hướng và ma trận

1
3


. . . . 3
. . . . 3
. . . . 4
. . . . 5
hướng 5
. . . . 5
. . . . 12
. . . . 13
15

2.1 Biểu diễn đồ thị có hướng bằng ma trận kề . . . . . . . . 15
2.1.1 Tính liên thông trong đồ thị có hướng . . . . . . . 16
2.1.2 Bài toán đường đi ngắn nhất (Thuật toán Floyd) . 18
Chương 3: Một vài lớp đồ thị đặc biệt

31

3.1 Đồ thị Euler . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Đồ thị vòng có hướng . . . . . . . . . . . . . . . . . . . . 40
Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . 44


Mở đầu
1. Lý do chọn đề tài
Trong toán học và tin học, lý thuyết đồ thị nghiên cứu các tính
chất của đồ thị. Một cách phi hình thức, đồ thị gồm một tập các
đối tượng được gọi là các đỉnh (hoặc nút) nối với nhau bởi các cạnh
(hoặc cung). Đồ thị có thể được vẽ dưới dạng một tập các đỉnh nối
với nhau bằng các đoạn thẳng (các cạnh).
Khi sử dụng đồ thị trong các bài toán của tin học có nhiều cách

khác nhau để lưu trữ các đồ thị trong máy tính. Sử dụng cấu trúc
dữ liệu nào thì tùy theo cấu trúc của đồ thị và thuật toán dùng để
thao tác trên đồ thị đó.
Trong đề tài này em đặt vấn đề nghiên cứu về cấu trúc ma trận
của đồ thị có hướng. Cấu trúc ma trận của đồ thị có hướng chứa
thông tin về quan hệ kề (có cung nối hay không) giữa các đỉnh của
đồ thị đó. Ngoài ra nó còn là một công cụ hữu ích cho việc xem xét
các tính chất của đồ thị có hướng với những thế mạnh của đại số
tuyến tính.
Từ những nhận thức trên em xin mạnh dạn nghiên cứu đề tài
“Tìm hiểu sự liên hệ giữa đồ thị có hướng và ma trận” đây không
chỉ là nhiệm vụ em phải thực hiện trong khoá luận tốt nghiệp mà
thực sự đây là đề tài em đang quan tâm và nghiên cứu.
Các thuật ngữ trong khóa luận được sử dụng trong các cuốn:
Norman Biggs (1974), Algebraic Graph Theory Cambridge Tracts in
Mathematics, VOL. 67. Nguyễn Đức Nghĩa (2003), Nguyễn Tô Thành,

1
Ngô Thị Hồng Diễm - K35-CN Toán


Mở đầu

Toán rời rạc, NXB Giáo dục. Ngô Đắc Tân (2004), Lý thuyết tổ
hợp và đồ thị, NXB ĐHQG Hà Nội. Nguyễn Hữu Việt Hưng (2001),
Đại số tuyến tính, NXB Quốc Gia Hà Nội.
2. Đối tượng và phạm vi nghiên cứu
-Đối tượng: Đồ thị và ma trận.
-Phạm vi nghiên cứu: Đồ thị có hướng và ma trận kề của nó.
3. Mục đích và nhiệm vụ nghiên cứu

Tìm hiểu về mối liên hệ giữa đồ thị có hướng và ma trận dựa trên
sự thể hiện một số tính chất của đồ thị trên ma trận kề tương ứng
4. Phương pháp nghiên cứu
Thu thập, nghiên cứu tài liệu, xin ý kiến chuyên gia.
5. Cấu trúc khóa luận
Ngoài phần mở đầu và kết luận khóa luận gồm 3 chương:
Chương 1: Nhắc lại về lý thuyết về đồ thị và ma trận
Chương 2: Liên hệ giữa đồ thị có hướng và ma trận
Chương 3: Một vài lớp đồ thị đặc biệt

2
Ngô Thị Hồng Diễm - K35-CN Toán


Chương 1

Nhắc lại về lý thuyết về đồ thị và
ma trận
1.1
1.1.1

Đồ thị
Đồ thị có hướng

Một đồ thị có hướng G là một cặp có thứ tự G = (V, E), ở đây V là
một tập hữu hạn, còn E là một tập nào đó có các cặp sắp thứ tự (u, v)
với u, v ∈ V và u = v , tức là E là một quan hệ hai ngôi không phản xạ
trên V .
Các phần tử của V = {v1 , v2 , ..., vn} được gọi là các đỉnh, còn các phần
tử của E = {(u, v)|u, v ∈ V, u = v} được gọi là các cung của đồ thị có

hướng G. Nếu e = (u, v) ∈ E thì ta nói e có đỉnh đầu là u, đỉnh cuối là
v và có hướng từ u tới v . Khi không gây ra sự nhầm lẫn ta còn có thể
→).
kí hiệu cung e = uv (hoặc e = −
uv
Ví dụ 1.1.1. Cho đồ thị có hướng G = (V, E), với V = {a, b, c}, E =
{(a, b), (b, c), (c, a)}. Đồ thị có hướng G được biểu diễn trên hình vẽ như
sau:

3
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN
a

b

c

Hình 1.1: Đồ thị có hướng

Giả sử G = (V, E) là một đồ thị có hướng. Nếu (a, b) ∈ E thì các
đỉnh a, b được gọi là kề nhau. Hai cung bất kỳ của G được gọi là kề nhau
nếu chúng có đỉnh chung.
1.1.2

Bậc của đỉnh trong đồ thị có hướng

• Bậc vào

Định nghĩa 1.1.2. Cho G là đồ thị có hướng, bậc vào của đỉnh v
ký hiệu là deg − (v) = {x ∈ V (x, v) ∈ E}.

• Bậc ra
Định nghĩa 1.1.3. Cho G là đồ thị có hướng, bậc ra của v ký hiệu
là deg + (v) = {y ∈ V (v, y) ∈ E}.
Định lý 1.1.4. [8] Cho G = (V, E) là một đồ thị có hướng. Tổng
bậc vào của các đỉnh bằng tổng bậc ra và bằng số cung của đồ thị.
Nghĩa là ta có:
m = deg − (v) = deg + (v)
Chứng minh. Khi lấy tổng tất cả các bán bậc ra hay bán bậc vào,
mỗi cung (u, v) bất kỳ sẽ được tính đúng 1 lần trong deg + (u) và
cũng được tính đúng 1 lần trong deg − (v). Từ đó suy ra kết quả.

4
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN

b

a

e

c

d


Hình 1.2: Đồ thị có hướng

Ví dụ 1.1.5. Xét đồ thị cho trong hình trên ta có:
deg − (a) = 1, deg − (b) = 2, deg − (c) = 2, deg − (d) = 2, deg − (e) = 2.
deg + (a) = 3, deg + (b) = 1, deg + (c) = 1, deg + (d) = 2, deg + (e) = 2.
Rất nhiều tính chất của đồ thị có hướng không phụ thuộc vào
hướng trên các cung của nó. Vì vậy, trong nhiều trường hợp sẽ thuận
tiện hơn nếu ta bỏ qua hướng trên các cung của đồ thị. Đồ thị vô
hướng thu được bằng cách bỏ qua hướng trên các cung được gọi là
đồ thị vô hướng nền của đồ thị có hướng đã cho.
1.1.3

1.2

Sự liên thông

Đường đi, chu trình, tính liên thông trong đồ thị có
hướng

1.2.1

Đường đi, chu trình

Đường đi có độ dài n từ v0 đến vn với n là một số nguyên dương,
trong một đồ thị có hướng G = (V, E) là một dãy các cung liên tiếp
v0v1, v1v2, ..., vn−1vn trong đó vi = vj , ∀i = j .
Đỉnh v0 được gọi là đỉnh đầu, đỉnh vn được gọi là đỉnh cuối. Đường
đi này thường được viết gọn: v0 v1 v2 ...vn−1vn.
Khi chỉ cần nêu ra đỉnh đầu vo và đỉnh cuối vn của đường đi, ta viết:
đường đi vo − vn .

5
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN

Đường đi có đỉnh đầu trùng với đỉnh cuối (tức là u = v ) được gọi là
chu trình.
Một hành trình có hướng trong đồ thị có hướng là một dãy các định
dạng v0 v1 ...vn. Trong đó vi ∈ V sao cho vi−1vi ∈ E ; i = 1, 2, ...n. Với
v0 là đỉnh đầu và vn là đỉnh cuối.
Một hành trình có hướng gọi là vết nếu các cung vi−1vi đôi một khác
nhau.
Một vết kín được gọi là mạch.
Một hành trình được gọi là đường nếu đi qua các đỉnh phân biệt.
Ví dụ 1.2.1. Cho đồ thị có hướng:
B

D

A

F

C

Hình 1.3

E


Một số đường đi từ đỉnh A đến đỉnh C là:

• Đường đi d1 : (A, B), (B, C) (đường đi có độ dài là 2).
• Đường đi d2: (A, B), (B, D), (D, E), (E, C) (đường đi có độ dài là
4).
• Đường đi d3: (A, B), (B, D), (D, F ), (F, E), (E, C) (đường đi có độ
dài là 5).
Đường đi d2 được biểu diễn bằng ma trận kề trong đồ thị trên như
sau:

6
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN





A B C D E F

0 (1) 0 0 0 0 

0 0 0 (1) 0 0 


1 0 0 0 0 0

0 0 0 0 (1) 1 


0 0 (1) 0 0 0 

0 0 0 0 1 0
bằng ma trận kề trong đồ
 thị trên như sau:
A B C D E F


 A 0 (1) 0

0
0
0


B 0 0

0
(1)
0
0




A = C 1 0 0 0 0 0 


D 0 0


0
0
1
(1)


 E 0 0 (1) 0 0
0


F 0 0 0 0 (1) 0
Trong đó mỗi cạnh mà d2 , d3 đi qua được kí hiệu là (1).
Vì các cạnh của đường đi d2 , d3 là đôi một khác nhau do đó đường
đi d2 , d3 được gọi là vết d2 , d3 . Như vậy vết d2 , d3 cũng được biểu diễn
giống đường đi d1 trong ma trận kề của đồ thị.
Ta xét đường đi từ đỉnh A đến đỉnh A qua 5 đỉnh trung gian là B, C, D, E, F :
Đường đi d4 : (A, B), (B, D), (D, F ), (F, E), (E, C), (C, A) (đường đi có
độ dài là 6). Đường đid4 được biểu diễn bằng ma trận
 kề như sau:
A B C D E F



 A 0 (1) 0 0
0
0


B 0 0

0 (1) 0 0 




A =  C (1) 0 0 0 0 0 



D 0 0
0
0
1
(1)


 E 0 0 (1) 0
0 0


F 0 0 0 0 (1) 0
Trong đó mỗi cạnh mà d4 đi qua được kí hiệu là (1).


A

B


A = C


D

E

F
Đường đi d3 được biểudiễn

7
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN

Vì các cạnh của đường đi d4 là đôi một khác nhau do đó đường đi d4
được gọi là vết d4 . Như vậy vết d4 cũng được biểu diễn giống đường đi
d4 trong ma trận kề của đồ thị.
Vì vết d4 là một vết kín nên vết d4 được gọi là mạch l4 . Như vậy mạch
l4 cũng được biểu diễn giống đường đi d4 trong ma trận kề của đồ thị.
Ta thấy d4 là một đường đi có đỉnh đầu trùng với đỉnh cuối. Người ta
nói d4 là một chu trình.
Nhận xét:
-Để xác định 1 đường đi trên ma trận kề của đồ thị có hướng ta chỉ
việc làm như sau:
Từ dòng i của điểm đầu của đường đi ta gióng sang cột có giá trị bằng
1 đầu tiên, giả sử đó là cột j .
Tiếp tục từ dòng j ta lại gióng sang một cột có giá trị bằng 1.
Cứ tiếp tục như vậy cho tới dòng của điểm cuối của đường đi.
Đánh dấu các số 1 được gióng sang trong dấu () trên ma trận.
Khi đó mỗi cạnh mà đường đi đi qua được kí hiệu là (1) trên ma trận.

Để xác định 1 chu trình trên ma trận kề của đồ thị có hướng ta cũng
làm tương tự như vậy.
-Hình ảnh của đường đi trên ma trận là một đường gấp khúc không
khép kín hoặc khép kín. Không có 2 số (1) nào trên cùng một cột. Trường
hợp khép kín thì đường đi đó là một chu trình.
Ví dụ 1.2.2. Hình ảnh đường đi d2 , d3 trong đồ thị hình 2.2 trên ma trận

8
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN

A
A

B

C

D

E

F

A

(1)
(1)


D

E

F

(1)

B

C

C
(1)

D
E

C

(1)

A

B

B

(1)


D

(1)

(1)

E

(1)

F

F

d1

d2

Hình 1.4

-Hình ảnh của một chu trình trên ma trận theo thứ tự các đỉnh của
chu trình (tính trên hàng hoặc cột) tạo thành một chu trình. Không có
2 vị trí chứa (1) nào trên cùng một cột.
1

4

2


Hình 1.5

3

Ví dụ 1.2.3. Một số hình ảnh chu trình với thứ tự đỉnh 1, 2, 3, 4 khác
nhau của đồ thị hình 2.4 trên ma trận:

9
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN
1
1

2

3

(1)

3
4

4

(1)

4


(1)

1

3

(1)

1
(1)

2
3

(1)

3

2

(1)

4

(1)

4
(1)

3


2

1

(1)

2

1

4

(1)

2

(1)

Hình 1.6
2

4

(1)

3

2


1

(1)

2

4
(1)

3
(1)

4

3

1

(1)

2

1

3

(1)

2


4

3

(1)
(1)

Hình 1.7

Kết quả sau đây về số đường đi sẽ có ích khi xét tính liên thông các
đồ thị.
Mệnh đề 1.2.4. [9] Cho G là một đồ thị có hướng với ma trận liền kề
A theo thứ tự các đỉnh v1, v2, ..., vn. Khi đó số các đường đi khác nhau
độ dài r từ vi tới vj trong đó r là một số nguyên dương, bằng giá trị của
phần tử dòng i cột j của ma trận Ar .
Chứng minh. Ta chứng minh mệnh đề bằng quy nạp theo r. Số các đường
đi khác nhau độ dài 1 từ vi tới vj là số các cạnh (hoặc cung) từ vi tới
vj , đó chính là phần tử dòng i cột j của ma trận A; nghĩa là, mệnh đề
đúng khi r = 1.
Giả sử mệnh đề đúng đến r; nghĩa là, phần tử dòng i cột j của Ar là số
các đường đi khác nhau độ dài r từ vi tới vj . Vì Ar+1 =Ar .A nên phần
10
Ngô Thị Hồng Diễm - K35-CN Toán

3

(1)

1
(1)


1
(1)

4
2

(1)

1

4


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN

tử dòng i cột j của Ar+1 bằng: bi1 a1j + bi2 a2j + ... + bin anj ,
trong đó bik là phần tử dòng i cột k của Ar . Theo giả thiết quy nạp bik
là số đường đi khác nhau độ dài r từ vi tới vk .
Đường đi độ dài r + 1 từ vi tới vj sẽ được tạo nên từ đường đi độ dài
r từ vi tới đỉnh trung gian vk nào đó và một cạnh (hoặc cung) từ k tới
vj . Theo quy tắc nhân số các đường đi như thế là tích của số đường đi
độ dài r từ vi tới vk , tức là bik , và số các cạnh (hoặc cung) từ vk tới vj ,
tức là akj . Cộng các tích này lại theo tất cả các đỉnh trung gian vk ta có
mệnh đề đúng đến r + 1.

1

2


4

3

Hình 1.8: Đường đi trên đồ thị

Ví dụ 1.2.5. Ma trận kề của đồ 
thị trong hình
 2.7 là:
0 1 0 0
0 0 1 1


A=

0 0 0 1
1 0 0 0
Tìm số đường đi khác nhau đi từ đỉnh 1 đến đỉnh 3 có độ dài là 2 ? Với
r = 2 ta có:


0 0 [1] 0
1 0 0 1


2
A =

1 0 0 1
0 1 0 0

2
Như vậy A cho ta 1 đường đi có độ dài là 2 từ đỉnh 1 đến đỉnh 3 qua 2
đỉnh trung gian.

11
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN

Định nghĩa 1.2.6. Đồ thị vô hướng được gọi là liên thông nếu luôn tìm
được đường đi giữa hai đỉnh bất kỳ của nó.
b

a

d

c

e

a
d

e

g

b


c

f

H

G

Hình 1.9: Đồ thị G là liên thông, còn đồ thị H là không liên thông.

Định nghĩa 1.2.7. Đồ thị có hướng G được gọi là liên thông mạnh nếu
với hai đỉnh phân biệt bất kỳ u và v của G đều có đường đi từ u tới v
và đường đi từ v tới u.

B

A

E

C

D

Hình 1.10: Đồ thị có hướng liên thông mạnh

Định nghĩa 1.2.8. Đồ thị có hướng G được gọi là liên thông yếu nếu
đồ thị vô hướng nền của nó là liên thông.
1.2.2


Đồ thị có trọng số

Định nghĩa 1.2.9. Đồ thị G = (V, E) gọi là đồ thị có trọng số (hay
chiều dài, trọng lượng) nếu mỗi cung e được gán với một số thực w(e).
Ta gọi w(e) là trọng lượng của e.
12
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN
a
5
5

e

b
4

7

5
7
c
d

Hình 1.11: Đồ thị có hướng có trọng số

1.3


Ma trận

Ký hiệu ma trận thường được dùng để đơn giảm hóa các biểu thức
toán học phức tạp. Việc sử dụng ma trận làm cho việc lập và giải các
phương trình trở lên dễ dàng hơn.
Ma trận là một tập các phần tử trong một mảng chữ nhật hay vuông.
Với các ma trận ta có các định nghĩa sau đây:
Phần tử của ma trận - Khi 
ma trận được viết dưới
 dạng:
a11 a12 ... a1n
a

 21 a22 ... a2n 
A=

 ... ... ... ... 
am1 am2 ... amn
aij được định nghĩa như là một phần tử ở hàng thứ i và cột thứ j của
ma trận.
Cấp của ma trận - Cấp của một ma trận chỉ tổng số hàng và cột của
ma trận.Ví dụ, ma trận trên có ba hàng và ba cột được gọi là ma trận
3 × 3. Một ma trận với m hàng và n cột được đặt là m × n.
Ma trận vuông - Một ma trận có số hàng và số cột bằng nhau được gọi
là ma trận vuông.
Ma trận cột - Một ma trận có một cột và nhiều hơn một hàng thì được
gọi là ma trận cột. Ma trận cột còn được gọi là một vectơ cột hay đơn
13
Ngô Thị Hồng Diễm - K35-CN Toán



CHƯƠNG 1. NHẮC LẠI VỀ LÝ THUYẾT VỀ ĐỒ THỊ VÀ MA TRẬN

giản là m-vectơ nếu nó có m hàng và một cột.
Ma trận hàng - Ma trận hàng có một hàng và nhiều hơn một cột và được
cũng được coi là một vectơ hàng.
Ma trận đơn vị - Ma trận đơn vị có tất cả các phần tử trên đường chéo
chính (i = j) bằng 1. Ma trận đơn vị thường
 thị bởi I hay U .
 được biểu
1 0 0


Một ví dụ về ma trận đơn vị như sau I = 0 1 0
0 0 1
Ma trận đối xứng - Ma trận đối xứng là một ma trận vuông thỏa mãn
aij = aji với mọi i và j .
Phép nhân ma trận
Tích AB của ma trận A và ma trận B là ma trận C−(cik ) ∈ M(m×p, K)
với các phần tử được xác định như sau:
cik = nj=1 aij bjk , (1 ≤ i ≤ m, 1 ≤ k ≤ p)


3 1
1 0 2


× 2 1
Ví dụ 1.3.1.

−1 3 1
1 0

=

5 1
(1 × 3 + 0 × 2 + 2 × 1) (1 × 1 + 0 × 1 + 2 × 0)
=
4 2
(−1 × 3 + 3 × 2 + 1 × 1) (−1 × 1 + 3 × 1 + 1 × 0)

14
Ngô Thị Hồng Diễm - K35-CN Toán


Chương 2

Liên hệ giữa đồ thị có hướng và
ma trận
2.1

Biểu diễn đồ thị có hướng bằng ma trận kề

Cho đồ thị G = (V, E) trong đó V = {v1 , v2 , ..., vn}. Ma trận kề biểu
diễn đồ thị G là ma trận có kích thước n × n được xác định như sau:

aij =

1 nếu vi vj là một cung của G
0 nếu vi vj không là một cung của G


Ví dụ 2.1.1. Tìm ma trận kề của đồ thị sau:
2

1

3

4

Hình 2.1: Đồ thị có hướng

Ma trận kề của đồ thị trên sẽ là:

15
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 2. LIÊN HỆ GIỮA ĐỒ THỊ CÓ HƯỚNG VÀ MA TRẬN


0
1

A=
1
0

0
0

0
0

0
1
0
1


0
1


1
0

Nhận xét:
- Nhìn vào ma trận ta biết được 2 đỉnh nào kề nhau.
- Biết được bậc của từng đỉnh nếu là đồ thị đơn.
Các tính chất của ma trận kề:
- Chúng ta có thể nhận thấy rằng, ma trận kề của đồ thị vô hướng
luôn luôn là mà trận đối xứng. Còn ma trận của đồ thị có hướng thì có
thể không có tính chất này.
- Đối với đồ thị có hướng, tổng các phần tử trên dòng i (tương ứng,
trên cột i) sẽ là bán bậc ra (bán bậc vào) của đỉnh vi của đồ thị. Tức là:
Tổng các số trên hàng i = Bán bậc ra của đỉnh vi = deg + (vi)
Tổng các số trên cột i = Bán bậc vào của đỉnh vi = deg − (vi)

2.1.1


Tính liên thông trong đồ thị có hướng

Để kiểm tra tính liên thông yếu trong đồ thị có hướng ta chỉ việc kiểm
tra tính liên thông đồ thị vô hướng nền của nó.
Đồ thị vô hướng được gọi là liên thông nếu luôn tìm được đường đi
giữa hai đỉnh bất kỳ của nó. Như vậy để xét tính liên thông của một đồ
thị vô hướng dựa trên ma trận kề tương ứng của đồ thị đó thì ta tìm số
đường đi của hai đỉnh bất kì. Ta có tính chất của ma trận kề ở trên các
phần tử của ma trận Apij sẽ cho ta số đường đi khác nhau của hai đỉnh
bất kì.
Tức là apij là phần tử của ma trận Apij sẽ cho ta số đường đi khác nhau
từ i đến j qua p − 1 đỉnh trung gian với x ≤ n − 1 (n là số đỉnh).
Với aij = 0 thì đồ thị là liên thông.
Để xét apij ta phải tính A1 , A2 , ..., Ak , ...,An−1 sẽ tồn tại Ax mà axij = 0
16
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 2. LIÊN HỆ GIỮA ĐỒ THỊ CÓ HƯỚNG VÀ MA TRẬN

(x ≤ n − 1).
⇒ Có đường đi từ i đến j hay đồ thị là liên thông.
Ví dụ 2.1.2. Xét tính liên thông của đồ thị K4 dựa vào ma trận kề của
nó.
B

A

D


C

Hình 2.2

Ma trận kề tương ứng là:


Ta có:


1 1 1
1
1 1


A=

1 1
1
1 1 1

3
2
A2 =
2
2

2
3
2

2

2
2
3
2

2
2
2
3

Vì các phần tử của A2 = 0 nên suy ra đồ thị K4 là đồ thị liên thông.
Liên quan tới các đường đi trên đồ thị biểu diễn qua ma trận bài toán
sau đây cũng sử dụng ma trận có hiệu quả.

17
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 2. LIÊN HỆ GIỮA ĐỒ THỊ CÓ HƯỚNG VÀ MA TRẬN

2.1.2

Bài toán đường đi ngắn nhất (Thuật toán Floyd)

Ma trận trọng số của G là một ma trận vuông A = (aij ) cấp n. Trong
đó:

aij =


w(i, j) nếu vivj là một cung của G

nếu vivj không là một cung của G

Quy ước aii = 0, ∀i ∈ V

A
3

1
2

F

B
4

9
5

E

7

C
6

8
D


Hình 2.3

Ví dụ 2.1.3. Ma trận trọng số của đồ
Đỉnh A B
A
0 1
B
∞ 0
A= C
2 4
D
∞ ∞
E
∞ ∞
F
3 ∞

thị
C


0




trên
D



6
0
8


là:
E

5


0


F


7

9
0

Trong một số bài toán ta không quan tâm đến trọng số của đồ thị mà
chỉ quan tâm là có tồn tại một cung u(i, j) trong đồ thị hay không. Đối
với trường hợp này, ta sử dụng giá trị 1 cho a[i, j] để chỉ ra sự tồn tại
của cung a(i, j).
18
Ngô Thị Hồng Diễm - K35-CN Toán



CHƯƠNG 2. LIÊN HỆ GIỮA ĐỒ THỊ CÓ HƯỚNG VÀ MA TRẬN

Bài toán:Cho G = (V, E) là một đồ thị có hướng có trọng số. V =
{1, ..., n} là tập các đỉnh. E là tập các cung. Tìm đường đi ngắn nhất
giữa các cặp đỉnh của đồ thị.
Ý tưởng: Thuật toán Floyd được thiết kế theo phương pháp quy hoạch
động. Nguyên lý tối ưu được vận dụng cho bài toán này là: "Nếu k là
đỉnh nằm trên đường đi ngắn nhất từ i đến j thì đoạn đường từ i đén k
và từ k đến j cũng phải ngắn nhất".
Thuật toán Floyd [5][6]
Thuật giải tìm độ dài đường đi ngắn nhất giữa mọi cặp đỉnh trong đồ
thị có hướng liên thông có trọng số (không bắt buộc ≥ 0).
+Đầu vào. Đồ thị liên thông G = (V, E), V = {1, 2, ..., n}, có trọng số
w(i, j) với mọi cung (i, j).
+Đầu ra. Ma trận D = [d(i, j)], trong đó d(i, j) là chiều dài đường đi
ngắn nhất từ i đến j với mọi cặp (i, j).
+Phương pháp:
1. Bước khởi tạo: Kí hiệu D0 là ma trận xuất phát
D0 =[d0 (i, j)]
trong đó d0 (i, j) = w(i, j) nếu tồn tại cung (i, j) và d0 (i, j) = ∞
nếu không tồn tại cung (i, j) (đặc biệt nếu không có khuyên tại i thì
d0 (i, i) = ∞).
Gán k := 0.
2. Kiểm tra kết thúc: Nếu k = n, kết thúc. D = Dn là ma trận độ dài
đường đi ngắn nhất. Ngược lại tăng k lên 1 đơn vị (k := k + 1) và
sang (3).
3. Tính ma trận Dk theo Dk−1 :
Với mọi cặp (i, j), i = 1..n, j = 1..n thực hiện:
Nếu dk−1 (i, j) > dk−1 (i, k) + dk−1(k, j) thì đặt

dk (i, j) := dk−1(i, k) + dk−1(k, j)
ngược lại đặt
19
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 2. LIÊN HỆ GIỮA ĐỒ THỊ CÓ HƯỚNG VÀ MA TRẬN

dk (i, j) := dk−1(i, j)
Quay lại bước (2).
Chứng minh. Ta chứng minh thuật toán bằng qui nạp theo k , mệnh
đề sau:
dk (i, j) là chiều dài đường đi ngắn nhất trong những đường nối đỉnh
i đến j qua các đỉnh trung gian {1, 2, ..., k}.
-Bước cơ sở: Hiển nhiên mệnh đề đúng với k = 0.
-Bước qui nạp: Giả sử mệnh đề đúng với k − 1. Xét dk (i, j).
Sẽ xảy ra một trong hai trường hợp sau:
(a) Trong các đường nối đỉnh i với j qua các đỉnh trung gian {1, 2, ..., k−
1, k} có chiều dài ngắn nhất tồn tại một đường p không qua đỉnh
k . Khi đó p cũng là đường ngắn nhất nối đỉnh i với j qua các
đỉnh trung gian {1, 2, ..., k − 1}, nên theo giả thiết qui nạp
dk−1(i, j) = d(p) ≤ dk−1(i, k) + dk−1(k, j)
Do đó theo cách tính dk ta có dk (i, j) = dk−1 (i, j) = d(p) là
độ dài đường đi ngắn nhất từ i đến j qua các đỉnh trung gian
{1, 2, ..., k − 1, k}.
(b) Mọi đường nối đỉnh i với j qua các đỉnh trung gian {1, 2, ..., k −
1, k} có chiều dài ngắn nhất đều qua đỉnh k . Gọi p = (i, ..., k, ..., j)
là một đường ngắn nhất nối đỉnh i với j qua các đỉnh trung gian
{1, 2, ..., k − 1, k}. Khi đó đoạn (i, ...k) và (k, ..., j) cũng phải là
các đường đi ngắn nhất qua các đỉnh trung gian {1, 2, ..., k − 1}.

Ta có
dk−1(i, k) + dk−1(k, j) = d(p) < dk−1(i, j)
(Bất đẳng thức cuối cùng suy ra từ giả thiết mọi đường đi nối
đỉnh i với j qua các đỉnh trung gian {1, 2, ..., k − 1, k} có chiều
dài ngắn nhất đều qua đỉnh k ).
Do đó theo cách tính dk ta có: dk (i, j) = dk−1 (i, k)+dk−1(k, j) =
d(p)
20
Ngô Thị Hồng Diễm - K35-CN Toán


CHƯƠNG 2. LIÊN HỆ GIỮA ĐỒ THỊ CÓ HƯỚNG VÀ MA TRẬN

là độ dài đường đi ngắn nhất từ i đến j qua
các đỉnh trung gian {1, 2, ..., k − 1, k}.

Hệ quả 2.1.4.

• Nếu ma trận kết quả của thuật toán Floyd có phần tử hữu hạn trên
đường chéo i = i thì đồ thị chứa chu trình.
• Nếu ma trận kết quả chứa phần tử ∞ ngoài đường chéo i = j thì đồ
thị không liên thông mạnh.
Ví dụ 2.1.5. Xét đồ thị sau:
Áp dụng thuật toán Floyd ta có:
1

2

7


2

4

2
4

1
1

5

3

4

Hình 2.4

2

3

6

Ma trận khoảng cách xuất phát D0 là (các ô trống là ∞):
Đỉnh 1 2 3 4 5 6
1
7
2
2

4
1
D0 = 3
3
4
4
5
2
2
6
1
Từ ma trận D0 , theo thuật toán, ta xây dựng các ma trận tiếp theo
như sau (các ô gạch dưới có giá trị thay đổi).
21
Ngô Thị Hồng Diễm - K35-CN Toán


×