Tải bản đầy đủ (.docx) (11 trang)

TÌM HIỂU VỀ SUY DIỄN LÙI VÀ ỨNG DỤNG XÂY DỰNG HỆ CHUYÊN GIA BẤT KỲ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (278.32 KB, 11 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
o0o
Báo cáo chuyên đề
BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
TÌM HIỂU VỀ SUY DIỄN LÙI
VÀ ỨNG DỤNG
XÂY DỰNG
HỆ CHUYÊN GIA BẤT KỲ
Giảng viên hướng dẫn: PGS. TS. Đỗ Văn Nhơn
Học viên thực hiện: Hồ Mạnh Khương
MSHV: CH1301018
Mục lục
I. Giới thiệu
Máy vi tính trong thời đại ngày nay đã trở thành công cụ đắc lực cho con người. Đưa
tri thức vào máy tính, con người dần tạo nên những hệ thống thông minh hơn, hỗ trợ
được nhiều công việc hơn mà không cần bàn tay con người trực tiếp tham gia. Xây dựng
các hệ chuyên gia đơn giản đáp ứng các tiêu chí: dễ sử dụng, dễ cập nhật, dễ chỉnh sửa để
hỗ trợ con người trong công việc trở thành yêu cầu gần như không thể thiếu trong tất cả
lĩnh vực đời sống hiện nay.
[1]
Ứng dụng các công cụ đã có như máy học, các hệ ONT, các mô hình suy diễn, ta có
thể xây dựng được những hệ chuyên gia đơn giản, ứng dụng các tri thức và hiểu biết của
con người để hỗ trợ các mặt khác nhau của đời sống.
[2]
Trong nội dung bài báo cáo này sẽ nói rõ thêm về mô hình suy diễn tiến và suy diễn
lùi, ứng dụng suy diễn lùi để xây dựng các hệ chuyên gia bất kỳ.
II. Suy diễn tiến và suy diễn lùi:
1. Suy diễn tiến:
Là quá trình suy diễn bắt đầu từ tập sự kiện đã biết, rút ra những sự kiện mới và cứ
như vậy cho đến khi có được sự kiện cần chứng minh hoặc không có luật nào sinh ra các


sự kiện mới (tập sự kiện đúng là cực đại)
[2]
.
* Nhận xét:
- Quá trình suy diễn tiến là quá trình xem xét các luật, với mỗi luật ta xét
phần điều kiện (ở vế trái) tới phần kết luận (ở vế phải) và khi mà tất cả các
điều kiện của luật đều thoã mãn thì ta suy ra sự kiện trong phần kết luận.
Chính vì lẽ đó mà có tên là suy diễn tiến.
[3]
- Trong mỗi bước của thủ tục, người ta xét một luật trong tập luật. So sánh
mỗi điều kiện (ở vế trái) của tập 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 thoã mãn thì sự kiện trong phần kết
luận đượ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 đưa vào bộ nhớ làm việc.
Quá trình trên cứ lặp lại cho đến khi nào không có luật nào sinh ra sự kiện
mới.
- Quá trình suy diễn tiến không định hướng tới giải quyết một vấn đề nào cả,
không hướng tới tìm ra câu trả lời cho một câu hỏi nào cả. Suy diễn tiến chỉ
là quá trình suy ra các sự kiện mới từ các sự kiện có trong bộ nhớ làm việc.
2. Suy diễn lùi
Là quá trình xuất phát từ sự kiện cần chứng minh và thay vào đó là những sự kiện ở
vế trái của 1 luật có vế phải là sự kiện cần chứng minh.
Quá trình này được thực hiện cho đến khi đưa về các sự kiện là tập sự kiện con của
tập sự kiện giả thiết. (nghĩa là: để đưa ra kết luận b, ta thử tìm tất cả các luật có dạng: a
1
⋀ ⋀ a
n
⟹ b, để có b, phải đưa ra các kết luận a
1
, ,a

n
.
[2]
Quá trình xác định ai cũng tương tự như đối với b, nếu đến một lúc nào đó phát hiện
được rằng có một ai nào đó không dẫn xuất được từ các giả thiết thì quay lui sang các
luật sản xuất khác sinh ra b có dạng b
1
⋀ ⋀b
m
⟹ b. Ngược lại, nếu mọi a
i
đều dẫn xuất
được giả thiết thì quá trình dẫn xuất ra b là đúng).
3. So sánh suy diễn tiến và suy diễn lùi
[3]
3.1 Suy diễn tiến
Ưu điểm:
- Làm việc tốt khi bài toán có bản chất là đi thu thập thông tin rồi thấy điều
cần suy diễn.
- Cho ra khối lượng lớn các thông tin từ một số thông tin ban đầu. Nó sinh ra
nhiều thông tin mới.
- Suy diễn tiến là tiếp cận lý tưởng đối với các loại bài toán cần giải quyết
các nhiệm vụ như lập kế hoạch, điều hành, điều khiển và diễn dịch.
Nhược điểm:
- Không cảm nhận được rằng chỉ cần một vài thông tin quan trọng. hệ thống
hỏi các câu hỏi có thể hỏi mà không biết rằng chỉ một ít câu đã đi đến kết
luận được.
- Hệ thống có thể hỏi cả câu hỏi không liên quan. Có thể các câu trả lời cũng
quan trọng nhưng làm người dùng lúng túng khi phải trả lời các câu chẳng
dính đến chủ đề.

3.2 Suy diễn lùi
Ưu điểm:
- Phù hợp với bài toán đưa ra giả thuyết và liệu giả thuyết đó có đúng hay
không?
- Tập trung vào đích đã cho. Nó tạo ra một loạt câu hỏi chỉ liên quan đến vấn
đề đang xét, thuận tiện đối với người dùng.
- Khi suy diễn một điều gì từ thông tin đã biết, nó chỉ tìm trên một phần của
cơ sở tri thức thích đáng đối với bài toán đang xét.
- Suy diễn lùi được đánh giá cao trong các bài toán như là chẩn đoán, dự
đoán và tìm lỗi.
Nhược điểm:
- Nhược điểm cơ bản của loại suy diễn này là nó thường tiếp theo dòng suy
diễn thay vì đúng ra phải dừng ở đó mà sang nhánh khác.
- Như vậy, dựa vào các ưu và nhược điềm của từng loại suy diễn mà ta nên
chọn kỹ thuật suy diễn nào để áp dụng vào bài toán. Trước tiên, ta xem xét
các chuyên gia giải nó như thế nào? Nếu cần thu thập dữ liệu rồi mới quyết
định suy diễn cái gì thì ta chọn suy diễn tiến. Còn nếu đã có giải thuyết và
cần chứng minh cái đích này thì ta dùng suy diễn lùi.
Ví dụ: Một bác sĩ có thể hiểu hàng trăm vấn đề có thể xảy ra với một cá nhân, nhưng vẫn
phải tìm hiểu hiện trạng của bệnh nhân, lúc đó cần suy diễn tiến.
Nguợc lại bác sĩ hầu như thấy được bệnh (ví dụ như viêm họng) thì ông ta dùng suy diễn
lùi.
III. Xây dựng hệ chuyên gia bất kỳ sử dụng suy diễn lùi
Chương trình gồm có 2 thành phần:
- Chương trình chạy (file exe).
- Các dữ liệu tri thức (được bố trí trong các thư mục).
Các dữ liệu tri thức được lưu trữ dưới dạng 2 file:
- File rules.txt: gồm các luật suy diễn dưới dạng mệnh đề.
- File data.xml: gồm các dữ liệu diễn giải cho các luật trong file rules.txt
Khi chạy chương trình, người dùng sẽ nhập vào các dữ kiện (gọi là triệu chứng) và hệ

thống sẽ tiếp tục đưa ra các câu hỏi trả lời dưới dạng Có/Không để thu thập thêm dữ kiện
và đưa ra kết luận.
3.1 Cơ chế hoạt động:
Thuật toán suy diễn lùi được áp dụng như sau:
Input: Tập các node kết luận
Ouput: Kết luận đúng hoặc rỗng (không giải quyết được)
Dữ liệu đọc vào được phân thành 2 tập: tập vế trái và vế phải.
- Tập vế trái lưu các luật giả thiết
- Tập vế phải lưu các luật kết luận
File rules.txt gồm các luật được biểu diễn dưới dạng:
a ^ b ^ _c => d
(nếu a và b và không c thì kết luận là d)
File data.xml
<?xml version="1.0" encoding="utf-8"?>
<data>
<item name="Ổ cứng">
<info id="a">phát tiếng kêu lạ</info>
</item>
<item name="Thùng máy">
<info id="c">mở không lên</info>
</item>
</data>
3.2Ứng dụng xây dựng hệ hỗ trợ chẩn đoán lỗi phần cứng máy tính:
Tập dữ liệu data.xml
name info id
  
  
  
  ! 
 "! 

 # 
$%& &' 
$%& ())!&' 
$%& ))*!+ )
$%& )),!-. /
$%& 01 
$%& &'!*&!2#32# 
$%& 452# 
$%& # 
678  !
678 52*& 
678 542# 
6949:9 ;<.0=>01 ?
6949:9 @;!A ! 
6949:9 0B!*&!# 
6949:9 5C 
6949:9 52*& 
D,E 01 &
D,E !AE&,E 
D,E 52# )
D,E 52F!A )
D,E 0B!*&!2# 
GHD &%!I4!J5! 
GHD 2))!<*&! 
GHD 2))!<*&!K,)& 
GHD 5 /
GHD 52 L
D! 5!,!M 
D! 5!6DNO 
D! 52*&& 

Tập luật rules.txt
1. a ^ _c ^ ab => aa
Nếu ổ cứng phát tiếng kêu lạ và thùng máy mở lên và ổ cứng không nhận ra trong
danh sách phần cứng của bios thì ổ cứng hỏng cơ
2. b ^ ab => ad
Nếu ổ cứng không có tiếng quay và ổ cứng không nhận ra trong danh sách phần
cứng của bios thì ổ cứng bị lỏng cáp nguồn
3. _b ^ ab => ac
Nếu ổ cứng có tiếng quay và ổ cứng không nhận ra trong danh sách phần cứng
của bios thì ổ cứng bị lỏng cáp kết nối
4. c ^ h => ba
5. i ^ c => cb
6. i ^ f => ca
7. _c ^ j ^ l => db
8. j ^ k ^ _l => da
9. m ^ n ^ n => ea
10._m ^ n ^ _c => eb
11.o ^ c => fa
12._o ^ _c ^ e ^ p => fb
13._o ^ q => gb
14.c ^ e ^ p => fb
15.c ^ e ^ q => gb
16.r ^ _c => ga
17.c ^ g ^ _h => bb
3.3 Ứng dụng xây dựng hệ hỗ trợ chẩn đoán một số bệnh cảm sốt thường gặp
Tập dữ liệu data.xml
name info id
PA .&CM 
PA <& 
PA K!&&Q! 

PA K!&R 
PA "@; )
PA 0S!M!4!T& /
PA " 
U!A0BV !W-XY0XZ0B[ 
U!A0BV W-XZ0X\0B[ 
U!A0BV ;WX\0B[ 
U!A0BV ECMW0B-X]^_0XY^_0B[ 
DQ! .CJ&Q!K,` )
DQ! .CJ&Q!K,03 /
DQ! .CJ&Q!03K,0S!&,WK,3@[ 
6SR 0,& ?
6SR "CJR;0 
a ! 
a b!3.! &
a .0K,;!c 
6V S!0>%;"30!K,'!K,!!2 
6V S!0>%;"30! 
6V 0>&A&! 
6V ECMK,A 
Tập luật rules.txt
1. a ^ e ^ o ^ _j ^ _k ^ _m ^ _n => aa
Nếu nhiệt độ cơ thể hơi cao (từ 37 đến 38 độ) và mũi chảy nước mũi trong và
loãng và cơ thể nổi ban đỏ, dùng tay ấn nốt ban lặn đi và trở lại sau vài giây và
cổ họng không có đàm và cổ họng nuốt nước bọt không thấy đau và đầu không
nhức nửa bên trái hoặc phải và đầu không nhức cả đầu rất nhiều thì Bệnh sốt xuất
huyết
2. a ^ f ^ j ^ o => ab
Nếu nhiệt độ cơ thể hơi cao (từ 37 đến 38 độ) và mũi chảy nước mũi trong và đặc
và cổ họng có đàm thì bệnh cúm

3. f ^ b => af
Nếu mũi chảy nước mũi trong và đặc và nhiệt độ cơ thể cao thì bệnh do thay đổi
thời tiết/nhiễm lạnh
4. d ^ g ^ j ^ _k => ac
5. j ^ k ^ _l ^ _m ^ _n => ad
6. c ^ o ^ j ^ k => ae
7. c ^ o ^ l => ae
8. c ^ p ^ j ^ k => ag
9. c ^ p ^ l => ag
10.d ^ _e ^ _j ^ _k ^ _l => ah
11.q ^ a ^ k ^ _j => af
12.a ^ j ^ _o ^ _p => af
IV. Chương trình demo
Giao diện chương trình:
Danh sách các hệ hỗ trợ được nhập vào từ file data.txt gồm
tên thực mục chứ dữ liệu:tên của hệ hỗ trợ
- Người dùng tùy chọn hệ hỗ trợ cần sử dụng
- Người dùng chọn các triệu chứng để thêm vào bảng các triệu chứng
- Phần mềm đặt ra các câu hỏi tương ứng để có thể dữ kiện suy luận nguyên
nhân vấn đề.
Sau khi đặt ra các câu hỏi và được người dùng trả lời, chương trình sẽ suy luận và
đưa ra kết luận tương ứng.
Nhận xét:
Ưu điểm:
- Chương trình có cách nhập liệu đơn giản, có thể dễ dàng chuyển giao cho
những người có kiến thức tin học không chuyên sâu phụ trách (bác sĩ, giáo
viên phổ thông…)
- Suy luận khá chính xác với những vấn đề không phức tạp.
- Tốc độ suy luận nhanh. Có thể chuyển sang ứng dụng web để hỗ trợ đa nền
tảng.

- Có thể thêm vào dữ liệu để tạo ra hệ hỗ trợ khác dễ dàng.
Khuyết điểm:
- Chưa thực sự thông minh khi giải quyết các vấn đề chưa gặp phải (có thể khắc
phục bằng cách tích hợp thêm các phương pháp học máy)
- Chưa hỗ trợ các toán tử phức tạp (như hoặc, các dấu ngoặc điều kiện)
V. Tài liệu tham khảo
[1]. GS.TSKH Hoàng Kiếm, PGST.TS Đỗ Phúc, PGS.TS Đỗ Văn Nhơn, Giáo trình
Các Hệ Cơ Sở Tri Thức NXB Đại Học Quốc Gia TP.HCM, 2008
[2]. PGS. TS. Đỗ Văn Nhơn, Bài giảng cao học “Biểu diễn tri thức và suy luận”,
Lưu hành nội bộ, 2013
[3]. Adrian A. Hopgood, Intelligent Systems for Engineers and Scientists, Third
Edition, 2011

×