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

Tiểu luận môn biểu diễn tri thức và suy luận GIẢI BÀI TOÁN TAM GIÁC BẰNG MÔ HÌNH HỆ LUẬT DẪN

22 1,4K 16

Đ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 22
Dung lượng 827 KB

Nội dung

i Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin BÁO CÁO CHUYÊN ĐỀ BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG ĐỀ TÀI: GIẢI BÀI TOÁN TAM GIÁC BẰNG MÔ HÌNH HỆ LUẬT DẪN GVHD: PGS.TS. ĐỖ VĂN NHƠN Học viên: Trần Khánh An Mã học viên: CH1301076 TP.HCM – 2014 ii LỜI MỞ ĐẦU Việc xây dựng mô hình biểu diễn tri thức để đưa tri thức lên máy tính, tổ chức lưu trữ và xử lý tri thức, đặc biệt là suy luận giải các vấn đề, các bài toán. Biểu diễn tri thức đóng vai trò hết sức quan trọng trong thiết kế và xây dựng một hệ giải bài toán thông minh và các hệ chuyên gia. Các phương pháp biểu diễn tri thức thích hợp sẽ tạo nên một hệ thống chặt chẽ và hiệu quả khi vận hành. Hiện nay, mô hình biểu diễn tri thức thường dựa trên: - Các cấu trúc dữ liệu cơ bản và trừu tượng đã biết. - Các mô hình và cấu trúc toán học. - Các mô hình biểu diễn tri thức cơ bản: logic vị từ, mạng ngữ nghĩa, hệ luật dẫn, frame - Các ngôn ngữ đặc tả: mô hình mạng tính toán, mô hình COKB và các Ontology. Bài thu hoạch này trình bày về phương pháp biểu diễn tri thức dùng mô hình hệ luật dẫn và trình bày áp dụng mô hình để xây dựng chương trình giải bài toán tam giác kinh điển. Em xin chân thành cám ơn PGS. TS. Đỗ Văn Nhơn về những tri thức và những kinh nghiệm quý báu mà thầy đã truyền đạt lại cho lớp trong phạm vi môn học Biểu diễn tri thức và ứng dụng thuộc chương trình đào tạo cao học ngành Khoa học máy tính tại trường. Mục lục Mục lục iii 1 Biểu diễn tri thức 4 1.1 Tri thức 4 1.2 Biễu diễn tri thức và xử lý tri thức 5 2 Biểu diễn tri thức bằng luật dẫn (luật sinh) 5 2.1 Khái niệm 5 2.2 Cơ chế suy luận trên các luật sinh 6 2.3 Vấn đề tối ưu luật 6 3 Bài toán tam giác 8 3.1 Phát biểu bài toán và giới hạn phạm vi 8 3.2 Biểu diễn tri thức và tổ chức lưu trữ 10 3.3 Biểu diễn thuật giải 12 1.1.1 Thuật giải Suy diễn tiến 12 1.1.2 Thuật giải Suy diễn lùi 14 3.4 Tính toán và trình bày kết quả 18 1.1.3 Tính toán 18 1.1.4 Trình bày kết quả 19 3.5 Kết quả chương trình demo 19 KẾT LUẬN 21 3.6 Tóm tắt kết quả đạt được 21 3.7 Hướng phát triển 21 Tài liệu tham khảo 22 1 Biểu diễn tri thức 1.1 Tri thức Tri thức (knowledge): là sự hiểu biết của người trong một phạm vi, lĩnh vực nào đó; được xem xét theo các mục tiêu hay các vấn đề nhất định. Ví dụ: - Kiến thức về một lĩnh vực y học và khả năng chẩn đoán bệnh là tri thức. - Biết một tam giác có các yếu tố nào cùng với các công thức liên hệ giữa các yếu tố là tri thức. - Biết các dạng cấu trúc dữ liệu thường dùng trong lập trình cùng với các thuật toán xử lý cơ bản trên các cấu trúc là tri thức. Các dạng tri thức - Tri thức khai báo: cho biết một vấn đề được thấy như thế nào. Loại tri thức này bao gồm các phát biểu đơn giản, dưới dạng các khẳng định logic đúng hoặc sai. Tri thức khai báo cũng có thể là một danh sách các khẳng định nhằm mô tả đầy đủ hơn về đối tượng hay một khái niệm nào đó. - Tri thức cấu trúc: mô tả tri thức theo cấu trúc. Loại tri thức này mô tả mô hình tổng quan hệ thống theo quan điểm của chuyên gia, bao gồm khái niệm, khái niệm con và các đối tượng; diễn tả chức năng và mối liên hệ giữa các tri thức dựa theo cấu trúc xác định. - Tri thức thủ tục: mô tả cách thức giải quyết một vấn đề. Loại tri thức này đưa ra giải pháp để thực hiện một công việc nào đó. Các dạng tri thức thủ tục tiêu biểu là các luật, chiến lược, lịch trình và thủ tục. - Tri thức meta: mô tả tri thức về tri thức. Loại tri thức này giúp lựa chọn tri thức thích hợp nhất trong số các tri thức khi giải quyết một vấn đề. Các chuyên gia sử dụng tri thức này để điều chỉnh hiệu quả giải quyết vấn đề bằng cách hướng các lập luận về miền tri thức có khả năng cao hơn. 1.2 Biễu diễn tri thức và xử lý tri thức Biểu diễn tri thức (Kowledge Representation) là phương pháp cho phép mã hóa tri thức trong cơ sở tri thức của hệ thống. Biểu diễn tri thức là một vấn đề được quan tâm trong cả khoa học nhận thức lẫn trí tuệ nhân tạo. Trong khoa học nhận thức, người ta quan tâm đến cách thức lưu trữ và xử lý thông tin. Còn trong trí tuệ nhân tạo, mục tiêu chính là lưu trữ tri thức sao cho các chương trình có thể xử lý chúng và đạt được sự thông minh như con người. Các nhà nghiên cứu trí tuệ nhân tạo đã mượn các lý thuyết về biểu diễn thông tin từ khoa học nhận thức 2 Biểu diễn tri thức bằng luật dẫn (luật sinh) 2.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 và 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 đã mở mà 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 ∧ ∧ Pn  Q 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: 0 Trong logic vị từ: P 1 , P 2 , , Pn, Q là những biểu thức logic. 1 Trong ngôn ngữ lập trình, mỗi một luật sinh là một câu lệnh. IF (P 1 AND P 2 AND AND Pn) THEN Q. 2 Trong lý thuyết hiểu ngôn ngữ tự nhiên, mỗi luật sinh là một phép dịch: ONE  một. TWO  hai. JANUARY  tháng một. Để biễu diễn một tập luật sinh, người ta thường phải chỉ rõ hai thành phần chính sau: 3 Tập các sự kiện F(Facts) F = {f 1 , f 2 , fn} 4 Tập các quy tắc R (Rules) áp dụng trên các sự kiện dạng như sau : f 1 ^ f 2 ^ ^ f i  q Trong đó, các f i , q đều thuộc F 2.2 Cơ chế suy luận trên các luật sinh 5 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. Sự kiện ban đầu: H, K R3: H  A {A, H. K } R1: A  E { A, E, H, K } R5: E ∧ K  B { A, B, E, H, K } R2: B  D { A, B, D, E, H, K } R6: D ∧ E ∧ K  C { A, B, C, D, E, H, K } 6 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. 2.3 Vấn đề tối ưu luật Tập các luật trong một cơ sở tri thức rất có khả năng thừa, trùng lắp hoặc mâu thuẫn. Dĩ nhiên là hệ thống có thể đổ lỗi cho người dùng về việc đưa vào hệ thống những tri thức như vậy. Tuy việc tối ưu một cơ sở tri thức về mặt tổng quát là một thao tác khó (vì giữa các tri thức thường có quan hệ không tường minh), nhưng trong giới hạn cơ sở tri thức dưới dạng luật, ta vẫn có một số thuật toán đơn giản để loại bỏ các vấn đề này. 7 Rút gọn bên phải: luật sau hiển nhiên đúng : A ∧ B  A (1) do đó luật: A ∧ B  A ∧ C là hoàn toàn tương đương với:A ∧ B  C Quy tắc rút gọn : Có thể loại bỏ những sự kiện bên vế phải nếu những sự kiện đó đã xuất hiện bên vế trái. Nếu sau khi rút gọn mà vế phải trở thành rỗng thì luật đó là luật hiển nhiên. Ta có thể loại bỏ các luật hiển nhiên ra khỏi tri thức. 8 Rút gọn bên trái: Xét các luật : (L1) A, B  C (L2) A  X (L3) X  C Rõ ràng là luật A, B  C có thể được thay thế bằng luật A  C mà không làm ảnh hưởng đến các kết luận trong mọi trường hợp. Ta nói rằng sự kiện B trong luật (1) là dư thừa và có thể được loại bỏ khỏi luật dẫn trên. 9 Phân rã và kết hợp luật: Luật: A ∧ B  C Tương đương với hai luật: A  C và B  C Với quy tắc này, ta có thể loại bỏ hoàn toàn các luật có phép nối HOẶC. Các luật có phép nối này thường làm cho thao tác xử lý trở nên phức tạp. 10 Luật thừa: Một luật dẫn A  B được gọi là thừa nếu có thể suy ra luật này từ những luật còn lại. Ví dụ : trong tập các luật gồm {A  B, B  C, A  C} thì luật thứ 3 là luật thừa vì nó có thể được suy ra từ 2 luật còn lại. 11 Thuật toán tối ưu tập luật dẫn: Thuật toán này sẽ tối ưu hóa tập luật đã cho bằng cách loại đi các luật có phép nối HOẶC, các luật hiển nhiên hoặc các luật thừa. Thuật toán bao gồm các bước chính: B1: Rút gọn vế phải Với mỗi luật r trong R Với mỗi sự kiện A ∈VếPhải(r) Nếu A ∈VếTrái(r) thì Loại A ra khỏi vế phải của R. Nếu VếPhải(r) rỗng thì loại bỏ r ra khỏi hệ luật dẫn : R = R \{r} B2: Phân rã các luật Với mỗi luật r : X 1 ∨ X 2 ∨ … ∨ X n  Y trong R Với mỗi i từ 1 đến n R := R + { X i  Y } R := R \ {r} B3: Loại bỏ luật thừa Với mỗi luật r thuộc R Nếu VếPhải(r) ∈ BaoĐóng(VếTrái(r), R-{r}) thì R := R \ {r} B4: Rút gọn vế trái Với mỗi luật dẫn r : X : A 1 ∧ A 2 , …, A n  Y thuộc R Với mỗi sự kiện A i ∈ r Gọi luật r 1 : X - A i  Y S = (R - {r}) ∪{r 1 } Nếu BaoĐóng (X - A i , S) ≡ BaoĐóng (X, R) thì loại sự kiện A ra khỏi X 3 Bài toán tam giác 3.1 Phát biểu bài toán và giới hạn phạm vi Bài thu hoạch này sẽ trình bày cách giải bài toán tam giác dùng hệ luật dẫn gồm cả suy diễn tiến và suy diễn lùi. Bài toán tam giác này sẽ giới thiệu cách làm với các công thức tam giác thông dụng. Bài toán: - Giả thiết: Một số thông số (đối tượng, sự kiện) của tam giác cho trước. - Mục tiêu: Xác định một thông số (đối tượng) của tam giác. Ví dụ: Xét tam giác ABC có góc A = 30 độ, cạnh b = 6, cạnh c = 5 đơn vị độ dài. Hãy xác định độ dài đường cao ha. . Phạm vi: Ta có các đối tượng trong tam giác cần xét: - A: Số đo góc đối diện cạnh a - B: Số đo góc đối diện cạnh b - C: Số đo góc đối diện cạnh c - a: độ dài cạnh a - b: độ dài cạnh b - c: độ dài cạnh c - ha: độ dài đường cao tương ứng với cạnh a - hb: độ dài đường cao tương ứng với cạnh b - hc: độ dài đường cao tương ứng với cạnh c - S: diện tích của tam giác - p: nửa chu vi Các công thức trong tam giác (luật) A + B + C = 180 (độ) 3.2 Biểu diễn tri thức và tổ chức lưu trữ Tri thức gồm hai thành phần (F, R), tức là các khái niệm (phát biểu) và các luật dẫn. Trong bài toán tam giác trên, phần tri thức theo luật dẫn (Facts, Rules) gồm: Facts = {A, B, C, a, b, c, ha, hb, hc, p, S} Rules = { r1: {A, B} –> {C}; r2: {A, C} –> {B}; … } Tổ chức tri thức lưu trên bộ nhớ phụ với 2 file : Facts.txt và Rules.txt Cấu trúc file Facts .txt : Begin <tên đối tượng 1> : <mô tả của đối tượng 1> <tên đối tượng 2> : <mô tả của đối tượng 2> [...]... dụng suy diễn tiến để giải bài toán với góc A=30, cạnh c=5, cạnh b=4, tính độ dài đường cao ha Chương trình trình bày lời giải của bài toán Mẫu 2: Áp dụng suy diễn lùi để giải bài toán với cạnh a=3, cạnh b=4 và cạnh c=5, tính diện tích tam giác S Chương trình trình bày lời giải của bài toán Mẫu 3: thiếu giả thiết cho bài toán KẾT LUẬN 3.6 Tóm tắt kết quả đạt được Ứng dụng đã thành công trong việc biểu. .. gì để bài toán có thể giải được 3.7 Hướng phát tri n Do đề tài được thực hiện trong thời gian ngắn nên hiện tại ứng dụng cũng chỉ có thể biểu diễn các tri thức cơ bản, đơn giản chưa giải quyết định hết các khái niệm của một tam giác, tập luật dẫn chưa đầy đủ và chưa giải quyết được các bài toán phức tạp trong tam giác, nhưng nó cũng cho chúng ta thấy được khả năng đưa tri thức của con người vào lưu... hiện Suy diễn lùi vô hạn thì trong một số trường hợp bài toán không thể giải được trong khi ta vẫn có thể giải được bài bằng Suy diễn tiến, do vậy ta phải đặt số lần quay lui của hàm đệ quy Trong bài này tôi đặt số lần quay lui của hàm đệ quy là 3 Sau 3 lần suy diễn lùi, nếu vẫn không thể đủ giả thiết để thực thi các luật, ta sẽ sử dụng suy diễn tiến để sinh ra thêm giả thiết để giải bài toán Mô phỏng... 6 Bước 5: Quay lại bước 2 Bước 6: Kết luận: + Nếu Bước 4 đúng: bài toán không thể giải được + Nếu Bước 2 đúng: dùng suy diễn lùi để loại bỏ các luật thừa, đưa ra kết luận Ví dụ minh họa cho thuật giải Suy diễn tiến: Giả thiết: góc A, góc B, cạnh c Kết luận: Tính hc Bài giải (các luật) : Chương trình sẽ lần lượt thử chạy các luật theo tuyến tính cho đến khi kết luận hc nằm trong Know - Tính góc C: A,... dừng Suy diễn Đó là các luật mà máy sẽ chạy để tính được hc, nhưng trong quá trình chạy suy diễn tiến, sẽ phát sinh ra các luật thừa, lúc này ta sẽ dùng suy diễn lùi để loại bỏ các luật thừa đó, tức là nếu kết luận của luật liền trước không có trong giả thiết của một luật thì loại luật đó ra Kết quả ta được: B1: Tính góc C: A,B->C B2: Tính cạnh a: c,C,A->a B3: Tính hc: a,B->hc 1.1.2 Thuật giải Suy diễn. .. 3.6 Tóm tắt kết quả đạt được Ứng dụng đã thành công trong việc biểu diễn tri thức về tam giác, các luật dẫn để tính tham số của tam giác như: tính diện tích, tính cạnh khi biết góc, hay biết một cạnh nào đó Hiện trên thế giới đã có rất nhiều nhà khoa học đã nghiên cứu và thành công rất nhiều trong việc biểu diễn tri thức của con người, và thành công này đã giúp cho chúng ta rất nhiều trong ứng dụng xã... được luật if (_isAble) { /*Cập nhật danh sách trạng thái và báo thành công */ _listStatus[_dest] = -1 ; return 1 ; } } } } return 0 ; } 3.4 Tính toán và trình bày kết quả Sau khi xây dựng thuật giải và tìm được các luật áp dụng, tìm được các công thức cần áp dụng để đi đến được kết quả Vậy là bài toán đã coi như gần hoàn tất, bây giờ công việc cuối cùng để hoàn thành bài toán là tính toán và trình bài. .. bằng toán tử hiện tại thì lấy toán tử đó ra khỏi stack và cho ra output Đưa toán tử hiện tại vào stack Sau khi duyệt hết biểu thức infix, nếu trong stack còn phần tử thì lấy các token trong đó ra và cho lần lượt vào output Ta có độ ưu tiên của các toán tử: ‘sqrt’ = ‘sin’ = ‘cos’ = ‘tan’ = ‘arcsin’ = ‘arccos’ > ‘*’ = ‘/’ > ‘+’ = ‘-‘ > ‘(‘ 1.1.4 Trình bày kết quả Sau khi nhận tập luật từ thuật giải suy diễn. .. kết quả 1.1.3 Tính toán Sau khi có được các luật sẽ dùng, ta sẽ tiến hành đọc các công thức và thay số vào để tính Các công thức toán học thông dụng chúng ta vẫn thường hay dùng được gọi là các công thức ở dạng trung tố (Infix), để chuyển về dạng ký pháp nghịch đảo Ba Lan tức là tính bằng các stack ta phải chuyển chúng về các biểu thức hậu tố (Posfix) Thuật toán để chuyển một biểu thức Infix sang dạn... trong mệnh đề THEN là 1 Ví dụ luật: A, B -> C Ta có các giá trị trong mảng lần lượt là: 0, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1 Hay a, b, c -> p -1, -1, -1, 0, 0, 0, -1, -1, -1, 1, -1 3.3 Biểu diễn thuật giải 1.1.1 Thuật giải Suy diễn tiến Tư tưởng của thuật giải Suy diễn tiến là từ những giả thiết đã biết (know) ta áp dụng các tập luật để sinh ra thêm giả thiết mới và bổ sung vào know Quá trình này cứ . X 3 Bài toán tam giác 3.1 Phát biểu bài toán và giới hạn phạm vi Bài thu hoạch này sẽ trình bày cách giải bài toán tam giác dùng hệ luật dẫn gồm cả suy diễn tiến và suy diễn lùi. Bài toán tam giác. thức và xử lý tri thức 5 2 Biểu diễn tri thức bằng luật dẫn (luật sinh) 5 2.1 Khái niệm 5 2.2 Cơ chế suy luận trên các luật sinh 6 2.3 Vấn đề tối ưu luật 6 3 Bài toán tam giác 8 3.1 Phát biểu bài. ĐẦU Việc xây dựng mô hình biểu diễn tri thức để đưa tri thức lên máy tính, tổ chức lưu trữ và xử lý tri thức, đặc biệt là suy luận giải các vấn đề, các bài toán. Biểu diễn tri thức đóng vai trò

Ngày đăng: 19/05/2015, 00:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w