Tối ưu hóa truy vấn cơ sở dữ liệu suy diễn

85 47 0
Tối ưu hóa truy vấn cơ sở dữ liệu suy diễn

Đ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 THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG PHẠM THỊ CHI LÊ TỐI ƢU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU SUY DIỄN LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2013 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG PHẠM THỊ CHI LÊ TỐI ƢU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU SUY DIỄN Chuyên ngành : Khoa học máy tính Mã số : 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS ĐOÀN VĂN BAN Thái Nguyên - 2013 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Tôi cam đoan luận văn thân tự nghiên cứu thực theo hƣớng dẫn khoa học PGS.TS Đồn Văn Ban Tơi hồn tồn chịu trách nhiệm tính pháp lý q trình nghiên cứu khoa học luận văn Thái Nguyên, ngày tháng năm 2013 Ngƣời Cam Đoan Phạm Thị Chi Lê Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CẢM ƠN Trƣớc tiên bầy tỏ lời cảm ơn chân thành đến Thầy, Cô giáo giảng dạy, hƣớng dẫn giúp đỡ thời gian học tập nghiên cứu hoàn thành luận văn Xin đƣợc bầy tỏ lòng biết ơn sâu sắc tới Thầy giáo PGS.TS Đồn Văn Ban tận tình hƣớng dẫn, giúp đỡ đóng góp cho tơi nhiều ý kiến q báu để hồn thành luận văn Xin chân thành cảm ơn Thầy, Cô giáo Trƣờng Đại học Công nghệ thông tin & truyền thông Thái Nguyên Viện Công nghệ thông tin giảng dạy, giúp đỡ tạo điều kiện thuận lợi cho thời gian học tập Trƣờng Tôi xin gửi lời cảm ơn đến bạn đồng nghiệp bạn học viên lớp Cao học K10A khóa 2011 – 2013 giúp đỡ tạo điều kiện thuận lợi cho tơi q trình học tập làm luận văn Cuối cùng, xin chân thành cảm ơn gia đình bạn bè động viên, quan tâm, giúp đỡ hồn thành khóa học luận văn PHẦN MỞ ĐẦU Cơ sở liệu (CSDL) lĩnh vực đƣợc tập trung nghiên cứu phát triển cơng nghệ thơng tin, nhằm giải tốn quản lý, tìm kiếm thơng tin hệ thống lớn, đa dạng, phức tạp cho nhiều ngƣời sử dụng máy tính điện tử Cùng với ứng dụng mạnh mẽ công nghệ thông tin vào đời sống xã hội, kinh tế, quốc phòng Việc nghiên cứu CSDL phát triển ngày phong phú hồn thiện Tuy nhiên CSDL kinh điển khơng có khả suy dẫn kiện mới, khả tiềm ẩn không đƣợc khai thác hết nên từ năm 1970-1980 có Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ trào lƣu sôi muốn đƣa vào CSDL quan hệ chế suy diễn, tri thức tổng quát CSDL suy diễn lĩnh vực mẻ, thời gian qua ngƣời ta tập trung nghiên cứu cho nhiều kết thú vị lĩnh vực lý thuyết ứng dụng CSDL suy diễn có khả sử dụng tính lập trình logic để thực suy diễn nhằm tạo thông tin dựa luật suy diễn liệu đƣợc lƣu trữ sở liệu CSDL suy diễn, mở rộng CSDL quan hệ, khơng có ngun tố tƣơng ứng với quan hệ CSDL quan hệ mà cịn có quy tắc tổng quát (gồm quy tắc suy diễn ràng buộc toàn vẹn) Những quy tắc tạo thành phần mở rộng So với hệ CSDL quan hệ, hệ CSDL suy diễn thừa nhận kiểu lý thuyết chứng minh, nghĩa đƣợc xem xét nhƣ lý thuyết bao gồm tập công thức cấp một, việc thực câu truy vấn làm thoả mãn ràng buộc tồn vẹn xem nhƣ chứng minh công thức cấp hệ logic lý thuyết cho Sức mạnh biểu diễn CSDL suy diễn thật quan trọng nhiều lĩnh vực khác Các ứng dụng tiêu biểu CSDL bao gồm hệ chuyên gia, hệ hỗ trợ định, phân tích tài chính, phân tích ngôn ngữ, cú pháp Tuy vậy, lĩnh vực CSDL suy diễn, có nhiều kết có giá trị nhƣng có nhiều vấn đề cần nghiên cứu tiếp, đặc biệt vấn đề ngữ nghĩa phủ định tối ƣu hoá câu hỏi (truy vấn) Luận văn nghiên cứu kỹ thuật tối ƣu câu truy vấn CSDL suy diễn Có ba kiểu tiếp cận khác việc định giá câu truy vấn: Các phƣơng pháp xuống, phƣơng pháp dƣới lên phƣơng pháp có kết hợp đặc trƣng phƣơng pháp xuống dƣới lên Các phƣơng pháp xuống (còn gọi suy luận đích kết xâu lùi) có điểm khởi đầu việc tính tốn từ đích truy vấn chúng khơng tính kiện khơng thích Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ hợp với câu truy vấn Tuy nhiên q trình tính tốn kéo dài vơ hạn Các phƣơng pháp dƣới lên đảm bảo tính kết thúc q trình tìm lời giải câu truy vấn, nhƣng điều nghĩa hiệu Chúng thƣờng khơng định hƣớng đích, nhiều kiện khơng thích hợp với câu truy vấn đƣợc tính Các chiến lƣợc dƣới lên khơng xem xét câu truy vấn suốt q trình định giá, tức việc tính tốn khơng đƣợc gắn liền với câu truy vấn nhƣ thƣờng xảy phƣơng pháp xuống Trong thời gian gần đây, số phƣơng pháp mở rộng để trả lời câu truy vấn đƣợc đề xuất nhằm mục đích tạo chiến lƣợc tìm kiếm hƣớng đích, đồng thời có tính hiệu đảm bảo kết thúc q trình tính tốn câu trả lời truy vấn Điển hình phép biến đổi ma tập (magic set transformation) định giá bảng Các phƣơng pháp đƣợc đánh giá kỹ thuật tối ƣu câu truy vấn có hiệu CSDL suy diễn Nó kết hợp đƣợc ƣu điểm kỹ thuật định giá theo kiểu xuống dƣới lên, giảm thiểu đƣợc số kiện cần tính tìm kiếm CSDL Ý tƣởng phép biến đổi ma tập mô lan truyền trị ràng buộc đƣợc tạo phƣơng pháp định giá câu truy vấn theo kiểu xuống Sự lan truyền nhận đƣợc cách viết lại chƣơng trình gốc ban đầu Trong quy tắc gốc điều kiện đƣợc thêm vào để hạn chế việc tính toán quy tắc Các điều kiện đƣợc xem quan hệ lọc Một quy tắc đƣợc tạo để mô lan truyền trị ràng buộc Luận văn gồm phần mở đầu, ba chƣơng nội dung, phần kết luận, tài liệu tham khảo phần phụ lục Chƣơng 1: Trình bày khái quát Cơ sở liệu suy diễn ngữ nghĩa chƣơng trình logic Chƣơng 2: Trình bày phƣơng pháp tối ƣu câu truy vấn sở liệu suy diễn Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Chƣơng 3: Cài đặt chƣơng tr Phần phụ lục giới thiệu Swi-Prolog hƣớng dẫn cách thức làm việc với Swi-Prolog Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ CHƢƠNG CƠ SỞ DỮ LIỆU SUY DIỄN VÀ NGỮ NGHĨA CHƢƠNG TRÌNH LOGIC Chương trình bày kiến thức sở liệu suy diễn với khái niệm, cấu trúc, mơ hình, mục đích, chức sở liệu suy diễn giới thiệu số hệ quản trị sở liệu suy diễn hệ LDL, hệ Anditi, hệ Coral; giới thiệu chương trình logic với khái niệm logic vị từ, hạng thức, cơng thức đóng, kí tự ngữ nghĩa chương trình logic; cuối chương giới thiêu sở liệu Horn với khái niệm, định lý, hệ quả, ngữ nghĩa sở liệu Horn ví dụ để minh chứng cho phần lý thuyết 1.1 Giới thiệu sở liệu suy diễn Tính từ thời điểm xuất hệ quản trị sở liệu (khoảng năm 1960) đến nay, công nghệ CSDL tiến triển nhanh chóng, thu đƣợc nhiều thành tựu lĩnh vực ứng dụng khác công nghệ thông tin Một đặc điểm chung hệ CSDL khả quản lí khối lƣợng lớn liệu, nhiên thƣờng thực thao tác đơn giản để xử lí liệu Vì vậy, việc nghiên cứu sở liệu suy diễn đƣợc đặt nhƣ yêu cầu thiết thực Mặt khác, song song với phát triển hệ quản trị CSDL, hệ chuyên gia đƣợc phát triển để trợ giúp trình định lĩnh vực chuyên ngành hẹp Đặc điểm hệ chuyên gia cung cấp khả suy luận nhằm hỗ trợ việc định, nhƣng chúng thƣờng khả quản lí khối lƣợng lớn thơng tin Từ yếu tố trên, hệ CSDL suy diễn đƣợc đề xuất, xem nhƣ giải pháp khắc phục hạn chế hệ CSDL truyền thống cách Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ phối hợp, theo cách đó, đặc trƣng trội đƣợc cung cấp hệ chuyên gia Do đó, hệ CSDL suy diễn đƣợc xem tích hợp liệu (nhƣ hệ quản trị CSDL) tri thức (nhƣ hệ chuyên gia) Các hệ CSDL Các hệ chun gia Có khả quản lí khối lƣợng lớn liệu Có khả suy luận - Dữ liệu ngoại diên: kiện - Tính tồn vẹn, khơi phục, tối ƣu hố câu hỏi - Đƣợc bảo trì nhà quản trị - Tri thức nội hàm: luật - Biểu diễn tri thức - Đƣợc bảo trì chuyên gia Cần khả suy luận bên sở liệu Cần hệ thống hồn thiện để quản lí khối lƣợng lớn thông tin Cơ sở liệu suy diễn Hình 1.1 Sự tiến triển song song hệ CSDL hệ chuyên gia Hình minh hoạ tiến triển song song hệ CSDL hệ chuyên gia Khái niệm CSDL suy diễn đƣợc nhiều nhà nghiên cứu đề cập theo hƣớng phát triển kết mà Green đạt đƣợc vào năm 1969 hệ thống hỏi – đáp Xuất phát từ quan điểm lý thuyết, CSDL suy diễn Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ đƣợc coi nhƣ chƣơng trình logic với khái quát hoá khái niệm CSDL quan hệ Đó cách tiếp cận Brodie Manola vào năm 1989, Codd vào năm 1970, Date vào năm 1986, Gardarin Valdurier vào năm 1989 Ullman vào năm 1984 [2] Nhƣ vậy, CSDL suy diễn đƣợc coi nhƣ chƣơng trình logic với khái qt hóa khái niệm CSDL quan hệ cách hỗ trợ khung nhìn đệ qui liệu không nguyên tử Điều làm cho viêc lập trình CSDL dễ nhiều ứng dụng 1.1.1 Cơ sở liệu suy diễn (CSDLSD) CSDL truyền thống khơng suy diễn kiện mới, ví dụ khơng thể suy đƣợc Vân cha dựa vào quan hệ parent(X, Y) Cơ sở liệu suy diễn sở liệu (CSDL) có khả suy diễn số kiện từ kiện, luật đƣợc lƣu trữ CSDL Mơ hình sở liệu suy diễn (CSDLSD) tích hợp mơ hình sở liệu lập trình logic Cơ sở lý thuyết mơ hình sở liệu suy diễn logic vị (tân) từ cấp một: lƣu trữ, tìm kiếm, suy luận điều khiển thực thi chƣơng trình ứng dụng [1], [20] Lập trình logic mạnh khả biểu diễn tri thức thể đƣợc ràng buộc toàn vẹn thơng tin CSDLSD kết hợp trí tuệ nhân tạo (AI) CSDL Cơ sở liệu có khả quản trị liệu, bảo mật liệu Cơ sở liệu suy diễn có khả sử dụng tính lập trình logic để thực suy diễn nhằm tạo thông tin dựa luật suy diễn liệu đƣợc lƣu trữ sở liệu Cấu trúc CSDL suy diễn Một CSDL suy diễn gồm ba tập hữu hạn: Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 68 TÀI LIỆU THAM KHẢO Tiếng Việt [1] PGS.TS Đoàn Văn Ban, Cơ sở liệu nâng cao, Bài giảng chuyên đề nghiên cứu sinh,Viện Công nghệ thông tin, 2012 [2] : Lý thuyết thực hành, Hà Nội: Khoa học Kỹ thuật, 2010 [3] PGS.TS Phan Huy Khánh, Lập trình logic Prolog, Nhà xuất Đại học quốc gia Hà Nội, 2004 [4] Lê Mạnh Thạnh, Trƣơng Công Tuấn Tối ưu câu truy vấn sở liệu suy diễn phép biến đổi ma tập Tạp chí tin học Điều khiển học, tập 19, số 3, 233-242,2003 [5] Lê Mạnh Thạnh, Trƣơng Cơng Tuấn Thuật tốn ma tập cải tiến để ước lượng câu truy vấn lớp chương trình Datalog Chun san Tạp chí Bƣu viễn thơng, số 8, 78-84,2002 [6] Lê Mạnh Thạnh, Trƣơng Công Tuấn Một số cải tiến phép biến đổi ma tập để tối ưu câu truy vấn chương trình Datalog Chun san Tạp chí Bƣu viễn thông, số 9, 2003 [7] http://vi.wikipedia.org/wiki/Prolog [8] http://www.cse.hcmut.edu.vn/~ntson/Luanlytoanhoc/PrologFF.pdf [9] tainguyenso.vnu.edu.vn/jspui/bitstream/ /38564/ /TT_V_L0_00544.p Tiếng Anh [10] Anthony J Kusalik, Semantic Query Optimazation Techniques in Deductive Database, Mohammad Ashrafuzzaman, 1996 [11] Apt K R., Blair H A., and Walker A ―Towards a Theory of Declarative Knowledge‖, In J.Minker, editor, Foundation of Deductive Databases and Logic Programming, Morgan Kaufmann, 1988, pp 89-142 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 69 [12] D B Kemp, P J Stuckey, and D Srivastava Magic sets and bottom evaluation of well-founded models In Proceedings of the 1991 International Symposium on Logic Programing, pages 337-354, San Diego, USA, 1991 [13] Jeffrey D Ullman, Deductive Databases: Achievements and Future Directions, SIGMOD RECORD, Vol 19, No 4, December 1990 [14] J M Almendros-Jim´enez and A Becerra-Ter´on A Framework for Goal-Directed Bottom-Up Evaluation of Functional Logic Programs In Proc of FLOPS, LNCS 2024, pages 153–169 Springer, 2001 [15] J M Almendros-Jim´enez, A Becerra-Ter´on, and J S´anchezHern´andez A Com-putational Model for Funtional Logic Deductive Databases In Proc of ICLP To appear, LNCS Springer, 2001 [16] John Grant and Jack Minker, Deductive database theories: The Knowledge Engineering Review, Vol 4: 4, 267-304, 1989 [17] Kotagiri Ramamohanarao and James Harland, An Introduction to Deductive Database Languages and Systems, The VLDB Journal, Volume Issue 2,pages 107-122, April 1994 [18] Pedro R Falcone Sampaid and Norman W Paton, Deductive ObjectOriented Database Systems: A Survey, University of Manchester Oxford Road, UK, 1998 [19] Serge Abiteboul, Richard Hull, Victor Vianu, Foundation of Databases, Addision Wesley Publishing, 1995 [20] S Ceri, G Gottlob, and L Tanca Logic Programming and Databases Springer-Verlag, Berlin, Germany, 1990 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 70 PHỤ LỤC HƢỚNG DẪN SỬ DỤNG SWI-PROLOG Giới thiệu SWI-Prolog SWI-Prolog thuộc họ Prolog Edinburgh Giáo sử Jan Wielemaxker xây dựng từ năm 1983 khoa Khoa học Thông tin xã hội, trƣờng Đại học Amsterdam, Ha Lan (Dept of Social Science Informatics, SWI, University of Amsterdam, Netherlands) Hiện nay, tải miễn phí phần mềm SWIProlog phiên 6.2.x for Windows từ địa Web : http://www.swi-prolog.org/ SWI-Prolog có thƣ viện vị từ, tài liệu hƣớng dẫn phong phú SWIProlog hoạt động theo hệ thống đơn thể, có giao diện trao đổi hai chiều linh hoạt với ngôn ngữ C SWI-Prolog ngôn ngữ sƣ phạm, bị hạn chế nhiều tốc độ biên dịch chƣơng trình SWI-Prolog hoạt động mơi trƣờng đồ họa XPCE định hƣớng đối tƣợng (GUI) X-window SWI-Prolog tƣơng đối dễ sử dụng nhờ khai thác đặc trƣng tƣơng tác đồ họa SWI-Prolog có phiên cho máy chạy Linux/Unix, Macintosh Khi tải SWI-Prolog, NSD tải thêm tài liệu Hƣớng dẫn sử dụng Sau cài đặt phiên SWI-Prolog 6.2.x for Windows, khởi động trình plwin.exe, cửa sổ làm việc SWI-Prolog nhƣ hình dƣới SWI-Prolog làm việc theo chế độ tƣơng tác (interpreter mode) (xem hình) Dấu nhắc lệnh SWI-Prolog cặp Dấu chấm hỏi Dấu gạch ngang (Dấu trừ), đƣợc liệt kệ thƣ từ 1, 2, để theo dõi trình làm việc NSD, theo sau trỏ hình (Dấu chèn) nhấp nháy : ?- „ Để khỏi SWI-Prolog, dùng lệnh File/ Exit, dùng vị từ halt Số hóa Trung tâm Học liệu : http://www.lrc-tnu.edu.vn/ 71 ?- halt Hình Cửa sổ làm việc SWI-Prolog Làm việc với SWI-Prolog 2.1 Đặt câu hỏi Sau chƣơng trình Prolog đƣợc biên dịch đƣợc tải vào nhớ, NSD đặt câu hỏi truy vấn (kết thúc Dấu chấm) Tùy theo câu hỏi (đích phải xóa), Prolog trả lời (Yes) sai (No) kèm theo kết X = đích có chứa biên X Trong trƣờng hợp có nhiều câu trả lời, sau kết trả lời đầu tiên, NSD đặt Dấu chấm phảy; (semi-colon) muốn tiếp tục yêu câu Prolog đƣa câu trả lời khác Tiếp tục trình này, Prolog lần lƣợt đƣa kết khác khi, Prolog trả lời No, có nghĩa khơng cịn câu trả lời nữa, Yes, NSD muốn dừng lại cách gõ Enter (↵) NSD nhận đƣợc thơng báo lỗi câu hỏi có vấn đề : ERROR: Undefined procedure < / > % NSD gõ sai tên thủ tục : Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 72 ERROR: Syntax error: Operator expected % NSD gõ sai biểu thức, v.v 2.2 Chạy trình demo Sau ví dụ chạy chƣơng trình demo likes.pl SWI-Prolog Nội dung tệp likes.pl nhƣ sau : likes(sam, A) :indian(A), mild(A) likes(sam, A) :chinese(A) likes(sam, A) :italian(A) likes(sam, chips) italian(pizza) italian(spaghetti) chinese(chow_mein) chinese(chop_suey) chinese(sweet_and_sour) mild(dahl) mild(tandoori) mild(kurma) indian(curry) indian(dahl) indian(tandoori) indian(kurma) NSD nạp chƣơng trình vào nhớ lệnh sau : ?- [swi('demo/likes')] % swi('demo/likes') compiled 0.00 sec, 2, 340 bytes Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 73 Yes Sau tệp likes.pl đƣợc tải vào nhớ, NSD đặt câu hỏi nhận đƣợc kết nhƣ sau : ?- like(X, Y) Correct to: likes(X, Y)? Yes X = sam Y = dahl ; X = sam Y = tandoori ; Yes % NSD gõ Enter vấn câu trả lời ?2.3 Chạy trình demo XPCE SWI-Prolog đƣợc trang bị chức lập trình Hƣớng đối tƣợng tạo giao diện đồ họa, đƣợc gọi XPCE, có mã nguồn tƣơng thích với Unix/X11 Windows NSD thức chƣơng trình demo XPCE cách gõ : ?- [swi( 'xpce/prolog/demo/pce_demo')] % contrib(contrib) compiled into pce_contrib 0.02 sec, 1,260 bytes % swi('xpce/prolog/demo/pce_demo') compiled into pce_demo 0.02 sec, 11,408 bytes Yes ?- pcedemo Yes Một cửa sổ nhƣ sau : Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 74 Hình Các chương trình demo XPCE SWI-Prolog NSD chọn xem trò chơi cách chọn tên trị chơi Open Sau đó, nhấp chuột tải nút Quit để kết thúc chƣơng trình Ví dụ trị chơi Rubiks Cube nhƣ hình dƣới đây: Hình Trình demo XPCE Rubiks Cube SWI-Prolog 2.4 Các lệnh đơn (Menu commands) Cửa sổ làm việc SWI-Prolog gồm số lệnh đơn chủ yếu nhƣ sau : File/consult Tƣơng tự lệnh consult(File) dùng để nạp tệp chƣơng trình File vào nhớ File/Reload modified files Dùng để nạp lại (reloads) tệp chƣơng trình bị thay đổi vào nhớ Thƣờng đƣợc sử dùng sau Soạn thảo chƣơng trình Có thể sử Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 75 dùng lệnh make File/Navigator Mở cửa sổ tƣơng tự explorer Windows để tìm kiếm tệp vị từ Prolog thứ mục, ổ đĩa Hình Cửa sổ Navigator Settings/Font Dùng để thay đổi phông chữ Giáo diện SWI-Prolog Settings/User init file Soạn thảo tệp cấu hình pl.ini chứa thơng tin cài đặt hệ thơng thích Settings/Stack sizes Cho phép định nghĩa lại kích thƣớc khơng gian làm việc danh sách đẩy xuống (stack sizes) Hình Định nghĩa kích thước danh sách đẩy xuống Run/Interrupt Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 76 Ngắt tiến trình Prolog (Prolog process) sử dụng tổ hợp phím Conntrol-C có hiệu tƣơng tự Lúc này, xuất đối thọai : Action (h for help) ? Options: a: abort b: break c: continue e: exit g: goals t: trace h (?): help Action (h for help) ? abort ERROR: Execution Aborted % Execution Aborted ?Run/New thread Tạo cửa sổ làm việc để thực chƣơng trình Trong cửa sổ dùng chung chƣơng trình liệu có mặt cửa sổ làm việc Debug/Edit spy points Soạn thảo điểm ngắt vị từ Help Tìm đọc Nội dùng Hƣớng dẫn sử dùng SWI-Prolog khác 2.5 Soạn thảo chƣơng trình NSD sử dụng hệ Soạn thảo văn Windows nhƣ NotePad, NCeditor để Soạn thảo chƣơng trình Prolog, lƣu cất lên đĩa, sau tải vào mơi trƣờng SWI-Prolog để chạy nhờ lệnh : ?- consult( ) : ?- [ ] Với tên tệp chƣơng trình (khơng cần ghi phân mở rộng pl Có thể định đƣờng dẫn thƣ mục đến tên tệp Chú ý Dấu chấm hỏi ?Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 77 đặt trƣớc câu lệnh Dấu nhắc SWI-Prolog Ví dụ nạp chƣơng trình toán Quân Hậu ?- [myex5] % myex5 compiled 0.00 sec, 2,020 bytes Yes ?- solution( 8, S ) % Tìm lời giải cho tốn Qn Hậu S = [1, 7, 4, 6, 8, 2, 5, 3] % Vị trí Quân Hậu cột Yes Khi nạp chƣơng trình Prolog vào nhớ, dùng lệnh : ?- Listing để liệt kệ dong lệnh cửa sổ làm việc Prolog Hình Cửa sổ Soạn thảo văn PceEmacs SWI-Prolog SWI-Prolog có sẵn hệ Soạn thảo PceEmacs thuận tiên để Soạn thảo thực chƣơng trình Gõ vào dịng lệnh : ?- emacs Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 78 để mở cửa sổ Soạn thảo văn nhiều chức (scratch) Một số lệnh SWI-Prolog thông dụng Sau số vị từ điều khiển môi trƣờng thông dùng SWIProlog consult(+File) Nạp tệp chƣơng trình vào nhớ Chú ý sử dùng Dấu phân cách thƣ mục / Ví du : % Nạp tệp likes.pl từ thƣ mục làm việc (xem pwd) vào nhớ ?- consult(likes) % Nạp tệp likes.pl sử dụng đƣờng dẫn đầy đủ - Tuyệt đối (absolute path) ?- ['C:/Program Files/pl/demo/likes'] % Sử dụng đƣờng dẫn kiểu Windows (Windows-style path-name) ?['C:\\Program Files\\pl\\demo\\likes'] pwd Đƣa thƣ mục làm việc (working directory hay folder) SWI-Prolog is Liệt kệ danh sách tệp thƣ mục hành edit Nếu Prolog đƣợc khởi động tệp pl từ Windows Explorer, chạy trình Soạn thảo mặc nhiên, chẳng hạn Windows Notepad, để Soạn thảo tệp Có thể sử dụng lệnh đơn File/Edit ?- edit % Waiting for editor Yes % Sau NSD kết thúc Soạn thảo edit(+File) Soạn thảo tệp hay đơn thể chƣơng trình có mặt đĩa ?- edit(myex) Số hóa Trung tâm Học liệu % Mở Notepad để Soạn thảo tệp myex.pl http://www.lrc-tnu.edu.vn/ 79 % Waiting for editor % có thƣ mục hành Yes % Sau NSD kết thúc Soạn thảo make Nạp tệp chƣơng trình vào nhớ sau thức số thay đổi trace Chạy trình duyệt tìm sửa lỗi debugger apropos(+Keyword) Tìm vị từ có chứa từ khóa Keyword help(+Spec) Mở cửa sổ Hƣớng dẫn Spec, tên vị từ tên hàm C Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 80 MỤC LỤC Trang phụ bìa Lời cam đoan Lời cảm ơn Mục lục Danh mục chữ viết tắt Danh mục hình vẽ PHẦN MỞ ĐẦU CHƢƠNG CƠ SỞ DỮ LIỆU SUY DIỄN VÀ NGỮ NGHĨA CHƢƠNG TRÌNH LOGIC 1.1 Giới thiệu sở liệu suy diễn 1.1.1 Cơ sở liệu suy diễn (CSDLSD) 1.1.2 Mục đích đặc trƣng CSDLSD 1.1.3 Chức hệ quản trị CSDLSD 10 1.1.4 Một số hệ QT CSDL suy diễn 11 1.1.4.1 Hệ LDL/LDL++ 11 1.1.4.2 Hệ Aditi 14 1.1.4.3 Hệ CORAL 15 1.2 Chƣơng trình logic 15 1.2.1 Các khái niệm 16 1.2.2 Chƣơng trình logic 19 1.2.3 Thể chƣơng trình logic 20 1.2.4 Thể Herbrand 20 1.3 Ngữ nghĩa chƣơng trình Prolog 22 1.4 CSDL Horn Ngữ nghĩa CSDL Horn 22 1.4.1 Ngữ nghĩa mơ hình khai báo 23 1.4.2 Ngữ nghĩa điểm bất động CSDL Horn 24 1.4.3 Ngữ nghĩa thủ tục (Procedural Semantics) 25 1.5 Kết thúc chƣơng 26 CHƢƠNG CÁC PHƢƠNG PHÁP TỐI ƢU CÂU TRUY VẤN TRONG CƠ SỞ DỮ LIỆU SUY DIỄN 27 2.1 Phƣơng pháp định giá câu truy vấn dƣới/lên (bottom-up) 27 2.1.1 Thuật toán đối sánh hạng thức (Term match) 28 2.1.2 Thuật toán định giá câu truy vấn theo phƣơng pháp dƣới lên 28 2.2 Phƣơng pháp định giá câu truy vấn trên/xuống (top-down) 29 2.3 Định giá truy vấn theo kiểu xuống có sử dụng kỹ thuật ghi nhớ 30 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 81 2.3.1 Định giá SLD (Selective Linear resolution for Definite clauses) 30 2.3.2 Định giá bảng (tabled evaluation) 31 2.4 Phƣơng pháp ma tập (Magic Set) 32 2.4.1 Tô điểm 33 2.4.2 Truyền thông tin sang ngang 33 2.4.3 Phép biến đổi ma tập (Magic set transformation) 35 2.5 Phƣơng pháp ma tập cải tiến 36 2.5.1 Thuật tốn tơ điểm chƣơng trình 36 2.5.2 Tối ƣu bƣớc tơ điểm chƣơng trình 39 2.5.3 Cải tiến việc thực thi chƣơng trình Mag_Pad 39 2.5.3.1 Hạn chế tính tốn dƣ thừa chƣơng trình viết lại thuật tốn ma tập 39 2.5.3.2 Kết hợp chiến lƣợc Sips trình định giá chƣơng trình Mag_Pad 40 2.5.4 Phƣơng pháp ma tập cải tiến 41 2.6 Định giá truy vấn CSDL Horn 41 2.7 Kết thúc chƣơng 43 CHƢƠNG CÀI ĐẶT CHƢƠNG TRÌNH THỬ NGHIỆM 44 3.1 Giới thiệu tóm lƣợc Prolog 44 3.1.1 Các yếu tố Prolog 45 3.1.2 Cấu trúc chƣơng trình Prolog 46 3.1.3 Các nguyên tắc ngôn ngữ Prolog 48 3.1.4 Các kiểu liệu Prolog 49 3.1.4.1 Các kiểu (trực kiện) 49 3.1.4.2 Biến 50 3.1.5 Các hàm xuất nhập 51 3.2 Bài toán 51 3.2.1 chƣơng trình xử phạt vi phạm giao thơng 51 3.2.2 Chức chƣơng trình 57 3.2.3 Chƣơng trình xử phạt vi phạm luật giao thông 57 3.3 Bài toán 2: Bài toán phả hệ 59 3.3.1 Xây dựng sở liệu 59 Với quan hệ Tổ tiên có sử dụng quan hệ parent, có hai luật đƣợc định nghĩa Luật thứ định nghĩa tổ tiên trực tiếp luật thứ hai định nghĩa tổ tiên gián tiếp 60 Trong phả hệ hình 3.2, ta thấy An tổ tiên trực tiếp Lan, tổ tiên gián tiếp Đức Ta định nghĩa luật (tổ tiên trực tiếp) nhƣ sau : 61 ancestor( X, Z) :- parent(X, Z) 61 ancestor(X, Z) :% tổ tiên ngũ đại 62 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 82 parent(X, Y) 62 parent(Y1, Y2) 62 parent(Y2, Y3) 62 parent(Y3, Z) 62 Tuy nhiên, có cách định nghĩa tổ tiên gián tiếp mức nhờ phép đệ quy nhƣ sau : 62 3.3.2 Phân tích toán thuật toán Magic set 62 3.3.3 Chƣơng trình 63 3.4 Đánh giá 65 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 68 PHỤ LỤC 70 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ... 1.1.1 Cơ sở liệu suy diễn (CSDLSD) CSDL truy? ??n thống khơng suy diễn kiện mới, ví dụ khơng thể suy đƣợc Vân cha dựa vào quan hệ parent(X, Y) Cơ sở liệu suy diễn sở liệu (CSDL) có khả suy diễn số... lƣu trữ CSDL Mơ hình sở liệu suy diễn (CSDLSD) tích hợp mơ hình sở liệu lập trình logic Cơ sở lý thuyết mơ hình sở liệu suy diễn logic vị (tân) từ cấp một: lƣu trữ, tìm kiếm, suy luận điều khiển... trình logic để thực suy diễn nhằm tạo thông tin dựa luật suy diễn liệu đƣợc lƣu trữ sở liệu Cấu trúc CSDL suy diễn Một CSDL suy diễn gồm ba tập hữu hạn: Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ngày đăng: 25/02/2021, 09:20

Từ khóa liên quan

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

Tài liệu liên quan