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

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

20 872 6

Đ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 20
Dung lượng 1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

a ^ ~b ^ c => d 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 lên hình Then Dây điện màn hình bị lỏng.. a ^ ~b ^ ~c ^ e => f If Màn

Trang 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

Trang 3

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 đề

Trong thời đại công nghệ thông tin hiện nay, máy vi tính trở thành công cụ hỗ trợ đắc lực cho con người Máy vi tính đã góp phần giúp con người giải quyết công việc một cách nhanh chóng hơn bởi các chức năng: lưu trữ, tính toán, xử lý dữ liệu Khi máy tính gặp sự

cố có thể gây chậm trể công việc, ảnh hưởng đến hiệu suất làm việc Do đó, yêu cầu xử lý

Trang 4

sự cố máy vi tính đã trở nên cấp thiết Dựa trên kiến thức cơ bản về biểu diễn tri thức, phạm

vi tiểu luận này sẽ trình bày ứng dụng của biểu diễn tri thức cho việc chuẩn đoán cơ bản các

sự cố của máy vi tính

II. Cơ sở lý thuyết

1.Định nghĩa Suy diễn lùi

Suy diễn lùi là chiến lược suy diễn để chứng minh một giả thiết bằng cách thu thập thông tin hỗ trợ

2. Cơ chế Suy diễn lùi

Hệ thống Suy diễn lùi bắt đầu từ đích (kết luận) cần chứng minh

 Trước hết nó kiểm tra trong bộ nhớ làm việc để xem đích này đã được bổ sung trước đó chưa Bước này cần thiết vì cơ sở tri thức khác có thể đã chứng minh đích này

 Nếu đích chưa được chứng minh, nó tìm các luật có phần THEN chứa đích Các luật này được gọi là đích

 Hệ thống xem phần giả thuyết của các luật đích này có trong bộ nhớ làm việc hay không Các giả thuyết không được liệt kê trong bộ nhớ gọi là các đích mới, các đích mới này cần được giải nhờ các luật khác

 Quá trình này tiếp tục đệ quy theo cơ chế tìm theo chiều sâu cho đến khi tìm thấy một giả thiết không do luật nào cung cấp Đó là nút tận cùng

 Khi thấy nút tận cùng, hệ thống dùng các thông tin này để giải đích con và đích ban đầu

3. Ưu điểm của Suy diễn lùi

* Ưu điểm chính của Suy diễn lùi là phù hợp với bài toán đưa ra giả thiết rồi xem giả thiết đó có đúng không

* 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ỉ

Trang 5

* 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

Trang 6

Có: 1 Không: 0

Và chương trình sẽ đưa ra kết luận có kèm theo lời giải thích cho những vấn

đề mà người dùng yêu cầu

IV Xây dựng một cơ sở tri thức

1. Tập nút

• Về mặt từ ngữ

TẬP NÚT

a. Màn hình không lên hình

b. Công tắt màn hình sáng

c. Cắm lại dây điện màn hình, màn hình sáng

d. Dây điện bị lỏng

e. Thay dây điện mới, màn hình sáng

f. Dây điện lỏng

g. Màn hình bị hư

h. Cắm lại dây nguồn, màn hình sáng

i. Dây nguồn bị lỏng

j. Thay dây nguồn mới, màn hình sáng

k. Dây nguồn CPU bị hư

l. Cắm lại sợi cáp nối màn hình với CPU, màn hình sáng

m. Sợi cáp nối màn hình với CPU bị lỏng

n. Thay sợi cáp nối màn hình với CPU

o. Sợi cáp nối màn hình với CPU bị hư

p. CPU phát tiếng bíp

q. Con chíp bị hư

r. Cắm lại Ram/Card màn hình màn hình sáng

s. Ram/Card màn hình bị lỏng

t. Thay Ram/Card màn hình màn hình sáng

u. Ram/Card màn hình bị hư

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

Trang 7

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

ax.Thay đĩa mới, đọc được

ay.Đĩa bị hư

az.Ổ đĩa bị hư

• Về mặt cấu trúc dữ liệu:

sáng

Màn hình không sáng

??

Trong đó:

• Stt: biến thuộc kiểu nguyên dương Lưu chỉ số thứ tự của nút

• Tên: thuộc kiểu string Lưu tên của nút (a, b, c, ~a, ~b ….)

• Ý nghĩa: thuộc kiểu string Lưu ý nghĩa của nút

Trang 8

• Câu hỏi: thuộc kiểu string Lưu câu hỏi để khi suy diễn buộc phải đặt câu hỏi để lấy giá trị của nút thì lấy câu hỏi ra để đặt với người sử dụng

• Loại nút: biến thuộc kiểu nguyên dương Bao gồm {1,2,3}  xác định nút thuộc kiểu nào: nút kết luận, nút trung gian hay nút giả thiết

• Giá trị: biến thuộc kiểu nguyên Bao gồm 3 giá trị

o 1: có giá trị True

o 0: có giá trị false

o -1: biến chưa khởi tạo giá trị

Lưu ý khi nhập giá trị cho 1 nút thì nút phủ định của nó cũng nhận được giá trị tương ứng Vì tập nút ở đây bao gồm nút và nút phủ định của nút đó

2. Tập luật và giải thích:

• Về mặt từ ngữ

1. a ^ ~b ^ c => d

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 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

Trang 9

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ư)

9. a ^ b ^ p ^ r => s

If (Màn hình không lên hình And Công tắt màn hình sáng And CPU có phát ra tiếng “bip” And cắm lại Ram/card màn hình, màn hình lên) Then (Ram/card màn hình bị lỏng)

10. a ^ b ^ p ^ ~r ^ t => u

If (Màn hình không lên hình And Công tắt màn hình sáng And CPU có phát ra tiếng “bip” And cắm lại Ram/card màn hình, màn hình không lên And thay Ram/card màn hình mới, màn hình lên) Then (Ram/card màn hình bị hư)

11. a ^ b ^ p ^ ~r ^ ~t=> v

If (Màn hình không lên hình And Công tắt màn hình sáng And CPU có phát ra tiếng “bip” And cắm lại Ram/card màn hình, màn hình không lên And thay Ram/card màn hình mới, màn hình không lên) Then (Main bị hư)

Trang 10

12. w ^ x => y

If (máy tự động restart And CPU bị nóng) Then (Quạt CPU bị hư)

13. w ^ ~x ^ z => aa

If (máy tự động restart And CPU không bị nóng And cài lại Win máy hết restart) Then (hệ điều hành bị lỗi)

14. w ^ ~x ^ bb => cc

If (máy tự động restart And CPU không bị nóng And thay Ram máy hết Restart) Then (Ram bị hư)

15. w ^ ~x ^ ~bb => v

If (máy tự động restart And CPU không bị nóng And cài lại Win máy vẫn restart And thay Ram máy vẫn Restart) Then (Main bị hư)

16. dd ^ ~ee => aa

If (Cổng USB không hoạt động được And không cài chức năng nhận USB cho máy) Then (lỗi khi cài hệ điều hành)

17. dd ^ ee ^ ff => gg

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 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

Trang 11

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 thay chuột mới, chuột vẫn không hoạt động tốt And cắm lại cổng PS2, chuột không hoạt động tốt) Then (Cổng PS2 bị hư)

26.vv ^ ww => wa

If (không đọc được đĩa And Đĩa không cùng loại với ổ đĩa) Then (Đĩa và ổ đĩa không tương thích nhau)

27.vv ^ ~ww ^ xx => yy

If (không đọc được đĩa And Đĩa cùng loại với ổ đĩa And thay đĩa mới, đọc được đĩa) Then (Đĩa bị hư)

28.vv ^ ~ww ^ ~xx => zz

Trang 12

If (không đọc được đĩa And Đĩa cùng loại với ổ đĩa And thay đĩa mới, không đọc được đĩa) Then (ổ đĩa bị hư)

• Về mặt cấu trúc dữ liệu:

Trong đó:

• Stt: biến thuộc kiểu nguyên dương Lưu chỉ số thứ tự của luật

• Vế trái: mảng string Lưu các nút nằm bên vế trái

• Vế phải: mảng string Lưu các nút nằm bên vế phải

3. Thuật toán:

*** Thuật toán tách vế:

Input: tập luật

Output: tách các nút nằm ở vế trái, vế phải

Duyệt qua tập luật

Ở mỗi luật duyệt từ trái sang, chỉ lấy các phần từ là ký hiệu các nút

Nếu chưa gặp dấu phân cách giữa 2 vế (“ > ”) thì thêm các nút vào vế trái

Ngược lại, thêm các nút vào vế phải

Hết tập luật

*** Thuật toán phân loại nút

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)

Trang 13

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

Hết tập nút ở vế phải

Nếu nút đó không được ghi nhận trong vế phải thì thêm nút đó vào tập giả thiết

Hết tập nút ở vế trái

*** Thuật toán suy diễn lùi với cơ chế giải thích Why và How

Trang 14

Output: Một kết luận đúng hoặc xuất ra “không giải đáp được”

Đọc tập nút

Đọc tập luật

Áp dụng thuật toán phân loại nút để phân thành tập kết luận, tập trung gian, tập giả thiết

Khai báo loại nút cho từng nút DOM={1,2,3}={nút kết luận, nút trung gian, nút giả thiết}

Phục vụ cho giải thích của cơ chế Why bao gồm 2 stack : stack_why1 và stack_why2 Phục vụ cho giải thích của cơ chế How bao gồm 1 stack : stack_how

** Suy diễn lùi với cơ chế giải thích Why và How với tham số truyền vào là số thứ tự của luật

Tìm giá trị luật đang xét tương ứng với số thứ tự của luật;

Nếu giá trị luật đang xét = 1

Xuất ra kết luận đúng Chấm dứt chuỗi suy diễn Nếu có kết luận = 0

Xuất ra “Không giải đáp được”

** Thủ tục tìm giá trị nút

Giá trị luật = 1

Push (stack_why1, số thứ tự của nút kết luận đang xét)

Push (stack_why2, số thứ tự của nút kết luận đang xét)

Lấy ra vế trái của luật đó

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

Trang 15

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

Xuất chuỗi các luật để trả lời

4 Tổ chức chương trình:

 Vì có nhu cầu cho người dùng nhập tình trạng vào Sau đó chương trình mới tiến hành suy diễn dựa trên các tình trạng máy của người dùng Do đó, chương

Ngày đăng: 10/04/2015, 11:08

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w