- Sử dụng các Heuristic trong việc suy luận giải bài toán nhằm tìm cách giải nhanh, Theo cách khái quát thì, “biểu diễn tri thức là thể hiện các mô tả về thế giới bên ngoài dưới dạng sao
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN CÔNG NGHỆ TRI THỨC
BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG VÀO GIẢI BÀI TOÁN “ĐIỆN MỘT CHIỀU”
Giảng viên hướng dẫn : GS.TSKH Hoàng KiếmHọc viên thực hiện :
Nguyễn Thị Ngọc Diễm CH1101075Nguyễn Thị Thu Trang CH1101147
TP Hồ Chí Minh, tháng 06 năm 2012
Trang 2Chương 1: TỔNG QUAN 1
1.1 Vấn đề biểu diễn tri thức 1
1.2 Vấn đề suy diễn tự động 5
1.3 Phần mềm toán học Maple 5
Chương 2: MÔ HÌNH COKB 7
2.1 Định nghĩa Mô hình COKB 7
2.2 Tổ chức cơ sở tri thức về theo mô hình COKB 8
2.2.1 Các thành phần 8
2.2.2 Cấu trúc của các tập tin lưu trữ các thành phần COKB 9
2.3 Mô hình bài toán 12
2.3.1 Mô hình 12
2.3.2 Đặc tả bài toán 12
Chương 3: BÀI TOÁN ĐIỆN MỘT CHIỀU 15
3.1 Thu thập tri thức về “Dòng điện không đổi” 15
3.1.1 Định luật Ôm cho đoạn mạch chỉ có điện trở 15
3.1.2 Điện trở mắc nối tiếp 15
3.1.3 Điện trở mắc song song 16
3.2 Mô hình tri thức : 16
3.2.1 Mô hình biểu diễn tri thức cho ứng dụng 16
3.2.2 Tập các mảng đối tượng O 16
3.2.3 Tập các quan hệ R 16
3.2.4 Tập luật Rules 17
3.3 Tổ chức cơ sở tri thức 18
3.4 Thuật giải 19
3.4.1 Thuật giải 19
3.4.2 Ví dụ 22
3.5 Áp dụng 22
3.5.1 Bài toán ví dụ 22
Trang 3Tài liệu tham khảo 25
Trang 4Chương 1:
TỔNG QUAN
1.1 Vấn đề biểu diễn tri thức
Như ta đã biết con người sống trong môi trường có thể nhận biết được thế giới nhờcác giác quan và sử dụng tri thức tích lũy được và nhờ khả năng lập luận, suydiễ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.Trong khi đó 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 (Intelligent Agent)
cũng có khả năng đó như con người Tác nhân thông minh là bất cứ cái gì có thể nhận thức
được môi trường thông qua các bộ cảm nhận (sensors) 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 (effectors) Ví dụ: robots, softrobot (software
robot), các hệ chuyên gia, là các tác nhân thông minh.Chính vì vậy, muốn xây dựng mộttrí thông minh nhân tạo, ta cần phải có các phương pháp đưa tri thức vào máy tính được gọi
là biểu diễn tri thức
Tri thức đóng vai trò rất quan trọng đối với khả năng của một chuyên gia Trong khoahọc Trí tuệ nhân tạo, để xây dựng các hệ chuyên gia và hệ giải các bài toán dựa trên tri thức,người ta phải thiết kế một cơ sở tri thức cho hệ thống và một động cơ suy diễn để giải quyếtvấn đề dựa trên tri thức
Quá trình nghiên cứ phát triển các phương pháp biểu diễn tri thức và cơ chế suy luận
có ý nghĩa rất lớn về lý thuyết cũng như ứng dụng của Khoa học máy tính, đặc biệt là khoahọc Trí tuệ nhân tạo Các hệ chương trình dựa trên biểu diễn tri thức cần phải [7]:
- Cho phép kiểm tra quá trình suy luận bao gồm việc thể hiện cụ thể các bước giảibài toán và trả lời hay giải thích cho quá trình giải
- Cho phép hiệu chỉnh và cập nhật cơ sở tri thức như thêm, bớt, thay thế trong cơ sở chi thức
Trang 5- Sử dụng các Heuristic trong việc suy luận giải bài toán nhằm tìm cách giải nhanh,
Theo cách khái quát thì, “biểu diễn tri thức là thể hiện các mô tả về thế giới bên ngoài
dưới dạng sao cho các máy thông minh có thể đưa tới những kết luận về môi trường quanh
nó, trên cơ sở một cách hình thức các mô tả này”, “thể hiện tri thức là phương pháp dùng để
mã hóa tri thức trong cơ sở tri thức của hệ thống” [5] Trong quá trình xây dựng cơ sở tri
thức, người lập trình phải chọn lựa các đối tượng và các quan hệ thích hợp trong miền trithức và thực hiện một phép ánh xạ chúng trên một ngôn ngữ hình thức Từ đó chương trình
sẽ có đủ kiến thức cho việc giải quyết các bài toán trong phạm vi kiến thức được biểu diễn
Tri thức và suy diễn là hai thành phần trong bất kỳ một hệ dựa trên tri thức nào.Phương pháp biểu diễn tri thức sẽ quyết định phương pháp suy diễn tương ứng, nhưng ngượclại phương pháp suy diễn chỉ có thể phù hợp cho một phương pháp biểu diễn tri thức nhấtđịnh Để máy tính có thể sử dụng được tri thức, có thể xử lý được tri thức, chúng ta cần phải
Trang 6biể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 Có nhiều phương pháp biểu diễn tri thức khác nhau với những ưu nhược điểm nhấtđịnh, thường được phân chia thành 4 phương pháp [6] :
- Các phương pháp biểu diễn tri thức dựa trên logic hình thức : Các phương pháp
này sử dụng các biểu thức logic hình thức để diễn đạt các sự kiện và các luật trong
cơ sở tri thức Các thủ tục sẽ chứng minh áp dụng kiến thức vào các bài toán cụ
thể Phép tính logic vị từ cấp 1 được sử dụng phổ biến nhất ( PROLOG là ngôn
ngữ lập trình hỗ trợ tốt nhất cho phương pháp này)
- Các phương pháp biểu diễn tri thức thủ tục : Biểu diễn tri thức như là một tập hợp
các chỉ thị dùng cho việc giải quyết các bài toán Trong nhiều hệ chuyên gia ứng
dụng các chỉ thị như thế thường được thể hiện bởi một tập các luật đẫn có dạng “if
then ”
- Các phương pháp biểu diễn tri thức dạng mạng : Biểu diễn mạng nắm bắt kiến
thức như là một đồ thị trong đó các đỉnh biểu diễn cho các khái niệm hay các đối tượng và các cạnh biểu diễn các quan hệ hay những sự kết hợp nào đó giữa các đốitượng và các khái niệm Phổ biến trong phương pháp này là các mạng ngữ nghĩa
Là ngôn ngữ biểu diễn dạng mô tả
Có thể áp dụng một số cơ chế suy diễn trên mạng:
cơ chế truyền và thừa hưởng thông tin giữa các đối tượng (tính kế thừa), cơ chế “cháy” trên mạng
o Nhược điểm:
Trang 7 Không có một phương pháp suy diễn chung nào cho mọi loại mạng ngữnghĩa.
Khó kiểm soát quá trình cập nhật tri thức để dẫn đến mâu thuẫn trong cơ sở tri thức
- Các phương pháp biểu diễn cấu trúc : Các ngôn ngữ biểu diễn cấu trúc cho phép
sử dụng các cấu trúc dữ liệu phức tạp và các cấu trúc trừu tượng trong biểu diễn
Ví dụ như frame và object.
Trang 8
-Khi xây dựng một cơ sở tri thức cho chương trình, người thiết kế và lập trình phải vận
dụng một cách linh hoạt sáng tạo các phương pháp biểu diễn tri thức cơ bản trên để phù hợp
với những khái niệm, quy luận, liên hệ khác nhau trong tri thức
1.2 Vấn đề suy diễn tự động
Cùng với vấn đề biểu diễn tri thức, suy diễn tự động để giải quyết các bài toán dựatrên tri thức cũng là vấn đề quan trọng Các phương pháp duy diễn tự động nhằm vận dụngkiến thức đã biết trong quá trình lập luận giải quyết vấn đề trong đó quan trọng nhất là cácchiến lược điều khiển giúp phát inh những sự kiện mới từ các sự kiện đã có Các kỹ thuật suydiễn tự động được khái quát thành một số phương pháp sau [7]:
- Phương pháp hợp giải trong biểu diễn tri thức dưới dạng vị từ Trong phương phápbiểu diễn logic hình thức ta sử dụng các luật suy diễn như luật “Modus Ponens”,
“Modus Tollens”, “tam đoạn luận”
- Phương pháp suy diễn tiến (Forward Chaining) : “Chiến lược suy luận được bắt
đầu bằng tập đã biết, rút ra được các sự kiện mới nhờ dung các luật mà phần giả thiết khớp với sự kiện đã biết, và tiếp tục quá trình nàu cho đến khi thấy trạng tháiđích, hoặc cho đến khi không còn luật nào khớp được các sự kiện đã biết hay được
sự kiện suy luận”
- Phương pháp suy diễn lùi (Backward Chaining) : Phương pháp này được tiến hành
bằng cách truy ngược từ mục tiêu cần đạt được trở về phần giả thiết của bài toán bằng cách áp dụng các luật trong cơ sở tri thức Quá trình suy diễn lùi này sẽ phát sinh một sơ đồ cây mục tiêu kèm theo một cư chế quay lui và lời giải sẽ được tìm thấy khi tất cả mục tiêu ở các nút là của cây mục tiêu đều thuộc về những sự kiện
đã biết
- Kết hợp suy diễn tiến và suy diễn lùi : Mỗi phương pháp suy diễn tiến và lùi đều
có ưu nhược điểm của nó Việc kết hợp 2 phương pháp này một cách thích hợp sẽ cho ta một phương pháp suy diễn hiệu quả trong các ứng dụng cụ thể
1.3 Phần mềm toán học Maple
Trang 9Phần mềm Maple là một phần mềm đại số tính toán (Computer Algebra) khá mạnh
trong đó không chỉ hỗ trợ các tính toán về số mà cả các tính toán ký hiệu, tính toán hình thức
(Symbolic Computation) Nó có một nhân tính toán rất mạnh và một hệ thống như viện tính toán gồm nhiều gói chương trình (package) cho các phần tính toán toán học khác nhau như
đại số tuyến tính, giải tích, hình học, số học, … Ngoài ra Maple còn cho phép khả năng lậptrình với các cấu trúc dữ liệu trừu tượng để xây dựng những gói chương trình mới bổ sungvào hệ thống thư viện của nó
Tuy khả năng lập trình của Maple đạt đến trình độ rất cao nhưng chủ yếu là các thủtục tính toán cho từng vấn đề đơn lẻ như giải một phương trình, tính đạo hàm của một hàm
số, thực hiện các phép tính đa thức … Maple chưa thực sự cài đặt một cơ sở tri thức cho cácphần toán học khác nhau với các bộ suy luận giải toán dựa trên tri thức Ví dụ như góichương trình về hình học chỉ cung cấp một số thủ tục tính toán đơn giản như : tính diện tíchhình vuông khi biết tọa độ 4 đỉnh, tính độ dài đoạn thẳng khi biết tọa độ 2 điểm đầu của đoạnthẳng đó, …
Ngoài phần mềm toán học Maple, chúng ta còn thấy nhiều phần mềm tính toán toánhọc khác như Mathematica, MathCad, Reduce, … Các phần mềm này cũng như Maple chỉcung cấp những đơn vi chương trình giúp thực hiện các thao tác tính toán riêng lẻ mà chưa
có một bộ giải toán dựa trên một cơ sở tri thức thật sự Người sử dụng phần mềm này khi cầngiải quyết một vấn đề nào đó mang tính tổng quát hơn thì phải thiết kết một quy trình giải bàitoán dưới dạng thuật giải và tự cài đặt thuật giải đó dựa vào ngôn ngữ lập trình được chotrong phần mềm Và cũng chính nhờ sự hỗ trợ thư viện mở rộng đó mà đây cũng là nhữngcông cụ hỗ trợ tốt cho người lập trình liên quan đến tính toán các bài toán phức tạp có thể mởrộng và phát triển hệ giải toán dựa trên tri thức một cách dễ dàng và thuận tiện hơn
Trang 10Chương 2:
MÔ HÌNH COKB
Chương này trình bày về mô hình tri thức được sử dụng làm cơ sở lý thuyết, mô hìnhCOKB, tham khảo trong tài liệu [8]
2.1 Định nghĩa Mô hình COKB
Một mô hình tri thức các C-Object (viết tắt là mô hình COKB – ComputationalObjects Knowledge Base) là một hệ thống gồm 5 thành phần:
(C, H, R, Ops, Rules)
Trong đó:
o C là một tập hợp các khái niệm về các C-Object
o H là một tập hợp các quan hệ phân cấp giữa các loại đối tượng
o R là tập hợp các khái niệm về các loại quan hệ trên các C-Object
o Ops là một tập hợp các toán tử
o Rules là tập hợp các luật được phân lớp
Chi tiết về mỗi thành phần được mô tả cụ thể như sau:
o Một tập hợp C các khái niệm về các C-Object:
o Một tập hợp H các quan hệ phân cấp giữa các loại đối tượng
o Một tập hợp R các khái niệm về các loại quan hệ trên các C-Object
o Một tập hợp Ops các toán tử
o Một tập hợp Rules gồm các luật được phân lớp
Trang 11Mỗi luật cho ta một quy tắc suy luận để đi đến các sự kiện mới từ các sự kiện nào đó
và về mặt cấu trúc nó gồm 2 thành phần chính là: phần giả thiết và phần kết luận đều là cáctập hợp sự kiện trên các đối tượng nhất định:
R:{sk1,sk2,…,skn}=>{sk1,sk2,…,skm}
Để mô hình luật dẫn trên có hiệu lực trong cơ sở tri thức và để có thể khảo sát cácthuật giải để giải quyết các bài toán, ta cần định nghĩa các dạng sự kiện khác nhau trong cácluật Dưới đây là định nghĩa cho 11 loại sự kiện khác nhau được xem xét trong mô hình:
Các loại sự kiện
[1] Sự kiện thông tin về loại của đối tượng
[2] Sự kiện về tính xác định của một đối tượng hay của một thuộc tính
[3] Sự kiện về tính xác định của một thuộc tính hay một đối tượng thông qua một biểuthức hằng
[4] Sự kiện về sự bằng nhau giữa một đối tượng hay một thuộc tính với một đối tượnghay một thuộc tính khác
[5] Sự kiện về sự phụ thuộc của một đối tượng hay một thuộc tính theo những đối tượnghay thuộc tính khác thông qua một công thức tính toán
[6] Sự kiện về một quan hệ trên các đối tượng hay trên các thuộc tính của các đốitượng
2.2 Tổ chức cơ sở tri thức về theo mô hình COKB
2.2.1 Các thành phần
Cơ sở tri thức về các C-Object theo mô hình COKB có thể được tổ chức bởi một hệthống tập tin văn bản có cấu trúc thể hiện các thành phần trong mô hình tri thức Có thể thiết
kế hệ thống các tập tin nầy gồm những tập tin như sau:
o Tập tin “Objects.txt” lưu trữ các định danh (hay tên gọi) cho các khái niệm về
các loại đối tượng C-Object
Trang 12o Tập tin “Relations.txt” lưu trữ thông tin về các loại quan hệ khác nhau trên các
loại C-Object
o Tập tin “Hierarchy.txt” lưu lại các biểu đồ Hasse thể hiện quan hệ phân cấp
đặc biệt hóa trên các khái niệm
o Các tập tin với tên tập tin có dạng “<tên khái niệm C-Object>.txt” để lưu trữcấu trúc của loại đối tượng <tên khái niệm C-Object> Ví dụ: tập tin
“TamGiac.txt” lưu trữ cấu trúc của loại đối tượng tam giác.
o Tập tin “Operators.txt” lưu trữ các thông tin về các toán tử trên các đối tượng.
o Tập tin “Define-Operators.txt” lưu trữ định nghĩa về các toán tử trên các đối
tượng
o Tập tin “Facts.txt” lưu trữ thông tin về các loại sự kiện khác nhau.
o Tập tin “Rules.txt” lưu trữ hệ luật của cơ sở tri thức.
2.2.2 Cấu trúc của các tập tin lưu trữ các thành phần COKB
Các tập tin lưu trữ các thành phần trong cở sở tri thức các C-Object được ghi dướidạng các văn bản có cấu trúc dựa trên một số từ khóa và qui ước về cú pháp khá đơn giản và
tự nhiên Dưới đây là phần liệt kê cấu trúc của các tập tin:
- Cấu trúc tập tin “Objects.txt”
begin_Objects
<tên lớp đối tượng 1>
<tên lớp đối tượng 2>
Trang 13[<tên quan hệ>, <loại đối tượng>, <loại đối tượng>, ],
<tính chất>, <tính chất>,
.
end_Relations
- Cấu trúc tập tin “<tên khái niệm C-Object>.txt”
begin_object: <tên khái niệm C-Object>[các đối tượng nê+n]
<các đối tượng nê+ n> : <kiê, u>;
Trang 14kind_rule = "<loại luật>";
<các tên đối tượng> : <kiê, u đối tượng>;
.
hypothesis_part:
Trang 15{các sự kiện gia , thiêt cu ,a luật}
o O là tập các đối tượng tính toán trong bài toán
o M là tập các thuộc tính của các đối tượng được đề cập tới trong bài toán
o Facts là tập các sự kiện thuộc 6 lọai [1]-[6]
o Goal là mục tiêu hay yêu cầu của bài toán
2.3.2 Đặc tả bài toán
Để có thể thiết kế phần giao tiếp và cho phép nhập bài toán vào hệ thống giải bài toánmột cách đa dạng và đáp ứng các yêu cầu thực tế, ta cần có một ngôn ngữ quy ước để đặc tảbài toán Trong mục này trình bày ngôn ngữ quy ước để đặc tả bài toán với các tiêu chí sau:
o Tính đơn giản
o Tính tự nhiên
o Tính tiện dụng
o Khả năng đặc tả tốt
Trang 16Hệ thống sẽ cung cấp 2 cách để đặc tả bài toán:
Đề bài có thể được cho dưới dạng một tập tin văn bản có cấu trúc dựa trên một số từ
khoá như: begin_exercise, end_exercise, begin_hypothesis, end_hypothesis, parameters, end_parameters, objects, end_object, facts, end_facts, goals, end_goals cùng với một số
qui ước khai báo các tham biến, các đối tượng, các sự kiện, các hàm, và yêu cầu của bài toán
Cấu trúc của đề bài bài toán có dạng như sau:
…………
end_objects facts:
Trang 18R1 R2 R3 Rn
Chương 3:
BÀI TOÁN ĐIỆN MỘT CHIỀU
Yêu cầu : Cho biết một số giá trị của mạch điện một chiều, sơ đồ mạch điện (đã được vẽ
lại), tìm một số yếu tố còn lại
1.1 Thu thập tri thức về “Dòng điện không đổi”
1 Định luật Ôm cho đoạn mạch chỉ có điện trở
I= U
R (A)
- Nếu có R và I, có thể tính hiệu điện thế như sau :
U = VA - VB = I.R ; I.R: gọi là độ giảm thế (độ sụt thế hay sụt áp) trên điện trở
- Công thức của định luật ôm cũng cho phép tính điện trở:
( )
U
R =
I
2 Điện trở mắc nối tiếp
Điện trở tương đương được tính bởi:
Rtđ = Rl + R2+ R3+ … + Rn
Im = Il = I2 = I3 =… = In Im=Rtđ U
Um = Ul + U2+ U3+… + Un