LỜI MỞ ĐẦUHệ chuyên gia là một trong những lĩnh vực của trí tuệ nhân tạo được nghiên cứu và phát triển từ giữa thập niên 60, góp phần tạo ra các hệ thống có khả năng trí tuệcủa con người
Trang 1Chương 1 TỔNG QUAN VỀ HỆ CHUYÊN GIA VÀ BIỂU DIỄN TRI THỨC 2
1.1 Hệ chuyên gia 2
1.1.1 Khái niệm cơ bản 2
1.1.2 Cấu trúc hệ chuyên gia 2
1.2 Biểu diễn tri thức 3
1.2.1 Khái niệm biểu diễn tri thức 3
1.2.2 Các loại tri thức 4
1.2.3 Biểu diễn tri thức bằng luật dẫn 5
Chương 2 THU THẬP TRI THỨC VÀ ỨNG DỤNG PROLOG XÂY DỰNG HỆ CHUYÊN GIA HỖ TRỢ CHẨN ĐOÁN VÀ ĐIỀU TRỊ MỘT SỐ BỆNH THƯỜNG GẶP Ở TRẺ EM 10
2.1 Thu thập tri thức một số bệnh thường gặp ở trẻ em 10
2.2 Xây dựng cơ sở tri thức dựa trên luật 13
2.2.1 Mô tả tri thức dữ liệu bệnh bằng tập luật 13
2.2.2 Hình ảnh mô tả các triệu chứng của từng bệnh 14
2.2.3 Sơ đồ mô phỏng chương trình chẩn đoán bệnh 16
2.3 Xây dựng ứng dụng hệ chẩn đoán bệnh trẻ em bằng Prolog và Java 17
2.3.1 Công cụ phát triển hệ cơ sở tri thức 17
2.3.2 Phát biểu dưới dạng logic vị từ về bệnh 17
2.3.3 Mô tả các sự kiện về triệu chứng các loại bệnh 18
2.4 Chương trình và kết quả thực nghiệm 19
2.4.1 Môi trường lập trình 19
2.4.2 Cấu trúc chương trình 20
2.4.3 Chức năng và giao diện chương trình 21
KẾT LUẬN 23
TÀI LIỆU THAM KHẢO 24
Trang 2LỜI MỞ ĐẦU
Hệ chuyên gia là một trong những lĩnh vực của trí tuệ nhân tạo được nghiên cứu
và phát triển từ giữa thập niên 60, góp phần tạo ra các hệ thống có khả năng trí tuệcủa con người, giải quyết các vấn đề dựa trên một tập luật phân tích thông tin vàđưa lời khuyên về trình tự các hành động cần thực hiện để giải quyết vấn đề
Nhiều hệ chuyên gia đã được thiết kế và xây dựng để phục vụ trong nhiều lĩnhvực y học, kế toán, điều khiển tiến trình (process control), dịch vụ tư vấn tài chính(financial service), tài nguyên con người (human resources), trong đó y khoa làmột trong những lĩnh vực được áp dụng đầu tiên, cung cấp các công cụ hữu hiệucho những áp dụng chẩn đoán bệnh, với mục đích trợ giúp các bác sĩ trong việcchẩn đoán và điều trị bệnh
Hiện nay có nhiều chương trình chẩn đoán bệnh dành cho người lớn mà ít cóchương trình chuyên biệt phục vụ riêng cho trẻ em Chính vì lý do đó em chọn đềtài xây dựng hệ chuyên gia hỗ trợ chẩn đoán và điều trị một số bệnh thường gặp ởtrẻ em như bệnh: sởi, quai bị, rubella, thủy đậu, sốt xuất huyết,… Chương trình chophép chẩn đoán, đưa ra kết luận bệnh, các triệu chứng và đơn thuốc cho trẻ em.Chương trình cải tiến và phát triển các mục tiêu “Hướng phát triển” của bài tiểuluận [5] chưa thực hiện
Trang 3CHƯƠNG 1 TỔNG QUAN VỀ HỆ CHUYÊN GIA
VÀ BIỂU DIỄN TRI THỨC
1.1 Hệ chuyên gia
1.1.1 Khái niệm cơ bản
Hệ chuyên gia là một chương trình máy tính mô hình hóa khả năng giải quyếtvấn đề của các chuyên gia, sử dụng các tri thức và các thủ tục suy diễn để giải quyếtcác bài toán khó khăn đòi hỏi chuyên gia mới giải quyết được, làm việc giống nhưmột chuyên gia thực thụ và cung cấp các ý kiến dựa trên kinh nghiệm của chuyêngia con người đã được đưa vào Hệ chuyên gia
Ví dụ: Hệ chuyên gia trong y học: với mục đích trợ giúp các bác sĩ trong việcchẩn đoán bệnh và điều trị Hệ chuyên gia chẩn đoán hỏng hóc đường dây điệnthoại,…
1.1.2 Cấu trúc hệ chuyên gia
Hệ chuyên gia làm việc như một chuyên gia thực thụ và có thể cung cấp các ýkiến tư vấn hỏng hóc dựa trên kinh nghiệm của chuyên gia đã được đưa vào hệchuyên gia Hệ chuyên gia có các thành phần cơ bản sau:
(1) Bộ giao tiếp ngôn ngữ tự nhiên
(2) Động cơ suy diển
(3) Cơ sở tri thức
(4) Cơ chế giải thích WHY-HOW
(5) Bộ nhớ làm việc
Trang 4Bộ phận giải thích sẽ trả lời hai câu hỏi là WHY và HOW, câu hỏi WHYnhằm mục đích cung cấp các lý lẻ để thuyết phục người sử dụng đi theo con đườngsuy diễn của hệ chuyên gia Câu hỏi HOW nhằm cung cấp các giải thích về conđường mà hệ chuyên gia sử dụng để mang lại kết quả.
Hình 1 Các thành phần của hệ chuyên gia
1.2 Biểu diễn tri thức
1.2.1 Khái niệm biểu diễn tri thức
Biểu diễn tri thức là cách thể hiện tri thức trong máy dưới dạng sao cho bài toán
có thể được giải tốt nhất Biểu diễn tri thức trong máy phải:
Thể hiện được tất cả các thông tin cần thiết
Cho phép tri thức mới được suy diễn từ tập các sự kiện và luật suy diễn
Trang 5 Cho phép biểu diễn các nguyên lý tổng quát cũng như các tình huống đặctrưng.
Bắt lấy được ý nghĩa ngữ nghĩa phức tạp
Cho phép lý giải ở mức tri thức cao hơn
1.2.2 Các loại tri thức
Dựa vào cách thức con người giải quyết vấn đề, các nhà nghiên cứu đã xây dựngcác kỹ thuật để biểu diễn các dạng tri thức khác nhau trên máy tính Để giải quyếtvấn đề, chúng ta chỉ chọn dạng biễu diễn nào thích hợp nhất Sau đây là các dạngbiểu diễn tri thức thường gặp
Tri thức thủ tục mô tả cách thức giải quyết một vấn đề Loại tri thức này
đưa ra giải pháp để thực hiện một công việc nào đó Các dạng tri thức thủ tụctiêu biểu thường là các luật, chiến lược, lịch trình, và thủ tục
Tri thức khai báo cho biết một vấn đề được thấy như thế nào Loại tri thức
này bao gồm các phát biểu đơn giản, dưới dạng các khẳng định logic đúnghoặc sai Tri thức khai báo cũng có thề là một danh sách các khẳng địnhnhằm mô tả đầy đủ hơn về đối tượng hay một khái niệm khái niệm nào đó
Siêu tri thức mô tả tri thức về tri thức Loại tri thức này giúp lựa chọn tri
thức thích hợp nhất trong số các tri thức khi giải quyết một vấn đề Cácchuyên gia sử dụng tri thức này để điều chỉnh hiệu quả giải quyết vấn đềbằng cách hướng các lập luận về miền tri thức có khả năng hơn cả
Tri thức heuristic mô tả các "mẹo" để dẫn dắt tiến trình lập luận Tri thức
heuristic còn được gọi là tri thức nông cạn do không bảm đảm hoàn toànchính xác về kết quả giải quyết vấn đề Các chuyên thường dùng các tri thứckhoa học như sự kiện, luật,… sau đó chuyển chúng thành các tri thứcheuristic để thuận tiện hơn trong việc giải quyết một số bài toán
Trang 6 Tri thức có cấu trúc mô tả tri thức theo cấu trúc Loại tri thức này mô tả mô
hình tổng quan hệ thống theo quan điểm của chuyên gia, bao gồm khái niệm,khái niệm con, và các đối tượng; diễn tả chức năng và mối liên hệ giữa cáctri thức dựa theo cấu trúc xác định
1.2.3 Biểu diễn tri thức bằng luật dẫn
"NẾU điều kiện xảy ra THÌ hành động sẽ được thi hành".
Chẳng hạn : NẾU đèn giao thông là đỏ THÌ bạn không được đi thẳng, NẾUmáy tính đã mở mà không khởi động được THÌ kiểm tra nguồn điện, v.v…
Một cách tổng quát luật dẫn có dạng như sau:
P 1 P 2 Pn Q
Tùy vào các vấn đề đang quan tâm mà luật sinh có những ngữ nghĩa hay cấutạo khác nhau :
Trong logic vị từ : P1, P2, , Pn, Q là những biểu thức logic
Trong ngôn ngữ lập trình, mỗi một luật sinh là một câu lệnh
IF (P 1 AND P 2 AND AND Pn) THEN Q.
Để biểu diễn một tập luật dẫn, người ta phải chỉ rõ hai thành phần chính sau:
(1) Tập các sự kiện F (Facts):
F = { f1, f2, fn } (2) Tập các quy tắc R (Rules) áp dụng trên các sự kiện dạng như sau :
f1 ^ f2 ^ ^ fi q
Trong đó, các fi, q đều thuộc F
Trang 71.2.3.2 Cơ chế suy luận trên các luật sinh
Suy diễn tiến : là quá trình suy luận xuất phát từ một số sự kiện ban đầu, xác
định các sự kiện có thể được "sinh" ra từ sự kiện này
Suy diễn lùi : là quá trình suy luận ngược xuất phát từ một số sự kiện ban đầu,
ta tìm kiếm các sự kiện đã "sinh" ra sự kiện này Một ví dụ thường gặp trong thực tế
là xuất phát từ các tình trạng của máy tính, chẩn đoán xem máy tính đã bị hỏng hóc
Không sử dụng được máy tính
Điện vào máy tính "có" hay "không"
Trang 8Hình 2 Cơ chế suy diễn của suy diễn lùi
Như vậy là để xác định được nguyên nhân gây ra hỏng hóc là do ổ cứng hỏnghay cáp màn hình lỏng, hệ thống phải lần lượt đi vào các nhánh để kiểm tra các điềukiện như điện vào máy "có", âm thanh ổ cứng "không" Tại một bước, nếu giá trịcần xác định không thể được suy ra từ bất kỳ một luật nào, hệ thống sẽ yêu cầungười dùng trực tiếp nhập vào Chẳng hạn như để biết máy tính có điện không, hệ
thống sẽ hiện ra màn hình câu hỏi "Bạn kiểm tra xem có điện vào máy tính không
(kiểm tra đèn nguồn)?(C/K)" Để thực hiện được cơ chế suy luận lùi, người ta
thường sử dụng ngăn xếp (để ghi nhận lại những nhánh chưa kiểm tra)
1.2.3.3 Ưu điểm và nhược điểm của biểu diễn tri thức bằng luật dẫn
Ưu điểm:
Biểu diễn tri thức bằng luật đặc biệt hữu hiệu trong những tình huống hệ thốngcần đưa ra những hành động dựa vào những sự kiện có thể quan sát được Nó cónhững ưu điểm chính yếu sau đây:
Các luật rất dễ hiểu nên có thể dễ dàng dùng để trao đổi với người dùng (vì
nó là một trong những dạng tự nhiên của ngôn ngữ)
Có thể dễ dàng xây dựng được cơ chế suy luận và giải thích từ các luật
Việc hiệu chỉnh và bảo trì hệ thống là tương đối dễ dàng
Có thể cải tiến dễ dàng để tích hợp các luật mờ
Trang 9 Các luật thường ít phụ thuộc vào nhau
Cơ sở tri thức luật sinh lớn sẽ làm giới hạn khả năng tìm kiếm của chươngtrình điều khiển Nhiều hệ thống gặp khó khăn trong việc đánh giá các hệdựa trên luật sinh cũng như gặp khó khăn khi suy luận trên luật sinh
Dạng biểu diễn tri thức cổ điển nhất trong máy tính là logic, với hai dạng phổbiến là logic mệnh đề và logic vị từ Cả hai kỹ thuật này đều dùng ký hiệu để thểhiện tri thức và các toán tử áp lên các ký hiệu để suy luận logic Logic đã cung cấpcho các nhà nghiên cứu một công cụ hình thức để biểu diễn và suy luận tri thức Emxin nói chi tiết về logic vị từ
Logic vị từ là sự mở rộng của logic mệnh đề nhằm cung cấp một cách biểu diễn
rõ hơn về tri thức Logic vị từ dùng ký hiệu để biểu diễn tri thức
Logic vị từ, cũng giống như logic mệnh đề, dùng các ký hiệu để thể hiện trithức Những ký hiệu này gồm hằng số, vị từ, biến và hàm
Hằng số: Các hằng số dùng để đặt tên các đối tượng đặc biệt hay thuộc tính Nhìn chung, các hằng số được ký hiệu bằng chữ viết thường, chẳng hạn an, bình, nhiệt độ Hằng số an có thể được dùng để thể hiện đối tượng An, một
người đang xét
Vị từ: Một mệnh đề hay sự kiện trong logic vị từ được chia thành 2 phần là
vị từ và tham số Tham số thể hiện một hay nhiều đối tượng của mệnh đề;
còn mệnh đề dùng để khẳng định về đối tượng Chẳng hạn mệnh đề "Namthích Mai" viết theo vị từ sẽ có dạng:
thích(nam, mai)
Trang 10Với cách thể hiện này, người ta dùng từ đầu tiên, tức "thích", làm vị từ.
Vị từ cho biết quan hệ giữa các đối số đặt trong ngoặc Đối số là các ký hiệuthay cho các đối tượng của bài toán Theo quy ước chẩn, người ta dùng cácchữ thường để thể hiện các đối số
Biến: Các biến dùng để thể hiện các lớp tổng quát của các đối tượng hay
thuộc tính Biến được viết bằng các ký hiệu bắt đầu là chữ in hoa Như vậy,
có thể dùng vị từ có biến để thể hiện nhiều vị từ tương tự
Ví dụ:
Có hai mệnh đề tương tự "Nam thích Mai" và "Bắc thích Cúc"
Hai biến X, Y dùng trong mệnh đề thích(X, Y).
Các biến nhận giá trị sẽ được thể hiện qua X=Nam, Bắc; Y=Mai, Cúc.Trong phép toán vị từ người ta dùng biến như đối số của biểu thức vị
từ hay của hàm
Hàm: Logic vị từ cũng cho phép dùng ký hiệu để biểu diễn hàm Hàm mô tả
một ánh xạ từ các thực thể hay một tập hợp đến một phần tử duy nhất của tậphợp khác Ví dụ, các hàm sau đây được định nghĩa nhằm trả về một giá trịxác định:
cha(sơn) = Nammẹ(sơn) = Mai
Phép toán: Logic vị từ cũng dùng các phép toán như logic mệnh đề
Ví dụ:
thích(X,Y) AND thích(Z,Y) -> thích(X,Z)
Trang 11CHƯƠNG 2 THU THẬP TRI THỨC VÀ ỨNG DỤNG PROLOG
XÂY DỰNG HỆ CHUYÊN GIA HỖ TRỢ CHẨN ĐOÁN
Biến chứng : những biến chứng có thể gặp phải là viêm phổi, viêm não, viêmtai giữa, tiêu chảy, mờ giác mạc, viêm thanh quản, suy dinh dưỡng nặng
Chăm sóc :
o Cho bé uống thuốc hạ sốt khi nhiệt độ ≥ 38.5oC, liều lượng thuốc dùngđược tính là 10 - 15 mg cho mỗi kí lô cân nặng của trẻ
o Nếu bé ho có thể cho dùng thuốc giảm ho
o Chế độ ăn uống phải đầy đủ chất dinh dưỡng và có thể chia nhỏ khẩuphần ăn làm nhiều lần trong ngày
o Giữ vệ sinh tốt để tránh nhiễm thêm vi trùng
Chăm sóc :
Trang 12o Nếu trẻ sốt hoặc đau nhiều có thể cho dùng thuốc hạ sốt giảm đau.
o Cho ăn thức ăn lỏng, dễ nuốt
o Chăm sóc, vệ sinh răng miệng
Chăm sóc :
o Cho dùng thuốc hạ sốt khi trẻ sốt
o Nâng sức đề kháng: ăn uống hợp lý, dùng thêm nước trái cây như nướccam, nước chanh
o Giữ gìn vệ sinh cho trẻ
o Bóng nước gây ngứa dữ dội
o Bóng nước xuất hiện ở thân mình, sau đó tiến đến vùng đầu mặt, taychân
o Bóng nước xuất hiện ở niêm mạc miệng, cơ quan sinh dục
o Sau khoảng 5 ngày, những bóng nước này vỡ ra và đóng mài
Trang 13 Biến chứng :
o Để lại những sẹo rỗ trên da
o Viêm mô tế bào do nhiễm thêm vi trùng
o Viêm phổi
o Viêm não
Chăm sóc :
o Cho trẻ nghỉ ngơi, mặc quần áo thoáng mát
o Dùng thuốc hạ sốt nhưng lưu ý tuyệt đối không dùng aspirine
o Cho trẻ ngâm trong bồn nước ấm 1 – 3 lần mỗi ngày, lau nhẹ người bằngvải mềm, chú ý không làm vỡ bóng nước
o Giữ gìn vệ sinh cá nhân để phòng ngừa nhiễm thêm vi trùng
o Cắt ngắn móng tay cho trẻ, dạy trẻ không được gãi, trẻ nhỏ nên được đeogăng tay để không tự làm vỡ bóng nước
o Cách ly trẻ bệnh khoảng 5 - 7 ngày để tránh lây lan
2.1.5 Bệnh sốt xuất huyết
Chương 3 Triệu chứng : Sốt cao, có chấm xuất huyết dưới da thường gặp nhiều nhất ở hai chân; và dấu hiệu gan to Ngoài những dấu hiệu vừa kể, trẻ nhỏ bị SXH còn có các dấu hiệu không đặc hiệu như ho, sổ mũi và tiêu chảy
Biến chứng :
o Những biến chứng do sốt kéo dài, bệnh nhân nhập viện muộn dễ dẫn tớitình trạng sốc kéo dài, gây co giật, suy hô hấp Khi xuất huyết tiêu hóanhiều kèm xuất huyết não và tổn thương đa cơ quan (do sốc) rất dễ dẫnđến việc bệnh nhân tử vong
Chăm sóc :
o Cho trẻ uống thuốc hạ sốt Paracetamol, lau mát bằng nước ấm để tránhbiến chứng sốt cao co giật
Trang 14o Uống nhiều nước như nước cam, chanh, oresol, nước sôi để nguội, vẫntiếp tục cho bú sữa, cho ăn cháo, bột.
o Theo dõi vào thời điểm khi trẻ hết sốt xem có biểu hiện trở nặng lại Nếutrẻ vẫn có dấu hiệu trở nặng như ói mửa nhiều, bứt rứt, quấy khóc, bỏ bú,tay chân lạnh, tím, vã mồ hôi, ói ra máu, đi tiêu ra máu phải đưa trẻ đếnbệnh viện để được điều trị kịp thời
3.1 Xây dựng cơ sở tri thức dựa trên luật
3.1.1 Mô tả tri thức dữ liệu bệnh bằng tập luật
R1 IF Phát ban
AND Sốt AND Chảy mũi AND Ho
AND Đỏ mắt
THEN Bệnh sởi
R2 IF Sưng tuyến mang tai
AND Đau nhức khi nhai AND Sốt
AND Nhức đầu
THEN Bệnh quai bị
R3 IF Sưng hạch
AND Phát ban AND Sốt AND Đau khớp
THEN Bệnh rubella
R4 IF Hồng ban
AND Bóng nước AND Đau họng AND Nhức đầu AND Sốt
THEN Bệnh thủy đậu
R5 IF Có chấm xuất huyết
AND Gan to AND Sốt
THEN Bệnh sốt xuất huyết
Trang 153.1.2 Hình ảnh mô tả các triệu chứng của từng bệnh
Trang 173.1.3 Sơ đồ mô phỏng chương trình chẩn đoán bệnh
Trang 183.2 Xây dựng ứng dụng hệ chẩn đoán bệnh trẻ em bằng Prolog và Java
3.2.1 Công cụ phát triển hệ cơ sở tri thức
Chọn ngôn ngữ lập trình trí tuệ nhân tạo Prolog (PROgramming in LOGic) để
phát triển tri thức, giải quyết các bài toán liên quan đến các đối tượng (object) và
mối quan hệ (relation) giữa chúng Đồng thời kết hợp với ngôn ngữ lập trình Java
trên môi trường Windows Forms để tạo giao diện thân thiện cho phép người dùng
có thể tương tác dễ dàng với hệ thống chẩn đoán bệnh
3.2.2 Phát biểu dưới dạng logic vị từ về bệnh
X là các triệu chứng của bệnh sởi trieuchungsoi(X)
X là các triệu chứng của bệnh quai bị trieuchungquaibi(X)
X là các triệu chứng của bệnh rubella trieuchungrubella(X)
X là các triệu chứng của bệnh thủy đậu trieuchungthuydau(X)
X là các triệu chứng của bệnh sốt xuất
X là các triệu chứng của một loại bệnh trẻ
em Y
trieuchungbenhtreem(X,Y)
Trẻ mắc bệnh sởi khi có những triệu
chứng của bệnh sởi ∀X trieuchungsoi(X) → trieuchungbenhtreem(X, soi)
Trẻ mắc bệnh quai bị khi có những triệu
chứng của bệnh quai bị ∀X trieuchungquaibi(X) → trieuchungbenhtreem(X, quaibi)
Trẻ mắc bệnh rubella khi có những triệu
chứng của bệnh rubella ∀X trieuchungrubella(X) → trieuchungbenhtreem(X, rubella)
Trẻ mắc bệnh thủy đậu khi có những triệu
chứng của bệnh thủy đậu ∀Xtrieuchungthuydau(X) → trieuchungbenhtreem(X, thuydau)Trẻ mắc bệnh sốt xuất huyết khi có những
triệu chứng của bệnh sốt xuất huyết ∀X trieuchungsotxuathuyet (X) → trieuchungbenhtreem(X, sotxuathuyet)