Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
6,87 MB
Nội dung
ĐẠI HỌC QU Ố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 DAI HOC QUỐC GIA H À NỘI_ Ĩ R U N b I  M I H Ũ N G u n IHƯ VIỆN 000 60000044- Hà Nội -2010 MỤC LỤC GIẢI THÍCH CÁC CHŨ VIÉT T Ắ T DANH SÁCH NHỮNG NGƯỜI THAM G IA THỰC HIỆN ĐẺ T À I TĨM TẮT NHỪNG KẾT Q CHÍNH CỬA ĐỀ T À I BÁO C Á O T Ó N G K Ế T Đặt vấn đ ề .7 Lập trình ràng buộc hệ thống lập trình ràng buộc C om et 2.1 Lập trinh ràng b u ộ c 2.2 Hệ thống lập trình ràng buộc C om et 10 Áp dụng hệ lập trình ràng buộc Comet vào tốn lập lịch giảng d y 11 Kết lu ậ n 17 Địa điềm, thời gian phương pháp nghiên c ứ u .17 Kết nghiên c ứ u 17 6.1 Ket khoa h ọ c 17 6.2 Kết đào tạ o .17 Tài liệu tham khảo 19 PHỤ L Ụ C 21 G IẢ I T H Í C H C Á C C H Ữ V IÉ T TÁ T ACM CP CSP CLP CHIP CBLS DFS IP LDS LP NP AC PC FF A sso ciatio n fo r C o m p u tin g A ch in ery Constraint Program m ing C onstraint Satisfaction Problem Constraint Logic Program m ing Constraint H andling in Prolog C onstraint Based Local Search Depth First Search Integer Program m ing Lim itted D iscrepancy Search Linear Program m ing N ode Consistency Arc Consistency Path Consistency First Fail DANH S Á C H NHỮ NG NGƯỜI T H A M GIA T H ự C HIỆN ĐÈ TÀI STT H ọ T ên H ọc hàm, Học vi Vai trò Đơn vị cơng tác Lê Hồng Hải ThS Chù trì Khoa CNTT, ĐHCN Nguyễn N gọc Hóa TS Cộng tác viên K hoa CNTT, ĐHCN Nguyễn Hà Nam TS Cộng tác viên K hoa CNTT, ĐHCN D Phương Hạnh ThS Cộng tác viên Khoa CNTT, ĐHCN Nguyễn Thu Trang ThS Cộng tác viên Khoa CNTT, ĐHCN Đặng Thu Hiền ThS Thư ký Khoa CNTT, ĐHCN Vũ Tiến Thành HVCV Cộng tác viên Khoa CNTT, ĐHCN Trần Nam K hánh HVCH Cộng tác viên Khoa CNTT, ĐHCN DANH MỤC HÌNH VẼ H ình M ột nhánh tìm kiếm cùa toán 4-Hậu H inh C ây tìm kiếm duyệt tổ hợp giá trị b iế n 11 Hình Kiến trúc m odule chương trìn h 14 Hình G iao diện cập nhật thời gian giảng dạy cùa giảng viên 15 Hình G iao diện nhập thơng tin phịng h ọ c 15 Hình Ket q u ả xếp lịch giảng dạy cho lớp học 16 Hinh Kết xếp lịch cho m ột phòng h ọ c 16 TĨM TÁT NHỬNG KÉT QUẢ CHÍNH CỦA ĐÈ TÀI T ên đ ề tài: LẬ P TRÌNH R À N G BU Ộ C VÀ Ủ NG D Ụ N G VÀO B À I TO ÁN LẬ P L ỊC H GIANG DẠ Y Đ Ạ I H Ọ C Mã số: Q C 09.26 Chủ trì đề tài: Lê Hồng Hải Những kết chính: a Kết khoa học (những đỏng góp đề tài, cơng trinh khoa học cơng bố): • Đóng góp cliính cùa dề tài: - Nghiên cứu tồng quan phương pháp lập trinh ràng buộc - Tìm hiểu, đánh giá hệ thống iập trình ràng buộc - Xây dựng ứng dụng lập lịch giăng dạy đại học sứ dụng hệ thống lập trình ràng 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 toán lập lịch giàng dạy đại học" gửi cho Tạp chí Khoa học Cơng nghệ - Đại học Quốc Gia Hà Nội tháng 10/2010 b Kết tạo (số lượng sinh viên, học viên cao học làm việc đề tài): • c I khóa luận đại học : Nguyễn Thị Thùy: "ứ n g dụng Hệ thống lập trình rịng buộc Comet vào tốn tập lịch giáng dạy đại học", 20 ] 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 kiến thức liên quan dcn phương pháp lập trình ràng buộc hệ thống lập trình ràng buộc Comet BÁO CÁO T Ỏ N G K ÉT Đ ặ t v ấn đề Lập trình ràng buộc (C P) iên cơng nghệ giải hiệu q tốn tồ họp Lập trình ràng buộc m tả ràng buộc cúa toán cần thỏa mãn thay vi xác định tuân tự bước cần thực lập trình truyền thống Điều mang đến tính linh động việc diễn đạt giải hiệu quà toán, đặc biệt toán gồm nhiều ràng buộc đa dạng, biến đổi Xu hướng nay, ngành công nghiệp, lĩnh vực hoạt động sản xuất ứng dụng công nghệ CP ngày tăng lên nhanh chóng, số lượng cơng ty ứng dụng thành công công nghệ tăng lên hàng năm , kể tên số cịng ty, tồ chức điển hình: sân bay Quốc tế Hong Kong, British Airway, SAS, Swissair, 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 ứng dụng để lập lịch chuyến bay, hoạt động chuyền phát nhanh T rong công nghiệp sản xuất, CP ứng dụng 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 DNA-protein) [16] Lập lịch giảng d ạy tốn khơng mới, giãi theo nhiều phương pháp khác giài thuật di truyền, tìm kiếm cục leo lúi, luyện thép, Tabu [1, 2, 3], Các phương pháp sử dụng rộng rãi cho kết quà tốt Tuy nhiên phương pháp thường viết cho đơn vị cụ thể khơng dỗ sửa đổi thích nghi (thay đổi liệu u cầu tốn yêu cầu phải xem xét lại toàn chương trinh) Lập trình ràng buộc áp dụng thành cơng toán lập lịch giàng dạy 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, áp dụng hệ thống lập trình ràng buộc Comet vào toán ỉập lịch giảng dạy Trường Đại học Công nghệ Cấu trúc báo cáo sau: Phần mô tả lập trinh ràng buộc hệ thống lậptrình ràng buộc Comet Phần mô tà áp dụng hệ thống Comet vào giải toán lập lịch giảng dạy tạiTrường Đại học Cơng nghệ L ậ p t r ì n h r n g buộc hệ th ố n g lập trìn h rà n g 2.1 buộc C om et L ậ p tr ìn h r n g buộc Trước vào phương pháp lập trình ràng buộc, đề cập tới phương pháp lập trình trun thống qua ví dụ minh họa Ví dụ: xem xét tốn 4-queens (4 hậu): vêu cầu đặt quân hậu bàn cờ vua kích thước 4*4 cho khơng có qn hậu có thề “ăn" quân hậu khác Ta xét tốn m trường lập trinh truyền thống (bủng ngơn ngữ lập trình C/C++ Java ) với giải thuật vét cạn, quay lui (backtracking) Tư tướng bàn cùa giải thuật vét cạn, quay lui ta thừ đặt quân cờ vào m ột ô bàn cơ, sau đặt quân vào ô cờ khác T rong trường hợp không thỏa m ãn điều kiện ràng buộc cùa tốn (K hơng có hai qn cờ “ăn” dược nhau) quay lui trớ lại bước trước đặt lại quân cờ cho thỏa mãn điều kiện tốn Giải thuật m tà trực quan nhánh cùa tìm kiếm tốn 4-Q ueens H ình ì H ình M ột nhánh tìm kiếm tố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 thực quay lui để tìm kiếm tất lời giải thỏa mãn điều kiện tốn Ý tường cùa lập trình ràng buộc giải quyêt toán cách khai báo ràng buộc (các yêu cẩu) cùa toán Lập trình ràng buộc khơng xácđịnh bước cần thực lập trình truyền thống Lập trình ràng buộc bắtđầu từ năm 90 việc tich họp xừ lý ràng buộc vào ngôn ngữ logic Hai m hình chia nhiều đặc điểm quan trọng biến logic thù tục tự động quay lui N gày hầu hết cài đặt Prolog phổ biến Sisctus Prolog, Eclipse tích hợp 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 tích họp với lập trình thủ tục, với hệ thống lập trình ràng buộc phổ biến Gecode [6], Comet [7] Mô hình lập trình ràng buộc m tả sau: Lập trình ràng buộc = M hình ràng buộc + Tìm kiếm V í dụ sau minh họa tốn giải phương pháp lập trình ràng buộc, xét m ột toán chơi chừ cồ điển Phưcmg trình cùa tốn: s + = M END M O R E N E Y M ồi ký tự đại diện cho m ột sổ khác sau c ầ n tìm giá trị số tương ứng cho ký tự thịa m ãn phương trình Lờ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 Digits % Xác định miền giá trị cù a biến s #\- : : [0 9] , 0, % Constraint: s, M phải khác M # \ - 0, alldifferent(Digits), 1000*s % giá trị biến khác + 00*E + 10*N + D % ràng buộc theo biểu thức + 1000 *M + 100*0 + 10*R + E #= 10000 *M + 1000*0 + 00*N + 10*E + Y, labeling(Digits) % Tìm kiếm Cấu trúc 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 biến m iền giá trị cùa biến: Các biến chữ tương ứng đề bài: s , E, N, D, M, o , R, Y Các biến có miền giá trị thuộc vào đoạn [0 9], - Ràng buộc biến M ỗi chữ có giá trị m ột số đinh, biến phải có giá trị khác nhau, s , M hai biến tương ứng với giá trị đứng đầu số, vi vậy, s , M phải chữ số khác Bên cạnh đó, tất biến phải thóa mãn biểu thúc mà đầu đưa SEND + M ORE = M ONEY - T ìm kiếm: labeling(D igits) / / Chương trình duyệt theo biến Phần tìm kiếm dộc lập với ràng buộc biến Trong phương pháp lập trình ràng buộc, ràng buộc khai bảo độc lập vói q trình tìm kiếm Các ràng buộc khai báo chương trinh hệ thống kích với tiến triển cùa trình tìm kiếm Với đặc điềm độc lập khai báo ràng buộc 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 sửa đơi ràng buộc có u cầu Dễ dàng tích hợp thừ nghiệm chiến lược tìm kiếm khác để tìm chiến lược tìm kiếm thích hợp, tối ưu Phía sau ràng buộc m ột thuật tốn lọc tia khơng gian tìm kiếm Các ràng buộc hoạt động m iền giá trị biến để loại bỏ giá trị khơng có khả tham gia vào giải pháp M ột số thuật toán xừ lý ràng buộc sứ dụng quen thuộc quán nút (NP), nhât quán cung (A C), quán đưòng (PC) Các thuật tốn xử lý ràng buộc mơ tà chi tiết [8, 9], Ngay m ột miền trơ thành rỗng, có nghĩa khơng có khả có giải pháp với giá trị gán Q uá trình tìm kiếm quay lui trạng thái trước thừ m ột định khác Mồi ràng buộc phải cài đặt hai chức là: Kiêm tra quán: xác định ràng có giải pháp ràng buộc, khơng ràng buộc nói với xừ lý ràng buộc (constraint solver) quay lui Lọc tia không gian m iền giá trị: loại bo giá trị khơng qn, ví dụ: giá trị không tham gia vào giải pháp Phần tim kiếm có nhiệm vụ tạo dáng cùa tìm kiếm cách thức thăm dị tìm kiếm Khi giải m ột toán sừ dụng phương pháp lập trình ràng buộc, mơ hình hóa ràng buộc thành phần để giải thành cơng tốn, nhiên phần tìm kiếm đóng vai trị quan trọng việc nhanh chóng hướng tới đưa giải pháp 2.2 H ệ th ố n g lập t r ì n h r n g buộc Comet Com et công cụ trao tặng giải thưởng bời giải hiệu tốn tổ hợp tơi ưu lĩnh vực phân phối tài nguyên lập lịch Comet m ột hệ thống tối ưu hóa lai, kết hợp lập trinh ràng buộc tìm kiếm cục dựa ràng buộc (CBLS), lập trình tuyến tính (LP), nguyên (IP) [13] Comet hỗ trợ lập trình hướng đối tượng, tự động thu dọn rác Com et đưa vào đặc tính cung cấp cấu trúc điều khiển tìm kiếm, cho phép tích hợp chiến lược tim kiếm khác dễ dàng [14], chuyển chương trình xử lý sang xừ lý song song m ột cách suốt, dễ dàng [15] M hình chung chương trình ràng buộc Comet sau: s o l v e r { // K hai b áo c c rà n g buôc } u s in g { // T ìm k iế m } Các ràng buộc đưa vào khối G o lv e r < c p > Ví dụ c p p o s t ( x ! = y ) , đưa vào ràng buộc biến X biến y phải có giá trị khác Trong trình gán giá trị, biến X gán g i tr ị 1, c c r n g b u ộ c liê n q u a n đ ế n b i ế n X s ẽ đ ợ c k íc h h o t, t r o n g v í d ụ t r ê n g i tr ị s ẽ đ ợ c loại khỏi m iền giá trị biến y C om et cho phép đưa vào ràng buộc số học phức tạp biêu thức logic, ví dụ: c p p o s t(x > y => a < b ) ràng buộc đàm bao ràng giá trị biến X lớn giá trị biến y thi giá trị biến a phài nhỏ giá trị biến b Bèn cạnh đó, Com et 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 biến phái có giá trị khác 10 L.H H ải ìtnk t Tạp chi Khoa học Đ H Q G H N , Khoa học Tự Nhiên Công nghệ lập (năm ) sô'trang Trước hết cần xác định biến tham gia vào ràng buộc Với giảng hệ thống cần tìm ngày học, tiết bắt đầu phòng học Ct : Ráng buộc giảng cù n g môn cùa m ộ t lớ p x ế p v o h a i n g y k h c n h au V ới i j h g iả n g c ù n g m ô n c ủ a m ộ t lớp: c h o g iả n g đ ó C c b iế n d a y h o u r , ro o m c h i cp.post(day[i] ngày, tiết học bất đầu phòng học d a y [ i ) vá đ a y [ j ] ngày bẳt đ ầu hai g iả n g c ầ n x ếp VỚI lịch giảng dạy từ thứ đến th ứ , b iế n d a y c ó m iề n g iá trị: Các giảng xếp vào buổi sáng hay buổi chiều, số tiết học Irong buổi sáng chiều nhiều 6, giàng kéo dài n h ấ t tiế t d o đ ó b iế n h o u r c ó m iề n g iá trị: .4 Đề tiện so sánh thời điểm bắt đầu giảng trẽn trục thời gian ừong tuần, chương trình đưa vào biến s t a r t thời điểm bắt đầu giảng trục then gian Liên kết biến s t a r t biến khác trì bời ràng buộc c , : c p p o s t ( s t a r t [ i ] = = * d a y [ i ]+ 8*session[i) != d a y [ j ] ) ; + hour[i]) C5: Ràng buộc ngày nghi giảng viên: cp.p o st(day[i]!=dayoff) Với d a y o f f ngày nghỉ cùa giáng viên C6: Ràng buộc giảng viên nghi tiết đẩu: c p p o s t ( h o u r [ i ] !=1) C7 : Ràng buộc giàng cùa giảng viên thi không chồng lên Vởi i j hai giàng g iả n g viên: c p p o s t ( ( ( s t a r t [ i ] + d u r a t i o n [ i ]> 107 ỉ : _ c*jU«a»G*T>«* Ch^ ữ*Or* H** Ta*it »» thực khuôn khỏ dẻ tài m ans mã sỏ: QC 09.26 Đại học Quòc gia Hà NỘI Đổi với báo báo cáo đăna tạp chí- kv yêu hội nshị quỏc tế (tiena Anh): "This work is ( p a n h ) supported by the research project No QC.09.26 granted by Vietnam National I'n n e rs ity Hanoi" Điều 6: Hai bẽn cam kết thực điêu khoàn ghi irons hợp done Trong trinh thực hụp done hai bén có trách nhiệm thơng báo kịp thời cho vãn đẻ \ ưỡna mắc cú n s bàn bạc tích cực tìm biện pháp ạiái Hợp đồne tụ độna ỉhaiih lý sau có biên bán họp hội đồng khoa học đánh gia nghiệm thu dề tài với kết qua đ p ứ n g c c qui đ ị n h h iệ n h n h Diều 7: Hơp đồna làm thành 05 ban bẻn siừ 01 ban 02 ban aưi cho phòna TV-KT 01 ban lưu phônu TC-HC DẠI DIỆN BÊN B trường đ i h ọ c c ô n g nghệ SAOMDUNG BẢN CHÍNH Ngàyỉ tháng "ịr.năm 200.9 P G S ^ T -S ^ N g íiy ễ n N g ọ c B in T / L HIỆU TRƯỞNG T h S L ê H n g H ả i SUMMARY Project title: C o n stra in t P ro g m m in g a n d A p p y lin g to U n iversity T im eta b lin g Code num ber QC 09.26 Coordinator: Le Hong Hai Implementing Institution: University of Enginnering and Technology, Vietnam National University Hanoi Duration: from June 2000 to June 2010 Objectives Study and research on constraint programming method - Apply constraint programming method on university timetabling problem Main contents - S tu d y h o w c o n s tr a in t p r o g m m in g m e th o d w o rk in g - Study and evaluate the techniques, and constraint programming systems dedicated for constraint programming method - E x e p im e n t a c o n s tr a in t p r o g r a m m in g s y s te m o n tim e ta b lin g p r o b le m a t U n iv e rs ity o f Enginnering and Technology Obtained results - Programming using Constraint programming method - investigate Comet constraint system - I m p le m e n t a u n iv e r s ity tim e ta b lin g a p p lic a tio n u s in g C o m e t c o n s tra in t s y s te m Moreover, in this project, we have an paper sent to the journal o f Sciences & Technology VNU, 2010: “ ứ ng dụng Hệ ihống lập trình ràng buộc Comet vào tốn lập lịch giàng dạy đại học” In this project, one bechalore theses were accomplished report synthesing the project: Nguyễn Thị Thùy: "ứ n g (lụng Hệ thong lập trình ràng buộc Comet vào toán lập lịc h g iá n g d y đ i h ọc ” , 2010 Signature PHIÉU Đ Ả N G KÝ K ÉT Ọ U A NGHIÊN c u Tên đề tài: Tiếng Việt: Lập trình ràng buộc ứng (lụng vào toán lập lịch giáng dạy đại học Tiếng Anh: Constraint Programming and Appyling to University Timetabling M ã số: Q C 09.26 C quan quản lý đề tài: Dại học Quốc gia I ỉà Nội Địa chi: 144 đường Xuân Thuv c ầ u G iấy - Hà Nội Điện thoại: 8340564 C quan chù trì đề tài: Trường Đại học C ông nghệ Địa chi: 144, đường Xuân Thuý, c ầ u G iấy - Hà Nội Điện thoại: 7547460 Tổng chi phí thực chi: 20.000.000 (Hai mươi triệu đồng) Trong đó: - T ngân sách N hà nước : 20.000.000 Thời gian nghiên cứu: 12 tháng Thời gian bắt đầu: 06/2009 Thời gian kết thúc: 06/2010 rên cán phối hợp nghiên cứu: - Chù tri đề tài: Lê H ồng Hải T h S Đ ặng Thu H iền S ổ đ ă n g ký dề tài C N T rần N am K hánh C N Vũ Tiên Thành S ố ng nhận đăng ký K QN C B m ật A Phổ biến rông rãi B P h ổ b iến h ạn chế N g ày c B ảo m ật N g ày T ó m tắ t kết ng h iên cứu: • Báo cáo khoa học: a i i n g dụng H ệ thống lập trình ràng buộc Comet vào toán lập lịch giảng dạy đại học" gửi cho Tạp chí Khoa học Cơng nghệ - Đại học Quốc Gia Hà Nội tháng 10/2010 • M ột luận văn đại học a Nguyễn Thị Thùy: u n g dụng Hệ thong lập trình ràng buộc Comet vào toán lập lịch giảng dạy đại học”, 2010 K iến nghị v ề q u y m ô v đối tư ợ n g áp dụng kết ng h iên cứu: Chức vụ Họ tên Thù trường quan Chù tịch Hội đồng Thủ trưởng quan chủ trì đề tài đánh giá thức quàn lý đề tài Chủ nhiệm đề tài L ê H n g H ải r 7L Hlệũ TRƯỠNG WHOMO/iHOCCMG 9P Học vị J j-u g fc , t ó Tà C Q U Ố C TÊ' G V ĨL G IÁ M D Ố C ì BANKHOA HỌC-CỔNG iỊghỊ TBU Ớ N G BA N K ý tên U Ĩ Ệ - in ỹ c ể a m cìỉic t ĩ!: N ỷ tty Ịs ị, % Ẩ é 3 l ìÁ Đóng dấu ... thống lập trình ràng buộc Comet - N ghiên cứu toán lập lịch giảng đạy đại học Trường Đại học Công nghệ áp dụng hệ thống lập trình ràng buộc Comet vào giải toán Ket quà xây dựng ứng dụng giải tốt toán. .. dạy đại học sứ dụng hệ thống lập trình ràng 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 tốn lập lịch giàng dạy đại học" gửi cho Tạp chí Khoa học Công... Comet vào toán lập lịch giảng dạy Trường Đại học Công nghệ Cấu trúc báo sau: Phần mô tả lập trinh ràng buộc hệ thống lập trình ràng buộc Comet Phàn mô tả áp dụng hệ thống Comet Lập trình ràng buộc