Tải bản đầy đủ (.pdf) (17 trang)

MOT SO CHUONG TRINH PROLOG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (376.63 KB, 17 trang )

PHU LUC A

Mọỹ t sọỳ chổồng trỗnh Prolog
Yóu cỏửu õoỹc hióứu, dổỷng laỷi thuỏỷt toaùn vaỡ õaùnh giaù õọỹ phổùc taỷp caùc chổồng
trỗnh Prolog dổồùi õỏy.
Chaỷy chổồng trỗnh SWI-Prolog ra kóỳt quaớ.
% Thao taùc trón cỏy
tree(X) :b_tree(5, b_tree(2, b_tree(8, et, et), b_tree(2, et, et)), b_tree(3, et,
b_tree(9, b_tree(2, et, et), et))).
is_tree(et).
is_tree(X) :X=tree(_, Y, Z), is_tree(Z), is_tree(Z).
in_ordre(et).
in_ordre(tree(R, G, D)) :in_ordre(G), write(-), write(R), write(-), in_ordre(D).
pre_ordre(et).
pre_ordre(tree(R, G, D)) :write(-), write(R), write(-), pre_ordre(G), pre_ordre(D).
post_ordre(et).
post_ordre(tree(R, G, D)) :post_ordre(G), post_ordre(D), write(-), write(R), write(-).
root(et).
root(tree(R, G, D), X) :X is R.
sort(et).
sort(tree(R, G, D)) :RG is root(G, X), RD is root(D, X), R>RG, Ris_tree(emptytree).
is_tree(X) :X=tree(A, B, C), number(A), is_tree(B), is_tree(C).
187


188

Lỏỷp trỗnh lọgich trong Prolog

treetest(X) :X=(tree(5, tree(2, tree(8, emptytree, emptytree), tree(2, emptytree,


emptytree)), tree(3, emptytree, tree(9, tree(2, emptytree, emptytree),
emptytree)))).
treesort(X) :X=(tree(5, tree(3, tree(2, emptytree, emptytree), tree(25, emptytree,
emptytree)), tree(11, tree(8, emptytree, tree(9, emptytree, emptytree)),
tree(13, emptytree, emptytree)))).
affpre(X) :X=emptytree.
affpre(X) :X=tree(A, B, C), write(A), affpre(B), affpre(C).
affin(X) :X=emptytree.
affin(X) :X=tree(A, B, C), affin(B), write(A), affin(C).
affpost(X) :X=emptytree.
affpost(X) :X=tree(A, B, C), affpost(B), affpost(C), write(A).
tree_sort(X) :X=emptytree.
tree_sort(X) :X=tree(A, B, C), B=emptytree, C=emptytree.
tree_sort(X) :X=tree(A, B, C), B=tree(Y, _, _), A>Y, tree_sort(B), C=emptytree.
tree_sort(X) :X=tree(A, B, C), B=emptytree, C=tree(Y, _, _), Y>A, tree_sort(C).
tree_sort(X) :X=tree(A, B, C), B=tree(Y, _, _), A>Y, tree_sort(B), C=tree(Z, _, _), Z>A,
tree_sort(C).
% Baỡi toaùn Thaùp Haỡ Nọỹi (Hanoi towers).
towers :repeat,
write('Number of rings (or ctl-c to end): '),
read(X),
hanoi(X),
fail.
hanoi(N) :- move(N,left,center,right), !.
move(0,_,_,_) :- !.


Phuỷ luỷc A Mọỹt sọỳ chổồng trỗnh Prolog
move(N,A,B,C) :M is N-1,
move(M,A,C,B),

inform(A,B),
move(M,C,B,A).
inform(A,B) :write([move,disk,from,A,to,B]), nl.

% Taỷo baớng (Table).
table :create_popup( _,_,_,_ ),
for(0,15,Row),
for(0,15,Colidx),
Attr is Row*16+Colidx,
Col is 5*Colidx,
tmove(Row,Col),
write(Attr),
tmove(Row,Col),
wa(5, Attr),
fail.
table :nl,nl,write( $Press any key to continue$ ),
get0_noecho(_),
exit_popup.
for(X, X, X) :- !.
for(Y, X, Y) :- true.
for(X, Y, Z) :- inc(X, X1), for(X1, Y, Z).
:- public misscann/0.
misscann :- solve(start-state(3,3,left), X), pathwrite(X).
solve(Init-state(0,0,right), Init-state(0,0,right)-finish) :- !.
solve(Init-S1, Final) :new_state(S1, S2),
not member(S2, Init),
solve(Init-S1-S2, Final).
new_state(state(M1,C1,left), state(M2,C2,right)) :move(M, C),
M =< M1,
C =< C1,

M2 is M1-M,
C2 is C1-C,
balanced(M2, C2).
new_state(state(M1,C1,right), state(M2,C2,left)) :-

189


Lỏỷp trỗnh lọgich trong Prolog

190
move(M, C),
M2 is M1+M,
C2 is C1+C,
M2 =< 3,
C2 =< 3,
balanced(M2, C2).
balanced(X, X) :- !.
balanced(3, X) :- !.
balanced(0, X).
move(2,0).
move(1,0).
move(1,1).
move(0,1).
move(0,2).
member(X, Y - X) :- !.
member(X, Y - Z) :- member(X,Y).
pathwrite(A-B) :- !,
pathwrite(A),
nl,

!,
pathwrite(B).
pathwrite(X) :- write(X).

% solve/1
% PROLOG interpreter written in PROLOG (so-called vanilla meta-interpreter)
% usage: ?-solve(PrologGoal).
solve(true).
solve((A, B)) :solve(A),
solve(B).
solve(A) :clause(A,B),
solve(B).
% Vờ duỷ mọỹt hóỷ chuyón gia
animal(su_tu_bien, [1, 2, 8, 18]).
animal(ca_voi, [1, 2, 4, 9]).
animal(su_tu, [1, 2, 5, 11]).
animal(bỏo, [1, 2, 5, 10, 17]).
animal(gau, [1, 2, 6, 8, 15, 16, 17]).
animal(huou_cao_co, [1, 5, 7, 10]).
animal(voi, [1, 5, 6, 12, 13, 18]).
animal(con_diec, [3, 7, 8, 15, 18]).
animal(chim_mũng_bien, [3, 8, 14, 15, 18]).
animal(d_dieu_chõu_phi, [7]).
animal(chim_canh_cut, [4, 8, 19]).


Phuỷ luỷc A Mọỹt sọỳ chổồng trỗnh Prolog
question(1) :write('Con v t ny cú lụng khụng khụng ?),
nl, !, answer(1).
question(2) :write(Con võ.t ny n th t khụng ?),

nl, !, answer(2).
question(3) :write(Con võ.t ny bi t bay khụng ?),
nl, !, answer(3).
question(4) :write(Con võ.t ny cú s ng trong n c khụng ?),
nl, !, answer(4).
question(5) :write(Con võ.t ny cú s ng Chõu Phi khụng ?),
nl, !, answer(5).
question(6) :write(Con võ.t ny cú s ng trong r ng khụng ?),
nl, !, answer(6).
question(7) :write(Con võ.t ny cú chõn di khụng ?),
nl, !, answer(7).
question(8):write(Con võ.t ny cú n cỏ khụng ?),
nl, !, answer(8).
question(9):write(Con võ.t ny cú n phự du sinh v t n i khụng ?),
nl, !, answer(9).
question(10):write(Con võ.t ny cú da lụng l m m khụng ?),
nl, !, answer(10).
question(11):write(Con võ.t ny cú b m khụng ?),
nl, !, answer(11).
question(12):write(Con võ.t ny cú r ng nanh hay ng khụng ?),
nl, !, answer(12).
question(13):write(Con võ.t ny cú s ng khụng ?),
nl, !, answer(13).
question(14):write(Con võ.t ny cú lm t trong nỳi ỏ khụng ?),
nl, !, answer(14).
question(15):write(Con võ.t ny cú m t ph n da (lụng) mu tr ng khụng ?),
nl, !, answer(15).
question(16):write(Con võ.t ny cú m t ph n da (lụng) mu nõu khụng ?),
nl, !, answer(16).
question(17):-


191


Láûp trçnh lägich trong Prolog

192

write(‘Con vâ.t này có leo trèo trên cây không ?’),
nl, !, answer(17).
question(18):write(‘Con vâ.t này có da (lông) màu xám không ?’),
nl, !, answer(18).
question(19):write(‘Con vâ.t này có da (lông) màu tr ng và đen không ?’),
nl, !, answer(19).
% Nh n di n con v t
identifier :animal(X, Y),
put_questions(Y),
explaining(X, Y),
abolish(discovery, 2).
identifier(X) :write(‘Con v t ch a bi t.'), nl.
% H chuyên gia đ t câu h i h i ng
put_questions([]).
put_questions([ X|Y ]) :questioner(X),
put_questions(Y).
questioner(X) :discovery(X, yes), !.
questioner(X) :discovery(X, no), !, fail.
questioner(X) :question(X).

c l i ng


i s d ng

% Phân tích câu tr l i
answer(X) :read(R),
assert(discovery(X, R)),
R = yes.
explaining(X, Y) :write(‘ ây là con :'),
write(X), nl,
write('B i vì :'),
nl, explications(Y).
explications([ ]).
explications([ X1|X2 ]) :expl(X1), nl,
explications(X2).
expl(1) :write(‘Con vâ.t này là loài đ ng v t có vú.').


Phuỷ luỷc A Mọỹt sọỳ chổồng trỗnh Prolog
expl(2) :write(Con võ.t ny l loi ng v t n th t.').
expl(3) :write(Con võ.t ny bi t bay.').
expl(4) :write('Con v t ny s ng trong n c.').
expl(5) :write(Con võ.t ny s ng Chõu Phi.').
expl(6) :write(Con võ.t ny s ng trong r ng.').
expl(7) :write(Con võ.t ny cú chõn di.').
expl(8) :write(Con võ.t ny n cỏ.').
expl(9) :write(Con võ.t ny n n phự du sinh v t n i.').
expl(10) :write(Con võ.t ny cú da lụng l m m.').
expl(11) :write(Con võ.t ny cú b m.').

193



PHỦ LỦC B

Hỉåï n g dáù n sỉí dủ n g SWI-Prolog
I.

Giåïi thiãûu SWI-Prolog

SWI-Prolog thüc h Prolog Edinburgh do Giạo sỉ Jan Wielemaker xáy
dỉûng tỉì nàm 1983 tải Khoa Khoa hc Thäng tin X häüi, trỉåìng Âải hc
Amsterdam, H Lan (Dept. of Social Science Informatics, SWI, University of
Amsterdam, Netherlands). Hiãûn nay, cọ thãø ti miãùn phê pháưn mãưm SWIProlog phiãn bn 5.2.11 for Windows tỉì âëa chè Web :
/>SWI-Prolog cọ mäüt thỉ viãûn vë tỉ, v ti 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 l mäüt ngän ngỉỵ sỉ phảm, do váûy bë hản
chãú êt nhiãưu vãư täúc âäü biãn dëch chỉång trçnh.
SWI-Prolog hoảt âäüng trong mäi trỉåìng âäư hoả XPCE âënh hỉåïng âäúi
tỉåüng (GUI) X-window. SWI-Prolog tỉång âäúi dãù sỉí dủng nhåì khai thạc cạc
âàûc trỉng tỉång tạc âäư hoả. SWI-Prolog cọ cạc phiãn bn cho cạc mạy chảy
Linux/Unix, Macintosh. Khi ti SWI-Prolog, NSD cọ thãø ti thãm ti liãûu
hỉåïng dáùn sỉí dủng.
Sau khi ci âàût phiãn bn SWI-Prolog 5.2.11 for Windows, räưi khåíi âäüng
trçnh plwin.exe, cỉía säø lm viãûc SWI-Prolog hiãûn ra nhỉ hình dỉåïi âáy.
SWI-Prolog lm viãûc theo chãú âäü tỉång tạc (interpreter mode) (xem hçnh).
Dáúu nhàõc lãûnh SWI-Prolog l mäüt càûp dáúu cháúm hi v dáúu gảch ngang (dáúu
trỉì), âỉåüc liãût kã thỉï tỉû 1, 2, 3... âãø theo di quạ trçnh lm viãûc ca NSD,
theo sau l con tr mn hçnh (dáúu chn) nháúp nhạy :
1 ?Âãø ra khi SWI-Prolog, dng lãûnh File/ Exit, hồûc dng vë tỉì halt :
?- halt.

194



Phủ lủc B Hỉåïng dáùn sỉí dủng SWI-Prolog

195

Hçnh I.1. Cỉía säø lm viãûc ca SWI-Prolog.

II.
II.1.

Lm viãûc våïi SWI-Prolog
Âàût cáu hi

Sau khi mäüt chỉång trçnh Prolog âỉåüc biãn dëch hồûc âỉåüc ti vo bäü nhåï,
NSD cọ thãø âàût cáu hi truy váún (kãút thục båíi mäüt dáúu cháúm). Tu theo cáu
hi (âêch phi xoạ), Prolog tr låìi âụng (Yes) hồûc sai (No) v km theo kãút
qu X = <value> nãúu trong âêch cọ chỉïa biãún X no âọ. Trong trỉåìng håüp cọ
nhiãưu cáu tr låìi, ngay sau kãút qu tr låìi âáưu tiãn, NSD cọ thãø âàût mäüt dáúu
cháúm pháøy ; (semi-colon) nãúu mún tiãúp tủc u cáưu Prolog âỉa ra cạc cáu
tr låìi khạc. Tiãúp tủc quạ trçnh ny, Prolog láưn lỉåüt âỉa ra cạc kãút qu khạc
nhau cho âãún khi, hồûc Prolog tr låìi No, thç cọ nghéa l khäng cn cáu tr
låìi no nỉỵa, hồûc Yes, nãúu NSD mún dỉìng lải bàòng cạch g Enter (↵). NSD
cọ thãø nháûn âỉåüc thäng bạo läùi nãúu cáu hi cọ váún âãư :


Lỏỷp trỗnh lọgich trong Prolog

196


ERROR: Undefined procedure <... /...>

% NSD õaợ goợ sai tón thuớ tuỷc

hoỷc :
ERROR: Syntax error: Operator expected

II.2.

% NSD õaợ goợ sai bióứu thổùc, v.v...

Chaỷy trỗnh demo

Sau õỏy laỡ vờ duỷ chaỷy chổồng trỗnh demo likes.pl cuớa 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 naỷp chổồng trỗnh vaỡo bọỹ nhồù bồới lóỷnh sau :
?- [swi('demo/likes')].
% swi('demo/likes') compiled 0.00 sec, 2, 340 bytes
Yes
Sau khi tóỷp likes.pl õổồỹc taới vaỡo bọỹ nhồù, NSD õỷt caùc cỏu hoới vaỡ nhỏỷn
õổồỹc kóỳt quaớ nhổ sau :
?- like(X, Y).
Correct to: likes(X, Y)? Yes
X = sam
Y = dahl ;
X = sam
Y = tandoori ;


Phuỷ luỷc B Hổồùng dỏựn sổớ duỷng SWI-Prolog

197

...
Yes
?-

II.3.

% NSD õaợ goợ Enter vaỡ vỏựn coỡn cỏu traớ lồỡi.

Chaỷy trỗnh demo XPCE


SWI-Prolog õổồỹc trang bở chổùc nng lỏỷp trỗnh hổồùng õọỳi tổồỹng taỷo giao
dióỷn õọử hoaỷ, õổồỹc goỹi laỡ XPCE, coù maợ nguọửn tổồng thờch vồùi Unix/X11 vaỡ
Wỗndows.
NSD coù thóứ thổỷc hióỷn caùc chổồng trỗnh demo XPCE bũng caùch goợ :
?- [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ọứ hióỷn ra nhổ sau :

Hỗnh II.1. Caùc chổồng trỗnh demo XPCE cuớa SWI-Prolog.

NSD choỹn xem mọỹt troỡ chồi bũng caùch lổỷa tón troỡ chồi rọửi Open. Sau õoù,
nhừp chuọỹt taỷi nuùt Quit õóứ kóỳt thuùc chổồng trỗnh. Vờ duỷ troỡ chồi Rubiks Cube
nhổ hỗnh dổồùi õỏy :


Lỏỷp trỗnh lọgich trong Prolog

198

Hỗnh II.2. Trỗnh demo XPCE Rubiks Cube cuớa SWI-Prolog.

II.4.

Caùc lóỷnh õồn (Menu commands)


Cổớa sọứ laỡm vióỷc SWI-Prolog gọửm mọỹt sọỳ lóỷnh õồn chuớ yóỳu nhổ sau :
File/consult...
Tổồng tổỷ lóỷnh consult(File) duỡng õóứ naỷp tóỷp chổồng trỗnh File vaỡo bọỹ nhồù.
File/Reload modified files
Duỡng õóứ naỷp laỷi (reloads) mọỹt tóỷp chổồng trỗnh õaợ bở thay õọứi vaỡo bọỹ nhồù.
Thổồỡng õổồỹc sổớ duỷng sau khi õaợ soaỷn thaớo trón chổồng trỗnh. coù thóứ sổớ
duỷng lóỷnh make.
File/Navigator ...
Mồớ cổớa sọứ tổồng tổỷ explorer cuớa Windows õóứ tỗm kióỳm tóỷp hoỷc vở tổỡ
Prolog trong caùc thổ muỷc, ọứ õộa. ..


Phủ lủc B Hỉåïng dáùn sỉí dủng SWI-Prolog

199

Hçnh II.Cỉía säø Navigator.

Settings/Font ...

Dng âãø thay âäøi phäng chỉỵ trong giao diãûn SWI-Prolog.

Settings/User init file ...
Soản tho tãûp cáúu hçnh pl.ini chỉïa cạc thäng tin ci âàût hãû thäúng v chụ
thêch.
Settings/Stack sizes ...
Cho phẹp âënh nghéa lải kêch thỉåïc khäng gian lm viãûc ca cạc danh
sạch âáøy xúng (stack sizes).

Hçnh II.3 Âënh nghéa kêch thỉåïc danh sạch âáøy xúng

Run/Interrupt
Ngàõt mäüt tiãún trçnh Prolog (Prolog process) cọ thãø sỉí dủng täø håüp phêm
Control-C cọ cng hiãûu qu tỉång tỉû. Lục ny, xút hiãûn âäúi thoải :
Action (h for help) ? Options:
a:
abort
c:
continue

b:
e:

break
exit


Láûp trçnh lägich trong Prolog

200

g:
h (?):

goals
help

t:

trace


Action (h for help) ? abort
ERROR: Execution Aborted
% Execution Aborted
?Run/New thread
Tảo mäüt cỉía säø lm viãûc måïi âãø thỉûc hiãûn chỉång trçnh. Trong cỉía säø måïi
ny cọ thãø dng chung chỉång trçnh v dỉỵ liãûu â cọ màût trong cỉía säø lm
viãûc chênh.
Debug/Edit spy points ...
Soản tho cạc âiãøm ngàõt trong cạc vë tỉì.
Help Tçm âc cạc näüi dung hỉåïng dáùn sỉí dủng SWI-Prolog khạc nhau.

II.5.

Soản tho chỉång trçnh

NSD cọ thãø sỉí dủng mäüt hãû soản tho vàn bn báút k ca Windows nhỉ
NotePad, NCeditor... âãø soản tho chỉång trçnh Prolog, lỉu cáút lãn âéa, sau
âọ ti vo mäi trỉåìng SWI-Prolog âãø chảy nhåì lãûnh :
?- consult( <file_name>).
hồûc :
?- [ <file_name> ].
Våïi <file_name> l tãn tãûp chỉång trçnh (khäng cáưn ghi pháưn måí räüng .pl.
Cọ thãø chè âënh âỉåìng dáùn thỉ mủc âãún tãn tãn tãûp. Chụ dáúu cháúm hi ?âàût trỉåïc mäùi cáu lãûnh l dáúu nhàõc ca SWI-Prolog.
Vê dủ nảp chỉång trçnh bi toạn 8 Qn Háûu (xem pháưn trçnh by l
thuút) :
?- [myex5].
% myex5 compiled 0.00 sec, 2,020 bytes
Yes
?- solution( 8, S ).


% Tçm mäüt låìi gii cho bi toạn 8 Qn Háûu

S = [1, 7, 4, 6, 8, 2, 5, 3]
Yes

% Vë trê Qn Háûu trãn cạc cäüt.

Khi â nảp chỉång trçnh Prolog vo bäü nhåï, dng lãûnh :
?- Listing.


Phuỷ luỷc B Hổồùng dỏựn sổớ duỷng SWI-Prolog

201

õóứ lióỷt kó caùc doỡng lóỷnh trong cổớa sọứ laỡm vióỷc chờnh cuớa Prolog.

Hỗnh II.4. Cổớa sọứ soaỷn thaớo vn baớn PceEmacs cuớa SWI-Prolog.

SWI-Prolog coù sụn mọỹt hóỷ soaỷn thaớo PceEmacs rỏỳt thuỏỷn tióỷn õóứ soaỷn
thaớo vaỡ thổỷc hióỷn chổồng trỗnh. Goợ vaỡo doỡng lóỷnh :
?- emacs.
õóứ mồớ cổớa sọứ soaỷn thaớo vn baớn nhióửu chổùc nng (scratch).

III.

Mọỹt sọỳ lóỷnh SWI-Prolog thọng duỷng

Sau õỏy laỡ mọỹt sọỳ vở tổỡ õióửu khióứn mọi trổồỡng thọng duỷng cuớa SWIProlog.
consult(+File)

Naỷp tóỷp chổồng trỗnh vaỡo bọỹ nhồù. Chuù yù sổớ duỷng dỏỳu phỏn caùch thổ muỷc
laỡ /. Vờ duỷ :
% Naỷp tóỷp likes.pl tổỡ thổ muỷc laỡm vióỷc (xem pwd) vaỡo bọỹ nhồù.
?- consult(likes).
% Naỷp tóỷp likes.pl sổớ duỷng õổồỡng dỏựn õỏửy õuớ - tuyóỷt õọỳi (absolute path).
?- ['C:/Program Files/pl/demo/likes'] .
% Sổớ duỷng õổồỡng dỏựn kióứu Windows (Windows-style path-name).
?- ['C:\\Program Files\\pl\\demo\\likes'].


Láûp trçnh lägich trong Prolog

202

pwd
Âỉa ra thỉ mủc lm viãûc (working directory hay folder) ca SWI-Prolog.
ls
Liãût kã danh sạch cạc tãûp trong thỉ mủc hiãûn hnh.
edit
Nãúu Prolog âỉåüc khåíi âäüng båíi mäüt tãûp .pl tỉì trong Windows Explorer,
thç chảy trçnh soản tho màûc nhiãn, chàóng hản Windows Notepad, âãø soản
tho tãûp ny. Cọ thãø sỉí dủng lãûnh âån File/Edit...
?- edit.
% Waiting for editor ...
...
Yes

% Sau khi NSD kãút thục soản tho

edit(+File)

Sản tho tãûp hay âån thãø chỉång trçnh â cọ màût trãn âéa.
?- edit(myex).
% Waiting for editor ...
...
Yes

% Måí Notepad âãø soản tho tãûp myex.pl
% hiãûn cọ åí thỉ mủc hiãûn hnh
% Sau khi NSD kãút thục soản tho

make
Nảp tãûp chỉång trçnh vo bäü nhåï sau khi â thỉûc hiãûn mäüt säú thay âäøi.
trace
Chảy trçnh duût tçm sỉía läùi debugger.
apropos(+Keyword)
Tçm vë tỉì cọ chỉïa tỉì khoạ Keyword.
help(+Spec)
Måí cỉía säø hỉåïng dáùn vãư Spec, l tãn mäüt vë tỉì hồûc tãn mäüt hm C.


Taì i liãû u tham khaí o
1. I. Bratko (L. Ricard d ch), Programmation en Prolog pour l’ intelligence artificielle,
InterÉditions, Paris, 1988.
2. I. Bratko, Programming for Artificial Intelligence, AddisonWesley, 1987.
3. K.L. Clavle, S.A. Tarnlound. Logic Programming. Accademic Press 1983.
4. G. Falquet. Prolog et programmation logique. Notes de cours, Université de Genève, 2002.
5. H. Farrenry, M. Ghallab. Éléments d’intelligence artificielle, Hermes, Paris-LondreLausanne 1990.
6. B ch H ng Khang, Hoàng Ki m. Trí tu nhân t o : các ph
Xu t b n Khoa h c K thu t, 1989.


ng pháp và ng d ng. Nhà

7. J.W. Leoyd. Foundations of Logic Programming, Springer-Verlag, 1984.
8. P. Nugues. La Programmation logique et le langage Prolog. Notes de cours, ISMRA, 2002.
9. D.Teller. Partiel de Prolog. Notes de cours, École Centrale de Lyons, 2001.
10. Nguy n Thanh Thu . Trí tu nhân t o : các ph ng pháp gi i quy t v n đ và
k thu t x lý tri th c. Nhà Xu t b n Giáo d c, 1986.
11. A.Voronkov, Logic Programming and automated reasoning, Springer-Verlag, 1993.
12. Các tài li u v Prolog và bài t p Prolog trên Internet :
/> /> />SPV_Prolog/1_Prolog_leLangage/

203



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×