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

40 669 3
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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠ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 ... 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... ràng buộc áp dụng thành cơng tố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

Ngày đăng: 19/03/2015, 10:13

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • GIẢI THÍCH CÁC CHỮ VIẾT TẮT

  • DANH SÁCH NHỮNG NGƯỜI THAM GIA THỰC HIỆN ĐỀ TÀI

  • DANH MỤC HÌNH VẼ

  • TÓM TÁT NHỮNG KẾT QUẢ CHÍNH CỦA ĐỀ TÀI

  • BÁO CÁO TỔNG KẾT

  • 1. Đặt vấn đề

  • 2. L ập trìn h ràng buộc và hệ thống lập trình ràng buộc Comet

  • 2.1 Lập trình ràng buộc

  • 2.2 Hệ thống lập trìn h ràng buộc Comet

  • 3. Áp dụng hệ lập trìn h ràng buộc Comet vào bài toán lập lịch giảng dạy

  • 4. Kết luận

  • 5. Địa điểm, thời gian và phương pháp nghiên cứu

  • 6. Kết quả nghiên cứu

  • 6.1 Kết quả khoa học

  • 6.2 Kết quả đào tạo

  • 7. Tài liệu tham khảo

  • PHỤ LỤC

  • PHIẾU ĐĂNG KÝ KẾT QUA NGHIÊN CỨU

Tài liệu cùng người dùng

Tài liệu liên quan