há há... cuối cùng cũng bít cái prolog là cái quái j... nó cũng zui zui lâu lâu cũng lảng nhách=))
Cố lên ku Tiến ơi...
NHỮNG ĐIỂM CẦN LƯU Ý TRONG PROLOG
Cách biểu diễn quan hệ:
Prolog là một chương trình gồm Sự Kiện(Event)(còn gọi là Cơ Sở(fact)) và Luật (Rule).
Kí hiệu biến: chữ đầu in hoa.
Sự kiện:
P(A0, … , An): A0, …, An có tính chất P.
P(A,B): A có quan hệ P với B.
Luật:
Gồm nhiều sự kiện, định nghĩa một quan hệ bằng một số quan hệ khác.
Trong hình minh họa:
woman(mia) à mia có tính chất là phụ nữ
loves(marcellus,mia) à marcellus, mia có quan hệ iu nhau (J)
dòng 14 là một luật à quan hệ X ganh tị (jealous(X,Y)) với Y khi X và Y cùng có quan hệ yêu với Z.
Mô tả sử dụng SWI-prolog Editor:
Đầu tiên cài SWI-Prolog tại trang web: http://www.swi-prolog.org/
à chọn version thích hợp
Cài SWI-Prolog Editor: http://lernen.bildung.hessen.de/informatik/swiprolog/indexe.htm
Sau khi cài đặt thành công sẽ có giao diện như trên.
Lưu ý khi làm bài:
Ø Lưu đúng source folder để chạy.(chọn icon thứ 3 từ trên xuống trong Phần hỗ trợ source code)
Ø Truy vấn bắt đầu bằng ?- kết thúc .
Ø Trước khi bắt đầu chương trình dùng :
o [tên file thực thi không có đuôi].
o listing. (xem kiểm tra các đoạn code sẽ thực thi)
Ví dụ minh họa:
Chương trình 1:
Phần chương trình (viết trong phần soạn thảo)(file lưu là alo.pl, source folder trong document).
% Author:
% Date: 11/18/2008
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent,mia).
loves(marcellus,mia).
loves(pumpkin,honeybunny).
loves(honeybunny,pumpkin).
jealous(X,Y):- loves(X,Z),loves(Y,Z).
%quan hệ ganh tị nếu hai người cùng iu người thứ 3
Phần truy vấn:
Welcome to SWI-Prolog (Multi-threaded, 32 bits, Version 5.6.62)
Copyright (c) 1990-2008 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.
For help, use ?- help(Topic). or ?- apropos(Word).
1 ?- [alo].
% alo compiled 0.00 sec, 1,564 bytes
true.
3 ?- listing.
loves(vincent, mia).
loves(marcellus, mia).
loves(pumpkin, honeybunny).
loves(honeybunny, pumpkin).
woman(mia).
woman(jody).
woman(yolanda).
jealous(A, B) :-
loves(A, C),
loves(B, C).
true.
4 ?- woman(X).
X = mia ;
X = jody ;
X = yolanda.
%liệt kê các giá trị có tính chất là phụ nữ, nhấn enter để liệt kê ra tất cả các giá trị.
5 ?- man(Y).
ERROR: toplevel: Undefined procedure: man/1 (DWIM could not correct goal) %Khong quan he man
6 ?- man(X).
ERROR: toplevel: Undefined procedure: man/1 (DWIM could not correct goal)
7 ?- loves(marcellus,X).
X = mia.
% những người có quan hệ iu với marcellus
8 ?- jealous(marcellus,X).
X = vincent
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét