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

Khảo sát tính liên thông của đồ thị bằng kỹ thuật find union 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 (982.73 KB, 80 trang )

LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các
số liệu, kết quả đánh giá, nhận xét và các đề xuất cải tiến mới nêu
trong Luận văn là trung thực và chưa từng được ai công bố trong bất
kỳ công trình nào khác.
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận
văn này cũng như các trích dẫn hay tài liệu học thuật tham khảo đã
được cảm ơn đến tác giả hay ghi rõ ràng nguồn gốc thông tin trích dẫn
trong Luận văn.
Học viên thực hiện Luận văn

TRẦN BÌNH AN


LỜI CẢM ƠN
Trước hết, cho tôi được gửi lời cảm ơn đến sự hướng dẫn và giúp đỡ
tận tình của PGS TSKH Nguyễn Xuân Huy.
Xin cảm ơn các Thầy/Cô tại trường Đại học Công nghệ Thông tin và
Truyền thông Thái Nguyên đã sát cánh và cung cấp cho tôi những kiến
thức quí báu trong suốt thời gian học tập và nghiên cứu thực hiện luận văn.
Tôi cũng in gửi lời cảm ơn đến gia đình, bạn bè cùng những người
thân đã luôn quan tâm và giúp đỡ tôi trong suốt thời gian học tập, nghiên
cứu để hoàn thành luận văn này.
Luận văn không thể tránh khỏi những sai sót, rất mong nhận được ý
kiến đóng góp của Thầy/Cô và các bạn để luận văn được hoàn thiện hơn.
Tôi xin chân thành cảm ơn.
Thái Nguyên, tháng 4 năm 2016

TRẦN BÌNH AN



i

MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC ...................................................................................................... i
DANH MỤC TỪ VIẾT TẮT ........................................................................ iii
DANH MỤC CÁC BẢNG ............................................................................ iv
DANH MỤC CÁC HÌNH .............................................................................. v
MỞ ĐẦU ....................................................................................................... 1
1. Tính cấp thiết của đề tài........................................................................... 1
2. Đối tượng và phạm vi nghiên cứu ........................................................... 3
2.1. Đối tượng nghiên cứu ................................................................................................. 3
2.2. Phạm vi nghiên cứu ..................................................................................................... 3
3. Hướng nghiên cứu của đề tài ................................................................... 3
3.1. Về lý thuyết: ................................................................................................................... 3
3.2. Về thực nghiệm:............................................................................................................ 3
4. Những nội dung nghiên cứu chính ........................................................... 4
Chương 1. TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ HỮU HẠN ................. 5
1.1. Đồ thị và các khái niệm liên quan ......................................................... 5
1.1.1. Định nghĩa đồ thị ...................................................................................................... 5
1.1.2. Các loại đồ thị ............................................................................................................ 7
1.1.3. Một số dạng đồ thị đặc biệt .................................................................................. 9
1.1.4. Bậc của đồ thị........................................................................................................... 12
1.1.5. Đường đi, chu trình, tính liên thông của đồ thị .......................................... 14
1.2. Biểu diễn đồ thị trên máy tính ............................................................ 16
1.2.1. Ma trận kề, ma trận trọng số ............................................................................. 16
1.2.2. Danh sách cạnh (cung) ........................................................................................ 19
1.2.3. Danh sách kề ............................................................................................................ 22
Chương 2. KỸ THUẬT FIND – UNION TRONG XỬ LÝ ĐỒ THỊ ............ 23

2.1. Kỹ thuật FIND – UNION ................................................................... 23
2.2. Những bài toán cơ bản trong lý thuyết đồ thị ...................................... 30


ii

2.2.1. Thành phần liên thông.......................................................................................... 30
2.2.2. Cây khung .................................................................................................................. 33
2.2.3. Cây khung cực tiểu................................................................................................. 35
2.2.4. Rừng khung ............................................................................................................... 36
2.2.4. Cầu ............................................................................................................................... 40
2.2.5 Đỉnh khớp.................................................................................................................... 45
Chương 3. MỘT SỐ ỨNG DỤNG ............................................................... 48
3.1. Một số ứng dụng ................................................................................ 48
3.2. Bài toán “Giao thông trong ứng phó thiên tai” .............................................. 48
3.3. Hướng giải quyết bài toán .................................................................. 50
3.3.1. Phân tích bài toán ........................................................................... 50
3.1.2. Hướng giải quyết bài toán................................................................................... 50
3.3.3. Demo ........................................................................................................................... 55
KẾT LUẬN.................................................................................................. 61
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ........................................................ 62
TÀI LIỆU THAM KHẢO ............................................................................ 63
PHỤ LỤC .................................................................................................... 64


iii

DANH MỤC TỪ VIẾT TẮT
Ký hiệu, viết tắt
G

V
E
Deg


>; ≥
<; ≤
{, }


#
||
|...|

O()

Ý nghĩa tiếng Việt
Đồ thị
Đỉnh của đồ thị
Cạnh của đồ thị
Bậc của đồ thị
Thuộc, nếu a  A: Ta nói
a là phần tử con của tập A
Không thuộc
Lớn hơn; lớn hơn hoặc
bằng
Nhỏ hơn; nhỏ hơn hoặc
bằng
Tập
Phép giao

Phép hợp
Khác
Tập tử của tập
Ma trận
Kéo theo
Ô lớn (độ phức tạp tính
toán)

Ý nghĩa tiếng Anh
Graph
Vertices
Edges
Degree
Member, if A is a set and
a is one of the objects of
A, this is denoted a ∈ A
Not member
Greater than; is greater
than or equal to
Less than; is less than or
equal to
Set of
Intersected with
The union of ... or ...
Is incomparable to
Memmer of set
Matrix
if ... then
Big O (complexity theory)



iv

DANH MỤC CÁC BẢNG
Bảng 1.1. Biểu diễn ma trận vô hướng không có trọng số bằng ma trận ....... 16
Bảng 1.2. Biểu diễn đồ thị có hướng có trọng số bằng ma trận ..................... 18
Bảng 1.3. Biểu diễn đồ thị vô hướng có trọng số bằng ma trận..................... 19
Bảng 1.4. Biểu diễn đồ thị không trọng số bằng danh sách cạnh (cung) ....... 21
Bảng 1.5. Biểu diễn đồ thị có trọng số bằng danh sách cạnh có trọng số ...... 21
Bảng 1.6. Biểu diễn đồ thị bằng danh sách kề .............................................. 22
Bảng 2.1. File đồ thị vào G gồm 9 đỉnh, 6 cạnh và kết quả đầu ra ................ 23
Bảng 2.2. Đồ thị G gồm 9 đỉnh, 6 cạnh ........................................................ 31
Bảng 2.3. File dữ liệu vào và ra của đồ thị G 9 đỉnh, 12 cạnh ....................... 35
Bảng 3.1. Đặt số hiệu cho huyện Bát Xát và các xã ...................................... 55
Bảng 3.2. Kết quả chạy chương trình kiểm tra tính liên thông ...................... 57
Bảng 3.3. Kết quả chạy chương trình cây khung .......................................... 59
Bảng 3.4. Khoảng cách từ các xã đến xã Trịnh Tường ................................. 60


v

DANH MỤC CÁC HÌNH
Hình 1.1. Các mô hình đồ thị.......................................................................... 6
Hình 1.2. Đồ thị hữu hạn ................................................................................ 6
Hình 1.3. Đơn đồ thị vô hướng 8 đỉnh 7 cạnh ................................................. 7
Hình 1.4. Đơn đồ thị có hướng 8 đỉnh 7 cạnh ................................................. 8
Hình 1.5. Đồ thị hỗn hợp ................................................................................ 8
Hình 1.6. Đồ thị đầy đủ .................................................................................. 9
Hình 1.7. Đồ thị vòng C1, C2, C3 .................................................................. 10
Hình 1.8. Đồ thị bánh xe W1, W2, W3 ......................................................... 10

Hình 1.9. Đồ thị lập phương Q1, Q2, Q3 ...................................................... 10
Hình 1.10. Đồ thị 2 phía K2,3, K3,3, K3,4 ................................................... 11
Hình 1.11. Đồ thị phẳng K ........................................................................... 12
Hình 1.12. Đồ thị vô hướng .......................................................................... 12
Hình 1.13. Đồ thị có hướng .......................................................................... 13
Hình 1.14. Đường đi trên đồ thị.................................................................... 14
Hình 1.15. Đồ thị không liên thông .............................................................. 15
Hình 1.16. Đồ thị vô hướng không có trọng số G ......................................... 16
Hình 1.17. Đồ thị G có hướng, có trọng số ................................................... 18
Hình 1.18. Đồ thị vô hướng G có trọng số .................................................... 19
Hình 1.19. Đồ thị vô hướng không có trọng số G ......................................... 20
Hình 1.20. Đồ thị vô hướng có trọng số G .................................................... 21
Hình 1.21. Đồ thị vô hướng không có trọng số và có trọng số ...................... 22
Hình 2.1. Khởi trị danh sách d[i] .................. Error! Bookmark not defined.5
Hình 2.2. Cập nhật cạnh (1, 2) ...................................................................... 26
Hình 2.3. Cập nhật cạnh (3, 6) ...................................................................... 27
Hình 2.4. Cập nhật cạnh (2, 7) ...................................................................... 27
Hình 2.5. Cập nhật cạnh (3, 8) ..................................................................... 27
Hình 2.6. Cập nhật cạnh (5, 9) ...................................................................... 28
Hình 2.7. Cập nhật cạnh (4, 9) ...................................................................... 29


vi

Hình 2.8. Các mảnh liên thông của đồ thị G ................................................. 31
Hình 2.9. Đồ thị liên thông G có cây khung là nét in đậm ............................ 35
Hình 2.10. Rừng khung của đồ thị G ............................................................ 37
Hình 2.11. Biểu diễn cầu, cạnh trọng yếu ..................................................... 41
Hình 3.1. Bản đồ huyện Bát Xát ................................................................... 55
Hình 3.2. Mô hình hóa các tuyến đường huyện Bát Xát ............................... 57

Hình 3.3. Cây khung cực tiểu của mảnh liên thông với xã Trịnh Tường ....... 60


1

MỞ ĐẦU
1. Tính cấp thiết của đề tài
Đồ thị được định nghĩa là một cặp G = (V, E) trong đó: V là tập các
đỉnh hoặc node, E là tập các cung hoặc liên kết, đó là 2 tập con phần tử của
V (tức là một cạnh có liên quan đến hai đỉnh và các mối liên hệ được biểu
diễn như một cạnh có thứ tự của các đỉnh với các cạnh cụ thể).
Trong khoa học máy tính, đồ thị được sử dụng để biểu diễn mạng
truyền thông, tổ chức dữ liệu, thiết bị tính toán, tính toán dòng.Ví dụ, cấu
trúc liên kết của một website có thể biểu diễn bởi một đồ thị có hướng,
trong đó các đỉnh biểu diễn các trang web và các cạnh có hướng biểu diễn
đường dẫn từ một trang tới một trang khác.Một cách tiếp cận tương tự cũng
có thể giải quyết các vấn đề trong du lịch, sinh học, thiết kế chíp máy tính
và nhiều vấn đề khác nữa. Do đó, việc phát triển các thuật toán để xử lý đồ
thị là vấn đề quan tâm lớn của khoa học máy tính.
Lý thuyết đồ thị cũng thường được sử dụng nghiên cứu phân tử trong
hóa học và vật lý. Trong vật lý chất rắn, cấu trúc ba chiều của cấu trúc
nguyên tử mô phỏng phức tạp có thể được nghiên cứu định lượng bằng
cách thu thập số liệu thống kê về các đặc tính lý thuyết đồ thị liên quan đến
các cấu trúc liên kết của các nguyên tử. Trong hóa học một đồ thị biểu diễn
một mô hình tự nhiên cho một phân tử, nơi đỉnh biểu diễn cho các nguyên
tử và các liên kết cạnh.Cách tiếp cận này đặc biệt được sử dụng trong xử lý
máy tính của cấu trúc phân tử, từ biên tập hóa học tới tìm kiếm cơ sở dữ
liệu.
Trong vật lý thống kê, đồ thị có thể biểu diễn các kết nối cục bộ giữa
sự tương tác của các bộ phận của một hệ thống, cũng như sự biến đổi của

một tiến trình vật lý trên hệ thống. Đồ thị cũng được sử dụng để biểu diễn
các vi kênh của môi trường xốp, trong đó các đỉnh biểu diễn cho các lỗ
chân lông và các cạnh biểu diễn cho kênh nhỏ hơn nối các lỗ chân lông.


2

Trong xã hội, người ta có thể dùng lý thuyết đồ thị để đo độ uy tín của
một diễn viên hoặc tìm hiểu phạm vi lan rộng của một tin đồn, đặc biệt là
thông qua việc sử dụng các phần mềm phân tích mạng xã hội…
Tương tự như vậy, lý thuyết đồ thị cũng hữu ích trong sinh học như
giúp ích cho những nỗ lực bảo tồn, nơi một đỉnh có thể đại diện cho khu
vực mà một số loài tồn tại (hoặc môi trường sống) và các cạnh đại diện cho
con đường di cư, hoặc di chuyển giữa các vùng. Những thông tin này rất
quan trọng khi nhìn vào mô hình sản xuất giống hoặc theo dõi sự lây lan
của dịch bệnh, ký sinh trùng hoặc làm thế nào thay đổi đối với phong trào
thể ảnh hưởng đến các loài khác.
Trong toán học, đồ thị hữu ích trong hình học và một số phần của cấu
trúc liên kết như lý thuyết liên kết.Lý thuyết đồ thị đại số liên kết chặt chẽ
với các lý thuyết nhóm.
Một số cấu trúc đồ thị có thể gán trọng số cho mỗi cạnh của đồ thị.Đồ
thị có trọng số được sử dụng để biểu diễn cấu trúc trong đó cặp kết nối có
một vài giá trị số.Ví dụ, nếu một đồ thị đại diện cho mạng lưới đường bộ
thì trọng số đại diện cho độ dài quãng đường.
Qua đó, học viên nhận thấy lý thuyết đồ thị được ứng dụng trong mọi
lĩnh vực của cuộc sống, bằng cách biểu diễn này hay biểu diễn khác ta có
mô hình hóa vấn đề ta quan tâm thông qua biểu diễn vấn đề đó bằng đồ thị
và áp dụng lý thuyết đồ thị vào giải quyết được vấn đề. Nhận thức được
tầm quan trọng của lý thuyết đồ thị trong cuộc sống nên học viên đã chọn
đề tài khảo sát tính liên thông của đồ thị bằng kỹ thuật Find - Union và ứng

dụng nhằm mục đích sau:
- Tìm hiểu các khái niệm về đồ thị hữu hạn
- Tìm hiểu về tính liên thông của đồ thị
- Tìm hiểu kỹ thuật Find – Union


3

- Tìm hiểu các thuật toán liên quan đến đồ thị hữu hạn
- Áp dụng kỹ thuật Find – Union xây dựng một số ứng dụng giải quyết
một số vấn đề trong thực tiễn
2. Đối tượng và phạm vi nghiên cứu
2.1. Đối tượng nghiên cứu
- Tổng quan về đồ thị và đồ thị hữu hạn liên thông
- Tìm hiểu kỹ thuật Find - Union
- Tìm hiểu một số bài toán áp dụng kỹ thuật Find – Union trong lý
thuyết đồ thị như: Bài toán xác định thành phần liên thông, bài toán chu
trình, bài toán cây khung, bài toán cây khung cực tiểu, bài toán mạng, bài
toán rừng khung, bài toán rừng khung cực tiểu…
2.2. Phạm vi nghiên cứu
- Tập trung vào khảo sát tổng quan về lý thuyết cũng như cài đặt các
bài toán áp dụng kỹ thuật Find – Union trong đồ thị hữu hạn.
3. Hướng nghiên cứu của đề tài
3.1. Về lý thuyết:
- Lý thuyết về đồ thị hữu hạn.
- Tìm hiểu thuật toán Find – Union.
- Tìm hiểu các bài toán về đồ thị hữu hạn áp dụng thuật toán Find –
Union.
- Vận dụng các công cụ toán học, lý thuyết học rời rạc
3.2. Về thực nghiệm:

- Tìm hiểu ngôn ngữ, môi trường và kỹ thuật lập trình.
- Xây dựng hệ thống chương trình để thử nghiệm và đánh giá kết quả.


4

- Hình thành một số bài toán ứng dụng vào thực tiễn và xây dựng qui
trình giải.
4. Những nội dung nghiên cứu chính
Nội dung chính của luận văn được chia thành 3 chương cụ thể như
sau:


5

Chương 1. TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ HỮU HẠN
Khái niệm lý thuyết đồ thị đầu tiênđược biết đến trong bài báo
của Leonhard

Euler về Bảy

cây

cầu



Königsberg,

xuất


bản

năm 1736.Trong bài báo, ông đã sử dụng khái niệm lý thuyết đồ thị để đưa
ra hướng giải quyết cho bài toán.Kể từ đây, việc sử dụng lý thuyết đồ thị
ngày càng phổ biến, nó giúp nhiều nhà toán học mô phỏng và giải quyết
nhiều bài toán lớn của thế giới.
Năm 1845, Gustav Kirchhoff đưa ra Định luật Kirchhoff cho mạch
điện để tính điện thế và cường độ dòng điện trong mạch điện.
Năm 1852 Francis Guthrie đưa ra bài toán bốn màu về vấn đề liệu chỉ
với bốn màu có thể tô màu một bản đồ bất kì sao cho không có hai nước
nào cùng biên giới được tô cùng màu.Bài toán này được xem như đã khai
sinh ra lí thuyết đồ thị, và chỉ được giải sau một thế kỉ vào
năm 1976 bởi Kenneth Appel và Wolfgang Haken.Trong khi cố gắng giải
quyết bài toán này, các nhà toán học đã phát minh ra nhiều thuật ngữ và
khái niệm nền tảng cho lí thuyết đồ thị.
Trong khoảng vài mươi năm trở lại đây, cùng với sự ra đời của máy
tính điện tử và sự phát triển nhanh chóng của tin học, lý thuyết đồ thị càng
được quan tâm đến nhiều hơn.Thí dụ như trong kiến trúc mạng máy tính, tổ
chức và tìm kiếm dữ liệu trên mạng, chỉ dẫn đườngđi ...
Trong chương 1 sẽ trình bày những khái niệm tổng quan cơ bản về lý
thuyết đồ thị, cách biểu diễn đồ thị trên máy tính như: định nghĩa một đồ
thị, các loại đồ thị, bậc của đồ thị, tính liên thông của đồ thị, đường đi, chu
trình của đồ thị…
1.1. Đồ thị và các khái niệm liên quan
1.1.1. Định nghĩa đồ thị
Chúng ta thường xuyên nhìn thấy hoặc đã sử dụng bản đồ giao thông
của một thành phố, sơ đồ tổ chức một cơ quan, sơ đồ khối tính toán của



6

một thuật toán, sơ đồ mạng máy tính..., đó chính là những thí dụ cụ thể về
đồ thị.
Thí dụ: Một số dạng của đồ thị trong thực tế

Mạng máy tính

Sơ đồ giao thông

Mạng nơron

Hình 1.1.Các mô hình đồ thị

Đồ thị (Graph, ký hiệu G): 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ả:
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 [4]

Hình 1.2.Đồ thị hữu hạn

Đồ thị G cho ở hình 1.2 với tập ác đỉnh V = {a, b, c, d, e} và tập các
cạnh E ={(a, b), (b, c), (b, e), (c, e), (c, d)}.
Nếu (a, b) là một cạnh của đồ thị thì ta nói rằng đỉnh b kề với đỉnh a
và cả hai đỉnh a và b kề với cạnh (a, b).
Trong đồ thị ở hình 1.2 thì hai đỉnh a và c kề với đỉnh b, ba đỉnh a, c


7


và e kề với đỉnh b. Do vậy, ta có thể định nghĩa đồ thị bằng ánh xạ kề như
sau:
Về bản chất, đồ thị là một tập hợp các đối tượng được biểu diễn bằng
các đỉnh và giữa các đối tượng này có một quan hệ nhị nguyên biểu diễn
bằng các cạnh.
Cặp đỉnh (x, y) ∈ E không sắp thứ tự được gọi là cạnh vô hướng, còn
nếu nó có sắp thứ tự thì được gọi là cạnh có hướng.
1.1.2. Các loại đồ thị
1.1.2.1. Đồ thị vô hướng
Đồ thị G=(V,E) được gọi là đồ thị vô hướng nếu tất cả các cạnh u E
mà cặp đỉnh thuộc nó u = (x,y) (trong đó x, y  V) không phân biệt thứ tự
[8].

Hình 1.3.Đơn đồ thị vô hướng 8 đỉnh 7 cạnh


8

1.1.2.2. Đồ thị có hướng
Đồ thị G = (V, E) được gọi là đồ thị có hướng nếu tất cả các cạnh u
E màcặp đỉnh thuộc nó u = (x, y) (trong đó x,y  V) có phân biệt thứ
tự. Đồ thị có hướng là đồ thị mà mọi u=(x, y)  V đều là cung [8].

Hình 1.4.Đơn đồ thị có hướng 8 đỉnh 7 cạnh

1.1.2.3. Đồ thị hỗn hợp
Đồ thị G = (V,E) được gọi là đồ thị hỗn hợp nếu tất cả các cạnh u E
mà cặp đỉnh thuộc nó u = (x,y) có nhiều hơn một đường đi [3].


Hình 1.5. Đồ thị hỗn hợp


9

1.1.3. Một số dạng đồ thị đặc biệt
1.1.3.1 Đồ 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ó luôn có cạnh nối [3].
Thí dụ: Các đồ thị đầy đủ K1, K2, K3 cho trong hình 1.6

Hình 1.6.
Hình 1.6. Đồ thị đầy đủ

Đồ thị đầy đủ Kn có tất cả n*(n-1)/2 cạnh, nó là đơn đồ thị có nhiều
cạnh nhất.
1.1.3.2. Đồ thị vòng
Đồ thị vòng Cn, n ≥ 3, gồm n đỉnh v1, v2,....vn và các cạnh (v1, v2), (v2,
v3)... (vn-1, vn), (vn, v1) [3].
Thí dụ: Đồ thị vòng C1, C2, C3như hình 1.7


10

Hình 1.7
Hình 1.7. Đồ thị vòng C1, C2, C3

1.1.3.3 Đồ thị bánh xe
Đồ thị bánh xeWnthu được từ Cn bằng cách bổ sung vào một đỉnh mới

nốivới tất cả các đỉnh của Cn [4].
Thí dụ: Đồ thị bánh xe W1, W2, W3như hình 1.8

Hình 1.8. Đồ thị bánh xe W1, W2, W3

1.1.3.4 Đồ thị lập phương
Đồ thị lập phương n đỉnh Qnlà đồ 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 [4].
Thí dụ: Đồ thị vòng Q1, Q2, Q3như hình 1.9

Hình 1.9. Đồ thị lập phương Q1, Q2, Q3


11

1.1.3.5. Đồ thị hai phía
Đơn đồ thị G=(V,E) được gọi là đồ thị 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 [4].
Định lý: Đơn đồ thị là đồ thị hai phía khi và chỉ khi nó không chứa
chu trìnhđộ dài lẻ.
Để kiểm tra xem một đồ thị liên thông có phải là hai phía hay không ta
có thểáp dụng thủ tục sau:
- Cho v là một đỉnh bất kỳ của đồ thị.
- Đặt X={v}, còn Y là tập các đỉnh kề của v. Khi đó các đỉnh kề của
các đỉnhtrong Y phải thuộc vào X. Ký hiệu tập các đỉnh như vậy là T.
- Vì thế nếu phát hiện T∩Y #


thì đồ thị không phải là hai phía, kết

thúc.
- Ngược lại, đặt X=X∩T. - Tiếp tục xét như vậy đối với T’ là tập các
đỉnh kề của T,...
Đồ thị hai phía G=(X∪Y, E) với |X|= m, |Y| = n được gọi là đồ thị hai
phíađầy

đủ





hiệu



K2,3,

Thí dụ: Các đồ thị 2 phía K2,3, K3,3, K3,4 như hình 1.10

Hình 1.10. Đồ thị 2 phía K2,3, K3,3, K3,4

K3,3,

K3,4.


12


1.1.3.6. Đồ thị phẳng
Đồ thị được gọi là đồ thị phẳng nếu ta có thể vẽ nó trên mặt phẳng sao
chocác cạnh của nó không cắt nhau ngoài ở đỉnh. Cách vẽ như vậy sẽ được
gọi làbiểu diễn phẳng của đồ thị.z
Thí dụ: Đồ thị K như hình 1.11 bên dưới là đồ thị phẳng, vì 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 ngoài ở đỉnh.

Hình 1.11. Đồ thị phẳng K

1.1.4. Bậc của đồ thị
1.1.4.1. Bậc của đồ thị vô hướng

Hình 1.12. Đồ thị vô hướng

Hình 1.12 là một đồ thị đơn với tập đỉnh V = {1, 2, 3, 4, 5, 6} và tập
cạnh E = {(1,2),(1,5), (2,3), (2,5), (3,4), (4,5),(4,6)}
Bậc của đỉnh v trong đồ thị G, ký hiệu deg(v), là số cạnh liên thuộc
với v, trong đó, khuyên được tính hai lần. Một đỉnh có bậc 0 là đỉnh cô
lập.Đỉnh có bậc 1 là một đỉnh treo hay lá. Trong thí dụ 1.12 ta có deg(1) =
2, deg(2) = 3, d(3) = 2, deg(4) = 2, deg(5) = 3, deg(6) = 1.


13

Nếu tập cạnh E là hữu hạn thì tổng giá trị bậc của các đỉnh gọi
là bậc của đồ thị.Bậc của đồ thị bằng hai lần số cạnh.Số các đỉnh bậc lẻ
luôn là số chẵn.
Bậc cực đại của đồ thị G, ký hiệu Δ(G), là bậc lớn nhất của các đỉnh
trong đồ thị; bậc cực tiểu, δ(G), là bậc nhỏ nhất của các đỉnh trong đồ thị.

Trong hình 1.12 Δ(G) = 3, δ(G) = 1 [8].
1.1.4.2. Bậc của đồ thị có hướng

Hình 1.13. Đồ thị có hướng

Xét đồ thị cho trong hình 1.13 Ta có:
deg-(a)=1, deg-(b) = 2, deg-(c) =2, deg-(b) =2, deg-(e) = 2.
deg+(a) = 3, deg+(b) =1, deg+(c) = 1, deg+(d) = 2, deg+(e) = 2.
Bậc của một đỉnh v là số cạnh liên thuộc với v (trong đó, khuyên được
tính hai lần). Bậc của v được ký hiệu làdeg(v).
Trong một đồ thị có hướng, bậc trong của đỉnh v là số cung kết thúc
tại v, còn bậc ngoài là số cung xuất phát từ v. Bậc trong và bậc ngoài
của v được ký hiệu là deg+(v) và deg-(v). Do đó, deg(v) = deg+(v) + deg-(v).
Đỉnh với deg(v) được gọi là đỉnh cô lập. Đỉnh có deg(v) = 1 được gọi
là lá. Nếu mỗi đỉnh của đồ thị đều có bậc bằng nhau và bằng k thì đồ thị
được gọi là đồ thị chính quy bậc k và đồ thị được coi là có bậc bằng k.
Đỉnh có deg+(v) được gọi là đỉnh phát, đỉnh có deg-(v) là đỉnh thu [5].


14

Trong đồ thị có hướng G, bậc ngoài deg+(v), số cung xuất phát từ
đỉnh v, và bậc trong deg-(v), số cung đi vào đỉnh v. Bậc deg+(v) của
đỉnh v bằng tổng bậc ngoài và bậc trong của đỉnh đó. Bậc ngoài cực đại và
cực tiểu được ký hiệu Δ+(G) và δ+(G); bậc trong cực đại và cực tiểu, Δ-(G)
và δ-(G). Trong ngữ cảnh rõ ràng, có thể bỏ qua chỉ số dưới G [8].
1.1.5. Đường đi, chu trình, tính liên thông của đồ thị
Đường đi có độ dài k từ đỉnh u đến đỉnh v trên đồ thị vô hướng G =
(V, E) là dãy: x0, x1,…, xn-1, xk
Trong đó:

+ k là số nguyên dương,
+ x0 = u, xk = v, (xi, xi+1)  E,
+ i = 0, 1, 2, . . ., k-1.
Đường đi như trên còn có thể biểu diễn thành dãy các cạnh:
(x0, x1), (x1,x2) , . . ., (xk-1, xk).
Đỉnh u là đỉnh đầu, đỉnh v là đỉnh cuối của đường đi.
Chu trình: là đường đi có đỉnh đầu trùng với đỉnh cuối (u = v).
Đường đi đơn: là đường đi mà không có cạnh nào lặp lại.
Chu trình đơn: là chu trình mà không có cạnh nào lặp lại.
Thí dụ: Tìm các đường đi, chu trình trong đồ thị vô hướng như hình
1.14

Hình 1.14. Đường đi trên đồ thị

+ a, b, c, d là đường đi đơn độ dài 3. + a, b, f, không là đường đi vì (b,


15

f) không phải là cạnh của đồ thị.
+ Dãy a, b, c, f, e, a là chu trình độ dài 5.
+ Đường đi a, b, c, f, e, b, c có độ dài 6 không phải là đường đi đơn vì
cạnh (b, c) xuất hiện hai lần.
Khái niệm đường đi và chu trình trên đồ thị có hướng được định nghĩa
hoàn toàn tương tự, chỉ có điều khác biệt duy nhất là ta phải chú ý tới các
cung của đồ thị
Đồ thị liên thông: Đồ thị vô hướng G = (V, E) được gọi là liên thông
nếu luôn tồn tại đường đi giữa mọi cặp đỉnh phân biệt của đồ thị. Nếu G
không liên thông thì chắc chắn nó sẽ là hợp của hai hay nhiều đồ thị con
liên thông, các đồ thị con này đôi một không có đỉnh chung. Các đồ thị con

liên thông rời nhau như vậy được gọi là các thành phần liên thông của đồ
thị đang xét [1]. Một đồ thị được coi là hoàn toàn không liên thông nếu
không có đường đi giữa hai đỉnh bất kỳ trong đồ thị.Đây chỉ là một cái tên
khác để miêu tả một đồ thị rỗng hoặc một tập độc lập.Một đồ thị có hướng
được coi là liên thông mạnh nếu từ mỗi đỉnh đều đến được mọi đỉnh
khác.Ngược lại, đồ thị có hướng được coi là liên thông yếu nếu đồ thị vô
hướng nền tảng của nó là đồ thị liên thông [4].
Thí dụ: Kiểm tra tính liên thông của đồ thị hình 1.15
Đồ thị này không liên thông vì có đỉnh g là đỉnh cô lập nên không có
đường đi từ đình bất kỳ đến đỉnh g.

Hình 1.15. Đồ thị không liên thông


16

Chu trình sơ cấp: là chu trình không đi qua một đỉnh quá 1 lần (hay đi
qua mỗi đỉnh đúng 1 lần).
1.2. Biểu diễn đồ thị trên máy tính
1.2.1. Ma trận kề, ma trận trọng số
Để lưu trữ đồ thị và thực hiện các thuật toán khác nhau, ta cần phải
biểu diễn đồ thị trên máy tính, đồng thời sử dụng những cấu trúc dữ liệu
thích hợp để mô tả đồ thị.
Việc chọn cấu trúc dữ liệu nào để biểu diễn đồ thị có tác động rất lớn
đến hiệu quả thuật toán.Vì vậy, lựa chọn cấu trúc dữ liệu thích hợp biểu
diễn đồ thị sẽ phụ thuộc vào từng bài toán cụ thể.
Giả sử G = (V, E) là một đơn đồ thị có số đỉnh (ký hiệu |V|) là n,
không mất tính tổng quát có thể coi các đỉnh được đánh số 1, 2, …, n. Khi
đó ta có thể biểu diễn đồ thị bằng một ma trận vuông A = [a[i, j]] cấp n,
trong đó:

+ a[i, j] = 1 nếu (i, j) ∈ E
+ a[i, j] = 0 nếu (i, j)

E

Với ∀i, giá trị của a[i, i] có thể đặt tuỳ theo mục đích, thông thƣờng
nên đặt bằng 0.
Đối với đa đồ thị thì việc biểu diễn cũng tươngtự trên, chỉ có điều nếu
như (i, j) là cạnh thì không phải ta ghi số 1 vào vị trí a[i, j] mà là ghi số
cạnh nối giữa đỉnh i và đỉnh j [3].

Hình 1.16. Đồ thị vô hướng không có trọng số G


17

Bảng 1.1. Biểu diễn ma trận vô hướng không có trọng số bằng ma trận

Các tính chất của ma trận kề
- Đối với đồ thị vô hướng G, thì ma trận kề tương ứng là ma trận đối
xứng (a[i, j] = a[j, i]), điều này không đúng với đồ thị có hướng.
- Nếu G là đồ thị vô hướng và A là ma trận kề tương ứng thì trên ma trận
A:
+ Tổng các số trên hàng i = Tổng các số trên cột i = Bậc của
đỉnh i = deg(i)
- Nếu G là đồ thị có hướng và A là ma trận kề tương ứng thì trên ma trận
A:
+ Tổng các số trên hàng i = Bán bậc ra của đỉnh i = deg+(i)
+ Tổng các số trên cột i = Bán bậc vào của đỉnh i = deg-(i)
- Trong trường hợp G là đơn đồ thị, ta có thể biểu diễn ma trận kề

tương ứng là các phần tử logic:
+ a[i, j] = TRUE nếu (i, j) ∈ E và a[i, j] = FALSE nếu (i, j)

E

Ưu điểm của ma trậ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: a[u, v] ≠ 0.


×