Chơng 3: Biểu diễn tri thức
3.3.3. Phơng pháp biểu diễn tri thức nhờ các luật:
Luật là một cấu trúc dùng để liên kết thông tin đã biết với các thông tin khác, các thông tin có thể đợc suy luận để ngời ta hiểu biết thêm.
Tri thức dới dạng luật đợc xếp vào các tri thức thủ tục. Luật gắn thông tin đã cho với một vài hoạt động. Các hoạt động này có thể là khẳng định về thông tin mới hay là một thủ tục sẽ đợc thực hiện.
Về mặt logic, cấu trúc của luật kết nối một hay nhiều giả thiết, hay cái có trớc trong cấu trúc IF với một hay nhiều kết luận, hay đợc gọi là kết quả trong cấu trúc THEN.
Thí dụ: IF hỏng Ram
Nói chung phần giả thiết của một luật có thể gồm nhiều giả thiết nhỏ gắn với nhau thông qua các phép logic AND (và) hay OR (hoặc) hay cả hai. Luật cũng có thể dùng câu ELSE (ngợc lại thì) dùng cho suy luận khi giả thiết bị sai.
Trong hệ thống dựa trên các luật, ngời ta thu thập tri thức lĩnh vực trong một tập và lu chúng trong cơ sở tri thức của hệ thống. Hệ thống dùng các luật này cùng với các thông tin trong bộ nhớ để giải bài toán. Khi câu IF của luật khớp với thông tin trong bộ nhớ thì hệ thống sẽ thực hiện các hoạt động mô tả trong câu THEN của luật. Lúc này luật đợc xem nh đã thực hiện hay cháy. Câu THEN sẽ đợc bổ sung vào bộ nhớ. Mệnh đề mới này cũng có thể làm cho các luật khác đợc thực hiện.
Thí dụ: ban đầu cơ sở tri thức có hai luật và bộ nhớ làm việc là rỗng. Khi nhận đợc trả lời “đỏ” cho câu hỏi “xe màu gì?”, bộ suy diễn của hệ chuyên gia dựa trên luật sẽ thực hiện các luật và rút ra đợc thông tin mới là “sẽ mua xe”.
Hỏi: xe màu gì? Trả lời: đỏ
Ngoài việc sản sinh ra các thông tin mới thông qua các sự kiện trong câu THEN, một luật có thể thực hiện các hành động. Các hành động trong luật có thể là các tính toán đơn giản hoặc cũng có thể là các thủ tục phức tạp ở bên ngoài hệ thống.
Trong các ứng dụng, nhiều khi chúng ta phải thực hiện cùng một số thao tác trên tập các đối tợng tơng tự nhau. Nếu chúng ta viết một luật đơn với mỗi đối tợng thì chúng ta sẽ sử dụng rất nhiều luật. Điều này là không hiệu quả và
IF xe đỏ THEN sẽ thích IF thích THEN sẽ mua IF xe đỏ THEN sẽ thích IF thích THEN sẽ mua IF xe đỏ THEN sẽ thích IF thích THEN sẽ mua IF xe đỏ THEN sẽ thích IF thích THEN sẽ mua Xe đỏ Sẽ thíchXe đỏ Xe đỏ sẽ thíchSẽ mua
hệ thống khó quản lý các luật tơng tự nhau. Khi đó hệ thống sẽ sử dụng biến trong việc biểu diễn các luật.
Thí dụ: Luật sau cho biết Toto có thể nghỉ ngơi hay không. IF Toto là công chức AND tuổi của Toto quá 60
THEN Toto có thể nghỉ ngơi
Khi hệ thống muốn kiểm tra đối với các cá nhân khác không phải là Toto thì ngời ta cần sử dụng các luật tơng tự nh luật này. Điều đó là không kinh tế. Thậm chí độ tuổi nghỉ ngơi của con ngời cần đợc linh động trong khoảng 55 đến 60. Có thể dùng ngôn ngữ lập trình để tạo ra một luật để luật này có thể khớp với dải giá trị rộng hơn. Các luật này dùng biến để khớp với các mệnh đề tơng tự.
Thí dụ: Ta có thể sử dụng luật dùng biến nh sau:
IF X là công chức AND tuổi của X quá 60 THEN X có thể nghỉ ngơi. Luật này sẽ quét trong bộ nhớ để xem hết đợc hai giả thiết không.
Nếu thấy khớp, luật này sẽ kết luận rằng ngời đó có thể nghỉ ngơi.
Đối với các sự kiện không chắc chắn, ta đã sử dụng hệ số chắc chắn CF. Đã có các sự kiện không chắc chắn thì cũng có các luật không chắc chắn. Luật này thiết lập quan hệ không chính xác giữa giả thiết và kết luận.
Thí dụ: IF tức nớc
THEN hầu nh chắc chắn vỡ bờ.
Để có đợc độ tin cậy về tri thức chuyên gia trong quan hệ này, ngời ta cũng sử dụng nhân tố chắc chắn. Chẳng hạn luật trên có thể viết lại với giá trị CF là 0.8 nh sau:
IF tức nớc THEN vỡ bờ CF=0.8
Ta có tri thức Meta là loại tri thức diễn tả tri thức của tri thức hay nó là tri thức về cách sử dụng và điều khiển tri thức lĩnh vực. Trong hệ chuyên gia, tri thức meta thờng đợc thể hiện trên các luật meta. Trong đó, luật meta là luật mô tả cách thức dùng luật khác thay vì đa ra thông tin mới.
Thí dụ: IF ôtô không khởi động đợc AND hệ thống điện bình thờng THEN dùng các luật liên quan đến hệ thống xăng dầu.
Các tri thức chuyên gia đợc tích luỹ thành các luật để giải quyết vấn đề. Các luật này có thể hình thành các tập luật mà mỗi tập luật này có thể dùng cho vấn đề này nhng không đợc dùng cho vấn đề khác. Một trong các giải pháp hớng dẫn sử dụng luật khi thiết kế hệ thống dựa trên luật là dùng cấu trúc modul để sắp xếp thứ tự các luật về lĩnh vực. Loại cấu trúc này cũng gợi ý cách giải quyết bài toán từ trên xuống, ở đó các tập luật đợc dùng chỉ khi phù hợp. Hệ thống có thể chuyển điều khiển đến tập luật đã cho bằng cách dùng luật meta.
Việc phân chia tập luật theo cấu trúc modul có các u điểm sau:
- Thể hiện cách giải vấn đề phức tạp. Cũng nh con ngời là có xu hớng chia vấn đề phức tạp thành các vấn đề nhỏ hơn, dễ quản lý hơn.
- Dễ phát triển và bảo trì hệ thống. Khi phát triển có thể tập trung vào từng modul, có thể thử và kiểm tra từng modul một cách độc lập.
- Dễ thích hợp với các kỹ thuật thể hiện tri thức, chiến lợc suy diễn khác nhau vào cùng một hệ thống.