Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

114 1.2K 8
Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nghiên cứu 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 lời cảm ơn Trớc tiên xin gửi lời cảm ơn đặc biệt tới PGS.TS Nguyễn Thanh Thủy, ngời đà định hớng đề tài tận tình hớng dẫn bảo suốt trình thực luận văn thạc sỹ khoa học, từ ý tởng đề cơng nghiên cứu, phơng pháp giải vấn đề, đến điều kiện lý tởng để thực hành luận văn Tôi xin chân thành bày tỏ lòng biết ơn tới tất giáo s, đặc biệt GS José Júlio Alferes, trung tâm Logic tính toán, Universidade Nova de Líboa, Bồ Đào Nha đà cho nhiều kiến thức quý báu vấn đề đại ngành logic tính toán, trí tuệ nhân tạo, công nghệ thông tin, đà cho môi trờng tập thể, khoảng thời gian khó quên đà động viên, giúp đỡ khích lệ thời gian thực luận văn Bản luận văn đợc hoàn thành với động viên giúp đỡ bạn bè lớp cao học Công nghệ thông tin 2004 - 2006 Tôi xin bày tỏ lòng cám ơn chân tình tới tất bạn, bạn đà dành nhiều thời gian quý báu để trao đổi, giúp đỡ gặp vớng mắc suốt thời gian thực luận văn Ngun Thanh Tó C«ng nghƯ th«ng tin 2004 - 2006 MỤC LỤC MỞ ĐẦU Chương CHƯƠNG TRÌNH LOGIC TỔNG QUÁT 1.1 Mở đầu 1.2 Biểu diễn tri thức 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 chương trình logic tổng quát 19 Chương LẬP TRÌNH LOGIC MỞ RỘNG 22 2.1 Biểu diễn tri thức sử dụng chương trình logic mở rộng 26 2.2 Ngữ nghĩa khác 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 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ữ môi trường DLV 54 3.2.2 Cấu trúc chương trình 57 a Cơ sở liệu mở rộng – EDB 57 b Cơ sở liệu – IDB 58 (i) Luật 58 (i.1) Luật ngầm định 59 (i.2) Luật phân biệt 61 (i.3) Luật phủ định 62 (ii) Ràng buộc 65 Chi Ha(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 Java 70 3.3.1 Biểu diễn liệu: lớp Predicate, Literal, Model Program 70 3.3.2 Kiến trúc gói DLV: lớp DlvHandler 72 Chương 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 tốn 78 4.1.2 Cài đặt 82 4.2 Bài toán Cây khung nhỏ 84 4.2.1 Mô tả toán 84 4.2.2 Phân tích cài đặt 85 a Chương trình logic DLV 85 b Cài đặt Java 87 KẾT LUẬN 93 TÀI LIỆU THAM KHẢO 95 PHỤ LỤC 97 MỞ ĐẦU Logic tính tốn nhà logic học đưa vào năm 1950, dựa kỹ thuật tự động hóa q trình suy diễn logic Logic tính tốn phát triển thành lập trình logic vào năm 1970 Từ hình thành khái niệm quan trọng lập trình khai báo (declarative programming) đối lập với lập trình cấu trúc (procedural programming) Về ý tưởng, lập trình viên cần đưa khai báo chương trình cịn việc thực cụ thể máy tính tự xác lập, việc thực chương trình hướng thủ tục lại xác lập cụ thể lập trình viên Ngôn ngữ Prolog công cụ thực rõ ý tưởng Chương trình dịch Prolog đời chứng tỏ ngơn ngữ thực hành phổ biến toàn giới Sự phát triển lập trình logic thức bắt đầu vào cuối năm 1970 Những phát triển xa đạt vào đầu thập kỷ 80, bắt đầu với xuất sách nói sở lập trình logic Việc lựa chọn lập trình logic làm mơ hình sở cho dự án Các hệ thống máy tính đời thứ Nhật (Japanese Fifth Generation Computer Systems Project) mở đầu cho phát triển ngơn ngữ lập trình logic khác Nhờ khả khai báo tự nhiên lập trình logic, Prolog nhanh chóng trở thành ứng cử viên cho việc biểu diễn tri thức Tính đầy đủ trở nên rõ ràng mối liên hệ chương trình logic với sở liệu suy diễn đưa vào thập kỷ 80 Việc sử dụng lập trình logic sở liệu suy diễn để biểu diễn tri thức gọi “cách tiếp cận logic cho việc biểu diễn tri thức” Cách tiếp cận dựa ý tưởng chương trình máy tính cung cấp đặc thù logic tri thức đó, độc lập với cách thực riêng biệt nào, với ngữ cảnh tự do, dễ dàng thao tác suy diễn Chính vậy, cú pháp ngơn ngữ lập trình phải kết hợp chương trình với đặc thù khai báo Khi đó, việc thực phương pháp tính tốn thơng qua so sánh thuộc tính cụ thể với cú pháp khai báo Việc đưa cú pháp thích hợp cho chương trình logic coi lĩnh vực nghiên cứu quan trọng khó lập trình logic Luận văn trình bày kết nghiên cứu cú pháp ngữ nghĩa chương trình logic, bao gồm lập trình logic thơng thường lập trình logic mở rộng, tiếp đề 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 mã nguồn hướng đối tượng Java, cuối trình bày hai toán minh họa (bài toán N quân hậu toán Cây khung nhỏ nhất) cài đặt DLV chạy mã nguồn hướng đối tượng Java Chương CHƯƠNG TRÌNH LOGIC TỔNG QUÁT 1.1 Mở đầu Ngơn ngữ Λ chương trình logic tổng quát Π xây dựng bảng chữ Α định nghĩa sau: Định nghĩa 1.1 Bảng chữ Α bao gồm loại ký hiệu sau: - Các biến - Các số đối tượng (có thể gọi số) - Các ký hiệu hàm (function symbol) - Các ký hiệu vị từ (predicate symbol) - Các liên kết logic: “not”, “ ← ” “,” - Các ký hiệu phân cách “(“ “)” □ Trong đó, not liên kết logic gọi phủ định ngầm (negation as failure); biến xâu bao gồm ký tự bảng chữ chữ số, bắt đầu chữ viết hoa; số, ký hiệu hàm ký hiệu vị từ xâu bắt đầu chữ viết thường Thông thường, sử dụng chữ p, q, cho ký hiệu vị từ, X, Y, Z, cho biến, f, g, h, cho ký hiệu hàm a, b, c, cho số Định nghĩa 1.2 Một toán hạng định nghĩa sau: (i) biến toán hạng, (ii) số toán hạng, (iii) Nếu f ký hiệu hàm bậc n t1 , , tn tốn hạng f ( t1 , , tn ) toán hạng □ Định nghĩa 1.3 Một tốn hạng gọi có tính chất (ground) khơng có biến xuất □ Định nghĩa 1.4 Một nguyên tố biểu diễn bảng chữ Α biểu thức có dạng p ( t1 , , tn ) , p ký hiệu vị từ Α ti toán hạng Nếu ti tốn hạng ngun tố gọi có tính chất □ Một luật chương trình biểu diễn dạng: A0 ← A1 , , Am , not Am+1 , , not An (1.1) đó, Ai nguyên tố Vế trái luật gọi phần đầu kết luận, vế phải luật phần thân giả thiết Một tập luật tạo thành chương trình logic tổng qt (cịn gọi chương trình logic thơng thường) Chương trình logic tổng qt khơng chứa not gọi chương trình xác định Các biểu thức luật không chứa biến gọi có tính chất Định nghĩa 1.5 Không gian xác định Herbrand biểu diễn ngôn ngữ Λ chương trình Π , ký hiệu HU ( Π ) , tập tất toán hạng biểu diễn với hàm số Λ Tập tất nguyên tố ngơn ngữ chương trình Π định nghĩa HB ( Π ) (cơ sở Herbrand Π ) Với vị từ p, atoms(p) định nghĩa tập HB ( Π ) biểu diễn dạng vị từ p với tập vị từ A, atoms(A) tập phần tử HB ( Π ) biểu diễn dạng vị từ thuộc A □ Ví dụ 1.1 Xét chương trình logic thơng thường Π sau: p ( a ) p ( b ) p ( c ) p ( f ( X ) ) ← p ( X ) Ngôn ngữ chương trình Π dựa bảng chữ bao gồm vị từ p, hàm f số a, b c { } HU ( Π ) = a, b, c, f ( a ) , f ( b ) , f ( c ) , f ( f ( a ) ) , f ( f ( b ) ) , { ( ) } HB ( Π ) = p ( a ) , p ( b ) , p ( c ) , p ( f ( a ) ) , p ( f ( b ) ) , p ( f ( c ) ) , p f ( f ( a ) ) , □ Một chương trình logic coi đặc tả cho phép xây dựng lý thuyết cho giới quan cịn luật chương trình ràng buộc mà lý thuyết cần phải thỏa mãn Ngữ nghĩa chương trình logic phân biệt tùy theo cách định nghĩa tính thỏa mãn luật Trong luận văn sử dụng ngữ nghĩa mơ hình ổn định dạng mở rộng Với ngữ nghĩa này, lý thuyết xác định nhờ tập nguyên tố nền, gọi mơ hình ổn định chương trình Ngữ nghĩa định nghĩa sau: Định nghĩa 1.6 Mơ hình ổn định chương trình xác định Π tập nhỏ S HB cho với luật A0 ← A1 , , Am Π , A1 , , Am ∈ S A0 ∈ S Mơ hình ổn định chương trình xác định Π ký hiệu a(Π ) □ Gọi Π chương trình logic tổng quát Với tập phần tử S, đặt Π S chương trình thu từ Π cách xóa: (i) luật có chứa not A với A ∈ S (ii) tất not A luật cịn lại Rõ ràng, Π S khơng chứa not tồn mơ hình ổn định định nghĩa Nếu mơ hình ổn định trùng với S, ta nói S mơ hình ổn định Π Hay nói cách khác, mơ hình ổn định Π biểu diễn phương trình: S = a (ΠS ) (1.2) Một phần tử P S P ∈ S , ngược lại P sai (tức ¬P đúng) S Π suy diễn biểu thức f (ký hiệu Π |= f ) f mơ hình ổn định Π Ta nói câu trả lời cho truy vấn q có q mơ hình ổn định Π (tức Π |= q ), khơng ¬q mơ hình ổn định Π (tức Π |= ¬q ) khơng xác định trường hợp cịn lại Ví dụ 1.2 Xét ngơn ngữ chứa hai đối tượng a b chương trình Π : p ( X ) ← not q ( X ) q ( a ) Ta tập S = {q ( a ) , p ( b )} mơ hình ổn định Π Xây dựng chương trình Π S theo cách trên, ta có Π S = { p ( b ) ←, q ( a ) ←} có mơ hình ổn định trùng với S Do S mơ hình ổn định Π □ ... liệu suy diễn đưa vào thập kỷ 80 Việc sử dụng lập trình logic sở liệu suy diễn để biểu diễn tri thức gọi “cách tiếp cận logic cho việc biểu diễn tri thức? ?? Cách tiếp cận dựa ý tưởng chương trình. .. văn trình bày kết nghiên cứu cú pháp ngữ nghĩa chương trình logic, bao gồm lập trình logic thơng thường lập trình logic mở rộng, tiếp đề cập mơi trường lập trình logic DLV (Datalog with Vel) cách... 1.2 Biểu diễn tri thức chương trình logic tổng quát Trong phần đưa số ví dụ cách sử dụng chương trình logic tổng quát cho việc biểu diễn tri thức suy diễn thông thường Việc chứng minh gắn với phương

Ngày đăng: 10/11/2012, 10:09

Hình ảnh liên quan

chi tiết các lớp cho phép mô hình hóa dữ liệu vào rac ủa DLV, và lớp nhân - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

chi.

tiết các lớp cho phép mô hình hóa dữ liệu vào rac ủa DLV, và lớp nhân Xem tại trang 72 của tài liệu.
Hình 3-2 Quá trình xử lý DLV - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 3.

2 Quá trình xử lý DLV Xem tại trang 76 của tài liệu.
Hình 4-1 Hai tập trả lời của NQueens với N=4 - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

1 Hai tập trả lời của NQueens với N=4 Xem tại trang 85 của tài liệu.
Hình 4-2 Các tập trả lời của NQueens với N= 8 - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

2 Các tập trả lời của NQueens với N= 8 Xem tại trang 86 của tài liệu.
G. Bài toán cần tìm T được gọi là bài toán cây bao trùm nhỏ nhất. Hình 4.3 - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

i.

toán cần tìm T được gọi là bài toán cây bao trùm nhỏ nhất. Hình 4.3 Xem tại trang 87 của tài liệu.
Hình 4-4 Tập trả lời là các cạnh thuộc cây bao trùm nhỏ nhất có tổng trọng số là 12 - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

4 Tập trả lời là các cạnh thuộc cây bao trùm nhỏ nhất có tổng trọng số là 12 Xem tại trang 89 của tài liệu.
Hình 4-5 Các cây bao trùm có trọng số nhỏ hơn hoặc bằng 13 - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

5 Các cây bao trùm có trọng số nhỏ hơn hoặc bằng 13 Xem tại trang 89 của tài liệu.
Hình 4-6 Giao diện làm việc của chương trình MST - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

6 Giao diện làm việc của chương trình MST Xem tại trang 91 của tài liệu.
Hình 4-8 Đồ thị và cây khung nhỏ nhất của MST6.inp - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

8 Đồ thị và cây khung nhỏ nhất của MST6.inp Xem tại trang 92 của tài liệu.
Hình 4-7 Danh sách cạnh thuộc cây khung nhỏ nhất với đồ thị 6 đỉnh chứa trong file MST6.inp - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

7 Danh sách cạnh thuộc cây khung nhỏ nhất với đồ thị 6 đỉnh chứa trong file MST6.inp Xem tại trang 92 của tài liệu.
Hình 4-10 Đồ thị và cây khung nhỏ nhất của MST7.inp - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

10 Đồ thị và cây khung nhỏ nhất của MST7.inp Xem tại trang 93 của tài liệu.
Hình 4-11 Danh sách cạnh thuộc cây khung nhỏ nhất với đồ thị 8 đỉnh chứa trong file MST8.inp - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

11 Danh sách cạnh thuộc cây khung nhỏ nhất với đồ thị 8 đỉnh chứa trong file MST8.inp Xem tại trang 93 của tài liệu.
Hình 4-12 Đồ thị và cây khung nhỏ nhất của MST8.inp - Nghiên cứu các phương pháp biểu diễn tri thức trong lập trình Logic

Hình 4.

12 Đồ thị và cây khung nhỏ nhất của MST8.inp Xem tại trang 94 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan