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

Luận Văn Một Số Vấn Đề Ứng Dụng Của Đồ Thị Trong Tin Học

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 (460.31 KB, 80 trang )

Bộ giáo dục và đào tạo
Trờng đại học dân lập đông đô
Khoa công nghệ thông tin

Luận văn tốt nghiệp
một số vấn đề ứng dụng của đồ thị
trong tin học

Giáo viên hớng dẫn : PGS.TS Đỗ Đức Giáo
Giáo viên phản biện :
Sinh viên thực hiện

: Phan Thanh Long

Lớp

: CT96A - Khoá II

Hà Nội 6 - 2000


Lời nói đầu
Bớc sang năm bản lề của thế kỷ 21, nhìn lại thế kỷ 20 là thế kỷ mà con ngời
đạt đợc nhiều thành tựu khoa học rực rỡ nhất, một trong những thành tựu đó là sự
bùng nổ của ngành khoa học máy tính. Sự phát triển kỳ diệu của máy tính trong
thế kỷ này gắn liền với sự phát triển toán học hiện đại, đó là toán rời rạc.
Toán học rời rạc nghiên cứu các cấu trúc có tính chất rời rạc không liên tục.
Toán rời rạc bao gồm các lĩnh vực nh quan hệ, lý thuyết đồ thị, lôgíc toán, ngôn
ngữ hình thức... trong đó lý thuyết đồ thị là một bộ phận trọng tâm với nhiều
khối lợng kiến thức khá lý thú và đợc nghiên cứu nhiều nhất.
Toán rời rạc nói chung và lý thuyết đồ thị nói riêng là công cụ thiết yếu cho


nhiều ngành khoa học kỹ thuật, và là một thành phần quan trọng trong học vấn
đối với sinh viên các ngành kỹ thuật đặc biệt sinh viên ngành Tin học. Lý thuyết
đồ thị, với cách tiếp cận đối tợng nghiên cứu và phơng pháp t duy khá độc đáo
thực sự ngày càng hữu ích có nhiều ứng dụng phong phú và gây không ít bất ngờ.
Máy tính mà bản thân nó với các quá trình làm việc mang tính rời rạc, nên điều
này tơng hợp gắn chặt lý thuyết đồ thị với công nghệ máy tính trong việc nghiên
cứu các đối tợng có tính chất rời rạc.
Lý thuyết đồ thị có nhiều ứng dụng thực tiễn đặc biệt là trong lĩnh vực Tin học,
muốn hiểu biết sâu sắc các vấn đề Tin học cần nắm vững các kiến thức về Toán
học rời rạc mà trong đó đặc biệt là lý thuyết đồ thị. Từ những nhận thức trên, với
đề tài "Một số vấn đề ứng dụng của đồ thị trong Tin học" đây không chỉ là
nhiệm vụ em phải thực hiện trong kỳ bảo vệ luận văn tốt nghiệp mà thực sự đây
là đề tài mà em rất quan tâm và say mê nghiên cứu.
Với tấm lòng biết ơn sâu sắc, em xin chân thành cảm ơn Thầy giáo Pgs. Ts Đỗ
Đức Giáo là ngời trực tiếp, tận tình, chu đáo giảng dạy và hớng dẫn em hoàn
thành cuốn luận văn này. Nhân dịp này em cũng xin cảm ơn sự giúp đỡ, dạy bảo
tận tình của các thầy cô giáo, cán bộ Khoa Công Nghệ Thông Tin trờng Đại học
Dân lập Đông Đô và những bạn học đã đóng góp những ý kiến bổ ích cho bản
luận văn này.
Do trình độ hiểu biết còn hạn chế, thời gian chuẩn bị không nhiều, bản luận
văn này còn nhiều sai sót và cha đầy đủ, em rất mong nhận đợc sự góp ý của
các thầy cô và các bạn quan tâm.
Hà Nội 6/2000
Sinh viên: Phan Thanh Long


Giới thiệu đề tài
"Một số vấn đề ứng dụng của đồ thị trong Tin học" là đề tài mang tính nghiên
cứu lý thuyết, có tầm quan trọng và có ý nghĩa thiết thực cao. Khái niệm đồ thị ở
đây khác với những đồ thị thông thờng đã biết, đây là 1 lĩnh vực về lý thuyết đồ

thị nghiên cứu những cấu trúc mang tính rời rạc là 1 bộ phận quan trọng của
Toán học rời rạc.
Lý thuyết đồ thị có nhiều ứng dụng trong các ngành kỹ thuật và đã đợc nghiên
cứu nhiều với khối lợng kiến thức khá đồ sộ. Đề tài đợc thực hiện trớc tiên sẽ đề
cập tới những vấn đề chủ yếu của Lý thuyết đồ thị, sau đó tuỳ từng nội dung
cũng sẽ xoay quanh tới những ứng dụng của đồ thị trong Tin học, giải quyết các
bài toán trong Tin học nh xác định xem hai máy tính trong mạng có thể truyền
tin đợc hay không nhờ mô hình đồ thị của mạng máy tính, hay là bài toán nối
mạng máy tính sao cho tổng chi phí là nhỏ nhất hoặc việc khắc phục những gói
tin bị truyền sai nhờ các giải thuật đã nghiên cứu về đồ thị. Có những ứng dụng
của đồ thị không đi trực tiếp vào các lĩnh vực trong Tin học, ví dụ nh bài toán lập
lịch trong công tác hành chính, xác định đờng đi ngắn nhất giữa 2 điểm nút giao
thông, ta cũng xem đó là ứng dụng 1 cách gián tiếp trong Tin học vì nếu đợc mô
hình tốt những bài toán đó bằng đồ thị thì sẽ giải quyết chúng dễ dàng bằng máy
tính, hoặc là về chơi cờ Ca rô tuy chỉ là môn chơi về trí tuệ nhng đồ thị cũng hỗ
trợ tốt cho nhng ai muốn lập trình chơi cờ Ca rô trên máy tính khi đã mô hình đợc các thế cờ bằng đồ thị.
Đề tài đợc thực hiện xong bao gồm những nội dung sau đây:
Chơng 1

Một số vấn đề cơ bản của đồ thị

Nhằm trình bày những khái niệm cơ bản nhất về lý thuyết đồ thị, là cơ sở tìm
hiểu sâu sắc hơn các vấn đề tiếp theo. Ngoài các định nghĩa, tính chất cơ bản của
đồ thị, chơng này có trình bày đến 1 vấn đề quan trọng, đó là cách lu trữ, biểu
diễn và xử lý đồ thị trên máy tính khi đã xét những mô hình biểu diễn hình học.
Cấu trúc dữ liệu liên quan chặt chẽ đến giải thuật, việc biểu diễn đồ thị trên máy
tính nh thế nào sẽ ảnh hởng đến cách giải các bài toán ứng dụng bằng máy tính.
Trong chơng có trình bày một số phơng pháp biểu diễn đồ thị trên máy tính, mỗi
phơng pháp đều có những u và khuyết điểm riêng, vì vậy cần lựa chọn phơng
pháp sao cho phù hợp với đặc điểm từng bài toán và đạt đợc hiệu quả về thuật

toán.
Khi đa các ví dụ minh họa, nhất là về phần đồ thị đặc biệt ta sẽ thấy đợc ứng
dụng của đồ thị trong mô hình về mạng máy tính.


Chơng 2

Số ổn định và tô màu đồ thị

Số ổn định của đồ thị bao gồm số ổn định trong, số ổn định ngoài và nhân đồ
thị, nghiên cứu vấn đề này ta sẽ thấy đợc mối quan hệ giữa các tập đỉnh của một
đồ thị. Một ứng dụng khá lý thú khi đề cập tới vấn đề này đó là xây dựng mô
hình đồ thị cho bài toán lập trình chơi cờ carô, có sử dụng đến tập ổn định ngoài
của đồ thị.
ở chơng này ta cũng sẽ gặp đến một ứng dụng khá thiết thực khi bàn đến vấn
đề tô màu của đồ thị, hay còn gọi là sắc số của đồ thị, ứng dụng đó là bài toán
lập lịch. Lập lịch là công tác hành chính phổ biến, hay gặp ở các cơ quan, xí
nghiệp, trờng học... cũng đã có nhiều sản phẩm phần mềm phục vụ cho việc lập
lịch.
Chơng 3 Chu trình, đờng đi Euler và Hamilton trong đồ thị
Trình bày những khái niệm về chu trình Euler, đờng Euler, chu trình Hamilton,
đờng Hamilton các tính chất của chúng đồng thời đa ra 1 số thuật toán ứng dụng
để tìm các đờng, chu trình Euler, Hamilton.
Chơng 4 Đờng đi ngắn nhất trong đồ thị
Bài toán đờng đi ngắn nhất hay đợc đề cập tới trong lý thuyết đồ thị, đây cũng
là loại bài toán tối u có nhiều ứng dụng rộng rãi. Trong đồ thị thờng đặt ra các
loại tìm đờng đi ngắn nhất nh sau:
- Đờng đi ngắn nhất nhất giữa 1 cặp đỉnh đã đợc xác định trớc.
- Đờng đi ngắn nhất giữa 1 đỉnh với tất cả các đỉnh còn lại.
- Đờng đi ngắn nhất giữa tất cả các cặp đỉnh bất kỳ.

Để giải quyết các loại bài toán này, trong chơng sẽ trình bày 1 số thuật toán
chính hay đợc sử dụng nh: Dijkstra, Ford-Bellman và Floyd.
Về mặt ứng dụng, trong chơng sẽ nêu ra giải thuật Viterbi cho ứng dụng khá
quan trọng trong lĩnh vực Tin học đó sửa gói tin sai khi truyền tin trong mạng
máy tính.
Khi nói đến đờng đi ngắn nhất, ngời ta cũng hay nói đến mở rộng của bài toán
đờng đi ngắn nhất thành đờng đi dài nhất. Trong vấn đề này ta lại có 1 ứng dụng
nữa trong công tác lập lịch, đó là sơ đồ mạng PERT cho việc lập dự án thi công
một công trình. ứng dụng này rất thực tiễn và đã đem lại nhiều hiệu quả cao cho
việc thi công một công trình.
Chơng 5

Một số vấn đề về cây

Đây là chơng cuối cùng và là chơng sẽ đề cập tới nhiều ứng dụng nhất. Cây là
một trờng hợp riêng của đồ thị, để nghiên cứu hết các tính chất, khái niệm về cây


cần cả 1 khối lợng kiến thức đồ sộ và đã có những đề tài cấp luận văn hoặc hơn
thế nữa nghiên cứu về cây. Trong chơng này chỉ đề cập tới những điểm chính
nhất, cơ bản nhất về cây và tập trung khai thác những ứng dụng của nó.
Những ứng dụng của cây thì rất nhiều, trong chơng chỉ đề cập tới những ứng
dụng cơ sở nhất nhng cũng thiết thực nhất, đó là 1 số ứng dụng của cây nhị phân
nh mã tiền tố, cây biểu diễn biểu thức, cây quyết định, cây sắp xếp và tìm kiếm.
Trong lý thuyết đồ thị, khi nói về cây thì cây bao trùm là vấn đề không thể
thiếu, vì đây cũng là đặc điểm rất hay của đồ thị. Trong cây bao trùm lại có cây
bao trùm bé nhất, lớn nhất và đây lại là 1 dạng của bài toán tối u. Trong chơng
cũng sẽ giới thiệu ứng dụng thực tiễn của cây bao trùm nhỏ nhất trong việc kết
nối mạng sao cho chi phí nhỏ nhất, đồng thời đa ra 1 số thuật toán tìm cây bao
trùm, đặc biệt có những thuật toán rất cơ sở đợc nêu ra, đợc dùng nhiều trong

việc giải quyết các bài toán đồ thị trên máy tính nh là kỹ thuật quay lui, tìm kiếm
u tiên theo chiều rộng và chiều sâu.


Mục lục
Nội dung

Trang

Lời nói đầu ............................................................................................
Giới thiệu đề tài ..................................................................................
Mục lục .....................................................................................................
Chơng 1

Một số vấn đề cơ bản của đồ thị

I. Các định nghĩa đồ thị.................................................................
1. Định nghĩa đồ thị...................................................................................
2. Đồ thị đơn ..............................................................................................
3. Đa đồ thị ................................................................................................
4. Giả đồ thị................................................................................................

1
2
5
9
9
9
10
10

10

II. Các loại đồ thị .............................................................................. 11
1. Đồ thị vô hớng .....................................................................................
2. Đồ thị có hớng .....................................................................................
3. Đồ thị hỗn hợp ......................................................................................

11
11
11

III. Một số khái niệm và tính chất cơ bản của đồ ........
thị

11

1. Bậc đồ thị ...............................................................................................
1.1 Bậc đồ thị vô hớng ............................................................................
1.2 Bậc đồ thị có hớng ............................................................................
2. Đờng đi và chu trình ...........................................................................
2.1 Đờng đi .............................................................................................
2.2 Chu trình ............................................................................................
3. Đồ thị liên thông ....................................................................................
4. Đồ thị con và đồ thị bộ phận ................................................................

11
11
12
13
13

13
14
15

IV. Các dạng biểu diễn của đồ thị ............................................

15

1. Biểu diễn hình học của đồ thị ..............................................................
2. Sự đẳng cấu ...........................................................................................
3. Một số đồ thị đặc biệt ...........................................................................
3.1 Đồ thị đều ...........................................................................................

15
16
17
17


3.2 Đồ thị đầy đủ ......................................................................................
3.3 Đồ thị bánh xe ....................................................................................
3.4 Một vài ứng dụng của đồ thị đặc
biệt .................................................
4. Biểu diễn đồ thị trên máy tính ............................................................
4.1 Biểu diễn bằng ma trận kề ..................................................................
4.2 Danh sách cạnh (cung) ......................................................................
4.3 Danh sách kề ......................................................................................

17
17

18
19
19
22
22

Chơng 2 Số ổn định và tô màu đồ thị ..........................

24

I. Số ổn định trong, số ổn định ngoài, nhân đồ thị ...............

24

1. Số ổn định trong ....................................................................................
2. Số ổn định ngoài ....................................................................................
3. Nhân đồ thị ............................................................................................
4. Các thuật toán tìm các tập ổn định trong cực đại, ổn định ngoài
cực tiểu.
4.1 Thuật toán tìm số ổn định trong ........................................................
4.2 Thuật toán tìm số ổn định ngoài........................................................

24
24
24
25

II. tô màu đồ thị ..................................................................................

29


1. Sắc số đồ thị ...........................................................................................
2. Tô màu đồ thị phẳng.............................................................................
2.1 Đồ thị phẳng.......................................................................................
2.2 Định lý 5 màu (Kempe - Heawood)...................................................
2.3 Bài toán 4 màu (Appel - Haken).........................................................
3. Ví dụ ứng dụng .....................................................................................

29
31
31
31
32
32

Chu trình, đờng đi Euler và
hamilton trong đồ thị

35

25
25
5. ứng dụng đồ thị trong lập trình chơi cờ Ca rô.................................... 26

Chơng 3

......

I. Chu trình và đờng đi Euler .................................................


35

1. Chu trình Euler ........................ ............................................................ 35
1.1 Định nghĩa
35
..........................................................................................
1.2 Thuật toán tìm chu trình Euler
37
...........................................................


2. Đờng đi Euler ......................................................................................
2.1 Định nghĩa
..........................................................................................
2.2 Thuật toán tìm đờng Euler ...............................................................

38
38

II. Chu trình và đờng đi Hamilton .......................................

39

38

1. Chu trình Hamilton .............................................................................. 39
2. Đờng Hamilton .................................................................................... 40
3. Thuật toán liệt kê tất cả các chu trình Hamilton ............................... 41

Chơng 4 Đờng đi ngắn nhất trong đồ thị ......


42

I. Đờng đi ngắn nhất trong đồ thị không có trọng số ...

42

1. Định nghĩa .............................................................................................
2. Thuật toán .............................................................................................
Ii. Đờng đi ngắn nhất trong đồ thị có trọng số ........

42
42
43

1. Các khái niệm ............................ ............................ .............................
2. Thuật toán tìm đờng đi ngắn nhất cho đồ thị có trọng số ..............

43
44
2.1 Cơ sở thuật toán tìm đờng đi ngắn nhất ........................................... 44
2.2 Thuật toán Dijkstra ........................................................................... 45
2.3 Thuật toán Ford - Bellman ................................................................. 45
2.4 Thuật toán Floyd ............................................................................... 47

III. các ứng dụng ..........................................................................................

47

1. ứng dụng trong truyền tin.................................................................... 47

2. ứng dụng trong việc lập lịch thi công của một công trình ................ 50
IV. Chơng trình mô tả thuật toán Dijkstra tìm đờng đi
ngắn nhất

Chơng 5

Một số vấn đề về cây ........................................

53

56

I. Các khái niệm và tính chất cơ bản ............................................ 56

1. Định nghĩa ....................................................................................................
2. Một số khái niệm cơ bản ...........................................................................
3. Cây m phân ..................................................................................................
4. Các ứng dụng ...............................................................................................

56
57
58
58


4.1 Mã tiền tố .................................................................................................
4.2 Cây biểu diễn biểu thức ..........................................................................
4.3 Cây quyết định ........................................................................................
4.4 Cây sắp xếp và tìm kiếm ........................................................................
4.4.1 Sắp xếp chèn với tìm kiếm nhị phân ...............................................

4.4.2 Thuật toán sắp xếp hoà nhập .........................................................
4.4.3 Thuật toán sắp xếp nhanh ..........................................................

58
61
62
63
63
65
68

II. Cây bao trùm ...........................................................................................

70

1. Định nghĩa và các tính chất .....................................................................
2. Các thuật toán tìm cây bao trùm ...........................................................
2.1 Thuật toán theo lý thuyết .......................................................................
2.2 Thuật toán tìm kiếm u tiên chiều sâu và chiều rộng .......................
2.2.1 Kỹ thuật quay lui .............................................................................
2.2.2 Thuật toán tìm kiếm theo chiều sâu ...........................................
2.2.3 Thuật toán tìm kiếm theo chiều rộng .........................................
2.3 Chơng trình thể hiện cho các thuật toán ............................................
2.3.1 Chơng trình Pascal về thuật toán quay lui ..............................
2.3.2 Chơng trình cho thuật toán tìm kiếm chiều sâu và chiều rộng
3. Cây bao trùm bé nhất ...............................................................................
3.1 Định nghĩa ...............................................................................................
3.2 Thuật toán tìm cây bao trùm bé nhất ....................................................
3.2.1 Thuật toán Kruskal ..........................................................................
3.2.2 Thuật toán Prim ...............................................................................

3.2.3 Chơng trình thể hiện thuật toán ...................................................
3.3 ứng dụng cho bài toán kết nối hệ thống mạng .................................
4. Cây bao trùm lớn nhất ..............................................................................
4.1 Định nghĩa ...............................................................................................
4.2 Thuật toán tìm cây bao trùm lớn nhất ..................................................

70
71
71
71
72
72
73
73
73
74
76
76
76
76
77
78
81
81
81
81

Kết luận ..................................................................................................
Tài liệu tham khảo ..........................................................................


83
84


Chơng 1

một số vấn đề cơ bản của đồ thị

I. Các định nghĩa đồ thị
1. Định nghĩa đồ thị
Đồ thị là một cấu trúc rời rạc bao gồm các đỉnh và các cạnh nối các đỉnh này,
các loại đồ thị khác nhau đợc phân biệt bởi kiểu và số lợng cạnh nối hai đỉnh
nào đó của đồ thị.
Giả sử X là tập hữu hạn, không rỗng các phần tử nào đó và U XìX. Bộ G
= <X, U> đợc gọi là đồ thị hữu hạn. Mỗi phần tử xX gọi là một đỉnh và mỗi
phần tử u = (x,y) U gọi là một cạnh của đồ thị G = <X, U>.
Xét một cạnh u U khi đó tồn tại 2 đỉnh x, y X sao cho u = (x, y), ta nói
rằng x nối với y hoặc x và y thuộc u.
x

u

y

- Nếu cạnh u = (x, y) mà x và y là hai đỉnh phân biệt thì ta nói x, y là hai đỉnh
kề nhau.
- Nếu u = (x, x) thì u là cạnh có hai đỉnh trùng nhau ta gọi đó là một khuyên.
- Nếu u = (x, y) mà x,y là cặp đỉnh có phân biệt thứ tự hay có hớng từ x đến y
thì u là một cung, khi đó x là gốc còn y là ngọn hoặc x là đỉnh ra, y là đỉnh vào.
- Khi giữa cặp đỉnh (x, y) có nhiều hơn một cạnh thì ta nói những cạnh cùng

cặp đỉnh là những cạnh song song hay là cạnh bội
y

x

y

x

y

a)
b)
c)
a. Tại đỉnh y có một khuyên b. Một cung có hớng từ x sang y
c. Cặp đỉnh (x, y) có 2 cạnh song song
Hình 1.1
Trong thực tế ta có thể gặp nhiều vấn đề mà có thể dùng mô hình đồ thị để
biểu diễn, nh sơ đồ một mạng máy tính, sơ đồ mạng lới giao thông, sơ đồ thi
công một công trình.


Ví dụ: Xét một mạng máy tính, có thể biểu diễn mạng này bằng một mô hình
đồ thị, trong đó mỗi máy là một đỉnh, giữa các máy đợc nối với nhau bằng các
dây truyền, chúng tơng ứng là các cạnh của đồ thị. Một mô hình mạng máy
tính nh hình 1.2 trong đó có các máy tính A, B, C, D tơng ứng là các đỉnh, giữa
2 máy đợc nối trực tiếp với nhau thì tơng ứng với 1 cặp đỉnh kề nhau.
A

B

C

D

Hình 1.2 Ví dụ về một đồ thị
2. Đồ thị đơn
Đồ thị G = <X, U> đợc gọi là đồ thị đơn nếu giữa hai đỉnh bất kỳ đợc nối với
nhau bởi không quá một cạnh (cung), tức là đồ thị không có cạnh bội, không có
khuyên.
Hình 1.2 là một ví dụ về đồ thị đơn
3. Đa đồ thị
Đồ thị G = <X, U> đợc gọi là đa đồ thị nếu nó có ít nhất một cặp đỉnh đợc nối
với nhau bởi hai cạnh (hai cung) trở lên.
4. Giả đồ thị
Là đồ thị có ít nhất một khuyên, có thể chứa cạnh bội, cạnh đơn. Tóm lại đây
là loại đồ thị tổng quát nhất.
A

B
D

A

B

C

a)
Hình 1.3 a. Đa đồ thị


D

C

b)
b. Giả đồ thị

II. Các loại đồ thị
1. Đồ thị vô hớng
Đồ thị G=<X,U> đợc gọi là đồ thị vô hớng nếu tất cả các cạnh e U mà
cặp đỉnh thuộc nó e = (x,y) X không phân biệt thứ tự. Đồ thị vô hớng là đồ
thị không có bất kỳ một cung nào.


Ví dụ: nh hình 1.3.a là biểu diễn của một đồ thị vô hớng.
2. Đồ thị có hớng
Đồ thị G = <X, U> đợc gọi là đồ thị có hớng nếu tất cả các cạnh e U mà
cặp đỉnh thuộc nó e = (x, y) X có phân biệt thứ tự. Đồ thị có hớng là đồ thị
mà mọi e = (x, y) X đều là cung.
A

B

C

Hình 2.1 Đồ thị có hớng
3. Đồ thị hỗn hợp
Đồ thị G=<X,U> vừa có cạnh vô hớng, vừa có cạnh có hớng thì nó đợc gọi là
đồ thị hỗn hợp, loại đồ thị này rất ít khi đợc dùng tới.
Chú ý rằng vấn đề phân chia đồ thị và các thuật ngữ về đồ thị chỉ mang tính

tơng đối, hiện nay vẫn còn cha mang tính thống nhất chuẩn trên nhiều tài liệu.
III. Một số khái niệm và tính chất cơ bản của đồ thị
1. Bậc đồ thị
1.1 Bậc đồ thị vô hớng
Cho đồ thị vô hớng G = <X,U>. Xét 1 đỉnh x X đặt m(x) là số cạnh thuộc
đỉnh x khi đó m(x) đợc gọi là bậc của đỉnh x. Nếu x có một khuyên thì m(x) đợc cộng thêm 2.
x

x

m(x) = 3

m(x) = 2

- Nếu m(x) = 0 thì đỉnh x đợc gọi là đỉnh cô lập
- Nếu m(x) = 1 thì đỉnh x đợc gọi là đỉnh treo
Ta đặt

m(G) = m(x)
x X

thì m(G) đợc gọi là bậc của đồ thị vô hớng G = <X, U>
1.2 Bậc đồ thị có hớng
Cho đồ thị có hớng G= <X,U> xét 1 đỉnh x X, ta ký hiệu m+(x) là số các
cung vào của đỉnh x, còn m-(x) là số các cung ra khỏi x. Khi đó ta gọi m +(x) là
bậc vào của đỉnh x còn m-(x) là bậc ra của đỉnh x.
- Nếu m+(x) + m-(x) = 0 thì đỉnh x đợc gọi đỉnh là cô lập


- Nếu m+(x) + m-(x) = 1 thì đỉnh x đợc gọi là đỉnh treo

Ta đặt

m(G) = m + (x) +
x X

m



(x)

x X

Khi đó m(G) đợc gọi là bậc của đồ thị có hớng G = <X,U>.
Trong đồ thị có hớng thì m+(x) = m-(x) = U
Ví dụ:
- Xét đồ thị vô hớng nh trong hình 1.3.a ta có:
m(G) = m(A) + m(B) + m(C) + m(D) = 2 + 5 + 2 + 1 = 10
- Xét đồ thị có hớng trong hình 2.1 ta có:
m(G) = [m+(A) + m+(B) + m+(C) ] + [m-(A) + m-(B) + m-(C)]
= [1 + 2 + 1] + [2 + 1 +1] = 8
Định lý:
Cho đồ thị hữu hạn G = <X,U> khi đó bậc của đồ thị G bằng 2 lần số cạnh
của đồ thị, tức là m(G) = 2U .
Chứng minh:
Ta thấy một cạnh thuộc 2 đỉnh, nếu xoá một cạnh thì bậc của G giảm đi 2,
nếu xoá một khuyên u = (x, x) thì bậc của G cũng giảm đi 2, còn nếu xoá hết
cạnh, hết khuyên thì bậc của đồ thị bằng 0. Từ đó suy ra định lý.
Hệ quả: Số đỉnh bậc lẻ của đồ thị G = <X,U> là một số chẵn
Chứng minh:

Gọi A và B tơng ứng là tập đỉnh bậc lẻ và tập đỉnh bậc chẵn của đồ thị. Ta
có:

2m =

m(x)

xX

=

m(x) + m(x)

xA

xB

Do vế trái chẵn nên tổng vế phải cũng là số chẵn. Mà tổng bậc của các đỉnh
bậc chẵn (xA) là số chẵn nên tổng bậc của các đỉnh bậc lẻ (x) phải là số
chẵn, do tất cả các số hạng của nó là số lẻ, nên tổng này phải gồm một số chẵn
các số hạng. Vì vậy số đỉnh bậc lẻ phải là số chẵn.
2. đờng đi và chu trình
2.1 Đờng đi
Xét đồ thị G = <X,U> với
- Tập đỉnh X = {x1,x2,...,xn}
- Tập cạnh U = {u1,u2,...,um}


Tập hợp các đỉnh kề nhau từ xi đến xj đợc gọi là 1 đờng đi, kí hiệu
xixi1xi2 ... xj xiuixi1ui1xi2ui2 ... ujxj

Trong đó các cạnh, các đỉnh trong đờng đi có thể lặp lại
Độ dài của đờng đi bằng số các cạnh (hoặc cung) trong đờng đi đó.
*Chú ý rằng trong đồ thị có hớng, trên một cung uv chẳng hạn thì đờng đi chỉ
có thể đi từ gốc (u) đến ngọn (v) không thể đi ngợc lại.
2.2 Chu trình
Xét một đờng đi từ xi - xj. Nếu xi xj thì đờng đi này đợc gọi là một chu
trình. Nh vậy chu trình là một đờng đi có đỉnh xuất phát và đỉnh kết thúc trùng
nhau.
Chú ý rằng đờng đi trong đồ thị có hớng không đợc đi ngợc chiều mũi tên
- Đờng đi (chu trình) đợc gọi là đơn nếu nó đi qua mỗi cạnh không quá một
lần.
- Đờng đi (chu trình) đợc gọi là sơ cấp nếu nó đi qua mỗi đỉnh đúng một lần
A

E

B
C

D

Hình 3.1
Ví dụ nh ở hình 3.1 ADBE là một đờng đi sơ cấp từ A đến E độ dài 3;
ABCDBE là đờng đi không sơ cấp ( qua B 2 lần) từ A đến E độ dài 5; ABDAB
là một đờng đi không đơn (chứa cạnh AB 2 lần) từ A đến B độ dài 4; ABDA
Là 1 chu trình đơn và sơ cấp độ dài 3; CC là đờng đi độ dài 0.
Xét đồ thị có hớng nh hình 2.1 thì ABCB là một đờng đi độ dài 3; CBA
không là một đờng đi vì không có cung đi từ B đến A.
Định lý:
Nếu trong đồ thị G = <X,U> các đỉnh đều có bậc không nhỏ hơn 2 ( x X |

m(x) 2 ) thì trong G tồn tại ít nhất một chu trình.
Chứng minh:
Xét tất cả các đờng đi đơn. Vì đồ thị là hữu hạn cho nên số các đờng đi đơn là
hữu hạn. Chọn một đờng đi là dài nhất nào đó ví dụ từ xi1 đến xij +1 (xem hình vẽ
dới đây). Theo giả thiết m(x) 2 nên tồn tại ít nhất một đỉnh xi0 và một cạnh
nối đỉnh xi1 và xi0. Đỉnh xi0 thuộc một trong các đỉnh trên đờng đi đã chọn
chẳng hạn xij vì đờng đi là dài nhất, nên chứng tỏ tồn tại một chu trình trong đờng đi.
xi1

xi2

xi3
xi0

xij

xij+1


3. Đồ thị liên thông
Cho đồ thị G = <X,U>. Hai đỉnh phân biệt x,y X đợc gọi là liên thông nếu
tồn tại một đờng đi nối các đỉnh x, y với nhau. Đồ thị G đợc gọi là liên thông
nếu với hai đỉnh phân biệt bất kỳ trong đồ thị đều là liên thông.
Ví dụ nh hình 3.1 là một đồ thị liên thông vì luôn có đờng đi nối hai đỉnh bất
kỳ của đồ thị, còn đồ thị nh hình 3.2 là không liên thông vì không có đờng đi
từ A tới D hoặc từ D tới F v.v..
Xét 2 đồ thị liên thông
G1 = <X1, U1> và G2 = <X2, U2>
Trong đó:
X1 X2 =

và U1 U2 =
Khi đó: X = X1 X2
U = U1 U 2
Thì G = <X,U> là đồ thị có 2 thành phần liên thông G1, G2.
A

B

D

E

F

C

Hình 3.3
Ví dụ nh đồ thị trong hình 3.3 có ba thành phần liên thông sau:
G1 = <X1, U1> với X1= {A,B,C} và U1 = {AB, AC, CB}
G2 = <X2, U2> với X2= {D, E} và U2 = {DE}
G3 = <X3, U3> với X3= {F} và U3 =
Cho đồ thị có hớng G = <X, U>
- G đợc gọi là đồ thị liên thông yếu nếu đồ thị vô hớng tơng ứng với nó là liên
thông
- G là liên thông một chiều nếu với hai đỉnh x,y khác nhau bất kỳ của G luôn
có đờng đi x - y hoặc đờng đi y - x.
- G là liên thông mạnh (liên thông 2 chiều) nếu hai đỉnh x,y khác nhau bất kỳ
của G đều có đờng đi x - y và đờng đi y - x.
A


B

A

B

A

B

D

D

D

C

C

C


H1

H2
Hình 3.4

H3


ở hình 3.4 đồ thị H1 là liên thông mạnh, giả sử cặp đỉnh (A,C) ta có chiều đi
từ C tới A, và đồng thời cũng có chiều đi từ A tới C, và bất kỳ các cặp đỉnh
khác cũng tơng tự nh vậy. H2 là liên thông một chiều vì xét cặp đỉnh (A,D) có
chiều đi từ D tới A nhng không có chiều đi từ A tới D. H 3 là liên thông yếu vì
tồn tại cặp đỉnh (B,C) không có chiều đi B - C cũng không có chiều đi C - B,
nhng đồ thị vô hớng tơng ứng là liên thông.
4. Đồ thị con và đồ thị bộ phận
Cho đồ thị G = <X,U>
- Nếu trong đồ thị đó ta bỏ đi một số đỉnh nào đó và các cạnh xuất phát từ đỉnh
đó thì phần còn lại của đồ thị đợc gọi là đồ thị con của đồ thị G đã cho, hoặc là
nếu D = <X',U'> là đồ thị con của G = <X,U> thì X' X và U' U
- Nếu trong đồ thị G ta bỏ đi một số cạnh nhng giữ nguyên các đỉnh thì phần
còn lại của đồ thị đợc gọi là đồ thị bộ phận của đồ thị G.
IV. Các dạng biểu diễn của đồ thị
1. Biểu diễn hình học của đồ thị
Để có cái nhìn trực quan ta thờng biểu diễn đồ thị bằng hình học, một đồ thị có
thể biểu diễn trên một mặt phẳng hoặc trong không gian. Phơng pháp biểu diễn
nh sau: Biểu diễn các đỉnh của đồ thị bằng các điểm (hay vòng tròn nhỏ, ô vuông
nhỏ) và nối hai điểm bằng một đờng (cong, thẳng, mũi tên) khi cặp điểm đó ứng
với một cạnh (cung) của đồ thị.
Ví dụ 1: Cho đồ thị G = <X,U> trong đó
X = {A, B, C, D, E} và
U = {AB, AC, AD, AE, BD, CD, CE}
D

C
B

A
E


A

a)

B

E

D
C

b)

Hình 4.1
Hình 4.1.a và hình 4.1.b đều là biểu diễn hình học của đồ thị G đã cho ở trên
2. Sự đẳng cấu


Với mỗi đồ thị thì có thể có nhiều dạng biểu diễn hình học, có nhiều đồ thị tởng chừng khác nhau nhng đó là cách biểu diễn hình học khác nhau của cùng
một đồ thị, sự đẳng cấu cho phép chúng ta kết luận đợc điều đó.
Định nghĩa: Xét 2 đồ thị G1 = (X1, U1) và G2 = <X2, U2>
Hai đồ thị này đợc gọi là đẳng cấu với nhau nếu tồn tại 1 song ánh từ X 1 vào X2
và từ U1 vào U2 sao cho nếu có cạnh e = (u, v) U1 tơng ứng với cạnh e' = (u', v')
U2 thì cặp đỉnh u, v X1 cũng là tơng ứng cặp đỉnh u', v' X2
Ví dụ xét 2 đồ thị G1 và G2 nh hình 4.2
a

b


m

n

d

c

q

p

G1

G2
Hình 4.2

Ta có f : G1 G2
f(a) = m
f(c) = n
f(d) = q
f(b) = p
Nếu a, b X1 kề nhau thì f(a), f(b) X2 kề nhau.
Vậy đây là 2 đồ thị đẳng cấu với nhau, ta có thể xem G 1 và G2 thực chất chỉ là 1
chỉ có điều biểu diễn ở dạng hình học khác nhau, các tên đỉnh khác nhau.
Để xét 2 đồ thị có đẳng cấu không là việc khó, tuy nhiên để xét 2 đồ thị không
đẳng cấu với nhau thì đơn giản hơn.
Đối với 2 đồ thị đẳng cấu thì các đồ thị đó có những tính chất bất biến nh sau:
- Số đỉnh bằng nhau
- Số cạnh bằng nhau

- Bậc các đỉnh tơng ứng cùng nh nhau
- 2 Ma trận kề cũng nh nhau
- Các chu trình cũng nh nhau
3. Một số đồ thị đặc biệt
Do tính chất, dạng biểu diễn có những nét đặc thù riêng biệt nên ta phân loại
một số đồ thị thành các dạng đặc biệt sau:
3.1 Đồ thị đều
Là một đồ thị mà mọi đỉnh có cùng bậc, nếu bậc này bằng k thì đó là đồ thị k
- đều


a)

b)

c)

d)

Hình 4.3 a: G- 1 đều; b: G - 2 đều; c: G - 2 đều; d: G - 3 đều.
Trờng hợp riêng nh đồ thị hình 4.3.b và hình 4.3.c là những đồ thị vòng ký
hiệu Cn (n là số đỉnh)
3.2 Đồ thị đầy đủ
Đồ thị đầy đủ n đinh, ký hiệu K n là đơn đồ thị vô hớng mà mọi cặp đỉnh phân
biệt luôn kề nhau. Xem ví dụ nh hình 4.4 dới đây hoặc 1 trờng hợp riêng của
đồ thị đều G - 3 là những đồ thị đầy đủ

a)
b)
Hình 4.4 a - đồ thị đầy đủ K2 ; b - đồ thị đầy đủ K4

3.3 Đồ thị bánh xe:
Ký hiệu Wn, thu đợc từ đồ thị vòng có n đỉnh bằng cách bổ sung một đỉnh
mới nối tất cả các đỉnh đã có.

W4
W5
Hình 4.5 Các dạng đồ thị bánh xe

W6

3.4 Một vài ứng dụng của đồ thị đặc biệt
ở các mạng cục bộ (LAN), các máy tính thờng đợc kết nối theo một cách
thức nào đó gọi là hình trạng (topolopy). Dựa theo đặc điểm của các totolopy
này mà ta có thể mô hình bằng 1 số dạng đồ thị đặc biệt. Ví dụ với mạng LAN
các máy tính đợc kết nối theo topolopy hình sao (Star) sau đây:


Hình 4.6
ở dạng này, tất cả các máy đợc nối vào một thiết bị trung tâm có nhiệm vụ
nhận tín hiệu từ các máy và chuyển đến máy đích của tín hiệu. Từ đặc điểm
này có thể mô hình bằng một đồ thị bộ phận của đồ thị bánh xe W 6 nh hình
4.7.a

a)
b)
c)
d)
a) Dạng sao b) dạng vòng c) dạng hỗn hợp d) dạng đầy đủ (Complete)
Hình 4.7 Một số topolopy của LAN
ở mạng LAN ta cũng thờng có các dạng topolopy khác nh dạng chu trình

(loop) hoặc gọi là vòng. ở dạng này mỗi máy nối đúng với 2 máy khác. Mạng
cục bộ với cấu trúc vòng tròn đợc mô hình bằng các đồ thị đặc biệt dạng vòng
Cn nh hình 4.7.b, thông báo gửi từ máy này sang máy khác theo chu trình vòng
tròn cho tới khi tới đợc máy đích. Hoặc 1 dạng nữa là dạng hỗn hợp, đó là sự
kết hợp của dạng hình sao và hình vòng. Topolopy kiểu này là một đồ thị bánh
xe Wn (hình 4.7.c). Mạng cục bộ dạng bánh xe các máy có thể truyền vòng
quanh theo vòng tròn hoặc có thể qua bộ phận trung tâm. Ngoài ra ngời ta cũng
thờng hay bố trí mạng sao cho các máy đều kết nối trực tiếp với nhau, với kiểu
này có thể mô hình bằng đồ thị đầy đủ Kn (hình 4.7.d)
4. Biểu diễn đồ thị trên máy tính
Lĩnh vực đồ thị có nhiều ứng dụng trong thực tế, có thể mô hình nhiều ứng
dụng bằng đồ thị và sử dụng máy tính để giải quyết các bài toán về ứng dụng
đó. Nên việc biểu diễn và lu trữ đồ thị trên máy tính là một vấn đề khá trọng
tâm, phơng thức biểu diễn từng loại đồ thị trên máy tính ảnh hởng đến các giải
thuật, phơng pháp giải quyết các ứng dụng trên máy tính.
4.1 Biểu diễn bằng ma trận kề


Phơng pháp này dựa trên mối quan hệ giữa các cặp đỉnh, mỗi đồ thị đợc đặt tơng ứng với một ma trận vuông cấp n (n là số đỉnh của đồ thị). Gọi ma trận kề
là A = (aij ) i,j = 1...n.
+ Trờng hợp G = <X,U> là đồ thị vô hớng với X = {x1, x2,...,xn} khi đó mỗi
phần tử aij của ma trận A đợc xác định nh sau: aij = aji = d, nếu cặp đỉnh (x i, xj)
có d cạnh nối với nhau. Khi cặp đỉnh (x i, xj) không có cạnh nào nối với nhau thị
aij = 0. Ta thấy ma trận kề của đồ thị vô hớng là ma trận đối xứng.
+ Trờng hợp G = <X,U> là đồ thị có hớng với X = {x1, x2,...,xn} thì mỗi phần
tử aij của A đợc xác định nh sau: đối với mỗi cặp đỉnh (xi, xj) từ xi đến xj nếu có
d cung thì aij = d. Chú ý aji = 0 nếu không có cung nào hớng từ xj đến xi. Ma
trận kề trong trờng hợp này là không đối xứng.
Trong 2 trờng hợp trên ta chú ý nếu đỉnh xi có một khuyên thì phần tử tơng ứng
của ma trận kề là aii = 1


A

B

C

A
D

B

C

G1

G2
Hình 4.8

Ta có thể dùng ma trận kề biểu diễn đồ thị G1 và G2 trong hình 4.8 nh sau:
Đối với đồ thị có trọng số mỗi cạnh e = (x i, xj) đợc gán một trọng số l(e) (còn
viết là l(xi, xj) ) thì ma trận kề của nó đợc thay bằng ma trận có trọng số, khi đó
M G1

1

1
=
1


0


1
0
2
1

1
2
0
0

0

1
0

0

M G2

0 1 1


= 0 1 0
1 1 0




mỗi phần tử của ma trận bằng trọng số của cạnh tơng ứng: aij = l(xi, xj)
Ưu điểm của phơng pháp này là dễ dàng xác định đợc các cặp đỉnh có kề
nhau hay không hoặc rất thuận tiện khi tìm số bậc của mỗi đỉnh. Việc truy cập
phần tử của ma trận kề qua chỉ số không phụ thuộc vào số đỉnh của đồ thị.
Nhợc điểm lớn nhất của phơng pháp này là không phụ thuộc vào số cạnh của
đồ thị, ta luôn phải sử dụng n2 đơn vị bộ nhớ để lu trữ ma trận kề của nó.
Định lý:


Nếu G = <X,U> là đa đồ thị với A = (a ij) là ma trận kề tơng ứng, thì số đờng
đi khác nhau từ đỉnh xi đến đỉnh xj có độ dài s bằng phần tử P ij của ma trận tích
AìAì...ìA = As = (Pij)
s lần

Xét ví dụ ứng dụng: Trong một số hệ thống thông tin khi đợc mô hình bằng
đồ thị có thể thực hiện tốt một số công tác kiểm kỹ thuật. Ví dụ khi biểu diễn
một mạng máy tính bằng đồ thị, giả sử có 2 máy nào đó mà thông tin truyền
giữa chúng là quan trọng, cần tiến hành kiểm tra xem đã có đờng truyền dự
phòng giữa chúng không. Xét ở góc độ đồ thị thì cần kiểm tra xem số đờng đi
giữa cặp đỉnh tơng ứng với 2 máy đó, nếu số đờng đi lớn hơn 1 là đã có đờng
truyền dự phòng.
* Chơng trình viết bằng PASCAL sau tính số đờng đi độ dài l nhập từ bàn
phím
Type MaTran = Array[1..20,1..20] Of Integer;
Var a, b, aa: MaTran;
n,l,x1,x2: Integer;
Procedure InputMt(Var Mt: Matran);
Var i, j: Integer;
Begin
For i:=1 to n do

For j:=1 to n do Begin
Write('a',i,j,'= '); Readln(Mt[i,j]);
End;
End;
Procedure Gan(Mt1: MaTran; Var Mt2: MaTran); {Mt2 <-- Mt1}
Var i,j:Integer;
Begin
For i:=1 to n do
For j:=1 to n do Mt2[i,j]:=Mt1[i,j];
End;
Procedure TichMt(mt1,mt2: Matran; Var MtKq: MaTran); { MtKq = Mt1*Mt2 }
Var i,j,k: Integer;
Begin
For i:=1 to n do
For j:=1 to n do Begin
MtKq[i,j]:=0;
For k:=1 to n do MtKq[i,j]:=MtKq[i,j]+Mt1[i,k]*Mt2[k,j];
End;
End;


Procedure LthuaMt(m: Integer); {aa = a ^m (m: do dai duong di, m>=2) }
Var i: Integer;
Begin
Gan(a,b);
For i:=1 to m-1 do Begin
TichMt(b,a,aa);
Gan(aa,b);
End;
End;

Procedure FindWay(i,j: Integer); { Tim so duong di tu dinh i-->j }
Begin
If aa[i,j]<>0 then
Writeln('So duong di do dai ',l,' tu x',x1,' --> ','x2 ','la: ',aa[i,j])
Else
Writeln('Khong co duong di tu dinh ',i,' toi dinh ',j,' voi do dai ',l);
End;
BEGIN
Writeln('Nhap ma tran ke cho do thi:');
Write('So dinh do thi: '); Readln(n);
InputMt(a);
Write('Dinh xuat phat: '); Readln(x1);
Write('Dinh ket thuc: '); Readln(x2);
Write('Do dai duong di: '); Readln(l);
LthuaMt(l);
FindWay(x1,x2);
END.

4.2 Danh sách cạnh (cung)
Cho đồ thị G = <X, U> với số cạnh m, số đỉnh n. Nếu m < 6n thì G thờng đợc
biểu diễn dới dạng danh sách cạnh (cung).
Theo cách này danh sách tất cả các cạnh (cung) của đồ thị vô hớng (có hớng).
Mỗi cạnh (cung) e = (x, y) của đồ thị tơng ứng với hai biến Dau[e], Cuoi[e].

4

2

1


2

1

3

3

G1

4

G2
Hình 4.9


Ví dụ: Hình 4.9 đồ thị G1 và G2 đợc biểu diễn bằng danh sách cạnh (cung)
nh sau:
Dau Cuoi
Dau Cuoi
1
2
1
2
1
3
2
3
2
3

3
1
2
4
4
1
3
4
4
2
Danh sách cạnh G1
Danh sách cung G2
Nh vậy để lu trữ đồ thị cần sử dụng 2m đơn vị bộ nhớ. Nhợc điểm của phơng
pháp này là để xác định những đỉnh nào của đồ thị là kề với một đỉnh cho tr ớc
chúng ta phải làm cỡ m phép so sánh.
4.3 Danh sách kề
Phơng pháp biểu diễn bằng danh sách kề cũng đợc sử dụng khá phổ biến và
thờng hay dùng cho đồ thị có hớng.
Danh sách kề cho đỉnh xi là danh sách gồm tất cả các đỉnh kề của x i theo thứ
tự các đỉnh trong tập đỉnh X. Ta có thể biểu diễn đồ thị nh một mảng FIRST,
với phần tử FIRST[i] là con trỏ trỏ tới danh sách kề cho đỉnh xi.
Ví dụ: ở hình 4.9 đồ thị G1 và G2 đợc biểu diễn bằng danh sách kề nh sau:

FIRST
1

2

3


2

1

3

4

Nil

3

1

2

4

Nil

4

2

3

Nil

Nil


a) Danh sách kề của đồ thị G1
FIRST
1

2

Nil

2

3

Nil

3

1

Nil

4

2

b) Danh sách kề đồ thị G2

3

Nil



Bộ nhớ sử dụng cho phơng pháp biểu diễn danh sách kề là tỷ lệ thuận với
tổng số đỉnh và các cạnh của đồ thị.
Nhợc điểm của cách biểu diễn này là thời gian cần thiết để xác định có một
cạnh đi từ đỉnh xi tới đỉnh xj có hay không mất O(n). Cách biểu diễn này thích
hợp cho các thuật toán mà cấu trúc đồ thị hay thay đổi nh thêm hoặc bớt các
cạnh.

Chơng 2

Số ổn định và tô màu đồ thị
I. Số ổn định trong, số ổn định ngoài, nhân đồ thị
1. Số ổn định trong
Cho đồ thị vô hớng G = <X, U> và A X.
a) Tập A gọi là tập ổn định trong của đồ thị nếu hai đỉnh bất kỳ trong A là không
kề nhau, tức là không có một cạnh nào của đồ thị chứa hai đỉnh x và y.
b) Tập A gọi là tập ổn định trong cực đại của đồ thị G nếu:
- A là tập ổn định trong
- Nếu thêm vào A một đỉnh ngoài A thì A không phải là ổn định trong.
Gọi L là tập hợp các tập ổn đỉnh trong của của G = <X,U>. Khi đó ký hiệu (G)
= Max {A / A L} và (G) đợc gọi là số ổn định trong của đồ thị G. Nh vậy
(G) là số phần tử của 1 tập ổn định trong cực đại nào đó.
2. Số ổn định ngoài
Cho đồ thị vô hớng G = <X,U> và B X
a) Tập B đợc gọi là tập ổn định ngoài của đồ thị nếu với mỗi phần tử y X \ B
đều tồn tại x B sao cho có cạnh nối giữa x và y, B còn đợc gọi là tập thống trị
của đồ thị.
b) Tập B đợc gọi là tập ổn định ngoài cực tiểu nếu:
- B là tập ổn định ngoài
- Nếu bớt 1 phần tử bất kỳ của B thị B không còn là tập ổn định ngoài.

Gọi M là tập của tất cả các tập ổn định ngoài của G = <X,U>. Khi đó ký hiệu
(G) = Min { / B M} và (G) đợc gọi là số ổn định ngoài của đồ thị G.
Đối với các tập ổn định ngoài, ta thờng quan tâm đến tập ổn định ngoài có số
phần tử ít nhất vì lực lợng của nó liên quan tới số ổn định ngoài của đồ thị.
3. Nhân đồ thị


Cho đồ thị vô hớng G = <X, U>. Nếu tập A X vừa là tập ổn định trong vừa là
tập ổn định ngoài của đồ thị G thị A đợc gọi là nhân của đồ thị.
Đối với nhân của đồ thị, ta quan tâm tới nhân có số phần tử ít nhất.

4

1

7
6

5

3

2

Hình 1.1
Ví dụ: xét đồ thị hình 1.1 ta có:
Các tập ổn định trong của đồ thị là:
A1 = {1, 5, 7}
A6 = {2, 6, 7}
A2 = {1, 6, 7}

A7 = {4, 5, 7}
A3 = {3, 5, 7}
A8 = {4, 6, 7}
A4 = {3, 6, 7}
A9 = {2, 4, 5, 7}
A5 = {2, 5, 7}
A10 = {2, 4, 6, 7}
Tập A9 và A10 là các tập ổn định trong cực đại có 4 phần tử vì nếu thêm 1 đỉnh
mới nữa vào các tập đó thì chúng không còn là tập ổn định trong nữa. Số ổn định
trong của đồ thị trên là (G) = 4.
Với đồ thị trên các tập ổn định ngoài cực tiểu là B 1 = A1; B2 = A2; B3 = A3; B4 =
A4. Vì các tập này nếu bớt đi 1 trong các phần tử của chúng thì tập còn lại không
là tập ổn định ngoài nữa. Số ổn đỉnh ngoài của đồ thị này là (G) = 3. Nhân của
đồ thị trên là B1, B2, B3, B4 vì các tập này là tập ổn định trong và đồng thời cũng
là tập ổn định ngoài.
4. Các thuật toán tìm các tập ổn định trong cực đại, ổn định ngoài cực tiểu.
4.1 Thuật toán tìm số ổn định trong
- Bớc 1: Tìm các tập ổn định trong có 2 phần tử bằng cách xét tất cả tổ hợp chập
2 của n phần tử (n số các đỉnh), kiểm tra những tập nào mà phần tử của ma trận
kề tơng ứng bằng 0 thì tập đó là ổn định trong.
- Bớc 2: Duyệt từng tập có 2 phần tử và bổ sung thêm phần tử thứ 3 và kiểm tra
từng cặp nh bớc 1, tập nào thoả ta đợc tập ổn định trong 3 phần tử.
........
- Bớc k: Giả sử đã tìm đợc m tập con ổn định trong có k + 1 phần tử
+ Duyệt từng tập và bổ sung vào các tập đó thêm 1 phần tử


×