ỦY BAN NHÂN DÂN
THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN
GIÁO TRÌNH
LÝ THUYẾT ĐỒ TH
số: GT2020-7
Chủ biên: PGS.TS. Nguyễn Hòa
Thành viên tham gia biên soạn: TS. Huỳnh Minh Trí
ThS. Nguyễn Nhựt Đông
Thành phHồ Chí Minh, tháng 7 năm 2022
ỦY BAN NHÂN DÂN
THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN
GIÁO TRÌNH
LÝ THUYẾT ĐỒ TH
Mã s: GT2020-7
Xác nhận của chủ tịch
hội đồng thẩm định
(ký, h tên)
Chbiên
(ký, họ tên)
PGS.TS. Nguyễn Tuấn Đăng PGS.TS. Nguyễn Hòa
Thành phố Hồ Chí Minh, tháng 7 năm 2022
i
GII THIU M ĐU
thuyết đồ thlà cơ sở toán học để mô hình hóa, biểu diễn thông tin, phát triển
các thuật toán ng dụng giải quyết nhiều bài toán thực tế, đặc biệt là các bài toán tối
ưu như bài toán tìm các đường đi ngắn nhất, tìm luồng cực đại trong mạng, màu
bản đvi ít màu nhất v.v. Khái niệm đồ thị, thuyết đồ thị như một bộ phận của
lĩnh vực Toán rời rạc xuất hiện tkhá sm, khoảng cuối thế kỳ 17 đầu thế kỳ 18, do
các nhà toán học Euler Hamilton khi xướng khi gii quyết mt s bài toán trong
cuc sng hàng ngày. Tuy nhiên, thuyết đồ th ch phát trin mnh m tách khi
lĩnh vc Toán ri rc như một lý thuyết toán hc riêng, tính đặc thù vi kh năng
mô hình hóa, biu din và x thông tin hiu qu, k t khi Khoa hc máy tính và Công
ngh thông tin xut hin vào khong 1950. th nói, thuyết đồ th mt trong
nhng cơ sở toán hc cho s phát triển ng nghthông tin Khoa hc y nh
nhưng chính s phát trin nhanh chóng vượt bc ca Công nghthông tin Khoa
hc máy tính cũng thúc đẩy mnh m vic nghiên cu, khám phá các kết qu mi
trong thuyết đthị và làm thuyết này phát triển nhanh hơn nhằm đáp ng ngày
càng cao các công c biu din, tính toán x mi ca Công nghthông tin và
Khoa hc máy tính.
Vi đặc thù như một h thng toán hc tính ng c thiết yếu cho Công ngh
thông tin Khoa hc máy tính, thuyết đồ thđược ging dy, được xem như
mt môn hc cơ s ngành bt buc ca các sinh viên, trong các khoa công ngh
thông tin, khoa hc máy tính ca hu hết các trường đại hc trên thế gii.
Giáo trình Lý thuyết đồ thịy được biên son cho sinh viên chuyên ngành Công
nghthông tin, Khoa hc máy tính, k thut máy tính, công ngh phần mềm th
được hc tp ging dy vào kcuối của năm học th hai ca bậc đi hc. Sinh
viên các ngành điện t vin thông, toán tin hc, toán ng dng cũng th xem giáo
trình này như một tài liu tham kho b ích. Giáo trình tp trung trình bày các vấn đ
ct lõi có phm vi ng dng chung, rng rãi nht vào Khoa hc máy tính và Công
ngh thông tin ca Lý thuyết đồ thị như hthống khái niệm, thuật ngữ, các kiểu đồ
thị, các hình thức biểu diễn đồ th, các thuật toán tìm kiếm trên đ thị, đ thị Euler,
Hamilton, cây và cây bao trùm nhỏ nhất của đồ thị, các thuật toán tìm đường đi ngắn
ii
nhất và tìm luồng cực đại trên mạng. Các nội dung kiến thức này cũng chính các
nội dung được yêu cầu giảng dạy trong đề cương chi tiết của môn thuyết đồ th
trong chương trình đào tạo kỹ sư của Khoa công nghệ thông tin Đại học Sài gòn.
Để trình bày các ni dung thuyết đồ th, bao gm c nhng khái nim tru
tượng cũng như các tính cht phc tp ca c đối tượng toán hc mt cách khoa
hc, có h thng sao cho d đọc và d hiu, các tác gi đã kết hp các dn nhp, din
gii trc giác, không hình thc vi c định nghĩa hình thc, chính xác, c chng
minh cht ch các d minh ha nh điển hình t đơn giản đến phc tp. Các
thut toán trên đồ th được trình bày mt ch ngn gn, ràng được chng minh
tính đúng đn da trên các cơ sở toán hc và được tính toán đ phc tp v thi gian
đầy đủ để đm bo có th ng dng trong thc tế.
Mt h thng các bài tp phong phú chn lc được gii thiu sau mỗi chương
giúp sinh viên cng c kiến thc bản, rèn luyn nâng cao kh năng giải quyết
vấn đề cũng như mở rộng hơn na các vấn đề chưa được đề cp trong lý thuyết.
Mc đã nhiu c gắng nhưng chắc chn giáo trình thuyết đ th này
không th tránh khi nhng thiếu sót. c tác gi mong nhận được nhng nhn xét,
đóng góp quí giá ca các sinh viên, ging viên nói riêng và các độc gi nói chung.
Thành ph H Chí Minh, tháng 7 năm 2022
Nguyn Hòa
Hunh Minh Trí
Nguyn Nhựt Đông
iii
MC LC
Chương 1 c khái niệm cơ bản ca lý thuyết đồ th ....................................... …1
1.1 Định nghĩa đồ th ........................................................................................ 1
1.2 Các thut ng .............................................................................................. 5
1.3 Đường đi, chu trình, đồ th liên thông .......................................................... 8
1.4 Mt s dng đồ th đặc bit ....................................................................... 14
1.5 Đồ th phng ……..……………………………………...............................19
Bài tp..………………………………………...…………..……….............25
Chương 2 Biu diễn đ th và s đẳng cấu đồ th ................................................ 31
2.1 Ma trn k................................................................................................. 31
2.2 Ma trn trng s ........................................................................................ 33
2.3 Ma trn liên thuc. .................................................................................... 34
2.4 Danh sách k............................................................................................. 36
2.5 Danh sách cnh ......................................................................................... 38
2.6 Hiu qu các phương pháp biểu diễn đồ th……………………………......40
2.7 Đẳng cấu đ th ......................................................................................... 43
Bài tp. ..................................................................................................... 47
Chương 3 c thut toán tìm kiếm trên đ thng dng .………..................54
3.1 m kiếm theo chiu rng …………………………………………………54
3.2 m kiếm theo chiu sâu ………………………………………………......62
3.3 m đường đi giữa hai đnh ……………………………………………….71
3.4 m các thành phn liên thông của đồ th………………………………….72
Bài tp……………………………………………………………………...78
Chương 4 Đồ th Euler và đồ th Hamilton ……………........................................82
4.1 Đồ th Euler ………………………………………………………………..82
4.2 Đồ th Hamilton ........................................................................................ 90
Bài tp ...................................................................................................... 99
Chương 5 y và cây bao trùm của đồ th ........................................................ 103
5.1 Cây và các tính chất cơ bản ca cây ........................................................ 103
iv
5.2 Cây bao trùm của đồ th .......................................................................... 106
5.3 Cây bao trùm bé nht của đồ th .............................................................. 108
Bài tp .................................................................................................... 117
Chương 6 Đường đi ngắn nht .......................................................................... 120
6.1 Các khái nim m đầu............................................................................. 120
6.2 Đường đi ngắn nht xut phát t một đnh .............................................. 123
6.3 Thut toán Bellman-Ford ........................................................................ 131
6.4 Thut toán Dijkstra ................................................................................. 135
6.5 Đường đi ngắn nht gia các cặp đỉnh ..................................................... 139
Bài tp .................................................................................................... 146
Chương 7 Lung cực đại trong mng ............................................................... 150
6.1 Mng, lung mng và bài toán tìm lung cực đại .................................... 150
6.2 Lát cắt, đường tăng luồng, định lý Ford-Fulkerson .................................. 152
6.3 Thut toán tìm lung cc đi trong mng ................................................ 161
Bài tp .................................................................................................... 164
TÀI LIU THAM KHO ................................................................................... 168
1
Chương 1
CÁC KHÁI NIỆM CƠ BẢN
CA LÝ THUYẾT ĐỒ TH
ác khái niệm cơ bản ca lý thuyết đồ th nhng khái nim có tính nn tng làm
sở để xây dng, phát trin thuyết đồ th. Phn 1.1, 1.2 1.3 của chương
này lần lượt trình bày các khái nim thut ng v đồ th, cnh bi, cạnh khuyên, đỉnh
k, bc, bán bc của đỉnh, đường đi, chu trình, đồ th con và tính liên thông của đ th.
Phn 1.4 trình bày mt s đồ th đặc bit có nhiu ng dng trong thiết kế các h thng
mng trong lĩnh vực Công ngh Thông tin Khoa hc Máy tính. Phn 1.5 trình bày
v đồ th phng, mt lớp đồ th đặc bit, th biu din hình hc trên mt phng
không s giao ct ca các cnh, sở cho nhiu ng dng trong thiết kế mch
điện t và mô hình hóa các h thng kết nối các đối tượng có tính đặc thù trong thc tế.
1.1 Định nghĩa đồ th
Đồ th là mt mô hình toán hc biu din các cu trúc ri rc bao gm mt tp các
phn t kết hp vi mt tp các quan h gia các cp phn t ca chúng. Khi tính th
t trong mi quan h gia các phn t không được xem xét chúng ta một đ th
hướng, ngược lại chúng ta đồ th hướng. Đồ th hướng được đnh nghĩa một
cách hình thức như sau.
Đinh nghĩa 1.1.1 Mt đồ th hướng (undirected graph) mt b đôi G = (V, E),
trong đó
1. V mt tp hp hu hn khác rng các phn t được gi các đỉnh (vertex)
ca G.
C
2
2. E là mt tp hp hu hn các phn t được gi là các cnh (edge) ca G sao cho
mi cnh trong E ng vi mt cp không có th t ca các đỉnh trong V.
Chúng ta th hiu G(V, E) để biu diễn đồ th G = (V, E). Các đỉnh ca G cũng
còn được gi là các nút (node) ca G. Nếu cnh e trong E ng vi cặp đỉnh uv trong
V ta viết e = (u, v) hay e = (v, u) và nói cnh e nối các đỉnh uv, các đỉnh uv hai
đầu mút ca cnh e. Đồ th G được định nghĩa như trên gi đồ th hu hn (finite
graph). Trong trường hp V E là các tp hp hn (infinite set) thì đồ th G = (V,
E) được gi là đồ th vô hn (infinite graph).
Ví d 1.1.1 Một đồ th vô hướng G = (V, E) vi tập đỉnh và tp cnh như sau:
1. V = {v
1
, v
2
, v
3
, v
4
, v
5
}.
2. E = {e
1
= (v
2
, v
2
), e
2
= (v
2
, v
4
), e
3
= (v
1
, v
2
), e
4
= (v
1
, v
3
), e
5
= (v
1
, v
3
), e
6
= (v
3
, v
4
),
e
7
= (v
4
, v
5
)}.
Một đ th vô hướng G = (V, E) th được biu din hình hc trong mt mt phng
bi mt tập các điểm tương ng với các đỉnh trong V mt tập các đoạn (thng hoc
cong) nối các điểm đó tương ứng vi các cnh trong E.
Ví d 1.1.2 Biu din hình hc của đồ th trong Ví d 1.1.1 như Hình 1.1.1.
Hình 1.1.1. Biu din hình hc của đồ th
Mt cnh e = (u, u) ca đồ th vô hướng G ni một đỉnh u với chính nó được gi
mt cnh khuyên (loop edge)
ca G, chng hn cnh e
1
= (v
2
, v
2
) của đồ th G trong Ví
d 1.1.1 là mt cnh khuyên. Hai cnh e
i
và e
j
cùng ng vi mt cặp đỉnh trong G được
gi nhng cnh song song hay cnh bi (multiple edge) ca G, chng hn hai cnh
e
4
= (v
1
, v
3
), e
5
= (v
1
, v
3
) của đồ th G trong Ví d 1.1.1 là hai cnh song song.
3
Đinh nghĩa 1.1.2 Một đồ th G không có cnh khun hoc cnh bội được gi là mt
đơn đồ th (simple graph).
Ví d 1.1.3 Các đồ th được cho như trong Hình 1.1.2 các đơn đồ th.
Hình 1.1.2. Đơn đồ th vô hướng
Lưu ý rng, nếu chúng ta không quan tâm đến các đỉnh các cnh c th ca các
đồ th, chúng ta có th b qua ký hiu các tên đỉnh và cnh n biu din phng của đồ
th th ba trong Hình 1.1.2.
Khi tính th t ca các cặp đỉnh ng vi mt cạnh trong đồ th được xem xét, đồ th
được gọi là có hướng. Đồ th có hướng được định nghĩa một cách hình thức như sau.
Đinh nghĩa 1.1.3 Mt đồ th hướng (directed graph) là mt b đôi G = (V, E), trong
đó
1. V là mt tp hp hu hn khác rng các phn t được gi các đỉnh ca G.
2. E là mt tp hp hu hn các phn t được gi là các cạnh hướng hay cung
(arc) ca G sao cho mi cung trong E ng vi mt cp th t của các đỉnh
trong V.
Như đối với đồ th hướng, chúng ta có th hiu G(V, E) để biu diễn đ th
có hướng G = (V, E). Các đỉnh ca G cũng còn đưc gi là các nút ca G. Nếu cung e
trong E ng vi cặp đỉnh th t (u, v) trong V ta viết e = (u, v) nói cung e là mt
cung (cnh) hướng t u đến v trong G ni đỉnh u vi đỉnh v (hay e bắt đầu tại đỉnh
u, kết thúc tại đỉnh v), đỉnh u được gọi là đỉnh đầu và đnh v được gọi đỉnh cui ca
cung e (uv cũng được gi là gc và ngn ca cung e). Đồ th có hướng G được định
nghĩa ntrên gi đồ th có hướng hu hn (finite directed graph). Trong trường hp
4
V E các tp hp vô hn thì đ th G = (V, E) được gọi đồ th hướng hn
(infinite directed graph).
Ví d 1.1.4 Một đồ th có hướng G = (V, E) vi tp đỉnh và tp cung như sau:
1. V = {v
1
, v
2
, v
3
, v
4
, v
5
}.
2. E = {e
1
= (v
1
, v
3
), e
2
= (v
1
, v
4
), e
3
= (v
4
, v
1
), e
4
= (v
1
, v
2
), e
5
= (v
2
, v
2
), e
6
= (v
3
, v
4
),
e
7
= (v
5
, v
4
), e
8
= (v
5
, v
3
), e
9
= (v
5
, v
3
), e
7
= (v
5
, v
3
)}.
Một đ thhướng G = (V, E) th được biu din hình hc trong mt mt phng
bi mt tập các điểm tương ng với các đỉnh trong V mt tập các đoạn (thng hoc
cong) hướng nối các điểm đó tương ứng vi các cung trong E.
Ví d 1.1.5 Biu din hình hc của đồ th có hướng trong Ví d 1.1.4 như Hình 1.1.3.
Hình 1.1.3. Biu din hình hc của đồ th có hướng
Mt cung e = (u, u) của đồ th có hướng G ni một đỉnh u với chính nó được gi
mt cung khuyên (loop arc) ca G, chng hn cnh e
5
= (v
2
, v
2
) ca đồ th G trong
d 1.1.4 là mt cung khuyên. Hai cung e
i
e
j
cùng ni mt cặp đnh trong G được gi
là nhng cung song song hay cung bi (multiple arc) ca G, chng hn ba cung e
8
= (v
5
,
v
3
), e
9
= (v
5
, v
3
), e
10
= (v
5
, v
3
) của đồ th G trong Ví d 1.1.4 là ba cung song song.
Đinh nghĩa 1.1.4 Một đồ th có hướng G không có cung khuyên hoc cung bội được
gi là mt đơn đồ th có hướng (simple directed graph).
Ví d 1.1.6 Đồ th được cho như trong Hình 1.1.4 mt đơn đồ th có hướng.
5
Hình 1.1.4. Một đơn đồ th có hướng
1.2 Các thut ng
Phn này gii thiu mt s thut ng cơ bản, thông dng mô t mi quan h ca các
đỉnh, các cnh ca mt đồ th như các định nghĩa ới đây.
Đinh nghĩa 1.2.1 Hai đỉnh uv trong một đồ th vô hướng G được gi là lin k hay
k nhau (adjacent) nếu (u, v) là mt cnh ca G và nếu cnh e = (u, v) thì e được gi là
cnh liên thuc (incident) với các đỉnh uv.
S cnh liên thuc vi một đỉnh trong một đồ th hướng được gi bc của đỉnh
đó. Bậc ca một đỉnh trong đồ th vô hướng được định nghĩa như sau.
Đinh nghĩa 1.2.2 Bc ca một đỉnh v trong đ th hướng G, hiu deg
G
(v) hoc
deg(v), là s cnh liên thuc với đỉnh v trong G.
Chúng ta lưu ý rng, trong định nghĩa trên, mt cnh khuyên (v, v) được xem n
hai cnh liên thuc với đỉnh v nên được tính hai ln cho bc ca v. Đỉnh bc 0 được gi
đỉnh cô lp đỉnh bc 1 được gi là đỉnh treo.
Ví d 1.2.1 Xem đồ th vô hướng như hình 1.2.1 dưới đây. Ta d dàng thy deg(v
1
) =
3, deg(v
2
) = 4, deg(v
3
) = 3, deg(v
4
) = 3, deg(v
5
) = 1.
6
Hình 1.2.1. Bậc các đỉnh của đồ th vô hướng
T định nghĩa 1.2.2 chúng ta thấy rng mi cnh e = (u, v) trong đồ th vô hướng
G được tính hai ln trong tng bc của đỉnh u và đỉnh v (mt ln cho bc ca u và mt
ln cho bc ca v cnh e k c uv). T đó, ta có kết qu v mi quan h gia s
cnh và tng các bc của các đỉnh trong mt đồ th hướng như sau.
Định lý 1.2.1 Vi mỗi đồ th vô hướng G = (V, E), thì
2|E| =
vV
deg(v).
Chng minh: Theo định nghĩa bc ca mt đỉnh của đồ th hướng, deg(x) là s đỉnh
k vi x deg(y) s đỉnh k vi y. T đó, mỗi cnh e = (x, y) E tương ng vi
mt cặp đnh x và y k nhau và được tính hai ln trong
vV
deg(v), mt ln trong deg(x)
và mt ln trong deg(y). Vì vy 2|E| =
vV
deg(v).
d 1.2.3 Cho đ th vô hướng G 10 đỉnh, trong đó 4 đnh bc 3, c đỉnh còn
lại đều có bậc 2. Đồ th G có bao nhiêu cnh ?
Gii: Đồ th có 10 đỉnh, trong đó có 4 đỉnh bc 3 nên còn lại 6 đỉnh bc 2. Gi m s
cnh ca G thì 2m = 4.3+6.2 =2m, suy ra m = 12.
T định lý trên chúng ta có h qu dưới đây.
H qu 1.2.1 S đỉnh bc l trong một đồ th hướng G = (V, E) là mt s chn.
Chng minh: Gi m là s cnh, O U tập các đỉnh bc l bc chn ca G, thì
theo định lý 1.2.1 ta có
2m =
vV
deg(v) =
v
O
deg(v) +
vU
deg(v).
Do deg(v) chn vi mi vU nên
vU
deg(v) = 2k vi k mt s nguyên không
âm, nên
7
2m =
vO
deg(v) + 2k.
T đó
vO
deg(v) = 2m - 2k.
tng
vO
deg(v) = 2m - 2k là mt s chn và mi s hng deg(v) trong tng này
là mt s l nên s các s hng trong
vO
deg(v) mt s chn. Nghĩa là |O| là mt s
chn. Nói cách khác s đỉnh bc l ca G là mt s chn.
Đinh nghĩa 1.2.3 Đỉnh v được gi lin k với đỉnh u trong một đồ th hướng G
nếu (u, v) là mt cnh ca G. Cnh e = (u, v) được gi là cnh liên thuc với các đỉnh u
v, đi ra từ đỉnh u và đi vào đỉnh v.
Trong mt đồ th có hướng, mỗi đỉnh có mt s cnh (cung) liên thuộc đi ra và vào
đỉnh này, s cạnh đi ra và vào của một đỉnh được gi bán bc ra vào của đỉnh và
được định nghĩa như sau.
Đinh nghĩa 1.2.4 Gi vmột đỉnh trong đồ th hướng G, bán bc ra ca v, ký hiu
deg
+
(v), s cạnh đi ra khi nó, n bc vào ca v, ký hiu deg
(v), s cạnh đi vào
nó, bc ca v, ký hiu deg(v), là tng bán bc ra và bán bc vào ca nó.
Lưu ý rng, mt cnh khuyên (v, v) trong đồ th có hướng được xem nhai cạnh
liên thuc vi đỉnh v, mt cnh đi vào v và mt cnh đi ra khi v nên bán bc ra và bán
bc vào ca v bng 1. Đỉnh bán bc ra và bán bc vào bng 0 được gi đỉnh
lp. Đỉnh có tng bán bc ra và bán bc vào bng 1 được gi là đỉnh treo.
Ví d 1.2.4 Cho đồ thhướng như hình dưới đây.
Hình 1.2.2. Bc của các đỉnh trong đồ thhưng
8
Ta d dàng thy deg
(v
1
) = 3, deg
(v
1
) = 1, deg(v
1
) = 4, deg
(v
2
) = 1, deg
(v
2
) = 2,
deg(v
2
) = 3, deg
(v
3
) = 1, deg
(v
3
) = 4, deg(v
3
) = 5, deg
(v
4
) = 1, deg
(v
4
) = 3, deg(v
4
) =
4, deg
(v
5
) = 4, deg
(v
5
) = 0, deg(v
5
) = 4.
Định lý 1.2.2 Gi s G = (V, E) là một đồ thhướng. Khi đó ta
|E| =
vV
deg
(v) =
vV
deg
(v).
Chng minh: Theo định nghĩa bán bc ra bán bc vào ca một đỉnh, mi cnh (u,
v) được tính mt ln trong bán bc ra ca u mt ln trong bán bc vào ca v. T đó
suy ra h thc cn chng minh.
1.3 Đường đi, chu trình, đồ th liên thông
Đường đi, chu trình tính liên thông là các khái niệm cơ bản ca đồ th. Các khái
niệm này là cơ sơ để xem xét các tính cht, loại đồ th cũng như kh năng áp dụng ca
chúng trong khoa hc, k thut và thc tế.
Định nghĩa 1.3.1 Đường đi độ dài n t đỉnh u đến đỉnh v, vi n s nguyên dương,
trên đồ th vô hướng G = (V, E) là mt dãy các đỉnh x
0
, x
1
,…x
n-1
, x
n
sao cho u = x
0
, v =
x
n
(x
i
, x
i+1
) E, i = 0, 1,…, n-1. Đnh u đỉnh v tương ng gọi là đỉnh đầu đỉnh
cui của đường đi. Đường đi đỉnh đu trùng với đỉnh cui được gi chu trình.
Đường đi hay chu trình được gi là đơn (simple) nếu không có cnh nào lp li.
Ví d 1.3.1 Cho đồ th vô hướng G như hình 1.3.1.
Hình 1.3.1. Đường đi và chu trình của đồ th vô hướng
Thì dãy các đỉnh v
1
, v
3
, v
4
, v
5
là một đường đi và cũng là đường đi đơn trên G, trong
khi dãy v
1
, v
3
, v
4
, v
5,
v
4
, v
2
một đường đi không đơn trên G, do cnh e
7
= (v
4
, v
5
) được
9
lp li mt ln trên đường đi này. Dãy v
1
, v
3
, v
4
, v
2
, v
1
mt chu trình đơn, trong khi
v
1
, v
3
, v
4
, v
2
, v
1
, v
3
, v
1
không phi chu trình đơn vì cnh e
4
= (v
1
, v
3
) hoc e
5
= (v
1
, v
3
)
được lp li mt ln.
Trên đồ th có hướng, khái niệm đường đi, chu trình được định nghĩa tương tự như
trên đồ th vô hướng như sau.
Định nghĩa 1.3.2 Đường đi độ dài n t đỉnh u đến đỉnh v, vi n s nguyên dương,
trên đồ th có hướng G = (V, E) là mt dãy các đnh x
0
, x
1
,…x
n-1
, x
n
sao cho u = x
0
, v =
x
n
(x
i
, x
i+1
) E, i = 0, 1,…, n-1. Đnh u đỉnh v tương ng gọi là đỉnh đầu đỉnh
cui của đường đi. Đường đi đỉnh đu trùng với đỉnh cuối được gi chu trình.
Đường đi hay chu trình được gi là đơn nếu không cnh nào lp li.
Ví d 1.3.2 Cho đồ thhướng G như hình 1.3.2.
Hình 1.3.2. Đường đi và chu trình của đồ thhướng
Tdãy các đỉnh v
1
, v
3
, v
4
, v
1
, v
2
một đường đi và cũng đường đi đơn trên G,
trong khi dãy v
1
, v
3
, v
4
, v
1,
v
3
một đường đi không đơn trên G, do cnh e
1
= (v
1
, v
3
)
được lp li mt lần trên đường đi này. Dãy v
1
, v
3
, v
4
, v
1
mt chu trình đơn, trong khi
v
1
, v
3
, v
4
, v
1
, v
4
, v
1
không phi chu trình đơn vì cnh e
3
= (v
4
, v
1
) được lp li mt ln.
S liên thông của đồ th biu din kh năng tồn tại đường đi giữa các cặp đỉnh ca
đồ thị, đây là một tính chất được ng dng nhiu trong các h thống được mô hình hóa
bởi các đồ th. Chng hn, mt mng máy tính được biu din bi một đồ thị, khi đó
nếu đồ th liên thông thì các máy tính trong mng có th gi tín hiệu cho nhau, ngược
li s có mt s máy không th gi n hiu cho các máy khác. Khái niệm đ th
hướng liên thông được định nghĩa như sau.
10
Định nghĩa 1.3.3 Một đồ th vô hướng được gi liên thông nếu có đường đi giữa mi
cặp đỉnh phân bit của đồ th.
Ví d 1.3.3 Trong Hình 1.3.3, đồ th G
1
là liên thông, đồ th G
2
là không liên thông,
không có đường đi giữa hai đỉnh cd.
Hình 1.3.3. Đồ th vô hưng liên thông và kng liên thông
Trong đồ th hướng liên thông, không ch luôn tn tại đường đi giữa các cặp đỉnh
mà còn tn tại đường đi đơn giữa chúng như định lý sau.
Định lý 1.3.1 Gia mi cặp đnh phân bit ca một đồ th hướng liên thông luôn
đường đi đơn.
Chng minh : Gi s u và v là hai đỉnh phân bit của đồ th hướng liên thông G =
(V, E). Vì G liên thông nên ít nht một đường đi giữa u v. Gi s x
0
, x
1
, . . . , x
n
,
trong đó x
0
= ux
n
= v, là đường đi có đ dài ngn nht t u đến v. Rõ ràng, đường đi
này chính là đường đi đơn từ u đến v. Tht vy, nếu đường đi ngắn nht này không phi
là đường đi đơn thì tn tại hai đỉnh x
i
x
j
sao cho x
i
= x
j
vi 0 i j. Khi đó có đường
đi ngắn hơn từ u đến v qua các đỉnh x
0
, x
1, . . . ,
x
i1
, x
j
, . . . , x
n
bằng cách xóa đi các cạnh
tương ứng vi dãy đỉnh x
i
, . . . , x
j1
.
Đối với đ th hướng, hai khái nim liên thông liên thông mnh liên
thông yếu ph thuc vào việc ta có xem xét đến hưng trên các cnh hay không.
Định nghĩa 1.3.4 Một đồ th hướng được gi liên thông mnh nếu đường đi
gia mi cặp đỉnh phân bit ca nó. Một đồ th hướng được gi là liên thông yếu nếu
đồ th vô hướng tương ứng của nóđồ th liên thông.
11
Chúng ta lưu ý rằng, đường đi giữa mt cp đỉnh x y trong đồ th liên thông mnh
đường đi từ x đến y hoc t y đến x. vậy, để đồ th G liên thông mnh tvi
mi cặp đỉnh xy phải luôn có đường đi từ x đến y và t y đến x.
Ví d 1.3.4 Trong Hình 1.3.4, đồ th G
1
không liên thông mạnh, đồ th G
2
liên thông
mnh.
Hình 1.3.4. Đồ th có hướng liên thông mnh và không liên thông mnh
Chúng ta th thy rng bt k một đồ th hướng liên thông nào cũng thể
định hướng các cạnh để to thành mt đồ th có hướng liên thông yếu. Tuy nhiên, điu
này không đúng đối vi đồ th có hướng liên thông mnh. Một đồ th hướng mà có
th định hướng được các cnh của nó để to ra mt đồ th có hướng liên thông mnh thì
gọi là đồ th vô hướng liên thông định hướng được. Điều kin để th định hướng các
cnh ca một đ th hướng liên thông đ tr thành một đồ th có hướng liên thông
mạnh được ch ra như định sau.
Định 1.3.2 Một đồ th hướng liên thông là định hướng được khi ch khi mi
cnh ca nó thuc ít nht mt chu trình.
Chng minh : Gi s mt đồ th vô hướng định ớng được thành đồ th có hướng liên
thông mnh. Gi (u, v) là mt cnh ca đồ th có hướng liên thông mnh. T s tn ti
đường đi hướng t u đến v t v đến u nên (u, v) phi nm trên ít nht mt chu
trình ca đồ th này do đó cạnh (u, v) phi thuc ít nht mt chu trình của đ th vô
hướng liên thông. Điều kin cần được chng minh.
12
Để chứng minh điều kiện đủ ta ch ra mt th tc đnh hướng các cnh ca mt đồ
th hướng liên thông G mà mi cnh ca nó thuc ít nht mt chu trình. Gi s C
mt chu trình ca G. Định hướng các cnh ca C theo một hướng đi vòng theo nó. Nếu
tt c các cnh ca G đã được định hướng thì kết thúc th tục. Ngược li, chn e là mt
cạnh chưa được định ng chung một đỉnh vi ít nht mt trong s các cạnh đã
được định hướng. Theo gi thiết chu trình C’ cha e. Định hướng các cạnh chưa
được định hướng ca C’ theo một hướng dọc theo chu trình này (không định hướng li
các cạnh đã được định hướng). Th tc s được lp lại cho đến khi tt c các cnh ca
G được định hướng. ràng với hai đỉnh bt k thuc các cạnh đã được định hướng
luôn có đường đi có hướng gi chúng. s cnh ca G là hu hn nên th tc s dng
do mi lần định hướng các cnh trên mt chu trình mi C’ ta định hướng thêm được ít
nht mt cnh. Khi th tc dng ta thu được đồ th G
*
là đ th hướng liên thông
mnh.
Trong mt s ng dng, chúng ta cn xem xét mt b phn các cạnh đỉnh ca
một đồ th. Mt b phận như vậy gimột đồ th con của đồ thị. Đồ th con của đồ th
được định nghĩa mt cách hình thức như sau.
Định nghĩa 1.3.5 Một đồ th H = (W, F) được gi là đ th con của đồ th G = (V, E)
nếu W V F E.
Ví d 1.3.5 Trong Hình 1.3.5, đồ th H là đồ th con của đồ th G.
Hình 1.3.5. Đồ th con của đồ th
Khi một đ th không liên thông (mnh) thì nó bao gm mt s đồ th con mà mi
đồ th con là một đồ th liên thông (mnh). Ta gi mỗi đồ th con này mt thành phn
liên thông (mnh) của đồ th.
Ví d 1.3.6 Đồ th H như hình 1.3.6 gm ba thành phn liên thông H
1
, H
2
, H
3
.
G
H
13
Hình 1.3.6. Các thành phn liên thông của đồ th vô hướng
d 1.3.7 Cho các đồ th hướng G H như hình 1.3.7, tđồ th G là liên thông
mạnh. Đ th H liên thông yếu, không liên thông mnh, ba thành phn liên
thông mạnh là đỉnh a, đỉnh e đồ th con gồm các đỉnh b, c d các cnh (b, c), (c,
d) và (d, b).
Hình 1.3.7. Các thành phn liên thông của đồ th có hướng
Trong một đồ th có th tn ti một đỉnh và mt s cạnh đặc bit mà nếu loi b
khỏi đồ th thì có thm mt nh liên thông hoặc tăng s thành phn liên thông ca đồ
th. Những đỉnh và cạnh như vậy gọi là đỉnh r nhánh và cnh cu ca đồ th.
Định nghĩa 1.3.6 Đỉnh v được gi đỉnh r nhánh ca đ th nếu loi b v cùng vi
các cnh liên thuc vi nó khỏi đồ th thì làm tăng số thành phn liên thông của đồ th.
Cnh e được gi là cnh cu nếu loi b nó khỏi đồ th t làm tăng số thành phn liên
thông của đ th.
Ví d 1.3.8 Cho đồ th như Hình 1.3.8 thì đỉnh c là đỉnh r nhánh, các cnh (d, e) và (f,
g) là các cnh cu.
14
Hình 1.3.8. Đỉnh r nhánh và cnh cu của đồ th
1.4 Mt s dng đồ th đặc bit
Phn này gii thiu mt s đồ th hướng đặc bit nhiu ng dng trong thc
tế như đ th đầy đủ, đồ th vòng, bánh xe, lập phương và đồ th hai phía. Mt trong các
ng dng ca đồ th đầy đủ, đ th vòng, bánh xe và lp phương là mô hình hóa sơ đồ
kết ni mng máy tính. Đồ th hai phía th được ng dụng để gii bài toán tối ưu
ghép cp, đối sánh và phân công làm vic.
Định nghĩa 1.4.1 Mt đồ th đầy đủ n đỉnh, n 1, hiu K
n
, mt đơn đồ th vô
hướng có n đỉnh mi cặp đỉnh phân bit của nó đều tương ứng vi mt cnh.
Ví d 1.4.1 Hình 1.4.1 cho các đồ th đầy đủ K
3
, K
4
, K
5
K
6
.
Hình 1.4.1. Đồ th K
n
đầy đ
Định nghĩa 1.4.2 Mt đồ th vòng n đỉnh, n 3, ký hiu C
n
, là mt đơn đồ th vô hướng
n đnh v
1
, v
2
, …, v
n
và các cnh ca nó to thành mt chu trình duy nht (v
1
, v
2
), (v
2
,
v
3
), …, (v
n-1
, v
n
), (v
n
, v
1
).
Ví d 1.4.2 Hình 1.4.2 cho các đồ th vòng C
3
, C
4
, C
5
C
6
.

Preview text:

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN GIÁO TRÌNH
LÝ THUYẾT ĐỒ THỊ Mã số: GT2020-7
Chủ biên: PGS.TS. Nguyễn Hòa
Thành viên tham gia biên soạn: TS. Huỳnh Minh Trí
ThS. Nguyễn Nhựt Đông
Thành phố Hồ Chí Minh, tháng 7 năm 2022 ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN GIÁO TRÌNH
LÝ THUYẾT ĐỒ THỊ Mã số: GT2020-7
Xác nhận của chủ tịch Chủ biên
hội đồng thẩm định (ký, họ tên) (ký, họ tên)
PGS.TS. Nguyễn Tuấn Đăng PGS.TS. Nguyễn Hòa
Thành phố Hồ Chí Minh, tháng 7 năm 2022
GIỚI THIỆU MỞ ĐẦU
Lý thuyết đồ thị là cơ sở toán học để mô hình hóa, biểu diễn thông tin, phát triển
các thuật toán ứng dụng giải quyết nhiều bài toán thực tế, đặc biệt là các bài toán tối
ưu như bài toán tìm các đường đi ngắn nhất, tìm luồng cực đại trong mạng, tô màu
bản đồ với ít màu nhất v.v. Khái niệm đồ thị, lý thuyết đồ thị như là một bộ phận của
lĩnh vực Toán rời rạc xuất hiện từ khá sớm, khoảng cuối thế kỳ 17 đầu thế kỳ 18, do
các nhà toán học Euler và Hamilton khởi xướng khi giải quyết một số bài toán trong
cuộc sống hàng ngày. Tuy nhiên, lý thuyết đồ thị chỉ phát triển mạnh mẽ và tách khỏi
lĩnh vực Toán rời rạc như một lý thuyết toán học riêng, có tính đặc thù với khả năng
mô hình hóa, biểu diễn và xử thông tin hiệu quả, kể từ khi Khoa học máy tính và Công
nghệ thông tin xuất hiện vào khoảng 1950. Có thể nói, lý thuyết đồ thị là một trong
những cơ sở toán học cho sự phát triển Công nghệ thông tin và Khoa học máy tính
nhưng chính sự phát triển nhanh chóng vượt bậc của Công nghệ thông tin và Khoa
học máy tính cũng thúc đẩy mạnh mẽ việc nghiên cứu, khám phá các kết quả mới
trong Lý thuyết đồ thị và làm lý thuyết này phát triển nhanh hơn nhằm đáp ứng ngày
càng cao các công cụ biểu diễn, tính toán và xử lý mới của Công nghệ thông tin và Khoa học máy tính.
Với đặc thù như một hệ thống toán học có tính công cụ thiết yếu cho Công nghệ
thông tin và Khoa học máy tính, Lý thuyết đồ thị được giảng dạy, và được xem như
một môn học cơ sở ngành bắt buộc của các sinh viên, trong các khoa công nghệ
thông tin, khoa học máy tính của hầu hết các trường đại học trên thế giới.
Giáo trình Lý thuyết đồ thị này được biên soạn cho sinh viên chuyên ngành Công
nghệ thông tin, Khoa học máy tính, kỹ thuật máy tính, công nghệ phần mềm và có thể
được học tập và giảng dạy vào kỳ cuối của năm học thứ hai của bậc đại học. Sinh
viên các ngành điện tử viễn thông, toán tin học, toán ứng dụng cũng có thể xem giáo
trình này như một tài liệu tham khảo bổ ích. Giáo trình tập trung trình bày các vấn đề
cốt lõi có phạm vi ứng dụng chung, rộng rãi nhất vào Khoa học máy tính và Công
nghệ thông tin của Lý thuyết đồ thị như hệ thống khái niệm, thuật ngữ, các kiểu đồ
thị, các hình thức biểu diễn đồ thị, các thuật toán tìm kiếm trên đồ thị, đồ thị Euler,
Hamilton, cây và cây bao trùm nhỏ nhất của đồ thị, các thuật toán tìm đường đi ngắn i
nhất và tìm luồng cực đại trên mạng. Các nội dung kiến thức này cũng chính là các
nội dung được yêu cầu giảng dạy trong đề cương chi tiết của môn Lý thuyết đồ thị
trong chương trình đào tạo kỹ sư của Khoa công nghệ thông tin Đại học Sài gòn.
Để trình bày các nội dung Lý thuyết đồ thị, bao gồm cả những khái niệm trừu
tượng cũng như các tính chất phức tạp của các đối tượng toán học một cách khoa
học, có hệ thống sao cho dễ đọc và dễ hiểu, các tác giả đã kết hợp các dẫn nhập, diễn
giải trực giác, không hình thức với các định nghĩa hình thức, chính xác, các chứng
minh chặt chẽ và các ví dụ minh họa có tính điển hình từ đơn giản đến phức tạp. Các
thuật toán trên đồ thị được trình bày một cách ngắn gọn, rõ ràng được chứng minh
tính đúng đắn dựa trên các cơ sở toán học và được tính toán độ phức tạp về thời gian
đầy đủ để đảm bảo có thể ứng dụng trong thực tế.
Một hệ thống các bài tập phong phú có chọn lọc được giới thiệu sau mỗi chương
giúp sinh viên củng cố kiến thức cơ bản, rèn luyện và nâng cao khả năng giải quyết
vấn đề cũng như mở rộng hơn nữa các vấn đề chưa được đề cập trong lý thuyết.
Mặc dù đã có nhiều cố gắng nhưng chắc chắn giáo trình Lý thuyết đồ thị này
không thể tránh khỏi những thiếu sót. Các tác giả mong nhận được những nhận xét,
đóng góp quí giá của các sinh viên, giảng viên nói riêng và các độc giả nói chung.
Thành phố Hồ Chí Minh, tháng 7 năm 2022 Nguyễn Hòa Huỳnh Minh Trí Nguyễn Nhựt Đông ii MỤC LỤC
Chương 1 Các khái niệm cơ bản của lý thuyết đồ thị ....................................... …1 1.1
Định nghĩa đồ thị ........................................................................................ 1
1.2 Các thuật ngữ .............................................................................................. 5 1.3
Đường đi, chu trình, đồ thị liên thông .......................................................... 8 1.4
Một số dạng đồ thị đặc biệt ....................................................................... 14
1.5 Đồ thị phẳng ……..……………………………………...............................19
Bài tập..………………………………………...…………..……….............25
Chương 2 Biểu diễn đồ thị và sự đẳng cấu đồ thị ................................................ 31 2.1
Ma trận kề................................................................................................. 31 2.2
Ma trận trọng số ........................................................................................ 33 2.3
Ma trận liên thuộc. .................................................................................... 34 2.4
Danh sách kề............................................................................................. 36 2.5
Danh sách cạnh ......................................................................................... 38 2.6
Hiệu quả các phương pháp biểu diễn đồ thị……………………………......40 2.7
Đẳng cấu đồ thị ......................................................................................... 43
Bài tập. ..................................................................................................... 47
Chương 3 Các thuật toán tìm kiếm trên đồ thị và ứng dụng .………..................54 3.1
Tìm kiếm theo chiều rộng …………………………………………………54 3.2
Tìm kiếm theo chiều sâu ………………………………………………......62 3.3
Tìm đường đi giữa hai đỉnh ……………………………………………….71 3.4
Tìm các thành phần liên thông của đồ thị………………………………….72
Bài tập……………………………………………………………………...78
Chương 4 Đồ thị Euler và đồ thị Hamilton ……………........................................82 4.1
Đồ thị Euler ………………………………………………………………..82 4.2
Đồ thị Hamilton ........................................................................................ 90
Bài tập ...................................................................................................... 99
Chương 5 Cây và cây bao trùm của đồ thị ........................................................ 103 5.1
Cây và các tính chất cơ bản của cây ........................................................ 103 iii 5.2
Cây bao trùm của đồ thị .......................................................................... 106 5.3
Cây bao trùm bé nhất của đồ thị .............................................................. 108
Bài tập .................................................................................................... 117
Chương 6 Đường đi ngắn nhất .......................................................................... 120 6.1
Các khái niệm mở đầu............................................................................. 120 6.2
Đường đi ngắn nhất xuất phát từ một đỉnh .............................................. 123 6.3
Thuật toán Bellman-Ford ........................................................................ 131 6.4
Thuật toán Dijkstra ................................................................................. 135 6.5
Đường đi ngắn nhất giữa các cặp đỉnh ..................................................... 139
Bài tập .................................................................................................... 146
Chương 7 Luồng cực đại trong mạng ............................................................... 150 6.1
Mạng, luồng mạng và bài toán tìm luồng cực đại .................................... 150 6.2
Lát cắt, đường tăng luồng, định lý Ford-Fulkerson .................................. 152 6.3
Thuật toán tìm luồng cực đại trong mạng ................................................ 161
Bài tập .................................................................................................... 164
TÀI LIỆU THAM KHẢO ................................................................................... 168 iv Chương 1
CÁC KHÁI NIỆM CƠ BẢN
CỦA LÝ THUYẾT ĐỒ THỊ
ác khái niệm cơ bản của lý thuyết đồ thị là những khái niệm có tính nền tảng làm
C cơ sở để xây dựng, phát triển lý thuyết đồ thị. Phần 1.1, 1.2 và 1.3 của chương
này lần lượt trình bày các khái niệm và thuật ngữ về đồ thị, cạnh bội, cạnh khuyên, đỉnh
kề, bậc, bán bậc của đỉnh, đường đi, chu trình, đồ thị con và tính liên thông của đồ thị.
Phần 1.4 trình bày một số đồ thị đặc biệt có nhiều ứng dụng trong thiết kế các hệ thống
mạng trong lĩnh vực Công nghệ Thông tin và Khoa học Máy tính. Phần 1.5 trình bày
về đồ thị phẳng, một lớp đồ thị đặc biệt, có thể biểu diễn hình học trên mặt phẳng mà
không có sự giao cắt của các cạnh, là cơ sở cho nhiều ứng dụng trong thiết kế mạch
điện tử và mô hình hóa các hệ thống kết nối các đối tượng có tính đặc thù trong thực tế.
1.1 Định nghĩa đồ thị
Đồ thị là một mô hình toán học biểu diễn các cấu trúc rời rạc bao gồm một tập các
phần tử kết hợp với một tập các quan hệ giữa các cặp phần tử của chúng. Khi tính thứ
tự trong mối quan hệ giữa các phần tử không được xem xét chúng ta có một đồ thị vô
hướng, ngược lại chúng ta có đồ thị có hướng. Đồ thị vô hướng được định nghĩa một cách hình thức như sau.
Đinh nghĩa 1.1.1 Một đồ thị vô hướng (undirected graph) là một bộ đôi G = (V, E), trong đó
1. V là một tập hợp hữu hạn khác rỗng các phần tử được gọi là các đỉnh (vertex) của G. 1
2. E là một tập hợp hữu hạn các phần tử được gọi là các cạnh (edge) của G sao cho
mỗi cạnh trong E ứng với một cặp không có thứ tự của các đỉnh trong V.
Chúng ta có thể ký hiệu G(V, E) để biểu diễn đồ thị G = (V, E). Các đỉnh của G cũng
còn được gọi là các nút (node) của G. Nếu cạnh e trong E ứng với cặp đỉnh uv trong
V ta viết e = (u, v) hay e = (v, u) và nói cạnh e nối các đỉnh uv, các đỉnh uv là hai
đầu mút của cạnh e. Đồ thị G được định nghĩa như trên gọi là đồ thị hữu hạn (finite
graph). Trong trường hợp VE là các tập hợp vô hạn (infinite set) thì đồ thị G = (V,
E) được gọi là đồ thị vô hạn (infinite graph).
Ví dụ 1.1.1 Một đồ thị vô hướng G = (V, E) với tập đỉnh và tập cạnh như sau:
1. V = {v1, v2, v3, v4, v5}.
2. E = {e1 = (v2, v2), e2 = (v2, v4), e3 = (v1, v2), e4= (v1, v3), e5 = (v1, v3), e6 = (v3, v4),
e7 = (v4, v5)}.
Một đồ thị vô hướng G = (V, E) có thể được biểu diễn hình học trong một mặt phẳng
bởi một tập các điểm tương ứng với các đỉnh trong V và một tập các đoạn (thẳng hoặc
cong) nối các điểm đó tương ứng với các cạnh trong E.
Ví dụ 1.1.2 Biểu diễn hình học của đồ thị trong Ví dụ 1.1.1 như Hình 1.1.1.
Hình 1.1.1. Biểu diễn hình học của đồ thị
Một cạnh e = (u, u) của đồ thị vô hướng G nối một đỉnh u với chính nó được gọi là
một cạnh khuyên (loop edge) của G, chẳng hạn cạnh e1 = (v2, v2) của đồ thị G trong Ví
dụ 1.1.1 là một cạnh khuyên. Hai cạnh eiej cùng ứng với một cặp đỉnh trong G được
gọi là những cạnh song song hay cạnh bội (multiple edge) của G, chẳng hạn hai cạnh
e4 = (v1, v3), e5 = (v1, v3) của đồ thị G trong Ví dụ 1.1.1 là hai cạnh song song. 2
Đinh nghĩa 1.1.2 Một đồ thị G không có cạnh khuyên hoặc cạnh bội được gọi là một
đơn đồ thị (simple graph).
Ví dụ 1.1.3 Các đồ thị được cho như trong Hình 1.1.2 là các đơn đồ thị.
Hình 1.1.2. Đơn đồ thị vô hướng
Lưu ý rằng, nếu chúng ta không quan tâm đến các đỉnh và các cạnh cụ thể của các
đồ thị, chúng ta có thể bỏ qua ký hiệu các tên đỉnh và cạnh như biểu diễn phẳng của đồ
thị thứ ba trong Hình 1.1.2.
Khi tính thứ tự của các cặp đỉnh ứng với một cạnh trong đồ thị được xem xét, đồ thị
được gọi là có hướng. Đồ thị có hướng được định nghĩa một cách hình thức như sau.
Đinh nghĩa 1.1.3 Một đồ thị có hướng (directed graph) là một bộ đôi G = (V, E), trong đó
1. V là một tập hợp hữu hạn khác rỗng các phần tử được gọi là các đỉnh của G.
2. E là một tập hợp hữu hạn các phần tử được gọi là các cạnh có hướng hay cung
(arc) của G sao cho mỗi cung trong E ứng với một cặp có thứ tự của các đỉnh trong V.
Như đối với đồ thị vô hướng, chúng ta có thể ký hiệu G(V, E) để biểu diễn đồ thị
có hướng G = (V, E). Các đỉnh của G cũng còn được gọi là các nút của G. Nếu cung e
trong E ứng với cặp đỉnh có thứ tự (u, v) trong V ta viết e = (u, v) và nói cung e là một
cung (cạnh) có hướng từ u đến v trong G nối đỉnh u với đỉnh v (hay e bắt đầu tại đỉnh
u, kết thúc tại đỉnh v), đỉnh u được gọi là đỉnh đầu và đỉnh v được gọi là đỉnh cuối của
cung e (uv cũng được gọi là gốc và ngọn của cung e). Đồ thị có hướng G được định
nghĩa như trên gọi là đồ thị có hướng hữu hạn (finite directed graph). Trong trường hợp 3
VE là các tập hợp vô hạn thì đồ thị G = (V, E) được gọi là đồ thị có hướng vô hạn (infinite directed graph).
Ví dụ 1.1.4 Một đồ thị có hướng G = (V, E) với tập đỉnh và tập cung như sau:
1. V = {v1, v2, v3, v4, v5}.
2. E = {e1 = (v1, v3), e2 = (v1, v4), e3 = (v4, v1), e4= (v1, v2), e5 = (v2, v2), e6 = (v3, v4),
e7 = (v5, v4), e8= (v5, v3), e9 = (v5, v3), e7 = (v5, v3)}.
Một đồ thị có hướng G = (V, E) có thể được biểu diễn hình học trong một mặt phẳng
bởi một tập các điểm tương ứng với các đỉnh trong V và một tập các đoạn (thẳng hoặc
cong) có hướng nối các điểm đó tương ứng với các cung trong E.
Ví dụ 1.1.5 Biểu diễn hình học của đồ thị có hướng trong Ví dụ 1.1.4 như Hình 1.1.3.
Hình 1.1.3. Biểu diễn hình học của đồ thị có hướng
Một cung e = (u, u) của đồ thị có hướng G nối một đỉnh u với chính nó được gọi là
một cung khuyên (loop arc) của G, chẳng hạn cạnh e5 = (v2, v2) của đồ thị G trong Ví
dụ 1.1.4 là một cung khuyên. Hai cung eiej cùng nối một cặp đỉnh trong G được gọi
là những cung song song hay cung bội (multiple arc) của G, chẳng hạn ba cung e8 = (v5,
v3), e9 = (v5, v3), e10 = (v5, v3) của đồ thị G trong Ví dụ 1.1.4 là ba cung song song.
Đinh nghĩa 1.1.4 Một đồ thị có hướng G không có cung khuyên hoặc cung bội được
gọi là một đơn đồ thị có hướng (simple directed graph).
Ví dụ 1.1.6 Đồ thị được cho như trong Hình 1.1.4 là một đơn đồ thị có hướng. 4
Hình 1.1.4. Một đơn đồ thị có hướng 1.2 Các thuật ngữ
Phần này giới thiệu một số thuật ngữ cơ bản, thông dụng mô tả mối quan hệ của các
đỉnh, các cạnh của một đồ thị như các định nghĩa dưới đây.
Đinh nghĩa 1.2.1 Hai đỉnh uv trong một đồ thị vô hướng G được gọi là liền kề hay
kề nhau (adjacent) nếu (u, v) là một cạnh của G và nếu cạnh e = (u, v) thì e được gọi là
cạnh liên thuộc (incident) với các đỉnh uv.
Số cạnh liên thuộc với một đỉnh trong một đồ thị vô hướng được gọi là bậc của đỉnh
đó. Bậc của một đỉnh trong đồ thị vô hướng được định nghĩa như sau.
Đinh nghĩa 1.2.2 Bậc của một đỉnh v trong đồ thị vô hướng G, ký hiệu degG(v) hoặc
deg(v), là số cạnh liên thuộc với đỉnh v trong G.
Chúng ta lưu ý rằng, trong định nghĩa trên, một cạnh khuyên (v, v) được xem như
hai cạnh liên thuộc với đỉnh v nên được tính hai lần cho bậc của v. Đỉnh bậc 0 được gọi
đỉnh cô lập đỉnh bậc 1 được gọi là đỉnh treo.
Ví dụ 1.2.1 Xem đồ thị vô hướng như hình 1.2.1 dưới đây. Ta dễ dàng thấy deg(v1) =
3, deg(v2) = 4, deg(v3) = 3, deg(v4) = 3, deg(v5) = 1. 5
Hình 1.2.1. Bậc các đỉnh của đồ thị vô hướng
Từ định nghĩa 1.2.2 chúng ta thấy rằng mỗi cạnh e = (u, v) trong đồ thị vô hướng
G được tính hai lần trong tổng bậc của đỉnh u và đỉnh v (một lần cho bậc của u và một
lần cho bậc của v vì cạnh e kề cả uv). Từ đó, ta có kết quả về mối quan hệ giữa số
cạnh và tổng các bậc của các đỉnh trong một đồ thị vô hướng như sau.
Định lý 1.2.1 Với mỗi đồ thị vô hướng G = (V, E), thì
2|E| = vV deg(v).
Chứng minh: Theo định nghĩa bậc của một đỉnh của đồ thị vô hướng, deg(x) là số đỉnh
kề với xdeg(y) là số đỉnh kề với y. Từ đó, mỗi cạnh e = (x, y)  E tương ứng với
một cặp đỉnh xy kề nhau và được tính hai lần trong vV deg(v), một lần trong deg(x)
và một lần trong deg(y). Vì vậy 2|E| = vV deg(v).
Ví dụ 1.2.3 Cho đồ thị vô hướng G có 10 đỉnh, trong đó có 4 đỉnh bậc 3, các đỉnh còn
lại đều có bậc 2. Đồ thị G có bao nhiêu cạnh ?
Giải: Đồ thị có 10 đỉnh, trong đó có 4 đỉnh bậc 3 nên còn lại 6 đỉnh bậc 2. Gọi m là số
cạnh của G thì 2m = 4.3+6.2 =2m, suy ra m = 12.
Từ định lý trên chúng ta có hệ quả dưới đây.
Hệ quả 1.2.1 Số đỉnh bậc lẻ trong một đồ thị vô hướng G = (V, E) là một số chẵn.
Chứng minh: Gọi m là số cạnh, OU là tập các đỉnh bậc lẻ và bậc chẵn của G, thì theo định lý 1.2.1 ta có
2m = vVdeg(v) = vO deg(v) + vU deg(v).
Do deg(v) chẵn với mọi vU nên vU deg(v) = 2k với k là một số nguyên không âm, nên 6
2m = vO deg(v) + 2k. Từ đó
vO deg(v) = 2m - 2k.
Vì tổng vO deg(v) = 2m - 2k là một số chẵn và mỗi số hạng deg(v) trong tổng này
là một số lẻ nên số các số hạng trong vO deg(v) là một số chẵn. Nghĩa là |O| là một số
chẵn. Nói cách khác số đỉnh bậc lẻ của G là một số chẵn.
Đinh nghĩa 1.2.3 Đỉnh v được gọi là liền kề với đỉnh u trong một đồ thị có hướng G
nếu (u, v) là một cạnh của G. Cạnh e = (u, v) được gọi là cạnh liên thuộc với các đỉnh u
v, đi ra từ đỉnh u và đi vào đỉnh v.
Trong một đồ thị có hướng, mỗi đỉnh có một số cạnh (cung) liên thuộc đi ra và vào
đỉnh này, số cạnh đi ra và vào của một đỉnh được gọi là bán bậc ra và vào của đỉnh và
được định nghĩa như sau.
Đinh nghĩa 1.2.4 Gọi v là một đỉnh trong đồ thị có hướng G, bán bậc ra của v, ký hiệu
deg+(v), là số cạnh đi ra khỏi nó, bán bậc vào của v, ký hiệu deg(v), là số cạnh đi vào
nó, bậc của v, ký hiệu deg(v), là tổng bán bậc ra và bán bậc vào của nó.
Lưu ý rằng, một cạnh khuyên (v, v) trong đồ thị có hướng được xem như hai cạnh
liên thuộc với đỉnh v, một cạnh đi vào v và một cạnh đi ra khỏi v nên bán bậc ra và bán
bậc vào của v bằng 1. Đỉnh có bán bậc ra và bán bậc vào bằng 0 được gọi là đỉnh cô
lập. Đỉnh có tổng bán bậc ra và bán bậc vào bằng 1 được gọi là đỉnh treo.
Ví dụ 1.2.4 Cho đồ thị có hướng như hình dưới đây.
Hình 1.2.2. Bậc của các đỉnh trong đồ thị có hướng 7
Ta dễ dàng thấy deg(v1) = 3, deg(v1) = 1, deg(v1) = 4, deg(v2) = 1, deg (v2) = 2,
deg(v2) = 3, deg(v3) = 1, deg(v3) = 4, deg(v3) = 5, deg(v4) = 1, deg(v4) = 3, deg(v4) =
4, deg(v5) = 4, deg(v5) = 0, deg(v5) = 4.
Định lý 1.2.2 Giả sử G = (V, E) là một đồ thị có hướng. Khi đó ta có
|E| = vV deg(v) = vV deg(v).
Chứng minh: Theo định nghĩa bán bậc ra và bán bậc vào của một đỉnh, mỗi cạnh (u,
v) được tính một lần trong bán bậc ra của u và một lần trong bán bậc vào của v. Từ đó
suy ra hệ thức cần chứng minh.
1.3 Đường đi, chu trình, đồ thị liên thông
Đường đi, chu trình và tính liên thông là các khái niệm cơ bản của đồ thị. Các khái
niệm này là cơ sơ để xem xét các tính chất, loại đồ thị cũng như khả năng áp dụng của
chúng trong khoa học, kỹ thuật và thực tế.
Định nghĩa 1.3.1 Đường đi độ dài n từ đỉnh u đến đỉnh v, với n là số nguyên dương,
trên đồ thị vô hướng G = (V, E) là một dãy các đỉnh x0, x1,…xn-1, xn sao cho u = x0, v =
xn và (xi, xi+1)  E, i = 0, 1,…, n-1. Đỉnh u và đỉnh v tương ứng gọi là đỉnh đầu và đỉnh
cuối của đường đi. Đường đi có đỉnh đầu trùng với đỉnh cuối được gọi là chu trình.
Đường đi hay chu trình được gọi là đơn (simple) nếu không có cạnh nào lặp lại.
Ví dụ 1.3.1 Cho đồ thị vô hướng G như hình 1.3.1.
Hình 1.3.1. Đường đi và chu trình của đồ thị vô hướng
Thì dãy các đỉnh v1, v3, v4, v5 là một đường đi và cũng là đường đi đơn trên G, trong
khi dãy v1, v3, v4, v5, v4, v2 là một đường đi không đơn trên G, do cạnh e7 = (v4, v5) được 8
lặp lại một lần trên đường đi này. Dãy v1, v3, v4, v2, v1 là một chu trình đơn, trong khi
v1, v3, v4, v2, v1, v3, v1 không phải chu trình đơn vì cạnh e4 = (v1, v3) hoặc e5 = (v1, v3)
được lặp lại một lần.
Trên đồ thị có hướng, khái niệm đường đi, chu trình được định nghĩa tương tự như
trên đồ thị vô hướng như sau.
Định nghĩa 1.3.2 Đường đi độ dài n từ đỉnh u đến đỉnh v, với n là số nguyên dương,
trên đồ thị có hướng G = (V, E) là một dãy các đỉnh x0, x1,…xn-1, xn sao cho u = x0, v =
xn và (xi, xi+1)  E, i = 0, 1,…, n-1. Đỉnh u và đỉnh v tương ứng gọi là đỉnh đầu và đỉnh
cuối của đường đi. Đường đi có đỉnh đầu trùng với đỉnh cuối được gọi là chu trình.
Đường đi hay chu trình được gọi là đơn nếu không có cạnh nào lặp lại.
Ví dụ 1.3.2 Cho đồ thị có hướng G như hình 1.3.2.
Hình 1.3.2. Đường đi và chu trình của đồ thị có hướng
Thì dãy các đỉnh v1, v3, v4, v1, v2 là một đường đi và cũng là đường đi đơn trên G,
trong khi dãy v1, v3, v4, v1, v3 là một đường đi không đơn trên G, do cạnh e1 = (v1, v3)
được lặp lại một lần trên đường đi này. Dãy v1, v3, v4, v1 là một chu trình đơn, trong khi
v1, v3, v4, v1, v4, v1 không phải chu trình đơn vì cạnh e3 = (v4, v1) được lặp lại một lần.
Sự liên thông của đồ thị biểu diễn khả năng tồn tại đường đi giữa các cặp đỉnh của
đồ thị, đây là một tính chất được ứng dụng nhiều trong các hệ thống được mô hình hóa
bởi các đồ thị. Chẳng hạn, một mạng máy tính được biểu diễn bởi một đồ thị, khi đó
nếu đồ thị liên thông thì các máy tính trong mạng có thể gửi tín hiệu cho nhau, ngược
lại sẽ có một số máy không thể gửi tín hiệu cho các máy khác. Khái niệm đồ thị vô
hướng liên thông được định nghĩa như sau. 9
Định nghĩa 1.3.3 Một đồ thị vô hướng được gọi là liên thông nếu có đường đi giữa mọi
cặp đỉnh phân biệt của đồ thị.
Ví dụ 1.3.3 Trong Hình 1.3.3, đồ thị G1 là liên thông, đồ thị G2 là không liên thông, vì
không có đường đi giữa hai đỉnh cd.
Hình 1.3.3. Đồ thị vô hướng liên thông và không liên thông
Trong đồ thị vô hướng liên thông, không chỉ luôn tồn tại đường đi giữa các cặp đỉnh
mà còn tồn tại đường đi đơn giữa chúng như định lý sau.
Định lý 1.3.1 Giữa mọi cặp đỉnh phân biệt của một đồ thị vô hướng liên thông luôn có đường đi đơn.
Chứng minh : Giả sử u v là hai đỉnh phân biệt của đồ thị vô hướng liên thông G =
(V, E). Vì G liên thông nên có ít nhất một đường đi giữa uv. Giả sử x0, x1, . . . , xn,
trong đó x0 = uxn = v, là đường đi có độ dài ngắn nhất từ u đến v. Rõ ràng, đường đi
này chính là đường đi đơn từ u đến v. Thật vậy, nếu đường đi ngắn nhất này không phải
là đường đi đơn thì tồn tại hai đỉnh xixj sao cho xi = xj với 0  ij. Khi đó có đường
đi ngắn hơn từ u đến v qua các đỉnh x0, x1, . . . , xi−1, xj , . . . , xn bằng cách xóa đi các cạnh
tương ứng với dãy đỉnh xi, . . . , xj−1.
Đối với đồ thị có hướng, có hai khái niệm liên thông là liên thông mạnh và liên
thông yếu phụ thuộc vào việc ta có xem xét đến hướng trên các cạnh hay không.
Định nghĩa 1.3.4 Một đồ thị có hướng được gọi là liên thông mạnh nếu có đường đi
giữa mọi cặp đỉnh phân biệt của nó. Một đồ thị có hướng được gọi là liên thông yếu nếu
đồ thị vô hướng tương ứng của nó là đồ thị liên thông. 10
Chúng ta lưu ý rằng, đường đi giữa một cặp đỉnh xy trong đồ thị liên thông mạnh
là đường đi từ x đến y hoặc từ y đến x. Vì vậy, để đồ thị G là liên thông mạnh thì với
mọi cặp đỉnh xy phải luôn có đường đi từ x đến y và từ y đến x.
Ví dụ 1.3.4 Trong Hình 1.3.4, đồ thị G1 không liên thông mạnh, đồ thị G2 liên thông mạnh.
Hình 1.3.4. Đồ thị có hướng liên thông mạnh và không liên thông mạnh
Chúng ta có thể thấy rằng bất kỳ một đồ thị vô hướng liên thông nào cũng có thể
định hướng các cạnh để tạo thành một đồ thị có hướng liên thông yếu. Tuy nhiên, điều
này không đúng đối với đồ thị có hướng liên thông mạnh. Một đồ thị vô hướng mà có
thể định hướng được các cạnh của nó để tạo ra một đồ thị có hướng liên thông mạnh thì
gọi là đồ thị vô hướng liên thông định hướng được. Điều kiện để có thể định hướng các
cạnh của một đồ thị vô hướng liên thông để nó trở thành một đồ thị có hướng liên thông
mạnh được chỉ ra như định lý sau.
Định lý 1.3.2 Một đồ thị vô hướng liên thông là định hướng được khi và chỉ khi mỗi
cạnh của nó thuộc ít nhất một chu trình.
Chứng minh : Giả sử một đồ thị vô hướng định hướng được thành đồ thị có hướng liên
thông mạnh. Gọi (u, v) là một cạnh của đồ thị có hướng liên thông mạnh. Từ sự tồn tại
đường đi có hướng từ u đến v và từ v đến u nên (u, v) phải nằm trên ít nhất một chu
trình của đồ thị này và do đó cạnh (u, v) phải thuộc ít nhất một chu trình của đồ thị vô
hướng liên thông. Điều kiện cần được chứng minh. 11
Để chứng minh điều kiện đủ ta chỉ ra một thủ tục định hướng các cạnh của một đồ
thị vô hướng liên thông G mà mỗi cạnh của nó thuộc ít nhất một chu trình. Giả sử C
một chu trình của G. Định hướng các cạnh của C theo một hướng đi vòng theo nó. Nếu
tất cả các cạnh của G đã được định hướng thì kết thúc thủ tục. Ngược lại, chọn e là một
cạnh chưa được định hướng có chung một đỉnh với ít nhất một trong số các cạnh đã
được định hướng. Theo giả thiết có chu trình C’ chứa e. Định hướng các cạnh chưa
được định hướng của C’ theo một hướng dọc theo chu trình này (không định hướng lại
các cạnh đã được định hướng). Thủ tục sẽ được lặp lại cho đến khi tất cả các cạnh của
G được định hướng. Rõ ràng với hai đỉnh bất kỳ thuộc các cạnh đã được định hướng
luôn có đường đi có hướng giữ chúng. Vì số cạnh của G là hữu hạn nên thủ tục sẽ dừng
do mỗi lần định hướng các cạnh trên một chu trình mới C’ ta định hướng thêm được ít
nhất một cạnh. Khi thủ tục dừng ta thu được đồ thị G* là đồ thị có hướng liên thông mạnh.
Trong một số ứng dụng, chúng ta cần xem xét một bộ phận các cạnh và đỉnh của
một đồ thị. Một bộ phận như vậy gọi là một đồ thị con của đồ thị. Đồ thị con của đồ thị
được định nghĩa một cách hình thức như sau.
Định nghĩa 1.3.5 Một đồ thị H = (W, F) được gọi là đồ thị con của đồ thị G = (V, E)
nếu WVFE.
Ví dụ 1.3.5 Trong Hình 1.3.5, đồ thị H là đồ thị con của đồ thị G. G H
Hình 1.3.5. Đồ thị con của đồ thị
Khi một đồ thị không liên thông (mạnh) thì nó bao gồm một số đồ thị con mà mỗi
đồ thị con là một đồ thị liên thông (mạnh). Ta gọi mỗi đồ thị con này là một thành phần
liên thông (mạnh) của đồ thị.
Ví dụ 1.3.6 Đồ thị H như hình 1.3.6 gồm ba thành phần liên thông H1, H2, H3. 12
Hình 1.3.6. Các thành phần liên thông của đồ thị vô hướng
Ví dụ 1.3.7 Cho các đồ thị có hướng G và H như hình 1.3.7, thì đồ thị G là liên thông
mạnh. Đồ thị H là liên thông yếu, không liên thông mạnh, nó có ba thành phần liên
thông mạnh là đỉnh a, đỉnh e và đồ thị con gồm các đỉnh b, cd và các cạnh (b, c), (c,
d) và (d, b).
Hình 1.3.7. Các thành phần liên thông của đồ thị có hướng
Trong một đồ thị có thể tồn tại một đỉnh và một số cạnh đặc biệt mà nếu loại bỏ nó
khỏi đồ thị thì có thể làm mất tính liên thông hoặc tăng số thành phần liên thông của đồ
thị. Những đỉnh và cạnh như vậy gọi là đỉnh rẽ nhánh và cạnh cầu của đồ thị.
Định nghĩa 1.3.6 Đỉnh v được gọi là đỉnh rẽ nhánh của đồ thị nếu loại bỏ v cùng với
các cạnh liên thuộc với nó khỏi đồ thị thì làm tăng số thành phần liên thông của đồ thị.
Cạnh e được gọi là cạnh cầu nếu loại bỏ nó khỏi đồ thị thì làm tăng số thành phần liên thông của đồ thị.
Ví dụ 1.3.8 Cho đồ thị như Hình 1.3.8 thì đỉnh c là đỉnh rẽ nhánh, các cạnh (d, e) và (f,
g) là các cạnh cầu. 13
Hình 1.3.8. Đỉnh rẽ nhánh và cạnh cầu của đồ thị
1.4 Một số dạng đồ thị đặc biệt
Phần này giới thiệu một số đồ thị vô hướng đặc biệt có nhiều ứng dụng trong thực
tế như đồ thị đầy đủ, đồ thị vòng, bánh xe, lập phương và đồ thị hai phía. Một trong các
ứng dụng của đồ thị đầy đủ, đồ thị vòng, bánh xe và lập phương là mô hình hóa sơ đồ
kết nối mạng máy tính. Đồ thị hai phía có thể được ứng dụng để giải bài toán tối ưu
ghép cặp, đối sánh và phân công làm việc.
Định nghĩa 1.4.1 Một đồ thị đầy đủ n đỉnh, n  1, ký hiệu Kn, là một đơn đồ thị vô
hướng có n đỉnh và mọi cặp đỉnh phân biệt của nó đều tương ứng với một cạnh.
Ví dụ 1.4.1 Hình 1.4.1 cho các đồ thị đầy đủ K3, K4, K5 và K6.
Hình 1.4.1. Đồ thị Kn đầy đủ
Định nghĩa 1.4.2 Một đồ thị vòng n đỉnh, n  3, ký hiệu Cn, là một đơn đồ thị vô hướng
n đỉnh v1, v2, …, vn và các cạnh của nó tạo thành một chu trình duy nhất (v1, v2), (v2,
v3), …, (vn-1, vn), (vn, v1).
Ví dụ 1.4.2 Hình 1.4.2 cho các đồ thị vòng C3, C4, C5 và C6. 14