1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng

87 701 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 87
Dung lượng 1,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

So với CSDL quan hệ thì CSDL suy diễn thừa nhận một kiểu lý thuyết chứng minh, nghĩa là nó được xem xét như một lý thuyết bao gồm một tập các công thức cấp một, còn việc thực hiện một câ

Trang 1

Tôi xin bày tỏ lòng biết ơn đối với thầy Nguyễn Quang Tấn, người đã trực tiếp hướng dẫn chúng tôi thực hiện luận văn này Nếu không có sự truyền đạt kiến thức quý báo và hướng dẫn tận tình của thầy chắc chắn rằng luận văn của tôi sẽ rất khó hoàn thành

Cuối cùng tôi xin gửi lời cám ơn đến gia đình, bạn bè, những người đã luôn bên chúng tôi, động viên và khuyến khích tôi trong quá trình thực hiện đề tài nghiên cứu của mình.

Mặc dù đã rất cố gắng, song chắc chắn luận văn không tránh khỏi những thiếu sót Tôi rất mong nhận được sự thông cảm và những ý kiến đóng góp tận tình của các thầy, cô giáo và các bạn cũng như những ai quan tâm tới lĩnh vực trong luận văn này

Xin chân thành cảm ơn!

Đồng Nai, ngày tháng năm 2013

Học viên

Bùi Văn Lem

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan rằng các kết quả nghiên cứu trong luận văn, ngoài những vấn

đề mang tính phổ biến mà tác giả đã đề cập tới dưới dạng các định nghĩa và khái niệm

là hoàn toàn mới, những vấn đề tham khảo được trích dẫn cụ thể Các hình, minh họa,

ví dụ và kết quả do chính tác giả thực hiện Nội dung của đề tài chưa được công bố trên các công trình nghiên cứu khác

Tôi cũng xin cam đoan rằng mọi sự gi p đ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc Chúng tôi xin hoàn toàn chịu trách nhiệm về nội dung của luận văn này

Đồng Nai, ngày tháng năm 2013

Học viên

Bùi Văn Lem

Trang 3

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

MỤC LỤC iii

DANH MỤC CÁC TỪ VIẾT TẮT vi

DANH MỤC BẢNG vii

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN 2

1.1 Nguồn gốc và sự phát triển của lập luận logic 2

1.2 Nguồn gốc và nhu cầu phát triển CSDL suy diễn 5

1.3 Nội dung chính của luận văn 7

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 9

2.1 Tri thức và hiểu biết 9

2.1.1 Một số khái niệm 9

2.1.2 Phân loại tri thức theo hiện đại 11

2.2 Biểu diễn tri thức 12

2.3 Biểu diễn tri thức bằng luật dẫn xuất (luật sinh) 14

2.3.1 Khái niệm 14

2.3.2 Cơ chế suy luận trên các luật sinh 15

2.3.3 Ưu điểm và nhược điểm của biểu diễn tri thức bằng luật 18

2.3.3.1 Ưu điểm 18

2.3.3.2 Nhược điểm 18

2.4 Công nghệ tri thức 19

2.4.1 Xử lý tri thức 19

2.4.2 Xử lý tri thức bằng luật 19

2.4.3 Xử lý tri thức bằng các luật có dùng biến 21

2.4.4 Xử lý tri thức bằng lập luận 22

Trang 4

2.5 Khái quát về lập trình logic 26

2.6 Ngôn ngữ Prolog 28

2.6.1 Prolog là ngôn ngữ lập trình logic 28

2.6.2 Xây dựng sự kiện và luật 30

2.6.2.1 Xây dựng sự kiện 30

2.6.2.2 Xây dựng luật 35

2.6.3 Một số ví dụ về chương trình prolog 37

2.7 Kết luận 40

CHƯƠNG 3: CƠ SỞ DỮ LIỆU SUY DIỄN 41

3.1 Giới thiệu chung 41

3.2 Một số khái niệm cơ sở 42

3.2.1 Ngôn ngữ cấp một 42

3.2.2 Chương trình logic 43

3.3 Cơ sở dữ liệu suy diễn 45

3.3.1 Định nghĩa tổng quát 45

3.3.2 Định nghĩa theo toán học 46

3.3.3 Cấu trúc của một cơ sở dữ liệu suy diễn 46

3.3.3.1 Tập các sự kiện 46

3.3.3.2 Tập các luật suy diễn 47

3.3.3.3 Ràng buộc toàn vẹn (RBTV) 48

3.4 Chương trình Datalog 51

3.4.1 Mô hình dữ liệu 51

3.4.2 Cú pháp 52

3.4.3 Ngữ nghĩa 52

3.4.4 Cấu tr c cơ bản 53

3.5 Truy vấn trong Datalog (Datalog Query) 55

3.5.1 Định nghĩa 55

3.5.2 Cấu trúc 56

3.5.3 So sánh Datalog với đại số quan hệ 58

Trang 5

3.6 Chương trình Datalog có chứa ký hiệu hàm 62

3.7 Kết luận 63

CHƯƠNG 4 CÀI ĐẶT DEMO ỨNG DỤNG 64

4.1 Mục tiêu 64

4.2 Cấu tr c chương trình 64

4.3 Mô hình luồng xử lý bài toán 65

4.4 Môi trường thực nghiệm 66

4.5 Quy trình thực hiện 66

4.5.1 Đặt vấn đề 66

4.5.2 Quy trình thực hiện 67

4.5.3 Thực hiện chương trình 75

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 78 TÀI LIỆU THAM KHẢO

Trang 6

DANH MỤC CÁC TỪ VIẾT TẮT

STT Từ viết tắt Diễn giải Ghi chú

DANH MỤC HÌNH

Hình 2.1: Cấu tr c đồ thị AND/OR 17

Hình 2.2: Các bước xử lý tri thức dựa trên luật 20

Hình 2.3: Cây gia hệ 30

Hình 2.4: Quan hệ ông bà được hợp thành từ hai quan hệ cha mẹ 33

Hình 3.1: Đồ thị không có chu trình 58

Hình 3.2: Đồ thị có chu trình 58

Hình 4.1: Mô hình luồng xử lý bài toán 66

Hình 4.2: Giao diện chính khi chạy chương trình 76

Hình 4.3: Thao tác nạp dữ liệu cho chương trình 76

Hình 4.4: Lựa chọn dữ liệu cho chương trình 77

Hình 4.5: Giao diện chương trình sau khi đã nạp dữ liệu 77

Hình 4.6: Giao diện lựa chọn tìm kiếm theo chủ đề 78

Hình 4.7: Giao diện kết quả chương trình 78

Trang 7

DANH MỤC BẢNG

Bảng 2.1: Đối tượng con trâu 24

Bảng 2.2: Bảng CSDL mô tả đặc điểm người 38

Bảng 3.1: Kiểu dữ liệu trong DES 50

Bảng 3.2: Bảng quan hệ Quản lý công nhân 60

Bảng 4.1: Bảng dữ liệu mẫu 75

Trang 8

MỞ ĐẦU

Ch ng ta đang sống trong kỷ nguyên hiện đại với sự phát triển bùng nỗ về công nghệ thông tin Và cơ sở dữ liệu (CSDL) là một lĩnh vực rất quan trọng mà chúng ta cần phải quan tâm Hầu hết các ứng dụng hiện nay đều có sử dụng đến CSDL: ứng dụng web, phần mềm quản lý,…

Có nhiều mô hình CSDL khác nhau được đưa vào ứng dụng trong thực tế: CSDL quan hệ, CSDL phân tán, CSDL hướng đối tượng,…Trong số đó, có thể nói CSDL quan hệ là được ứng dụng rộng rãi nhất, mang lại nhiều thành công nhất

CSDL quan hệ cho phép tiếp nhận, lưu trữ và xử lý một lượng lớn dữ liệu Việc nghiên cứu CSDL quan hệ đã đạt được rất nhiều thành công, có nhiều đóng góp lớn trong việc quản lý Tuy nhiên ngoài việc tiếp nhận, lưu trữ và xử lý dữ liệu, người ta cần một loại CSDL có khả năng suy luận ra các thông tin từ các dữ liệu được lưu trữ

Để đáp ứng nhu cầu thực tế đó thì một mô hình CSDL mới ra đời, đó là mô hình

CSDL suy diễn Ngoài việc lưu trữ các thông tin một cách rõ ràng theo kiểu CSDL

quan hệ, CSDL suy diễn còn lưu giữ được các luật có khả năng suy diễn ra những kết quả mới dựa trên dữ liệu đã có

So với CSDL quan hệ thì CSDL suy diễn thừa nhận một kiểu lý thuyết chứng minh, nghĩa là nó được xem xét như một lý thuyết bao gồm một tập các công thức cấp một, còn việc thực hiện một câu truy vấn hoặc làm thỏa mãn một RBTV có thể xem như chứng minh một công thức cấp một là hệ quả logic của lý thuyết đã cho

CSDL suy diễn là một sự mở rộng của CSDL quan hệ bởi vì bên cạnh những tính chất, những nguyên tắc vốn có của CSDL quan hệ nó còn có thêm các nguyên tắc tổng quát, như các quy tắc suy diễn và RBTV

Trang 9

CHƯƠNG 1: TỔNG QUAN

Nội dung chương 1: Trình bày tổng quan về nguồn gốc và sự phát triển của lập luận logic; nhu cầu của CSDL suy diễn trong thực tế và tổng quan về nội dung chính của

luận văn

1.1 Nguồn gốc và sự phát triển của lập luận logic

Theo truyền thống, Logic được nghiên cứu như là một nhánh của triết học, nó được nhắc đến như là một ngành nghiên cứu về tiêu chí đánh giá các luận cứ Mặc dù định nghĩa chính xác của logic vẫn là vấn đề còn đang bàn cãi giữa các triết gia Tuy nhiên khi môn học được xác định thì nhiệm vụ của nhà logic học vẫn như cũ Đó là, làm đẩy mạnh tiến bộ của việc phân tích các suy luận có hiệu lực và suy luận ngụy biện

để người ta có thể phân biệt được luận cứ nào là hợp lý và luận cứ nào có chỗ không hợp lý

Từ giữa thế kỷ 19, logic đã được nghiên cứu trong toán học và luật (theo http://www.wikipedia.org) Gần đây nhất logic được áp dụng vào khoa học máy tính và

trí tuệ nhân tạo Là một ngành khoa học hình thức, logic nghiên cứu và phân loại cấu trúc của các khẳng định và các lý lẽ, cả hai đều thông qua việc nghiên cứu các hệ thống hình thức của việc suy luận và qua sự nghiên cứu lý lẽ trong ngôn ngữ tự nhiên Tầm bao quát của logic rất rộng, đi từ các đề tài cốt lõi như là nghiên cứu các lý lẽ ngụy biện và nghịch lý, đến những phân tích chuyên gia về lập luận Chẳng hạn lập luận có xác suất đ ng và các lý lẽ có liên quan đến quan hệ nhân quả Ngày nay logic còn được

sử dụng trong lý thuyết lý luận

Qua suốt quá trình lịch sử, đã có nhiều sự quan tâm trong việc phân biệt lập luận tốt và lập luận không tốt, và do đó logic đã được nghiên cứu trong một số dạng ít nhiều

là quen thuộc với chúng ta Trong toán học và triết học phân tích, logic được nhấn mạnh như một đối tượng nghiên cứu riêng và do vậy logic được nghiên cứu ở mức độ trừu tượng hơn

Trang 10

Một trong những tác phẩm logic sớm nhất còn tồn tại đến ngày nay là của Aristotle Logic của Aristotle được chấp nhận rộng rãi trong khoa học và toán học ở Phương Tây đến đầu thế kỷ 19 Hệ thống logic của Aristotle phù hợp cho việc giới thiệu suy diễn giả định và logic quy nạp Ở Châu Âu, trong cuối thời kỳ trung đại, có nhiều nỗ lực nhằm chứng tỏ những tư tưởng của Aristotle tương thích với niềm tin Cơ Đốc Trong suốt thời kỳ Trung Kỳ Trung Cổ, logic trở thành đề tài chính của các nhà triết học, những người muốn tham gia vào những cuộc tranh luận triết học về phân tích logic học

Lập luận hay Suy luận được định nghĩa rất khác nhau tùy theo ngữ cảnh của hiểu

biết về lý tính như là một hình thức của tri thức Định nghĩa lôgic là hành động sử dụng

lý tính để rút ra một kết luận từ các tiền đề nhất định bằng cách sử dụng một phương pháp luận cho trước

Suy luận, cùng với trực giác là các phương pháp thuộc về nhận thức tự phát Suy

luận, là một phương pháp quan trọng để nhận thức và tìm kiếm chân lý

Nhận thức suy luận là kiểu nhận thức gián tiếp Nhận thức một định lý toán học, một định luật khoa học đều là nhờ suy luận Vì rằng, suy luận nhất thiết đòi hỏi phải

có trung gian, là những phán đoán, những khái niệm Ví dụ để nhận biết sự tương đương giữa A và C khi A=B, B=C,thì phải sử dụng các khái niệm phương trình, số hạng, sự tương đương

Suy luận có tính trừu tượng và tổng quát Suy luận dựa vào phán đoán, khái niệm

mà chúng ta phải thừa nhận là khái niệm bao giờ cũng trừu tượng và tổng quát Ví dụ khái niệm " người" chỉ định tất cả mọi người và nói lên đặc tính chung của loài người, chứ không nói đến tính riêng biệt như tính chất thông thái vượt trội của Socrates, dũng mãnh như Hercules hay tính ích kỹ, tham lam, nhỏ nhen của cá nhân nào đó

Suy luận bao giờ cũng gắn liền với ngôn ngữ và đó là điểm khác biệt với trực giác Vì thế điều gì nhận biết được nhờ suy luận, thì có thể làm cho người khác hiểu

Trang 11

trọn vẹn nó thông qua ngôn ngữ chuẩn xác Khi bạn được nghe chứng minh một điều

gì, bạn sẽ hiểu điều này như chính người đã chứng minh điều đó cho bạn

Tuy nhiên, trong các ngữ cảnh triết học lý tưởng, lập luận là quy trình trí óc đem lại cho sự tưởng tượng, tri giác, ý nghĩ, và cảm giác của ta bất cứ cái gì có thể hiểu được mà những hành vi trí óc kia có thể hàm chứa, và do đó liên hệ trải nghiệm của ta với ý nghĩa toàn thể

Các phương pháp lập luận logic: suy luận diễn dịch, suy luận quy nạp, suy luận loại suy và phương pháp thứ tư là phép tương tự Lập luận bằng phép tương tự đi từ

trường hợp cụ thể này tới trường hợp cụ thể khác, kết luận của lập luận bằng phép tương tự chỉ là có thể đ ng Lập luận bằng tương tự rất thường gặp trong nhận thức thông thường, khoa học, triết học và khoa học nhân văn, nhưng đôi khi chỉ được chấp nhận như là phương pháp bỗ trợ

Suy diễn logic, lập luận bằng suy diễn hay suy diễn là lập luận mà trong đó kết

luận được rút ra từ các sự kiện được biết trước theo kiểu : nếu các tiền đề đ ng thì kết luận phải đ ng Nghĩa là các sự kiện cho trước đòi hỏi rằng kết luận là đ ng

Suy diễn còn được định nghĩa là kiểu suy luận từ trường hợp tổng quát hơn tới

trường hợp cụ thể hơn, hay là suy luận mà trong đó kết luận có độ chính xác tính ngang bằng với các tiền đề

Ví dụ:

Người ta có thể nói rằng: "Vì trời mưa nên chắc chắn đường ướt" Tuy nhiên, có một luận cứ ẩn trong câu này: "Nếu trời mưa thì đường ướt." Sử dụng tiền đề "Nếu trời mưa thì đường ướt.", ta có thể tranh luận rằng "Vì trời mưa nên chắc chắn đường ướt", mà không thể rằng "Đường ướt cho nên chắc chắn trời đang mưa" Hoặc ta có thể nói: "Đường không ướt, do đó trời không mưa", nhưng không thể "Trời không mưa,

do đó đường không ướt "

Trang 12

Đó là vì đường ướt là một kết quả không tránh khỏi của mưa, nhưng đường ướt không nhất thiết phải do mưa

Các luận cứ suy diễn có thể có hiệu lực hoặc không có hiệu lực Các luận cứ có hiệu lực tuân theo các quy tắc đã định trước Đối với tính hiệu lực việc các quy tắc định trước đ ng hay sai không được xét đến Do đó, các kết luận có hiệu lực không nhất thiết là kết luận đúng, và các kết luận không có hiệu lực có thể không sai

Khi một luận cứ vừa có hiệu lực vừa đ ng, nó được coi là có cơ sở Khi có hiệu lực nhưng không đ ng, nó được coi là không có cơ sở

Ví dụ:

Suy diễn có hiệu lực:

Do Socrates là một người, và do tất cả mọi người đều không bất tử, do đó Socrates cũng không bất tử

Suy diễn trên còn được coi là có cơ sở, do hai tiền đề "Socrates là người" và "tất

cả mọi người đều không bất tử" là đ ng

Suy diễn không có hiệu lực:

Tất cả các thí sinh thi trượt đều không được học bổng, tất cả các thí sinh đỗ vớt đều không được học bổng, do đó tất cả các thí sinh đỗ vớt đều thi trượt

1.2 Nguồn gốc và nhu cầu phát triển CSDL suy diễn

Khái niệm về CSDL suy diễn được nhiều nhà nghiên cứu đề cập đến theo hướng phát triển các kết quả mà Green đã đạt được vào năm 1969 về các hệ thống câu hỏi –

trả lời (theo http://www.wikipedia.org)

Xét về quan điểm lý thuyết, CSDL suy diễn có thể coi như là các chương trình logic với sự khái quát hóa khái niệm về CSDL quan hệ Đó là cách tiếp cận của Brodie

và Manola vào năm 1989, của Codd vào năm 1970, của Date vào năm 1986, của Gardarin và Valdurier vào năm 1989 và của Ullman vào năm 1984

Trang 13

CSDL suy diễn là sản phẩm tự nhiên của lập trình logic, trong đó logic toán được

sử dụng cho các khái niệm tính toán mô hình trực tiếp Kỹ thuật CSDL suy diễn được ứng dụng nhiều trong các hệ hỗ trợ quyết định và các hệ chuyên gia Cùng với các kỹ thuật phát triển của CSDL quan hệ, CSDL suy diễn cũng có khả năng lưu trữ một lượng lớn thông tin cũng như việc suy diễn trên các thông tin đó

Các hệ hỗ trợ quyết định, các hệ chuyên gia là những lĩnh vực có ứng dụng kỹ thuật CSDL suy diễn Ngoài ra nó còn được ứng dụng rộng rãi trong việc phân tích tài chính, phân tích ngôn ngữ, cú pháp, Nó cho phép phân tích một lượng lớn các dữ liệu

và đưa ra những suy luận, định hướng cho tương lai Trong CSDL suy diễn, mặc dù đã

có nhiều kết quả có giá trị nhưng cũng có nhiều vấn đề cần nghiên cứu tiếp, chẳng hạn như vấn đề về ngữ nghĩa của phủ định và tối ưu hóa câu truy vấn

Khi nói đến CSDL ta không thể không đề cập đến một yếu tố liên quan đó là lập trình logic Tư tưởng cơ bản của lập trình logic là sử dụng logic toán học như một ngôn

ngữ lập trình Điều này được đề cập trong tài liệu của Kowaski năm 1970, và được Colmerauer đưa vào thực hành năm 1975 trong các cài đặt ngôn ngữ lập trình logic đầu tiên, tức là ngôn ngữ lập trình PROLOG (PROgramming LOGic) Nhờ sự hình thức hóa, Kowalski đã xem xét tập con của các logic bậc một, gọi là logic mệnh đề Horn Một câu hay một mệnh đề theo logic có thể có nhiều điều kiện đ ng nhưng chỉ có một hay không có kết luận đ ng

Đối với nhu cầu thực hành CSDL suy diễn xử lý các câu không phức tạp như các câu trong hệ thống lập trình logic Số các luật, tức là số các câu với các điều kiện không trống trong CSDL suy diễn nhỏ hơn số các sự kiện, tức các câu với điều kiện rỗng

Một khía cạnh khác nhau nữa giữa CSDL suy diễn và lập trình logic là hệ thống lập trình logic nhấn mạnh các chức năng, trong khi CSDL suy diễn nhấn mạnh tính hiệu quả Cơ chế suy diễn dùng trong CSDL suy diễn để tính toán trả lời không được tổng quát như trong hệ thống lập trình logic

Trang 14

Các CSDL suy diễn có thể quản lý hầu hết các ứng dụng hiện tại, các vấn đề phức tạp về dữ liệu

Với hệ quản trị CSDL quan hệ dùng đại số quan hệ hiện tại thì việc đặt câu hỏi

và trả lời câu hỏi còn hạn chế nhất là CSDL có kích thước lớn Hơn nữa, vấn đề đệ quy thì trong đại số quan hệ không giải quyết được

CSDL suy diễn gồm các sự kiện và các luật sẽ cho chúng ta các câu trả lời từ câu hỏi, và cung cấp cho chúng ta những tri thức mới

Việc nghiên cứu CSDL được thực hiện trên thế giới từ những năm 80 của thế kỹ

XX, nhưng ở nước ta hiện nay vẫn còn rất ít những nghiên cứu về nó Việc tìm hiểu CSDL suy diễn và nghiên cứu những ứng dụng của nó là một vấn đề có ý nghĩa lý thuyết và thực tiễn

1.3 Nội dung chính của luận văn

Tên đề tài: “Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng”

Luận văn gồm các chương:

Chương 1: Tổng quan

Nội dụng chính: Trình bày tổng quan về nguồn gốc và sự phát triển của lập luận logic; nhu cầu của CSDL suy diễn trong thực tế

Chương 2: Cơ sở lý thuyết

Nội dung chính: Trình bày về hệ thống tri thức, cách thức biểu diễn tri thức và một số công nghệ xử lý tri thức; khái quát về lập trình logic và ngôn ngữ Prolog

Trang 15

Chương 3: Cơ sở dữ liệu suy diễn

Nội dung chính: Chương này sẽ trình bày một số vấn đề về CSDL suy diễn (CSDL dựa trên logic); mô hình CSDL suy diễn, chương trình Datalog

Chương 4: Xây dựng demo ứng dụng

Nội dung chính: Xây dựng demo ứng dụng: “Ứng dụng CSDL suy diễn vào việc tìm kiếm thông tin sách trong thư viện”

Chương 5: Kết luận và hướng phát triển

Trang 16

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

Nội dung chính: Trình bày về hệ thống tri thức, cách thức biểu diễn tri thức và một số công nghệ xử lý tri thức; khái quát về lập trình logic và ngôn ngữ Prolog

2.1 Tri thức và hiểu biết

2.1.1 Một số khái niệm

Tri thức là các thông tin tài liệu, các cơ sở lý luận, các kỹ năng khác nhau, đạt được bởi một tổ chức hay một cá nhân thông qua các trải nghiệm thực tế hay thông qua sự giáo dục đào tạo (theo http://www.wikipedia.org); các hiểu biết về lý thuyết hay

thực tế về một đối tượng, một vấn đề, có thể lý giải được về nó; là những gì đã biết, đã được hiểu biết trong một lĩnh vực cụ thể hay toàn bộ, trong tổng thể; các cơ sở, các thông tin, tài liệu, các hiểu biết hoặc những thứ tương tự có được bằng kinh nghiệm thực tế hoặc do những tình huống, hoàn cảnh cụ thể Tuy nhiên không có một định nghĩa chính xác nào về tri thức hiện nay được mọi người chấp nhận, có thể bao quát được toàn bộ, vẫn còn nhiều học thuyết, các lý luận khác nhau về tri thức

Tri thức giành được thông qua các quá trình nhận thức phức tạp: Quá trình tri giác, quá trình học tập, tiếp thu, quá trình giao tiếp, quá trình tranh luận, quá trình lý luận, hay kết hợp các quá trình này

Theo cổ điển, tri thức có hai dạng tồn tại chính là tri thức ẩn và tri thức hiện

Tri thức hiện là những tri thức được giải thích và mã hóa dưới dạng văn bản, tài liệu, âm thanh, phim, ảnh, thông qua ngôn ngữ có lời hoặc không lời, nguyên tắc hệ thống, chương trình máy tính, chuẩn mực hay các phương tiện khác (theo http://www.wikipedia.org) Đây là những tri thức đã được thể hiện ra ngoài và dễ dàng

chuyển giao, thường được tiếp nhận qua hệ thống giáo dục và đào tạo chính quy

Tri thức ẩn là những tri thức thu được từ sự trải nghiệm thực tế, dạng tri thức này thường ẩn trong mỗi cá nhân và rất khó “mã hóa” và chuyển giao, thường bao gồm :

Trang 17

niềm tin, giá trị, kinh nghiệm, bí quyết, kỹ năng(theo http://www.wikipedia.org) Chẳng

hạn, trong bóng đá các cầu thủ chuyên nghiệp có khả năng cảm nhận bóng rất tốt, đây là một dạng tri thức ẩn, nó tồn tại trong mỗi cầu thủ Nó không thể “mã hóa” thành văn bản, không thể chuyển giao, mà người ta có thể có bằng quá trình luyện tập

Dựa vào phân loại tri thức, có thể chia các hình thức chia sẽ tri thức thành 4 dạng chính:

Ẩn - Ẩn: Khi người chia sẽ và người tiếp nhận giao tiếp trực tiếp với nhau (ví dụ:

học nghề, giao tiếp, giảng bài, ) thì sự tiếp nhận này là từ tri thức ẩn thành tri thức ẩn Tri thức của người này không qua trung gian mà chuyển trực tiếp thành tri thức của người kia

Ẩn – Hiện: Một người “mã hóa” tri thức của mình thành văn bản hay các hình

thức hiện hữu khác thì đó là quá trình tri thức từ ẩn (trong đầu người đó) thành hiện (văn bản, tài liệu, )

Hiện - Hiện: Tập hợp các tri thức hiện đã có để tạo ra tri thức hiện khác Quá trình

này được thể hiện qua việc sao lưu, chuyển giao hay tổng hợp dữ liệu

Hiện - Ẩn: Tri thức từ dạng hiện trở thành dạng ẩn Điển hình quá trình này là

việc đọc sách Học sinh đọc sách (tri thức hiện) và r t ra được các bài học, tri thức cho mình (ẩn)

Từ khía cạnh nhân sự, những nhu cầu cần tăng việc trao đổi, chia sẽ và sáng tạo trong các nhóm hoạt động gồm nhiều lĩnh vực khác nhau là một trong những lý do chính dẫn đến việc xây dựng quản trị tri thức Bên cạnh đó nhu cầu tăng khả năng xử lý của nhân viên trong các tình huống phức tạp và lưu giữ những tri thức khi các nhóm làm việc tan rã hay tái lập cũng khiến việc xây dựng nên hệ thống quản lý tri thức trở nên cần thiết

Trang 18

2.1.2 Phân loại tri thức theo hiện đại

Từ lâu, các nhà tâm lý học về nhận thức đã xây dựng lý thuyết giải thích về giải quyết vấn đề Các lý thuyết đã cho người ta thấy các dạng tri thức con người hay dùng, cách con người tổ chức các suy nghĩ trên các tri thức này và cách dùng các tri thức một cách có hiệu quả Các nhà nghiên cứu về trí tuệ nhân tạo dùng các kết quả nghiên cứu này để phát triển các kỹ thuật thể hiện tri thức trên máy tính

Không có lý thuyết nào giải thích được cách tổ chức tri thức con người và cũng không có cấu trúc thể hiện tri thức nào là lý tưởng cả Vấn đề là con người phải biết chọn kỹ thuật thể hiện tri thức và các dạng tri thức mà các kỹ thuật này có thể thể hiện được

Tri thức được phân loại theo kiểu hiện đại gồm các dạng sau (theo

http://www.wikipedia.org):

Tri thức thủ tục: Diễn tả cách mà vấn đề được giải quyết Dạng tri thức này cho

biết phương hướng thực hiện Ví dụ: Các luật, các chiến lược, lịch và các thủ tục Đây chính là các dạng đặc trưng của tri thức thủ tục

Tri thức mô tả: Ví dụ như các khái niệm, các đối tượng, các sự kiện Nó cho biết

một vấn đề được thấy như thế nào Tri thức này bao gồm các khẳng định đơn giản, mang tính giá trị đ ng sai

Tri thức may rủi: Diễn tả luật may rủi dẫn dắt quá trình lập luận Tri thức may rủi

thường được gọi là tri thức nông cạn, nó dựa vào kinh nghiệm, tri thức có được do giải quyết vấn đề trước đó Các chuyên gia thường lấy các tri thức căn bản về vấn đề, đó là tri thức sâu như các điều luật cơ bản, các quan hệ chức năng, Rồi chuyển chúng thành các may rủi đơn giản khi giải quyết vấn đề

Trang 19

Tri thức cấu trúc: Diễn tả các cấu trúc của tri thức Loại tri thức này mô tả mô

hình trí tuệ tổng quát của chuyên gia về một vấn đề Chẳng hạn như: các tập luật, các quan hệ khái niệm, khái niệm về quan hệ của các đối tượng

2.2 Biểu diễn tri thức

Con người sống trong môi trường có thể nhận thức được thế giới nhờ các giác quan (tai, mắt và các giác quan khác), sử dụng tri thức tích lũy được và nhờ khả năng lập luận, suy luận, con người có thể đưa ra các hành động hợp lý cho công việc mà con người đang làm Một mục tiêu của trí tuệ nhân tạo ứng dụng là thiết kế các tác nhân thông minh cũng có những khả năng đó như con người Người ta có thể hiểu tác nhân thông minh là bất cứ cái gì có khả năng nhận thức được môi trường thông qua các bộ cảm nhận và đưa ra hành động hợp lý đáp ứng lại môi trường thông qua bộ phận hành động Các robots, các phần mềm người máy, các hệ chuyên gia, là các ví dụ về tác nhân thông minh Các tác nhân thông minh cần phải có tri thức về thế giới hiện thực mới có thể đưa ra những quyết định đ ng đắn

Thành phần trung tâm của các tác nhân dựa trên tri thức còn được gọi là hệ dựa trên tri thức hoặc đơn giản là hệ tri thức, là cơ sở tri thức Cơ sở tri thức là một tập hợp

các tri thức được biểu diễn dưới dạng nào đó Mỗi khi nhận được các thông tin đưa vào, tác nhân cần có khả năng suy luận để đưa ra các câu trả lời, các hành động hợp lý, đ ng đắn Nhiệm vụ này được thực hiện bởi bộ suy luận Bộ suy luận là thành phần cơ bản khác của các hệ tri thức Như vậy hệ tri thức bảo trì một cơ sở tri thức và được trang bị một thủ tục suy luận Mỗi khi tiếp nhận được các sự kiện từ môi trường, thủ tục suy luận thực hiện quá trình liên kết các sự kiện với các tri thức trong cơ sở tri thức để rút ra các câu trả lời, hoặc các hành động hợp lý mà tác nhân cần thực hiện Đương nhiên là, khi ta thiết kế một tác nhân giải quyết một vấn đề nào đó thì cơ sở tri thức sẽ chứa các tri thức về miền đối tượng cụ thể đó Để máy tính có thể sử dụng được tri thức, có thể

xử lý tri thức, người ta cần biểu diễn tri thức dưới dạng thuận tiện cho máy tính Đó là mục tiêu của biểu diễn tri thức

Trang 20

Tri thức được mô tả dưới dạng các câu trong ngôn ngữ biểu diễn tri thức Mỗi câu

có thể xem như sự mã hóa của một sự hiểu biết của người ta về thế giới hiện thực Ngôn ngữ biểu diễn tri thức (cũng như mọi ngôn ngữ hình thức khác) gồm hai thành phần cơ

bản là cú pháp và ngữ nghĩa

+ Cú pháp của một ngôn ngữ bao gồm các ký hiệu về các quy tắc liên kết các ký

hiệu (các luật c pháp) để tạo thành các câu (công thức) trong ngôn ngữ Các câu ở đây

là biểu diễn ngoài, cần phân biệt với biểu diễn bên trong máy tính Các câu sẽ được chuyển thành các cấu trúc dữ liệu thích hợp được cài đặt trong một vùng nhớ nào đó của máy tính, đó là biểu diễn bên trong Bản thân các câu chưa chứa đựng một nội dung nào

cả, chưa mang một ý nghĩa nào cả

+ Ngữ nghĩa của ngôn ngữ cho phép ta xác định ý nghĩa của các câu trong một

miền nào đó của thế giới hiện thực Chẳng hạn trong ngôn ngữ các biểu thức số học, dãy ký hiệu (x+y)*z là một câu viết đ ng c pháp Ngữ nghĩa của ngôn ngữ này cho phép ta hiểu rằng, nếu x, y, z ứng với các số nguyên, ký hiệu + ứng với phép toán cộng, còn * ứng với phép toán nhân thì biểu thức (x+y)*z biểu diễn quá trình tính toán: lấy số nguyên x cộng với số nguyên y, kết quả được nhân với số nguyên z

Ngoài hai thành phần cú pháp và ngữ nghĩa, ngôn ngữ biểu diễn tri thức cần được cung cấp cơ chế suy luận Một suy luận cho phép ta suy ra một công thức từ một tập nào

đó các công thức Chẳng hạn, trong logic mệnh đề, luật modus ponens từ hai công thức

A và A > B suy ra công thức B Người ta sẽ hiểu lập luận hoặc suy luận là một quá trình áp dụng các luật suy luận để từ các tri thức trong cơ sở tri thức và các sự kiện ta nhận được các tri thức mới Như vậy người ta xác định:

Ngôn ngữ biểu diễn tri thức = Cú pháp + Ngữ nghĩa + Cơ chế suy luận

Một ngôn ngữ biểu diễn tri thức tốt cần phải có khả năng biểu diễn rộng, tức là có thể mô tả được mọi điều mà người ta muốn nói Nó cần phải hiệu quả theo nghĩa là, để

Trang 21

đi tới các kết luận, thủ tục suy luận đòi hỏi ít thời gian tính toán và ít không gian nhớ Người ta cũng mong muốn ngôn ngữ biểu diễn tri thức gần với ngôn ngữ tự nhiên Thường người ta tập trung nghiên cứu logic vị từ cấp một, ngôn ngữ biểu diễn tri thức, bởi vì logic vị từ cấp một có khả năng biểu diễn tương đối tốt, và hơn nữa nó là cơ

sở cho nhiều ngôn ngữ biểu diễn tri thức khác Nhưng trước hết ch ng ta đi tìm hiểu logic mệnh đề, nó là ngôn ngữ đơn giản, có khả năng biểu diễn hạn chế, song thuận tiện cho ta trong việc đưa vào nhiều khái niệm quan trọng trong logic

2.3 Biểu diễn tri thức bằng luật dẫn xuất (luật sinh)

2.3.1 Khái niệm

Phương pháp biểu diễn tri thức bằng luật sinh được phát minh bởi Newell và Simon trong l c hai ông đang cố gắng xây dựng một hệ giải bài toán tổng quát Đây là một kiểu biểu diễn tri thức có cấu tr c Ý tưởng cơ bản là tri thức có thể được cấu trúc bằng một cặp điều kiện – hành động : "NẾU điều kiện xảy ra THÌ hành động sẽ được thi hành" Chẳng hạn : NẾU đèn giao thông là đỏ THÌ bạn không được đi thẳng, NẾU máy tính không khởi động được THÌ kiểm tra nguồn điện, …

Ngày nay, các luật sinh đã trở nên phổ biến và được áp dụng rộng rãi trong nhiều

hệ thống trí tuệ nhân tạo khác nhau Luật sinh có thể là một công cụ mô tả để giải quyết các vấn đề thực tế thay cho các kiểu phân tích vấn đề truyền thống Trong trường hợp này, các luật được dùng như là những chỉ dẫn (tuy có thể không hoàn chỉnh) nhưng rất hữu ích để trợ giúp cho các quyết định trong quá trình tìm kiếm, từ đó làm giảm không gian tìm kiếm Một ví dụ khác là luật sinh có thể được dùng để bắt chước hành vi của những chuyên gia Theo cách này, luật sinh không chỉ đơn thuần là một kiểu biểu diễn tri thức trong máy tính mà là một kiểu biễu diễn các hành vi của con người

Một cách tổng quát luật sinh có dạng như sau :

P 1 P 2 P n Q

Trang 22

Tùy vào các vấn đề đang quan tâm mà luật sinh có những ngữ nghĩa hay cấu tạo khác nhau :

Trong logic vị từ : P1, P2, , Pn, Q là những biểu thức logic

Trong ngôn ngữ lập trình, mỗi một luật sinh là một câu lệnh

IF (P1 AND P2 AND AND Pn) THEN Q

Trong lý thuyết hiểu ngôn ngữ tự nhiên, mỗi luật sinh là một phép dịch :

Ví dụ : Cho 1 cơ sở tri thức đƣợc xác định nhƣ sau :

Các sự kiện : A, B, C, D, E, F, G, H, K

Tập các quy tắc hay luật sinh (rule):

R1 : A→ E R2 : B →D R3 : H→A R4 : E  G→ C R5 : E  K→ B R6 : D  E K→ C R7 : G  K  F→A

2.3.2 Cơ chế suy luận trên các luật sinh

Suy diễn tiến : Là quá trình suy luận xuất phát từ một số sự kiện ban đầu, xác định các

sự kiện có thể đƣợc "sinh" ra từ sự kiện này

Trang 23

Sự kiện ban đầu : H, K

Suy diễn lùi : Là quá trình suy luận ngược xuất phát từ một số sự kiện ban đầu, ta tìm

kiếm các sự kiện đã "sinh" ra sự kiện này Một ví dụ thường gặp trong thực tế là xuất phát từ các tình trạng của máy tính, chẩn đoán xem máy tính đã bị hỏng hóc ở đâu

Ví dụ : Cho tập các sự kiện và tập các luật như sau:

Trang 24

 R3 Nếu (điện vào máy là "có") và (tình trạng đèn màn hình là "chớp đỏ") thì (cáp màn hình "lỏng")

Để xác định được các nguyên nhân gây ra sự kiện "không sử dụng được máy tính", ta phải xây dựng một cấu tr c đồ thị gọi là đồ thị AND/OR như sau :

Hình 2.1: Cấu trúc đồ thị AND/OR

Như vậy là để xác định được nguyên nhân gây ra hỏng hóc là do ổ cứng hỏng hay cáp màn hình lỏng, hệ thống phải lần lượt đi vào các nhánh để kiểm tra các điều kiện như điện vào máy "có", âm thanh ổ cứng "không"…Tại một bước, nếu giá trị cần xác định không thể được suy ra từ bất kỳ một luật nào, hệ thống sẽ yêu cầu người dùng trực tiếp nhập vào Chẳng hạn như để biết máy tính có điện không, hệ thống sẽ hiện ra màn hình câu hỏi "Bạn kiểm tra xem có điện vào máy tính không (kiểm tra đèn nguồn)? (C/K)" Để thực hiện được cơ chế suy luận lùi, người ta thường sử dụng ngăn xếp (để ghi nhận lại những nhánh chưa kiểm tra)

Trang 25

2.3.3 Ưu điểm và nhược điểm của biểu diễn tri thức bằng luật

2.3.3.1 Ưu điểm

Biểu diễn tri thức bằng luật đặc biệt hữu hiệu trong những tình huống hệ thống cần đưa

ra những hành động dựa vào những sự kiện có thể quan sát được Nó có những ưu

điểm chính yếu sau đây :

 Các luật rất dễ hiểu nên có thể dễ dàng dùng để trao đổi với người dùng (vì nó là một trong những dạng tự nhiên của ngôn ngữ)

 Có thể dễ dàng xây dựng được cơ chế suy luận và giải thích từ các luật

 Việc hiệu chỉnh và bảo trì hệ thống là tương đối dễ dàng

 Có thể cải tiến dễ dàng để tích hợp các luật mờ

 Các luật thường ít phụ thuộc vào nhau

 Cơ sở tri thức luật sinh lớn sẽ làm giới hạn khả năng tìm kiếm của chương trình điều khiển Nhiều hệ thống gặp khó khăn trong việc đánh giá các hệ dựa trên luật sinh cũng như gặp khó khăn khi suy luận trên luật sinh

Trang 26

2.4 Công nghệ tri thức

2.4.1 Xử lý tri thức

Trí tuệ, sự thông minh phải dựa trên nền tảng của tri thức Tuy nhiên, nó còn phụ thuộc vào việc vận dụng, xử lý tri thức Biểu diễn tri thức là việc đưa tri thức vào máy

tính và chỉ có ý nghĩa nếu công việc tiếp theo: “xử lý tri thức được thực hiện”

Để xử lý các tri thức, trí tuệ nhân tạo cần có các kỹ thuật mã hóa tri thức Các kỹ thuật mã hóa tri thức này khác nhiều với cách thể hiện của các dữ liệu trong các chương trình, thuật toán xử lý dữ liệu thường gặp Các hệ thống thông minh cần xử lý các tri thức và các tri thức cần được biểu diễn ở dạng ký hiệu mà hệ thống xử lý được

Một trong những biện pháp xử lý tri thức hiện nay đó là sử dụng luật Luật vừa được sử dụng để biểu diễn tri thức vừa được dùng để xử lý tri thức

2.4.2 Xử lý tri thức bằng luật

Các sự kiện do người cung cấp rất có ý nghĩa đối với các hoạt động của hệ thống trí tuệ nhân tạo Chúng cho phép hệ thống hiểu trạng thái hiện tại của thế giới Một cấu trúc tri thức thông dụng dùng trong thiết kế hệ thống trí tuệ nhân tạo mà yêu cầu sử dụng thêm tri thức bổ sung là các luật Luật là phương pháp phổ biến dùng để xử lý tri thức

Phần trên đã đề cập đến khái niệm về luật Luật thuộc dạng tri thức thủ tục Nó gắn thông tin đã cho với một vài hoạt động Các hoạt động này có thể là khẳng định về thông tin mới hay là thủ tục sẽ được thực hiện Như vậy, luật mô tả cách giải quyết vấn đề

Quá trình xử lý tri thức bằng luật là quá trình liên kết những thông tin đã biết với các thông tin khác, các thông tin này có thể được suy diễn để người ta hiểu biết thêm, kết quả được suy diễn chính là kết quả của quá trình xử lý tri thức Về mặt logic, cấu trúc của luật kết nối một hay nhiều giả thiết, hay cái có trong câu IF, với một hay nhiều kết luận, hay được gọi là kết quả trong câu THEN

Trang 27

Thêm thông tin vào bộ nhớ làm việc

Xét luật đầu tiên

Đưa kết luận vào bộ nhớ làm việc Dừng công việc

Xét luật tiếp theo

Giả thiết khớp với

bộ nhớ

Còn luật khác

Hình 2.2: Các bước xử lý tri thức dựa trên luật

Nói chung, một luật có nhiều giả thiết gắn với nhau bằng câu bằng toán tử AND hay OR hay cả hai Luật cũng có thể dùng ELSE để suy diễn khi giả thiết sai

Trong hệ thống dựa trên các luật, tri thức về lĩnh vực được đưa vào cơ sở tri thức của hệ thống Hệ thống dùng các luật này cùng với các thông tin bộ nhớ để giải bài toán Khi câu IF của luật khớp với thông tin trong bộ nhớ, hệ thống thực hiện các hoạt động mô tả trong câu THEN của luật Lúc này luật được xem như đã thực hiện, kết quả trong câu THEN được bỗ sung vào bộ nhớ Kết quả thu được cũng có thể làm cho luật mới được thực hiện

Việc xử lý các luật trong hệ thống dựa trên các luật được quản lý bằng một module gọi là bộ suy diễn

Cùng với việc sản sinh các thông tin mới, một luật có thể thực hiện các hành động Nó có thể là tính toán đơn giản, như là : IF cần đến chu vi đường tròn THEN chu

vi =Pi*đường kính

Để thực hiện các thao tác phức tạp hơn, nhiều hệ thống truy nhập các thủ tục bên ngoài Chương trình loại này đa phần là phần mềm về CSDL, chương trình ngôn ngữ C, Chúng có thể được viết bằng các ngôn ngữ lập trình hay các lệnh trên bảng tính Ví dụ:

Trang 28

 Luật 1 ( liên quan đến thủ tục trong ngôn ngữ lập trình): IF thiết kế hộp mới AND NUMBER = Số các chi tiết lắp ráp AND SIZE = Kích c của chi tiết THEN CALL Tính thể tích của hộp AND SEND NUMBER, SIZE AND RETURN Thể tích

 Luật 2 (liên quan đến bảng tính): IF cần biết tên nhân viên trong bộ phận Kinh doanh THEN OPEN Bảng NHAN_VIEN AND Tên bộ phận = Kinh doanh

 Luật 3 (liên quan đến CSDL): IF có nhà bị cháy AND Tên nhà =”A” THEN OPEN Điện thoại AND FIND Tên nhà, mã AND Điện thoại= Mã điện thoại Nói chung người ta có thể truy nhập hay thay đổi thông tin nhờ chương trình bên ngoài Có thể dùng khối lượng lớn các thông tin trong CSDL và bảng tính, hay thay đổi các thông tin nhờ chức năng hỗ trợ quyết định của hệ thống xử lý luật

2.4.3 Xử lý tri thức bằng các luật có dùng biến

Để tăng hiệu quả cho việc sử dụng các luật xử lý, người ta sử dụng các biến trong luật là phù hợp với các ứng dụng cần thực hiện cùng một số thao tác trên tập các đối tượng tương tự nhau Bởi vì nếu viết một luật đơn cho mỗi đối tượng thì không hiệu

quả và hệ thống khó quản lý

Ví dụ 1: Luật sau cho biết A có được tốt nghiệp: IF A có điểm tốt nghiệp là 5

AND không nợ môn nào THEN A có thể tốt nghiệp

Khi hệ thống muốn thực hiện việc kiểm tra cho các cá nhân khác không phải là A thì nó cần phải viết luật khác, do vậy không tinh tế, thậm chí điểm tốt nghiệp của người cần linh động trong khoảng từ 5.0 trở lên Có thể dùng ngôn ngữ lập trình để tạo ra một luật, để luật này có thể khớp với dãy giá trị rộng hơn Các luật này dùng biến để khớp với các mệnh đề tương tự

Ví dụ 2: IF X không nợ môn nào AND X có điểm tốt nghiệp trên 5.0 THEN X có

thể tốt nghiệp

Trang 29

Một phương pháp chủ yếu cơ bản thứ hai dùng để xử lý tri thức đó là dùng phương pháp lập luận

2.4.4 Xử lý tri thức bằng lập luận

Logic là hành động sử dụng lý tính để rút ra một kết luận từ các tiền đề nhất định bằng cách sử dụng một phương pháp luận cho trước, và hai phương pháp tường minh được sử dụng rộng rãi nhất để đạt đến kết luận là lập luận suy diễn và lập luận quy nạp Chi tiết cụ thể của các phương pháp lập luận là mối quan tâm của các ngành như triết học, logic, tâm lý học và trí tuệ nhân tạo

Để giải một bài toán, ta phải kết hợp các sự kiện với các tri thức, dùng các sự kiện riêng về bài toán và dùng chúng trong ngữ cảnh cụ thể của bài toán để rút ra các kết luận logic Quá trình giải bài toán để rút ra kết luận logic được gọi là quá trình lập luận

Lập luận là quá trình làm việc với tri thức, sự kiện và các chiến lược giải bài toán để rút ra kết luận Đó cũng là quá trình để hiểu cách con người suy lý và cách họ làm việc với thông tin về bài toán đã cho, cộng với kiến thức tổng quát của họ về lĩnh vực này sẽ đảm bảo hiểu rõ các bước đi trong việc xử lý tri thức trong hệ thống trí tuệ nhân tạo

Xử lý tri thức thường dựa vào các loại lập luận như sau:

Lập luận theo cách suy diễn: Con người dùng lập luận suy diễn để rút ra thông tin

mới từ những thông tin đã biết Các thông tin này có quan hệ logic với nhau Lập luận suy diễn dùng các sự kiện của bài toán gọi là các tiên đề và kiến thức chung có liên quan ở dạng luật gọi là các kéo theo

Ví dụ 1:

Kéo theo: con gà lớn nhanh nếu tôi chăm sóc tốt Tiền đề: tôi chăm sóc con gà tốt

Trang 30

Kết luận: con gà lớn nhanh

Lập luận suy diễn là một trong các kỹ thuật phổ biến nhất Suy diễn đã dùng Modus Ponens là loại lập luận suy diễn cơ bản Khi ta có A > B và A đ ng thì r t ra được B đ ng

Lập luận quy nạp: Con người dùng lập luận quy nạp để rút ra các kết luận tổng

kết từ một tập các sự kiện theo cách tổng quát hóa

Ví dụ 2:

Giả thiết: Con trâu ở Tây Ninh ăn cỏ, con trâu ở Đồng Nai ăn cỏ, con trâu ở Bình Dương ăn cỏ

Kết luận: nói chung là con trâu ăn cỏ

Qua lập luận này, người ta cho rằng kết luận sẽ đ ng cho những trường hợp cùng loại, dựa trên một số hạn chế của một số trường hợp Thực chất lập luận suy diễn là đem cái thiểu số áp đặt cho cái đa số

Lập luận giả định: suy diễn là lập luận chính xác từ các sự kiện và thông tin đã

biết Lập luận giả định là loại suy diễn có vẽ hợp lý Điều này có nghĩa là câu kết luận

có thể đ ng nhưng cũng có thể không đ ng

Ví dụ 3:

Kéo theo: con gà ăn nhiều > con gà lớn nhanh

Tiên đề: con gà ăn nhiều

Kết luận: con gà lớn nhanh

Lập luận tương tự, loại suy: Người ta tạo một mô hình của một vài khái niệm

thông qua kinh nghiệm của họ Họ dùng mô hình này để hiểu một vài hoàn cảnh và đối tượng tương tự Họ vạch ra điểm tương đồng giữa hai vật đem so sánh, r t ra sự giống nhau và khác nhau nhằm hướng dẫn việc lập luận của họ

Trang 31

Ví dụ 4: Cho bảng sau

Bảng 2.1.Đối tượng con trâu

Bảng trên cho biết thông tin đa dạng về đối tượng con trâu và dùng bảng trên để nhận biết đối tượng đó Nếu cho rằng con bò giống con trâu thì con bò cũng phải có những tính chất đó Loại lập luận này được dùng để hiểu biết đối tượng mới, và để hiểu rõ thêm bằng cách ra cứu đến những sự khác biệt giữa các đối tượng Trong ví dụ này, con bò khác với con trâu do các nét khác nhau giữa chúng

Lập luận theo lẽ thường: Nhờ kinh nghiệm, con người có thể giải quyết vấn đề

một cách hiệu quả Họ sử dụng lẽ thông thường để nhanh chóng rút ra kết luận Lập luận theo lẽ thường có xu hướng thiên về phán xét sự đ ng đắn hơn là lập luận chính xác về logic

Ví dụ 5: Nói về chiếc xe đạp :” xích xe chùng thường gây tuột xích” Kết luận này

có được do kinh nghiệm đi xe đạp nhiều lần Người ta đoán ngay “ xích chùng“ khi thấy chiếc xe hay tuột xích Loại tri thức này được xem là may rủi, cầu may

Khi các tri thức may rủi được dùng để hướng dẫn giải bài toán trong hệ thống trí tuệ nhân tạo, người ta có kiểu tìm kiếm may rủi hay tìm phù hợp Loại tìm kiếm này phát hiện lời giải tại nơi có vẻ là tốt nhất Như vậy cũng chẳng đảm bảo được nơi đó có lời giải Tuy nhiên, cách tìm kiếm may rủi là phù hợp đối với những ứng dụng cần nhanh chóng thu được lời giải

Chủng loại Động vật Thức ăn Cỏ

Số chân 4

Trang 32

Lập luận đơn điệu và không đơn điệu: Đối với nhiều trường hợp, người ta lập

luận trên các thông tin tĩnh Các thông tin này không thay đổi trạng thái trong quá trình giải bài toán Quá trình giải bài toán theo cách này được gọi là lập luận đơn điệu

Ví dụ 6: IF có tiếng động THEN con chó tỉnh dậy

Nếu có sự kiện “cái cốc rơi” thì câu IF đ ng, tức là người ta đã sử dụng “Nếu cốc rơi thì có tiếng động” L c này trong câu trên, người ta thu được kết luận trong câu THEN, tức là: “cốc rơi” > ”có tiếng động” > “con chó tỉnh giấc”

Sau khi hết tiếng động, người ta muốn rằng con chó lại ngủ tiếp Tuy nhiên, hệ thống với cách lập luận đơn điệu sẽ “giữ” trạng thái con chó tỉnh giấc Do việc theo dõi thông tin không mấy khó khăn, khi có sự kiện nào thay đổi người ta có thể dựa vào nhiều sự kiện phụ thuộc khác nhau để thu được kết luận mong muốn Loại lập luận như vậy được gọi là lập luận không đơn điệu

Hệ thống có thể lập luận không đơn điệu nếu nó có hệ thống quản lý giá trị chân

lý Hệ thống này quản lý dữ liệu về nguyên nhân để sự kiện được khẳng định Do vậy, khi nguyên nhân thay đổi sự kiện cũng thay đổi theo Một hệ thống dùng lập luận không đơn điệu như ví dụ trên sẽ giữ được con chó tỉnh giấc lại

Lập luận dựa trên luật: Một khi ch ng ta đã lưu trữ một cơ sở tri thức, chúng ta

cần có thủ tục lập luận để rút ra các kết luận từ cơ sở tri thức Trong các hệ lập luận

dựa trên luật, có hai kiểu lập luận cơ bản: lập luận tiến và lập luận lùi

1)Lập luận tiến: Tư tưởng cơ bản của lập luận tiến là áp dụng suy diễn Modus

Ponens tổng quát Trong mỗi bước của lập luận tiến, người ta xét một lập luận trong cơ

sở luật Đối sánh mỗi điều kiện của luật với các sự kiện trong cơ sở sự kiện, nếu tất cả các điều kiện của luật được thỏa mãn thì sự kiện trong phần kết luận của luật được xem

là sự kiện được suy ra Nếu sự kiện này là sự kiện mới (không có trong bộ nhớ làm việc), thì nó được đặt vào bộ nhớ làm việc Quá trình trên được lặp lại cho tới khi nào không có luật nào sinh ra các sự kiện mới

Trang 33

Như vậy, quá trình lập luận tiến là quá trình xem xét các luật Với mỗi luật ta đi

từ phần điều kiện đến phần kết luận của luật, khi mà các điều kiện của luật đều được làm thỏa mãn, thì ta suy ra sự kiện trong phần kết luận của luật Chính vì lẽ đó mà có tên là lập luận tiến

2)Lập luận lùi: Trong các hệ dựa trên luật, chúng ta còn có thể sử dụng phương

pháp lập luận lùi Trong lập luận lùi, người ta đưa ra các giả thuyết cần được đánh giá

Sử dụng lập luận lùi, giả thiết đưa ra hoặc là được chứng minh, hoặc là bị bác bỏ Cần lưu ý rằng, chúng ta nói giả thiết được chứng minh, hoặc được bác bỏ là muốn nói tới

nó được chứng minh hoặc bác bỏ bởi tình trạng hiện thời của bộ nhớ làm việc Khi mà

bộ nhớ làm việc thay đổi (chúng ta thêm vào hoặc bác bỏ một số sự kiện) thì một giả thiết được chứng minh có thể trở thành bị bác bỏ và ngược lại

Quá trình lập luận lùi diễn ra như sau: Ta đối sánh giả thiết đưa ra với các sự kiện trong bộ nhớ làm việc Nếu có một sự kiện khớp với giả thiết (ở đây “khớp” được hiểu

là hai câu mô tả sự kiện và giả thiết trùng nhau theo một phép thế nào đó), thì ta xem như giả thiết là đ ng Nếu không có sự kiện nào khớp với giả thiết, thì ta đối sánh giả thiết với phần kết luận của các luật Các điều kiện này của luật được xem như là giả thiết mới Với giả thiết mới ta lặp lại quá trình trên

Nếu tất cả các giả thiết được sinh ra trong quá trình phát triển các giả thiết bởi các luật được chọn thích hợp đều được thỏa mãn (đều có trong bộ nhớ làm việc) thì giả thiết đã đưa ra được xem là đ ng Ngược lại, dù ta áp dụng luật nào để phát triển các giả thiết cũng dẫn tới giả thiết không có trong bộ nhớ làm việc và cũng không thể quy giả thiết này về các giả thiết mới khác, thì giả thiết đã đưa ra được xem là sai

2.5 Khái quát về lập trình logic

Lập trình logic là mảng công việc trước tiên khi chứng minh định lý cơ học Sự thật thì việc chứng minh định lý đã tạo nên cơ sở cho hầu hết hệ thống lập trình logic hiện nay

Trang 34

Tư tưởng cơ bản của lập trình logic là sử dụng logic toán học như ngôn ngữ lập trình Điều này được đề cập trong tài liệu của Kowalski năm 1970, và được Colmerauer đưa vào thực hành năm 1975 trong các cài đặt ngôn ngữ lập trình logic đầu tiên, tức là ngôn

ngữ lập trình PROLOG (PROgramming LOGic) (Theo Apt K R., “Logic Programming” (1990), Elsevier Science Publishers, pp 135-144.) Nhờ sự hình thức

hóa, Kowalski đã xem xét tập con của các logic bậc một, gọi là logic mệnh đề Horn Một câu hay một mệnh đề theo logic có thể có nhiều điều kiện đ ng nhưng chỉ có một

hay không có kết luận đ ng

Trong lập trình logic, ta có thể sử dụng các vị từ để định nghĩa các khái niệm của tất cả các môn khoa học khác

Ví dụ: Định nghĩa một số nguyên tố: Số nguyên tố N là một số nguyên lớn hơn 1, chỉ chia hết cho 1 và chính nó

Để xét xem số N có phải là số nguyên tố hay không, người ta thường sử dụng dấu hiệu

nhận biết: Số nguyên tố là một số nguyên dương, không chia hết cho mọi số nguyên tố nhỏ hơn nó và 2 là số nguyên tố nhỏ nhất

Dấu hiệu này có thể mô tả bằng các vị từ như sau:

Như thế, toàn bộ các ký hiệu của ngôn ngữ lập trình suy về một công thức đặc biệt:

 Phát sinh từ một yêu cầu

Trang 35

 Nhằm chứng minh một mục tiêu Để trả lời cho câu hỏi đó hệ thống xem nó như là một “đích” và cố chứng minh “đích” đó bằng cách tạo những suy diễn trên cơ sở các tri thức đã khai báo

Một ngôn ngữ logic có thể được dùng trong giai đoạn đặc tả yêu cầu của quy trình xây dựng một sản phẩm phần mềm Hơn thế nữa, logic vị từ cho phép biểu diễn hầu hết các khái niệm và các định lý trong các bộ môn khoa học Một trong những ngôn ngữ lập trình logic có hỗ trợ rất nhiều cho lĩnh vực trí tuệ nhân tạo mà ta xét đến ở đây đó là ngôn ngữ Prolog

2.6 Ngôn ngữ Prolog

2.6.1 Prolog là ngôn ngữ lập trình logic

Prolog là ngôn ngữ được sử dụng phổ biến nhất trong dòng các ngôn ngữ lập trình logic Ngôn ngữ này do giáo sư người Pháp Alain Colmerauer và nhóm nghiên cứu của ông đề xuất lần đầu tiên tại đại học Marseillse đầu những năm 1970 Đến năm

1980 Prolog nhanh chóng được áp dụng rộng rãi ở châu Âu, được người Nhật chọn làm ngôn ngữ phát triển thế hệ máy tính thứ 5 Prolog đã được cài đặt trên máy vi tính

Apple II, IBM-PC, Macintosh

Từ đó đến nay, qua nhiều lần cải tiến, đặc biệt hãng Borland cho ra đời phần mềm TURBO PROLOG với nhiều ưu điểm, thuận tiện cho người sử dụng Để giải quyết một số vấn đề, ta nhận thấy sử dụng ngôn ngữ Prolog cho ta chương trình gọn nhẹ hơn nhiều so với các ngôn ngữ khác

Prolog là một ngôn ngữ cấp cao, có đặc điểm gần với ngôn ngữ tự nhiên, từ những người mới học đến những lập trình viên chuyên nghiệp đều có thể tiếp cận một cách nhanh chóng, viết ra một chương trình ứng dụng hữu ích

Khác với những ngôn ngữ cấu tr c như Pascal, hay C mà ta đã làm quen, Prolog

là một ngôn ngữ mô tả, với một số sự kiện và quy luật suy diễn đã mô tả, Prolog sẽ suy luận cho ta các kết quả

Trang 36

Prolog còn được gọi là ngôn ngữ lập trình ký hiệu (symbolic programming) tương

tự như các ngôn ngữ lập trình hàm (funtional programming) hay lập trình phi số numerical programming) Prolog rất thích hợp để giải quyết các bài toán liên quan đến

(non-các đối tượng (object) và mối quan hệ (relation) giữa chúng

Prolog được sử dụng phổ biến trong lĩnh vực trí tuệ nhân tạo Nguyên lý lập trình

logic dựa trên các mệnh đề Horn (Horn logic) Một mệnh đề Horn biểu diễn một sự

kiện hay một sự việc nào đó là đ ng hoặc không đ ng, xảy ra hoặc không xảy ra,…

Ví dụ: Sau đây là một số mệnh đề Horn (Theo TS Phan Huy Khánh, “Lập trình logic trong Prolog”(2004), NXB Đại học quốc gia Hà Nội)

(1) Nếu một người già mà (và) khôn ngoan thì người đó hạnh phúc

(2) Jim là người hạnh phúc

(3) Nếu X là cha mẹ của Y và Y là cha mẹ của Z thì X là ông của Z

(4) Tom là ông của Mery

(5) Tất cả mọi người đều chết(hoặc Nếu ai là người thì ai đó phải chết) (6) Socrat là người

Trong các mệnh đề trên, mệnh đề (1), (3), (5) được gọi là các luật (rules), các mệnh đề còn lại gọi là các sự kiện (facts) Một chương trình logic có thể được xem như

là một CSDL gồm các mệnh đề Horn, hoặc dạng luật, hoặc dạng sự kiện, chẳng hạn như tất cả các sự kiện và luật từ (1) đến (6) ở trên Người sử dụng gọi chạy một chương trình logic bằng cách đặt câu hỏi truy vấn trên CSDL này, chẳng hạn câu hỏi:

Socrat có chết không?

(Tương đương khẳng định Socrat chết đ ng hay sai?)

Một hệ thống logic sẽ thực hiện chương trình theo cách “suy luận”-tìm kiếm dựa trên vốn “hiểu biết” đã có là chương trình – CSDL, để minh chứng câu hỏi là một khẳng định, là đ ng (Yes) hoặc sai (No) Với câu hỏi trên hệ thống tìm kiếm trên

CSDL khẳng định Socrat chết và “tìm thấy” luật (5) thỏa mãn (vế thì),vận dụng luật (5)

Trang 37

hệ thống nhận được Socrat là người(vế nếu) chính là sự kiện (5) Từ đó câu trả lời sẽ là

Yes Có nghĩa là Socrat chết là đ ng

2.6.2 Xây dựng sự kiện và luật

2.6.2.1 Xây dựng sự kiện

Sự kiện là một vị từ diễn tả một sự thật Ví dụ: “2 là một số nguyên tố” là một sự

kiện vì nó diễn tả sự thật 2 là một số nguyên tố

Để xây dựng các sự kiện trong một chương trình Prolog, ta lấy ví dụ về cây gia hệ như sau Horn

Trong cây gia hệ (a), các nút chỉ người, còn các mũi tên chỉ quan hệ cha mẹ của Sự kiện Tom là cha mẹ của Bill được viết thành một vị từ Prolog như sau (chú ý mệnh đề

được kết thúc bởi một dấu chấm) :

Cha_me(tom, bill) % Chú ý không có dấu cách trước dấu mở ngoặc

Ở đây, vị từ Cha_me có hai đối là tom và bill Người ta có thể biểu diễn vị từ này bởi một cây như trong Hình 2.3 (b) : nút gốc là tên của vị từ, còn các nút lá là các đối

Hình 2.3: Cây gia hệ

Mary

Liz Tom

Jim Ann

Bil

Sue

Cha_me

Trang 38

Từ cây gia hệ trên đây, có thể tiếp tục viết các vị từ khác để nhận được một chương trình Prolog gồm 6 vị từ như sau :

Sau khi hệ thống Prolog nhận được chương trình này, thực chất là một CSDL, người

ta có thể đặt ra các câu hỏi liên quan đến quan hệ Cha_me

Ví dụ:

Câu hỏi Bill có phải là cha mẹ của Sue được gõ vào trong hệ thống đối thoại

Prolog (dấu nhắc ?-_) như sau :

Lần này, Prolog không trả lời Yes hoặc No, mà đưa ra một giá trị của X làm thoả

mãn câu hỏi trên đây :

Trang 39

Sau khi hiển thị câu trả lời đầu tiên, Prolog sẽ lần lượt tìm kiếm những cặp cha mẹ

 con thỏa mãn và lần lượt hiển thị kết quả nếu chừng nào người sử dụng còn yêu cầu

cho đến khi không còn kết quả lời giải nào nữa (kết thúc bởi Yes) :

Trang 40

Tuỳ theo cài đặt Prolog, người sử dụng có thể gõ vào một dấu chấm (.) hoặc Enter

để chấm dứt giữa chừng luồng trả lời

Ta có thể tiếp tục đưa ra những câu hỏi phức tạp hơn khác, chẳng hạn ai là ông (bà) của Jim ? Thực tế, quan hệ ông bà (Ong_ba) chưa được định nghĩa, cần phải

phân tách câu hỏi này thành hai phần sơ cấp hơn :

1 Ai là cha (mẹ) của Jim ? Giả sử có tên là Y

2 Ai là cha (mẹ) của Y ? Giả sử có tên là X

Lúc này, có thể viết trong Prolog như sau :

?- Cha_me(Y, jim), Cha_me(X, Y)

Cha_me

Ong_ba

Hình 2.4: Quan hệ ông bà được hợp thành từ hai quan hệ cha mẹ

Ngày đăng: 27/11/2014, 14:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Ths. Đinh Nguyễn Anh Dũng , “ Biểu diễn tri thức”(2001). NXB Thống Kê Sách, tạp chí
Tiêu đề: “"Biểu diễn tri thức”(2001)
Tác giả: Ths. Đinh Nguyễn Anh Dũng , “ Biểu diễn tri thức”
Nhà XB: NXB Thống Kê
Năm: 2001
[2] TS. Phan Huy Khánh, “Lập trình logic trong Prolog”(2004), NXB Đại học quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Lập trình logic trong Prolog
Tác giả: TS. Phan Huy Khánh, “Lập trình logic trong Prolog”
Nhà XB: NXB Đại học quốc gia Hà Nội
Năm: 2004
[3] Vũ Đức Thi, ”Cơ sở dữ liệu”, NXB Thống kê, 2004 Sách, tạp chí
Tiêu đề: ”Cơ sở dữ liệu”
Nhà XB: NXB Thống kê
[4] Đỗ Trung Tuấn, “Hệ chuyên gia”, Nxb. Giáo dục, 1998 Sách, tạp chí
Tiêu đề: Hệ chuyên gia
Nhà XB: Nxb. Giáo dục
[5] Đỗ Trung Tuấn, “Trí tuệ nhân tạo”, Nxb. Đại học Quốc gia Hà Nội, 2010 Sách, tạp chí
Tiêu đề: Trí tuệ nhân tạo
Nhà XB: Nxb. Đại học Quốc gia Hà Nội
[6] Lê Mạnh Thạnh, Trương Công Tuấn (2002), “Tối ưu câu truy vấn trên chương trình Datalog”, Báo cáo Hội nghị Toán học toàn quốc lần VI tại Huế Sách, tạp chí
Tiêu đề: Tối ưu câu truy vấn trên chương trình Datalog”
Tác giả: Lê Mạnh Thạnh, Trương Công Tuấn
Năm: 2002

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Cấu trúc đồ thị AND/OR. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 2.1 Cấu trúc đồ thị AND/OR (Trang 24)
Hình 2.2: Các bước xử lý tri thức dựa trên luật. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 2.2 Các bước xử lý tri thức dựa trên luật (Trang 27)
Bảng 2.1.Đối tượng con trâu - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Bảng 2.1. Đối tượng con trâu (Trang 31)
Hình 2.3: Cây gia hệ. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 2.3 Cây gia hệ (Trang 37)
Hình 2.4: Quan hệ ông bà được hợp thành từ hai quan hệ cha mẹ - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 2.4 Quan hệ ông bà được hợp thành từ hai quan hệ cha mẹ (Trang 40)
Bảng 2.2: Bảng CSDL mô tả đặc điểm người. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Bảng 2.2 Bảng CSDL mô tả đặc điểm người (Trang 45)
Bảng 3.1. Kiểu dữ liệu trong DES. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Bảng 3.1. Kiểu dữ liệu trong DES (Trang 56)
Đồ thị ứng với câu hỏi này là: - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
th ị ứng với câu hỏi này là: (Trang 64)
Hình 3.1: Đồ thị không có chu trình. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 3.1 Đồ thị không có chu trình (Trang 64)
Bảng 3.2: Bảng quan hệ Quản lý công nhân. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Bảng 3.2 Bảng quan hệ Quản lý công nhân (Trang 66)
Hình 4.1: Mô hình luồng xử lý bài toán. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 4.1 Mô hình luồng xử lý bài toán (Trang 72)
Bảng 4.1: Bảng dữ liệu mẫu. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Bảng 4.1 Bảng dữ liệu mẫu (Trang 81)
Hình 4.2: Giao diện chính khi chạy chương trình. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 4.2 Giao diện chính khi chạy chương trình (Trang 82)
Hình 4.4:Lựa chọn dữ liệu cho chương trình. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 4.4 Lựa chọn dữ liệu cho chương trình (Trang 83)
Hình 4.5:Giao diện chương trình sau khi đã nạp dữ liệu. - Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng
Hình 4.5 Giao diện chương trình sau khi đã nạp dữ liệu (Trang 83)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w