1. Trang chủ
  2. » Giáo án - Bài giảng

BÁO CÁO BÀI TẬP LỚN THUỘC HỌC PHẦN: HỆ CHUYÊN GIA XÂY DỰNG HỆ CHUYÊN GIA DỰ ĐOÁN LƯỢNG THUỐC CẦN CẤP CHO BỆNH NHÂN DỰA TRÊN SUY DIỄN MỜ

57 30 0

Đ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

Cấu trúc

  • LỜI MỞ ĐẦU

  • Chương 1: Tổng quan về Hệ chuyên gia

    • 1. Tổng quan về Hệ chuyên gia

      • 1.1. Hệ chuyên gia là gì?

      • 1.2. Đặc trưng và ưu điểm của hệ chuyên gia

      • 1.3. Các lĩnh vực ứng dụng của hệ chuyên gia

      • 1.4. Cấu trúc của hệ chuyên gia

      • 1.5. Một số mô hình kiến trúc hệ chuyên gia

        • 1.5.1. Mô hình J.L.Ermine

        • 1.5.2. Mô hình C.Ernest :

        • 1.5.3. Mô hình E.V.Popov

    • 2. Cơ sở tri thức

      • 2.1. Phân biệt tri thức và dữ liệu

      • 2.2. Phân loại tri thức

        • 2.2.1. Tri thức mô tả :

        • 2.2.2. Tri thức thủ tục :

        • 2.2.3. Tri thức điều khiển

      • 2.3. Các cấp độ tri thức

        • Tri thức động phụ thuộc vào tình huống không gian và thời gian

        • Tri thức bất định, tri thức không đầy đủ

      • 2.4. Các phương pháp biểu diễn tri thức

        • Biểu diễn tri thức nhờ logic

        • Biểu diễn tri thức nhờ mạng ngữ nghĩa

        • Biểu diễn tri thức nhờ các luật sản xuất

        • Biểu diễn tri thức bằng FRAME

        • Biểu diễn nhờ bộ ba liên hợp O.A.V

    • 3. Mô tơ suy diễn

      • 3.1. Cơ chế suy diễn

        • Suy diễn tiến

        • Suy diễn lùi

        • Cơ chế hỗn hợp

      • 3.2. Cơ chế điều khiển

        • Chọn hướng suy diễn

        • Giải quyết các vấn đề cạnh tranh

          • Cạnh tranh trong suy diễn tiến

          • Cạnh tranh trong suy diễn lùi

  • Chương 2: Logic mờ

    • 2.1. Lý thuyết tập mờ

      • 2.1.1. Tập mờ

      • 2.1.2. Các phép toán trên tập mờ

        • 2.1.2.1. Phần bù của tập mờ

        • 2.1.2.2. Phép giao hai tập mờ

        • 2.1.2.3. Phép hợp hai tập mờ

        • 2.4.2.4. Phép kéo theo

    • 2.2. Các quan hệ và suy luận xấp xỉ, suy diễn mờ

      • 2.2.1. Quan hệ mờ

        • 2.2.1.1. Khái niệm về quan hệ rõ

        • 2.2.1.2. Các quan hệ mờ

        • 2.2.1.3. Các phép toán của quan hệ mờ

      • 2.2.2. Suy luận xấp xỉ và suy diễn mờ

    • 2.3. Bộ mờ hoá

    • 2.4. Hệ luật mờ

    • 2.5. Động cơ suy diễn

    • 2.6. Bộ giải mờ

  • Chương 3: Xây dựng bài toán ứng dụng

    • 3.1. Hệ chuyên gia và bài toán dự đoán lượng thuốc cần cấp cho bệnh nhân

    • 3.2. Mô tả cách áp dụng thuật toán vào bài toán cụ thể

    • 3.3. Thiết kế một số giải thuật

    • 3.4. Cài đặt chương trình

      • 3.4.1. Môi trường cài đặt

      • 3.4.2. Giao diện chương trình

      • 3.4.3. Mã nguồn chương trình

      • 3.4.4. Chạy chương trình

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN THUỘC HỌC PHẦN: HỆ CHUYÊN GIA XÂY DỰNG HỆ CHUYÊN GIA DỰ ĐOÁN LƯỢNG THUỐC CẦN CẤP CHO BỆNH NHÂN DỰA TRÊN SUY DIỄN MỜ GVHD: Ths Trần Hùng Cường Nhóm : 15 Sinh viên: Nguyễn Ngọc Đức Anh - 2017605700 Vũ Thành Đại - 2017603753 Trần Công Hải - 2017604013 Trần Quốc Việt – 2017604542 Lớp: 202010503121002 Khóa: K12 Hà Nội – Năm 2021 Mục lục LỜI MỞ ĐẦU Chương 1: Tổng quan Hệ chuyên gia Tổng quan Hệ chuyên gia 1.1 Hệ chuyên gia gì? .5 1.2 Đặc trưng ưu điểm hệ chuyên gia 1.3 Các lĩnh vực ứng dụng hệ chuyên gia .6 1.4 Cấu trúc hệ chuyên gia 1.5 Một số mơ hình kiến trúc hệ chun gia .9 Cơ sở tri thức 10 2.1 Phân biệt tri thức liệu 10 2.2 Phân loại tri thức 12 2.3 Các cấp độ tri thức 13 2.4 Các phương pháp biểu diễn tri thức 14 Mô tơ suy diễn 22 3.1 Cơ chế suy diễn 22 3.2 Cơ chế điều khiển .24 Chương 2: Logic mờ .28 2.1 Lý thuyết tập mờ 28 2.1.1 Tập mờ 28 2.1.2 Các phép toán tập mờ 29 2.2 Các quan hệ suy luận xấp xỉ, suy diễn mờ .32 2.2.1 Quan hệ mờ 32 2.2.2 Suy luận xấp xỉ suy diễn mờ 34 2.3 Bộ mờ hoá 35 2.4 Hệ luật mờ 35 2.5 Động suy diễn 36 2.6 Bộ giải mờ 37 Chương 3: Xây dựng toán ứng dụng .39 3.1 Hệ chuyên gia toán dự đoán lượng thuốc cần cấp cho bệnh nhân 39 3.2 Mô tả cách áp dụng thuật toán vào toán cụ thể 39 3.3 Thiết kế số giải thuật 47 3.4 Cài đặt chương trình 48 3.4.1 Môi trường cài đặt 48 3.4.2 Giao diện chương trình .49 3.4.3 Mã nguồn chương trình .49 3.4.4 Chạy chương trình 57 KẾT LUẬN 58 TÀI LIỆU THAM KHẢO .59 LỜI MỞ ĐẦU Hệ chuyên gia(Expert System)-một lĩnh vực ứng dụng trí tuệ nhân tạo, cụ thể hệ chuyên gia sử dụng tri thức chuyên gia để giải vấn đề (bài tốn) khác thuộc lĩnh vực Trí tuệ nhân tạo nói chung hệ chuyên gia nói riêng ngày phát triển để dáp ứng nhu cầu người Một sống đại lượng liệu lớn hơn, yêu phương pháp xử lý phức tạp hơn, mà nhân lực người có giới hạn, hệ chun gia cho thấy khả Là chương trình máy tính lại có khả giải toán chuyên gia người Mục tiêu ban đầu xây dựng hệ chuyên gia để hỗ trợ mà ta khơng có chun gia bên cạnh, nhờ sở tri thức mà hệ chuyên gia sử dụng tri thức chuyên gia chuẩn hóa cài đặt, mà nhờ giải toán cần phải tham khảo ý kiến từ chuyên gia người Dù chưa có khả thay hoàn toàn cho chuyên gia nhiều lĩnh vực có sở tri thức đủ tin cậy, có khả suy diễn chứng thực chuyên gia hệ chuyên gia nguồn tham khảo tốt hỗ trợ đắc lực cho người sống Với toán dự đoán lượng thuốc cho bệnh nhân, toán thực tiễn phù hợp cho nhóm áp dụng điều học vào thực tế Dự đốn lượng thuốc địi hỏi cần có chuyên gia(bác sĩ) tư vấn cụ thể liều lượng dựa thông số bệnh nhân, dựa điều mà nhóm xây dựng thành công hệ chuyên gia giúp hỗ trợ đưa lượng thuốc dựa vào thông số cụ thể nhiệt độ tuổi bệnh nhân, mà người chuyên gia tham khảo sử dụng Trong q trình thực đề tài cịn có nhiều thiếu sót, mong thầy tiếp tục góp ý giúp nhóm hồn thiện tốt Nhóm 15 xin chân thành cảm ơn Nhóm sinh viên thực hiện! Chương 1: Tổng quan Hệ chuyên gia Tổng quan Hệ chuyên gia 1.1 Hệ chuyên gia gì? Hệ chuyên gia hệ thống chương trình máy tính chứa thơng tin, tri thức trình suy luận lĩnh vực cụ thể để giải vấn đề khó tốn địi hỏi chun gia người Nói cách khác hệ chuyên gia dựa tri thức chuyên gia người giỏi lĩnh vực định Tri thức (knowledge) hệ chuyên gia thu thập chuẩn hóa dựa tri thức, hiểu biết chuyên gia ngành Mức độ hiệu hệ chuyên gia phụ thuộc vào kích thước chất lượng sở tri thức mà hệ có Một hệ chuyên gia đặc trưng cho lĩnh vực vấn đề cụ thể, y học, tài chính, khoa học hay công nghệ, vv…, mà cho lĩnh vực vấn đề Ví dụ : hệ chuyên gia lĩnh vực y học để phát bệnh lây nhiễm có nhiều tri thức số triệu chứng lây bệnh, lĩnh vực tri thức y học bao gồm bệnh, triệu chứng chữa trị Hoạt động hệ chuyên gia dựa tri thức minh họa sau: Hệ thống giao tiếp Cơ sở tri thức Người dùng Máy suy diễn 1.2 Đặc trưng ưu điểm hệ chuyên gia  Hệ chuyên gia có đặc trưng bản: - Hiệu cao: Khả trả lời với mức độ tinh thông cao so với chuyên gia (người) lĩnh vực - Thời gian trả lời thỏa đáng: Thời gian trả lời hợp lý, nhanh so với chuyên gia (người) để đến định - Độ tin cậy cao: Không thể xảy cố giảm sút độ tin cậy sử dụng - Dễ hiểu: Hệ chuyên gia giải thích bước suy luận cách dễ hiểu quán  Những ưu điểm hệ chuyên gia : - Phổ cập: Là sản phẩm chuyên gia, phát triển không ngừng với hiệu sử dụng phủ nhận - Giảm giá thành - Giảm rủi ro: Giúp người tránh rủi ro mơi trường nguy hiểm - Tính thường trực: Bất kể lúc khai thác sử dụng Trong người mệt mỏi, nghỉ ngơi hay vắng mặt - Đa lĩnh vực: Chuyên gia nhiều lĩnh vực khác khai thác đồng thời thời gian sử dụng - Độ tin cậy - Khả giảng giải: Câu trả lời với mức độ tinh thông giảng giải rõ ràng, chi tiết, dễ hiểu - Khả trả lời nhanh - Tính ổn định, suy luận có lý đầy đủ lúc nơi - Trợ giúp thông minh người hướng dẫn - Có thể truy cập sở liệu thông minh 1.3 Các lĩnh vực ứng dụng hệ chuyên gia Tính đến thời điểm này, hàng trăm hệ chuyên gia xây dựng báo cáo thường xuyên tạp chí, sách báo hội thảo khoa học Ngồi cịn hệ chun gia sử dụng công ty, tổ chức quân mà khơng cơng bố lí bảo mật Dưới số lĩnh vực ứng dụng diện rộng hệ chuyên gia: Lĩnh vực Cấu hình Ứng dụng diện rộng Tập hợp thích đáng thành phần hệ thống theo cách riêng Chẩn đoán Truyền đạt Lập luận dựa chứng quan sát Dạy học kiểu thông minh cho sinh viên hỏi Giải thích Kiểm tra Giải thích liệu thu nhận So sánh liệu thu lượm với chuyên môn để Lập kế hoạch đánh giá hiệu Lập kế hoạch sản xuất theo yêu cầu Dự đoán Chữa trị Điều khiển Dự đoán hậu từ tình xảy Chỉ định cách thụ lý vấn đề Điều khiển trình, địi hỏi diễn giải, chẩn đốn, kiểm tra, lập kế hoạch, dự đoán chữa trị 1.4 Cấu trúc hệ chuyên gia Một hệ chuyên gia kiểu mẫu gồm thành phần sau :  Giao diện người, máy : Thực giao tiếp hệ chuyên gia người sử dụng Nhận thông tin từ người dùng (các câu hỏi, yêu cầu lĩnh vực) đưa lời khuyên, câu trả lời, giải thích lĩnh vực  Bộ giải thích : Giải thích hoạt động hệ có yêu cầu người sử dụng  Bộ thu nạp tri thức : Làm nhiệm vụ thu nhận tri thức từ chuyên gia người, từ kỹ sư tri thức người sử dụng thông qua câu hỏi yêu cầu họ, sau lưu trữ vào sở tri thức  Cơ sở tri thức : Lưu trữ, biểu diễn tri thức lĩnh vực mà hệ đảm nhận, làm sở cho hoạt động hệ Cơ sở tri thức bao gồm kiện luật  Mô tơ suy diễn : Làm nhiệm vụ sử lý điều khiển tri thức biểu diễn sở tri thức nhằm đáp ứng câu hỏi, yêu cầu người sử dụng (*) Để thực công việc thành phần cấu trúc hệ chuyên gia phải có hệ điều khiển quản lý việc tạo lập, tích lũy tri thức cho lĩnh vực hệ đảm nhận gọi “Hệ quản trị sở tri thức” Hệ quản trị sở tri thức thực chất quản lý điều khiển công việc Bộ thu nạp tri thức, Bộ giải thích, Mơ tơ suy diễn Nó phải đảm bảo yêu cầu : - Giảm dư thừa tri thức, liệu - Tính quán phi mâu thuẫn tri thức - Tính tồn vẹn an toàn - Giải vấn đề cạnh tranh - Chuyển đổi tri thức - Ngôn ngữ xử lý tri thức 1.5 Một số mơ hình kiến trúc hệ chun gia 1.5.1 Mơ hình J.L.Ermine 1.5.2 Mơ hình C.Ernest : 1.5.3 Mơ hình E.V.Popov Cơ sở tri thức 2.1 Phân biệt tri thức liệu Chúng ta dựa vào số đặc trưng sau để phân biệt qui ước tri thức liệu :  Khả tự giải thích nội dung : Dữ liệu đưa vào máy tính khơng tự giải thích nổi, đơi cịn mã hóa cho ngắn gọn để dễ cài đặt máy Chỉ có người lập trình hiểu nội dung, ý nghĩa liệu, tri thức tự giải thích nội dung với người sử dụng  Tính cấu trúc : Một đặc tính hoạt động nhận thức người giới xung quanh khả phân tích cấu trúc đối tượng Tri thức đưa vào máy cần có khả tạo phân cấp khái niệm mối quan hệ chúng  Tính liên hệ : Ngoài quan hệ cấu trúc tri thức (khái niệm, trình, tượng, kiện) đơn vị tri thức cịn có nhiều mối liên hệ khác (không gian, thời gian, nhân quả…) Một số nghiên cứu số liên hệ kiện xấp xỉ 200 lần Một sở tri thức kết hợp với số liên hệ mơ tả biểu diễn hầu hết vấn đề mà quan tâm 10 H = 0.25 43 Luật r4: 44 Vậy lượng thuốc cần dùng cho người 25 tuổi sốt 38.5 độ 60.321 (đơn vị thuốc) 3.3 Thiết kế số giải thuật Thiết kế sử dụng giải thuật– áp dụng tập mờ hình thang với biểu diễn số: - Giải thuật tìm hàm thuộc: Đầu vào: tập mờ A = {a, b, c, d} Thông tin đối tượng x Đầu ra: Giá trị hàm thuộc float hamthuoc() { if( x < a || x > d) return 0; else if((b!=c && x = b) || (b == c && x == b)) return 1; else if( x = a) { if(b-a) return (x - a)/(b-a); else return -2;//-2 bị loại đưa vào hàm main } else if( x = c) { if(d-c)return (d - x)/(d-c); else return -2; } else return -2; } - Giải thuật tìm tử số, mẫu số luật tham gia: Đầu vào: lượng thuốc A={a, b, c, d} tương ứng với luật H = = x (giá trị hàm thuộc luật) Đầu ra: TU va MAU float timm (t, u, v) { z = abs(t-u); if(z) return v*z; 45 else return 0; } float timtu(h, m1, m2, t, u){ return (h/6)*(3*m2*m2 – 3*m1*m1 + u*u - t*t + 3*m2*u + 3*m1*a); } float timmau(h, m1, m2, t, u){ return (h/2)*(2*m2 – 2*m1 + t + u); } void timtumau() { ka = timm(a, b, x); m1= a + ka; kb = timm(c, d, x); m2= d - kb; TU = timtu(x, m1, m2, ka, kb); MAU = timmau(x, m1, m2, ka, kb); } 3.4 Cài đặt chương trình 3.4.1 Môi trường cài đặt     Ngôn ngữ cài đặt : C# Hệ điều hành : Windows 10 Nền tảng : NetFramework 3.0 Công cụ sử dụng : Visual Studio 2017 Để đảm bảo khả tương thích cao cho phiên kể cài đặt chương trình máy tính khác mà khơng bị lỗi, nhóm định sử dụng NetFramework 3.0 thay hơn, việc giúp chương trình cà đặt dễ dàng kể máy có cấu hình thấp cần hỗ trợ NetFramework 3.0 trở lên 46 3.4.2 Giao diện chương trình Hình 3.1 Giao diện chương trình Tên điều khiển Loại điều khiển Text txtTuoi Textbox txtNhietDo Textbox txtLuongThuoc Textbox btnTinh Button Tính lượng thuốc btnClear Button Xóa 3.4.3 Mã nguồn chương trình 3.4.3.1 Khai báo biến lưu trữ hàm thuộc tập luật const int MIN_NHIET = 37; const int MIN_TUOI = 0; const int MAX_NHIET = 41; 47 const int MAX_TUOI = 80; Dictionary tap_mo = new Dictionary(); Dictionary tap_suy_dien = new Dictionary(); Dictionary tuoi = new Dictionary(); Dictionary nhiet = new Dictionary(); Dictionary thuoc = new Dictionary(); Dictionary luat = new Dictionary(); Dictionary doTuoi = new Dictionary(); Dictionary nhietDo = new Dictionary(); ArrayList tu = new ArrayList(); ArrayList mau = new ArrayList(); 3.4.3.2 Hàm khởi tạo public Form1() { InitializeComponent(); string[] age = { "TRE", "TN", "GIA" }; string[] temp = { "SN", "SC" }; string[] medicin = { "TT", "TB", "TC" }; tap_mo.Add("tuoi", age); tap_mo.Add("nhietdo", temp); tap_mo.Add("thuoc", medicin); /* Trẻ(0, 20, 20, 40) TN(20, 40, 40, 60) Già(40, 60, 60, 80) SN(37, 38, 38, 39) SC(38, 39, 41, 41) (Tuổi) (Nhiệt độ) TT(0, 20, 40, 60) TB(40, 60, 80, 100) TC(80, 100, 120, 120) (Đơn vị thuốc) */ float[] tuoiTre = { 0, 20, 20, 40 }; float[] trungNien = { 20, 40, 40, 60 }; float[] tuoiGia = { 40, 60, 60, 80 }; tuoi.Add("TRE", tuoiTre); tuoi.Add("TN", trungNien); tuoi.Add("TG", tuoiGia); float[] sotNhe = { 37, 38, 38, 39 }; float[] sotCao = { 38, 39, 41, 41 }; nhiet.Add("SN", sotNhe); nhiet.Add("SC", sotCao); 48 float[] thuocThap = { 0, 20, 40, 60 }; float[] thuocTB = { 40, 60, 80, 100 }; float[] thuocCao = { 80, 100, 120, 120 }; thuoc.Add("TT", thuocThap); thuoc.Add("TB", thuocTB); thuoc.Add("TC", thuocCao); /* 1.Nếu Tuổi = Trẻ Sốt = Nhẹ(SN) lượng thuốc = thấp(TT) 2.Nếu Tuổi = Trẻ Sốt = Cao(SC) lượng thuốc = trung bình(TB) 3.Nếu Tuổi = Trung Niên(TN) Sốt = Nhẹ lượng thuốc = trung bình 4.Nếu Tuổi = Trung niên Sốt = Cao lượng thuốc = cao(TC) 5.Nếu Tuổi = Già Sốt = Nhẹ lượng thuốc = trung bình 6.Nếu Tuổi = Già Sốt = Cao lượng thuốc = cao */ string[] r1 = { "TRE", "SN", "TT" }; string[] r2 = { "TRE", "SC", "TB" }; string[] r3 = { "TN", "SN", "TB" }; string[] r4 = { "TN", "SC", "TC" }; string[] r5 = { "TG", "SN", "TB" }; string[] r6 = { "TG", "SC", "TC" }; luat.Add("r1", r1); luat.Add("r2", r2); luat.Add("r3", r3); luat.Add("r4", r4); luat.Add("r5", r5); luat.Add("r6", r6); } 3.4.3 Mã nguồn chương trình public partial class Form1 : Form { public Form1() { InitializeComponent(); < Khai báo biến lưu trữ hàm thuộc tập luật > < Hàm khởi tạo> private float hamthuoc(float x, float[] mang) { 49 float a = mang[0]; float b = mang[1]; float c = mang[2]; float d = mang[3]; if (x = b) return 1; else if (x = a) { if (b - a != 0) return ((x - a) / (b - a)); else return 1; } else if (x = c) { if (d - c != 0) return (d - x) / (d - c); else return 1; } else return 0; } private float timm(float t, float u, float v) { float z = Math.Abs(t - u); if (z != 0) return v * z; else return 0; } private float timtu(float h, float m1, float m2, float t, float u) { return (h / 6) * (3 * m2 * m2 - * m1 * m1 + u * u - t * t + * m2 * u + * m1 * t); } private float timmau(float h, float m1, float m2, float t, float u) { return (h / 2) * (2 * m2 - * m1 + t + u); } void timtumau(float[] mang, float x) { float a = mang[0]; 50 float b = mang[1]; float c = mang[2]; float d = mang[3]; float ka = timm(a, b, x); float m1 = a + ka; float kb = timm(c, d, x); float m2 = d - kb; float TU = timtu(x, m1, m2, ka, kb); tu.Add(TU); float MAU = timmau(x, m1, m2, ka, kb); mau.Add(MAU); } Hàm kiểm tra đầu vào tuổi nhiệt độ Nếu tuổi nhiệt độ nhỏ liệu vào khơng hợp lệ Nếu nhiệt độ bệnh nhân nhỏ nhiệt độ thể bình thường bệnh nhân khơng bị sốt Nếu tuổi bệnh nhân nhỏ so với độ tuổi tiêu chuẩn để uống thuốc bệnh nhân trẻ, khơng thể chuẩn đốn Nếu tuổi bệnh nhân q lớn so với độ tuổi tiêu chuẩn để uống thuốc bệnh nhân q tuổi, khơng thể chuẩn đốn Nếu nhiệt độ bệnh nhân cao so với nhiệt độ lớn chuẩn đốn khơng có liệu private Boolean KiemTraDauVao(float tuoi_in, float nhiet_do_in, object sender, EventArgs e) { if (nhiet_do_in < || tuoi_in < 0) { MessageBox.Show("Tuổi nhiệt độ phải số thực dương."); return false; } else if (nhiet_do_in < MIN_NHIET) { MessageBox.Show("Bệnh nhân không bị sốt, không cần uống thuốc."); return false; 51 } else if (tuoi_in < MIN_TUOI) { MessageBox.Show("Bệnh nhân q trẻ, khơng thể chuẩn đốn."); return false; } else if (tuoi_in > MAX_TUOI) { MessageBox.Show("Bệnh nhân q tuổi để chuẩn đốn, khơng có liệu."); return false; } else if (nhiet_do_in > MAX_NHIET) { MessageBox.Show("Nhiệt độ q cao, khơng có liệu."); return false; } return true; } Hàm xoá liệu nhập vào ô textbox private void btnCLear_Click(object sender, EventArgs e) { txtTuoi.Text = ""; txtNhietDo.Text = ""; txtLuongThuoc.Text = ""; } Hàm tính lượng thuốc cho bệnh nhân Kiểm tra biến đầu vào hợp lệ ta tiến hành tính ham thuoc ta khai báo biến nhe, cao, tre, tn, gia thêm vào hàm nhietDo doTuoi Tiếp theo khởi tạo biến dem chạy vòng lặp với điều kiện contro.MoveNext() so sánh biến với = để tìm số lớn biến dem++ lặp kết thúc Nếu biến dem trả kết khơng đủ liệu để chuẩn đốn, ngược lại ta vào tập luật để tính tử số mẫu số 52 Nếu mẫu số tử số bệnh khơng cần phải uống thuốc, ngược lại ta chia tứ số cho mẫu số tập luật để đưa thuốc cho bệnh nhân private void btnTinh_Click(object sender, EventArgs e) { float tuoi_input, nhietdo_input; try { tuoi_input = float.Parse(txtTuoi.Text.ToString()); nhietdo_input = float.Parse(txtNhietDo.Text.ToString()); if (KiemTraDauVao(tuoi_input, nhietdo_input, sender, e)) { nhietDo.Clear(); doTuoi.Clear(); //tinh ham thuoc float nhe = hamthuoc(nhietdo_input, nhiet["SN"]); if (nhe >= 0) nhietDo.Add("SN", nhe); float cao = hamthuoc(nhietdo_input, nhiet["SC"]); if (cao >= 0) nhietDo.Add("SC", cao); float tre = hamthuoc(tuoi_input, tuoi["TRE"]); if (tre >= 0) doTuoi.Add("TRE", tre); float tn = hamthuoc(tuoi_input, tuoi["TN"]); if (tn >= 0) doTuoi.Add("TN", tn); float gia = hamthuoc(tuoi_input, tuoi["TG"]); if (tn >= 0) doTuoi.Add("TG", gia); IDictionaryEnumerator contro = luat.GetEnumerator(); tap_suy_dien.Clear(); int dem = 0; while (contro.MoveNext()) { string[] noi_dung = luat[contro.Key.ToString()]; float = 2; if (min > doTuoi[noi_dung[0]] && doTuoi[noi_dung[0]] >= 0) { = doTuoi[noi_dung[0]]; } if (min > nhietDo[noi_dung[1]] && nhietDo[noi_dung[1]] >= 0) 53 { = nhietDo[noi_dung[1]]; } if (min > 0) { dem++; tap_suy_dien.Add(contro.Key.ToString(), min); } } if (dem == 0) { MessageBox.Show("Dữ liệu có khơng đủ để suy diễn."); } else { tu.Clear(); mau.Clear(); contro = tap_suy_dien.GetEnumerator(); while (contro.MoveNext()) { string luat_dung = contro.Key.ToString(); float ham_thuoc_luat = tap_suy_dien[luat_dung]; string[] noi_dung = luat[luat_dung]; string thuoc_gi = noi_dung[2]; timtumau(thuoc[thuoc_gi], ham_thuoc_luat); } float tu_so = 0, mau_so = 0; foreach (float i in tu) { tu_so += i; } foreach (float i in mau) { mau_so += i; } if (mau_so == 0) { MessageBox.Show("Bệnh nhân không cần phải uống thuốc."); } else if (tu_so == 0) { MessageBox.Show("Bệnh nhân không cần phải uống thuốc."); } else 54 { txtLuongThuoc.Text = (tu_so / mau_so).ToString(); } } } else { MessageBox.Show("Tuổi nhiệt độ không phù hợp."); } } catch (FormatException) { MessageBox.Show("Tuổi nhiệt độ phải số thực dương."); } catch (Exception a) { MessageBox.Show("Nhập sai định dạng có lỗi!" + a); } } } 3.4.4 Chạy chương trình Hình 3.2 Chạy chương trình ví dụ 55 KẾT LUẬN Việc đưa liều lượng thuốc tham khảo phù hợp với thể trạng bệnh nhân mục tiêu chương trình hướng đến, để từ ta tham khảo lấy thêm ý kiến từ chuyên gia để giúp việc điều trị đạt hiệu cao 56 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Trường Đại học Công nghiệp Hà Nội (2015), Giáo trình Hệ chuyên gia, NXB Khoa học Kỹ thuật [2] Bùi Công Cường (2001), N.D Phước, Hệ mờ, Mạng Nơron ứng dụng (Tuyển tập giảng), NXB Khoa học Kỹ thuật Tiếng Anh [3] I.H Kuo, et al, “An improved method for forecasting enrollments based on fuzzy time series and particle swarm optimization”, Expert systems with applications, 36 (2009) 6108–6117 [4] K Huarng , “Effective length of interval to improve forecasting in fuzzy time series”, Fuzzy set and Systems, (2001) vol 123, pp 387-394 [5] U Yolcu et Al, “A new approach for determining the length of intervals for fuzzy time series”, Applied Soft Computing , (2009) vol 9, pp 647-651 57 ... M= Từ luật ta có lượng thuốc cần cấp cho bệnh nhân 3.3.4 Áp dụng vào tốn cụ thể Bài tốn: Tính lượng thuốc cần cấp cho bệnh nhân 25 tuổi sốt 38,5 o C Suy diễn mờ 39 Suy luật mờ Theo luật r1: Theo... dự đoán lượng thuốc cho bệnh nhân, toán thực tiễn phù hợp cho nhóm áp dụng điều học vào thực tế Dự đốn lượng thuốc địi hỏi cần có chun gia( bác sĩ) tư vấn cụ thể liều lượng dựa thông số bệnh nhân, ... Sets): phương pháp luật thay tập singleton tâm cj 37 Chương 3: Xây dựng toán ứng dụng 3.1 Hệ chuyên gia toán dự đoán lượng thuốc cần cấp cho bệnh nhân Chẩn đốn bệnh y học nói chung có nhiều HCG

Ngày đăng: 12/02/2022, 11:48

TỪ KHÓA LIÊN QUAN

w