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 11.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.1.3 Các bước xây dựng hệ chuyên gia 3
1.1.4 Cơ chế suy luận trên các luật sinh 4
1.1.5 Ưu điểm và nhược điểm của hệ chuyên gia 6
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 7
2.1 Thu thập tri thức một số bệnh thường gặp ở trẻ em 7
2.2 Xây dựng cơ sở tri thức dựa trên luật 10
2.3 Xây dựng ứng dụng hệ chẩn đoán bệnh trẻ em bằng Prolog và Java 14
2.4 Chương trình và kết quả thực nghiệm 16
KẾT LUẬN 20
TÀI LIỆU THAM KHẢO 21
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
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
Các chương trình thuộc loại này đã được phát triển từ các thập niên 1960 và
1970, và trở thành ứng dụng thương mại từ thập niên 1980
Dạng phổ biến nhất của hệ chuyên gia là một chương trình gồm một tập luậtphân tích thông tin (thường được cung cấp bởi người sử dụng hệ thống) về một lớpvấn đề cụ thể, cũng như đưa ra các phân tích về các vấn đề đó, và tùy theo thiết kếchương trình mà đưa lời khuyên về trình tự các hành động cần thực hiện để giảiquyết vấn đề Đây là một hệ thống sử dụng các khả năng lập luận để đạt tới các kếtluận
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
Trang 4(4) Cơ chế giải thích WHY-HOW
(5) Bộ nhớ làm việc
(6) Tiếp nhận tri thức
Bộ phận giải thích sẽ trả lời hai câu hỏi là WHY và HOW, câu hỏi WHY nhằmmục đích cung cấp các lý lẻ để thuyết phục người sử dụng đi theo con đường suydiễ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.1.3 Các bước xây dựng hệ chuyên gia
Thu thập tri thức của chuyên gia
Chuyển tri thức của chuyên gia vào máy tính
Suy diễn các tri thức thu thập được
Xây dựng các tập luật từ tri thức
Trang 5Giải thích các tập luật.
1 Thu thập tri thức của chuyên gia
Các kiến thức, tri thức có được từ sách vở, từ huấn luyện, từ kinh nghiệm tích lũy được
2 Chuyển tri thức vào máy tính
Mục tiêu của hệ chuyên gia là chuyển kiến thức của các chuyên gia vào máy tính và sau đó đến mọi người Tri thức có 2 loại là Sự kiện và Tập các luật Tri thức được lưu trữ trong Knowledge base
"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ẾU máytính đã mở mà không khởi động được THÌ kiểm tra nguồn điện, v.v…
Trong ngôn ngữ lập trình, mỗi một luật sinh là một câu lệnh
1.1.4 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
ở đâu
Ví dụ: Chẩn đoán các vấn đề gây ra lỗi để sửa chửa máy tính
Trang 6 Không sử dụng được máy tính.
Điện vào máy tính "có" hay "không"
Trang 7Như 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.1.5 Ưu điểm và nhược điểm của hệ chuyên gia
Ưu điểm:
Cải thiện chất lượng về việc ra quyết định
Tăng năng suất
Giảm thiểu thời gian ra quyết định
Tăng chất lượng sản phẩm và các tiến trình ra quyết định
Nắm bắt được tri thức chuyên gia
Có thể ra quyết định với tri thức không đầy đủ và không chắc chắn
Tăng cường khả năng ra quyết định và giải quyết vấn đề
Cải thiện tiến trình ra quyết định
Sử dụng được tri thức của chuyên gia từ xa
Tăng cường các hệ thống MIS khác
Nhược điểm:
Tri thức chuyên gia phải tìm kiếm khó khăn
Con người nhiều khi khó có thể diễn tả được kinh nghiệm một cách đầy đủ
Chỉ làm tốt trong một miền tri thức nhất định
Các nhà tri thức thì ít ỏi
Thiếu sự tin tưởng của người dùng cuối
Có thể cho ra kết luận không hợp lý
Một vài kiến nghị không chính xác
Trang 8CHƯƠ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 9o 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 10 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
Trang 11o 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
AND Sốt AND Chảy mũi AND Ho
AND Đỏ mắt
THEN Bệnh sởi
AND Đau nhức khi nhai AND Sốt
AND Nhức đầu
THEN Bệnh quai bị
AND Phát ban AND Sốt AND Đau khớp
THEN Bệnh rubella
AND Bóng nước AND Đau họng AND Nhức đầu AND Sốt
THEN Bệnh thủy đậu
AND Gan to AND Sốt
THEN Bệnh sốt xuất huyết
Trang 123.1.2 Hình ảnh mô tả các triệu chứng của từng bệnh
Trang 143.1.3 Sơ đồ mô phỏng chương trình chẩn đoán bệnh
Trang 153.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)
Trang 163.2.3 Mô tả các sự kiện về triệu chứng các loại bệnh
R1 trieuchungsoi([phatban,sot,chaymui,ho,domat])
R2 trieuchungquaibi([sungtuyenmangtai,daunhuckhinhai,sot,nhucdau])R3 trieuchungrubella([sunghach,phatban,sot,daukhop])
R4 trieuchungthuydau([hongban,bongnuoc,dauhong,nhucdau,sot])R5 trieuchungsotxuathuyet([cochamxuathuyen,ganto,sot])
Định nghĩa các luật về bệnh dựa trên các sự kiện:
Trang 183.3.2 Cấu trúc chương trình
Chương trình gồm 2 class chính là PrologUtils và MainForm
PrologUtils: lớp xây dựng các phương thức sử dụng chung cho toànchương trình
MainForm: lớp giao diện chương trình và các thao tác trong chươngtrình
CustomJpanel: lớp extends jPanel để thêm background cho chương trình.Chương trình sử dụng thư viện jpl.jar để nạp file prolog CSDL vào chươngtrình
Trang 193.3.3 Chức năng và giao diện chương trình
Trang 20Chương trình xây dựng hai chức năng chính là: Chẩn đoán bệnh và Triệu chứngbệnh.
Chẩn đoán bệnh: Người dùng sẽ trả lời một số câu hỏi liên tiếp do chươngtrình đặt ra Sau đó chương trình sẽ cho biết bé đang bị bệnh nào và thuốcđiều trị ra sao Do chương trình còn hạn chế về mặt dữ liệu bệnh nên có thểxảy ra kết quả không chẩn đoán được bệnh của bé Chức năng này là chứcnăng mới được thực hiện trong bài tiểu luận này, vận dụng hệ chuyên giathực hiện trao đổi giữa người dùng và chương trình, mà trong “Hướng pháttriển” của tiểu luận [5] có đặt ra
Triệu chứng bệnh: Chương trình đưa ra một số bệnh có sẵn trong CSDL,người dùng chọn và chương trình sẽ cho biết các triệu chứng của bệnh đó.Chức năng này được kế thừa từ tiểu luận [5], tuy nhiên có chỉnh sửa về mặtgiao diện trực quan, dễ sử dụng hơn cho người dùng
Trang 21
KẾT LUẬN
Sau khi tìm hiểu và thực hiện đề tài này, em đã học được cách đưa ra quyết địnhdựa trên các sự kiện và luật Do thời gian có giới hạn nên chương trình chỉ mới hỗtrợ chẩn đoán, đưa ra gợi ý thuốc điều trị cũng như mô tả triệu chứng của một sốbệnh thông thường ở trẻ em Em xin liệt kê một số kết quả em đạt được và hướngphát triển cho đề tài này:
Kết quả đạt được:
Giải quyết được bài toán 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
Tìm hiểu kiến thức về một số bệnh thường gặp của trẻ em
Tìm hiểu lập trình trí tuệ nhân tạo Prolog để có thể dựa vào đó phát triển trithức, mô tả vấn đề bằng suy diễn logic để tìm ra các câu trả lời cho vấn đề, truy vấn
cơ sở tri thức bằng các câu hỏi có/không và số liệu
Trang 22 Kết hợp SWI-Prolog với Java trên môi trường Windows Forms để tạo giaodiện trực quan, thân thiện và dễ dùng hơn.
Hướng phát triển:
Xây dựng tập luật có thể xử lý bằng ngôn ngữ tự nhiên
Thu thập thêm các dữ liệu bệnh của trẻ em để mở rộng hệ chẩn đoán bệnhchuyên sâu hơn, cho nhiều đối tượng khác nhau và đưa ra chẩn đoán bệnh chính xác
và cụ thể hơn
TÀI LIỆU THAM KHẢO
[1] Bài giảng môn học Hệ hỗ trợ ra quyết định, PGS.TS Đỗ Phúc năm 2014[2] Bài giảng Trí tuệ nhân tạo và hệ chuyên gia, TS Nguyễn Thiện Thành, năm2006
[3] Lập trình Lôgích trong Prolog, PGS.TS Phan Huy Khánh, năm 2004.[4] Artificial Intelligence – Structure and Strategies for Complex ProblemSolving (Fourth edition), George F Luger, Addison Wesley PublishingCompany, 2002
[5] Tiểu luận: BDTT_HuynhThanhPhung_CH1101029