Thuật toán hay thuật giải là một dạng của tri thức thủ tục Tri thức mô tả: cho biết một đối tượng, sự kiện, vấn đề, khái niệm… được thấy, cảm nhận, cấu tạo như thế nào một cái bàn thườn
Trang 1CH1301065
Thành phố Hồ Chí Minh - Tháng 3 Năm 2014
Trang 2
Trang 3
Phần I: Biểu Diễn Tri Thức
I Khái niệm tri thức 1
II Các phương pháp biểu diễn tri thức 1
1 Bộ ba đối tượng – Thuộc tính – Giá trị 2
2 Logic mệnh đề 2
3 Logic vị từ 2
4 Mạng ngữ nghĩa 3
5 Frame 3
6 Luật dẫn 3
Phần II: Mạng Tính Toán Và Các Đối Tượng Tính Toán I Mạng tính toán 7
II Mạng các đối tượng tính toán 10
Phần III: Cài đặt demo I Giới thiệu ứng dụng 16
II Thiết kế các class trên môi trường NET 16
III Cài đặt thuật giải Suy Diễn Tiến, thuật toán tìm lời giải tốt, và expression tree 17
IV Hình ảnh demo của chương trình 20
V Kết luận 21
Tài liệu tham khảo 22
Trang 4Phần I: Biểu Diễn Tri Thức
I Khái niệm tri thức
Tri thức 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 theocác mục tiêu hay các vấn đề nhất định
Tri thức là một hệ thống phức tạp, đa dạng và trừu tượng bao gồm nhiều thành tố với
những mối liên hệ tác động qua lại như:
Các khái niệm (concepts), với những mối liên hệ cơ bản nhất định (relationships).
Các thực thể hay đối tượng, một phần tử cụ thể (objects).
Phân loại tri thức:
Dựa vào cách thức con người giải quyết vấn đề, các nhà nghiên cứu đã xây dựng các lỹ thuật để biễu diễn cá dạng tri thức khác nhau trên máy tính Sau đây là các dạng biểu diễn tri thức thường gặp
Tri thức sự kiện: là các khẳng định về một sự kiện, khái niệm nào đó (trong phạm vi xác đ.
Các định luật vật lý, toán học … thường được xếp vào loại này Ví dụ: mặt trời mọc ở đằng đông, tam giác đều có ba góc 600…)
Tri thức thủ tục: thường dùng để diển tả phương pháp, các bước cần tiến hành, trình tự
hay ngắn gọn là các giải quyết một vấn đề Thuật toán hay thuật giải là một dạng của tri thức thủ tục
Tri thức mô tả: cho biết một đối tượng, sự kiện, vấn đề, khái niệm… được thấy, cảm nhận,
cấu tạo như thế nào ( một cái bàn thường có bốn chân, con người có hai tay, hai mắt …)
Tri thức heuristic: là một dạng tri thức cảm tính Các tri thức thuộc loại này thường có
dạng ước lượng, phỏng đoán, và được hình thành thông qua kinh nghiệm
Tri thức 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
II Các phương pháp biểu diễn tri thức
Các phương pháp diễn tả và tổ chức tri thức trong máy tính cho các hệ thông tin có tính chất trí tuệ để máy có thể tiến hành các phép lập luận tự động Trong trí tuệ nhân tạo, các phương pháp BDTT thường được sử dụng như lôgic tân từ, mạng ngữ nghĩa, biểu diễn khung,luật dẫn
Trang 51 Bộ ba đối tượng - Thuộc tính – giá trị
Cơ chế tổ chức nhận thức của con người thường được xây dựng dựa trên các sự kiện(fact), xem như các đơn vị cơ bản nhất Một sự kiện là một dạng tri thức khai báo Nó cung cấp một số hiểu biết về một biến cố hay một vấn đề nào đó
Một sự kiện có thể được dùng để xác nhận giá trị của một thuộc tính xác định của một vài đối tượng Ví dụ mệnh đề “quả bóng màu đỏ“ xác nhận “đỏ” là giá trị thuộc tính “màu” của đối tượng “quả bóng” Kiểu sự kiện này được gọi là bộ ba Đối tượng - Thuộc tính – giá trị
Ta ký hiệu mệnh đề bằng những chữ cái la tinh như a, b, c,
Có 3 phép nối cơ bản để tạo ra những mệnh đề mới từ những mệnh đề cơ sở là phép hội ( ) ,
giao( ) và phủ định ( )
Bạn đọc chắn hẳn đã từng sử dụng logic mệnh đề trong chương trình rất nhiều lần (như trong cấu trúc lệnh IF THEN ELSE) để biểu diễn các tri thức "cứng" trong máy tính ! Bên cạnh các thao tác tính ra giá trị các mệnh đề phức từ giá trị những mệnh đề con, chúng
ta có được một cơ chế suy diễn như sau :
Modus Ponens: Nếu mệnh đề A là đúng và mệnh đề A B là đúng thì giá trị của B sẽ là đúng
Modus Tollens: Nếu mệnh đề A B là đúng và mệnh đề B là sai thì giá trị của A sẽ là sai
3 Logic vị từ
Biểu diễn tri thức bằng mệnh đề gặp phải một trở ngại cơ bản là không thể can thiệp vào cấu trúc của một mệnh đề Hay nói một cách khác là mệnh đề không có cấu trúc Điều này làm hạn chế rất nhiều thao tác suy luận Do đó, người ta đã đưa vào khái niệm vị từ và lượng
từ ( - với mọi, - tồn tại) để tăng cường tính cấu trúc của một mệnh đề
Trong logic vị từ, một mệnh đề được cấu tạo bởi hai thành phần là các đối tượng tri thức vàmối liên hệ giữa chúng (gọi là vị từ) Các mệnh đề sẽ được biểu diễn dưới dạng :
Trang 6Vị từ (<đối tượng 1>, <đối tượng 2>, …, <đối tượng n>)Như vậy để biểu diễn vị của các trái cây, các mệnh đề sẽ được viết lại thành :
Cam có vị Ngọt Vị (Cam, Ngọt), Cam có màu Xanh Màu (Cam, Xanh)
5 Frame
Frame là một cấu trúc dữ liệu chứa đựng tất cả những tri thức liên quan đến một đối tượng
cụ thể nào đó Frames có liên hệ chặt chẽ đến khái niệm hướng đối tượng Ngược lại với các phương pháp biểu diễn tri thức đã được đề cập đến, frame "đóng gói" toàn bộ một đối tượng, tình huống hoặc cả một vấn đề phức tạp thành một thực thể duy nhất có cấu trúc Một frame bao hàm trong nó một khối lượng tương đối lớn tri thức về một đối tượng, sự kiện, vị trí, tình huống hoặc những yếu tố khác Do đó, frame có thể giúp ta mô tả khá chi tiết một đối tượng Frame thường được dùng để biểu diễn những tri thức "chuẩn" hoặc những tri thức được xây dựng dựa trên những kinh nghiệm hoặc các đặc điểm đã được hiểu biết cặn kẽ Bộ não của con người chúng ta vẫn luôn "lưu trữ" rất nhiều các tri thức chung mà khi cần, chúng ta cóthể "lấy ra" để vận dụng nó trong những vấn đề cần phải giải quyết Frame là một công cụ thích hợp để biểu diễn những kiểu tri thức này
6 Biểu diễn tri thức bằng luật dẫn
Đâ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
Trang 7hà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, v.v…
Luật dẫn 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 dẫn 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 dẫn 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: P1 P2 Pn Q
Tùy vào các vấn đề đang quan tâm mà luật dẫn 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 dẫn là một phép dịch:
f1 ^ f2 ^ ^ fi qTrong đó, các fi, q đều thuộc F
Cơ chế suy luận trên các luật dẫn
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 }
Trang 8R2 : B D { A, B, D, E, H, K }
R6 : D E K C { A, B, C, D, E, 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ụ:
Không sử dụng được máy tính
Điện vào máy tính "có" hay "không"
Trang 9Như 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)
So sánh ưu nhược điểm của các phương pháp biểu diễn tri thức
Luật dẫn Cú pháp đơn giản, dễ hiểu, diễn dịch đơn giản,
tính đơn thể cao, linh động (dễ điều chỉnh)
Rất khó theo dõi sự phân cấp, không hiệu quả trong những hệ thống lớn, không thể biểu diễn được mọi loại tri thức, rất yếu trong việc biểu diễn các tri thức dạng
Frame Có sức mạnh diễn đạt tốt, dễ cài đặt các thuộc
tính cho các slot cũng như các mối liên hệ, dễ dàng tạo ra các thủ tục chuyên biệt hóa, dễ đưa vào các thông tin mặc định và dễ thực hiện các thao tác phát hiện các giá trị bị thiếu sót
Khó lập trình, khó suy diễn, thiếu phần mềm hỗ trợ
Trang 10PHẦN II: MẠNG TÍNH TOÁN VÀ CÁC ĐỐI TƯỢNG TÍNH TOÁN
I Mạng tính toán
Mạng tính toán là một dạng biểu diễn tri thức có thể dùng biểu diễn các tri thức về các vấn
đề tính toán và được áp dụng một cách có hiệu quả để giải một số dạng bài toán Mỗi mạngtính toán là một mạng ngữ nghĩa chứa các biến và những quan hệ có thể cài đặt và sử dụngđược cho việc tính toán Chúng ta xét một mạng tính toán gồm một tập hợp các biến cùng vớimột tập các quan hệ (chẳng hạn các công thức) tính toán giữa các biến Trong ứng dụng cụ thểmỗi biến và giá trị của nó thường gắn liền với một khái niệm cụ thể về sự vật, mỗi quan hệ thểhiện một sự tri thức về sự vật
Mô hình: (M, F)
M: tập các biến đơn, như các biến thực
F: Tập các luật dạng phương trình trên các biến của M
Kỹ thuật vận dụng: không xử dụng trực tiếp các phương trình trong quá trình suy luận mà chuyển sang dạng luật dẫn để có thể dùng thuật giải suy diễn tiến trên hệ luật dẫn
Mỗi luật ở dạng phương trình sẽ được chuyển đổi thành một số các luật dẫn kèm theo công thức tính toán tương ứng
Ví dụ: luật A+B+C = pi được chuyển thành 3 luật dẫn như sau:
Ta có mô hình dạng hệ luật dẫn: (M, R)
M = tập các sự kiện, mỗi sự là phát biểu về tính xác định của một biến
R = tập các luật dẫn, mỗi luật dẫn có một công thức tính toán tương ứng
Vấn đề:
Cho trước một số biến, yêu cầu tìm (hay tính) một số biến mục tiêu
Trang 111 Bài toán trên mạng suy diễn tính toán
Cho một mạng tính toán (M,F), M là tập các biến và F là tập các quan hệ Giả sử có một tậpbiến A M đã được xác định và B là một tập biến bất kỳ trong M
Các vấn đề đặt ra là:
Có thể xác định được tập B từ tập A nhờ các quan hệ trong F hay không? Nói cách khác, ta
có thể tính được giá trị của các biến thuộc B với giả thiết đã biết giá trị của các biến thuộc Ahay không?
Nếu có thể xác định được B từ A thì quá trình tính toán giá trị của các biến thuộc B như thếnào?
Trong trường hợp không thể xác định được B, thì cần cho thêm điều kiện gì để có thể xácđịnh được B
Bài toán xác định B từ A trên mạng tính toán (M,F) được viết dưới dạng:A B, trong đó Ađược gọi là giả thiết, B được gọi là mục tiêu tính toán của bài toán
Đối với mỗi f F, ta ký hiệu M(f) là tập các biến có liên hệ trong quan hệ f Dĩ nhiên M(f)
là một tập con của M: M(f) M Nếu viết f dưới dạng:
f : u(f) v(f)thì ta có M(f) = u(f) v(f)
Ví dụ 1: Cho tam giác ABC có cạnh a và 2 góc kề là , được cho trước Tính diện tích S
của tam giác
Để tìm ra lời giải cho bài toán trước hết ta xét mạng tính toán của tam giác Mạng tính toánnầy gồm :
1 Tập biến M = a, b, c, , , , ha, hb, hc, S, p, R, r, ,
trong đó a,b,c là 3 cạnh; , , là 3 góc tương ứng với 3 cạnh; ha, hb, hc là 3 đường cao; S làdiện tích tam giác; p là nửa chu vi; R là bán kính đường tròn ngoại tiếp tam giác; r là bán kínhđường tròn nội tiếp tam giác, v.v
3 Yêu cầu tính : S (diện tích của tam giác)
Theo đề bài ta có giả thiết là : A = a, , , và tập biến cần tính là B = S
Trang 12Áp dụng thuật toán tìm lời giải (thuật toán suy diễn tiến) ta có một lời giải cho bài tính làdãy quan hệ sau: f1, f2, f3, f5, f9 Xuất phát từ tập biến A, lần lượt áp dụng các quan hệtrong lời giải ta có tập các biến được xác định mở rộng dần đến khi S được xác định :
a, , ⃗f 1 a, , , ⃗f 2 a, , , , b ⃗f 3 a, , , , b, c
a, , ⃗f 1 a, , , ⃗f 2 a, , , , b ⃗f 9 a, , , , b, S
Theo lời giải nầy, ta có quá trình tính toán như sau :
Giải được hầu hết các bài toán GT KL nếu như đáp ứng đầy đủ các giả thiết cần thiết
Thuật toán đơn giản dễ cài đặt cho nên việc bảo trì hệ thống tương đối đơn giản
Có thể xây dựng hệ thống suy luận và giải thích một cách rõ ràng và dễ hiểu
Khuyết điểm:
Do hệ thống chỉ bao gồm 1 cặp (M, F) để biểu diễn tri thức nên khi gặp phải những bàitoán phức tạp thì có thể xảy ra việc lưu trữ khó khăn và nhập nhằng khi quản lý Đồngthời việc xây dựng lại thuật toán là một việc tương đối khó khăn phải bảo trì lại toàn
bộ hệ thống
Đối với các bài toán mà sử dụng nhiều các đối tượng tính toán bài toán trở nên phức tạp,việc giải quyết bài toán bằng mạng tính toán trở nên khó khăn cho người lập trình
Trang 13II Mạng các đối tượng tính toán
Cấu trúc của mạng tính toán bao gồm một tập các biến M và một tập các quan hệ F thể hiệntri thức về sự liên hệ tính toán giữa các biến trong mạng Bây giờ nếu ta xét một bài toán gồm
có hai tam giác có một số liên hệ với nhau, chẳng hạn cạnh a của tam giác nầy bằng cạnh b
của tam giác kia, thì ta có một mạng tính toán bao gồm 2 “đối tượng” có cùng loại (đều là tam
giác) Mỗi đối tượng trong trường hợp nầy có thể được thay thế bởi một mạng tính toán tương
ứng, và từ đó ta được một mạng tính toán trong đó có 2 bộ phận (hay 2 mạng con) có cùng
loại
Hình 1.1 Mạng tính toán gồm 2 tam giác.
Hình 1.2 Mạng tính toán gồm 2 bộ phận,
mỗi bộ phận là mạng tính toán của 1 tam giác
1 Mạng con, đối tượng tính toán
Một mạng tính toán (M,F) được gọi là một mạng con của mạng tính toán (M’,F’) nếu thỏa
các điều kiện sau đây :
(1) M M’,
Trang 14Ghi chú : Lời giải tốt của một bài toán trên mạng thu hẹp không nhất thiết là tốt trên mạng
lớn hơn vì nó chỉ sử dụng “kiến thức” gồm một tập quan hệ ít hơn Tuy nhiên, có thể nói lờigiải đó là tốt trong một phạm vi tri thức giới hạn
Một mạng tính toán còn được xem là một đối tượng tính toán Theo quan niệm nầy, từ
bên ngoài phạm vi của mạng tính toán ta xem nó như một tổng thể bao gồm một số yếu tố taquan tâm và các yếu tố khác (xem như phần nội bộ bên trong của đối tượng) mà ta ít quan tâmhơn Trong hình 1.1 TAM GIAC 1 là một đối tượng tính toán mà trong mạng gồm 2 tam giác
Trang 15ta đặc biệt quan tâm đến cạnh a của nó, còn các yếu tố khác của TAM GIAC 1 như cạnh b,cạnh c, diện tích S, nửa chu vi p, v.v tạm thời chưa được quan tâm
Như vậy đối với mỗi đối tượng tính toán O, có một tập biến và một tập các quan hệ tươngứng Tập các biến và tập các quan hệ của đối tượng O lần lượt được ký hiệu là M(O), F(O)
Từ đó ta có thể viết :
O = ( M(O),F(O) )
Hình vẽ dưới đây biểu diễn cho một đối tượng O, trong đó tập x1, , xk M(O) là một tậpbiến đang được quan tâm xem xét của đối tượng O
Hình 1.3 Đối tượng tính toán O.
Ngoài ra đối tượng tính toán, giả sử là O, còn có khả năng đáp ứng lại một số thông điệp yêucầu từ bên ngoài Trong các khả năng đó của đối tượng tính toán ta có thể kể đến những điểmsau đây :
(1) Xác định bao đóng (trong đối tượng O) của một tập A M(O)
(2) Xác định tính giải được của một bài toán A B,
trong đó A M(O), B M(O)
(3) Tìm một lời giải tốt cho bài toán A B trên mạng (M(O),F(O)),
trong đó A M(O), B M(O)
2 Mạng các đối tượng tính toán :
Trong mục nầy trình bày một số khái niệm về mạng các đối tượng tính toán Trong đó cókhái niệm về quan hệ giữa các đối tượng Ta gọi một quan hệ f giữa các biến của các đối
tượng tính toán là một quan hệ giữa các đối tượng đó Quan hệ nầy cho phép ta tính được
một hay nhiều biến của các đối tượng từ một số biến khác
Ví dụ 1: Giả sử có 2 đối tượng O1, O2 Trong các biến của đối tượng O1 có một biến, ký hiệu
a, có liên hệ f với một biến của đối tượng O2, ký hiệu b, được xác định bởi hệ thức :