Danh mục

Lập Trình Logic Trong ProLog - PGS.TS. PHAN HUY KHÁNH phần 8

Số trang: 19      Loại file: pdf      Dung lượng: 205.01 KB      Lượt xem: 15      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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ó).
Nội dung trích xuất từ tài liệu:
Lập Trình Logic Trong ProLog - PGS.TS. PHAN HUY KHÁNH phần 8 129K thu t l p trình Prologhơn, thay vì s d ng c p ôi cut-fail, ngư i ta s d ng not. Tuy nhiên, phép ph nh not cũng không ph i không gây ra nh ng phi n ph c cho ngư i dùng.Nhi u khi s d ng not không hoàn toàn chính xác v i phép ph nh trong Toánh c. Ch ng h n n u trong chương trình có nh nghĩa quan h man, mà ta ưa ram t câu h i i lo i như : ?- not( man( marie)). Khi ó, Prolog s tr l i No n u ã có nh nghĩa man( marie), tr l i Yesn u chưa có nh nghĩa như v y. Tuy nhiên, khi tr l i No, không ph i Prolog nóir ng «Marie không ph i là m t ngư i», mà nói r ng «Không tìm th y trongchương trình thông tin ch ng minh Marie là m t ngư i». Khi th c hi n phépnot, Prolog không ch ng minh tr c ti p mà tìm cách ch ng minh i u ngư c l i.N u ch ng minh ư c, Prolog suy ra r ng ích not thành công. Cách l p lu nnhư v y ư c g i là gi thuy t v th gi i khép kín (hypothesis of the enclosedworld). Theo gi thuy t này, th gi i khép kín có nghĩa là nh ng gi t n t i ( úng) u n m trong chương trình ho c ư c suy ra t chương trình. Nh ng gì khôngn m trong chương trình, ho c không th suy ra t chương trình, thì s là không úng (sai), hay i u ph nh là úng. Vì v y, c n chú ý khi s d ng ph nh dothông thư ng, ngư i ta ã không gi thi t r ng th gi i là khép kín. Trongchương trình, do thi u khai báo m nh : man( marie).nên Prolog không ch ng minh ư c r ng Marie là m t ngư i. Sau ây là m t ví d khác s d ng phép ph nh not : r( a). q( b). p( X ) :- not( r( X )). Nu t câu h i : ?- q( X ), p( X ).thì Prolog s tr l i : X=b Yes Nhưng n u t câu h i : ?- p( X ), q( X ).thì Prolog s tr l i : No hi u ư c vì sao cùng m t chương trình nhưng v i hai cách t câu h ikhác nhau l i có hai cách tr l i khác nhau, ta c n tìm hi u cách Prolog l p lu n. L p trình lägich trong Prolog130Trong trư ng h p th nh t, bi n X ư c ràng bu c giá tr là b khi th c hi n íchq( X ). Ti p t c th c hi n ích con p( X ), nh ràng bu c X=b, ích not(r( X )) tho mãn vì ích r( b ) không tho mãn, Prolog tr l i Yes. Trái l i trong trư ng h p th hai, do Prolog th c hi n ích con p( X ) trư cnên s th t b i c a not( r( X )), t c r( X ) thành công v i ràng bu c X=a,d n n câu tr l i No.II. S d ng các c u trúc Ki u d li u c u trúc, danh sách, k thu t so kh p, quay lui và nhát c t lành ng i m m nh trong l p trình Prolog. Chương này s ti p t c trình bày m t sví d tiêu bi u v : Truy c p thông tin c u trúc t m t cơ s d li u. Mô ph ng m t ôtômat h u h n không ơn nh và máy Turing. L p k ho ch i du l ch Bài toán tám quân h u ng th i, ta cũng trình bày cách Prolog tr u tư ng hoá d li u.II.1. Truy c p thông tin c u trúc t m t cơ s d li u Sau ây là m t ví d cho phép bi u di n và thao tác các d li u c u trúc. T ó, ta cũng hi u cách s d ng Prolog như m t ngôn ng truy v n cơ s d li u. Trong Prolog, m t cơ s ư c bi u di n dư i d ng m t t p h p các s ki n.Ch ng h n, m t cơ s d li u v các gia ình s mô t m i gia ình (family)như m t m nh . M i gia ình s g m ba ph n t l n lư t : ch ng, v(individual) và các con (children). Do các ph n t này thay i tuy theot ng gia ình, nên các con s ư c bi u di n b i m t danh sách có th nh n ư c m t s lư ng tuỳ ý s con. M i ngư i trong gia ình ư c bi u di n b ib n thành ph n : tên, h , ngày tháng năm sinh và vi c làm. Thành ph n vi c làmcó th có giá tr “th t nghi p” (inactive), ho c ch rõ tên cơ quan công tác vàthu nh p theo năm. Gi s cơ s d li u ch a m nh u tiên như sau : family( individual( tom, smith, date(7, may, 1960), work(microsoft, 30000) ), individual( ann, smith, date(9, avril, 1962), inactive), [ individual( roze, smith, date(16, june, 1991), inactive), individual( eric, smith, date(23, march, 1993), inactive) ] ). 131K thu t l p trình Prolog D li u v nh ng gia ình khác ti p t c ư c b sung dư i d ng các m nhtương t . Hình 5.1 dư i ây minh ho cách t ch c cơ s d li u. Prolog là m t ngôn ng r t thích h p cho vi c khôi ph c thông tin : ngư i sd ng có th g i các i tư ng mà không nh t thi t ch rõ t t c các thành ph n.Ngư i s d ng ch c n ch ra c u trúc c a các i tư ng mà h quan tâm m tcách t ơng trưng, không c n ph i ch ra h t. Hình 1.2 minh ho nh ng c u trúcnhư v y. Ví d , bi u di n nh ng gia ình dòng h Smith, trong Prolog vi t : family( individual( _ , smith, _ , _ ), _ , _ ) family individual individual . tom smith date work ann smith date inactiv ...

Tài liệu được xem nhiều: