Suy diễn lùi - Ứng dụng trong chuẩn đoán sự cố máy vi tính - Pdf 26

1
Page 1 of 20
Phương pháp biểu diễn tri thức
và ứng dụng
Suy diễn lùi - Ứng dụng trong chuẩn đoán sự cố
máy vi tính
Giảng viên: PGS.TS Đỗ Văn Nhơn
2013
Trần Nguyên Phong
MSHV: CH1101028
MSSHV: CH1101028
T r a n g 2 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 3 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
Mục Lục
Trang
I. Đặt vấn đề 2
II. Cơ sở lý thuyết 2
1. Định nghĩa suy diễn lùi 2
2. Cơ chế suy diễn lùi 2
3. Ưu điểm suy diễn lùi 3
4. Nhược điểm suy diễn lùi 3
III. Nội dung bài toán 3
IV. Xây dựng một cơ sở tri thức 4
1. Tập nút 4
2. Tập luật và giải thích 7
3. Thuật toán 11
4. Tổ chức chương trình 14
V. Thực thi chương trình 16
VI. Tham khảo 18
I. Đặt vấn đề

* Suy diễn lùi tập trung vào đích đã cho. Nó tạo ra một loạt các câu hỏi chỉ
liên quan đến vấn đề đang xét, đến hoàn cảnh thuận tiện đối với người dùng.
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 5 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
* Khi suy diễn lùi muốn suy diễn cái gì đó từ các 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 giải quyết nhiệm vụ như
là chuẩn đoán, dự đoán, tìm lỗi.
4. Nhược điểm Suy diễn lùi
* Nhược điểm cơ bản của Suy diễn lùi 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.
* Tuy nhiên có thể khắc phục nhược điểm này bằng cách dùng nhân tố tin cậy
và các luật meta.
III. Nội dung bài toán
Sẽ có 2 file là Nut và Luat với cách tổ chức như sau
- File luật được lưu dưới dạng text: sẽ được viết lại dưới dạng mệnh đề toán học.
- File nút lưu dưới dạng XML: chứa các sự cố máy tính mà ta quan sát được cũng
như những kết luận về sự cố máy tính
<Nut>
<doi_tuong name="Dây điện">
<Benh id="d">bị lỏng</Benh>
<Benh id="f">bị hư</Benh>
</doi_tuong>
<doi_tuong name="Công tắc màn hình">
<Benh id="b">sáng</Benh>
</doi_tuong>
</Nut>
Khi chạy chương trình, người dùng sẽ phải trả lời những câu hỏi mà chương trình
đưa ra bằng cách sẽ trả lời
Phương pháp biểu diễn tri thức và ứng dụng

v. Main bị hư
w. Máy tự động restart
x. CPU bị nóng
y. Quạt CPU bị hư
z. Cài lại win máy hoạt động tốt
aa. Hệ điều hành bị lỗi
ab. Thay Ram, máy hoạt động tốt
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 7 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
ac. Ram bị hư
ad. Cổng USB không nhận
ae. Có cài chức năng nhận USB cho máy
af. Cắm lại sợi cáp nối Main với cổng USB, máy nhận USB
ag. Cáp nối Main với cổng USB bị lỏng
ah. Cáp nối Main với cổng USB bị hư
ai. Bàn phím lúc gõ được, lúc không gõ được
aj. Cắm lại cổng bàn phím, bàn phím hoạt động tốt
ak. Cổng bàn phím bị lỏng
al. Thay cổng bàn phím mới, bàn phím hoạt động tốt
am. Cổng bàn phím bị hư
an. Bàn phím bị hư
ao. Chuột không di chuyển theo ý muốn
ap. Máy bị treo
aq. Cắm lại cổng PS2, chuột di chuyển tốt
ar. Cổng PS2 bị lỏng
as. Thay chuột mới, chuột di chuyển tốt
at. Chuột bị hư
au. Cổng PS2 bị hư
av. Không đọc được đĩa
aw.Đĩa không cùng loại ổ đĩa

điện màn hình, màn hình lên hình) Then (Dây điện màn hình bị lỏng).
2. a ^ ~b ^ ~c ^ e => f
If (Màn hình không lên hình And công tắt màn hình không sáng And cắm lại dây
điện màn hình, màn hình không lên And thay dây điện màn hình khác, màn hình
lên hình) Then (dây điện màn hình bị hư).
3. a ^ ~b ^ ~c ^ ~e => g
If (Màn hình không lên hình And công tắt màn hình không sáng And dây điện
màn hình không bị lỏng And thay dây điện màn hình khác, màn hình không lên
hình) Then (màn hình bị hư).
4. a ^ b ^ h => i
If (Màn hình không lên hình And Công tắt màn hình sáng And cắm lại dây nguồn
CPU, màn hình lên hình) Then (Dây nguồn CPU bị lỏng).
5. a ^ b ^ ~h ^ j => k
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 9 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
If (Màn hình không lên hình And Công tắt màn hình sáng cắm lại dây nguồn
CPU, màn hình không lên hình And thay dây nguồn CPU mới, màn hình lên
hình) Then (dây nguồn CPU bị hư).
6. a ^ b ^ l => m
If (Màn hình không lên hình And Công tắt màn hình sáng And cắm lại sợi cáp
nối màn hình với CPU, màn hình lên hình) Then (sợi cáp nối màn hình với CPU
bị lỏng).
7. a ^ b ^ ~l ^ n => o
If (Màn hình không lên hình And Công tắt màn hình sáng And cắm lại sợi cáp
nối màn hình với CPU, màn hình không lên hình And Thay sợi cáp khác, màn
hình lên) Then (sợi cáp nối màn hình với CPU bị hư).
8. a ^ b ^ ~l ^ ~n ^ ~p => q
If (Màn hình không lên hình And Công tắt màn hình sáng And sợi cáp nối màn
hình với CPU không bị lỏng And Thay sợi cáp khác, màn hình không lên And
CPU không có phát ra tiếng “bip”) Then (con chíp bị hư).

cắm lại sợi cáp nối từ Main ra cổng USB, cổng USB nhận) Then ( sợi cáp nối từ
Main ra cổng USB bị lỏng).
18. dd ^ ee ^ ~ff => hh
If (Cổng USB không hoạt động được And có cài chức năng nhận USB cho máy And
cắm lại sợi cáp nối từ Main ra cổng USB, cổng USB không nhận) Then (cáp nối
từ Main ra cổng USB hư).
19. ii ^ jj => kk
If (bàn phím lúc gõ được, lúc không được And cắm lại cổng bàn phím hoạt động
bình thường) Then (cổng bàn phím bị lỏng).
20. ii ^ ~jj ^ ll=> mm
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 11 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
If (bàn phím lúc gõ được, lúc không được And cắm lại cổng bàn phím vẫn không
hoạt động bình thường And thay cổng bàn phím mới, bàn phím hoạt động) Then
(cổng bàn phím bị hư).
21. ii ^ ~jj ^ ~ll=> nn
If (bàn phím lúc gõ được, lúc không được And cắm lại cổng bàn phím vẫn không
hoạt động bình thường And thay bàn phím mới, bàn phím vẫn không hoạt động
tốt) Then (bàn phím bị hư).
22. oo ^ pp => aa
If (con chuột không di chuyển theo ý muốn And Hệ điều hành bị treo) Then (Lỗi do
hệ điều hành).
23. oo ^ ~pp ^ qq => rr
If (con chuột không di chuyển theo ý muốn And Hệ điều hành không bị treo And
cắm lại cổng PS2, chuột hoạt động tốt) Then (Cổng PS2 bị lỏng).
24. oo ^ ~pp ^ ss => tt
If (con chuột không di chuyển theo ý muốn And Hệ điều hành không bị treo And
thay chuột mới, chuột hoạt động tốt) Then (Chuột bị hư).
25. oo ^ ~pp ^ ~qq ^ ~ss => uu
If (con chuột không di chuyển theo ý muốn And Hệ điều hành không bị treo And

Input : Tên nút
Output: Loại nút
Với DOM (loại nút)={1,2,3}={Nút kết luận, nút trung gian, nút tận cùng}.
 Tập nút kết luận = Vế phải \ Vế trái (các nút chỉ có trong vế phải).
 Tập nút trung gian = Vế trái ∩ Vế phải (các nút nằm ở vế trái và vế phải).
 Tập nút giả thiết = Vế trái \ Vế phải (các nút chỉ nằm ở vế trái).
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 13 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
• Tạo tập kết luận:
Duyệt tập nút ở vế phải
Duyệt tập nút ở vế trái
Nếu nút ở vế trái có trong vế phải, dừng duyệt nút vế trái và ghi nhận
nút vế phải đó nằm trong vế trái.
Hết tập nút ở vế trái
Nếu nút đó không được ghi nhận trong vế phải thì thêm nút đó vào tập kết
luận.
Hết tập nút ở vế phải.
• Tạo tập trung gian:
Duyệt tập nút ở vế phải
Duyệt tập nút ở vế trái
Nếu nút ở vế trái có trong vế phải, dừng duyệt nút vế trái và ghi nhận nút vế
phải đó nằm trong vế trái.
Hết tập nút ở vế trái
Nếu nút đó ghi nhận nằm trong vế phải thì thêm nút đó vào tập trung gian.
Hết tập nút ở vế phải.
• Tạo tập giả thiết:
Duyệt tập nút ở vế trái
Duyệt tập nút ở vế phải
Nếu nút ở vế trái có trong vế phải, dừng duyệt nút vế phải và ghi nhận
nút vế phải đó nằm trong vế phải.

Lặp lại khi hết các nút trong vế trái của luật
Nếu 1 nút đã có giá trị : giá trị luật = giá trị luật AND giá
trị nút.
Ngược lại
Trường hợp: loại nút = 2 // nút trung gian
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 15 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
Tìm giá trị luật; (với nút đang xét là nút kết luận của
luật)
Trường hợp: loại nút = 3 // nút giả thiết
Yêu cầu nhập dữ liệu cho nút
Giá trị luật = giá trị luật AND giá trị nút
Nếu giá trị luật = 0, dừng việc duyệt các nút trong vế trái của luật
Hết các nút trong vế trái của Luật
Giá trị các nút vế phải của luật = giá trị luật
Nếu giá trị của nút đang xét = 1
Push(stack_how, số thứ tự của nút kết luận đang xét).
*Cơ chế giải thích Why:
Lặp lại đến khi stack_why1 rỗng
Pop(stack_why1,int biến số thứ tự).
Nối chuỗi các luật có nút kết luận mang số thứ tự là biến stt
Hết stack_why1
Xuất chuỗi các luật để trả lời.
Sau khi giải thích xong:
Stack_why1 = Stack_why2.
*Cơ chế giải thích How:
Lặp đến khi stack_how rỗng
Pop (stack_how, int biến stt)
Nối chuỗi các luật có nút kết luật mang số thứ tự là biến stt.
Hết stack_how.

Ngược lại
Phần tử xét = phần tử đầu của skiplist
Trạng thái=Suy diễn lùi với phần tử xét
Nếu trạng thái bằng 1 ( kết luật được luật)
Dừng thuật giải
Duyệt trong khi phần tử kế sau phần tử xét khác rỗng
Phần tử xét= phần tử kế sau xét
Trạng thái=Suy diễn lùi với phần tử xét
Nếu trạng thái bằng 1 ( kết luật được luật)
Dừng thuật giải
Hết duyệt phần tử trong skiplist
Thực thi chương trình
• Đây là một chương trình chẩn đoán sự cố máy tính được thực hiện trên nền tảng ngôn
ngữ C# thông qua thư viện Visual Studio .Net 2008.
• Chương trình với các chức năng chính: nhập, bắt đầu, nguyên nhân và làm lại.
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 18 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
• Chức năng “Làm Lại”
Cho phép người dùng tiếp tục tìm hiểu các sự cố khác của máy tính bằng cách làm mới
form như ban đầu.
• Chức năng “nhập”
Cho người dùng nhập vào thông tin sự cố.
• Chức năng “chuẩn đoán”
Phương pháp biểu diễn tri thức và ứng dụng
T r a n g 19 | C h u ẩ n đ o á n s ự c ố m á y v i t í n h
Chương trình đặt ra các câu hỏi liên quan tới sự cố máy vi tính và người dùng sẽ trả
lời “có” hay “không”. Dựa vào câu trả lời của người dùng mà chương trình sẽ đưa ra
những câu hỏi tiếp theo. Trong quá trình đặt câu hỏi chương trình có hỗ trợ lời giải thích
“tại sao”.
Sau khi đã hoàn tất trả lời các câu hỏi, chương trình sẽ đưa ra kết quả chẩn đoán sự


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status