1. Trang chủ
  2. » Công Nghệ Thông Tin

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

20 906 4

Đ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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 132,34 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.

Trang 1

TÌM HIỂU VỀ MÔ HÌNH SWI

PROLOG TRONG LẬP TRÌNH LOGIC

Trang 2

MỤC LỤC

A Nội dung tiểu luận: 3

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

2 Sử dụng SWI Prolog 3

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

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

2.3 Lệnh trình đơn 5

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

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

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

4 Cài đặt 10

4.1 Các phiên bản Windows được 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 và trình đơn đã được cài đặt 13

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

4.6 Tạo mục trình đơn trên mà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

Trang 3

A Nội dung tiểu luận:

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

Prolog là một ngôn ngữ lập trình Tên gọi Prolog được xuất phát từ cụm từ tiếng Pháp Programmation en logique, nghĩa là "lập trình theo lô gích" Xuất hiện từ năm 1972 (do Alain Colmerauer và Robert Kowalski thiết kế), 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 (hợp nhất, quay lui và tìm kiếm theo chiều sâu) để tìm câu trả lời cho người dùng

Prolog được sử dụng nhiều trong các ứng dụng của trí tuệ nhân tạo và ngôn ngữ học trong khoa học máy tính (đặc biệt là trong ngành xử lý ngôn ngữ tự nhiên vì đây là mục tiêu thiết kế ban đầu của nó) Cú pháp và ngữ nghĩa của Prolog đơn giản và sáng sủa, nó được người Nhật coi là một trong những nền tảng

để xây dựng máy tính thế hệ thứ năm mà ở đó, thay vì phải mô

tả cách giải quyết một bài toán trên máy tính, con người chỉ cần

mô tả bài toán và máy tính sẽ hỗ trợ họ nốt phần còn lại

SWI Prolog là ngôn ngữ lập trình logic cho phép định giá câu truy vấn đối với chương trình logic và phần mềm hoàn toàn miễn phí Từ khi bắt đầu vào năm 1987, SWI Prolog đã được phát triển mạnh mẽ do nhu cầu của các ứng dụng thế giới thực, được sử dụng rộng rãi trong nghiên cứu và giáo dục cũng như cá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 2 chiều linh hoạt

Trang 4

2 Sử dụng SWI Prolog

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

Khởi động swipl-win.exe có thể được bắt đầu từ StartMenu hoặc bằng cách mở một tập tin có đuôi là pl từ cửa sổ Windows của Prolog Thư mục cài đặt (mặc định C: \ Program Files \ swipl ) chứa một thư mục demo với các tập tin likes.pl Tập tin này có thể được mở trong Prolog từ StartMenu, bằng cách mở likes.pl trong cửa sổ Windows hoặc bằng cách sử dụng lệnh trong ứng dụng Prolog Chấm dứt lệnh với một dấu chấm hết ( )

? [swi ('demo / like')]

Nếu Prolog được khởi động bắt đầu từ trình đơn, nó sẽ được thông qua tùy chọn win_app, làm cho nó bắt đầu bằng tương đương cục bộ của MyDocuments \ Prolog Thư mục này được tạo ra nếu nó không tồn tại

Cửa sổ làm việc của SWI Prolog có hình như sau:

Trang 5

SWI Prolog làm việc theo chế độ tương tác Dấu nhắc lệnh SWI Prolog là một cặp dấu chấm hỏi và dấu gạch ngang (dấu trừ), được liệt kê thứ tự 1, 2, 3, để theo dõi quá trình làm việc của người sử dụng, theo sau là con trỏ màn hình:

Để thoát khỏi SWI Prolog ta dùng lệnh File/ Exit hoặc dùng

vị từ halt:

?-halt

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

Sau khi một chương trình Prolog được biên dịch và tải vào bộ nhớ, người sử dụng có thể đặt câu truy vấn (kết thúc bởi một dấu chấm) Tùy theo câu truy vấn, Prolog trả lời YES hoặc

NO và kèm theo kết quả của X=<value> nếu trong X có chứa biến X nào đó Trong trường hợp có nhiều câu trả lời, ngay sau kết quả trả lời đầu tiên, người sử dụng có thể đặt một dấu chấm phẩy “;” nếu muốn tiếp tục yêu cầu Prolog đưa ra các câu trả lời khác Tiếp tục quá trình này, Prolog lần lượt đưa ra các kết quả khác nhau cho đến khi, hoặc Prolog trả lời NO thì có nghĩa

là không còn câu trả lời nào nữa, hoặc YES, nếu người sử dụng muốn dừng lại bằng cách gõ phím Enter Người sử dụng có thể nhận được thông báo lỗi nếu 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

Trang 6

2.3 Lệnh trên menu

Bảng điều khiển SWI-Prolog được cung cấp bởi swipl-win.exe có một menu để truy cập vào các lệnh phổ biến

nhất được sử dụng Sau đây là một số lệnh phổ biến:

File/Reload modified files

Lệnh này tải lại tất cả các tệp nguồn nạp đã được sửa đổi bằng cách sử dụng make / 0

File / Navigator

Mở một khung nhìn mới về các tệp tin Prolog và các vị từ

mà chúng chứa

Settings/Font

Cho phép thay đổi phông chữ của bảng điều khiển

Settings/User init file

Chỉnh sửa tệp cá nhân hoá người dùng Nếu tập tin đó không tồn tại, nó đầu tiên cài đặt một tập tin mặc định như swipl.ini có chứa các cài đặt được sử dụng phổ biến trong nhận xét

Settings/Stack sizes

Cho phép xác định kích thước tối đa mà các ngăn xếp Prolog khác nhau được phép phát triển Mặc định của hệ thống được chọn để làm cho các 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

dữ liệu lớn hoặc nhiều điểm lựa chọn thường cần các ngăn xếp lớn hơn Lưu ý rằng quy trình Prolog đang hoạt động đang phát triển với kích thước bộ nhớ vật lý của máy tính của bạn có thể làm cho hệ thống rất chậm

Trang 7

Cố gắng làm gián đoạn tiến trình Prolog đang chạy Điều

này giống như cách sử dụng Control-C Đôi khi ngắt không

được tôn trọng hoặc mất rất nhiều thời gian để xử lý Đóng cửa

sổ hai lần cung cấp một cách để buộc Prolog phải dừng lại

Run/New thread

Tạo ra một cửa sổ tương tác mới đang chạy trong một thread riêng biệt của thực hiện Điều này có thể được sử dụng

để kiểm tra cơ sở dữ liệu hoặc chương trình trong khi nhiệm vụ chính tiếp tục

Debug/Edit spy points

Chỉnh sửa điểm phá vỡ trên các vị từ Từ trình soạn thảo PceEmacs điểm phá vỡ cũng có thể được đặt trên các lời gọi cụ thể từ các điều khoản cụ thể

Debug/Graphical debugger

Sử dụng trình gỡ lỗi mức nguồn trên trình gián điệp tiếp theo hoặc điểm ngắt hoặc lời gọi khác cho phép trình gỡ lỗi

Help

Menu trợ giúp cung cấp các điểm xuất phát khác nhau

cho các 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 của bạn trên một

trang của trang web SWI-Prolog

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

Có ba tùy chọn để chỉnh sửa Một là để chạy một trình soạn thảo đã chọn trong một cửa sổ riêng biệt và sử dụng make / 0 lệnh mô tả dưới đây để tải lại các tệp đã sửa

Trang 8

đổi Ngoài tùy chọn này, Prolog có thể được sử dụng để xác định các vị từ, mô-đun và các tệp được tải bằng cách xác định trình soạn thảo được lựa chọn để sử dụng với lệnh edit / 1, được mô tả dưới đây Điều này đạt được bằng cách chỉnh sửa tệp tin cá nhân hóa (xem phần 1.3 ) và làm theo các hướng dẫn trong nhận xét

Trình soạn thảo mặc định là trình soạn thảo có sẵn

được gọi là PceEmacs Trình soạn thảo này cung cấp sự hỗ trợ

về màu sắc dựa trên phân tích cú pháp thời gian thực và phân tích chéo của chương trình

Các tùy chọn chỉnh sửa khác bao gồm GNU-Emacs, SWI-Prolog-Editor và môi trường PDT dựa trên Eclipse Xem http://www.swi-prolog.org/IDE.html để có một cái nhìn tổng quan cập nhật

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

Phần này cung cấp một tổng quan rất ngắn về các vị từ quan trọng hoặc thường được sử dụng SWI-Prolog để kiểm soát môi trường

File\Consult

Mở tệp nguồn Trên Windows, các thư mục có thể được chỉ định với DOS /Windows\ , phải được thoát ra, hoặc bằng cách sử dụng tiêu chuẩn POSIX / Đặc biệt khi sử dụng trong mã nguồn, / được ưa thích hơn vì nó là di động Một danh sách Prolog ([ ]) có thể được sử dụng để viết tắt lệnh tư vấn Phần

mở rộng tệp tin ( pl cũng như lựa chọn được lựa chọn) có thể được bỏ qua Dưới đây là một số ví dụ:

Trang 9

? - consult (likes) Tải likes.pl từ thư mục hiện

tại (xem pwd / 0 )

? - ['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

\\ pl \\ demo \\ likes ']

Cùng sử dụng tên đường dẫn kiểu Windows

pwd

In thư mục làm việc (thư mục)

ls

Liệt kê các tập tin trong thư mục hiện hành

edit

Nếu Prolog được bắt đầu bằng cách mở một .pl tập tin trong thám hiểm, chỉnh sửa tập tin này Cũng có sẵn từ trình đơn

edit ( + Spec )

Chỉnh sửa tệp tin, vị từ, mô đun, v.v với tên đã cho Nếu

nhiều mục được đặt tên Spec nó nhắc nhở cho sự thay thế

mong muốn

make

Tải lại tất cả các tệp đã được thay đổi kể từ lần nạp cuối cùng Thông thường được sử dụng sau khi chỉnh sửa một hoặc 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ưới dạng mục tiêu duy nhất ở cấp cao nhất, truy vấn tiếp theo

sẽ được tìm kiếm Ngoài ra, nó có thể được sử dụng kết hợp với

Trang 10

mục tiêu được gỡ lỗi: ? - gtrace, chạy và cuối cùng bạn có thể bao gồm nó trong chương trình của bạn để bắt đầu truy tìm tại một điểm cụ thể hoặc dưới một điều kiện cụ thể:

,

(var (X) -> gtrace; true),

,

trace

Giống như gtrace, nhưng dựa trên văn bản trên bàn điều khiển

apropos ( + Keyword)

Tìm kiếm tất cả các vị từ chứa Keyword trong tên của nó hoặc

mô tả ngắn Nếu một môi trường GUI có sẵn thì kết quả là các siêu liên kết Nếu không sử dụng help/ 1 để biết chi tiết về các lần truy cập được chọn

help ( + Spec )

Giúp đỡ Spec , thường là tên của một chức năng giao diện định

vị hoặc C

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

- Hằng số, chẳng hạn 1, 2, 5

- Hằng chuỗi bắt dầu bằng một chữ cái viết thường hoặc ngoài ra có thể được bao gồm trong dấu nháy đơn

- Hằng logic: true, false

- Biến: bắt đầu bằng chữ hoa hoặc dấu gạch ngang dưới ‘_’

- Các phần tử của thân quy tắc được ngăn cách bởi dấu phẩy ‘,’

Trang 11

- Mỗi quy tắc/sự kiện/truy vấn kết thúc bằng dấu chấm

‘.’

- Ký hiệu “”trong quy tắc được viết là “:-“

- Các chú thích bắt đầu với “%” (phần còn lại của dòng này sẽ được bỏ qua)

4 Cài đặt

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

SWI-Prolog yêu cầu Windows XP hoặc mới hơn (XP, Vista, Windows-7) Trang tải về của SWI-Prolog chứa các chương trình nhị phân cũ hơn chạy trên các phiên bản cũ của 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 để chỉ các tập tin nguồn Prolog Đáng tiếc phần mở rộng này mâu thuẫn với ngôn ngữ Perl Nếu muốn sử dụng cả hai trên cùng một máy Windows SWI-Prolog cho phép chọn một phần mở rộng khác trong quá trình cài đặt Phần mở rộng .pro là một giải pháp thay thế thường được sử dụng Nếu tính di động là

vấn đề, bạn nên sử dụng phần mở rộng thay thế chỉ cho tải

tệp tin , tệp nguồn tải toàn bộ chương trình và sử dụng tệp

thông thường .pl mở rộng cho các thư viện và các tập tin tải

từ các tập tin khác

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

Bảng dưới đây liệt kê các thành phần được cài đặt Một

số thành phần được đánh dấu (32-bit) hoặc (64-bit) Hầu hết điều này là do phiên bản 64-bit được xây dựng bằng cách sử dụng các công cụ gần đây hơn và từ các phiên bản gần đây của

Trang 12

các thư viện yêu cầu sử dụng các quy ước đặt tên khác nhau Điều này sẽ có thể được đồng bộ hóa trong 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 bản dựa trên điều

khiển cho các mục đích viết kịch bản

Tiện ích

bin \ swipl-ld.exe Linker front-end để tạo các

file thực thi hỗn hợp Prolog /

C / C ++

bin \ swipl-rc.exe Manipulate Prolog các tập

tin nguồn lực

Thư mục quan trọng

bin Các file thực thi và các file

DLL

boot Nguồn cho predicates hệ

thống Include Các tệp tin tiêu đề C / C ++

để nhúng hoặc tạo các phần mở rộng

xpce \ prolog \ lib Thư viện XPCE / Prolog

Trang 13

DLL và các 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

pthreadVC2.dll

Thư viện thời gian chạy POSIX (64-bit)

Extension DLLs (plugin)

\ bin \ cgi.dll Thu thập CGI GET và POST

đối số

double_metaphone

dll

Soundex (âm thanh tương tự)

\ 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

porter_stem.dll

Thực hiện

\ bin \ random.dll Máy phát số ngẫu nhiên di

động

\ bin \ rdf_db.dll Cơ sở dữ liệu RDF

Trang 14

\ 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 cấu trúc

dưới dạng bảng

\ bin \ time.dll Thư viện báo thức và 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 và trình đơn đã được cài đặt

Loại tập tin .pl hoặc lựa chọn thay thế (xem phần 3.2 ) có liên quan đến swipl-win.exe Một thư mục đã chọn (mặc định là SWI-Prolog) được thêm vào trình đơn bắt đầu giữ phím tắt để Prolog và một số tiện ích liên quan Các khoá đăng

ký sau đây đang được sử dụng Phiên bản 64-bit sử dụng Prolog64 thay vì Prolog như một chìa khóa để chứa cài đặt của cả hai phiên bản trên cùng một máy Lưu ý rằng việc mở một .pl tập tin có thể được liên kết với một trong các phiên bản Prolog được cài đặt

HKEY_LOCAL_MACHINE \ Software \ SWI \ Prolog

fileExtensi

on

Phần mở rộng được sử dụng cho các tệp Prolog

Trang 15

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ữ cùng một thông tin trong các phím con

Height Chiều cao cửa sổ trong các đơn vị ký

tự Width Chiều rộng cửa sổ trong các đơn vị

ký tự

X Cạnh trái của cửa sổ theo đơn vị

pixel

Y Cạnh trên cùng của cửa sổ trong các

đơn vị pixel SaveLines Số dòng có sẵn cho chương trình

quay lại

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

Trình cài đặt yêu cầu quản trị viên (Vista và mới hơn)

để có thể viết các phím tắt và các phím đăng ký

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

Kéo phải swipl-win.exe vào desktop và chọn

'Create shortcut' Sau đó chỉnh sửa thuộc tính và 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:

Trang 16

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 trong SWI Prolog như 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 quả của truy vấn ? luongcaohon(X,tuan) được thể hiện như sau:

Ví dụ 2: Tính giai thừa:

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w