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

Một số bài toán đồ thị và ứng dụng

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 (1.26 MB, 80 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN
----------

LÊ THỊ NGA

MỘT SỐ BÀI TỐN ĐỒ THỊ VÀ ỨNG DỤNG

KHĨA LUẬN TỐT NGHIỆP


LỜI CẢM ƠN
Cầu thủ xuất sắc nhất của xứ sở hoa Tulip, Hà Lan – Johan Cruyiff đã từng nói:
“Sự may mắn khơng tự nó đến, cần phải tìm kiếm nó, và có lúc đổ cả mồ hơi và nước
mắt”. Đối với em, câu nói trên hồn tồn chính xác vì những thành quả mà mỗi chúng
ta đạt được trước hết phải xuất phát từ nỗ lực của bản thân mình. Tuy nhiên, nếu
khơng nhờ sự giúp đỡ của những người xung quanh thì chúng ta sẽ khơng đạt được
mục tiêu như mong đợi.
Chính vì thế ngày hơm nay, khi hoàn tất xong bài luận văn này, em xin dành trang
đầu tiên của bài luận văn để bày tỏ lòng biết ơn đến tất cả các thầy cô giáo đã hết lòng
dạy dỗ, truyền đạt cho em những kiến thức và kinh nghiệm quý báu trong suốt 4 năm
học vừa qua, những người bạn đã luôn bên em giúp đỡ, động viên em cố gắng.
Với tấm lòng biết ơn sâu sắc, em xin chân thành cảm ơn thầy giáo PGS.TSKH Trần
Quốc Chiến, người thầy đã trực tiếp, tận tình giảng dạy và hướng dẫn em hoàn thành
bài luận văn này. Thầy đã giúp đỡ em rất nhiều trong việc hướng dẫn nội dung, cách
trình bày cũng như giới thiệu tài liệu tham khảo.
Và đặt biệt, con xin cảm ơn ba mẹ, gia đình đã ni dạy con nên người, và luôn là
chỗ dựa tinh thần vững chắc, giúp cho chúng con vượt qua mọi khó khăn, thử thách
trong cuộc sống.
Để đáp lại tấm chân tình của thầy cơ, gia đình, bạn bè em xin hứa sẽ cố gắng vận


dụng những kiến thức mà mình đã học một cách hiệu quả nhất để đem lại lợi ích cho
mình và cho xã hội.
Đà Nẵng, tháng 5 năm 2012
Sinh viên: Lê Thị Nga


Ý KIẾN ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Đà Nẵng, ngày

tháng

năm 2012

Giáo viên hướng dẫn

PGS.TSKH Trần Quốc Chiến



MỤC LỤC
MỞ ĐẦU .................................................................................................................. ….1
I. LÝ DO CHỌN ĐỀ TÀI ................................................................................... .1
II. MỤC TIÊU, NHIỆM VỤ ............................................................................... 1
III. PHƯƠNG PHÁP NGHIÊN CỨU ................................................................ 1
Chương 1: MỘT SỐ VẤN ĐỀ CƠ BẢN CỦA ĐỒ THỊ ...................................... 2
I. CÁC ĐỊNH NGHĨA ĐỒ THỊ .......................................................................... 2
1. Định nghĩa đồ thị .......................................................................................... 2
2. Đồ thị vơ hướng ............................................................................................ 2
3. Đồ thị có hướng ............................................................................................. 2
II. MỘT SỐ MƠ HÌNH ĐỒ THỊ ........................................................................ 3
1. Đồ thị “lấn tổ” trong sinh thái học .............................................................. 3
2. Đồ thị ảnh hưởng. ......................................................................................... 3
3. Thi đấu vòng tròn ......................................................................................... 3
4. Đồ thị có ưu tiên trước sau .......................................................................... 4
III. CÁC KHÁI NIỆM CƠ BẢN ........................................................................ 4
1. Bậc đồ thị ....................................................................................................... 4
a. Bậc đồ thị vô hướng ................................................................................. 4
b. Bậc đồ thị có hướng .................................................................................. 5
2. Đường đi, chu trình, đồ thị liên thông ........................................................ 6
3. Một số dạng đồ thị đặt biệt .......................................................................... 7
a. Khái niệm .................................................................................................. 7
b. Một vài ứng dụng của đồ thị đặc biệt ..................................................... 9
IV. BIỂU DIỄN ĐỒ THỊ VÀ SỰ ĐẲNG CẤU ............................................... 11
1. Biểu diễn đồ thị ........................................................................................... 11
a. Ma trận kề ............................................................................................... 11
b. Ma trận liên thuộc .................................................................................. 12
2. Đồ thị đẳng cấu ......................................................................................... 114
Chương 2: CÁC BÀI TOÁN VỀ ĐƯỜNG ĐI..................................................... 15

I. ĐỒ THỊ EULER ............................................................................................. 15
1. Định nghĩa ................................................................................................... 15
2. Điều kiện cần và đủ .................................................................................... 16
3. Các thuật toán tìm chu trình Euler .......................................................... 16
II. ĐỒ THỊ HAMINTON .................................................................................. 18
1. Định nghĩa ................................................................................................... 18
2. Điều kiện cần và đủ .................................................................................... 19
a. Điều kiện cần ........................................................................................... 19
b. Điều kiện đủ ............................................................................................ 19
3. Một số bài toán ứng dụng .......................................................................... 19
a. Bài tốn thi đấu bóng bàn ...................................................................... 19
b. Bài tốn mã đi tuần ................................................................................ 20
c. Bài toán sắp xếp chỗ ngồi ....................................................................... 20
III. TÌM ĐƯỜNG ĐI TRONG MÊ CUNG ..................................................... 22
1. Phát biểu bài tốn ....................................................................................... 22
2. Thuật tốn tìm đường đi trong mê cung .................................................. 22
3. Một số bài toán ứng dụng .......................................................................... 22


a. Bài tốn sói, dê và cải ............................................................................. 22
b. Bài tốn 3 ơng chồng ghen ..................................................................... 23
c. Bài tốn 3 thầy tu và 3 con quỷ .............................................................. 23
IV. TÌM ĐƯỜNG ĐI NGẮN NHẤT ................................................................ 23
1. Phát biểu bài toán ....................................................................................... 23
2. Nội dung các thuật toán ............................................................................. 24
3. Các ứng dụng .............................................................................................. 39
a. Ứng dụng trong truyền tin ..................................................................... 39
b. Ứng dụng trong việc lập lịch thi công của một cơng trình ................. 41
4. Bài tốn người du lịch ................................................................................ 44
a. Giới thiệu bài toán .................................................................................. 44

b. Phương pháp nhánh cận ........................................................................ 44
e. Mệnh đề .................................................................................................... 45
f. Phân nhánh .............................................................................................. 45
g. Tính cận ................................................................................................... 46
h. Thủ tục ngăn chặn hành trình con........................................................ 46
k. Tính chất tối ưu ...................................................................................... 46
Chương 3: CÂY...................................................................................................... 49
I. CÁC KHÁI NIỆM VÀ TÍNH CHẤT CƠ BẢN ........................................... 48
1. Định nghĩa ................................................................................................... 49
2. Định lý tương đương .................................................................................. 50
3. Cây m-phân ................................................................................................. 50
4. Các ứng dụng .............................................................................................. 50
a. Mã tiền tố ................................................................................................. 50
b. Cây biểu thức .......................................................................................... 52
c. Cây quyết định ........................................................................................ 53
d. Cây nhị phân tìm kiếm ........................................................................... 53
II. CÂY PHỦ....................................................................................................... 56
1. Định nghĩa và các tính chất ....................................................................... 56
2. Các thuật tốn tìm cây phủ ....................................................................... 56
a. Tìm theo chiều ngang ............................................................................. 56
b. Tìm theo chiều sâu ................................................................................. 56
3. Cây bao trùm bé nhất ................................................................................ 57
a. Bài toán thực tế ....................................................................................... 57
b. Quy về đồ thị ........................................................................................... 57
4. Ứng dụng ..................................................................................................... 58
a. Bài toán kết nối hệ thống mạng ............................................................. 58
b. Bài toán cây phủ lớn nhất ...................................................................... 58
c. Bài tốn tìm mạng điện với độ tin cậy lớn nhất ................................... 58
d. Bài toán Steiner trên đồ thị.................................................................... 59
Chương 4: BÀI TOÁN LUỒNG CỰC ĐẠI TRONG MẠNG ........................... 60

I. MẠNG, LUỒNG TRONG MẠNG, BÀI TOÁN LUỒNG CỰC ĐẠI ........ 60
1. Định nghĩa ................................................................................................... 60
2. Bài tốn luồng cực đại trong mạng ........................................................... 60
II. THUẬT TỐN TÌM LUỒNG CỰC ĐẠI FORD-FULKERSON ............ 61
III. LUỒNG CỰC ĐẠI VÀ LÁT CẮT CỰC TIỂU ........................................ 62
IV. MỘT SỐ BÀI TOÁN ỨNG DỤNG ............................................................ 62


1. Mạng với nhiều điểm phát và điểm thu ....................................................... 62
2. Bài tốn với khả năng thơng qua các cung và các đỉnh .............................. 62
3. Bài toán ghép cặp ........................................................................................... 63
Chương 5: SỐ ỔN ĐỊNH VÀ TÔ MÀU ĐỒ THỊ ............................................... 64
I. SỐ ỔN ĐỊNH TRONG, SỐ ỔN ĐỊNH NGOÀI, NHÂN ĐỒ THỊ ............. 64
1. Số ổn định trong ......................................................................................... 64
2. Số ổn định ngoài ......................................................................................... 64
3. Nhân đồ thị .................................................................................................. 64
4. Các thuật tốn tìm các tập ổn định ........................................................... 65
5. Ứng dụng trong lập cờ Ca rô ..................................................................... 65
II. TƠ MÀU ĐỒ THỊ ......................................................................................... 68
1. Tơ màu bản đồ ........................................................................................... 68
2. Tô màu đồ thị .............................................................................................. 68
3. Các mệnh đề ................................................................................................ 68
4. Thuật toán tham lam (greedy algorithm) ................................................ 70
5. Những ứng dụng của bài tốn tơ màu đồ thị ........................................... 70
a. Bài toán điều khiển đèn hiệu nút giao thơng ........................................ 70
b. Bài tốn lập lịch ..................................................................................... 70
c. Phân chia tần số ..................................................................................... 72
d. Các thanh ghi chỉ số ............................................................................... 72
KẾT LUẬN ................................................................................................................ 73
TÀI LIỆU THAM KHẢO......................................................................................... 74



MỞ ĐẦU
Lý thuyết đồ thị là lĩnh vực nghiên cứu đã tồn tại từ những năm đầu của thế kỷ 18
nhưng lại có những ứng dụng hiện đại. Những ý tưởng cơ bản của Lý thuyết đồ thị
được nhà toán học người Thụy Sĩ Leonhard Euler đề xuất và chính ông là người đã
dùng đồ thị để giải quyết bài toán cầu Konigsberg nổi tiếng.
Đồ thị được sử dụng để giải quyết nhiều bài toán thuộc các lĩnh vực khác nhau.
Chẳng hạn, ta có thể dùng đồ thị để biểu diễn những mạch vòng của một mạch điện,
dùng đồ thị biểu diễn q trình tương tác giữa các lồi trong thế giới động thực vật,
dùng đồ thị biểu diễn những đồng phân của các hợp chất polyme hoặc biểu diễn mối
liên hệ giữa các loại thơng tin khác nhau. Có thể nói, Lý thuyết đồ thị được ứng dụng
rộng rãi trong tất cả các lĩnh vực khác nhau của thực tế cũng như những lĩnh vực trừu
tượng của lý thuyết tính tốn.
Đề tài “Một số bài tốn đồ thị và ứng dụng”, là đề tài nghiên cứu lý thuyết giải
quyết nhiệm vụ làm sáng tỏ hơn cơ sở toán cho Tin học đồng thời nêu ra những khả
năng ứng dụng của đồ thị theo từng nội dung Lý thuyết của đồ thị.
I. LÝ DO CHỌN ĐỀ TÀI
Lý thuyết đồ thị đóng vai trị làm cơ sở tốn cho Tin học vì đồ thị là một bộ phận
của Tốn rời rạc, bản chất và cấu trúc của đồ thị mang tính rời rạc mà cơng cụ chính
trong Tin học là máy tính, các q trình xử lý, lưu trữ thơng tin trong máy tính cũng
mang tính rời rạc, nên điều này tương hợp gắn chặt lý thuyết đồ thị với công nghệ máy
tính trong việc nghiên cứu các đối tượng có tính chất rời rạc.
“Một số bài tốn đồ thị và ứng dụng” là đề tài có tầm quan trọng và mang nghĩa
thiết thực cao. Lý thuyết đồ thị có nhiều ứng dụng trong các nghành kĩ thuật và đã
được nghiên cứu nhiều với khối lượng kiến thức khá đồ sộ. Đề tài được thực hiện
trước tiên sẽ đề cập tới những vấn đề chủ yếu của lý thuyết đồ thị, sau đó tùy từng nội
dung sẽ xoay quanh những ứng dụng của đồ thị, giải quyết các bài toán trong Tin học
như xác định xem hai máy tính trong mạng có thể truyền tin được hay khơng nhờ mơ
hình đồ thị của mạng máy tính, hay là bài tốn nối mạng máy tính sao cho tổng chi phí

là nhỏ nhất hoặc việc khắc phục những gói tin bị truyền sai nhờ các giải thuật đã
nghiên cứu về đồ thị. Có những ứng dụng của đồ thị không đi trực tiếp vào các lĩnh
vực trong Tin học, ví dụ như bài tốn lập lịch trong cơng tác hành chính, xác định
đường đi ngắn nhất giữa hai điểm nút giao thông, ta cũng xem đó là ứng dụng một
cách gián tiếp trong Tin học vì nếu được mơ hình tốt những bài tốn đó bằng đồ thị thì
sẽ giải quyết chúng dễ dàng bằng máy tính, hoặc là về chơi chơi cờ Ca rơ tuy chỉ là
mơn chơi về trí tuệ nhưng đồ thị cũng hỗ trợ tốt cho những ai muốn lập trình chơi cờ
Ca rơ trên máy tính khi đã mơ hình được các thế cờ bằng đồ thị.
II. MỤC TIÊU, NHIỆM VỤ
Đề tài được thực hiện nhằm làm sáng tỏ hơn cơ sở toán cho Tin học đồng thời nêu
ra những khả năng ứng dụng của đồ thị theo từng nội dung của Lý thuyết đồ thị.
III. PHƯƠNG PHÁP NGHIÊN CỨU
+ Tìm hiểu thơng tin trên mạng internet, sách, báo.
+ Thông qua sự hướng dẫn của thầy cô và các kiến thức đã học.

-1-


Chương 1: MỘT SỐ VẤN ĐỀ CƠ BẢN CỦA ĐỒ THỊ
I. CÁC ĐỊNH NGHĨA ĐỒ THỊ
1. Định nghĩa đồ thị
Đồ thị là một cấu trúc rời rạc bao gồm các đỉnh và các cạnh nối các đỉnh đó. Người
ta phân loại đồ thị tùy theo đặc tính và số các cạnh nối các cặp đỉnh của đồ thị.
Đồ thị được mơ tả hình thức: G = (V, E). Trong đó V là tập các đỉnh, E là tập các
cạnh. Có thể xem E là tập các cặp {v, w}, với v, w là hai đỉnh thuộc V.
Ví dụ. Giả sử ta có một mạng gồm các máy tính và các kênh điện thoại nối các máy
tính này. Chúng ta có thể biểu diễn các vị trí đặt máy tính bởi các điểm và các kênh
điện thoại nối chúng bởi các đoạn nối như hình 1.1 dưới đây.
Hà Tây


Thanh Hóa

Đồng Nai

An Giang

Hồ Chí Minh
Hà Nội
Nam Định

Long An
Huế

Khánh Hịa

Hình 1.1: Mạng máy tính
2. Đồ thị vơ hướng
Đồ thị vơ hướng G = (V, E) gồm một tập V các đỉnh và tập E các cạnh. Mỗi cạnh e
 E được liên kết với một cặp đỉnh {v, w} (không kể thứ tự) như hình sau:
e

v

w

Hình 1.1 là một ví dụ về đồ thị vơ hướng.
3. Đồ thị có hướng
Đồ thị có hướng G = (V, E) gồm một tập các đỉnh V và tập E các cạnh có hướng
gọi là cung. Mỗi cung e  E được liên kết với một cặp đỉnh {v, w} (có thứ tự) như
hình sau:

e

v

w

Hình 1.2 là một ví dụ về đồ thị có hướng.
Hà Tây

Hà Nội

Thanh Hóa

Đồng Nai

An Giang

Hồ Chí Minh
Long An

Nam Định

Huế
Khánh Hịa

Hình 1.2: Mạng truyền thơng có các đường điện thoại một chiều
-2-


II. MỘT SỐ MƠ HÌNH ĐỒ THỊ

1. Đồ thị “lấn tổ” trong sinh thái học
Đồ thị được dùng trong nhiều mơ hình có tính đến sự tương tác của các loài vật.
Chẳng hạn sự cạnh tranh của các loài trong một hệ sinh thái có thể mơ hình hóa bằng
đồ thị “lấn tổ”. Mỗi loài được biểu diễn bằng một đỉnh. Một cạnh vơ hướng nối hai
đỉnh nếu hai lồi được biểu diễn bằng các đỉnh này là cạnh tranh với nhau.
Gấu trúc

Cắt



Đây là mơ hình của hệ sinh thái rừng. Từ đồ
thị này chúng ta thấy sóc và gấu trúc là cạnh
tranh với nhau còn quạ và chuột trù thì khơng.

Sóc
Thú có túi
Quạ
Chuột trù
Chuột

Chim gõ kiến

Hình 1.3: Đồ thị lấn tổ
2. Đồ thị ảnh hưởng. Khi nghiên cứu tính cách của một nhóm người, ta thấy một số
người có thể có ảnh hưởng lên suy nghĩ của những người khác. Đồ thị có hướng được
gọi là đồ thị ảnh hưởng có thể dùng để mơ hình bài tốn này. Mỗi người của nhóm
được biểu diễn bằng một đỉnh. Khi một người được biểu diễn bằng đỉnh a có ảnh
hưởng lên người được biểu diễn bằng đỉnh b thì có một cung nối từ đỉnh a đến đỉnh b.
Linda


Deborah

Brian

Fred

Đây là đồ thị ảnh hưởng của các thành viên
của một nhóm. Deborah có ảnh hưởng lên Brian,
Fred và Linda nhưng khơng ai có ảnh hưởng lên
Deborah. Cịn Yrone và Brian có thể ảnh hưởng
lẫn nhau.
Yrone

Hình 1.4: Đồ thị ảnh hưởng
3. Thi đấu vòng tròn. Một cuộc thi đấu thể thao trong đó mỗi đội đấu với mỗi đội
khác đúng một lần gọi là đấu vòng tròn. Cuộc thi đấu như thế có thể được mơ hình
bằng một đồ thị có hướng trong đó mỗi đội là một đỉnh. Một cung đi từ đỉnh a đến
đỉnh b nếu đội a thắng đội b.
Đội 1

Đội 2

Trong cuộc thi đấu này đội 1 không thua
trận nào cịn đội 3 khơng thắng trận nào.
Đội 6

Đội 3

Đội 5


Đội 4

Hình 1.5: Mơ hình đồ thị thi đấu vòng tròn

-3-


4. Đồ thị có ưu tiên trước sau
Các chương trình máy tính có thể thi hành nhanh hơn bằng cách thi hành đồng
thời một số câu lệnh nào đó. Điều quan trọng là khơng được thực hiện một câu lệnh
địi hỏi kết quả của câu lệnh khác chưa được thực hiện. Sự phụ thuộc của các câu lệnh
vào các câu lệnh trước có thể biểu diễn bằng một đồ thị có hướng. Mỗi câu lệnh được
biểu diễn bằng một đỉnh và có một cung từ một đỉnh tới một đỉnh khác nếu câu lệnh
được biểu diễn bằng đỉnh thứ hai không thể thực hiện được trước khi câu lệnh được
biểu diễn bằng đỉnh thứ nhất được thực hiện.
S6

S1 a := 0

S5

S2 b := 1

Dựa vào đồ thị câu lệnh S5 không thể thực hiện
trước khi các câu lệnh S1, S2, S4 thực hiện.

S3 c := a+1
S3
S4 d := b+a


S4

S5 e := d+1
S6 e := c+d

S1

S2

Hình 1.6: Đồ thị có ưu tiên trước sau
III. CÁC KHÁI NIỆM CƠ BẢN
1. Bậc đồ thị
a. Bậc đồ thị vô hướng
Bậc của một đỉnh trong đồ thị vô hướng là số các cạnh liên thuộc với nó, riêng
khun tại một đỉnh được tính hai lần cho bậc của nó. Người ta kí hiệu bậc của đỉnh v
là deg(v).
Ví dụ. Bậc của đỉnh trong đồ thị sau là bao nhiêu ?
B

C
D

A

E

H

F


G

Hình 1.7: Đồ thị vơ hướng G
Trong đồ thị G deg(A) = 2, deg(B) = 4, deg(C) = 6, deg(D) = 1, deg(E) = 3, deg(F) =
4 và deg(H) = 0.
 Nếu deg(v) = 0 thì đỉnh v là đỉnh cô lập
 Nếu deg(v) = 1 thì đỉnh v là đỉnh treo
Định lí 1. Cho G = (V, E) là một đồ thị vô hướng. Khi đó 2.|E| =  deg(v) . Trong đó
vV

|E| là ký hiệu số phần tử của tập E.
Ví dụ. Có bao nhiêu cạnh trong đồ thị có 12 đỉnh, mỗi đỉnh có bậc bằng 5?
Tổng các bậc của đồ thị là 12.5 = 60, suy ra 2|E| = 60. Do vậy |E| = 30.
Chứng minh. Mỗi cạnh e = (v, w)  E tham gia tính 1 bậc của đỉnh v và 1 bậc của đỉnh
w. Từ đó suy ra 2.|E| =  deg(v) .
vV

-4-


Định lí 2. Một đồ thị vơ hướng có một số chẵn các đỉnh bậc lẻ.
Chứng minh.
Cho đồ thị G = (V, E). V1 là đỉnh bậc lẻ, V2 là tập số đỉnh bậc chẵn. Theo định lí 1 ta
có: 2.|E| =  deg(v) =  deg(v) +  deg(v)
vV2

vV1

vV




 deg(v) = 2.|E| -  deg(v)
vV2

vV1

Vì deg(v) là chẵn với v  V2 nên

 deg(v)

là số chẵn, 2.|E| cũng là số chẵn do đó vế

vV2

trái phải là số chẵn. Vì deg(v) là lẻ với v  V1 do đó để

 deg(v)

là số chẵn thì số

vV1

các số hạng này phải là số chẵn. Hay số các đỉnh bậc lẻ là một số chẵn.
b. Bậc đồ thị có hướng
Nếu e = (v, w) là cung của đồ thị có hướng G thì ta nói hai đỉnh v và w là kề nhau,
và nói cung (v, w) nối đỉnh v với đỉnh w hoặc cũng nói cung này là đi ra khỏi đỉnh v
và vào đỉnh w. Đỉnh v sẽ được gọi là đỉnh đầu của cung (v, w). Đỉnh w sẽ được goi là
đỉnh cuối của cung(v, w).

Trong đồ thị có hướng bậc - vào của đỉnh v kí hiệu là (deg-(v) là số các cạnh có
đỉnh cuối là v. Bậc + ra của đỉnh v, kí hiệu là deg+(v) là số các cạnh có đỉnh đầu là v
(1 khuyên tại 1 đỉnh sẽ góp thêm 1 đơn bị vào bậc – vào và một đơn vị vào bậc + ra
của đỉnh này).
Ví dụ. Tìm bậc vào và bậc ra của mỗi đỉnh trong đồ thị có hướng G trong hình sau:
A

C

B

F
D

E

Hình 1.8: Đồ thị có hướng G
Bậc vào là: deg-(A) = 2, deg-(B) = 2, deg-(C) = 1, deg-(D) = 2, deg-(E) = 3, deg-(F) = 0.
Bậc ra là: deg+(A) = 4, deg+(B) = 1, deg+(C) = 2, deg+(D) = 2, deg+(E) = 3, deg+(F)= 0.
Định lí 3. Gọi G = (V, E) là một đồ thị có hướng. Khi đó  deg (v) =  deg (v) = |E|
vV

vV

trong đó |E| là ký hiệu số phần tử của tập E.
Chứng minh.
Mỗi cung e = (v, w)  E tham gia tính 1 bậc ra của đỉnh v và 1 bậc vào của đỉnh w.
Từu đó suy ra  deg (v) =  deg (v) = |E|
vV


vV

-5-


2. Đường đi, chu trình, đồ thị liên thơng
Đường đi. Đường đi p từ đỉnh v đến đỉnh w là dãy các cạnh nối tiếp nhau bắt đầu từ
đỉnh v và kết thúc tại đỉnh w. Số cạnh trên đường đi p được gọi là độ dài của đường đi
p.
Đường đi sơ cấp. Là đường đi không đi qua mỗi đỉnh q một lần.
Chu trình. Là đường đi có đỉnh đầu và đỉnh cuối trùng nhau và không đi qua mỗi
cạnh quá một lần.
Chu trình sơ cấp. Là chu trình khơng đi qua mỗi đỉnh q một lần.
Đường đi có hướng. Đường đi có hướng trong đồ thị có hướng là dãy các cung nối
tiếp nhau (e1,e2,…,en) thỏa mãn đỉnh cuối của cung ei là đỉnh đầu của cung ei+1, i = 1,..,
n-1.
Đường đi có hướng sơ cấp. Là đường đi có hướng khơng đi qua mỗi đỉnh q một
lần.
Chu trình có hướng. Là đường đi có hướng có đỉnh đầu và đỉnh cuối trùng nhau.
Chu trình có hướng sơ cấp. Là chu trình có hướng khơng đi qua mỗi đỉnh quá 1 lần.
Đồ thị liên thông. Là đồ thị mà mọi cặp đỉnh của nó đều có đường đi nối chúng với
nhau.
Đồ thị liên thông mạnh. Là đồ thị có hướng nếu mọi cặp đỉnh (v, w) bao giờ cũng tồn
tại đường đi có hướng từ v đến w và từ w đến v.
Đồ thị bán liên thông. Là đồ thị có hướng nếu mọi cặp đỉnh (v, w) bao giờ cũng tồn
tại đường đi có hướng từ v đến w hoặc từ w đến v.
Đồ thị liên thông yếu. Là đồ thị có hướng có đồ thị lót của nó liên thơng.
Đồ thị có trọng số. Là đồ thị được biểu diễn bởi G = (V, E, w) với w(e) là trọng số
của cạnh e. Trong đồ thị có trọng số độ dài đường đi p là tổng các trọng số trên các
cạnh của đường đi đó.

Đồ thị con. Cho đồ thị G = (V, E). Đồ thị G’ = (V’, E’) gọi là đồ thị con của G nếu nó
thỏa mãn 2 điều kiện sau:
i. V’ V và E’  E
ii. e = (v, w)  E : e  E’  v, w  V
Thành phần liên thông. Thành phần liên thông của đồ thị G là đồ thị con liên thơng
tối đại của G.
Định lí. Cho đồ thị G = (V, E) với n đỉnh và k thành phần liên thơng. Khi đó số cạnh
m của đồ thị thỏa bất đẳng thức:
(n  k )(n  k  1)
n-k≤ m≤
2
(n  1)(n  2)
Hệ quả. Mọi đơn đồ thị n đỉnh với số cạnh lớn hơn
là liên thông.
2
Tập hợp tách. Tập hợp tách của đồ thị liên thông G là tập hợp các cạnh của nó mà
khi loại bỏ chúng thì G trở thành đồ thị khơng liên thơng.
Cầu. Là tập hợp tách chỉ có duy nhất một cạnh.

-6-


3. Một số dạng đồ thị đặt biệt
a. Khái niệm
Đồ thị đầy đủ. Đồ thị đầy đủ n đỉnh, ký hiệu bởi Kn, là đơn đồ thị vô hướng mà giữa
hai đỉnh bất kỳ của nó ln có cạnh nối. Các đồ thị Kn với n = 1,6 được biểu diễn trên
hình 12.

K1


K2

K3

K5

K4

K6

Hình 1.9: Các đồ thị Kn với n = 1, 2, 3, 4, 5, 6
Đồ thị vòng. Đồ thị vòng Cn, n ≥ 3 là một đồ thị có n đỉnh v1, v2, .., vn và các cạnh {v1,
v2}, { v2, v3},… {vn-1,vn}, {vn, v1}. Đồ thị vòng C3, C4, C5, C6, biểu diễn trên hình 1.10.

C3

C5

C4

C6

Hình 1.10: Các đồ thị vịng C3, C4, C5, C6
Đồ thị hình bánh xe. Khi thêm một đỉnh vào chu trình Cn với n ≥ 3 và nối đỉnh này
với mỗi một trong n đỉnh của Cn bằng những cạnh mới, ta sẽ nhận được một đồ thị
bánh xe W3, W4, W5, W6 biểu diễn trên hình 1.11.

W3

W5


W4

W6

Hình 1.11: Các Bánh xe W3, W4 W5 W6
Đồ thị lập phương. Đồ thị lập phương n đỉnh Qn là đồ thị với các đỉnh biểu diễn 2n
xâu nhị phân độ dài n. Hai đỉnh của nó gọi là kề nhau nếu như hai xâu nhị phân tương
ứng chỉ khác nhau 1 bit. Hình 1.12 cho thấy Qn với n = 1, 2, 3.
110
10

11

100

111
101

010
0

011

1
01

00
Q1


Q2

000

001
Q3

Hình 1.12: Đồ thị lập phương Q1, Q2, Q3
Đồ thị 2 phía. Đơn đồ thị G = (V, E) được gọi là hai phía nếu như tập đỉnh V của nó
có thể phân hoạch thành hai tập X và Y sao cho mỗi cạnh của đồ thị chỉ nối một đỉnh
nào đó trong X với một đỉnh nào đó trong Y. Khi đó ta sẽ sử dụng ký hiệu G = (XY,
E) để chỉ đồ thị hai phía với tập đỉnh X  Y.
Đơn đồ thị là đồ thị 2 phía khi và chỉ khi nó khơng chứa chu trình độ dài lẻ.
-7-


K4, 3

K2, 3

K3, 3

Hình 1.13: Đồ thị hai phía
Đồ thị hình học phẳng. Đồ thị được gọi là đồ thị hình học phẳng nếu ta có thể vẽ nó
trên mặt phẳng sao cho các cạnh của nó khơng cắt nhau.
Đồ thị phẳng. Một đồ thị gọi là phẳng nếu nó đẳng cấu với đồ thị hình học phẳng.

Hình 1.14: Đồ thị K4 là đồ thị phẳng
Đinh lí Kuratovski: Đồ thị là phẳng khi và chỉ khi nó khơng chứa đồ thị con đẳng cấu
với K3, 3 hoặc K5.

Trong trường hợp riêng, đồ thị K3,3 hoặc K5 không phải là đồ thị phẳng. Bài tốn về
tính phẳng của đồ thị K3,3 là bài toán đố nổi tiếng về ba căn hộ và ba hệ thống cung cấp
năng lượng cho chúng: Cần xây dựng hệ thống đường cung cấp năng lượng với mỗi
một căn hộ nói trên sao cho chúng khơng cắt nhau.
Biểu diễn phẳng của đồ thị sẽ chia mặt phẳng ra thành các miền, trong đó có thể có
cả miền khơng bị chặng. Ví dụ, biểu diễn phẳng của đồ thị cho trong hình 1.15 chia
mặt phẳng ra thành 6 miền R1, R2,…, R6.
R4
R2

R3

R6

R1
R5

Hình 1.15: Các miền tương ứng với biểu diễn phẳng của đồ thị
Công thức Euler. Giả sử G là đồ thị phẳng liên thông với n đỉnh, m cạnh. Gọi r là số
miền của mặt phẳng bị chia bởi biểu diễn phẳng của G. Khi đó r = m - n + 2.
Ví dụ. Cho G là đồ thị phẳng liên thông với 20 đỉnh, mỗi đỉnh đều có bậc là 3. Hỏi mặt
phẳng bị chia làm bao nhiêu phần bởi biểu diễn phẳng của đồ thị G ?
Giải:
Do mỗi đỉnh của đồ thị đều có bậc là 3, nên tổng bậc của các đỉnh là 3  20 = 60.
Từ đó suy ra số cạnh của đồ thị m = 60 / 2 = 30. Vì vậy, theo cơng thức Euler, số miền
cần tìm là r = 30 – 20 + 2=12.

-8-



b. Một vài ứng dụng của đồ thị đặc biệt
Các mạng cục bộ Lan. Các máy tính đặt trong một tịa nhà, như các máy tính loại
vừa và các máy tính cá nhân cùng với thiết bị ngoại vi như máy in, máy vẽ được nối
với nhau bằng mạng cục bộ. Một số mạng cục bộ dùng cấu trúc hình sao, trong đó tất
cả các thiết bị được nối với thiết bị điều khiển trung tâm. Mạng cục bộ có thể biểu diển
bằng một đồ thị phân đôi đầy đủ K1.n như hình 1.16.a. Các thơng báo gửi từ thiết bị
này đến thiết bị khác điều phải qua thiết bị điều khiển trung tâm.
Mạng cục bộ cũng có thể cấu trúc hình vịng trịn, trong đó mỗi thiết bị nối đúng
với hai thiết bị khác. Mạng cục bộ với cấu trúc vịng trịn được mơ hình bằng các chu
trình Cn như trên hình 1.16.b. Thơng báo gửi từ thiết bị này tới thiết bị khác được
truyền đi theo vòng tròn cho đến nơi nhận.
Một số mạng cục bộ dùng cấu trúc hỗn hợp của hai cấu trúc trên. Các thông báo
được truyền vịng quanh theo vịng trịn hoặc có thể qua thiết bị trung tâm. Sự dư thừa
này có thể làm cho mạng đáng tin cậy hơn. Mạng cục bộ với sự dư thừa này có thể mơ
hình hóa bằng đồ thị hình bánh xe Wn như hình 1.16.c.
Ngồi ra người ta cũng hay bố trí mạng sao cho các máy đều kết nối trực tiếp với
nhau, với kiểu này có thể mơ hình bằng đồ thị đầy đủ Kn hình 1.16.d.

a

b

c

d

Hình 1.16: Các cấu trúc hình sao, vịng trịn, hỗn hợp và đầy đủ của mạng cục bộ
Xử lý song song. Khi xử lý song song người ta dùng máy tính có nhiều bộ xử lý
riêng biệt, mỗi bộ xử lý có bộ nhớ riêng, nhờ đó có thể khắc phục hạn chế của các máy
nối tiếp. Các thuật tốn song song phân chia bài tốn chính thành một số bài tốn con

sao cho có thể giải đồng thời được. Do vậy, bằng thuật toán song song và nhờ việc sử
dụng các máy tính có bộ đa xử lý người ta hy vọng có thể giải nhanh các bài tốn phức
tạp. Trong thuật tốn song song có một dãy các chỉ thị theo dõi việc thực hiện các thực
toán, gửi các bài toán con tới các bộ xử lý khác nhau, chuyển các thông tin vào, thông
tin ra tới các bộ xử lý thích hợp.
Khi dùng cách xử lý song song, mỗi bộ xử lý có thể cần các thơng tin ra của các bộ
xử lý khác. Do đó chúng cần phải được kết nối với nhau. Người ta có thể dùng loại đồ
thị thích hợp để biểu diễn mạng kết nối các mạng xử lý trong một máy tính có nhiều
bộ xử lý. Bây giờ chúng ta sẽ mô tả các kiểu mạng kết nối thường dùng nhất cho các
máy xử lý song song. Kiểu mạng kết nối thường dùng để thực hiện một thuật toán
song song cụ thể phụ thuộc vào những yêu cầu đối với việc trao đổi dữ liệu giữa các
bộ xử lý, phụ thuộc vào tốc độ mong muốn, và tất nhiên vào phần cứng hiện có.
Mạng kết nối các bộ xử lý đơn giản nhất và cũng đắt nhất các liên kết hai chiều
giữa mỗi cặp bộ xử lý. Các mạng này có thể mơ hình bằng Kn, đồ thị đầy đủ n đỉnh,
trong đó n là số bộ xử lý. Tuy nhiên, với các mạng liên kết này cũng có những vấn đề
hết sức nghiêm túc đặt ra chẳng han, số kết nối quá nhiều. Thực ra số các kết nối cần
phải có giới hạn. Khi có nhiều bộ xử lý thì mỗi bộ không thể nối trực tiếp với các bộ
xử lý khác. Ví dụ, nếu ta có 64 bộ xử lý thì có C(64,2) = 2019 kết nối, mỗi bộ xử lý
nối trực tiếp với 63 bộ xử lý khác.
-9-


Mặc khác, hình như cách đơn giản nhất để kết nối n bộ xử lý với nhau là sắp xếp
chúng như một mảng một chiều. Mỗi bộ xử lý Pi, khác P1 và Pn, được nối với các bộ xử
lý cạnh nó Pi-1 và Pi+1 bằng các đường 2 chiều, P1 được nối với P2 và Pn nối với Pn-1.
Mảng một chiều có 6 bộ xử lý được biểu diễn trên hình 1.17. Ưu điểm của mạng một
chiều là mỗi bộ xử lý có nhiều nhất 2 đường nối trực tiếp với các bộ xử lý khác.
Nhược điểm là nhiều khi cần có rất nhiều các kết nối trung gian để các bộ xử lý trao
đổi thơng tin với nhau.
P1


P2

P3

P3

P4

P5

Hình 1.17: Mảng một chiều đối với 6 bộ xử lý
Mạng kiểu lưới rất hay được dùng cho các mạng liên kết. Trong một mạng như thế,
số các bộ xử lý là một số chính phương, n = m2. Các bộ xử lý được gán nhãn P(i, j), 0 ≤
i ≤ m–1, 0 ≤ j ≤ m – 1. Các kết nối 2 chiều sẽ nối bộ xử lý P(i, j) với 4 bộ xử lý bên
cạnh (trừ các bộ xử lý ở góc và ở biên). Mạng kiểu lưới cũng hạn chế số liên kết cho
mỗi bộ xử lý. Sự truyền thông giữa một cặp bộ xử lý đỏi hỏi O( n ) = O(m) các kết
nối trung gian.
P(0, 0)

P(0, 1)

P(0, 2)

P(1,0)

P(1,1)

P(1,2)


P(2,0)

P(2,1)

P(2,2)

P(3,1)

P(3,0)

P(0,3)

P(1,3)

P(2,3)

P(3,3)

P(3,2)

Hình 1.18: Mảng kiểu lưới có 16 bộ xử lý
Có lẽ mạng kết nối quan trọng nhất là mạng kiểu siêu khối. Với các mạng loại này
số các bộ xử lý là lũy thừa của 2, n = 2m . Các bộ xử lý được gán nhãn P0, P1,.., Pn-1.
Mỗi bộ xử lý có liên kết 2 chiều với m bộ xử lý khác. Bộ xử lý Pi nối với bộ xử lý có
chỉ số biểu diễn i tại đúng một bit. Mạng kiểu siêu khối cân bằng số các kết nối trực
tiếp của mỗi bộ xử lý và số các kết nối gián tiếp sao cho các bộ xử lý có thể truyền
thơng được. Nhiều máy tính đã chế tạo theo mạng kiểu siêu khối và nhiều thuật toán
đã được thiết kế để sử dụng mạng kiểu siêu khối. Đồ thị Qn – khối n chiều, biểu diễn
mạng kiểu siêu khối có n bộ xử lý.
P0


P1

P2

P3

P4

P5

P6

Hình 1.19: Mạng siêu khối có 8 bộ xử lý

- 10 -

P7


IV. BIỂU DIỄN ĐỒ THỊ VÀ SỰ ĐẲNG CẤU
Lĩnh vực đồ thị có nhiều ứng dụng trong thực tế, có thể mơ hình nhiều ứng dụng
bằng đồ thị và sử dụng máy tính để giải quyết các bài tốn về ứng dụng đó. Nên việc
biểu diễn và lưu trữ đồ thị trên máy tính là một vấn đề khá trọng tâm.
1. Biểu diễn đồ thị
a. Ma trận kề
Cho đồ thị G = (V, E) có n đỉnh thứ tự v1,..,vn. Khi đó ma trận kề của đồ thị G là
ma trận
 a11a12 .....a1n 



 a21a22 .....a2 n 
A = (aij)n x n = 
...................


 a a .....a 
nn 
 n1 n 2
Ở đây aij là số cạnh nối vi và vj nếu G là đồ thị vô hướng, là số cung đi từ vi tới vj
nếu G là đồ thị có hướng.
Ví dụ 1. Đồ thị vơ hướng G1
V1 V2 V3 V4 V5
V1

V2

có ma trận kề là:

V5

V3

V1 1

1

1 0 0

V2 1


0

1 1 1

V3 1

1

0 1 0

V4 0

1

1 0 1

V5 0

1

0 1 0

V4

Hình 1.20: Đồ thị vơ hướng G1
Ví dụ 2. Đồ thị có hướng G2
V1

V2


V1 V2 V3 V4 V5

có ma trận kề là:
V5

V3

V1 0

1

1 0 0

V2 0

0

0 1 1

V3 0

1

0 0 0

V4 0

0


1 0 0

V5 0

0

0 1 0

V4

Hình 1.21: Đồ thị có hướng G2
Mệnh đề 1. Cho đồ thị G = (V, E) với ma trận kề (aij)n x n.
Khi đó:
n

 Ta có deg(vi) =  aij =
j 1

n

a
j 1

ji

 vi  V

 Nếu G là đồ thị có hướng thì deg1(vi) =

n


 aij và deg0(vi) =
j 1

- 11 -

n

a
j 1

ji

 vi  V


Định lý 1. Cho đồ thị G = (V, E) có n đỉnh, V = (v0, v1,.., vn ) và ma trận kề A = (aij)nx n
Giả sử Ak = (cij)n x n, k ≥ 1. Khi đó với i  j :
 Nếu G là đồ thị vô hướng thì cij là số đường đi chiều dài k từ đỉnh vi đến đỉnh
vj .
 Nếu G là đồ thị có hướng thì cij là số đường đi có hướng chiều dài k từ đỉnh vi
đến đỉnh vj.
Hệ quả 1. Cho đồ thị G = (V,E) có n đỉnh, V = (v0, v1,.., vn ) và ma trận kề A = (aij)nx n.
Ta ký hiệu: T = A1 + A2 + …. + An-1
Ta sẽ có:
- Nếu G là đồ thị vô hướng:
 G liên thông khi và chỉ khi các phần tử nằm ngồi đường chéo chính của ma
trận T đều lớn hơn 0.
 G có chu trình khi và chỉ khi tồn tại phần tử lớn hơn 0 trên đường chéo chính
của ma trận T.

- Nếu G là đồ thị có hướng:
 G liên thơng mạnh khi và chỉ khi các phần tử ngồi đường chéo chính của ma
trận T đều lớn hơn 0.
 G có chu trình có hướng khi và chỉ khi tồn tại phần tử lớn hơn 0 trên đường
chéo chính của ma trận T.
b. Ma trận liên thuộc
Xét đồ thị G = (V, E), V = (v1, v2,..,vn), E = (e1, e2,..,em ) là đơn đồ thị có hướng.
Khi đó ma trận liên thuộc của đồ thị G là ma trận
 b11b12 .....b1n 


 b21b22 .....b2 n 
B = (bij)n x n = 
...................


 b b .....b 
nn 
 n1 n 2
Ở đây :
- Nếu G là đồ thị vô hướng:
 bij = 1 Nếu vi liên thuộc cạnh ej
 bij = 0 Nếu vi không liên thuộc cạnh ej
- Nếu G là đồ thị có hướng:
 bij = 1 nếu vi là đỉnh đầu của cung ej
 bij = -1 nếu vi là đỉnh cuối của cung ej
 bij = 0 nếu vi khơng là đầu mút của cung ej
Ví dụ 3. Đồ thị vơ hướng G3.
e3
V1


e1

V2
e6
e4

e2

có ma trận liên thuộc là:
V5

e5
e8

V3

e7

V4

Hình 1.22: Đồ thị vô hướng G3
- 12 -

e1

e2

e3 e4 e5 e6 e7 e8


V1 1

1

1

0

0

0

0

0

V2 1

0

0

1

1

1

0


0

V3 0

1

0

1

0

0

1

0

V4 0

0

0

0

1

0


1

1

V5 0

0

0

0

0

1

0

1


Ví dụ 4. Đồ thị có hướng G4.
V1

e5
e3

e2

e4


V5

có ma trận liên thuộc là:

e7

e6

V3

e1

e2

e3 e4 e5 e6 e7

V1 1

1

0 0 0 0 0

V2 -1

0

-1 1 1 0 0

V3 0


-1

1 0 0 -1 0

V4 0

0

1 -1 0 0 -1

V5 0

0

0 0 -1 0 1

V2

e1

V4

Hình 1.23: Đồ thị có
hướng G4
Mệnh đề 2. Xét đồ thị G = (V, E) với ma trận liên thuộc A = (aij)mx n.
Khi đó:
 Deg(vi) =

n


a
j 1

ji

 vi V

 Nếu G là đồ thị có hướng:
Deg1(vi) = max{0, aij}  vi V
Deg0(vi) = max {0, - aij}  vi V
c. Danh sách kề
Trong rất nhiều ứng dụng của lý thuyết đồ thị, cách biểu diễn đồ thị dưới dạng danh
sách kề là cách biểu diễn thích hợp nhất được sử dụng.
Xét đồ thị G = (V, E), với mỗi đỉnh v của đồ thị chúng ta lưu trữ danh sách các đỉnh kề
với nó, ký hiệu là list(v) với:
 Nếu G là đồ thị vơ hướng thì list(v) = {w|w  V và w kề v}.
 Nếu G là đồ thị có hướng thì list(v) = {w|w  V và w là đỉnh cuối của cung
(v,w)}.
Ví dụ 5: Đồ thị vô hướng G5 và biểu diễn danh sách kề là:
e3
V1

V2

e1

List(v1)

e6

e4

e2

e5

V5
e8

e7

V3

V4



v1

List(v2) 

v1

List(v3) 

v1

List(v4) 

v2


List(v5) 

v2







v2
v3
v2
v3
v4

Hình 1.24: Đồ thị vơ hướng G5
Ví dụ 6. Đồ thị có hướng G6 và biểu diễn danh sách kề là:
V1

e1

V2
e5

e2

V3


e3

e4
e6

V5

List(v1) 

v2

List(v2) 

v4

List(v3) 

v2

List(v4) 

v3

List(v5) 

v4

e7
V4


- 13 -




v3
v5






v3
v4
v4
v5



v5


Hình 1.25: Đồ thị có hướng G6
2. Đồ thị đẳng cấu
Các đơn đồ thị G1 = (V1, E1) và G2 = (V2, E2) được gọi là đẳng cấu nếu tồn tại một
song ánh f từ V1 lên V2 sao cho các đỉnh v và w là liền kề trong G1 khi và chỉ khi f(v)
và f(w) là liền kề trong G2 với mọi v và w trong V1. Ánh xạ f như thế gọi là một phép
đẳng cấu.
Thông thường, để chứng tỏ hai đơn đồ thị là không đẳng cấu, người ta chỉ ra chúng

khơng có chung một tính chất mà các đơn đồ thị đẳng cấu cần phải có. Tính chất như
thế gọi là một bất biến đối với phép đẳng cấu của các đơn đồ thị.
Ví dụ. i. Hai đơn đồ thị G1 và G2 sau là đẳng cấu qua phép đẳng cấu f: a  x, b  u,
c  z, d  v, e  y:
a
u
b
v

z

e

c

x

y

d
G2

G1

Hình 1.26: Hai đồ thị G1 và G2 đẳng cấu
ii. Hai đồ thị G1 và G2 sau đều có 5 đỉnh và 6 cạnh nhưng khơng đẳng cấu vì trong
G1 có một đỉnh bậc 4 mà trong G2 khơng có đỉnh bậc 4 nào.

G1


G2

Hình 1.27: Hai đồ thị G1 và G2 không đẳng cấu
iii. Hai đồ thị G1 và G2 sau đều có 7 đỉnh, 10 cạnh, cùng có một đỉnh bậc 4, bốn
đỉnh bậc 3 và hai đỉnh bậc 2. Tuy nhiên G1 và G2 là khơng đẳng cấu vì hai đỉnh bậc 2
của G1 (a và d) là không kề nhau, trong khi hai đỉnh bậc 2 của G2 (o và p) là kề nhau.
c

a

m

n

g

a

l

d

f

e

r

p


q

G1

G2

Hình 1.28: Hai đồ thị G1 và G2 không đẳng cấu
- 14 -

o


Chương 2: CÁC BÀI TOÁN VỀ ĐƯỜNG ĐI
I. ĐỒ THỊ EULER
Có thể coi năm 1736 là năm khai sinh lý thuyết đồ thị, với việc cơng bố lời giải
“bài tốn về các cầu ở Konigsberg” của nhà toán học lỗi lạc Euler (1707-1783). Lời
giải của ơng có thể là ứng dụng đầu tiên của lý thuyết đồ thị. Thành phố Konigsberg
thuộc Phổ (nay gọi là Kaliningrad thuộc Nga) được chia thành bốn vùng bằng các
nhánh sông Pregel, các vùng này gồm hai vùng bên bờ sông, đảo Kneiphof và một
miền nằm giữa hai nhánh của sông Pregel. Vào thế kỷ 18, người ta xây bảy chiếc cầu
nối các vùng này với nhau.
B

B
A
D
D

A


C

C

G

Hình 2.1: Đồ thị minh họa bài tốn chiếc cầu ở Konigsberg
Dân thành phố từng thắc mắc: “Có thể nào đi dạo qua tất cả bảy cầu, mỗi cầu chỉ
một lần thôi không?”. Nếu ta coi mỗi khu vực A, B, C, D như một đỉnh và mỗi cầu qua
lại hai khu vực là một cạnh nối hai đỉnh thì ta có sơ đồ của Konigsberg là một đa đồ thị
G như hình trên.
Bài tốn tìm đường đi qua tất cả các cầu, mỗi cầu chỉ qua một lần có thể được phát
biểu lại bằng mơ hình này như sau: Có tồn tại chu trình đơn trong đa đồ thị G chứa tất
cả các cạnh?
1. Định nghĩa
Cho đồ thị G = (V, E).
 Chu trình Euler là chu trình qua mọi cạnh và mọi đỉnh đồ thị, mỗi cạnh không đi
quá một lần.
 Đường đi Euler là đường đi qua mọi cạnh và mọi đỉnh của đồ thị, mỗi cạnh
khơng đi qua q một lần.
Cho đồ thị có hướng G = (V, E)
 Chu trình có hướng Euler là chu trình có hướng qua mọi cung và mọi đỉnh đồ
thị, mỗi cung không đi quá một lần.
 Đường đi có hướng Euler là đường đi có hướng qua mọi cung và mọi đỉnh của
đồ thị, mỗi cung không đi qua quá một lần.
 Đồ thị chứa chu trình Euler gọi là đồ thị Euler.
Ví dụ.
4
1


2

3

5

6

Hình 2.2: Đồ thị có chu trình Euler (1, 2, 3, 4, 2, 5, 6, 3, 1)
- 15 -


2. Điều kiện cần và đủ
Định lý 1 (Định lý Euler). Đồ thị G có chu trình Euler khi và chỉ khi G liên thơng và
mọi đỉnh có bậc chẵn khác 0.
Định lý 2. Cho đồ thị G có k đỉnh bậc lẻ. Khi đó số đường đi tối thiểu phủ G là k/2.
Định lý 3. Đồ thị có hướng G có chu trình có hướng Euler khi và chỉ khi G liên thơng
mạnh và mọi đỉnh có nửa bậc vào bằng nửa bậc ra d1(v) = d0(v) v  V.
3. Các thuật tốn tìm chu trình Euler
Thuật tốn 1
Đầu vào: Đồ thị G  0 và khơng có đỉnh cơ lập
Đầu ra: Chu trình Euler C của G hoặc G khơng có chu trình Euler
Phương pháp:
1: Xuất phát: Đặt H := G, k := 1; C := , chọn đỉnh bất kì v  G
2: Xuất phát từ v, xây dựng chu trình bất kì Ck trong H
Nếu tồn tại Ck, nối Ck vào C, C := C  Ck. Sang bước 3.
Nếu khơng tồn tại Ck, thì kết luận khơng có chu trình Euler, kết thúc.
3: Loại H ra khỏi chu trình Ck. Nếu H chứa các đỉnh cơ lập, thì loại chúng khỏi H.
Sang bước 4.
4: Nếu H  , thì kết luận C là chu trình Euler, kết thúc . Ngược lại sang bước 5.

5: Nếu H và C khơng có đỉnh chung, thì kết luận khơng có chu trình Euler, kết thúc.
6: H và C có đỉnh chung. Chọn v là đỉnh chung của H và C. Đặt k: = k+1. Quay lại
bước 2.
Ví dụ. Dùng đường đi và chu trình Euler để giải các bài tốn trị chơi.
Nhiều trị chơi u cầu vẽ một bức tranh bằng sự chuyển động liên tục và không
được nâng bút khỏi mặt giấy, sao cho không phần nào của bức tranh được vẽ lại.
Chúng ta có thể giải bài tốn này bằng chu trình và đường đi Euler. Ví dụ ta có thể vẽ
lại thanh mã tấu Mohammed mà khơng nâng bút khỏi mặt giấy.
a

j

e
i
f

b
c

d

h
g

k

Hình 2.3: Đồ thị thanh mã tấu Mohammed
Giải:
1: Đặt H := G, K := 1; C := , v := f.
2: Ta xây dựng chu trình Ck trong H: C1 := (f, g, k, h, i, e, b, c, d, f)

Đặt C := C  C1 = (f, g, k, h, i, e, b, c, d, f)
3: Loại C1 ra khỏi H, khi đó các đỉnh c và k là các đỉnh cô lập, vì thế ta loại chúng ra
khỏi đồ thị H.
6: Chọn đỉnh chung của H và C là v := f. Đặt k := k+1 =2. Quay lại bước 2.
2: Ta xây dựng chu trình C2 trong H: C2 := (f, i, j, h, g, d, b, a, e, f)
Nối C2 vào C ta được chu trình C sau:
C := C  C2 = (f, g, k, h, i, e, b, c, d, f)  (f, i, j, h, g, d, b, a, e, f)
= (f, g, k, h, i, e, b, c, d, f, i, j, h, g, d, b, a, e, f)
3: Loại C2 ra khỏi H, ta được đồ thị H gồm tồn các đỉnh cơ lập. Loại nốt các đỉnh cơ
lập ta có H = .
4: Vì H = , ta kết luận C là chu trình Euler, kết thúc.
- 16 -


Thuật toán 2 (fleury)
Đầu vào: Đồ thị G  0 và khơng có đỉnh cơ lập
Đầu ra: Chu trình Euler C của G hoặc G khơng có chu trình Euler
Phương pháp:
1: Chọn đỉnh xuất phát bất kỳ v0. Đặt v1 := v0, C := (v0), H := G.
2: Nếu H = , thì kết luận C là chu trình Euler, kết thúc. Ngược lại sang bước 3.
3: Chọn cạnh đi tiếp:
 Trường hợp đỉnh v1 là đỉnh treo: Tồn tại duy nhất đỉnh v2 kề v1.
Chọn cạnh (v1, v2). Sang bước 4.
 Trường hợp đỉnh v1 không là đỉnh treo;
Nếu mọi cạnh liên thuộc v1 là cầu, thì khơng có chu trình Euler, kết thúc.
Ngược lại, chọn cạnh (v1, v2) bất kì khơng phải là cầu trong H. Thêm vào
đường đi C đỉnh v2. Sang bước 4.
4: Xóa cạnh vừa đi qua, và xóa đỉnh cơ lập:
Loại khỏi H cạnh (v1, v2). Nếu H có đỉnh cơ lập, thì loại chúng khỏi H.
Đặt v1: = v2 . Sang bước 2.

Ví dụ: Domino là hình chữ nhật chia thành 2 hình vng mỗi hình mang 1 trong các số
0, 1, 2, 3, 4, 5, 6. Hai hình vng trên một domino có thể mang cùng 1 số. Chứng minh
rằng có thể xếp các qn Domino thành hình vịng trịn sao cho 2 hình vng kề nhau
trên 2 domino khác nhau sẽ mang cùng số.
0
1
6
2
5
3

4

Hình 2.4: Đồ thị minh họa cho ví dụ
Giải:
Ta lập đồ thị có 7 đỉnh: 0, 1, 2, 3, 4, 5, 6. Mỗi đỉnh nối với các đỉnh cịn lại và chính
nó để tại thành Domino như hình trên. Đồ thị hình bên liên thơng với các đỉnh có bậc
chẵn bằng 8. Nên tồn tại chu trình Euler và mỗi chu trình Euler tương ứng với 1 cách
sắp xếp.
Chương trình cài đặt tìm chu trình và đường đi Euler cho kết quả như sau:
Input: Euler.inp (hình 2.4 )
Output: Euler.out

- 17 -


II. ĐỒ THỊ HAMINTON
Năm 1857, nhà toán học người Ailen là Hamilton(1805-1865) đưa ra trò chơi “đi
vòng quanh thế giới” như sau: Cho một hình thập nhị diện đều (đa diện đều có 12 mặt,
20 đỉnh và 30 cạnh), mỗi đỉnh của hình mang tên một thành phố nổi tiếng, mỗi cạnh

của hình (nối hai đỉnh) là đường đi lại giữa hai thành phố tương ứng. Xuất phát từ một
thành phố, hãy tìm đường đi thăm tất cả các thành phố khác, mỗi thành phố chỉ một
lần, rồi trở về chỗ cũ.
Trước Hamilton, có thể là từ thời Euler, người ta đã biết đến một câu đố hóc búa về
“đường đi của con mã trên bàn cờ”. Trên bàn cờ, con mã chỉ có thể đi theo đường chéo
của hình chữ nhật 2 x 3 hoặc 3 x 2 ô vng. Giả sử bàn cờ có 8 x 8 ơ vng. Hãy tìm
đường đi của con mã qua được tất cả các ô của bàn cờ, mỗi ô chỉ một lần rồi trở lại ơ
xuất phát. Bài tốn này được nhiều nhà toán học chú ý, đặc biệt là Euler, De Moivre,
Vandermonde, ...
Hiện nay đã có nhiều lời giải và phương pháp giải cũng có rất nhiều, trong đó có
quy tắc: mỗi lần bố trí con mã ta chọn vị trí mà tại vị trí này số ơ chưa dùng tới do nó
khống chế là ít nhất. Một phương pháp khác dựa trên tính đối xứng của hai nửa bàn cờ.
Ta tìm hành trình của con mã trên một nửa bàn cờ, rồi lấy đối xứng cho nửa bàn cờ
còn lại, sau đó nối hành trình của hai nửa đã tìm lại với nhau.
Trị chơi và câu đố trên dẫn tới việc khảo sát một lớp đồ thị đặc biệt, đó là đồ thị
Hamilton.
1. Định nghĩa
Cho đồ thị (có hướng) G = (V,E). Chu trình (có hướng) Hamiton là chu trình (có
hướng) sơ cấp qua mọi đỉnh đồ thị. Đường đi (có hướng) Hamilton là đường đi (có
hướng) sơ cấp qua mọi đỉnh đồ thị.
Như vậy mọi chu trình Hamilton có độ dài bằng số đỉnh và mọi đường đi Hamilton
có độ dài bằng số đỉnh trừ 1.
Đồ thị chứa chu trình (có hướng) Hamilton gọi là đồ thị Hamilton.
Ví dụ. Đồ thị Haminlton
C
J
K
B

I


L

H

P

O

D

Q
M

N

R

T
A

G
F

S
E

G
Hình 2.5
Trong hình 2.5 đồ thị G khơng có chu trình Euler nhưng có chu trình Hamilton với

chu trình Hamilton:
ABCDEFGHIJKLMNOPQRSTA

- 18 -


3. Điều kiện cần và đủ
a. Điều kiện cần
Định lý 1. Giả sử đồ thị G có chu trình Hamilton C. Khi đó:
i. Đồ thị G liên thơng
ii. Mọi đỉnh của G có bậc lớn hơn hoặc bằng 2, và có đúng 2 cạnh kề thuộc chu trình
C.
iii. Nếu xóa đi k đỉnh bất kì cùng các cạnh liên thuộc chúng thì đồ thị cịn lại sẽ có
tối đa k thành phần liên thông.
b. Điều kiện đủ
Định lý 2. Đồ thị đủ Kn với n lẻ n ≥ 3 có (n-1)/2 chu trình Hamilton từng đơi một
khơng giao nhau.
Định lý 3 (Dirac). Cho G là đồ thi đơn giản n đỉnh (n ≥ 3). Nếu bậc d(v) ≥ n/2 với mọi
đỉnh v của G thì G có chu trình Hamilton.
Định lý 4. Cho G là đồ thị đơn giản n đỉnh (n ≥ 3). Giả sử v và w là 2 đỉnh không kề
nhau của G sao cho: deg(v) + deg(w) ≥ n. Khi đó G có chu trình Hamilton khi và chỉ
khi đồ thị G + (v, w) (đồ thị G có thêm cạnh (v, w)) có chu trình Hamilton.
Định lý 5. Cho G là đồ thị đơn giản n đỉnh. Giả sử G’ và G” là đồ thị thu được từ G
bằng quy nạp nối tất cả các cặp đỉnh khơng kề nhau có tổng các bậc ít nhất bằng u. Khi
đó ta có G’ = G”.
Bao đóng. C(G) của đồ thị G có n đỉnh là đồ thị thu được từ G bằng cách: Theo quy
nạp nối tất cả các cặp đỉnh không kề nhau mà tổng số bậc ít nhất bằng n cho đến khi
khơng cịn cặp đỉnh nào như vậy nữa.
Định lý 6. Đồ thị G có chu trình Hamilton khi và chỉ khi bao đóng của G có chu trình
Hamilton.

Hệ quả.
 Nếu bao đóng C(G) = Kn (n ≥ 3) thì đồ thị G có chu trình Hamilton.
 Cho G là đơn đồ thị n đỉnh (n ≥ 3). Nếu d(v) + d(w) ≥ n với mọi cặp đỉnh
khơng kề nhau thì đồ thị G có chu trình Hamilton.
 Cho G là đơn đồ thị n đỉnh (n ≥ 3) và m cạnh. Nếu m ≥ C(n-1, 2) + 2 thì đồ thị
G có chu trình Hamilton.
Định lý 7. Cho đồ thị G là đồ thị lưỡng phân với hai tập đỉnh V1 và V2 sao cho:
|V1| = |V2| = n ≥ 2
Nếu bậc d(v) ≥ n/2 với mọi đỉnh v của G thì G có chu trình Hamilton
Định lý 8. Nếu đồ thị G là đồ thị có hướng liên thơng mạnh và: d1(v) ≥ n/2 và d0(v) ≥
n/2  v  G thì G có chu trình Hamilton.
Định lý 9. Mọi đồ thị có hướng đầy đủ đều có đường đi Hamilton.
3. Một số bài toán ứng dụng
a. Bài toán thi đấu bóng bàn
Trong một đợt thi đấu bóng bàn có n (n ≥ 2) đấu thủ tham gia. Mỗi đấu thủ gặp
từng đấu thủ khác đúng một lần. Trong thi đấu bóng bàn chỉ có khả năng thắng hoặc
thua. Chứng minh rằng sau đợt thi đấu có thể xếp tất cả các đấu thủ đứng thành một
hàng dọc, để người đứng sau thắng người đứng trước.
Xét đồ thị có hướng G gồm n đỉnh sao cho mỗi đỉnh ứng với một đấu thủ và có một
cung nối từ đỉnh v đến đỉnh w nếu đấu thủ ứng với v thắng đấu thủ ứng với w. Như
vậy, đồ thị G có tính chất là với hai đỉnh phân biệt bất kỳ v và w, có một và chỉ một
trong hai cung (v, w) hoặc (w, v). Khi đó đường đi Hamilton trong G cho ta sự sắp xếp
cần tìm.
- 19 -


×