Algo2010N15-NguyenThiThanhVi-NgoVanVi-NhamNgocTrung-CNPMK52
TR NG Đ I H C BÁCH KHOA HÀ N IƯỜ
VI N CÔNG NGH THÔNG TIN VÀ TRUY N THÔNG
BÀI T P L N
THI T K VÀ PHÂN CH THU T TOÁN
Đ TÀI 15: BÀI TOÁN TÔ M U Đ TH
Giáo viên h ng d n: PGS. NGUY N Đ C NGHĨAướ
Sinh viên th c hi n :
1. Nguy n Th Thanh Vi 20073430 CNPM K52
2. Ngô Văn Vĩ 20073500 CNPM K52
3. Nhâm Ng c Trung20073050 CNPM K52
Hà N i, 12/2010
1 | P a g e
Algo2010N15-NguyenThiThanhVi-NgoVanVi-NhamNgocTrung-CNPMK52
M C L C
M C L C ......................................................................................................................................... 2
2.4. ng d ng ........................................................................................................................... 7
2.1. Đ c d li u t file ............................................................................................................ 36
2.2. D li u vào t bàn phím .................................................................................................. 49
PH L C 1: DANH M C CÁC HÌNH NH TRONG TÀI LI U ....................................................... 64
I. GI I THI U BÀI TOÁN
1. T ng quan v đ th
1.1. Đ th và các cách bi u di n đ th
Đ th là gì
M t cách không chính th c, đ th m t t p các đ i t ng đ c g i các đ nh (ho c nút) ượ ượ
n i v i nhau b i các c nh (ho c cung). C nh có th có h ng ho c h ng. Đ th th ng ướ ướ ườ
đ c v d i d ng m t t p các đi m (các đ nh n i v i nhau b ng các đo n th ng (các c nh).ượ ướ
Đ th bi u di n đ c r t nhi u c u trúc, nhi u bài toán th c t th đ c bi u di n b ng ượ ế ượ
đ th . d , c u trúc liên k t c a m t website th đ c bi u di n b ng m t đ th ế ượ
h ng nh sau: các đ nh các trang web hi n t i website, t n t i m t c nh h ng n iướ ư ướ
t trang A t i trang B khi và ch khi A có ch a 1 liên k t t i ế B.
C u trúc đ th th đ c m r ng b ng cách gán tr ng s cho m i c nh. th s d ng ượ
đ th tr ng s đ bi u di n nhi u khái ni m khác nhau. d , n u đ th bi u di n m t ế
m ng đ ng giao thông, các tr ng s có th đ dài c a m i con đ ng. M t cách khác đ ườ ườ
m r ng đ th c b n qui đ nh h ng cho các c nh c a đ th (nh đ i v i các trang ơ ướ ư
web, A liên k t t iế B, nh ngư B không nh t thi t cũng liên k t t i ế ế A). Lo i đ th này đ c g i ượ
là đ th có h ng. M t đ th có h ng v i các c nh có tr ng s đ c g i là m t l i. ướ ướ ượ ướ
2 | P a g e
Algo2010N15-NguyenThiThanhVi-NgoVanVi-NhamNgocTrung-CNPMK52
Hình 01: Đ th vô h ng ướ
Các cách bi u di n đ th
-Ma tr n k (Adjaceny matrix) - m t ma tr n N × N, trong đó N s đ nh c a đ th .
N u m t c nh nào đó n i đ nhế viv i đ nh vj thì ph n t Mi,j b ng 1, n u không, ế
giá tr 0. C u trúc này t o thu n l i cho vi c tìm các đ th con đ đ o các đ
th .
Labeled graph Adjacency matrix
-Danh sách k (Adjacency list) - M i đ nh c a đ th m t danh sách các đ nh k
(nghĩa m t c nh n i t đ nh này đ n m i đ nh đó). Trong đ th h ng, c u ế ướ
trúc này th gây trùng l p. Ch ng h n n u đ nh 3 n m trong danh sách c a đ nh 2 ế
thì đ nh 2 cũng ph i trong danh sách c a đ nh 3. L p trình viên có th ch n cách s
3 | P a g e
Algo2010N15-NguyenThiThanhVi-NgoVanVi-NhamNgocTrung-CNPMK52
d ng ph n không gian th a, ho c có th li t các quan h k c nh ch m t l n.
Bi u di n d li u này thu n l i cho vi c t m t đ nh duy nh t tìm m i đ nh đ c n i ượ
v i nó, do các đ nh này đã đ c li t kê t ng minh. ượ ườ
The graph pictured above has this
adjacency list representation:
a adjacent to b,c
b adjacent to a,c
c adjacent to a,b
1.2. Các bài toán đi n hình
-Bài toán t p con đ c l p
-Bài toán tô m u đ th
-Bài toán tìm đ ng đi ng n nh tườ
-Bài toán lu ng c c đ i
-Bài toán ph t i thi u
-Ki m tra tính liên thông c a đ th
-Duy t đ th
-
2. Bài toán tô m u đ th
màu đ th s t ng quát c a công c h u d ng trong vi c hình hóa r t nhi u
bài toán khác nhau trong v n đ x p l ch, xây d ng ch ng trình v n đ phân ng công ế ươ
4 | P a g e
Algo2010N15-NguyenThiThanhVi-NgoVanVi-NhamNgocTrung-CNPMK52
vi c. Bài toán tô màu đ th bao g m nhi u lo i: tô màu đ nh đ th (vertex graph coloring) , tô
màu c nh đ th (edge graph coloring) ...
2.1. Bài toán tô m u c nh
Bài toán
Cho G=(V,E) đ n đ th h ng ( G không đ th khuyên) , hãy tìm cách gán (tô màu)ơ ướ
cho m i c nh c a đ th m t màu sao cho hai c nh có cùng chung 1 đ nh không b b i cùng
m t màu. M t phép gán màu cho các c nh nh v y g i m t phép màu c nh đ th . Nói ư
cách khác, phép tô c nh đ th b i k màu nói trên có th đ c hi u là m t phân ho ch c a t p ượ
c nh E c a G thành k t p con (t ng ng v i k màu) sao cho m i t p con ng v i m t màu i ươ
nh t đ nh. Bài toán đ t ra là tìm cách tô màu nào s d ng s màu ít nh t có th .
Ví d
Đ th trong hình trên th b i 4 màu. Đ th G g i đ c b i k màu-c nh n u G ượ ế
m t phép tô k màu-c nh phù h p.Thông th ng h u h t các đ th không là đ th khuyên đ u ườ ế
tô đ c.Và n u G có tính ch t nh v y thì G cũng có th tô b i l màu v i l>k.ượ ế ư
2.2. Bài toán tô m u đ nh
M t phép m u s d ng nhi u nh t k m u g i m t phép k m u. S l ng m u nh ượ
nh t c n đ các đ nh c a đ th G g i s c s đ nh c a đ th G, sao cho không hai
đ nh k nhau nào đ c tô cùng m u. ượ
5 | P a g e