TÌM HIỂU VỀ MÔ HÌNH SWI PROLOG TRONG LẬP TRÌNH LOGIC

20 898 4
TÌM HIỂU VỀ MÔ HÌNH SWI PROLOG TRONG LẬP TRÌNH LOGIC

Đ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

Prolog là một ngôn ngữ lập trình. Mục tiêu của Prolog là giúp người dùng mô tả lại bài toán trên ngôn ngữ của logic, dựa trên đó, máy tính sẽ tiến hành suy diễn tự động dựa vào những cơ chế suy diễn có sẵn để tìm câu trả lời cho người dùng.

TÌM HIỂU VỀ HÌNH SWI PROLOG TRONG LẬP TRÌNH LOGIC MỤC LỤC A Nội dung tiểu luận: .3 1.Giới thiệu SWI Prolog Sử dụng SWI Prolog 2.1 Bắt đầu Prolog tải chương trình 2.2 Đang thực truy vấn .5 2.3 Lệnh trình đơn 2.4 Chỉnh sửa chương trình Prolog .7 2.5 Một số lệnh hữu ích 3.Các quy ước SWI Prolog .9 Cài đặt .10 4.1 Các phiên Windows hỗ trợ 10 4.2 Chọn phần mở rộng tệp tin 10 4.3 Các chương trình cài đặt 10 4.4 Các phím trình đơn cài đặt .13 4.5 Cấp độ thực 14 4.6 Tạo mục trình đơn hình .14 5.Một số ví dụ 14 5.Kết luận .18 Tài liệu tham khảo .18 B Phân công thực hiện: 19 A Nội dung tiểu luận: 1.Giới thiệu SWI Prolog Prolog ngơn ngữ lập trình Tên gọi Prolog xuất phát từ cụm từ tiếng Pháp Programmation en logique, nghĩa "lập trình theo lơ gích" Xuất từ năm 1972 (do Alain Colmerauer Robert Kowalski thiết kế), mục tiêu Prolog giúp người dùng tả lại tốn ngơn ngữ logic, dựa đó, máy tính tiến hành suy diễn tự động dựa vào chế suy diễn có sẵn (hợp nhất, quay lui tìm kiếm theo chiều sâu) để tìm câu trả lời cho người dùng Prolog sử dụng nhiều ứng dụng trí tuệ nhân tạo ngôn ngữ học khoa học máy tính (đặc biệt ngành xử lý ngơn ngữ tự nhiên mục tiêu thiết kế ban đầu nó) Cú pháp ngữ nghĩa Prolog đơn giản sáng sủa, người Nhật coi tảng để xây dựng máy tính hệ thứ năm mà đó, thay phải tả cách giải tốn máy tính, người cần tả tốn máy tính hỗ trợ họ nốt phần lại SWI Prolog ngơn ngữ lập trình logic cho phép định giá câu truy vấn chương trình logic phần mềm hồn tồn miễn phí Từ bắt đầu vào năm 1987, SWI Prolog phát triển mạnh mẽ nhu cầu ứng dụng giới thực, sử dụng rộng rãi nghiên cứu giáo dục ứng dụng thương mại SWI Prolog hoạt động theo hệ thống đơn lẻ, có giao diện trao đổi chiều linh hoạt 2 Sử dụng SWI Prolog 2.1 Bắt đầu Prolog tải chương trình Khởi động swipl-win.exe StartMenu cách mở tập tin có pl từ cửa sổ Windows Prolog Thư mục cài đặt (mặc định C: \ Program Files \ swipl ) chứa thư mục demo với tập tin likes.pl Tập tin mở Prolog từ StartMenu, cách mở likes.pl cửa sổ Windows cách sử dụng lệnh ứng dụng Prolog Chấm dứt lệnh với dấu chấm hết ( ) ? [swi ('demo / like')] Nếu Prolog khởi động trình đơn, thơng qua tùy chọn win_app, làm cho bắt đầu tương đương cục MyDocuments \ Prolog Thư mục tạo không tồn Cửa sổ làm việc SWI Prolog có sau: SWI Prolog làm việc theo chế độ tương tác Dấu nhắc lệnh SWI Prolog cặp dấu chấm hỏi dấu gạch ngang (dấu trừ), liệt kê thứ tự 1, 2, 3, để theo dõi trình làm việc người sử dụng, theo sau trỏ hình: Để khỏi SWI Prolog ta dùng lệnh File/ Exit dùng vị từ halt: ?-halt 2.2 Đang thực truy vấn Sau chương trình Prolog biên dịch tải vào nhớ, người sử dụng đặt câu truy vấn (kết thúc dấu chấm) Tùy theo câu truy vấn, Prolog trả lời YES NO kèm theo kết X= X 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, người sử dụng đặt dấu chấm phẩy “;” 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 đưa kết khác khi, Prolog trả lời NO có nghĩa khơng câu trả lời nữa, YES, người sử dụng muốn dừng lại cách gõ phím Enter Người sử dụng nhận thơng báo lỗi câu truy vấn có vấn đề: ERROR: Undefined procedure< / >% người sử dụng gõ sai tên liên tục, Hoặc ERROR: Syntax error: Operator expected % người sử dụng gõ sai biểu thức 2.3 Lệnh menu Bảng điều khiển SWI-Prolog cung cấp swiplwin.exe có menu để truy cập vào lệnh phổ biến sử dụng Sau số lệnh phổ biến: File/Reload modified files Lệnh tải lại tất tệp nguồn nạp sửa đổi cách sử dụng make / File / Navigator Mở khung nhìn tệp tin Prolog vị từ mà chúng chứa Settings/Font Cho phép thay đổi phông chữ bảng điều khiển Settings/User init file Chỉnh sửa tệp cá nhân hố người dùng Nếu tập tin khơng tồn tại, cài đặt tập tin mặc định swipl.ini có chứa cài đặt sử dụng phổ biến nhận xét Settings/Stack sizes Cho phép xác định kích thước tối đa mà ngăn xếp Prolog khác phép phát triển Mặc định hệ thống chọn để làm cho chương trình lỗi gặp thất bại nhanh chóng với phần cứng khiêm tốn Các chương trình có cấu trúc liệu lớn nhiều điểm lựa chọn thường cần ngăn xếp lớn Lưu ý quy trình Prolog hoạt động phát triển với kích thước nhớ vật lý máy tính bạn làm cho hệ thống chậm Run/Interrupt Cố gắng làm gián đoạn tiến trình Prolog chạy Điều giống cách sử dụng Control-C Đôi ngắt không tôn trọng nhiều thời gian để xử lý Đóng cửa sổ hai lần cung cấp cách để buộc Prolog phải dừng lại Run/New thread Tạo cửa sổ tương tác chạy thread riêng biệt thực Điều sử dụng để kiểm tra sở liệu chương trình nhiệm vụ tiếp tục Debug/Edit spy points Chỉnh sửa điểm phá vỡ vị từ Từ trình soạn thảo PceEmacs điểm phá vỡ đặt lời gọi cụ thể từ điều khoản cụ thể Debug/Graphical debugger Sử dụng trình gỡ lỗi mức nguồn trình gián điệp điểm ngắt lời gọi khác cho phép trình gỡ lỗi Help Menu trợ giúp cung cấp điểm xuất phát khác cho tài liệu có liên quan Các mục bị gắn cờ (trên www) mở trình duyệt internet mặc định bạn trang trang web SWI-Prolog 2.4 Chỉnh sửa chương trình Prolog Có ba tùy chọn để chỉnh sửa Một để chạy trình soạn thảo chọn cửa sổ riêng biệt sử dụng make / lệnh tả để tải lại tệp sửa đổi Ngoài tùy chọn này, Prolog sử dụng để xác định vị từ, mô-đun tệp tải cách xác định trình soạn thảo lựa chọn để sử dụng với lệnh edit / 1, tả Điều đạt cách chỉnh sửa tệp tin cá nhân hóa (xem phần 1.3 ) làm theo hướng dẫn nhận xét Trình soạn thảo mặc định trình soạn thảo có sẵn gọi PceEmacs Trình soạn thảo cung cấp hỗ trợ màu sắc dựa phân tích cú pháp thời gian thực phân tích chéo chương trình Các tùy chọn chỉnh sửa khác bao gồm GNU-Emacs, SWI-Prolog-Editor môi trường PDT dựa Eclipse Xem http://www.swi-prolog.org/IDE.html để có nhìn tổng quan cập nhật 2.5 Một số lệnh hữu ích Phần cung cấp tổng quan ngắn vị từ quan trọng thường sử dụng SWI-Prolog để kiểm soát môi trường File\Consult Mở tệp nguồn Trên Windows, thư mục định với DOS /Windows\ , phải thoát ra, cách sử dụng tiêu chuẩn POSIX / Đặc biệt sử dụng mã nguồn, / ưa thích di động Một danh sách Prolog ([ ]) sử dụng để viết tắt lệnh tư vấn Phần mở rộng tệp tin ( pl lựa chọn lựa chọn) bỏ qua Dưới số ví dụ: ? - consult (likes) Tải likes.pl từ thư mục (xem pwd / ) ? - ['C: / Program Files / pl / demo / likes'] Tải likes.pl sử dụng đường dẫn tuyệt đối ? - ['C: \\ Chương trình Files Cùng sử dụng tên đường dẫn \\ pl \\ demo \\ likes '] kiểu Windows pwd In thư mục làm việc (thư mục) ls Liệt kê tập tin thư mục hành edit Nếu Prolog bắt đầu cách mở pl tập tin thám hiểm, chỉnh sửa tập tin Cũng có sẵn từ trình đơn edit ( + Spec ) Chỉnh sửa tệp tin, vị từ, đun, v.v với tên cho Nếu nhiều mục đặt tên Spec nhắc nhở cho thay mong muốn make Tải lại tất tệp thay đổi kể từ lần nạp cuối Thông thường sử dụng sau chỉnh sửa nhiều tệp gtrace Bắt đầu trình gỡ rối đồ họa Có ba cách để sử dụng Được nhập dạng mục tiêu cấp cao nhất, truy vấn tìm kiếm Ngồi ra, sử dụng kết hợp với mục tiêu gỡ lỗi: ? - gtrace, chạy cuối bạn bao gồm chương trình bạn để bắt đầu truy tìm điểm cụ thể điều kiện cụ thể: , (var (X) -> gtrace; true), , trace Giống gtrace, dựa văn bàn điều khiển apropos ( + Keyword) Tìm kiếm tất vị từ chứa Keyword tên tả ngắn Nếu mơi trường GUI có sẵn kết siêu liên kết Nếu không sử dụng help/ để biết chi tiết lần truy cập chọn help ( + Spec ) Giúp đỡ Spec , thường tên chức giao diện định vị C 3.Các quy ước SWI Prolog - Hằng số, chẳng hạn 1, 2, - Hằng chuỗi bắt dầu chữ viết thường ngồi bao gồm dấu nháy đơn - Hằng logic: true, false - Biến: bắt đầu chữ hoa dấu gạch ngang ‘_’ - Các phần tử thân quy tắc ngăn cách dấu phẩy ‘,’ - Mỗi quy tắc/sự kiện/truy vấn kết thúc dấu chấm ‘.’ - Ký hiệu “”trong quy tắc viết “:-“ - Các thích bắt đầu với “%” (phần lại dòng bỏ qua) Cài đặt 4.1 Các phiên Windows hỗ trợ SWI-Prolog yêu cầu Windows XP (XP, Vista, Windows-7) Trang tải SWI-Prolog chứa chương trình nhị phân cũ chạy phiên cũ Windows 4.2 Chọn phần mở rộng tệp tin Theo mặc định, Prolog sử dụng phần mở rộng pl để tập tin nguồn Prolog Đáng tiếc phần mở rộng mâu thuẫn với ngôn ngữ Perl Nếu muốn sử dụng hai máy Windows SWI-Prolog cho phép chọn phần mở rộng khác trình cài đặt Phần mở rộng pro giải pháp thay thường sử dụng Nếu tính di động vấn đề, bạn nên sử dụng phần mở rộng thay cho tải tệp tin , tệp nguồn tải toàn chương trình sử dụng tệp thơng thường pl mở rộng cho thư viện tập tin tải từ tập tin khác 4.3 Các chương trình cài đặt Bảng liệt kê thành phần cài đặt Một số thành phần đánh dấu (32-bit) (64-bit) Hầu hết điều phiên 64-bit xây dựng cách sử dụng công cụ gần từ phiên gần thư viện yêu cầu sử dụng quy ước đặt tên khác Điều đồng hóa tương lai Chương trình bin \ swipl-win.exe Ứng dụng Windows mặc định để sử dụng tương tác bin \ swipl.exe Phiên dựa điều khiển cho mục đích viết kịch Tiện ích bin \ swipl-ld.exe Linker front-end để tạo file thực thi hỗn hợp Prolog / C / C ++ bin \ swipl-rc.exe Manipulate Prolog tập tin nguồn lực Thư mục quan trọng bin Các file thực thi file DLL library Thư viện Prolog boot Nguồn cho predicates hệ thống Include Các tệp tin tiêu đề C / C ++ để nhúng tạo phần mở rộng Xpce Hệ thống đồ họa XPCE xpce \ prolog \ lib Thư viện XPCE / Prolog DLL tệp hỗ trợ khác boot32.prc Trạng thái Prolog ban đầu (32 bit) boot64.prc Trạng thái Prolog ban đầu (64 bit) \ bin \ libswipl.dll Hạt nhân Prolog \ bin \ plterm.dll Cửa sổ cho swipl-win.exe \ bin \ pthreadVC2.dll Thư viện thời gian chạy POSIX (64-bit) Extension DLLs (plugin) \ bin \ cgi.dll Thu thập CGI GET POST đối số \ bin \ double_metaphone Soundex (âm tương tự) dll \ bin \ memfile.dll Trong `bộ nhớ tạm thời` tập tin ' \ bin \ odbc4pl.dll Giao diện ODBC \ bin \ plregtry.dll Giao diện đăng ký Windows \ bin \ Thực porter_stem.dll \ bin \ random.dll Máy phát số ngẫu nhiên di động \ bin \ rdf_db.dll Cơ sở liệu RDF \ bin \ readutil.dll Tiện ích đọc nhanh \ bin \ sgml2pl.dll Trình phân tích cú pháp SGML / XML \ bin \ socket.dll Giao diện cổng Prolog \ bin \ table.dll Truy cập tệp cấu trúc dạng bảng \ bin \ time.dll Thư viện báo thức thời gian \ bin \ xpce2pl.dll Hệ thống đồ họa XPCE \ bin \ zlib1.dll Thư viện nén (32-bit) \ bin \ zlibwapi.dll Thư viện nén (64-bit) \ bin \ zlib4pl.dll Giao diện thư viện nén 4.4 Các phím trình đơn cài đặt Loại tập tin pl lựa chọn thay (xem phần 3.2 ) có liên quan đến swipl-win.exe Một thư mục chọn (mặc định SWI-Prolog) thêm vào trình đơn bắt đầu giữ phím tắt để Prolog số tiện ích liên quan Các khố đăng ký sau sử dụng Phiên 64-bit sử dụng Prolog64 thay Prolog chìa khóa để chứa cài đặt hai phiên máy Lưu ý việc mở pl tập tin liên kết với phiên Prolog cài đặt HKEY_LOCAL_MACHINE \ Software \ SWI \ Prolog fileExtensi Phần mở rộng sử dụng cho on tệp Prolog group Nhóm menu bắt đầu home Thư mục cài đặt HKEY_CURRENT_USER \ Software \ SWI \ Plwin \ Console Lưu ý: cửa sổ thread-cửa sổ lưu trữ thơng tin phím Height Chiều cao cửa sổ đơn vị ký tự Width Chiều rộng cửa sổ đơn vị ký tự X Cạnh trái cửa sổ theo đơn vị pixel Y Cạnh cửa sổ đơn vị pixel SaveLines Số dòng có sẵn cho chương trình quay lại 4.5 Cấp độ thực Trình cài đặt yêu cầu quản trị viên (Vista hơn) để viết phím tắt phím đăng ký 4.6 Tạo biểu tượng hình Kéo phải swipl-win.exe vào desktop chọn 'Create shortcut' Sau chỉnh sửa thuộc tính thêm -win_app vào dòng lệnh để bắt đầu ứng dụng MyDocuments \ Prolog 5.Một số ví dụ Ví dụ 1: Xét chương trình logic sau: luongcaohon(X,Y)luong(X,Z)^luong(Y,T)^(Z>T) luongbang(X,Y) luong(X,Z)^luong(Y,T)^(Z=T) luong(an,300), luong(binh,400), luong(hai,500), luong(tuan,400), luong(long,450) Cài đặt SWI Prolog sau: luong(an,300) luong(binh,400) luong(hai,500) luong(tuan,400) luong(long,450) luongcaohon(X,Y):-luong(X,Z),luong(Y,T),Z>T luongbang(X,Y):- luong(X,Z),luong(Y,T),Z=T Kết truy vấn ? luongcaohon(X,tuan) thể sau: Ví dụ 2: Tính giai thừa: Cài đặt SWI Prolog sau: factorial(0,1) factorial(N,F) :- N>0, N1 is N-1, factorial(N1,F1), F is N * F1 Ví dụ 3: Xét chương trình logic X*Y =Z s(*,_,0,0) s(*,0,_,0) s(*,1,X,X) s(*,X,1,X) s(*,X,Y,X*Y) s(*,X*Y,W,X*Z) :- integer(Y), integer(W), Z is Y*W s(*,X,Y,Z) :- integer(X), integer(Y), Z is X*Y Ví dụ 4: Bài tốn tháp Hà Nội hanoi(N) :- move(N, left, centre, right) move(0, _, _, _) :- ! move(N, A, B, C) :M is N-1, move(M, A, C, B), inform(A, B), move(M, C, B, A) inform(X, Y) :- write([move, a, disc, from, the, X, pole, to, the, Y, pole]),nl Ví dụ 5: Bài tốn Quicksort split(H, [A|X], [A|Y], Z) :- order(A, H), split(H, X, Y, Z) split(H, [A|X], Y, [A|Z]) :- not(order(A, H)), split(H, X, Y, Z) split(_, [], [], []) quicksort([], X, X) quicksort([H|T], S, X) :- split(H, T, A, B),quicksort(A, S, [H|Y]), quicksort(B, Y, X) Kết luận Một chương trình logic tập kiện quy tắc lưu trữ file với phần mở rộng pl Và với việc sử dụng ngơn ngữ lập trình logic SWI Prolog cho phép trả lời câu hỏi truy vấn chương trình logic cách đơn giản Thông qua tiểu luận chúng em muốn giới thiệu sơ lược cách sử dụng SWI Prolog, giao diện thành phần Trong q trình tìm hiểu chúng em test số chương trình logic cho kết tốt Tuy nhiên với thời gian có hạn nên khơng thể tránh khỏi thiếu sót, chúng em mong hướng dẫn góp ý thầy để chúng em hồn thành tốt đề tài Chúng em xin chân thành cám ơn Tài liệu tham khảo - Giáo trình lập trình logic Trương Công Tuấn – Đại học Khoa học - Đại học Huế - SWI-Prolog for MS-Windows Jan Wielemaker – Đại học VU Amsterdam – Đại học Amsterdam Hà Lan B Phân công thực hiện:

Ngày đăng: 13/06/2018, 02:52

Từ khóa liên quan

Mục lục

  • 1.Giới thiệu về SWI Prolog

  • 2. Sử dụng SWI Prolog

    • 2.1 Bắt đầu Prolog và tải một chương trình

    • 2.2 Đang thực hiện truy vấn

    • 2.3 Lệnh trên menu

    • 2.4 Chỉnh sửa các chương trình Prolog

    • 2.5 Một số lệnh hữu ích

    • 3.Các quy ước trong SWI Prolog

    • 4. Cài đặt

      • 4.1   Các phiên bản Windows được hỗ trợ

      • 4.2   Chọn phần mở rộng tệp tin

      • 4.3   Các chương trình cài đặt

      • 4.4   Các phím và trình đơn đã được cài đặt

      • 4.5   Cấp độ thực hiện

      • 4.6   Tạo biểu tượng trên màn hình

      • 5.Một số ví dụ

      • 6. Kết luận

      • Tài liệu tham khảo

      • B. Phân công thực hiện:

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

Tài liệu liên quan