Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 78 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
78
Dung lượng
2,33 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC VINH NGUYỄN ANH TUẤN NGHIÊN CỨU LẬP TRÌNH TẬP TRẢ LỜI ASP VÀ ỨNG DỤNG TRONG XẾP THỜI KHÓA BIỂU LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN ĐỒNG THÁP, 3/2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC VINH NGUYỄN ANH TUẤN NGHIÊN CỨU LẬP TRÌNH TẬP TRẢ LỜI ASP VÀ ỨNG DỤNG TRONG XẾP THỜI KHÓA BIỂU Chuyên ngành: CÔNG NGHỆ THÔNG TIN Mã số: 60.48.02.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Ngƣời hƣớng dẫn khoa học: TS.Nguyễn Ngọc Hiếu ĐỒNG THÁP, 3/2017 CƠNG TRÌNH ĐƢỢC HOÀN THÀNH TẠI TRƢỜNG ĐẠI HỌC VINH Ngƣời hƣớng dẫn khoa học: TS Nguyễn Ngọc Hiếu Phản biện 1: Phản biện 2: Luận văn bảo vệ Hội đồng chấm luận văn thạc sĩ họp Trường Đại học Vinh vào hồi ngày tháng năm 20 LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu riêng hướng dẫn khoa học thầy TS Nguyễn Ngọc Hiếu Các kết nêu luận văn trung thực, có nguồn gốc rõ ràng, trích dẫn đầy đủ chưa cơng bố cơng trình khoa học Tác giả luận văn Nguyễn Anh Tuấn LỜI CẢM ƠN Luận văn hoàn thành hướng dẫn khoa học thầy giáo TS Nguyễn Ngọc Hiếu, trường Đại học Vinh Tơi xin bày tỏ lịng biết ơn sâu sắc đến thầy hướng dẫn khoa học, tận tình, chi tiết tạo điều kiện tốt để tơi hồn thành luận văn Tơi xin gửi lời cảm ơn đến quý thầy cô giáo Khoa Công nghệ thông tin trường Đại học Vinh, quý thầy cô giáo đơn vị trực thuộc, cán phòng Sau Đại học thầy cô thỉnh giảng trực tiếp giảng dạy, truyền đạt kiến thức cung cấp nguồn tư liệu quý báu cho tơi suốt q trình học tập nghiên cứu Nhân tơi xin dành tình cảm tốt đẹp lời cảm ơn đến trường Đại học Đồng Tháp tạo điều kiện thuận lợi để tơi có điều kiện sở vật chất học tập hồn thành tốt luận văn Tơi xin bày tỏ lịng biết ơn đến người thân gia đình bạn bè, đồng nghiệp động viên, giúp đỡ, tạo điều kiện tơi hồn thành luận văn Đồng Tháp, tháng năm 2017 Học viên Nguyễn Anh Tuấn i MỤC LỤC Trang TRANG PHỤ BÌA LỜI CAM ĐOAN LỜI CẢM ƠN DANH MỤC CÁC THUẬT NGỮ i DANH MỤC CÁC KÝ HIỆU ii CÁC CHỮ VIẾT TẮT iii DANH MỤC CÁC HÌNH VẼ iv MỞ ĐẦU 1 Sự cần thiết vấn đề nghiên cứu Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu Nội dung nghiên cứu Kết cấu luận văn CHƢƠNG CHƢƠNG TRÌNH LOGIC TỔNG QUÁT 1.1 Một số định nghĩa 1.2 Các định nghĩa chương trình logic xác định 1.3 Phủ định chương trình logic 12 1.4 Các tính chất mơ hình bền vững 17 CHƢƠNG 19 LẬP TRÌNH TẬP TRẢ LỜI ASP 19 2.1 Ràng buộc 20 2.2 Phủ định mặc định phủ định mạnh 20 2.3 Cú pháp ngữ nghĩa tập trả lời chương trình logic mở rộng 21 2.4 Các tính chất tập trả lời 26 2.5 Biểu diễn tri thức chương trình logic mở rộng ASP 27 CHƢƠNG 35 BÀI TOÁN XẾP THỜI KHÓA BIỂU 35 3.1 Định nghĩa toán 35 3.2 Các ràng buộc 37 3.3 Tiếp cận toán 39 3.4 Cài đặt toán xếp thời khóa biểu với hệ thống Clingo, Gringo 43 CHƢƠNG 45 CÀI ĐẶT MÔ PHỎNG CÁC BÀI TOÁN MINH HỌA 45 VÀ BÀI TỐN XẾP THỜI KHĨA BIỂU 45 4.1 Cài đặt chạy demo ứng dụng 45 4.2 Bài tốn thời khóa biểu 46 4.2.1 Các tập luật tệp xử lý xếp thời khóa biểu 46 4.2.2 Các tập luật vi phạm ràng buộc 47 ii 4.2.3 Dữ liệu vào tệp xử lý chương trình thời khóa biểu theo môn 49 4.3 Xếp thời khóa biểu theo yêu cầu giáo viên 51 4.4 Xếp thời khóa biểu theo yêu cầu khác giáo viên 53 KẾT LUẬN 54 TÀI LIỆU THAM KHẢO 55 Tài liệu tiếng việt 55 Tài liệu tiếng anh 55 PHỤ LỤC 56 Chƣơng cài đặt mô toán minh họa toán xếp thời khóa biểu 56 Bài toán 4.1.1 56 iii DANH MỤC CÁC THUẬT NGỮ Chương trình logic Logic program Chương trình logic Ground program Chương trình logic phân tầng Stratified Program Chương trình logic ràng buộc số Cardinality Constraint Program Cơ sở Herbrand Herbrand base Điểm bất động nhỏ Least fixpoint Lập trình logic Logic programming Literal âm Negative literal Mệnh đề Clause Mơ hình bền vững Stable model Mơ hình cực tiểu Minimal model Mơ hình nhỏ Least model Ngữ nghĩa mơ hình bền vững Stable model semantics Ngun tố Atom Quy tắc Rule Sự kiện Fact Thể Ground instance Toán tử hệ trực tiếp The immediate consequence operator Vị từ Predicate Vũ trụ Herbrand Herbrand universe iv DANH MỤC CÁC KÝ HIỆU ∩ ∨ ∪ ¬ ∧ Giao Hoặc (phép toán logic) Hợp Phủ định Và (phép hội logic) v CÁC CHỮ VIẾT TẮT CCP Chương trình logic ràng buộc số SCCP Chương trình logic ràng buộc số đơn giản SCC Đồ thị thành phần liên thơng mạnh ASP Chương trình tập trả lời MM Mơ hình cực tiểu ELP Extended Logic Program EDLP Extended Disjunctive Logic Program 53 4.4 Xếp thời khóa biểu theo yêu cầu khác giáo viên Cô Mai yêu cầu dạy tiết đầu ngày thứ (ngay 0) tiết đầu ngày thứ (ngay1); Thầy Khoáng yêu cầu nghỉ ngày thứ (ngay 4) ? Bảng thời khóa biểu theo yêu cầu giáo viên: Ngày Cơ Mai Phịng rB1 Lịch ôn thi khối A, A1 (BanA) Ngày Ngày Ngày Cơ Mai Cơ Thùy Thầy Khống Phịng rB1 Phịng rB1 Phịng rA1 Ngày Cơ Mai Phịng rB1 Cơ Mai Phịng rB1 Thầy Khống Phịng rA1 Thầy Thành Phịng rB1 Thầy Thành Phịng rB1 Cơ Mai Phịng rB1 Cơ Mai Phịng rB1 Thầy Thành Phịng rB1 Cơ Thùy Phịng rB1 Thầy Thành Phịng rB1 Thầy Khống Phịng rA1 Cơ Thùy Phịng rB1 Thầy Khống Phịng rA1 Thầy Khống Phịng rA1 Cơ Thùy Phịng rB1 Thầy Thành Phịng rB1 Thầy Khống Phịng rA1 Thầy Thành Phịng rB1 Cơ Thùy Phịng rB1 Cơ Thùy Phịng rB1 Ngày Cơ Mai Phịng rB1 Cơ Mai Phịng rB1 Cơ Mai Phịng rB1 Thầy Khống Phịng rA1 Lịch ơn thi khối B (BanB) Ngày Ngày Cô Mai Phịng rB1 Cơ Mai Thầy Khống Phịng rB1 Phịng rA1 Cơ Mai Thầy Phong Phịng rB1 Phịng rC1 Thầy Phong Thầy Khống Phịng rC1 Phịng rA1 Thầy Khống Phịng rA1 Tiết Tiết Ngày Ngày Thầy Khống Phịng rA1 Thầy Phong Thầy Phong Phịng rC1 Phịng rC1 Thầy Phong Phịng rC1 Thầy Khống Phòng rA1 Thầy Phong Phòng rC1 54 KẾT LUẬN Luận văn tập trung nghiên cứu lập trình trình tập trả lời ứng dụng việc biểu diễn tri thức Các kết mà luận văn đạt là: Tìm hiểu khái niệm sở chương trình logic ngữ nghĩa lớp chương trình Nghiên cứu cú pháp ngữ nghĩa tập trả lời chương trình logic mở rộng (ASP) Cách tiếp cận ngữ nghĩa lớp chương trình mở rộng ngữ nghĩa mơ hình bền vững chương trình logic thơng thường Ứng dụng lập trình tập trả lời ASP để biểu diễn tri thức thông qua số toán đặc biệt toán xếp thời khóa biểu Tìm hiểu hệ thống lập trình logic Clingo, Gringo Tiến hành mã hóa, thực thi số ví dụ tốn hệ thống Clingo, Gringo Hƣớng phát triển luận văn: Nghiên cứu tiếp cận ngữ nghĩa khác chương trình logic mở rộng Nghiên cứu ngữ nghĩa mơ hình bền vững CSDL suy diễn dạng tuyển với ràng buộc số toán lập luận Nghiên cứu phát triển hệ thống cho việc xếp thời khóa biểu cho trường đại học Việt Nam 55 TÀI LIỆU THAM KHẢO Tài liệu tiếng việt [1] Lê Mạnh Thạnh, Trương Cơng Tuấn (2011) Giáo trình chương trình Datalog, NXB Đại học Huế, Thừa Thiên Huế Tài liệu tiếng anh [1] Krzysztof R Apt Introduction to logic programming pages 495–574, 1990 [2] Krzysztof R Apt The logic programming paradigm and prolog CoRR, cs.PL/0107013, 2001 [3] Chitta Baral Knowledge Representation, Reasoning, and Declarative Problem Solving Cambridge University Press, New York, NY, USA, 2003 [4] Chitta Baral, Gregory Gelfond, Enrico Pontelli, and Tran Cao Son Logic pro- gramming for finding models in the logics of knowledge and its applications: A case study TPLP, 10(4-6):675–690, 2010 [5] Tho Thomas Eiter, Giovambattista Ianni and Thomas Krennwallner, (2013), “Answer Set Programming: A Primer”, Institut fur Informationssysteme, Technische Universit at Wien Favoritenstraße 9-11, A1040 Vienna, Austria, Dipartimento di Matematica, Universit´ a della Calabria, I-87036 Rende (CS), Italy [6] Tommi Syrjänen, Ilkka Niemelä (2001),“The smodels system”, In Proceedings of the 6th International Conference on Logic Programming and Nonmonotonic Reasoning, Vienna, Austria, Springer-Verlag, pp 434-438 [7] http://kaminari.istc.kobe-u.ac.jp/resource/ctt/cttasp-0.8.tgz 56 PHỤ LỤC Chƣơng cài đặt mơ tốn minh họa tốn xếp thời khóa biểu Bài tốn 4.1.1 Nội dung tệp liệu vào ancestors.lp: person(bill) person(mary) person(bob) person(kathy) person(mike) person(rich) person(patty) person(sam) person(susan) father(bob,bill) father(rich,bob) father(mike,mary) father(sam,rich) mother(mary,bill) mother(patty,bob) mother(kathy,mary) mother(susan,rich) -father(F,C) :- person(F), person(C), not father(F,C) -mother(M,C) :- person(M), person(C), not mother(M,C) parent(X,Y) :- father(X,Y) parent(X,Y) :- mother(X,Y) -parent(X,Y) :- person(X), person(Y), not parent(X,Y) ancestor(X,Y) :- parent(X,Y) ancestor(X,Y) :- parent(Z,Y), ancestor(X,Z) 57 -ancestor(X,Y) :- person(X), person(Y), not ancestor(X,Y) Tiến hành thực thi chƣơng trình Clingo ta nhận đƣợc mơ hình bền vững sau: clingo version 4.5.4 Reading from ancestors.lp Solving Answer: person(bill) person(mary) person(bob) person(rich) person(patty) person(sam) father(rich,bob) father(mike,mary) person(kathy) person(susan) father(sam,rich) person(mike) father(bob,bill) mother(mary,bill) mother(patty,bob) mother(kathy,mary) mother(susan,rich) -father(bill,bill) father(mary,bill) -father(kathy,bill) -father(mike,bill) -father(rich,bill) father(patty,bill) - father(rich,mike) -father(patty,mike) -father(sam,mike) father(susan,mike) -father(bill,rich) -father(mary,rich) -father(bob,rich) father(kathy,rich) -mother(bill,bill) -mother(bob,bill) -mother(kathy,bill) mother(mike,bill) -mother(rich,bill) -mother(patty,bill) -mother(sam,bill) mother(susan,bill) -mother(bill,mary) -mother(mary,mary) -mother(bob,mary) -mother(mike,mary) -mother(rich,mary) -mother(patty,mary) - mother(sam,mary) - parent(rich,bob) parent(mike,mary) parent(sam,rich) parent(mary,bill) parent(patty,bob) parent(kathy,mary) parent(susan,rich) parent(bill,bill) -parent(kathy,bill) -parent(mike,bill) -parent(rich,bill) parent(patty,bill) -parent(sam,bill) -parent(susan,bill) -parent(bill,mary) parent(mary,mary) ancestor(mike,mary) ancestor(patty,bob) -parent(bob,mary) - ancestor(rich,bob) ancestor(sam,rich) ancestor(mary,bill) ancestor(kathy,mary) ancestor(susan,rich) ancestor(rich,bill) ancestor(mike,bill) ancestor(sam,bob) ancestor(patty,bill) 58 ancestor(kathy,bill) ancestor(bill,rich) -ancestor(mary,rich) - ancestor(bob,rich) -ancestor(kathy,rich) -ancestor(mike,rich) - ancestor(rich,rich) -ancestor(patty,rich) – ……………… ……………… ancestor(patty,susan) -ancestor(sam,susan) -ancestor(susan,susan) SATISFIABLE Models :1 Calls :1 Time : 0.041s (Solving: 0.00s 1st Model: 0.00s Unsat: 0.00s) CPU Time : 0.010s Bài toán 4.1.2 Tệp liệu vào có nội dung nhƣ sau: prof(mike) prof(john) course(pascal) course(c) course(prolog) teaches(mike,pascal) teaches(john,c) teaches(staff,prolog) -teaches(P,C) :- prof(P), course(C), not ab(d(P,C)), not teaches(P,C) ab(d(P,C)) :- prof(P), teaches(staff,C) 59 Tiến hành thục thi chƣơng trình ta đƣợc kết quả: Hình 4.1.2: Kết thực thi tốn 4.2 hệ thống Clingo Bài tốn thời khóa biểu xếp theo môn Tên tệp chứa liệu vào: input_tkb.lp Mon(4) //có mơn Phong(3) //có phịng học Ngay(5) //dạy ngày/tuần thoi_gian_cho_moi_ngay(4) //mỗi ngày dạy tiết chuong_trinh_giang_day(2) //có chương trình giảng dạy min_max_bai_giang_moi_ngay(2,3) tiết nhiều tiết //mỗi ngày dạy 60 han_che_khong_dung(8) //được khai báo hạn chế không xếp mơn, ngày tiết mon(“Toan”,”Khoang”,3,3,30,1) //mơn Tốn thầy Khống dạy giảng dạy ngày số lƣợng học sinh 40 mon(“Ly”,”Thanh”,3,2,42,0) mon(“Hoa”,”Mai”,5,4,40,1) mon(“Sinh”,”Phong”,3,3,18,1) phong(rA,32,1) //phòng rA chứa tối đa 32 học sinh phong(rB,50,0) phong(rC,40,0) chuong_trinh_giang_day(“BanA”,”Toan”) //chương trình giảng dạy Ban A có mơn Tốn chuong_trinh_giang_day(“BanA”,”Ly”) chuong_trinh_giang_day(“BanA”,”Hoa”) chuong_trinh_giang_day(“BanB”,”Hoa”) chuong_trinh_giang_day(“BanB”,”Sinh”) Han_che_xep(“Hoa”,2,0) tiết Han_che_xep(“Hoa”,2,1) Han_che_xep(“Hoa”,3,2) Han_che_xep(“Ly”,4,0) Han_che_xep(“Ly”,4,1) Han_che_xep(“Ly”,4,2) //Hạn chế khơng xếp mơn Hóa ngày 61 Han_che_xep(“Ly”,4,3) Gioi_han(“Toan”,rA) Gioi_han(“Sinh”,rB) Gioi_han(“Hoa”,rC) Hình 4.2.3.1 Dữ liệu vào tốn thời khóa biểu 62 Chạy thuật tốn xếp thời khóa biểu Gringo: /gringo xep_tkb.lp input_tkb.lp | clasp –configuration=trendy – quiet=1.0 > tkb.out perl bin/decode.perl tkb.out > ketqua.out Hình 4.2.3.2 Xử lý liệu tốn thời khóa biểu 63 Hình 4.2.3.2-1 Xử lý liệu tốn thời khóa biểu 64 Kết sau chạy: Hình 4.2.3.3 Kết xếp thời khóa biểu theo mơn 4.3 Xếp thời khóa biểu theo yêu cầu giáo viên Giải toán: Bằng cách đưa câu lệnh hạn chế tiết cô Mai không dạy tuần unavailability_constraint("Co_Mai",0,3) unavailability_constraint("Co_Mai",1,3) unavailability_constraint("Co_Mai",2,0) unavailability_constraint("Co_Mai",2,1) unavailability_constraint("Co_Mai",2,2) unavailability_constraint("Co_Mai",2,3) unavailability_constraint("Co_Mai",3,0) unavailability_constraint("Co_Mai",3,1) 65 unavailability_constraint("Co_Mai",3,2) unavailability_constraint("Co_Mai",3,3) unavailability_constraint("Co_Mai",4,0) unavailability_constraint("Co_Mai",4,1) unavailability_constraint("Co_Mai",4,2) unavailability_constraint("Co_Mai",4,3) Kết đạt đƣợc: Hình 4.3 Kết thời khóa biểu theo u cầu giáo viên 66 4.4 Xếp thời khóa biểu theo yêu cầu khác giáo viên: Hình ảnh thời khóa biểu chƣa xếp theo u cầu: Hình 4.4 Thời khóa biểu chưa xếp theo yêu cầu giáo viên Giải toán yêu cầu giáo viên: Cũng cách đưa câu lệnh hạn chế tiết Mai, thầy Khống khơng dạy tuần unavailability_constraint("Co_Mai",0,3) unavailability_constraint("Co_Mai",0,4) unavailability_constraint("Co_Mai",1,3) unavailability_constraint("Co_Mai",1,4) unavailability_constraint("Co_Mai",2,0) 67 unavailability_constraint("Co_Mai",4,1) unavailability_constraint("Co_Mai",4,2) unavailability_constraint("Co_Mai",4,3) unavailability_constraint("Thay_Khoang",4,0) unavailability_constraint("Thay_Khoang",4,1) unavailability_constraint("Thay_Khoang",4,2) unavailability_constraint("Thay_Khoang",4,3) unavailability_constraint("Thay_Khoang",4,4) Kết đạt đƣợc: Hình 4.5 Kết xếp thời khóa biểu theo u cầu giáo viên ... ứng dụng vào tốn xếp thời khóa biểu Nội dung nghiên cứu - Các khái niệm lập trình logic; - Lập trình tập trả lời: khái niệm ngữ nghĩa; - Ứng dụng lập trình tập trả lời cho tốn xếp thời khóa biểu. .. BÀI TOÁN XẾP THỜI KHĨA BIỂU Chương trình bày ứng dụng lập trình tập trả lời ASP Ứng dụng chương trình minh họa xếp thời khóa biểu Bài tốn trình bày chi tiết từ việc biểu diễn tốn chương trình logic... tiêu nghiên cứu Nghiên cứu lập trình logic tập trả lời ASP (Answer Set Program) chạy phần mềm Clingo, Gringo ứng dụng xếp thời khóa biểu Đối tƣợng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu - Nghiên