DANH MỤC TÀI LIỆU
Luận văn thạc sĩ: Lập trình logic- nghiên cứu, phân tích các phương pháp biểu diễn tri thức trong lập trình Logic
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
------------------------------------
LUẬN VĂN THẠC SỸ KHOA HỌC
NGHIÊN CỨU CÁC PHƯƠNG PHÁP BIỂU
DIỄN TRI THỨC TRONG LẬP TRÌNH LOGIC
NGÀNH: CÔNG NGHỆ THÔNG TIN
NGUYỄN THANH TÚ
Người hướng dẫn khoa học: PGS.TS.NGUYỄN THANH THỦY
HÀ NỘI 2006
1
MỤC LỤC
MỞ ĐẦU 3
Chương 1 CHƯƠNG TRÌNH LOGIC TỔNG QUÁT 5
1.1 Mở đầu............................................................................................................................................5
1.2 Biểu diễn tri thức trong chương trình logic tổng quát.....................................................................12
1.3 Câu trả lời cho truy vấn.................................................................................................................17
1.4 Một số ngữ nghĩa khác của chương trình logic tổng quát................................................................19
Chương 2 LẬP TRÌNH LOGIC MỞ RỘNG 22
2.1 Biểu diễn tri thức sử dụng các chương trình logic mở rộng.............................................................26
2.2 Ngữ nghĩa khác của chương trình logic mở rộng............................................................................37
2.3 Các chương trình logic phân biệt (Disjunctive Logic Programs).....................................................38
2.3.1 Giới thiệu..............................................................................................................................38
2.3.2 Biểu diễn tri thức sử dụng chương trình logic phân biệt..........................................................42
2.3.3 Tìm câu trả lời cho truy vấn...................................................................................................46
Chương 3 MÔI TRƯỜNG LẬP TRÌNH LOGIC 50
3.1 Giới thiệu......................................................................................................................................50
3.2 Hệ thống DLV................................................................................................................................53
3.2.1 Ngôn ngữ của môi trường DLV.............................................................................................54
3.2.2 Cấu trúc một chương trình.....................................................................................................57
a. Cơ sở dữ liệu mở rộng – EDB...............................................................................................57
b. Cơ sở dữ liệu cơ bản – IDB...................................................................................................58
(i) Luật................................................................................................................................58
(i.1) Luật ngầm định 59
2
(i.2) Luật phân biệt 61
(i.3) Luật phủ định 62
(ii) Ràng buộc......................................................................................................................65
ii.1) Ràng buộc toàn vẹn 65
(ii.2) Ràng buộc yếu 67
3.3 Gói DLV trong Java.......................................................................................................................70
3.3.1 Biểu diễn dữ liệu: các lớp Predicate, Literal, ModelProgram...........................................70
3.3.2 Kiến trúc gói DLV: lớp DlvHandler......................................................................................72
Chương 4 CÁC BÀI TOÁN MINH HỌA 77
4.1 Bài toán N quân hậu......................................................................................................................78
4.1.1 Phân tích bài toán..................................................................................................................78
4.1.2 Cài đặt..................................................................................................................................82
4.2 Bài toán Cây khung nhỏ nhất.........................................................................................................84
4.2.1 Mô tả bài toán.......................................................................................................................84
4.2.2 Phân tích và cài đặt................................................................................................................85
a. Chương trình logic DLV.......................................................................................................85
b. Cài đặt trên Java...................................................................................................................87
KẾT LUẬN 93
TÀI LIỆU THAM KHẢO 95
PHỤ LỤC 97
3
MỞ ĐẦU
Logic tính toán được các nhà logic học đưa ra vào những năm 1950, dựa trên
các kỹ thuật tự động hóa quá trình suy diễn logic. Logic tính toán được phát
triển thành lập trình logic vào những m 1970. Từ đó hình thành một khái
niệm quan trọng lập trình khai o (declarative programming) đối lập với
lập trình cấu trúc (procedural programming). Về ý tưởng, các lập trình viên chỉ
cần đưa ra khai báo của chương trình còn việc thực hiện cụ thể do máy tính tự
xác lập, trong khi đó việc thực hiện các chương trình hướng thủ tục lại được
xác lập cụ thể bởi lập trình viên. Ngôn ngữ Prolog một công cụ thực hiện
ý tưởng này. Chương trình dịch Prolog đầu tiên ra đời đã chứng tỏ đó một
ngôn ngữ thực hành và được phổ biến trên toàn thế giới.
Sự phát triển của lập trình logic chính thức bắt đầu vào cuối những năm
1970. Những phát triển xa hơn đạt được vào đầu thập kỷ 80, bắt đầu với sự
xuất hiện của quyển sách đầu tiên nói về các sở lập trình logic. Việc lựa
chọn lập trình logic làm hình sở cho dự án Các hệ thống máy tính đời
thứ 5 của Nhật (Japanese Fifth Generation Computer Systems Project) đã mở
đầu cho sự phát triển của các ngôn ngữ lập trình logic khác.
Nhờ khả năng khai báo tự nhiên của lập trình logic, Prolog nhanh chóng
trở thành một ứng c viên cho việc biểu diễn tri thức. Tính đầy đủ của trở
nên ràngn khi mối liên hệ giữa các chương trình logic với sở dữ liệu
suy diễn được đưa ra vào giữa thập kỷ 80.
Việc sử dụng lập trình logic sở dữ liệu suy diễn để biểu diễn tri
thức được gọi là “cách tiếp cận logic cho việc biểu diễn tri thức”. Cách tiếp cận
này dựa trên ý tưởng là chương trình máy tính được cung cấp các đặc thù
4
logic của tri thức trong đó, do đó độc lập với bất kỳ cách thực hiện riêng
biệt nào, với ngữ cảnh tự do, dễ dàng thao tác và suy diễn.
Chính vậy, pháp của ngôn ngữ lập trình phải kết hợp được bất kỳ
chương trình nào với đặc thù khai o của nó. Khi đó, việc thực hiện các
phương pháp tính toán sẽ thông qua so sánh các thuộc tính cụ thể với pháp
khai báo. Việc đưa ra một pháp thích hợp cho các chương trình logic được
coi như một trong những lĩnh vực nghiên cứu quan trọng nhất khó nhất
trong lập trình logic.
Luận văn này sẽ trình bày các kết quả nghiên cứu vềpháp và ngữ nghĩa của
chương trình logic, bao gồm các lập trình logic thông thường lập trình logic
mở rộng, tiếp đó sẽ đề cập môi trường lập trình logic DLV (Datalog with Vel)
cách thức kết hợp môi trường logic này trong nguồn hướng đối tượng
Java, cuối cùng trình bày hai bài toán minh họa (bài toán N quân hậu bài
toán Cây khung nhỏ nhất) được cài đặt trên DLV và được chạy trong mã nguồn
hướng đối tượng Java.
thông tin tài liệu
Các chương trình logic tổng quát được thảo luận trong chương 1 cung cấp một công cụ mạnh cho việc biểu diễn tri thức trong các trường hợp chỉ sử dụng giả thiết thế giới đóng. Tuy nhiên, mỗi truy vấn nền cho các chương trình loại này được trả lời là có hoặc không lại không cho phép người lập trình trực tiếp biễu diễn các tri thức không hoàn thiện về thế giới. Để làm được điều này, ngôn ngữ cần cho phép đến khả năng thứ 3 – câu trả lời không biết (unknown), sử dụng cho các câu trả lời là không đúng cũng không sai. Trong chương này, ta sẽ thảo luận chương trình logic mở rộng, chứa dạng thứ hai của phủ định ¬, đi cùng với dạng phủ định ngầm not. Các chương trình logic tổng quát cung cấp thông tin phủ định không rõ ràng thông qua suy diễn trong thế giới đóng; bên cạnh đó các chương trình logic mở rộng lại có thể bao gồm các thông tin phủ định hiện. Trong ngôn ngữ của chương trình mở rộng, ta có thể phân biệt một truy vấn với ý nghĩa “nó không thành công” với một truy vấn với ý nghĩa mạnh hơn “phủ định của nó thành công”.
Mở rộng để xem thêm
tài liệu giúp tôi
Nếu bạn không tìm thấy tài liệu mình cần có thể gửi yêu cầu ở đây để chúng tôi tìm giúp bạn!
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×