Upload
nguyen-duy
View
251
Download
10
Embed Size (px)
Citation preview
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
1/61
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
----- -----
TIỂU LUẬN MÔN HỌC
THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ
ĐỀ TÀI:
TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ
ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
GIẢNG VIÊN HƯỚ NG DẪN : PGS. TS. ĐỖ VĂN NHƠN
HỌC VIÊN THỰ C HIỆN : NGUYỄN HỒ DUY TRÍ
MSHV : CH1401039
LỚ P : CH KHMT K09
TP. HỒ CHÍ MINH – 12/2015
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
2/61
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
----- -----
TIỂU LUẬN MÔN HỌC
THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ
ĐỀ TÀI:
TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ
ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
TP. HỒ CHÍ MINH – 12/2015
GIẢNG VIÊN HƯỚ NG DẪN : PGS. TS. ĐỖ VĂN NHƠN
HỌC VIÊN THỰ C HIỆN : NGUYỄN HỒ DUY TRÍ
MSHV : CH1401039
LỚ P : CH KHMT K09
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
3/61
NHẬN XÉT CỦA GIẢNG VIÊN
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
4/61
i
LỜ I CẢM ƠN
Lời đầu tiên, tôi xin chân thành cám ơn Khoa Khoa học máy tính, trường Đại học
Công nghệ Thông tin đã tạo điều kiện tốt nhất để tôi được tham gia học tập và hoàn
thành bài tiểu luận này. Tôi xin chân thành cám ơn Thầy – PGS. TS. Đỗ Văn Nhơn, Thầy đã không quản
khó khăn, tận tình chỉ bảo. Với kiến thức uyên bác và những bài giảng luôn luôn được
cập nhật của Thầy, tôi đã thật sự học hỏi được rất nhiều và trưởng thành hơn trong tư
duy và nhận thức.
Mặc dù tôi đã cố gắng hoàn thành bài tiểu luận trong phạm vi kiến thức hạn hẹp và
khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Tôi kính
mong nhận được sự cảm thông và tận tình chỉ bảo của Thầy và các bạn.
Một lần nữa, xin chân thành cảm ơn tất cả mọi người.
Học viên thực hiện
Nguyễn Hồ Duy Trí
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
5/61
ii
MỤC LỤC
LỜ I CẢM ƠN ............................................................................................................................ i
MỤC LỤC................................................................................................................................. ii
LỜI NÓI ĐẦU ......................................................................................................................... iv
CHƯƠNG I. MỞ ĐẦU ............................................................................................................ 1
1.1. Lý do chọn đề tài ....................................................................................................... 1
1.2. Mục đích và nhiệm vụ............................................................................................... 1
1.2.1. Mục đích ............................................................................................................. 1
1.2.2. Nhiệm vụ cần thực hiện - ................................................................................... 1
1.3. Đối tượ ng và phạm vi nghiên cứ u............................................................................ 2
1.4. Phương pháp nghiên cứ u ......................................................................................... 2
1.5. Ý nghĩa khoa học và thự c tiễn của đề tài ................................................................ 2
CHƯƠNG II. GIẢI THUẬT TÔ MÀU TRONG TÔ MÀU ĐỈNH ĐỒ THỊ ...................... 3
2.1. Tổng quan về đồ thị .................................................................................................. 3
2.1.1. Một số khái niệm liên quan tới đồ thị .............................................................. 3
2.1.2. Biểu diễn đồ thị................................................................................................... 5
2.1.3. Ứng dụng của lý thuyết đồ thị ........................................................................... 6
2.2. Bài toán tô màu đồ thị .............................................................................................. 7
2.2.1.
Một số lý thuyết liên quan ................................................................................. 7
2.2.2. Bài toán tô màu cạnh ......................................................................................... 7
2.2.3. Giải thuật tô màu cạnh ...................................................................................... 8
2.2.4. Bài toán tô màu đỉnh........................................................................................ 12
2.2.5. Giải thuật tô màu đỉnh vận dụng giải thuật tham lam ................................. 12
2.2.6. Nhược điểm của giải thuật tô màu tham lam ................................................ 14
2.2.7. Định nghĩa NP –đầy đủ.................................................................................... 15
2.3. Bài toán ngườ i bán hàng ........................................................................................ 15
2.3.1. Phát biểu ........................................................................................................... 15
2.3.2. Sử dụng giải thuật láng giềng gần nhất (nearest neighbor algorithm) ....... 16
CHƯƠNG III. KHẢO SÁT HIỆN TR ẠNG VÀ YÊU CẦU CHỨC NĂNG .................... 18
3.1. Một số chương trình lập lịch thi sử dụng giải thuật tô màu ............................... 18
3.2. Giớ i thiệu về k ỳ thi trong trường Đại học Công nghệ thông tin ......................... 20
3.3. Mô tả hệ thống ......................................................................................................... 21
3.4. Mô tả các đơn vị tham gia ...................................................................................... 22
3.5.
Hoạt động chính khi lập lịch thi ............................................................................ 23
3.6. Quy trình nghiệp vụ lập lịch thi ............................................................................ 24
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
6/61
iii
3.7. Hiện trạng tin học của trường Đại học ................................................................. 25
3.8. Mong muốn của trường đối vớ i hệ thống ............................................................. 25
3.9. Yêu cầu chức năng và phi chức năng của hệ thống ............................................. 26
3.10. Lợ i ích của hệ thống mớ i ........................................................................................ 28
CHƯƠNG IV. ÁP DỤNG VÀO BÀI TOÁN LẬP LỊCH THI........................................... 29
4.1. Giải thuật tô màu đỉnh trong bài toán lập lịch ..................................................... 29
4.2. Độ phứ c tạp ............................................................................................................. 31
4.3. Mô hình hóa và áp dụng giải thuật tô màu vào bài toán lập lịch thi trường Đạihọc CNTT ........................................................................................................................... 33
4.4. Một số k ết quả khi sử dụng giải thuật tô màu lập lịch thi .................................. 44
CHƯƠNG V. KẾT LUẬN VÀ HƯỚ NG PHÁT TRIỂN .................................................... 53
5.1.
K ết quả đạt đượ c ..................................................................................................... 53
5.2. Hướ ng phát triển ..................................................................................................... 53
TÀI LIỆU THAM KHẢO ..................................................................................................... 54
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
7/61
iv
LỜI NÓI ĐẦU
Bài toán lậ p lịch là bài toán xây dựng một k ế hoạch phân phối hợ p lý các tài
nguyên một cách tối ưu nhất nhằm đem lại hiệu quả cao nhất cho ngườ i sử dụng. Côngviệc lậ p lịch liên quan tớ i nhiều vấn đề như thời gian ước lượ ng của công việc, quan hệ
thứ tự giữa các công việc, yêu cầu tài nguyên, nhân lực, ràng buộc các tài nguyên và
các giai đoạn thực hiện bài toán. Từ lâu, con người đã thực hiện công việc lậ p lịch bằng
các ghi chép các kí hiệu, số liệu, các thông tin trên giấy, vải, vách đá…
Ngày nay, vớ i sự phát triển như vũ bão của Công nghệ thông tin, việc lậ p lịch có
sự tr ợ giúp đắc lực của máy tính, giúp ghi nhớ các số liệu lớ n một cách dễ dàng và thuậnlợi hơn so với ghi chép thông thường. Tuy nhiên, đa số các phần mềm lậ p lịch đều chỉ
áp dụng cho các bài toán lậ p lịch tổng quát mà không chi tiết cho từng bài toán riêng
được, làm con ngườ i vẫn phải tốn nhiều thờ i gian và sức lực khi lậ p lịch.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
8/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
1 HVTH: Nguyễ n H ồ Duy Trí
CHƯƠNG I. MỞ ĐẦU
1.1. Lý do chọn đề tài
Để lậ p lịch, người ta đã đưa ra nhiều giải thuật để giải quyết: giải thuật mô phỏngluyện kim, tìm kiếm tabu thích nghi, tô màu, di truyền… Trong đó, giải thuật tô màu là
giải thuật hay đượ c sử dụng nhất bở i sự đơn giản hay số lượ ng lờ i giải của nó.
Giải thuật tô màu dựa trên lý thuyết về đồ thị thể hiện cách giải quyết vấn đề khá
tự nhiên và dễ hiểu, tuy nó chỉ đưa ra một lờ i giải, nhưng kết quả lậ p lịch cũng rất tốt.
Một trong những yếu điểm lớ n nhất của giải thuật này là sử dụng nhiều bộ nhớ, đặc biệt
là khi cài đặt theo giải thuật đệ quy.
Trong thờ i gian gần đây, tại trường Đại học Công nghệ thông tin (ĐH CNTT), khi
đến thờ i gian thi giữa k ỳ hoặc thi cuối k ỳ, Phòng Đào tạo (PĐT) đã đượ c Ban dữ liệu
hỗ tr ợ để đưa ra một lịch thi, tuy nhiên tình tr ạng sinh viên trùng lịch thi vẫn còn xảy
ra, hệ thống chưa tự động kiểm tra sinh viên trùng lịch mà phải chờ phản hồi từ sinh
viên, sau đó điều chỉnh thủ công vào lịch đó.
Vớ i mong muốn đưa ra lịch thi tốt nhất, phù hợ p với tình hình cơ sở vật chất của
trườ ng, tôi nhận thấy bài toán lậ p lịch thi là vô cùng cần thiết. Thông qua lý thuyết về đồ thị và các kiến thức đã học đượ c, tôi mong muốn ứng dụng đượ c vào trong bài toán
lậ p lịch thi tại trường ĐH CNTT, giúp tiết kiệm đượ c thờ i gian và sức lực của trườ ng
mỗi khi k ỳ thi tớ i.
1.2. Mục đích và nhiệm vụ
1.2.1. Mục đích
- Tiết kiệm thờ i gian và công sức khi lậ p thờ i khóa biểu.
-
Tìm hiểu về giải thuật tô màu đồ thị.
- Áp dụng giải thuật tô màu đồ thị vào việc xây dựng lịch thi.
1.2.2. Nhiệm vụ cần thực hiện -
- Tìm hiểu giải thuật tô màu đồ thị.
- Phân tích bài toán, tìm hiểu cách lậ p lịch thi ở trường ĐH CNTT.
- K ết hợ p giải thuật tô màu đồ thị vớ i quy trình nghiệ p vụ ở trường Đại học để xây
dựng lịch thi.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
9/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
2 HVTH: Nguyễ n H ồ Duy Trí
1.3. Đối tượ ng và phạm vi nghiên cứ u
- Đối tượ ng nghiên cứu: lý thuyết về đồ thị, các giải thuật trên đồ thị, bài toán tô
màu và ứng dụng lậ p lịch thi.
-
Phạm vi nghiên cứu: trong phạm vi trường ĐH CNTT, tìm các ràng buộc chungmà trường có để có thể lậ p lịch thi.
1.4. Phương pháp nghiên cứ u
Sử dụng phương pháp nghiên cứu lý thuyết k ết hợ p vớ i lậ p trình thực nghiệm: -
Nghiên cứu về lý thuyết đồ thị, giải thuật tô màu, phân tích và tổng hợ p tài liệu liên
quan.
- Tìm hiểu phân tích quy trình lậ p lịch thi tại trường đại học, phân tích rõ các ràng
buộc.
- Phân tích, yêu cầu bài toán, xây dựng giải thuật phù hợ p.
1.5. Ý nghĩa khoa học và thự c tiễn của đề tài
- Phần nghiên cứu lý thuyết sẽ cung cấ p một cách tổng quan về lý thuyết đồ thị và
giải thuật tô màu trong đồ thị, và ứng dụng..
- K ết quả nghiên cứu có thể ứng dụng cho trường ĐH CNTT trong công việc lậ p
lịch thi.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
10/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
3 HVTH: Nguyễ n H ồ Duy Trí
CHƯƠNG II. GIẢI THUẬT TÔ MÀU TRONG TÔ MÀU ĐỈNH ĐỒ THỊ
2.1. Tổng quan về đồ thị
2.1.1.
Một số khái niệm liên quan tới đồ thịĐồ thị là một cấu trúc r ờ i r ạc gồm tậ p hợp các đỉnh và tậ p hợ p các cạnh nối các
đỉnh đó. Ngườ i ta phân loại đồ thị dựa trên đặc điểm của các cạnh nối. Hay có cách định
nghĩa khác là: Một đơn đồ thị G = (V, E) gồm một tậ p khác r ỗng V mà các phần tử của
nó gọi là các đỉnh và một tậ p E mà các phần tử của nó gọi là các cạnh, đó là các cặ p
không có thứ tự của các đỉnh phân biệt.
Một đồ thị đượ c gọi là một đồ thị phẳng nếu
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. Cách vẽ như vậy
sẽ đượ c gọi là biểu diễn phẳng của đồ thị.
Ví dụ hình bên là một đồ thị phẳng.
Đồ thị vô hướng: là đồ thị G mà mỗi cạnh
không phân biệt thứ tự hai đỉnh đầu mút, là tậ p không thứ tự các đỉnh và cạch nối giữa
hai cạnh của đồ thị: G=(V,E), trong đó V là tậ p hữu hạn các cạnh của đồ thị, E là tậ phữu hạn các cặ p không thứ tự chứa các đỉnh phân biệt, đượ c gọi là cạnh. Hai đỉnh thuộc
một cạnh đượ c gọi là các đỉnh đầu cuối của cạnh đó.
Hình 2.2. Đồ thị vô hướ ngĐồ thị có hướ ng là một tậ p có thứ tự các đỉnh và cạnh có hướ ng nối hai cạnh của
đồ thị: G = (V,A). trong đó V là tậ p hữu hạn các đỉnh, A là tậ p các cặ p có thứ tự chứa
Hình 2.1. Ví dụ đồ thị phẳng
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
11/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
4 HVTH: Nguyễ n H ồ Duy Trí
các đỉnh, đượ c gọi là các cạnh có hướ ng hoặc cung. Một cạnh e = (x, y) đượ c coi là có
hướ ng từ x tới y; x đượ c gọi là điểm đầu/gốc và y đượ c gọi là điểm cuối/ngọn của cạnh.
Hình 2.3. Đồ thị có hướ ng
Một đa đồ thị G = V, E gồm một tậ p khác r ỗng V mà các phần tử của nó gọi làcác đỉnh và một họ E mà các phần tử của nó gọi là các cạnh, đó là các cặ p không có thứ
tự của các đỉnh phân biệt. Hai cạnh đượ c gọi là cạnh bội hay song song nếu chúng cùng
tương ứng vớ i một cặp đỉnh.
Hình 2.4. Đa đồ thị
Đơn đồ thị có hướ ng G = bao gồm V là tập các đỉnh, E là tậ p các cặ p có
thứ tự gồm hai phần tử của V gọi là các cung.
Đa đồ thị có hướ ng G = bao gồm V là tập đỉnh, E là cặ p có thứ tự gồm hai
phần tử của V đượ c gọi là các cung. Hai cung e1, e2 tương ứng vớ i cùng một cặp đỉnh
đượ c gọi là cung lặ p.
Hình 2.5. Ví dụ cung lặ p
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.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
12/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
5 HVTH: Nguyễ n H ồ Duy Trí
Hình 2.6. Ví dụ bậc của đỉnh
Ví dụ: deg(A) = 0; deg(B) = 1, deg(C) = 1; deg(D) = 4, deg(E) = 2; deg(F) = 3,
deg(G) = 4; deg(H) = 1, A là đỉnh cô lập, B, C, H là đỉnh treo.
Một đồ thị đượ c gọi là một đồ thị phẳng nếu 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. Cách vẽ như vậy sẽ đượ c gọi là biểu
diễn phẳng của đồ thị.
2.1.2. Biểu diễn đồ thị
Tham khảo: trong danh mục tài liệu tham khảo, tiếng việt, website [4].
Ma tr ận k ề (Adjaceny matrix) là một ma tr ận N x N, trong đó N là số đỉnh của đồ
thị. Nếu có một cạnh nào đó nối đỉnh vi tới đỉnh vj thì phần tử Mij bằng 1, nếu không
thì nó có giá tr ị bằng 0. Cấu trúc này thuận lợ i cho việc tìm đồ thị con và để đảo các đồ
thị.
Hình 2.7. Biểu diễn đồ thị bằng ma tr ận k ề
Danh sách k ề (Adjaceny list): Mỗi đỉnh của đồ thị có một danh sách các đỉnh k ề
nó (nghĩa là có một cạnh nối từ đỉnh này đến mỗi đỉnh đó). Trong đồ thị vô hướ ng, cấu
trúc này có thể gây trùng lặ p. Chẳng hạn nếu 3 đỉnh nằm trong danh sách của đỉnh 2 thì
đỉnh 2 cũng phải có trong danh sách của đỉnh 3. Lậ p trình viên có thể chọn cách sử dụng
phần không gian thừa, hoặc có thể liệt kê 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 đượ c mọi đỉnh nối vớ i nó, do các
đỉnh này đã đượ c liệt kê tườ ng minh.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
13/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
6 HVTH: Nguyễ n H ồ Duy Trí
Hình 2.8. Biểu diễn đồ thị bằng danh sách k ề
- Ma tr ận liên thuộc (Incidence matrix):
- Đồ thị có hướ ng: Nếu G là đồ thị có hướ ng không có khuyên, ma tr ận liên thuộc
(hay liên k ết đỉnh cạnh) của đồ thị G, ký hiệu A(G), là ma tr ận n*m (n: số đỉnh,
m: số cạnh) được định nghĩa là A = (Aij) với quy ướ c:
* Aij = 1 nếu cạnh j hướ ng ra khỏi đỉnh i
* Aij = -1 nếu cạnh j hướng vào đỉnh i.
* Aij = 0 nếu cạnh j không k ề đỉnh i.
Hình 2.9. Biểu diễn đồ thị có hướ ng bằng ma tr ận liên thuộc- Đồ thị vô hướ ng: Nếu G là đồ thị vô hướ ng không có khuyên, ma tr ận liên thuộc
(hay liên k ết đỉnh cạnh) của đồ thị G, ký hiệu A(G), là ma tr ận n*m (n: số đỉnh,
m: số cạnh) được định nghĩa là A = (Aij) với quy ướ c:
* Aij = 1 nếu cạnh i k ề vớ i cạnh j.
* Aij = 0 nếu ngượ c lại.
Hình 2.10. Biểu diễn đồ thị vô hướ ng bằng ma tr ận liên thuộc
2.1.3. Ứng dụng của lý thuyết đồ thị
-
Bài toán tìm tập con độc lậ p
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
14/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
7 HVTH: Nguyễ n H ồ Duy Trí
- 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
-
Kiểm tra tính liên thông của đồ thị - Duyệt đồ thị
2.2. Bài toán tô màu đồ thị
Tô màu đồ thị và sự tổng quát của nó là công cụ hữu hiệu trong mô 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à vấn đề phân
công công việc.
2.2.1. Một số lý thuyết liên quan
Trong Lý thuyết đồ thị, tô màu đồ thị (graph coloring) là trườ ng hợp đặc biệt của
gán nhãn đồ thị, mà trong đó mỗi đỉnh hay mỗi cạnh hay mỗi miền của đồ thị có thể
đượ c gán bở i một màu hay một tậ p hợp các màu nào đó. Tô màu đồ thị có thể là:
- Tô màu đỉnh (vertex coloring) là gán cho mỗi đỉnh của đồ thị một màu nào đó
sao cho không có hai đỉnh nào liền k ề lại trùng màu nhau;
- Tô màu cạnh (edge coloring) là gán cho mỗi cạnh của đồ thị một màu nào đó sao
cho sao cho không có 2 cạnh nào trùng màu;
- Tô màu miền (face coloring) là gán cho mỗi miền của đồ thị phẳng một màu sao
cho không có 2 miền có chung đườ ng biên lại cùng màu.
Sắc số (tiếng Anh: chromatic number) của một đồ thị là số màu ít nhất để tô các
đỉnh. Sắc số của đồ thị G đượ c kí hiệu là χ(G).
Số màu cạnh (tiếng Anh: chromatic index) của một đồ thị là số màu ít nhất dùng
để tô các cạnh. Số màu cạnh của đồ thị G đượ c kí hiệu là χ'(G).
Số màu cạnh của đồ thị G bất kì bằng sắc số của đồ thị đườ ng L((G)) của đồ thị đó: χ'(G) = χ(L(G)), do đó việc nghiên cứu tô màu cạnh của G tương đương vớ i nghiên
cứu tô màu đỉnh của L(G).
Định lí 4 màu: số màu của 1 đồ thị phẳng không lớn hơn 4.
2.2.2. Bài toán tô màu cạnh
Bài toán:
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
15/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
8 HVTH: Nguyễ n H ồ Duy Trí
Cho G = (V, E) là đơn đồ thị vô hướng (G không là đồ thị khuyên), tìm cách tô
màu cho mỗi cạnh của đồ thị sao cho hai cạnh có cùng chung một đỉnh không bị tô bở i
cùng một màu. Một phép gán màu cho mỗi cạnh như vậy đượ c gọi là phép tô màu đồ
thị, nói cách khác, phép tô màu đồ thị bởi k màu nói trên đượ c hiểu là một phân hoạchcủa tậ p cạnh E của G thành k tậ p con (k ứng vớ i số màu) sao cho mỗi tậ p con ứng vớ i
một màu xác định. Bài toán đặt ra là tìm số màu ít nhất để có thể gán.
Hình 2.11. Ví dụ về tô màu cạnh
Đồ thị trên có thể tô bởi 5 màu. Đồ thị G gọi là tô đượ c bở i k màu cạnh nếu G có
một phép tô k màu phù hợ p.
Giải thuật
Về giải thuật giải quyết bài toán tô màu cạnh đồ thị hiện nay trên thế giớ i có nhiều
giải thuật được đề xuất như:
- Giải thuật thu gọn (Contraction Algorithms) được đề xuất bở i Zykov
- Giải thuật tô màu theo dãy (sequential coloring)
Trong đó giải thuật tô màu theo dãy lại đượ c ứng dụng nhiều cách khác nhau.
Ý tưở ng của giải thuật này xoay quanh việc sắ p xế p thứ tự các cạnh của đồ thị
theo một thứ tự nhất định. Đánh trọng số cho các màu được dùng để tô. Sau đó duyệt
các cạnh theo thứ tự nêu trên. Trong quá trình duyệt sẽ tô màu cho cạnh bằng màu cótr ọng số nhỏ nhất mà chưa đượ c sử dụng để tô cho các cạnh k ề. Đây là một vận dụng
của việc sử dụng giải thuật tham lam. K ết quả của bài toán sẽ khác nhau nếu ta chọn
thứ tự các cạnh khác nhau. Do đó các cải tiến của giải thuật này đều dựa trên việc sắ p
xế p thứ tự các cạnh hợp lý hơn.
2.2.3. Giải thuật tô màu cạnh
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
16/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
9 HVTH: Nguyễ n H ồ Duy Trí
Input: Các cạnh đã đượ c sắ p thứ tự đánh dấu theo thứ tự E1, E2, … Đồ thị không
có khuyên.
Output: Các cạnh tương ứng với các màu đã đượ c tô.
Bướ c 1: Tìm bậc lớ n nhất của đồ thị (D) Bướ c 2: Chuẩn bị D + 1 màu để tô.
Bướ c 3: Tô màu E bở i màu k. Duyệt từng cạnh E, tô màu cho cạnh i. Xét cạnh đó
đượ c tô màu tạo bởi đỉnh I và đỉnh J. Xét các cạnh có chung đầu là đỉnh I và J, tô màu
cho các cạnh đó bở i các màu khác nhau. Trong lúc tô màu cho các cạnh đó, xét nếu đỉnh
còn lại của cạnh đó có cạnh trùng màu thì ta sử dụng màu khác. Cứ tiế p tục như vậy
cho tớ i khi tô màu toàn bộ cạnh của đồ thị
Hình 2.12. Ví dụ về cách tô màu cạnh:
Tô màu cạnh cho đồ thị sau:
Sắ p xế p các cạnh theo thứ tự sau:
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
17/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
10 HVTH: Nguyễ n H ồ Duy Trí
Bướ c 1: Tô màu cạnh đầu tiên (màu đỏ):
Bướ c 2: Tô màu cạnh k ề vớ i một màu khác (màu xanh):
Bướ c 3: Tiế p tục tô màu cạnh k ề vớ i 2 cạnh trên, ở đây là cạnh thứ 3 vớ i màu xanhda tr ờ i.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
18/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
11 HVTH: Nguyễ n H ồ Duy Trí
Bướ c 4: Tô màu cạnh k ề vớ i cạnh đầu tiên, ở đây là cạnh thứ 4 vớ i màu sắc khác
màu đỏ.
Bướ c 5: Tô màu cạnh k ề vớ i cạnh vừa tô vớ i màu sắc khác màu xanh
Bướ c 6: Tô màu cạnh thứ 6 vớ i màu sắc không trùng vớ i các cạnh đã tô màu trướ c
đó.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
19/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
12 HVTH: Nguyễ n H ồ Duy Trí
Bướ c 7: Tiế p tục tô màu các cạnh 7, 8, 9. Ta thu được đồ thị đã tô màu
K ế t luận: Đồ thị này có thể tô với 5 màu. Đây chính là số màu nhỏ nhất có thể
dùng để tô màu đồ thị này.2.2.4. Bài toán tô màu đỉnh
Bài toán
Cho G = (V, E) là đơn đồ thị vô hướng (G không là đồ thị khuyên), tìm cách tô
màu cho mỗi đỉnh của đồ thị sao cho hai đỉnh k ề nhau không bị tô bở i cùng một màu.
Một phép gán màu cho mỗi đỉnh như vậy đượ c gọi là phép tô màu đồ thị, nói cách khác,
phép tô màu đồ thị bởi k màu nói trên đượ c hiểu là một phân hoạch của tập đỉnh V của
G thành k tậ p con (k ứng vớ i số màu) sao cho mỗi tậ p con ứng vớ i một màu xác định.Bài toán đặt ra là tìm số màu ít nhất để có thể gán.
Giải thuật
Số lượ ng màu nhỏ nhất để tô các đỉnh của đồ thị G gọi là sắc số đỉnh của đồ thị G,
sao cho không có 2 đỉnh k ề nhau nào đượ c tô bở i cùng một màu.
Một đồ thị có thể đượ c tô bằng k màu, trong đó mỗi một tập các đỉnh cùng màu
đượ c gọi là một lớ p màu.
Một đồ thị có thể đượ c tô bằng k màu nghĩa là có k tập độc lập nhau trong đồ thị.
2.2.5. Giải thuật tô màu đỉnh vận dụng giải thuật tham lam
Input: Ma tr ận k ề của đồ thị G (V,E)
Output: danh sách các đỉnh đã đượ c tô màu
Giải thuật tham lam (tiếng Anh: Greedy algorithm) là một giải thuật giải quyết
một bài toán theo kiểu metaheuristic để tìm kiếm lựa chọn tối ưu địa phương ở mỗi
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
20/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
13 HVTH: Nguyễ n H ồ Duy Trí
bước đi vớ i hy vọng tìm đượ c tối ưu toàn cục. Ở đây ta chọn đỉnh có bậc lớ n nhất để tối
ưu số màu cần tô.
Bướ c 1: Lập danh sách các đỉnh theo thứ tự giảm của bậc ta được E’ = (V1, V2…).
Đặt i = 1. Bướ c 2: Tô màu i cho đỉnh đầu tiên trong danh sách. Duyệt lần lược các đỉnh tiế p
theo và tô màu i cho đỉnh không k ề đỉnh đã đượ c tô màu I (lựa chọn tham lam)
Bướ c 3: Nếu tất cả các đỉnh đã đượ c tô màu thì k ết thúc, đồ thị đượ c tô bằng i
màu. Ngượ c lại sang bướ c 4.
Bướ c 4: Loại khỏi E’ các đỉnh đã tô màu. Sắ p xế p lại E’ theo thứ tự bậc giảm dần.
Đặt i = i + 1 và quay lại bướ c 2.
Hình 2.13. Ví dụ về tô màu đỉnh.
Tô màu cho đồ thị sau:
Bướ c 1: Lập danh sách các đỉnh theo thứ tự giảm dần của bậc ta được E’ = (A, D,
B, E, F, C), đặt i = 1.
Bướ c 2: Tô màu 1 cho đỉnh A, duyệt các đỉnh còn lại thấy có đỉnh C không k ề vớ i
đỉnh A, nên tô màu đỉnh C cùng màu 1.
Bướ c 3: Đồ thị chưa tô màu hết nên loại A và C ra khỏi đồ thị, ta được E’ = (D,
B, E, F). Tiế p tục tô màu 2 cho đỉnh D, duyệt các đỉnh còn lại nhưng không thể tô màu
cho bất kì đỉnh nào nữa.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
21/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
14 HVTH: Nguyễ n H ồ Duy Trí
Bướ c 4: Đồ thị chưa tô màu hết nên loại D ra khỏi đồ thị, ta được E’ = (B, E, F).
Tiế p tục tô màu 3 cho đỉnh B, duyệt các đỉnh còn lại và tô màu 3 cho đỉnh E.
Bướ c 5: Đồ thị chưa tô màu hết nên loại B, E ra khỏi đồ thị, ta được E’ = (F). Tiế p
tục tô màu 4 cho đỉnh F, duyệt các đỉnh còn lại và không còn đỉnh nào nên không tô
thêm màu đượ c.
Bướ c 6: Do đồ thị đã đượ c tô hết màu ở các đỉnh nên k ết thúc vớ i số màu tô là 4.
2.2.6. Nhược điểm của giải thuật tô màu tham lam
Giải thuật tô màu tham lam không phải là một giải thuật tối ưu nhất về số màu để
tô cho một đồ thị. Trên cùng một đồ thị, vận dụng giải thuật tô màu tham lam có thể
cho ra nhiều k ết quả khác nhau.
Một trườ ng hợ p về đồ thị 2 phía đầy đủ như dưới là trườ ng hợp đặc biệt không tốt
vớ i giải thuật tô màu tham lam. Sử dụng giải thuật tô màu tham lam tạo ra n màu sắc,
trong khi đó thì đồ thị chỉ cần 2 màu để tô:
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
22/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
15 HVTH: Nguyễ n H ồ Duy Trí
Hình 2.14. Nhược điểm tô màu tham lam
2.2.7. Định nghĩa NP –đầy đủ
Trong lý thuyết độ phức tạ p tính toán, lớ p NP-đầy đủ là một lớ p các bài toán quyết
định. Một bài toán L là NP-đầy đủ nếu nó nằm trong lớ p NP (lờ i giải cho L có thể đượ c
kiểm chứng trong thời gian đa thức) và là NP-khó (mọi bài toán trong NP đều có thể
quy về L trong thời gian đa thức).Mặc dù bất kì lờ i giải nào cho mỗi bài toán đều có thể đượ c kiểm chứng nhanh
chóng, hiện chưa có cách nào tìm ra đượ c lờ i giải đó một cách hiệu quả. Thờ i gian thực
thi của tất cả các giải thuật hiện tại cho những bài toán này đều tăng rất nhanh theo kích
thướ c bài toán. Vì vậy ngay cả những trườ ng hợp có kích thước tương đối lớn đã đòi
hỏi thờ i gian hàng tỷ năm để giải. Do đó, việc xác định xem những bài toán này có thể
đượ c giải quyết nhanh chóng hay không (thườ ng gọi là bài toán P so vớ i NP) là một
trong những bài toán mở của khoa học máy tính hiện nay. (theo Wikipedia).
Bài toán tô màu đỉnh là một bài toán NP đầy đủ.
2.3. Bài toán ngườ i bán hàng
2.3.1. Phát biểu
Có một ngườ i giao hàng cần đi giao hàng tại n thành phố. Anh ta xuất phát từ một
thành phố nào đó, đi qua các thành phố khác để giao hàng và tr ở về thành phố ban đầu.
Mỗi thành phố chỉ đến một lần, và khoảng cách từ một thành phố đến các thành phố
khác đã đượ c biết trướ c. Hãy tìm một chu trình (một đường đi khép kín thỏa mãn điều
kiện trên) sao cho tổng độ dài các cạnh là nhỏ nhất.
Bài toán người bán hàng cũng là bài toán thuộc dạng NP – đầy đủ.
Bài toán ngườ i bán hàng có thể đượ c mô hình hóa dưới đồ thị phía dưới, trong đó
mỗi thành phố là một đỉnh, các cạnh là đường đi giữa mỗi thành phố, độ dài cạnh chính
là khoảng cách mỗi con đườ ng.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
23/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
16 HVTH: Nguyễ n H ồ Duy Trí
Hình 2.15. Ví dụ về bài toán ngườ i bán hàng
2.3.2. Sử dụng giải thuật láng giềng gần nhất (nearest neighbor algorithm)
Hình 2.16. Giải thuật láng giềng gần nhấtCác bước của giải thuật :
Bướ c 1: Chọn một đỉnh bắt đầu V.
Bướ c 2: Từ đỉnh hiện hành chọn cạnh nối có chiều dài nhỏ nhất đến các đỉnh chưa
viếng thăm. Đánh dấu đã viếng thăm đỉnh vừa chọn.
Bướ c 3: Nếu còn đỉnh chưa viếng thăm thì quay lại bướ c 2.
Bướ c 4: Quay lại đỉnh V.
Bài toán có năm thành phố vớ i khoảng cách giữa các thành phố đượ c tính bằng
km. Sử dụng giải thuật láng giềng gần nhất, bắt đầu lần lượ t từ mỗi đỉnh, tìm đường đi
thích hợp cho ngườ i bán hàng, cửa hàng đặt tại A và cần đi qua tất cả thành phố còn lại.
Bắt đầu với đỉ nh A
Từ A, đỉnh gần nhất là C, chiều dài AC = 8
Từ C, đỉnh chưa viếng thăm gần nhất là E, CE = 4
Từ E, đỉnh chưa viếng thăm gần nhất là B, EB = 15
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
24/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
17 HVTH: Nguyễ n H ồ Duy Trí
Từ B, đỉnh chưa viếng thăm gần nhất là D, BD = 10
Không còn đỉnh chưa viếng thăm, vì vậy quay về A, DA = 14
Tổng chi phí ACEBDA là 8 + 4 + 15 + 10 + 14 = 51
Lặ p l ại bắt đầu vớ i những đỉ nh khác:Đỉnh bắt đầu Đường đi Tổng chiều dài
A ACEBDA 51
B BACEDB 50
C CEABDC 45
D DCEABD 45
E ECABDE 50
E ECDBAE 45
Bảng 2.1. Đầu vào giải thuật láng giềng gần nhất
Có ba đường đi có chiều dài 45 km là giống nhau. Một nhân viên bán hàng có cửa
hàng tại A, đường đi tốt nhất tìm ra bở i giải thuật láng giềng gần nhất là ABDCEA =
45 km.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
25/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
18 HVTH: Nguyễ n H ồ Duy Trí
CHƯƠNG III. KHẢO SÁT HIỆN TR ẠNG VÀ YÊU CẦU CHỨC NĂNG
3.1. Một số chương trình lập lịch thi sử dụng giải thuật tô màu
Bài toán tô màu đồ thị và ứng dụng xây dựng phần mềm xếp lịch thi cho họcchế tín chỉ
- Tham khảo: trong danh mục các tài liệu tham khảo, tiếng việt, ebook [1]
- Các vấn đề đã giải quyết:
Xây dựng lịch thi cho học chế tín chỉ(sinh viên không thi cách ngày)
Sắ p lịch thi trong thờ i gian giớ i hạn
Trong một ngày, một phòng có thể phục vụ nhiều ca thi
Các lớ p môn học cùng môn học thì thi cùng thờ i điểm Sinh viên không thi nhiều hơn 1 ca trong 1 ngày
Sinh viên không thi liên tiế p trong k ngày
- Nhược điểm, các vấn đề chưa giải quyết:
Chưa sắ p xế p tùy theo sức chứa của phòng, lịch phòng bận, tùy theo hình
thức thi của lớ p môn học mà chọn phòng cho phù hợ p.
Do sắ p một màu cho một ngày nên số ngày tối thiểu để có thể sắp đượ c là
bằng số màu (nhỏ hơn số màu thì sẽ không sắp đượ c lịch thi)
Phụ thuộc vào số k ngày thi cách để xét ngườ i dùng nhậ p nên không biết số
k nào là tối ưu nhất vớ i lịch thi để sắ p, từ đó vấn đề thi cách ngày của sinh
viên chỉ có thể giải quyết một cách tương đối, nếu không tìm đượ c môn học
nào thỏa mãn thì sẽ cách ngày đó ra.
Giả sử không đủ phòng khi sắ p một màu cho một ngày thì chưa xử lý đượ c.
Chưa quan tâm về vấn đề ca thi khi sắ p xế p lịch (chỉ từ các màu trong ngàyđể sắ p vào các ca tùy chọn).
Chưa quan tâm tớ i các vấn đề lựa chọn phòng thi khác, thờ i gian thi khác khi
lịch đã sắ p xong.
Chưa quan tâm tớ i vấn đề sử dụng các ngày thi hợ p lý nhất.
A New Exam Scheduling Algorithm Using Graph Coloring
- Tham khảo: trong danh mục các tài liệu tham khảo, tiếng anh, ebook [6]
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
26/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
19 HVTH: Nguyễ n H ồ Duy Trí
- Các vấn đề đã giải quyết:
Sắ p xếp đượ c lịch thi không bị trùng sinh viên
Tính toán hiệu suất của giải thuật tô màu
Quan tâm tớ i vấn đề cán bộ coi thi Sinh viên không thi 2 ca thi một ngày
Quan tâm tớ i vấn đề phòng thi tại một thời điểm
Sử dụng các khe(slots) để phân bố các lớ p môn học trong các màu cho các
ngày
Quan tâm tớ i vấn đề sử dụng các ngày để phân bố thi tốt nhất.
- Nhược điểm, các vấn đề chưa giải quyết:
Chưa giải quyết vấn Descartes lớ p môn học cùng môn học thì thi cùng nhau
Chưa quan tâm tớ i vấn đề sinh viên thi cách ngày
Chưa quan tâm tớ i vấn đề phòng thi nhiều: hình thức thi của lớ p môn học,
sức chứa…
Chưa quan tâm tớ i vấn đề tối ưu theo ngày thi
Giả sử không đủ phòng khi sắ p một màu cho một ngày thì chưa xử lý đượ c.
Graph Coloring for Class Scheduling
- Tham khảo: trong danh mục tài liệu tham khảo, tiếng anh, ebook [7]
- Các vấn đề đã giải quyết:
Vấn đề tìm phòng cho các lớ p môn học
Xây dựng lịch thi không bị trùng sinh viên
Giải quyết vấn đề khi một màu sắ p vào các phòng trong một thời điểm mà
không đủ thì nó sẽ sắ p ra thờ i gian khác
Tối ưu ngày thi- Vấn đề chưa giải quyết:
Chưa quan tâm tớ i vấn đề ca thi
Chưa quan tâm tớ i vấn Descartes lớ p môn học cùng môn học thì cho thi cùng
nhau
Chưa quan tâm tớ i vấn đề sinh viên thi ít ca nhất trong ngày, thi cách ngày
Chưa xử lý vấn đề phòng thi nhiều: hình thức thi của lớ p môn học, sức chứa…
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
27/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
20 HVTH: Nguyễ n H ồ Duy Trí
Chưa quan tâm tớ i vấn đề bận phòng
University Exam Scheduling System Using Graph Coloring Algorithm and
RFID Technology
-
Tham khảo: trong danh mục tài liệu tham khảo, tiếng anh, ebook [8]- Các vấn đề đã giải quyết:
Sắ p xếp đượ c lịch thi sinh viên không bị trùng
Quan tâm tớ i vấn đề phòng thi hợ p lý
Sắp đượ c các màu vào các ca, các ngày
Tính toán hiệu suất làm việc của giải thuật tô màu.
- Các vấn đề chưa giải quyết:
Các lớ p môn học cùng môn học thì cho thi cùng nhau
Chưa xử lý vấn đề phòng thi nhiều: hình thức thi của lớ p môn học, sức chứa…
Chưa quan tâm tớ i vấn đề sinh viên thi ít ca nhất trong ngày, thi cách ngày
Chưa quan tâm tớ i vấn đề bận phòng
Giả sử không đủ phòng khi sắ p một màu cho một ngày thì chưa xử lý đượ c.
3.2. Giớ i thiệu về k ỳ thi trong trường Đại học Công nghệ thông tin
Trường ĐH CNTT là trường Đại học đào tạo theo hình thức tín chỉ. Một năm học
tại trườ ng có 3 học kì: học kì 1, học kì 2 và học kì hè. Mỗi một học kì thườ ng có 2 k ỳ
thi diễn ra là k ỳ thi giữa kì và k ỳ thi cuối kì. Mỗi k ỳ thi có sự tham gia của toàn bộ sinh
viên trườ ng vớ i khoảng 4.000 sinh viên và hơn 300 môn học khác nhau. Các sinh viên
có thể học 6-8 môn khác nhau. Số ca thi trong một ngày có thể lên tớ i 4 ca, vớ i thờ i gian
từng ca là: Ca 1: bắt đầu từ 7h30; Ca 2: bắt đầu từ 9h30; Ca 3: bắt đầu từ 13h30; Ca 4:
bắt đầu từ 15h30. Tuy nhiên, vớ i môn thực hành thì thờ i gian thi tùy thuộc vào giảng
viên dạy lớp đó quy định.Hiện tại trườ ng có sử dụng phần mềm riêng để xây dựng lịch thi. Phần mềm này
xây dựng dựa trên giải thuật tô màu tham lam (Greedy Coloring). Phần mềm này xây
dựng lịch thi khá tốt (chưa xảy ra trườ ng hợ p trùng lịch thi nào), tuy nhiên, còn vài ràng
buộc mà phần mềm vẫn chưa thực hiện tốt như chưa sắp đượ c các môn thi mà số lượ ng
sinh viên thi 2 ca một ngày và số lượ ng sinh viên thi liên tiế p 2 ngày tốt nhất, dẫn tớ i
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
28/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
21 HVTH: Nguyễ n H ồ Duy Trí
trườ ng hợp PĐT sau khi nhận đượ c lịch đã xế p thì vẫn phải xế p tay lại để thỏa mãn các
trườ ng hợ p.
3.3. Mô tả hệ thống
Đối với môn thi thực hành, báo cáo đồ án môn học:
Phòng Đào tạo
4
Phòng Dữ liệu
2 Ban Quản lý cơ sở 1Các khoa
3
Sơ đồ 3.1. Sơ đồ mô tả hệ thống vớ i thi thực hành, báo cáo đồ án môn học
1: Danh sách lịch thi đã đượ c sắ p xế p ngày thi và cán bộ coi thi nhưng chưa sắ p
phòng
2: Danh sách các phòng bận
3: Danh sách lịch thi hoàn chỉnh đã sắ p phòng
4: Hỗ tr ợ lậ p lịch
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
29/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
22 HVTH: Nguyễ n H ồ Duy Trí
Đối với môn thi lý thuyết:
Phòng Đào tạo
7
Phòng Dữ liệu
2 Ban Quản lý cơ sở 1Các khoa
6
Dữ liệu trường
Sinh viên Cán bộ
3
4
5
Sơ đồ 3.2. Sơ đồ mô tả hệ thống vớ i thi lý thuyết
1: Lịch bận của các giảng viên
2: Lịch bận phòng
3: Các thông tin về lớ p môn học, sinh viên, học phí sinh viên
4: Thông tin về lịch thi của sinh viên
5: Thông tin về lịch coi thi của cán bộ
6: Thông tin về lịch thi của khoa
7: Hỗ tr ợ lậ p lịch
3.4. Mô tả các đơn vị tham gia
- Khoa: là nơi chịu trách nhiệm về các lớ p môn học. Do học theo tín chỉ nên mỗi
môn học sẽ do 1 khoa phụ trách về giảng viên và nội dung môn học đó. Khoa
cũng là đơn vị quản lý các giảng viên và phân công công tác đối vớ i các giảng
viên. Khoa cũng quản lý các lớ p môn học và đưa ra danh sách các lớ p môn học
nào đượ c thi, và thi theo thứ tự như thế nào. Một môn học có thể có nhiều lớ p
môn học đi kèm, và mỗi một lớ p môn học lại có thể có nhiều lớ p thực hành. Tuy
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
30/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
23 HVTH: Nguyễ n H ồ Duy Trí
nhiên, khi đăng kí học phần thì sinh viên chỉ đượ c phép học một lớ p môn học
thuộc một môn học và một lớ p thực hành tương ứng. Mỗi giảng viên đều có các
thông tin: mã giảng viên, tên giảng viên, địa chỉ, số điện thoại, chức vụ, thuộc
khoa nào, giới tính, năm sinh. Mỗi giảng viên có lịch bận công tác gồm các thôngtin: mã giảng viên, thờ i gian bắt đầu, thờ i gian k ết thúc, lý do. Mỗi môn học thì
sẽ có các thông tin: mã môn học, tên môn học, số tín chỉ, thuộc khoa nào. Mỗi
lớ p môn học thì bao gồm các thông tin: mã lớ p môn học, mã môn học, mã giảng
viên dạy, phòng dạy, thờ i gian học, số lượ ng, các sinh viên theo học, các lớ p thực
hành đi kèm, thờ i gian thi, hình thức thi, loại thi.
- Phòng Đào tạo: là nơi tiế p nhận thông tin từ các bộ phận khác và trao đổi thông
tin, dướ i sự hỗ tr ợ của Ban dữ liệu để có thể xây dựng và điều chỉnh lịch thi, sau
khi lậ p lịch thi thì thông báo lịch thi tớ i các cán bộ coi thi, các khoa và các sinh
viên.
- Ban quản lý cơ sở : Nơi quản lý toàn bộ cơ sở vật chất của trườ ng, bao gồm
phòng học, phòng thực hành, phòng thí nghiệm và sân bãi. Ban cũng có lịch làm
việc của các cơ sở vật chất để tránh xảy ra trườ ng hợ p nhiều đối tượ ng sử dụng
chung một cơ sở vật chất. Trong phòng học thì có các thông tin về phòng đó như
mã phòng, sức chứa, vị trí phòng, loại phòng, tình tr ạng sử dụng của phòng đó
- Sinh viên: Là thực thể tr ực tiế p tham gia vào quá trình thi tại trườ ng. Sinh viên
có các thông tin quan tr ọng như: mã sinh viên, tên sinh viên, giới tính, địa chỉ,
lớp, khoa, năm sinh, số điện thoại, email.
- Dữ liệu trườ ng: Bao gồm các thông tin về lớ p môn học, thông tin về học phí của
sinh viên… được lưu trữ trên hệ thống quản tr ị cơ sở dữ liệu của trườ ng. Các dữ
liệu này sẽ giúp cung cấ p thông tin cho quá trình lậ p lịch thi- Ban dữ liệu: là đơn vị hỗ tr ợ , cung cấ p các giải pháp kĩ thuật giúp PĐT lậ p lịch.
3.5. Hoạt động chính khi lập lịch thi
- Quản lý dữ liệu của trườ ng: các thông tin về lớ p môn học, về danh sách các cán
bộ, danh sách các phòng đượ c sử dụng làm phòng thi.
- Lập lịch thi: dựa trên các dữ liệu để xây dựng lịch thi, thông báo lịch thi tớ i các
cá nhân, đơn vị liên quan.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
31/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
24 HVTH: Nguyễ n H ồ Duy Trí
3.6. Quy trình nghiệp vụ lập lịch thi
Kì thi đượ c phân làm hai loại chính:
Thi thực hành hay báo cáo đồ án môn học, thi vấn đáp Tiế ng Anh
Vớ i loại thi này, Khoa sẽ gửi danh sách các lớ p môn học thực hành đã sắ p sẵnngày tháng và cán bộ coi thi để gửi tới PĐT. Dựa trên dữ liệu về phòng của trườ ng,
PĐT sẽ sắ p các phòng thi phù hợ p và gửi lại cho Khoa để khoa thông báo về cho sinh
viên của mình. Thông thườ ng thì các lớ p môn học thực hành đượ c tổ chức thi vào tuần
dự tr ữ của học kì, và lớ p môn học nào học ở phòng nào thì thi ngày đó tại đúng thờ i
gian học đó. Giảng viên coi thi cũng chính là giảng viên dạy thực hành môn đó.
Thi lý thuyế t
Vớ i loại thi này thì tổ chức quy mô hơn. Các khoa sẽ chỉ đưa ra danh sách các
giảng viên bận không tham gia coi thi đượ c gửi cho PĐT. Ban Quản lý cơ sở sẽ gửi cho
PĐT các phòng không sử dụng làm phòng thi đượ c. Mặc định, các giảng viên đều phải
tham gia coi thi và các phòng học đều tr ống. PĐT dựa vào dữ liệu các lớ p môn học,
sinh viên học lớ p môn học, phòng học và giảng viên coi thi để có thể xây dựng lịch thi.
Thườ ng thì công việc xế p lịch thi thì PĐT sẽ để Ban Dữ liệu thực hiện, và đưa lại cho
PĐT hiệu chỉnh nếu có thay đổi về lịch bận phòng. Khi xây dựng lịch thi, đảm bảo các
yêu cầu sau:
- Yêu cầu cứng:
Lịch thi đượ c thực hiện trong một khoảng thời gian xác định có thể điều
chỉnh.
Không bị trùng lịch thi của một sinh viên.
Một lớ p môn học khi thi thì phải đảm bảo 1 ngườ i ngồi 1 bàn (sức chứa của
phòng đó sẽ chia 2 để tính số sinh viên khi thi). Có thể du di thêm vài ngườ inữa trong một phòng học.
Các lớ p môn học cùng môn học thì tổ chức thi cùng nhau.
Có 4 ca thi ở trườ ng vớ i các thờ i gian thi khác nhau.
Lớ p thực hành thì sắ p ở các phòng thi thực hành, lớ p lý thuyết thì sắ p ở phòng
thi lý thuyết, các lớ p chất lượ ng cao thì sắ p ở các phòng chất lượ ng cao. Lớ p
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
32/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
25 HVTH: Nguyễ n H ồ Duy Trí
thi vấn đáp, thực hành thì sắ p xế p phòng có sức chứa lớn hơn số lượ ng sinh
viên.
- Yêu cầu mềm:
Sinh viên mong muốn thi 1 ca 1 ngày. Có thể sắ p xế p một số môn thi vào một ngày nào đó.
Sinh viên có thể thi cách ngày tốt nhất.
Ưu tiên thi ca 2,3,1,4.
Ưu tiên môn có thời lượ ng thi >90p thì cho thi ca 2.
Sau khi đưa ra danh sách lịch thi cho từng lớ p thì mớ i dựa trên thông tin học phí
của sinh viên để đính kèm ghi chú về các khoản học phí chưa đóng. Thông tin về lịch
thi sẽ đượ c gửi cho sinh viên (thông tin về lịch thi của sinh viên đó), khoa (thông tin về
lịch thi của khoa đó), tình hình sử dụng phòng.
Chương trình tậ p trung vào chức năng lậ p lịch thi cho các lớ p lý thuyết nên các
phần sau sẽ chỉ trình bày về thi lý thuyết cuối kì và giữa kì.
3.7. Hiện trạng tin học của trường Đại học
Hiện tại trường ĐH CNTT đượ c trang bị cấu hình tối thiểu là Pentium IV, Ram 1
GB, HDD 250 GB thỏa mãn chạy được chương trình có các giải thuật.
Trườ ng hiện tại sử dụng phần mềm để lậ p lịch thi. Phần mềm này sử dụng giải
thuật tô màu tham lam (Greedy Coloring) để thực hiện lậ p lịch thi, tuy nhiên, có một số
hạn chế khi sử dụng phần mềm này là:
- Không dựa theo danh sách phòng bận (giả sử hôm đó phòng đó bận công việc gì
đó), phần mềm mặc định lấy toàn bộ phòng để sắ p lịch. Sau khi lậ p xong lịch thì
PĐT sẽ hiệu chỉnh lại bằng tay. Điều này có thể mất nhiều công sức nếu có nhiều
phòng bận nhiều thời điểm.- Chưa sắp đượ c các lớ p theo số sinh viên thi 2 ca một ngày hoặc số sinh viên thi
liên tiế p 2 ngày.
- Chưa tận dụng tối ưu sức chứa của phòng vớ i số lượ ng sinh viên lớp đó thi.
3.8. Mong muốn của trường đối vớ i hệ thống
- Có thể nhập đượ c danh sách phòng bận để phân công phòng.
- Có thể tùy chọn nhiều tham số để đưa ra các lịch thi khác nhau.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
33/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
26 HVTH: Nguyễ n H ồ Duy Trí
- Giao diện thân thiện, dễ sử dụng.
- Phân quyền linh động: theo nhóm quyền.
- Đảm bảo tính bảo mật: chỉ có ngườ i có mật khẩu mớ i có thể đăng nhậ p vào hệ
thống, chỉ có ngườ i quản lý mớ i có thể thay đổi các thiết đặt quan tr ọng đối vớ ihệ thống.
3.9. Yêu cầu chức năng và phi chức năng của hệ thống
Yêu cầu chức năng
Yêu cầu khi l ậ p l ịch thi:
- Chương trình tậ p trung vào việc sắ p lịch cho các môn thi lý thuyết giữa kì hoặc
cuối kì.
-
Sắp đượ c k ỳ thi lý thuyết. Các môn có hình thức thi là viết hoặc vấn đáp thì sẽ
đượ c xế p vào phòng thi lý thuyết, các môn có hình thức thi là máy thì sẽ đượ c
xế p vào các phòng máy tính.
- Có thể sắ p xế p một số môn thi vào một ngày nào đó.
- Các lớ p chất lượng cao đượ c sắ p vào các phòng chất lượng cao tương ứng.
- Có thể điều chỉnh khoảng thờ i gian thi.
- Sinh viên thi không bị trùng lịch.
- Các lớ p môn học phải được thi trong các phòng đảm bảo 1 sinh viên ngồi một
bàn 2 ngườ i. Tuy nhiên có thể điều chỉnh thêm một lượng ngườ i nữa vào trong
phòng đó.
- Có thể chỉnh sửa lịch.
- Các lớ p môn học cùng môn học thì tổ chức thi cùng nhau.
- Có 4 ca thi ở trườ ng vớ i các thờ i gian thi khác nhau: ca 1 bắt đầu lúc 7h30, ca 2
bắt đầu lúc 9h30, ca 3 bắt đầu lúc 13h30, ca 4 bắt đầu lúc 15h30.- Ưu tiên sắ p vào các ca theo thứ tự là 2,3,1,4.
- Có thể điều chỉnh các tùy chọn để ra các lịch thi khác nhau.
- Phân công hợ p lý phòng thi: dựa theo sức chứa của phòng và thờ i gian bận của
phòng để có lịch sử dụng phòng tối ưu nhất.
- Có thể xế p phòng máy cho các lớ p môn học học lý thuyết nhưng thi trên máy.
- Nếu thi ở phòng máy thì phải sắ p số lượ ng máy >= số lượng sinh viên phòng đó.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
34/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
27 HVTH: Nguyễ n H ồ Duy Trí
- Sắ p sinh viên thi ở các phòng có sức chứa tương đương nhau
- Có thể xuất ra các tệ p tin k ết quả lịch thi: lịch thi chung, lịch thi theo lớ p môn
học.
-
Sắ p lịch thi cho sinh viên thi 2 ngày liên tiế p, sinh viên thi 2,3,4 ca một ngày phùhợ p nhất.
- Các môn học có thời lượng thi >90p thì ưu tiên cho thi ca 2.
Đố i vớ i Admin (Ban d ữ liệu):
- Có thể sử dụng mọi chức năng mà các phòng khác sử dụng.
- Thêm dữ liệu về khoa, sinh viên, môn học, giảng viên, năm học, phòng học.
- Có thể điều chỉnh quyền cho các thành viên khác.
Đố i với Phòng Đào tạo:
- Lậ p lịch thi.
Đố i vớ i Ban Quản lý cơ sở :
- Cậ p nhật tình tr ạng phòng.
In/Nhậ p báo biể u, thố ng kê:
- In lịch thi chung.
- In lịch thi theo lớ p.
- In lịch thi cho khoa.
Chức năng đề xuấ t:
- Các môn thi có cùng thời lượng thi thì cho thi cùng nhau để dễ sắ p xế p cán bộ
coi thi.
- Có thể cho phép loại bỏ một số ngày không thi trong danh sách ngày.
- Cho phép tùy chọn số sinh viên thi 3 ca, 4 ca bao nhiêu thì phù hợ p vớ i 1 sinh
viên thi 2 ca.- Cho phép tùy chọn lậ p lịch thi có giớ i hạn thờ i gian hay không phụ thuộc vào số
lượ ng sinh viên thi 2 ngày chấ p nhận và số lượ ng sinh viên thi 2 ca chấ p nhận.
- Cho phép lựa chọn đầu vào là các môn học đượ c phép thi.
- Cho phép lựa chọn đầu vào là các ngày tổ chức thi.
- Cho phép lựa chọn đầu vào là các môn học muốn ưu tiên thi trướ c trong một ngày
nào đó.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
35/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
28 HVTH: Nguyễ n H ồ Duy Trí
- Cho phép lựa chọn số sinh viên thi 3 ca và 4 ca so vớ i 2 ca chấ p nhận đượ c.
- Phân quyền theo nhóm quyền.
Yêu cầu phi chức năng
-
Hệ thống triển khai dướ i dạng Winform.- Giao diện thân thiện, dễ sử dụng.
- Trình bày thông tin nhanh chóng.
- Đảm bảo tính bảo mật: chỉ có ngườ i có mật khẩu mớ i có thể đăng nhậ p vào hệ
thống, chỉ có ngườ i quản lý mớ i có thể thay đổi các thiết đặt quan tr ọng đối vớ i
hệ thống.
3.10. Lợ i ích của hệ thống mớ i
-
Giảm thiểu thờ i gian lậ p lịch.
- Giảm thiểu sai sót khi lậ p lịch.
- Giảm thiểu thời gian trao đổi thông tin giữa các phòng ban.
- Thông tin đượ c hiển thị k ị p thờ i và chính xác.
- Có thể tùy chọn nhiều ràng buộc khác nhau.
- Tăng hiệu quả làm việc của các nhân viên PĐT.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
36/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
29 HVTH: Nguyễ n H ồ Duy Trí
CHƯƠNG IV. ÁP DỤNG VÀO BÀI TOÁN LẬP LỊCH THI
4.1. Giải thuật tô màu đỉnh trong bài toán lập lịch
Vớ i tích Descartes chúng ta có thể chuyển đổi các vấn đề trong việc tìm kiếm một tậ p m-màu của các đỉnh n của một đồ thị tương đương như việc tìm kiếm một bộ độc lậ p kích
thướ c n trong tích Descartes G × K m.
Tích Descartes
Một đơn đồ thị G với n đỉnh là tô được bằng m mầu khi và chỉ khi tích Descartes
G × K m có một tập độc lập kích thước n.
Chứng minh.
Giả sử có một tập m-màu của các đỉnh của G. Xác định một tập con S của các đỉnh của
tích Descartes G × K m như sau. Một đỉnh (u, v) của G × K m thuộc S nếu và chỉ nếu đỉnh
u của G được giao màu v đối với tập m màu thích hợp. Vì mỗi đỉnh của G được giao
một màu duy nhất, | S | = n. Bây giờ chúng ta sẽ chỉ ra rằng S là một tập độc
lập. Cho (u1, v1) và (u2, v2 ) thuộc S, giả sử có một cạnh {(u1, v1 ), (u2, v2 )} trong G ×
K m. Do đó, theo định nghĩa của tích Descartes, có hai khả năng:
u1 = u2 và {v1, v2 } là một cạnh trong K m. Nhưng u1 = u2 vớ i v1 = v2, từ mỗi đỉnh
trong G đượ cgiao một màu duy nhất. Nhưng sau đó {v1, v1 } không thể là một
cạnh trong K m khi K m là một đơn đồ thị (mâu thuẫn).
{u1, u2 } là một cạnh trong G, và v1 = v2. Nhưng điều này vi phạm các định nghĩa
của một tậ p m màu của G từ đỉnh k ề phải đượ c giao các màu khác nhau (mâu
thuẫn).
Vì vậy không thể có một cạnh giữa hai đỉnh trong S và S phải là một tập độc lậ p.
Ngượ c lại, giả sử có một tập độc lậ p S kích thướ c n trong tích Descartes G × K m. Ta chỉ ra r ằng G có m màu riêng biệt. Nếu m lớn hơn hoặc bằng n thì G có thể đượ c m màu
một cách tầm thường, do đó giả sử m nhỏ hơn n. Sự phân chia các đỉnh của S vào nhiều
nhất là m lớp tương đương C 1, C 2, ..., C m, nơi một đỉnh (u, v) trong S thuộc về lớ p tương
đương C i khi và chỉ khi v = vi. Rõ ràng , điều này đưa ra một định nghĩa phân chia tố t
của các đỉnh trong S . Bây giờ các đỉnh của G vào nhiều nhất là m lớp tương đương
C' 1, C' 2, ..., C' m , nơi một u đỉnh của G thuộc lớp tương đương C' i nếu và chỉ nếu (u,
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
37/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
30 HVTH: Nguyễ n H ồ Duy Trí
vi ) thuộc về lớ p tương đương C i. Để chứng tỏ điều đó ta đưa ra một định nghĩa phân
chia tốt của các đỉnh các đỉnh của G tuân theo:
Cho một đỉnh u của G, nếu u thuộc về cả hai C' i và C' j thì (u, vi ) thuộc C i và (u,
v j ) thuộc C j. Khi K m đầy đủ, {vi, vk} là một cạnh trong K m, do đó, {(u, vi ) , (u, v j )} làmột cạnh trong tích Descartes G × K m. Điều này mâu thuẫn vớ i thực tế là S là
một tập độc lậ p .Vì vậy, các bộ C' 1 , C' 2, ..., C' m là cặ p phân chia.
Danh sách các phần tử của S sắ p xếp như sau:
o (U 11, v1 ), (u12, v1 ), ..., (u1i (1), v1 )
o (U 21, v2 ), (u22, v2 ), ..., (u2i(2), v2 )
o ...
o (U m1, vm ), (um2, vm ), ..., (umi(m) , vm )
Nếu một số ui j = uk l trong danh sách, thì, khi K m đầy đủ, {vi , vl } là một cạnh trong K m, do
đó, {(ui j, vi ), (uk l , vl )} là một cạnh trong tích Descartes G × K m. Điều này mâu thuẫn vớ i
thực tế S là một tập độc lậ p. Vì vậy, tất cả các ui j xuất hiện trong danh sách là riêng biệt
và từ | S | = n, có n, ui j , i phân biệt mọi đỉnh của G đượ c chứa trong một số lớ p tương
đương C' Do đó, chỉ định màu i đến đỉnh u của G nếu u thuộc về các lớp tương
đương C' i. Điều này tạo ra một tậ p m-màu của các đỉnh của G.
Bây giờ chúng ta định nghĩa hai thủ tục để thực hiện với tập độc lập trong tích Descartes
G × K m.
Thủ tục 1
Với một tập độc lập S của tích Descartes G × K m nếu S không có đỉnh có thể thêm, đầu
ra S. Ngược lại, cho mỗi đỉnh có thể thêm (u, v) của S, tìm số ρ (S ∪ {(u, v)}) của đỉnh
có thể thêm của tập độc lập S ∪ {(u, v)}. Cho (u, v)max biểu thị một đỉnh có thể thêm sao
cho ρ (S ∪ {(u, v)max }) là lớn nhất và chứa tập độc lập S ∪ {(u, v)max }. Lặp lại cho đếnkhi tập độc lập không có đỉnh có thể thêm vào.
Thủ tục 2
Cho một tập độc lập tối đa S của tích Descartes G × K m, nếu không có đỉnh (u1, v1 ) bên
ngoài S sao cho (u1, v1 ) có đúng một lân cận (u2, v2) trong S, đầu ra S. Ngược lại, tìm
thấy một đỉnh (u1, v1 ) ngoài S sao cho (u1, v1 ) có đúng một lân cận (u2, v2 ) trong S 1. Xác
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
38/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
31 HVTH: Nguyễ n H ồ Duy Trí
định S (u1, v1), (u2, v2) bằng cách thêm (u1, v1) vào S và bỏ (u2, v2 ) từ S. Thực hiện thủ tục
3.1 trên S (u1, v1 ), (u2, v2 ) và đầu ra các tập độc lập kết quả.
Giải thuật
Với đầu vào là một đơn đồ thị G với n đỉnh, tìm kiếm một tập m-màu của các đỉnhcủa G. Để {u1, u2, ..., un } biểu thị các đỉnh của G và để {v1, v2, ..., vm } biểu thị các đỉnh
của K m.. Chúng ta tạo các tập độc lập tối đa trong tích Descartes G × K m. Ở mỗi giai
đoạn, nếu tập độc lập thu được có kích thước n nhỏ nhất, thì đi đến phần III.
Phần I. Đối với i = 1, 2, ..., n và j = 1, 2, ..., n lần lượt
Khởi tạo tập độc lập S i, j = {(ui, v j )}.
Thực hiện thủ tục 1 trên S i, j.
Đối với r = 1, 2, ..., n thực hiện thủ tục 2 lặp lại r lần.
Kết quả là một tập độc lập tối đa S i, j.
Phần II. Với mỗi cặp tập độc lập tối đa S i, j , S k, l tìm thấy trong phần I
Khởi tạo S đặt độc lập i, j, k, l = S i, j ∩ S k, l.
Thực hiện thủ tục 1 trên S i, j, k, l.
Đối với r = 1, 2, ..., n thực hiện thủ tục 2 r lần lặp đi lặp lại.
Kết quả là một tập độc lập tối đa S i, j, k, l.
Phần III. Nếu một tập độc lập S với kích thước n đã được tìm thấy tại bất kỳ giai đoạn
của phần I hoặc phần II, đầu ra S như là một tập m-màu của các đỉnh của G theo Bổ
đề Đề các. Ngược lại, kết luận thuật toán không thể tìm thấy bất kỳ tương ứng m-
màu của các đỉnh của G.
4.2. Độ phứ c tạp
Tiếp theo để đánh giá độ phức tạ p của giải thuật, nhóm sẽ chỉ ra r ằng thuật toán k ết thúc
trong thời gian đa thức, trong khi tìm kiếm một tậ p m-màu cho một đồ thị vớ i n đỉnh, bằng cách xác định một đa thức của N = nm đó là một cận trên trên tổng số bướ c tính
toán thực hiện bở i thuật toán.Lưu ý rằng chúng ta xem xét
Kiểm tra xem một cặ p của các đỉnh đượ c k ết nối bở i một cạnh trong G, và
So sánh xem một số nguyên cho trướ c nhỏ hơn một số nguyên cho trước đượ c tính
toán các bước cơ bản.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
39/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
32 HVTH: Nguyễ n H ồ Duy Trí
Mệnh đề 1
Cho một đồ thị đơn giản G với n đỉnh và một tập độc lập S của G × K m, thủ tục 1 mất ít
nhất (nm)5 bước.
Chứng minh Kiểm tra việc một đỉnh riêng có thể thêm thì mất tối đa (nm)2 bước, từ đỉnh có ít hơn
các lân cận nm và cho mỗi lân cận phải mất ít hơn nm bước để kiểm tra xem nó là ở
ngoài tập độc lập. Đối với một tập độc lập riêng, việc tìm kiếm số ρ của các đỉnh có thể
thêm mất ít nhất (nm)3 = (nm)(nm)2 bước, khi nhiều nhất nm đỉnh bên ngoài tập độc lập
chúng ta phải kiểm tra xem nó có thể thêm hay không. Đối với một tập độc lập riêng,
việc tìm kiếm một đỉnh sao cho ρ là tối đa thì mất ít nhất (nm)4 = (nm)(nm)3 bước, khi
có hầu hết nm đỉnh bên ngoài. Thủ tục 1 kết thúc khi hầu hết nm đỉnh được thêm, do đó
phải mất một tổng của hầu hết (nm)5 = (nm)(nm)4 bước.
Mệnh đề 2
Cho một đơn đồ thị G với n đỉnh và một tập độc lập tối đa S của G × K m, thủ tục 2 mất
ít nhất (nm)5 + (nm)2 +1 bước.
Chứng minh
Để tìm một đỉnh (u1, v1 ) bên ngoài S mà có đúng một lân cận (u2, v2 ) bên trong S có tối
đa (nm)2 bước, khi có ít hơn nm đỉnh ngoài S và chúng ta phải tìm ra nếu ít nhất một
trong các lân cận bé hơn nm của bất kỳ đỉnh nào ở trong S. Nếu như một đỉnh (u1, v1 ) đã
được tìm thấy, phải mất một bước để hoán đổi (u1, v1 ) và (u2, v2 ). Sau đó, bằng mệnh
đề 1, phải mất ít nhất (nm)5 bước để thực hiện các thủ tục 1 vào tập độc lập kết quả. Như
vậy, thủ tục 2 mất ít nhất (nm) 2 + 1 + (nm) 5 bước.
Mệnh đề 3
Cho một đơn đồ thị G với n đỉnh và m màu, phần I của thuật toán có tốiđa (nm)7 + (nm)6 + (nm)4 + (nm)2 bước.
Chứng minh
Tại mỗi lượt, thủ tục 1 mất ít nhất (nm)5 bước bằng mệnh đề 1. Sau đó, thủ tục 2 được
thực hiện tối đa nm lần mà theo mệnh đề 2, mất tối đa nm((nm) 5 + (nm) 2 + 1)
= (nm) 6 + (nm)3 + nm bước .Vì vậy, tại mỗi lượt, tối đa (nm)5 + (nm)6 + (nm)3 +
nm bước được thực hiện. Có nm lượt cho i = 1, 2, ..., n, và j = 1, 2, ..., m, do đó, một
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
40/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
33 HVTH: Nguyễ n H ồ Duy Trí
phần I thực hiện tổng cộng tối đa là nm((nm)5 + (nm)6 + (nm)3 +
nm) = (nm)6 + (nm)7 + (nm)4 + (nm)2 bước.
Mệnh đề 4
Cho một đơn đồ thị G với n đỉnh và m màu , thuật toán mất ít hơn (nm)8
+2(nm)7 + (nm)6 + (nm)5 + (nm)4 + (nm)3 + (nm)2 bước để kết thúc.
Chứng minh
Có ít hơn (nm)2 cặ p riêng biệt của tập độc lậ p tối đa đượ c tìm thấy bở i phần I, mà
đượ c thực hiện lần lượt. Tương tự như các thực nghiệm về mệnh đề 3, phần II có ít hơn
(nm)2 ((nm)5 + (nm)6 + (nm)3 + nm) = (nm)7 + (nm)8 +(nm)5 + (nm)3. Do đó, phần I và
phần II cùng nhau mất ít hơn tổng cộng của
((nm 7 + (nm) 6 + (nm) 4 + (nm) 2 ) + ((nm) 8 +(nm) 7 + (nm) 5 + (nm) 3 ) = (nm) 8 +
2(nm)7 + (nm)6 + (nm)5 + (nm)4 + (nm)3 + (nm)2 bước để k ết thúc.
4.3. Mô hình hóa và áp dụng giải thuật tô màu vào bài toán lập lịch thi trườ ng
Đại học CNTT
Các bướ c xây d ự ng l ịch thi bằ ng giải thuật tô màu:
- Bướ c 1: Sử dụng giải thuật tô màu tham lam để tìm các màu cho bài toán
- Bướ c 2: Từ các màu tìm đượ c phân bố vào các ca và ngày hợ p lý, từ mỗi ca và
ngày lựa chọn phòng hợ p lý
Đầu vào và đầu ra của bài toán:
- Dữ liệu đầu vào: Danh sách các lớ p môn học, môn học, tình hình đăng kí học
phần của sinh viên, danh sách ngày thi, danh sách các môn muốn thi trướ c, các
cài đặt cho giải thuật.
-
Dữ liệu đầu ra: Lịch thi cho các lớ p môn học, các tệ p tin Excel Lịch thi chung,Lịch thi cho khoa, Lịch thi cho các lớ p môn học, Lịch thi cho sinh viên, các thống
kê về tình hình thi sinh viên.
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
41/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
34 HVTH: Nguyễ n H ồ Duy Trí
Sơ đồ 5.1. Mô hình các bướ c xử lý bài toán tô màu
8/19/2019 TÌM HIỂU GIẢI THUẬT TÔ MÀU ĐỒ THỊ ÁP DỤNG VÀO BÀI TOÁN TƯ VẤN LẬP LỊCH THI
42/61
Thuật toán và phương pháp giải quyết vấn đề GVHD: PGS. TS. Đỗ Văn Nhơn
35 HVTH: Nguyễ n H ồ Duy Trí
Sử dụng giải thuật tô màu để tìm các màu cho bài toán
Sơ đồ 5.2. Sơ đồ áp dụng giải thuật tô màu vào bài toán:
- Ràng buộc: Các