ĐẠI HỌ C Q U Ố C GIA HÀ NỘILẬP TRÌNH RÀNG BUỘC VÀ ỬNG DỤNG VÀO BÀI TOÁN LẬP LỊCH GIẢNG DẠY ĐẠI HỌC Mã sổ: QC.09.26 Chú nhiệm đề tài: ThS... • Các cóng trình khoa học: “ ứ n g dụng Hệ th
Trang 1ĐẠI HỌ C Q U Ố C GIA HÀ NỘI
LẬP TRÌNH RÀNG BUỘC VÀ ỬNG DỤNG VÀO BÀI TOÁN
LẬP LỊCH GIẢNG DẠY ĐẠI HỌC
Mã sổ: QC.09.26 Chú nhiệm đề tài: ThS Lê Hồng Hài
Ĩ R U N b I Â M I H Ũ N G u n IHƯ VIỆN
0 0 0 6 0 0 0 0 0 4 4
-Hà Nội -2010
Trang 2MỤC LỤC
GIẢI THÍCH CÁ C CHŨ VIÉT T Ắ T 3
DANH SÁCH NHỮNG NGƯỜI THAM G IA 4
TH Ự C H IỆN ĐẺ T À I 4
TÓM TẮ T NHỪ NG K ẾT QUÀ CHÍNH CỬA ĐỀ T À I 6
BÁO C Á O T Ó N G K Ế T 7
1 Đặt vấn đ ề 7
2 Lập trình ràng buộc và hệ thống lập trình ràng buộc C om et 7
2.1 Lập trinh ràng b u ộ c 7
2.2 Hệ thống lập trình ràng buộc C o m et 10
3 Áp dụng hệ lập trình ràng buộc Comet vào bài toán lập lịch giảng d ạ y 11
4 K ết lu ậ n 17
5 Đ ịa điềm , thời gian và phương pháp nghiên c ứ u 17
6 K ết quả nghiên c ứ u 17
6.1 Ket quả khoa h ọ c 17
6.2 Kết quả đào tạ o 17
7 Tài liệu tham khảo 19
PHỤ L Ụ C 21
Trang 3G I Ả I T H Í C H C Á C C H Ữ V I É T T Á T
Trang 4D A N H S Á C H N H Ữ N G N G Ư Ờ I T H A M G IA
T H ự C HIỆN ĐÈ TÀI
vi
Vai trò Đơn vị công tác
Trang 5D ANH MỤC HÌNH VẼ
H ình 1 M ột nhánh trong cây tìm kiếm cùa bài toán 4-Hậu 8
H inh 2 C ây tìm kiếm duyệt tổ hợp giá trị các b iế n 11
Hình 3 K iến trúc các m odule của chương tr ìn h 14
H ình 4 G iao diện cập nhật thời gian giảng dạy cùa giảng viên 15
Hình 5 G iao diện nhập thông tin về các phòng h ọ c 15
Hình 6 Ket q u ả xếp lịch giảng dạy cho một lớp học 16
Hinh 7 K ết quả xếp lịch cho m ột phòng h ọ c 16
5
Trang 6TÓM TÁT NHỬNG KÉT QUẢ CHÍN H CỦA ĐÈ TÀI
a Kết quá về khoa học (những đỏng góp của đề tài, các công trinh khoa học công bố):
• Đóng góp cliính cùa dề tài:
buộc Comet
• Các cóng trình khoa học:
“ ứ n g dụng Hệ thống lập trình ràng buộc Comet vào bài toán lập lịch giàng dạy đại học"
đã gửi cho Tạp chí Khoa học và Công nghệ - Đại học Quốc Gia Hà Nội tháng 10/2010
b Kết quả dào tạo (số lượng sinh viên, học viên cao học làm việc trong đề tài):
Nguyễn Thị Thùy: "ứ n g dụng Hệ thống lập trình ròng buộc Comet vào bài toán
tập lịch giáng dạy đại học", 20 ] 0.
c Kết quà nàng cao tiềm lực khoa học:
• Các thành viên tham gia hướng nghiên cứu cùa đề tài đã tích luỹ thêm được những kiến thức liên quan dcn phương pháp lập trình ràng buộc và hệ thống lập trình ràng buộc Comet
6
Trang 7BÁ O CÁ O T Ỏ N G K É T
1 Đ ặ t v ấ n đề
Lập trình ràng buộc (C P) đang nổi iên như một công nghệ giải quyết hiệu quà các bài toán tồ họp Lập trình ràng buộc m ô tả các ràng buộc cúa bài toán cần thỏa mãn thay vi xác định tuân tự các bước cần thực hiện như trong lập trình truyền thống Điều đó mang đến tính linh động trong việc diễn đạt và giải quyết hiệu quà các bài toán, đặc biệt trong các bài toán gồm nhiều ràng buộc
đa dạng, biến đổi
Xu hướng hiện nay, các ngành công nghiệp, các lĩnh vực hoạt động sản xuất ứng dụng công nghệ CP ngày càng tăng lên nhanh chóng, số lượng các công ty ứng dụng thành công công nghệ này tăng lên hàng năm , có thể kể tên một số còng ty, tồ chức điển hình: sân bay Quốc tế H ong Kong, British Airway, SA S, Sw issair, cảng Quốc tế Hong Kong, M ichelin, Dassault, Ericsson [17] Đoi với lĩnh vực hàng không, C P được ứng dụng để lập lịch các chuyến bay, hoạt động chuyền phát n h an h T ron g công nghiệp sản xuất, CP ứng dụng trong việc quản lý chuỗi cung ứng sàn xuất, lập lịch, phẩn bồ tài nguyên, nguồn lực Lĩnh vực sinh học: phân tích phân tử sinh học (chuồi D NA -protein) [16]
Lập lịch giảng d ạy là bài toán không mới, đã được giãi quyết theo n h iều phư ơng pháp khác nhau như giài thuật di truyền, tìm kiếm cục bộ như leo lúi, luyện thép, Tabu [1, 2, 3], Các phương pháp này được sử dụng rộng rãi và cho các kết quà tốt Tuy nhiên các phương pháp này thường viết cho các đơn vị cụ thể và không dỗ sửa đổi thích nghi (thay đổi dữ liệu hoặc yêu cầu trong bài toán có thể yêu cầu phải xem xét lại toàn bộ chương trinh) Lập trình ràng buộc cũng được áp dụng thành công trong bài toán lập lịch giàng dạy tại các trường đại học [10,11]
Nội dung đề tài sỗ tập trung vào tìm hiểu phương pháp lập trinh ràng buộc, và áp dụng hệ thống lập trình ràng buộc mới hiện nay là Comet vào bài toán ỉập lịch giảng dạy tại Trường Đại học Công nghệ Cấu trúc báo cáo như sau: Phần 2 sẽ mô tả về lập trinh ràng buộc và hệ thống lập trình ràng buộcComet Phần 3 sẽ mô tà áp dụng hệ thống Comet vào giải quyết bài toán lập lịch giảng dạy tại TrườngĐại học Công nghệ
7
Trang 8kiện bài toán Giải thuật này được m ô tà trực quan hơn trong một nhánh cùa cây tìm kiếm bài
toán 4-Q ueens trong H ình ì
H ình 1 M ột nhánh trong cây tìm kiếm của bài toán 4-Hậu
Trong lập trình truyền thống không hỗ trợ tự động thù tục quay lui, người lập trình phải tự viết chức năng thực hiện quay lui để tìm kiếm tất cả các lời giải thỏa mãn điều kiện bài toán
Ý tường cù a lập trình ràng buộc là giải quyêt bài toán bằng cách khai báo các ràng buộc (các yêu cẩu) cùa bài toán Lập trình ràng buộc không xác định tuần tự các bước cần thực hiện nhưtrong lập trình truyền thống Lập trình ràng buộc bắt đầu từ những năm 90 bằng việc tich họ p xừ
lý ràng buộc vào ngôn ngữ logic Hai m ô hình này chia sẽ nhiều đặc điểm quan trọng như biến logic và thù tục tự động quay lui N gày nay hầu hết các cài đặt Prolog phổ biến như Sisctus Prolog, E clipse đều tích hợp các thư viện cho lập trinh ràng buộc [4, 5] Ngoài tích hợp vào ngôn ngữ logic, lập trình ràng buộc sử dụng cách tiếp cận khác như tích họp với lập trình thủ tục, với các hệ thố ng lập trình ràng buộc phổ biến như Gecode [6], Comet [7]
Mô hình lập trình ràng buộc có thể m ô tả như sau: Lập trình ràng buộc = M ô hình ràng buộc + Tìm kiếm
V í dụ sau m inh họa một bài toán giải bằng phương pháp lập trình ràng buộc, chúng ta hãy xét m ộ t bài toán chơi chừ cồ điển
Phưcmg trình cùa bài toán:
Trang 9L ời giùi s ử dụng phương p h á p lập trình ràng buộc
s e n d m o r e (Digits)
Digits = [S, E, N, D, M, 0, R, Y) , % Khới cạo biến
D ig i t s : : [0 9] , % Xác định miền giá trị cù a biến
M #\ - 0,
a l l d i f f e r e n t ( D i g i t s ) , % giá trị của các biến là khác nhau
1000*s + 1 00*E + 10*N + D % ràng buộc theo biể u thức + 1000 *M + 100*0 + 10*R + E
l a b e l i n g ( D i g i t s ) % Tìm kiếm
Cấu trúc của chương trình sử dụng phương pháp lập trình ràng buộc gồm b a phần:
- Khai báo các biến và m iền giá trị cùa biến:
Các biến chính là các chữ cái tương ứng trong đề bài: s , E, N, D, M, o , R , Y Các biến này có miền giá trị thuộc vào đoạn [0 9],
- R àng buộc giữa các biến
M ỗi chữ cái có giá trị là m ột số nhất đinh, các biến phải có giá trị khác nhau, s , M là hai biến tương ứng với giá trị đứng đầu các số, vi vậy, s , M là phải là các chữ số khác 0 Bên cạnh đó, tất cả các biến phải thóa mãn biểu thúc mà đầu bài đã đưa ra SEN D + M O RE =
M ONEY
- T ìm kiếm: labeling(D igits) / / Chương trình sẽ duyệt theo từng biến Phần tìm kiếm dộc
lập với các ràng buộc giữa các biến
Trong phương pháp lập trình ràng buộc, các ràng buộc được khai bảo độc lập vói quá trình tìm kiếm C ác ràng buộc khai báo trong chương trinh sẽ được hệ thống kích cùng với tiến triển cùa quá trình tìm kiếm Với đặc điềm độc lập giữa khai báo ràng buộc và quá trình tìm kiếm , lập trình ràng buộc mang lại ưu điểm phát triển ứng dụng nhanh chóng, dễ dàng thêm bớt và sửa đôi các ràng buộc khi có yêu cầu D ễ dàng tích hợp và thừ nghiệm các chiến lược tìm kiếm khác nhau để tìm ra chiến lược tìm kiếm thích hợp, tối ưu
Phía sau mỗi ràng buộc là m ột thuật toán lọc tia không gian tìm kiếm Các ràng buộc hoạt
độ ng trên m iền giá trị củ a các biến để loại bỏ các giá trị không có khả năng tham gia ra vào giải pháp M ột số thuật toán xừ lý ràng buộc được sứ dụng quen thuộc như nhất quán nút (NP), nhât quán cung (A C ), và nhất quán đư òn g (PC) Các thuật toán xử lý ràng buộc được mô tà chi tiết trong [8, 9], N gay khi m ột miền trơ thành rỗng, có nghĩa không có khả năng có giải pháp với các giá trị gán hiện tại Q uá trình tìm kiếm quay lui về trạng thái trước đó và thừ m ột quyết định khác
9
Trang 10Mồi ràng buộc phải cài đặt hai chức năng chính là:
Kiêm tra sự nhất quán: xác định ràng có giải pháp đối với ràng buộc, nếu không ràng buộc sẽ nói với bộ xừ lý ràng buộc (constraint solver) quay lui
Lọc tia không gian m iền giá trị: loại bo các giá trị không nhất quán, ví dụ: các giá trị không tham gia vào bất cứ giải pháp nào
Phần tim kiếm có nhiệm vụ tạo dáng cùa cây tìm kiếm và cách thức thăm dò trên cây tìm kiếm Khi giải quyết m ột bài toán sừ dụng phương pháp lập trình ràng buộc, mô hình hóa các ràng buộc là thành phần chính để giải quyết thành công bài toán, tuy nhiên phần tìm kiếm cùng đóng vai trò quan trọng trong việc nhanh chóng hướng tới và đưa ra các giải pháp
2.2 H ệ th ố n g lập t r ì n h r à n g b u ộ c Com et
Com et là công cụ được trao tặng giải thưởng bời khá năng giải quyết hiệu quả các bài toán tổ hợp tôi ưu trong các lĩnh vực như phân phối tài nguyên và lập lịch Com et là m ột hệ thống tối ưu hóa lai, kết hợp lập trinh ràng buộc và tìm kiếm cục bộ dựa trên ràng buộc (CBLS), lập trình tuyến tính (LP), nguyên (IP) [13] Com et cùng hỗ trợ lập trình hướng đối tượng, tự động thu dọn rác C om et đư a vào các đặc tính như cung cấp cấu trúc điều khiển tìm kiếm , cho phép tích hợp các chiến lược tim kiếm khác nhau dễ dàng [14], chuyển một chương trình xử lý tuần tự sang xừ
lý song son g m ột cách trong suốt, dễ dàng [15]
M ô hình chung chương trình ràng buộc trong Comet như sau:
s o l v e r < c p >
{
/ / K h a i b á o c á c r à n g b u ô c } u s i n g
C om et cũng cho phép đưa vào các ràng buộc số học phức tạp và các biêu thức logic, ví dụ:
c p p o s t ( x > y => a < b )
ràng buộc trên đàm bao ràng nếu giá trị biến X lớn hơn giá trị biến y thi giá trị biến a phài nhỏ hơn g iá trị biến b
Bèn c ạn h đó, C om et cũng cung cấp nhiều ràng buộc có sẵn như:
A l l d i f f e r e n t : ràng buộc các biến phái có giá trị khác nhau
Trang 11B i n a r y K n a p s a c k : ràng buộc về tổng trọni’ lượng của các vật.
C a r d i n a l i t y : ràng buộc số lần xuất hiện của mồi giá trị
Tìm kiếm trong lập trình ràng buộc khám phá cây tìm kiếm sử dụng thuật toán quay lui Thuật toán ngẩm định là tìm kiếm theo độ sâu Ví dụ tiếp theo sẽ thăm dò các tồ hụp của ba biến
thề hiện cây tìm kiếm được tạo ra trong ví dụ trên
H ình 2 C ây tim kiếm duyệt tổ họp giá trị các biến
Bên cạnh đó C om et cho phép dễ dàng tích hợp các chiến lược tim kiếm khác nhau như BFS, LDS [14]!
3 A p d ụ n g hệ lậ p t r ì n h r à n g buộc Com et vào bài to án lập lịch giảng d ạ y
M ột thực tế hiện nay tại V iệt Nam, việc xếp lịch giảng dạy phần lớn là đều được thực hiện thù công bằng tay Phương pháp này vừa tốn nhiều chi phi, thời gian, công sức mà hiệu quà lại không cao N hu cầu thực tiễn hiện nay là tin học hóa bài toán lập lịch giảng dạy với tính năng xêp lịch chính xác, hiệu quả, giảm bớt thời gian, chi phí công sức của con người Tính phức tạp cũa bài toán lập lịch giảng dạy với các quy định, ràng buộc m ôn học chặt chẽ, các ràng buộc về
11
Trang 12lịch dạy của giáo viên, lớp học hết sức da dạng Chính vì vậy, bài toán lập lịch giàng dạy là
m ột bài toán khó, có ít phần m ềm lập lịch giảng dạy được viết và sừ dụng tại Việt Nam
Xuất phát từ nhu cầu thực tế, việc xây dựng một chương trình sắp xếp lịch giảng dạy là giải pháp cấp bách và cần thiết Trong phạm vi nghiên cứu của đề tài, bài toán xếp lịch giàng dạy tại T rường Đại học C ông nghệ được xcin xét Lập lịch giảng dạy tại trường Đại học Công
N ghệ tại thời điềm tiến hành nghiên cứu được sắp xếp theo mô hình học theo niên chế, lịch học được xếp theo tuần Dữ liệu sừ dụng trong chương trình được cung cấp bởi Phòng Đạo tạo nhà
T rường cho kỳ học 2, năm học 2007-2008, với 20 lớp học, số phòng học là 26, hơn 100 giảng viên tham gia giảng dạy và 210 bài giảng cần xếp lịch Các yêu cầu trong bài toán xếp lịch cần thỏa măn nh u sau:
- Các bài giảng được xếp lịch từ thứ hai đến thứ sáu Trong một buổi sáng hoặc buổi chiều,
số tiết dạy cho m ột lớp không vượt quá 6
- Đổi với một lớp, các bài giảng cùa lớp không được xếp chồng lẽn nhau Cùng với đó, các bài giảng cùng chù đề thì phải xếp vào các ngày khác nhau, ví dụ m ôn Tiếng Anh được chia làm hai bài giàng, thì hai bài giáng đó cần được xếp vào hai ngày khác nhau
- Đổi với giảng viên, các bài giảng của một giảng viên không được xếp chồng lên nhau
Đ ồng thời có nhừng ràng buộc về thời gian giàng dạy, ví dụ không xếp bài giảng cùa giảng viên vào những ngày giảng viên đó bận, hoặc giảng viên đó do điều kiện đi lại xa, không thích hợp với giảng dạy vào tiết đầu trong ngày
- Đối với các phòng học, không đuợc xếp hai bài giảng dùng chung phòng chồng lên nhau.Phần tiếp theo của báo cáo sẽ đề cập đến mô hình hóa các ràng buộc của bài toán sử dụng hệ thống lập trình ràng buộc Com et
T rư ớc hết cần xác định các biến tham gia vào cấc ràng buộc Với mồi bài giảng hệ thống cần tìm ra ngày học, tiết bẳt đầu và phòng học cho bài giáng đó Các biến d a y h o u r , r o o m chi ngày, tiết học bắt đầu và phòng học cùa các bài giáng cần xếp
Với lịch giảng dạy từ bắt đầu từ thứ 2 đến thứ 6, biến d a y có miền giá trị: 2 6
Các bài giảng được xếp vào buổi sáng hay buổi chiều, số tiết học trong mỗi buổi sáng hoặc chiều nhiều nhất là 6, mồi bài giảng kéo dài ít nhất 2 tiết do đó biến h o u r có miền giá trị: 1 4
Đ ể tiện so sánh thời điềm bẳt đầu cùa các bài giảng trên trục thời gian trong tuần, chương trình đư a vào biến s t a r t chi thời điềm bắt đầu của bài giảng trên trục thời gian Liên kết giữa biên s t a r t và các biến khác được duy trì bời ràng b u ộ c C ,:
Trang 13C j : Ràng buộc về bài giảng cùa một lớp không được chồng lên nhau Với i vả j hai bài giảng bát kỳ của m ột lóp, bài giàng i cần kết thúc trước khi bài giảng j bắt đầu, hoặc ngược lại bài giảng j cần kết thúc trước khi bài giảng i bắt đầu Yêu cầu này được d uy tri bời ràng buộc:
c p p o s t ( ( ( s t a r t [ i ] + d u r a t i o n [ i ] < = s t a r t [ j ] ) I I ( s t a r t [ j ] + d u r a t i o n [
j ] < = s t a r t [ i ] ) ) )
Trong đó d u r a t i o n [ i ], d u r a t i o n [ j ] là số tiết học tương ứng của bài giảng i và bài giàng
j
-C4 : R àng buộc về các bài giăng cùng môn cứa một lớp thì xếp vào hai ngày khác nhau Với
i và j hai bài giảng cùng m ôn cùa một lóp:
d a y [ i ] và d a y [ j ] là ngày bắt đầu của hai bài giảng cùng m ôn của m ột lóp
C 5: R àng buộc về ngày nghi cùa giảng viên:
c p p o s t ( d a y [ i ] ! = d a y o f f )
Với d a y o f f là ngày nghi của giáng viên
C5: R àng buộc về giảng viên nghỉ tiết đầu:
T ro n g đó r o o m [ i ] và r o o m [ j ] là phòng học của bài giàng i và j
C hiến lưọ-c tìm kiếm
Mô hình hóa các ràng buộc là thành phần chính để giải quyết thành công bài toán, phần tìm kiếm cũng đ ón g vai trò quan trọng trong việc nhanh chóng hướng tới và đưa ra giải pháp Tại
m ồi nút c ù a cây tìm kiếm , quá trình tìm kiếm tuân theo hai bước sau:
1 - C họn biến tiếp theo để khời tạo
2 T h ử các giá trị khác nhau cùa biến được chọn
Thực tê việc chọn biến tiếp theo đê khới lạo và chọn giá trị của biến để gán có thể ành hường đáng kể đến kích cỡ của cây tìm kiếm , do đó ảnh hường đến thời gian tìm kiếm
13
Trang 14Q uá trình thư nghiệm được tiến hành trcn mảy tinh với bộ xừ iý Core 2 Duo [-4500 2*2.2GHz Trong thừ nghiệm thứ nhất cùa chúng tôi, nếu sử dụng phương pháp lựa chọn biến đê gán giá trị theo trình tự tĩnh, tuần tự:
l a b e l ( s t a r t )
l a b e l ( d a y )
l a b e l ( h o u r )
l a b e l ( r o o m )
Chiến lược tìm kiếm này không trà lại kết quà sau nhiều giờ tính toán
Trong thừ nghiệm tiếp theo cùa chúng tôi, các biến được chọn đề gán giá trị theo trình tự
động N guyên tắc F irst-fail được sừ dụng để lựa chọn biến để gán giá trị Theo nguyên tắc First-
fa i l chọn đầu tiên các biến chưa được gán giá trị có khá năng tạo cây con nhò nhất, do đó giảm
thời gian tim kiếm trên cây nếu lựa chọn biền eán là sai Theo nguyên tắc này các biến có kích thước miền giá trị nhò nhất sẽ được chọn
l a b e l F F ( s t a r t )
l a b e l F F ( d a y )
l a b e l F F ( h o u r )
l a b e l F F ( r o o m )
Kết quà khi sừ dụ ng chiến lược tìm kiếm First Fail, thời gian tính toán trả lại kết quả trong
vài giây Do đó có thể k ết luận việc chọn biến để gán theo trình tự động giúp quá trình tìm kiếm đưa ra kết quà nhanh chóng hơn so với chọn biến theo trình tự tĩnh
Kiến trúc cùa ứng dụng gồm 2 module: module hiển thị và module xừ lý M odule hiển thị giao diện viết bàng ngôn ngữ lập trình C# sẽ truyền dữ liệu đầu vào vào m odule xừ lý viết băng ngôn ngừ ràng buộc Com et Sau khi xử lý, module xừ lý sẽ trả lại kết quà cho module hiển thị
giao diện H ình 3 m ô tả kiến trúc của ứng dụng.
H ình 3 K iến trúc các module của chương trinh
Phân tiếp theo cua báo cáo m ô tả hình ảnh một so giao diện cùa chương trình ứng dụng
Hình 4 là giao diện cùa chức năng này đề quàn lý thông tin về giàng viên, đồng thời quàn lý lịch
nghi cù a từng giáng viên (ngày nghỉ, buổi nghỉ hay nghi tiết đầu) bàng cách click chuột vào checkbox tương ứng
Trang 154 Giao diện cặp nhặt thời gian giảng dạy cùa giàng viên
H ình 5 mô tả chức năng về quản lý phòng học Thông tin về phòng học bao gồm tên
phòng, số chỗ ngồi vào loại phòng (phòng thực hành hay phòng lý thuyết) C ác thông tin này được sừ d ụn g khi xếp các buổi dạy vào các phòng học
Lýltiuya lýthuy*
H ình 5 G iao diện nhập thông tin về các phòng học
H ình 6 là giao diện xếp lịch học cho một lớp Panel phía trên cùa giao diện dung để nhập thông
tin về các m òn học cần xếp lịch cùa lóp Các thông tin liên quan đến mỗi m ôn học cần xếp bao
15
Trang 16gồm: Tên môn học, ten giáo viên giảng dạv, mòn học được dạy vào buổi sáng hay buổi chiều, số tiết học cùa môn học Panel phía dưới cùa giao diện hiền thị kết quá xếp lịch giảng dạy cho lớp học sau khi đã được xừ lý bời m odule Comet
ố Kết quà xểp lịch giáng dạy cho một lớp học
Hình 7 tương tự như H ình 6 thể hiện kết quả xếp lịch cho các phòng học sau khi đã được xử lý
bời module Comet
12 (u o K SỬ DAog N ợ u y ío T M » HoaCNTT QH-2005-I/C C N tu 3 T ~ 4
1
Hình 7 Két quà xép lịch cho một phòng học
Trang 174 K ế t lu ậ n
V iệc áp dụng phương pháp lập trình ràng buộc vào các bài toán tồ hợp giúp xây dựng các giải pháp cho bài toán m ột cách nhanh chóng và linh dộng Trong đề tài này chúng tôi đã áp dụng hệ thống lập trình ràng buộc C om et vào bài toán lập lịch giáng dạy tại Trường Đại học Công nghệ
và cho kết quà tốt H ướng nghiên cứu tiếp sẽ phát triển hệ thống cho m ô hình giảng dạy dựa theo tin chi, trong đó quan tâm đến việc đăng ký khóa học cùa sinh viên M ô hình ràng buộc bao gồm các ràng buộc mềm, có tính toán đến trọng số của các ràng buộc
5 Đ ịa đ iể m , th ờ i g ia n v à p h ư ơ n g ph áp nghiên cứu
Đe tài được tiến hành tại b ộ m ôn Các hệ thống thông tin, thuộc khoa CNTT, trường
D V D -R W / G igabit N IC / lx PCI Ex - dùng làm thực nghiệm M áy trạm này được trang bị
theo dự án Tăng cường n ăn g lực nghiên cứu cho Phòng th í nghiệm chuyên đề Các Hệ
thống Thông tin Tích hợp và Công nghệ Phần mềm năm 2008-2009.
P hương pháp nghiên cứu: nghiên cứu lý thuyết kết hợp thực nghiệm
6 K ế t q u ả n g h iê n c ứ u
6.1 K e t q u ả k h o a học
T rong khuôn khồ thực hiện đề tài này, nhóm thực hiện đã thu được những kết quả chínhsau:
buộc Tìm hiểu các hệ thống lập trinh ràng buộc và cụ thể là hệ thống lập trình ràng buộc Com et
- N ghiên cứu bài toán lập lịch giảng đạy đại học tại Trường Đại học Công nghệ và áp dụng
hệ thống lập trình ràng buộc Com et vào giải quyết bài toán Ket quà đã xây dựng được ứng dụ ng giải quyết tốt bài toán
N hững k ết quà khoa học thu đư ợc trong đề tài này được thể hiện qua hai báo cáo khoa học đã được tiến hành:
a " ứ n g dụng H ệ thống lập trình ràng buộc Comet vào bài toán lập lịch giảng dạy đ ại
h ọ c " đã gừi cho Tạp chí K hoa học và Công nghệ - Đại học Quốc G ia H à Nội tháng 10/2010.
Trang 18a ứ n g dụng Hệ thống lập trình rùng buộc Comet vào bài toán lập lịch giàng dạy
đại học
Luận văn này được học viên Nguyền Thị Thùy hoàn thành trong tháng 06/2010 với những nội dung chinh sau:
CH Ư ƠN G 1: MỞ Đ À U 7
1.1 Lập trình ràng buộc vào giải quyết các vấ dề tối ưu hóa tồ h ợ p 7
1 2 C ấ u t r ú c k h ó a l u ậ n 10
CH Ư ƠN G 2: LẬP TRÌNH RÀNG B U Ộ C 11
2.1 Lập trình ràng buộc là g i ? 11
2.2 N guồn gốc lập trình ràng b u ộ c 11
2.3 Mô hình lập trình ràng b u ộ c 12
2.4 ử n g dụng cùa ngôn ngữ lập trình ràng buộc (C P ) 14
CHƯ ƠNG 3: NGÔN N G Ữ LẬP TRÌN H C O M E T 16
3.1 C O M ET là g ì? 16
3.2 Lập trình C o m e t 17
3.2.1 Mô hình lập trình C om et 17
3.2.2 Ví d ụ 20
3.3 Ưu điểm cùa Com et 23
CH Ư ƠN G 4: ỬNG DỤNG CO M ET VÀO BÀI TOÁN LẬP THỜI KHÓA B IÊ U 26
4.1 Đ ặt vấn đề xây dựng bài to án 26
4.2 Giải quyết bài to á n 28
4.3 Thực n g h iệ m 30
4.3.1 Các chức năng quản lý giảng viên, môn học, phòng học, k h o a 31
4.3.2 Chức năng phân công giảng d ạ y 36
4.3.3 Chức năng xếp Thời khóa b iể u 37
4.3.4 Chức năng xem thời khóa biểu theo tên lóp, tên giảng viên, tên phòng học ..7. 38
CHƯ ƠNG 5: K ÉT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41
TÀI LIỆU TH A M K H À O 42
Trang 197 T à i liệu t h a m k h ả o
[1] H ai, L H., Tam , V H and Anh, D T., 2005, Course Tim etabling o f an Entire University
w ith Local Search M ethod, Proceedings o f International School on Computational Sciences
a n d Engineering: Theory a n d Applications (COSCI2005), March 2-4, 2004, Ho Chi Minh
C ity U niversity o f T echnology, pp 19-28N
[2] N guyen Quoc Viet Hung, T a Q uang Binh, Duong Tuan Anh, 2005, A M emetic Algorithm
for Tim etabling, Proceedings o f 3n d hit Con/ RIVF'05 Research Inform atics Vietnam-
F rancophony, Feb 2-5, Can Tho, Vietnam, pp 289 - 2946.
[3] D Ross and D C om e, Com paring genctic algorithms, simulated annealing and stochastic
hillclim bing on tim etabling problem s, Proceeding o f the AISB Workshop on Evolu ionary
C om puting, 1995.
[4] Sicstus Prolog, http://w w w sics.se/
[5] Eclipse, hllp://eclipseclp.ortì/
[6] G ecode, http:/Avww uecode.org/
[7] C om et, http://w w w com et-online.org
[8] D echter, R ina (2003) Const r a i n Í process in s Morgan Kaufmann, ISBN 1-55860-890-7.
ISTE/W iley ISBN 978-1-84821-106-3
[10] H ana Rudová and K eith M urray University course timetabling with soft constraints.//!
E d m u n d Burke and P atrick D e Causmaecker, editors, Practice A n d Theory o f
A utom ated Timetabling, Selected Revised Papers, Springer-Verlag LNCS 2740, 2003,
pages 310-328
[11] Li-Y en Shue, Pei-C hun Lin, Chia-Y in Tsai Constraint Programm ing A pproach for a
U niversity T im etabling D ecision Support System with Hard and Soft Constraints,
O pportunities and Challenges f o r Next-Generation Applied Intelligence, Studies in
C om putational Intelligence, 2009, V olum e 214/2009,93-98
[12] P hilippe Baptiste, Philippe Laborie, Claude Le Pape, Wim Nuijten Constraint-based
Scheduling and Planning H an db oo k o f Constraint program m ing, pages 761-799, Elsevier,
Program m ing, IN F O R M S Journ al on Computing Volume 21, pages: 363-382, 2009.
19
Trang 20[16] Martin Mann, Sebastian Will, and R olf Backofen CPSP-tooIs - Exact and Com plete Algorithms for High-throughput 3D Lattice Protein Studies In BMC Bioinfom iatics, 9,
230, 2008
[ 17] Roman Barták, Constraint propagation and backtracking-based search, Charles
University, Faculty o f M athem atics and Plysics, Department o f Theoretical Com puter Science, February, 2005