MỤC LỤC
Chương 1
TỔNG QUAN VỀ HỆ CHUYÊN GIA 2
VÀ BIỂU DIỄN TRI THỨC 2
1.1 Hệ chuyên gia 2
1.2 Biểu diễn tri thức 4
Chương 2
THU THẬP TRI THỨC VÀ ỨNG DỤNG PROLOG 11
XÂY DỰNG HỆ CHUYÊN GIA HỖ TRỢ CHẨN ĐOÁN 11
VÀ ĐIỀU TRỊ MỘT SỐ BỆNH THƯỜNG GẶP Ở TRẺ EM 11
2.1 Thu thập tri thức một số bệnh thường gặp ở trẻ em 11
2.2 Xây dựng cơ sở tri thức dựa trên luật 14
2.3 Xây dựng ứng dụng hệ chẩn đoán bệnh trẻ em bằng Prolog và Java 18
2.4 Chương trình và kết quả thực nghiệm 20
TÀI LIỆU THAM KHẢO
25
LỜ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ĩnh
vự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ệu
cho 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ệc
chẩ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 cho
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
phé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ểu
luận [5] chưa thực hiện.
CHƯƠ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ết
vấ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ết
cá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ên
gia 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ệc
chẩ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ện
thoại,…
HVTH: Vũ Phát Lộc – CH1301097 Trang 2
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
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
(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ằm mục đích cung cấp các lý lẻ để thuyết phục người sử dụng đi theo con đường
suy 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ả.
HVTH: Vũ Phát Lộc – CH1301097 Trang 3
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
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.
• 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 đặc
trư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.
HVTH: Vũ Phát Lộc – CH1301097 Trang 4
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠ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ựng
cá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ết
vấ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ạng
biể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ục
tiê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 đúng
hoặc sai. Tri thức khai báo cũng có thề là một danh sách các khẳng định
nhằ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ác
chuyê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àn
chí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ức
khoa học như sự kiện, luật,… sau đó chuyển chúng thành các tri thức
heuristic để thuận tiện hơn trong việc giải quyết một số bài toán.
• 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ác
tri thức dựa theo cấu trúc xác định.
HVTH: Vũ Phát Lộc – CH1301097 Trang 5
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
1.2.3 Biểu diễn tri thức bằng luật dẫn
1.2.3.1 Khái niệm
Phương pháp biểu diễn tri thức bằng luật dẫn được phát minh bởi Newell và
Simon trong lúc hai ông đang cố gắng xây dựng một hệ giải bài toán tổng quát. Đây
là một kiểu biểu diễn tri thức có cấu trúc. Ý tưởng cơ bản là tri thức có thể được cấu
trúc bằng một cặp điều kiện & hành động:
"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á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ấu
tạo khác nhau :
• Trong logic vị từ : P
1
, P
2
, , 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
1.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
ở đâu.
HVTH: Vũ Phát Lộc – CH1301097 Trang 6
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
Ví dụ: Trình bày một vận dụng của phương pháp hệ luật dẫn trong việc biểu
diễn tri thức cho một hệ cơ sở tri thức ứng dụng “Chẩn đoán các vấn đề gây ra lỗi
để sửa chửa máy tính”.
Tập các sự kiện:
• Ổ cứng là "hỏng" hay "hoạt động bình thường".
• Hỏng màn hình.
• Lỏng cáp màn hình.
• Tình trạng đèn ổ cứng là "tắt" hoặc "sáng".
• Có âm thanh đọc ổ cứng.
• Tình trạng đèn màn hình "xanh" hoặc "chớp đỏ".
• Không sử dụng được máy tính.
• Điện vào máy tính "có" hay "không".
Tập các luật:
R1. Nếu ( (ổ cứng "hỏng") hoặc (cáp màn hình "lỏng")) thì không sử dụng
được máy tính.
R2. Nếu (điện vào máy là "có") và ( (âm thanh đọc ổ cứng là "không") hoặc
tình trạng đèn ổ cứng là "tắt")) thì (ổ cứng "hỏng").
R3. Nếu (điện vào máy là "có") và (tình trạng đèn màn hình là "chớp đỏ") thì
(cáp màn hình "lỏng").
Để xác định được các nguyên nhân gây ra sự kiện "không sử dụng được máy
tính", ta phải xây dựng một cấu trúc đồ thị gọi là đồ thị AND/OR như sau:
HVTH: Vũ Phát Lộc – CH1301097 Trang 7
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
Hì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ỏng
hay 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ều
kiệ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ầu
ngườ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ống
cầ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ờ.
HVTH: Vũ Phát Lộc – CH1301097 Trang 8
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
• Các luật thường ít phụ thuộc vào nhau.
Nhược điểm:
• Các tri thức phức tạp đôi lúc đòi hỏi quá nhiều (hàng ngàn) luật sinh. Điều
này sẽ làm nảy sinh nhiều vấn đề liên quan đến tốc độ lẫn quản trị hệ thống.
• Thống kê cho thấy, người xây dựng hệ thống trí tuệ nhân tạo thích sử dụng
luật sinh hơn tất cả phương pháp khác (dễ hiểu, dễ cài đặt) nên họ thường
tìm mọi cách để biểu diễn tri thức bằng luật sinh cho dù có phương pháp
khác thích hợp hơn! Đây là nhược điểm mang tính chủ quan của con người.
• 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ương
trì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ấp
cho 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. Em
xin 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 tri
thứ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 đề "Nam
thích Mai" viết theo vị từ sẽ có dạng:
thích(nam, mai)
HVTH: Vũ Phát Lộc – CH1301097 Trang 9
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
Vớ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ệu
thay cho các đối tượng của bài toán. Theo quy ước chẩn, người ta dùng các
chữ 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ập
hợ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) = Nam
mẹ(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).
HVTH: Vũ Phát Lộc – CH1301097 Trang 10
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
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
2.1 Thu thập tri thức một số bệnh thường gặp ở trẻ em
2.1.1 Bệnh sởi
• Triệu chứng : sốt, phát ban lúc đầu ở mặt sau đó lan ra toàn thân, khi ban sởi
biến mất sẽ để lại những vết thâm da. Ngoài ra trẻ còn có một số triệu chứng
kèm theo gồm chảy mũi, ho và đỏ mắt
• 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êm
tai 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ẩu
phầ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.
2.1.2 Bệnh quai bị
• Triệu chứng : sốt, nhức đầu, sưng tuyến mang tai một hoặc cả hai bên, đau
nhức khi nhai.
• Biến chứng : viêm tinh hoàn với xác suất 1/5 nếu bệnh xảy ra ở trẻ lớn và
người lớn, tình trạng này có thể dẫn đến vô sinh về sau nhưng với một tỷ lệ
rất nhỏ. Ngoài ra bệnh còn có thể gây viêm màng não, viêm tụy và gây
chứng điếc vĩnh viễn.
• Chăm sóc :
HVTH: Vũ Phát Lộc – CH1301097 Trang 11
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
o 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.
o Nằm nghỉ ngơi.
2.1.3 Bệnh rubella
• Triệu chứng : sốt nhẹ, phát ban lúc đầu ở mặt sau đó lan xuống dưới, có thể
kèm theo sưng hạch, đau khớp.
• Biến chứng : Trẻ nhiễm rubella thường có triệu chứng nhẹ và tự khỏi bệnh, ít
khi xảy ra biến chứng. Nhưng đối với phụ nữ khi mang thai bị bệnh rubella,
đứa trẻ sinh ra sẽ có nhiều nguy cơ mắc các dị tật bẩm sinh như điếc, mù,
bệnh tim bẩm sinh hoặc kém phát triển.
• 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ước
cam, nước chanh.
o Giữ gìn vệ sinh cho trẻ.
2.1.4 Bệnh thủy đậu
• Triệu chứng :
o Bé sốt nhẹ, đau họng, nhức đầu.
o Nổi hồng ban có kích thước vài mm, sau đó nhanh chóng chuyển thành
bóng nước, lúc đầu chứa dịch trong sau 24 giờ thì hóa đục.
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, tay
châ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.
HVTH: Vũ Phát Lộc – CH1301097 Trang 12
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
• 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ằng
vả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 đeo
gă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
• 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ới
tì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óa
nhiề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 :
HVTH: Vũ Phát Lộc – CH1301097 Trang 13
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
o Cho trẻ uống thuốc hạ sốt Paracetamol, lau mát bằng nước ấm để tránh
biến chứng sốt cao co giật.
o Uống nhiều nước như nước cam, chanh, oresol, nước sôi để nguội, vẫn
tiế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ếu
trẻ 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ẻ đến
bệnh viện để được điều trị kịp thời.
2.2 Xây dựng cơ sở tri thức dựa trên luật
2.2.1 Mô tả tri thức dữ liệu bệnh bằng tập luật
Mã luật
Chẩn đoán
Giả thiết Kết luận
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
HVTH: Vũ Phát Lộc – CH1301097 Trang 14
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
2.2.2 Hình ảnh mô tả các triệu chứng của từng bệnh
HVTH: Vũ Phát Lộc – CH1301097 Trang 15
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
HVTH: Vũ Phát Lộc – CH1301097 Trang 16
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
2.2.3 Sơ đồ mô phỏng chương trình chẩn đoán bệnh
HVTH: Vũ Phát Lộc – CH1301097 Trang 17
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
2.3 Xây dựng ứng dụng hệ chẩn đoán bệnh trẻ em bằng Prolog và Java
2.3.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.
2.3.2 Phát biểu dưới dạng logic vị từ về bệnh
Phát biểu Vị từ
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
huyết
trieuchungsotxuathuyet(X)
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)
HVTH: Vũ Phát Lộc – CH1301097 Trang 18
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
2.3.3 Mô tả các sự kiện về triệu chứng các loại bệnh
Mã luật
Sự kiện
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:
Mã luật
Luật
R1
trieuchungbenhtreem(X,soi) : -trieuchungsoi(X)
R2
trieuchungbenhtreem(X,quaibi): -trieuchungquaibi(X)
R3
trieuchungbenhtreem(X,rubella): -trieuchungrubella(X)
R4 trieuchungbenhtreem(X,thuydau) : -trieuchungthuydau(X)
R5 trieuchungbenhtreem(X,sotxuathuyet) : -trieuchungsotxuathuyet(X)
Định nghĩa các sự kiện về thuốc điều trị của các loại bệnh:
Mã luật
Sự kiện
R1
thuoc_phatban([paracetamol,vitaminA])
R2
thuoc_sot([panadol,paragan])
R3
thuoc_chaymui([ngo_sen,la_sen])
R4 thuoc_ho([xiro_ho,bo_phe])
R5 thuoc_domat([viroto])
R6 thuoc_sungtuyen([hoat_huyet])
R7 thuoc_daunhuckhinhai([tylenol])
R8 thuoc_nhucdau([panadol])
R9 thuoc_sunghach([streptomycin,gentamycin,cephalosporin])
R10 thuoc_daukhop([enjoyNT])
R11 thuoc_hongban([chlorpheniramine,cetirzine])
R12 thuoc_bongnuoc([isotretinoin])
R13 thuoc_dauhong([strepsils])
R14 thuoc_cocham([vacxin])
R15 thuoc_ganto([vacxin])
Định nghĩa các luật điều trị dựa trên các sự kiện về thuốc:
HVTH: Vũ Phát Lộc – CH1301097 Trang 19
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
Mã luật
Luật
R1
dieutri(phatban,X):-thuoc_phatban(X)
R2
dieutri(sot,X):-thuoc_sot(X)
R3
dieutri(chaymui,X):-thuoc_chaymui(X)
R4 dieutri(ho,X):-thuoc_ho(X)
R5 dieutri(domat,X):-thuoc_domat(X)
R6 dieutri(sungtuyenmangtai,X):-thuoc_sungtuyen(X)
R7 dieutri(daunhuckhinhai,X):-thuoc_daunhuckhinhai(X)
R8 dieutri(nhucdau,X):-thuoc_nhucdau(X)
R9 dieutri(sunghach,X):-thuoc_sunghach(X)
R10 dieutri(daukhop,X):-thuoc_daukhop(X)
R11 dieutri(hongban,X):-thuoc_hongban(X)
R12 dieutri(bongnuoc,X):-thuoc_bongnuoc(X)
R13 dieutri(dauhong,X):-thuoc_dauhong(X)
R14 dieutri(cochamxuathien,X):-thuoc_cocham(X)
R15 dieutri(ganto,X):-thuoc_ganto(X)
2.4 Chương trình và kết quả thực nghiệm
2.4.1 Môi trường lập trình
Ngôn ngữ lập trình: Java
IDE: Netbeans IDE 7.4
JDK: JDK 1.7.0_25
HVTH: Vũ Phát Lộc – CH1301097 Trang 20
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
2.4.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àn
chương trình.
• MainForm: lớp giao diện chương trình và các thao tác trong chương
trì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ương
trình.
HVTH: Vũ Phát Lộc – CH1301097 Trang 21
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
2.4.3 Chức năng và giao diện chương trình
HVTH: Vũ Phát Lộc – CH1301097 Trang 22
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
Chươ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ứng
bệ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ương
trì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ức
năng mới được thực hiện trong bài tiểu luận này, vận dụng hệ chuyên gia
thực hiện trao đổi giữa người dùng và chương trình, mà trong “Hướng phát
triể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ặt
giao diện trực quan, dễ sử dụng hơn cho người dùng.
HVTH: Vũ Phát Lộc – CH1301097 Trang 23
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
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 mô tả, biểu diễn
và xử lý tri thức bằng logic dự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ướng phá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 tri
thứ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.
HVTH: Vũ Phát Lộc – CH1301097 Trang 24
Biểu diễn tri thức và suy luận GVHD: PGS.TS. ĐỖ VĂN NHƠN
• Kết hợp SWI-Prolog với Java trên môi trường Windows Forms để tạo giao
diệ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ệnh
chuyê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 Biểu diễn tri thức và suy luận, PGS.TS. Đỗ Văn Nhơn
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ăm
2006.
[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 Problem
Solving (Fourth edition), George F. Luger, Addison Wesley Publishing
Company, 2002.
[5] Tiểu luận: BDTT_HuynhThanhPhung_CH1101029
[6] Website:
/> /
HVTH: Vũ Phát Lộc – CH1301097 Trang 25