Bài tập tìm số lớn hơn trong prolog năm 2024

Bài tập tìm số lớn hơn trong prolog năm 2024

GiáotrìnhLogicToán

Gv:TrịnhHuyHoàng  Trang58

BÀI6:lGÔllGỮPROLOG

1.TưduylậptrìnhvàđịnhnghĩavấnđềtrênProlog

ĐốivớiProlog,mộtchươngtrìnhcóthểhiểunhưlàcáctrithứcđượcngườilậptrình

cungcấpchohệthốngProlog.N hờvàocáckiếnthứcđượccungcấp,hệthốngcóthểtrảlời

đượccáccâuhỏiđượcđặtra,vàcâutrảlờicóthểđạtđượcnhờcơchếsuyluậncủahệthống

dựatrênnhữngkiếnthứcđượccungcấpbanđầu.

ĐơnvịkiếnthứcmàngườilậptrìnhcungcấpchoProloggọilàcácvịtừ(predicate).

Cácvịtừdùngđểbiểudiễncáckháiniệmmàngườilậptrìnhmuốnhệthốngdùngđểsuyluận

đểđạtđượccáckiếnthứckhácmàmìnhmongmuốn.Vềmặtkỹthuật,cácpredicatecóthể

đượcxemnhưcáchàm,nhưnggiátrịtrảvềchỉcóthểlàcácgiátrịluậnlý†đúnghoặcsai.Và

giátrịtrảvềnàychỉcóthểsửdụngđểsuyluận,Prologkhôngcócơthếchồngchấthàmnhư

cácngônngữthủtụckhác,chínhđiềunàysẽlàmnhữngngườiquenvớiviệclậptrìnhthủtục

gặpkhókhănkhibướcđầulậptrìnhvớiProlog.CôngviệcđầutiênkhilậptrìnhtrênProloglà

địnhnghĩacácvịtừ†cáckháiniệmmàmìnhcầncungcấpchochươngtrình.

Xétcácvídụsau:

VD1:

Dữkiệnbanđầu:Mọingườiđềuphảichết.Socrateslàngười.

Yêucầu:

Chúngtamuốnhệthốngphảicókhảnăngsuyluậnvàtrảlờiđượccácvấnđềliênquan

đếncáckháiniệmtrên:ailàngười,aikhônglàngười,aiphảichết,aikhôngphảichết.Ởđây

chúngtacómộtsựsuyluậnthôngminhđặctrưngchosứcmạnhcủaProlog:hệthốngsẽtự

độngsuyluậnrằngSocratesphảichết(điềukhôngđượccungcấpbanđầu).

ĐểbiểudiễncácvấnđềtrênbằngngônngữProlog,chúngtacầnphảixácđịnhcần

phảibiểudiễnnhữngkháiniệmgì.Trongvấnđềnàychúngtacóhaikháiniệmcầnbiểudiễn:

mộtthựcthểnàođócó

thểlàngười(hoặckhông),vàmộtthựcthểnàođócóthểchết.

N hưvậychúngtabiểudiễnvấnđềđầutiênbằngngônngữProlognhưsau:

nguoi(symbol)

SymbollàmộtkiểudữliệuđặcbiệtcủaProlog,dùngđểbiểudiễnchomộtthựcthể,mộtkhái

niệmtổngquát.Chúngtasẽtrởlạivấnđềnàysau.N hưvậychúngtavừađịnhnghĩamộtkhái

niệm:mộtsymbolnàođócóthểlàngười,mộtsymbolnàokhácthìkhông.

Hiểunhưmộtsựđịnhnghĩa hàm,chúngta cóthểxemnhưđịnhnghĩamộthàm mangtên

nguoi,hàmnàycóthôngsốmộtbiếnthuộckiểudữliệusymbol,và kếtquảcủahàmnày,

khôngcầnphảikhaibáothuộcvềkiểugì,vìchỉcóthểthuộckiểuboolean,chỉcóthểđúng

hoặcsai.N hiệmvụcủaProloglàphảitrảlờiđượcvớigiátrịsymbolnhậpvào,thìhàmnày