Đa đồ thị: Đồ thị G = V, E vô hướng hoặc có hướng là đa đồ thị khi và chỉ khi nó là đồ thị không khuyên và có ít nhất một cặp đỉnh được nối với nhau bằng ít nhất 2 cạnh hoặc 2 cung nối t
Trang 11
MỤC LỤC
I PHẦN ĐẶT VẤN ĐỀ: 2
I.1/ Lý do chọn đề tài 2
I.2/ Mục tiêu nghiên cứu 2
I.3/ Nhiệm vụ nghiên cứu 2
I.4/ Đối tượng nghiên cứu 2
I.5/ Các phương pháp nghiên cứu 2
II/ PHẦN NỘI DUNG: 3
II.1/ Lịch sử của vấn đề nghiên cứu 3
II.2/ Cơ sở lý luận của đề tài 3
II.3/ Thực trạng của vấn đề nghiên cứu 3
II.4/ Nội dung nghiên cứu và kết quả nghiên cứu 3
A/ NỘI DUNG NGHIÊN CỨU 3
1 MỘT SỐ KHÁI NIỆM CƠ BẢN 3
1.1 Đồ thị 3
1.2 Biểu diễn đồ thị 6
2 PHƯƠNG PHÁP TÌM KIẾM TRÊN ĐỒ THỊ 11
2.1 Một số khái niệm 11
2.2 Hai thuật toán tìm kiếm trên đồ thị 13
3 MỘT SỐ BÀI TẬP ÁP DỤNG: 15
B/ KẾT QUẢ NGHIÊN CỨU 23
III PHẦN KẾT LUẬN 24
III.1/ Kết luận 24
III.2/Tài liệu tham khảo 24
Trang 2I PHẦN ĐẶT VẤN ĐỀ:
I.1/ Lý do chọn đề tài
Để hệ thống lại các chuyên đề bồi dưỡng HSG chuyên Tin học mà tôi đã dạy trong nhiều năm qua, đồng thời qua quá trình nghiên cứu, giảng dạy, tham khảo ý kiến đồng nghiệp, tôi thấy rằng một số bài toán tin học ứng dụng và một số bài toán trong các
kỳ thi học sinh giỏi Tin học có thể ứng dụng lý thuyết đồ thị để giải quyết Chính vì vậy tôi chọn viết đề tài về chuyên đề “CƠ SỞ TOÁN HỌC CỦA MỘT SỐ BÀI TOÁN
TRONG LÝ THUYẾT ĐỒ THỊ” (Phần 1: Duyệt đồ thị cơ bản)
I.2/ Mục tiêu nghiên cứu
Như đã biết, toán học có ảnh hưởng rất lớn đến mọi lĩnh vực của cuộc sống Các bài toán tin nếu có được thuật toán dựa trên cơ sở lý thuyết toán học vững chắc sẽ đem lại kết quả tốt hơn rất nhiều so với các thuật toán khác Giúp các em học sinh có kiến thức tốt, tư duy tốt về lập trình; cơ sở toán học cho lý thuyết đồ thị là một trong những vấn đề mà bất cứ người lập trình tin học đều cần phải nắm vững
I.3/ Nhiệm vụ nghiên cứu
Trước hết là thực hiện đổi mới phương pháp giảng dạy Tin học làm cho học sinh sáng tạo tìm những kết quả, lời giải hay trên một số “dạng bài toán tin có vận dụng cơ sở toán học”; giúp bản thân nắm vững hơn nữa về cơ sở toán học, tư duy thuật toán, khả năng lập trình, đồng thời trao đổi và học tập kinh nghiệm ở Quý Thầy Cô ở Tổ Tin học
I.4/ Đối tượng nghiên cứu
Trong nghiên cứu này, các học sinh được chọn là các em học lớp chuyên Tin học khối 10, 11, 12; các học sinh được bồi dưỡng trong đội tuyển dự thi HSG cấp tỉnh, cấp quốc gia và một số giáo viên đứng lớp dạy tin học ở trường THPT Chuyên Tiền Giang
I.5/ Các phương pháp nghiên cứu
* Phương pháp suy luận, tổng hợp: kết hợp từ nhiều nguồn tài liệu tham khảo của các tác giả và tra cứu trên mạng internet với các đề thi Học sinh Giỏi rút ra những kinh nghiệm, hệ thống lại kiến thức, mở ra các hướng mới
* Phương pháp trò chuyện – phỏng vấn: trao đổi tâm tình với nhiều học sinh giỏi
để nắm tình hình trong việc giải các bài toán tin về lý thuyết đồ thị
* Phương pháp khảo sát: bản thân được tham gia giảng dạy các lớp, đội tuyển HSG, các kỳ tập huấn, ra đề; tham khảo đồng nghiệp, quý Thầy Cô đã giảng dạy đội tuyển nhiều năm nên có nắm được tình hình sử dụng các phương pháp làm bài của các
em học sinh
Trang 33
* Phương pháp phân tích lý luận: phân tích giúp học sinh nắm thật rõ bản chất vấn
đề, lựa chọn được phương pháp giải cho phù hợp
II/ PHẦN NỘI DUNG:
II.1/ Lịch sử của vấn đề nghiên cứu
Trong những năm liên tiếp dạy bồi dưỡng HSG môn Tin Học lớp 10, 11, 12 và đội tuyển dự thi HSG cấp Tỉnh, cấp Quốc Gia, đội tuyển dự thi Olympic 30/4 dành cho các trường THPT, cũng như tham khảo ý kiến các đồng nghiệp chuyên dạy bồi dưỡng đội tuyển ở các Tỉnh bạn, ở các trường THPT Chuyên, tôi rút ra một điều là “CƠ SỞ TOÁN HỌC RẤT QUAN TRỌNG TRONG DẠY LẬP TRÌNH” Được sự động viên khuyến khích của quý Thầy Cô trong tổ, tôi mạnh dạng chọn viết đề tài “Cơ sở toán học của một số bài toán trong lý thuyết đồ thị”
II.2/ Cơ sở lý luận của đề tài
Kết hợp các bài giảng và tài liệu tham khảo, kinh nghiệm bản thân để phân tích, tổng hợp, hệ thống lại
II.3/ Thực trạng của vấn đề nghiên cứu
Đa số học sinh chuyên tin rất ngại, sợ khi giải các bài toán tin có ứng dụng toán học; rất lúng túng trong quá trình phân tích, tổ chức dữ liệu để tìm ra bản chất và vận dụng kiến thức một cách thích hợp, tìm thuật toán tối ưu
II.4/ Nội dung nghiên cứu và kết quả nghiên cứu
A/ NỘI DUNG NGHIÊN CỨU
1 MỘT SỐ KHÁI NIỆM CƠ BẢN
1.1 Đồ thị
1.1.1 Định nghĩa đồ thị:
Là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh đó Được mô tả
hình thức: G = (V, E), trong đó V gọi là tập các đỉnh (Vertices) và E gọi là tập các cạnh
(Edges) Có thể coi E là tập các cặp (u, v) với u và v là hai đỉnh của V
Một số hình ảnh của đồ thị:
Hình 1.1 Ví dụ về mô hình đồ thị
Trang 41.1.2 Một số khái niệm
Như trên định nghĩa đồ thị G = (V, E) là một cấu trúc rời rạc, tức là các tập V và
E hoặc là tập hữu hạn, hoặc là tập đếm được, có nghĩa là ta có thể đánh số thứ tự 1, 2, 3, cho các phần tử của tập V và E Hơn nữa, đứng trên phương diện người lập trình cho máy tính thì ta chỉ quan tâm đến các đồ thị hữu hạn (V và E là tập hữu hạn) mà thôi, chính vì vậy từ đây về sau, nếu không chú thích gì thêm thì khi nói tới đồ thị, ta hiểu rằng đó là đồ thị hữu hạn
Các phần tử thuộc tập V gọi là đỉnh của đồ thị G
Cho hai đỉnh u, v V, nếu e = (u, v) E là cặp sắp thứ tự thì e được gọi là một
cung của đồ thị, hoặc nếu e là cặp không sắp thứ tự thì e được gọi là một cạnh của đồ thị
Khi e = (u, v) là cung thì u là đỉnh đầu của cung, v là đỉnh cuối của cung e Khi e = (u, v) là cạnh thì u và v gọi là hai đỉnh kề của cạnh e hoặc hai đỉnh liên
thuộc e
Hai đỉnh u và v (u ≠ v) của đồ thị được gọi là hai đỉnh kề nhau nếu chúng là 2
đầu của một cạnh hoặc một cung
Hai cạnh a, b (hoặc hai cung a, b) gọi là hai cạnh kề nhau (hoặc hai cung kề nhau) nếu chúng có một đỉnh chung
Khuyên là cạnh (hoặc cung) có 2 đầu trùng nhau
Đỉnh treo là đỉnh thuộc duy nhất một cạnh hoặc cung
Đỉnh cô lập là đỉnh không thuộc cạnh hoặc cung nào
1.1.3 Phân loại đồ thị
Cho đồ thị G = (V, E), nếu E chỉ gồm các cạnh thì G là đồ thị vô hướng Nếu E chỉ gồm các cung thì G là đồ thị có hướng Nếu E gồm cả cạnh và cung thì G là đồ thị hỗn hợp
Đa đồ thị: Đồ thị G = (V, E) vô hướng (hoặc có hướng) là đa đồ thị khi và chỉ khi nó là đồ thị không khuyên và có ít nhất một cặp đỉnh được nối với nhau bằng ít nhất
2 cạnh (hoặc 2 cung nối theo thứ tự của cặp đỉnh)
Đơn đồ thị: Đồ thị G = (V, E) vô hướng (hoặc có hướng) là đơn đồ thị khi và chỉ khi nó là đồ thị không khuyên và mỗi cặp đỉnh được nối với nhau không quá một cạnh (hoặc cung)
Hình 1.2 Phân loại đồ thị
Trang 55
1.1.4 Bậc của đỉnh:
1.1.4.1 Định nghĩa: Bậc của đỉnh v trong đồ thị G = (V, E), ký hiệu deg(v), là số
các cạnh liên thuộc với nó, riêng khuyên tại một đỉnh được tính hai lần cho bậc của nó
Đỉnh v gọi là đỉnh treo nếu deg(v) = 1 và gọi là đỉnh cô lập nếu deg(v) = 0
Hình 1.3
deg(v1) = 7
deg(v2) = 5
deg(v3) = 3 deg(v4) = 0
Deg(v5) = 4 deg(v6) = 1
Chứng minh: Rõ ràng mỗi cạnh e = (u, v) được tính một lần trong deg(u) và
một lần trong deg(v) Từ đó suy ra tổng tất cả các bậc của các đỉnh bằng hai lần số cạnh
1.1.4.4 Mệnh đề: Trong một đơn đồ thị, luôn tồn tại hai đỉnh có cùng bậc
Chứng minh: Xét đơn đồ thị G = (V, E) có |V| = n Bậc của mỗi đỉnh trong đồ
thị có n đỉnh nhận các giá trị từ 0 đến n – 1 Rõ ràng trong đồ thị không thể đồng thời có: một đỉnh có bậc 0 (đỉnh cô lập) và một đỉnh có bậc n – 1 (có cạnh nối với tất cả các đỉnh còn lại) Vì vậy theo bậc của các đỉnh, ta chỉ có thể phân n đỉnh thành n – 1 nhóm Vậy theo nguyên lý Dirichlet tồn tại một nhóm có ít nhất 2 đỉnh, tức là luôn tìm được ít nhất 2 đỉnh có bậc bằng nhau
1.1.4.5 Định nghĩa: Đỉnh u được gọi là nối tới v hay v được gọi là được nối từ u
trong đồ thị có hướng G nếu (u, v) là một cung của G Đỉnh u gọi là đỉnh đầu và đỉnh v gọi là đỉnh cuối của cung này
1.1.4.6 Định nghĩa: Bậc vào (tương ứng bậc ra) của đỉnh v trong đồ thị có hướng
G, ký hiệu degt(v) (tương ứng dego(v)), là số các cung có đỉnh cuối là v
Trang 6Hình 1.4
degt(v1) = 2, dego(v1) = 3
degt(v2) = 5, dego(v2) = 1
degt(v3) = 2, dego(v3) = 4 degt(v4) = 1, deg0(v4) = 3
degt(v5) = 1, dego(v5) = 0 degt(v6) = 0, dego(v6) = 0 Đỉnh có bậc vào và bậc ra cùng bằng 0 gọi là đỉnh cô lập Đỉnh có bậc vào bằng
1 và bậc ra bằng 0 gọi là đỉnh treo, cung có đỉnh cuối là đỉnh treo gọi là cung treo
1.1.4.7 Mệnh đề: Cho G =(V, E) là một đồ thị có hướng Khi đó
deg ( )t deg ( ) = |E|o
Biểu diễn cạnh (cung): Nếu e = (u, v) là một cạnh thì nối điểm u với điểm v bằng
một đoạn thẳng hoặc đoạn cong không đi qua các điểm biểu diễn đỉnh khác
Nếu e = (u, v) là một cung thì nối từ điểm u tới điểm v bằng một đoạn thẳng định hướng hoặc đoạn cong định hướng (có chiều mũi tên từ u tới v) không đi qua các điểm biểu diễn các đỉnh khác
Hình nhận được gọi là dạng biểu diễn hình học của đồ thị Để thuận tiện người ta
cũng gọi dạng biểu diễn hình học của đồ thị là đồ thị
Hình 1.5 Đơn đồ thị, vô hướng
Hình 1.6 Đa đồ thị, vô hướng
Trang 77
Hình 1.7 Đa đồ thị, có hướng
1.2.2 Biểu diễn đồ thị trên máy tính
1.2.2.1 Biểu diễn đồ thị bằng ma trận liền kề (ma trận liền kề)
Giả sử đồ thị G = (V, E) có tập đỉnh V = {u1, u2, …, un}, tập cạnh (hoặc cung) là
E Ta xây dựng ma trận vuông A cấp n sao cho i, j: 1 ≤ i, j ≤ n có:
E x x khi j
i A
j i
j i
, 1
, 0
Trang 8Trong trường hợp G là đơn đồ thị, ta có thể biểu diễn ma trận liền kề A tương ứng
là các phần tử logic Aij = TRUE nếu (i, j) E và Aij = FALSE nếu (i, j) E
Ưu điểm của ma trận liền kề:
Đơn giản, trực quan, dễ cài đặt trên máy tính
Để kiểm tra xem hai đỉnh (u, v) của đồ thị có kề nhau hay không, ta chỉ việc kiểm tra bằng một phép so sánh: Auv ≠ 0
Nhược điểm của ma trận liền kề:
Bất kể số cạnh của đồ thị là nhiều hay ít, ma trận liền kề luôn luôn đòi hỏi n2 ô nhớ để lưu các phần tử ma trận, điều đó gây lãng phí bộ nhớ dẫn tới việc không thể biểu diễn được đồ thị với số đỉnh lớn
Với một đỉnh u bất kỳ của đồ thị, nhiều khi ta phải xét tất cả các đỉnh v khác
kề với nó, hoặc xét tất cả các cạnh liên thuộc với nó Trên ma trận liền kề việc
đó được thực hiện bằng cách xét tất cả các đỉnh v và kiểm tra điều kiện Auv ≠0 Như vậy, ngay cả khi đỉnh u là đỉnh cô lập (không kề với đỉnh nào) hoặc đỉnh treo (chỉ kề với 1 đỉnh) ta cũng buộc phải xét tất cả các đỉnh và kiểm tra điều kiện trên dẫn tới lãng phí thời gian
1.2.2.2 Biểu diễn bằng ma trận trọng số
Trong nhiều bài toán về đồ thị, mỗi cạnh (hoặc cung) e = (ui, uj) của đồ thị thường được gắn với một số c(e) gọi là trọng số của cạnh (hoặc cung) e Khi đó thường xây dựng ma trận vuông cấp n là ma trận C có mỗi phần tử C[i, j] = c(e) nếu tồn tại cạnh (hoặc cung) e = (ui, uj) ngược lại khi không có cạnh nối ui với uj (hoặc không có cung nào nối trực tiếp ui tới uj) thì C[i, j] = (kí hiệu là giá trị không xác định) Trong nhiều
trường hợp, ngầm định C[i, i] = 0 với mọi đỉnh trong đồ thị không khuyên
Trang 99
1.2.2.3 Biểu diễn bằng danh sách cạnh
Để có danh sách cạnh/cung của đồ thị G = (V, E), người
ta liệt kê và lưu tất cả các cạnh/cung của đồ thị Trong cách biểu
diễn này, người ta liệt kê tất cả các cạnh của đồ thị trong một
danh sách, mỗi phần tử của danh sách là một cặp (u, v) tương
ứng với một cạnh của đồ thị (Trong trường hợp đồ thị có hướng
thì mỗi cặp (u, v) tương ứng với một cung, u là đỉnh đầu và v là
đỉnh cuối của cung) Danh sách được lưu trong bộ nhớ dưới
dạng mảng hoặc danh sách móc nối Ví dụ với đồ thị bên:
Hình 1.11
Cài đặt trên mảng:
(1, 3) (2, 4) (3, 5) (4, 1) (5, 2)
Cài đặt trên danh sách móc nối:
Ưu điểm của danh sách cạnh:
Trong trường hợp đồ thị thưa (có số cạnh tương đối nhỏ: chẳng hạn m < 6n), cách biểu diễn bằng danh sách cạnh sẽ tiết kiệm được không gian lưu trữ, bởi
nó chỉ cần 2m ô nhớ để lưu danh sách cạnh
Trong một số trường hợp, ta phải xét tất cả các cạnh của đồ thị thì cài đặt trên danh sách cạnh làm cho việc duyệt các cạnh dễ dàng hơn (Thuật toán Kruskal chẳng hạn)
Nhược điểm của danh sách cạnh:
Nhược điểm cơ bản của danh sách cạnh là khi ta cần duyệt tất cả các đỉnh kề với đỉnh v nào đó của đồ thị, thì chẳng có cách nào khác là phải duyệt tất cả các cạnh, lọc ra những cạnh có chứa đỉnh v và xét đỉnh còn lại Điều đó khá tốn thời gian trong trường hợp đồ thị dày (nhiều cạnh)
1.2.2.4 Biểu diễn bằng danh sách kề
Cho đồ thị G = (V, E), với mỗi đỉnh ui V ta lưu trữ tất cả các đỉnh kề với nó
vào một danh sách, hình thành danh sách kề
Thường dùng 2 cách sau tạo danh sách kề:
1.2.2.4.1 Dùng các danh sách móc nối:
Với mỗi đỉnh ui V ta lưu trữ tất cả các đỉnh kề với nó bằng một danh sách liên kết một chiều, có nghĩa là tương ứng với một đỉnh ui, ta phải lưu lại List[ui] là chốt của một danh sách móc nối Tập hợp các danh sách liên kết một chiều của các đỉnh gọi là danh sách kề của đồ thị
Ví dụ với đồ thị hình 1.12, danh sách móc nối sẽ là:
Trang 10Hình 1.12
1.2.2.4.2 Dùng cách tổ chức danh sách kề theo kiểu Forward Star
Mảng đó chia làm n đoạn, đoạn thứ i trong mảng lưu danh sách các đỉnh kề với đỉnh i: với đồ thị hình 1.13, danh sách kề sẽ là một mảng A gồm 12 phần tử:
1 2 3 4 5 6 7 8 9 10 11 12
Đoạn 1 Đoạn 2 Đoạn 3 Đoạn 4 Đoạn 5
Hình 1.13
Xây dựng 2 mảng một chiều A và P với ý nghĩa sau: Các vị trí j trong mảng A từ
P[i-1]+1 đến P[i] cho biết A[j] là đỉnh kề với đỉnh i
Ví dụ: Với đồ thị như hình 1.13 có số đỉnh là N = 5, số cạnh là M = 6
Mảng A 1 2*M = 2, 3, 5, 1, 3, 1, 2, 4, 3, 5, 1, 4
Mảng P 0 N = 0, 3, 5, 8, 10, 12
Dựa vào hai mảng A và P có thể biết các đỉnh kề với đỉnh 3 là các đỉnh từ vị trí
p[2]+1 = 5 + 1 = 6 tới vị trí p[3] = 8 trong mảng A; đó là các đỉnh A[6] = 1, A[7] = 2 và
A[8] = 4
Lưu ý rằng với đồ thị có hướng gồm m cung thì cấu trúc Forward Star cần phải
đủ chứa m phần tử, với đồ thị vô hướng m cạnh thì cấu trúc Forward Star cần phải đủ chứa 2m phần tử
Ưu điểm của danh sách kề:
Đối với danh sách kề, việc duyệt tất cả các đỉnh kề với một đỉnh v cho trước là hết sức dễ dàng, cái tên “danh sách kề” đã cho thấy rõ điều này Việc duyệt tất
cả các cạnh cũng đơn giản vì một cạnh thực ra là nối một đỉnh với một đỉnh khác kề nó
Nhược điểm của danh sách kề:
Về lý thuyết, so với hai phương pháp biểu diễn trên, danh sách kề tốt hơn hẳn Chỉ có điều, trong trường hợp cụ thể mà ma trận kề hay danh sách cạnh không thể hiện nhược điểm thì ta nên dùng ma trận kề (hay danh sách cạnh) bởi cài đặt danh sách kề có phần dài dòng hơn
Trang 1111
2 PHƯƠNG PHÁP TÌM KIẾM TRÊN ĐỒ THỊ
2.1 Một số khái niệm
2.1.1 Định nghĩa 1 Đường đi có độ dài k (k nguyên dương) từ đỉnh u đến đỉnh v
trên đồ thị vô hướng G = (V, E) là dãy các đỉnh u u u u0, 1, 2, ,u k v mà các cạnh 1
( ,u u i i ) E i, 0,k 1 Đường đi này còn có thể biểu diễn dưới dạng dãy các cạnh:
(u u, ), ( ,u u ), , (u k ,u k) Đỉnh u gọi là đỉnh đầu (định xuất phát), đỉnh v gọi là đỉnh cuối (đỉnh đích) của đường đi
2.1.2 Định nghĩa 2 Đường đi có độ dài k (k nguyên dương) từ đỉnh u đến đỉnh v
trên đồ thị có hướng G = (V, E) là dãy các đỉnh uu u u0, 1, 2, ,u k v mà các cung 1
( ,u u i i ) E i, 0,k 1 Đường đi này còn có thể biểu diễn dưới dạng dãy các cung:
(u u, ), ( ,u u ), , (u k ,u k) Đỉnh u gọi là đỉnh đầu, đỉnh v gọi là đỉnh cuối của đường đi
2.1.3 Định nghĩa 3 Đường đi có đỉnh đầu trùng với đỉnh cuối gọi là một chu trình
(mạch vòng)
Đường đi hay chu trình được gọi là đơn nếu không có cung nào bị lặp lại
Đường đi hay chu trình được gọi là cơ bản nếu không có đỉnh nào bị lặp lại (trừ trường hợp trong chu trình thì đỉnh đầu trùng đỉnh cuối là được lặp lại)
2.1.4 Định nghĩa 4 Đồ thị vô hướng G = (V, E) được gọi là liên thông nếu luôn
tìm được đường đi giữa hai đỉnh bất kì của nó
2.1.5 Định nghĩa 5 Cho đồ thị vô hướng G = (V, E) và đồ thị con của G là đồ thị
' ( ', ')
G V E Đồ thị G’ được gọi là một vùng liên thông (hoặc thành phần liên thông) của
G nếu:
+ G’ liên thông;
+ Không tồn tại đường đi nào từ một đỉnh thuộc G’ tới một đỉnh không thuộc G’
(nói cách khác là bảo đảm tính tối đại của liên thông trong G’)
Ví dụ Trong hình 2.1 xét hai đồ thị là G và H: G chỉ có một vùng liên thông duy
nhất, H có 3 vùng liên thông là H1, H2, H3
Hình 2.1 G liên thông, H gồm 3 vùng liên thông
2.1.6 Định nghĩa 6 Đỉnh v được gọi là đỉnh khớp (đỉnh rẽ nhánh) của đồ thị vô
hướng G = (V, E) nếu khi loại bỏ đỉnh v và các cạnh liên thuộc với nó thì số thành phần
liên thông của G tăng thêm
Trang 12Cạnh e E được gọi là cầu nếu loại bỏ nó khỏi đồ thị G thì số thành phần liên thông của G tăng thêm 1 đơn vị
2.1.7 Định nghĩa 7 Đồ thị có hướng G = (V, E) được gọi là liên thông mạnh nếu
với mọi cặp đỉnh có thứ tự tuỳ ý luôn tìm được đường đi có hướng từ đỉnh thứ nhất đến
đỉnh thứ hai Nói cách khác, với mọi cặp đỉnh u và v luôn tồn tại hai đường đi: đường đi
có hướng từ đỉnh u đến đỉnh v và đường đi có hướng từ đỉnh v đến đỉnh u
2.1.8 Định nghĩa 8 Đồ thị có hướng G = (V, E) được gọi là liên thông yếu nếu
khi coi các cung đều là cạnh thì được đồ thị vô hướng tương ứng là liên thông
Hiển nhiên, đồ thị liên thông mạnh cũng liên thông yếu nhưng điều ngược lại chưa đúng
Hình 2.2 G liên thông mạnh, H liên thông yếu và không liên thông mạnh
2.1.9 Mệnh đề: Mọi đơn đồ thị n đỉnh (n 2) có tổng bậc của hai đỉnh tuỳ ý không
nhỏ hơn n đều là đồ thị liên thông
Chứng minh: Cho đơn đồ thị G = (V, E) có n đỉnh (n 2) và thoả mãn yêu cầu của bài toán Giả sử G không liên thông, tức là tồn tại hai đỉnh u và v sao cho không có đường đi nào nối u và v Khi đó trong đồ thị G tồn tại hai thành phần liên thông là G1 có
n1 đỉnh và chứa u, G2 chứa đỉnh v và có n2 đỉnh Vì G1, G2 là hai trong số các thành phần liên thông của G nên n1+n2 n ta có:
deg u deg v (n 1)(n 1) n n 2 n2 n
Điều mâu thuẫn ở trên dẫn đến kết luận là đồ thị G phải liên thông
2.1.10 Hệ quả: Đơn đồ thị mà bậc của mỗi đỉnh của nó không nhỏ hơn một nửa số
đỉnh là đồ thị liên thông
2.1.11 Mệnh đề: Nếu một đồ thị có đúng hai đỉnh bậc lẻ thì hai đỉnh này phải liên
thông, tức là có một đường đi nối chúng
Chứng minh: Cho G = (V, E) là đồ thị thị có đúng hai đỉnh bậc lẻ là u và v Giả
sử u và v không liên thông với nhau Khi đó chúng phải thuộc hai thành phần liên thông nào đó của đồ thị G, G1 chứa u và G2 chứa v
Bậc của đỉnh u trong G1 cũng chính là bậc của u trong G, nên trong G1 đỉnh u vẫn có bậc lẻ và G1 có duy nhất một đỉnh bậc lẻ Điều này mâu thuẫn Vậy hai đỉnh u và
v phải liên thông