DIỄN ĐÀN TOÁN TIN
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
CỔNG ĐHQGHN  XEM ĐIỂM  Trang ChínhTrang Chính  Latest imagesLatest images  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  
Bài gửi sau cùng
Bài gửiNgười gửiThời gian
Happy new year 2013 Sat Dec 29, 2012 3:45 pm
Lâu rùi anh không thấy chú nào vào diễn đàn nữa Mon May 07, 2012 9:26 am
Happy new year 2012. Mon Jan 30, 2012 5:05 am
[color=red]Tin "Cực Hot" cho tất cả các bạn và người thân[/color] Wed Oct 05, 2011 4:44 am
Cách đổi lịch âm dương Mon Oct 03, 2011 2:24 am
lâu lâu rùi không lên diễn đàn lớp mình chém gió Fri Sep 30, 2011 9:44 am
TRIỂN LÃM DU HỌC NHẬT BẢN 2010 Vừa học vừa làm thu nhập 1700USD/1 tháng Wed Sep 28, 2011 8:00 am
Vừa đi làm, vừa làm cộng tác viên kiếm tiền... Sun Aug 07, 2011 11:37 am
:(((((((((((((((((((((((((((((((((((((((((((((((((((((((( Sat Aug 06, 2011 5:05 am
Khánh thành website học tiếng anh của Chiến Fri Aug 05, 2011 10:30 am
Funy : Counter strike =)) Mon Jul 25, 2011 10:43 am
Lịch học hè Fri Jul 08, 2011 4:11 pm
Tổng hợp ảnh 24/06/2011 - Lễ tốt nghiệp Wed Jul 06, 2011 9:17 am
Câu lạc bộ tiếng anh của Chiến - cơ hội giao lưu người bản xứ Tue Jun 28, 2011 9:41 pm
[K52A3] CÔNG BỐ TÀI CHÍNH QUỸ LỚP (10/03/2011) Thu Jun 23, 2011 5:35 pm
[VPK] DANH SÁCH TỐT NGHIỆP CHÍNH THỨC Thu Jun 23, 2011 5:31 pm
[VPK] LỄ TRAO BẰNG TỐT NGHIỆP Wed Jun 22, 2011 11:59 am
Pic 21/06 (new and hot) Wed Jun 22, 2011 10:28 am
Gameloft Hà Nội tuyển dụng Mon Jun 20, 2011 8:18 pm
[ CTCTSV ] 21 THÁNG 6 ĐI LẤY HỒ SƠ TỐT NGHIỆP Sat Jun 18, 2011 9:38 am

 

 Ngôn ngữ Prolog

Go down 
4 posters
Tác giảThông điệp
Che..vankhe
Đại Tổng Quản
Đại Tổng Quản
Che..vankhe


Tổng số bài gửi : 129
Sinh nhật : 09/07/1989

Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Ngôn ngữ Prolog   Ngôn ngữ Prolog EmptyWed May 05, 2010 10:51 am

Trong nội dung của môn AI có nội dung về "ngôn ngữ Prolog".
Đây là một ngôn ngữ đặc trưng cho AI, xử lí tri thức. NÓ ra đời từ những năm 70, và phát triển rất mạnh,được hi vọng sẽ là ngôn ngữ nền tảng cho thế hệ máy tính tiếp theo.
Chắc là cả kì thi giữa kì và cuối kì sẽ đều có phần liên quan tới Prolog .Mọi người nên xem qua để biết thêm và làm tốt bài thi của môn AI.
Cấu trúc chương trình, cách viết một chương trình thì mọi người có thể tham khảo thêm giáo trình "Turbo Prolog 2.0" của tác giả Phan Trương Dần, hoặc chương 4 của cuốn "Logic Toán" -Trần Thọ Châu.Đọc mấy ngày là biết hết, đọc một tối thì cũng làm dc vài bài,A E cố gắng lên.

Dưới đây mình trình bày cách làm bài: Viết chương trình Prolog tính trung bình cộng của 3 số nhập từ bàn phím .

Code:
domains
              a,b,c = real.
predicates
                  nhap.
                  TBC(a,b,c).   
clauses
                  nhap :- write("\n Chuong trinh tim Trung binh cong cua 3 so nhap tu ban phim"),
                                      write("Nhap A = "),readReal(A),
                                      write("Nhap B = "),readReal(B),
                                      write("Nhap C = "),readReal(C),
                                      TBC(A,B,C).
          TBC(A,B,C) :- D=A+B+C,
                                        Result=D/3,
                                        write("\n Trung binh cong = ",Result).
goal
                  nhap.
Ở trên, chương trinh được viết đầy đủ 4 phần chính (in đậm )
Quan trọng nhất là phần clauses ,sử dụng định nghĩa 2 vị từ
- nhap :là vị từ không đối
- TBC(A,B,C) : vị từ có 3 tham số là 3 số nguyên .A,B,C,D,Result là các biến nên bắt buộc phải viết bắt đầu bằng chữ in hoa.
Chương trình trên được viết theo kiểu gằn như viết hàm,thủ tục,cho các bạn dễ hiểu hơn,cũng có thể viết tất cả trong phần goal cũng ko vấn đề j.
Chú ý: bạn không thể viết D =D/3. ->ERORR mà phải gán giá trị qua 1 biến khác. Result=D/3,


Chúc mọi người thi tốt
Ngôn ngữ Prolog 807108 Ngôn ngữ Prolog 807108


Được sửa bởi Che..vankhe ngày Wed May 05, 2010 7:32 pm; sửa lần 5. (Reason for editing : Prolog 1001)
Về Đầu Trang Go down
Che..vankhe
Đại Tổng Quản
Đại Tổng Quản
Che..vankhe


Tổng số bài gửi : 129
Sinh nhật : 09/07/1989

Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Re: Ngôn ngữ Prolog   Ngôn ngữ Prolog EmptyWed May 05, 2010 11:05 am

/* Bai 2: Ongchau.pro*/
[b]
Code:

domains
          bo,con,ong,chau = symbol.
predicates
            sinh(symbol,symbol).
            ongChau(ong,chau).
clauses
            sinh(toto,mo).
            sinh(toto,man).
            sinh(mo,am).
            sinh(mo,bat).
            sinh(man,dia).
            sinh(man,chen).
            ongChau(X,Y) :- sinh(X,Z),sinh(Z,Y).
goal
            ongChau(X,Y),write(X," la ong cua ",Y),nl,fail.
Ở trên, tân từ nl : xuống dòng ,
tân từ fail : quay lại tìm hết các phương an có thể


Được sửa bởi Che..vankhe ngày Wed May 05, 2010 7:35 pm; sửa lần 2.
Về Đầu Trang Go down
chien2311
Enterprise Admin
Enterprise Admin
chien2311


Tổng số bài gửi : 1224
Sinh nhật : 23/11/1988

Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Re: Ngôn ngữ Prolog   Ngôn ngữ Prolog EmptyWed May 05, 2010 3:18 pm

tiếp đi, còn bài nào không ??
Về Đầu Trang Go down
chien2311
Enterprise Admin
Enterprise Admin
chien2311


Tổng số bài gửi : 1224
Sinh nhật : 23/11/1988

Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Re: Ngôn ngữ Prolog   Ngôn ngữ Prolog EmptyWed May 05, 2010 3:19 pm

First, we express the property of being a man or woman
by following
PROLOG facts:

man(adam).
man(peter).
man(paul).

woman(marry).
woman(eve).


Then, we can add relation "parent" which
associates parent and child.


parent(adam,peter). % means adam is parent of peter
parent(eve,peter).
parent(adam,paul).
parent(marry,paul).


Till now, we added only facts to our program but the
real power of Prolog is in
rules. While facts state the relation explicitely, rules define
the relation in a more general way. Each rule has its
head - name of the defined relation, and its body
- a real definition of the relation. The following rules define the relations being a father and being a mother
using previously defined relations of being a man or woman and being a parent.


father(F,C):-man(F),parent(F,C).
mother(M,C):-woman(M),parent(M,C).


Note that we use variables (start with capital letter) to express the feature that every
man which is a parent of any child is also her or his father. If some parameter of the relation is not important
we can use anonymous variable (denoted _ ) like in these definitions:


is_father(F):-father(F,_).
is_mother(M):-mother(M,_).


Before proceeding further one should know how to run
the Prolog programs. You run the program by asking
questions like this one:

?-father(X,paul).


which expresses: who is father of paul? The answer
is X=adam, naturally.

Now extend your facts database and try to define other
family relations like being a son, aunt or grandparent. Also, try to ask Prolog system various questions and see
what happens. You can compare your program with following rules:


son(S,P):-man(S),parent(P,S).
daughter(D,P):-woman(D),parent(P,D).

siblings(A,B):-parent(P,A),parent(P,B),A\=B.
% siblings have at least one common parent
% the test A\=B preserves that siblings are different persons


full_siblings(A,B):-
parent(F,A),parent(F,B),
parent(M,A),parent(M,B),
A\=B, F\=M.
% full siblings have common parents (both)
% the test F\=M preserves that full siblings have two different parents (father and mother, naturally)


full_siblings2(A,B):-
father(F,A),father(F,B),
mother(M,A),mother(M,B),
A\=B.
% another solution to "full siblings problem" that uses relations father and mother



uncle(U,N):-man(U),siblings(U,P),parent(P,N).
aunt(A,N):-woman(A),siblings(A,P),parent(P,N).

grand_parent(G,N):-parent(G,X),parent(X,N).


Till now, we use only one rule to express the newly
defined relation but we can also define the relation using two and more rules. If we want to express that being
a human means being a man or being a woman, we can do it by these two rules:


human(H):-man(H).
human(H):-woman(H).


The body of rule can also use the relation that is
just being defined. This features is called
recursion and the following rules show its typical usage:

descendent(D,A):-parent(A,D).
descendent(D,A):-parent(P,D),descendent(P,A).


One can use the feature of PROLOG of non-determing
the input and output variables and easily define the relation ancestor:


ancestor(A,D):-descendent(D,A).
Về Đầu Trang Go down
Spammer
Quan Nhị Phẩm
Quan Nhị Phẩm
Spammer


Tổng số bài gửi : 103
Sinh nhật : 12/10/1989

Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Re: Ngôn ngữ Prolog   Ngôn ngữ Prolog EmptyWed May 05, 2010 5:59 pm

Amen!! khong biet bac Chien viet cai gi nua.
Về Đầu Trang Go down
bongda
Quan Chi Huyện
Quan Chi Huyện
bongda


Tổng số bài gửi : 34
Sinh nhật : 23/02/1988

Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Re: Ngôn ngữ Prolog   Ngôn ngữ Prolog EmptyWed May 05, 2010 6:42 pm

có mấy bài lý thuyết ko
Về Đầu Trang Go down
Che..vankhe
Đại Tổng Quản
Đại Tổng Quản
Che..vankhe


Tổng số bài gửi : 129
Sinh nhật : 09/07/1989

Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Re: Ngôn ngữ Prolog   Ngôn ngữ Prolog EmptyWed May 05, 2010 7:39 pm

Ngôn ngữ Prolog 994253 Ngôn ngữ Prolog 994253 Ngôn ngữ Prolog 994253 Ngôn ngữ Prolog 994253
ko hiểu Chiến ja post cái j nữa .
Amen[
Amen Ngôn ngữ Prolog 879343
Amen :s37
Amen :s37
:s12
:s13:s65
:s56
Về Đầu Trang Go down
chien2311
Enterprise Admin
Enterprise Admin
chien2311


Tổng số bài gửi : 1224
Sinh nhật : 23/11/1988

Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Re: Ngôn ngữ Prolog   Ngôn ngữ Prolog EmptyThu May 06, 2010 9:21 am

:D là một đống hướng dẫn thiết lập bai toán quan hệ gia phả đó, chịu khó đọc tiếng anh tí :D
Về Đầu Trang Go down
Sponsored content





Ngôn ngữ Prolog Empty
Bài gửiTiêu đề: Re: Ngôn ngữ Prolog   Ngôn ngữ Prolog Empty

Về Đầu Trang Go down
 
Ngôn ngữ Prolog
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Cách dùng và lập trình visual prolog ??
» Ngọn đèn xanh
» Món này ngon quá.em Em nhìn mà..........
» CÁCH SỬA NGÔN NGỮ CUẢ DIỄN ĐÀN
» Giao trinh :"Lập trình Turbo Prolog 2.0" của tác giả Phan Trương Dần

Permissions in this forum:Bạn không có quyền trả lời bài viết
DIỄN ĐÀN TOÁN TIN :: CÁC VẤN ĐỀ CHUNG :: KÌ HỌC 2 NĂM THỨ III :: TRÍ TUỆ NHÂN TẠO-
Chuyển đến 
Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất