1. Trang chủ
  2. » Công Nghệ Thông Tin

Báo cáo chuẩn đoán bệnh tim

45 474 12

Đ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

Bài tập lớn môn hệ chuyên gia chuẩn đoán bệnh timHệ chuyên gia chuẩn đoán bệnh tim giúp người dùng xác định được những bệnh liên quan đến tim thông qua những triệu chứng mà người dùng cung cấp cho chương trình. Hệ thống sẽ dựa trên các triệu chứng của người bệnh thông qua hệ thống suy diễn để đưa ra kết quả chính xác nhất.

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 HỆ CHUYÊN GIA ĐỀ TÀI: XÂY DỰNG HỆ CHUYÊN GIA CHUẨN ĐOÁN BỆNH TIM GVHD: ThS Trần Hùng Cường Lớp: KTPM2 - K7 Nhóm: 01 Trần Ngọc Hải Dương Mạnh Hùng Hà Nội, tháng năm 2018 MỤC LỤC LỜI NÓI ĐẦU I Giới thiệu hệ chuyên gia Hệ chuyên gia gì? Đặc trưng ưu điểm hệ chuyên gia Sự phát triển công nghệ hệ chuyên gia Các lĩnh vực hệ chuyên gia .10 II Kiến trúc tổng quát hệ chuyên gia 13 Những thành phần hệ chuyên gia 13 Một số mơ hình kiến trúc hệ chun gia 15 Biểu diễn tri thức hệ chuyên gia .16 III Kỹ thuật suy diễn tiến hệ chuyên gia 21 IV Xây dựng hệ chuyên gia chuẩn đoán bệnh tim 27 Giới thiệu hệ chuyên gia chuẩn đoán bênh tim 27 Giao diện chương trình .34 Code mã chương trình .38 V Tổng kết .49 VI Tài liệu tham khảo 49 PHÂN CÔNG CÔNG VIỆC CHO CÁC THÀNH VIÊN TRONG NHÓM  Phần làm chung :  Toàn class folder Common (ConnectFile.cs, Event.cs, Process.cs, Rules.cs, TTLuat.cs)  Code form Chuẩn đoán  Làm word báo cáo Tên thành viên Lê Văn Hùng Cơng việc  Thiết kế form chuẩn đốn(TrangChu), TroGiup  Code thêm kiện  Code thêm tập luật  Thiết kế form Luat  Code sửa kiện  Code sửa tập luật  Thiết kế form DangNhap, SuKien  Code xóa kiện  Code xóa tập luật Nguyễn Thanh Tú Vũ Tiến Đạt  Phần làm riêng: LỜI NĨI ĐẦU Cơng nghệ thơng tin ngành khoa học ngày quan tâm sử dụng rộng rãi lĩnh vực sống Với ưu điểm mạnh ứng dụng nhiều sống cơng nghệ thơng tin giúp cho công việc quản lý dễ dàng Để quản lý công việc cụ thể quan người quản lý cần thực nhiều động tác Nhờ có phần mềm cơng việc trở nên đơn giản nhiều Năng lực máy tính ngày mạnh mẽ điều kiện thuận lợi cho trí tuệ nhân tạo: cho phép chương trình máy tính áp dụng thuật giải trí tuệ nhân tạo có khả phản ứng nhanh hiệu trước Ngày việc ứng dụng công nghệ kĩ thuật cao vào đời sống đòi hỏi thiết Một lĩnh vực trí tuệ nhân tạo, mà phần quan trọng Hệ chuyên gia Qua tập lớn này, chúng em xin gửi lời cảm ơn tới ThS.Lê Thị Thủy, cảm ơn cô cho chúng em có hội tìm hiểu góc kiến thức mới, hay bổ ích với tận tâm dạy dỗ chúng em, giúp chúng em hồn thiện đề tài Trong q trình tìm hiểu hồn thiện, đề tài khơng thể tránh khỏi sai sót, khuyết điểm Vì vậy, nhóm thực chúng em hy vọng nhận đánh giá đóng góp nhiệt tình từ phía thầy bạn để nhóm chúng em hoàn thiện Chúng em xin chân thành cảm ơn! I Giới thiệu hệ chuyên gia Hệ chuyên gia gì? Theo E.Feigenbaum: Hệ chuyên gia(Expert System) chương trình máy tính thơng minh sử dụng tri thức (Knowledge) thủ tục suy luận (inference procedures) để giải tốn tương đối khó khăn đòi hỏi chuyên gia giải Chuyên gia hệ thống tin học mơ (emulates) lực đoán (decision) hành động (making abilily) chuyên gia(con người).Hệ chuyên gia lĩnh vực ứng dụng trí tuệ nhân tạo (Artificial Intelligence) hình Hình 1.1 Một số lĩnh vực ứng dụng trí tuệ nhân tạo Hệ chuyên gia sử dụng tri thức chuyên gia để giải vấn đề(bài toán) khác thuộc lĩnh vực Tri thức (knowledge) hệ chun gia phản ánh tinh thơng tích tụ từ sách ,tạp chí ,từ chuyên gia hay nhà bác học Các thuật ngữ hệ chuyên gia ,hệ thống dựa tri thức (knowledge-based system) hay hệ chuyên gia dựa tri thức (knowledge-based expert system) thường có nghĩa Một hệ chuyên gia bao gồm ba thành phần sở tri thức (knowledge based), máy suy diễn hay mô tơ suy diễn (inference engine),và hệ thống giao tiếp với người sử dụng (user interface).Cơ sở tri thức chứa tri thức để từ ,máy suy diễn tạo câu trả lời cho người sử dụng thông qua hệ thống giao tiếp Người sử dung(user) cung cấp kiện (facts) biết ,đã có thật hay thơng tin có ích cho hệ chun gia nhận câu trả lời lời khuyên hay gợi ý đắn(expertise) Hoạt động hệ chuyên gia dựa tri thức minh họa sau: Hình 1.2 Hoạt động hệ chuyên gia Mỗi hệ chuyên gia đặc trưng cho lĩnh vực vấn đề (problem domain) đó,như y học,tài chính,khoa học hay công nghệ,vv…,mà cho lĩnh vực vấn đề Tri thức chuyên gia để giải vấn đề đặc trưng gọi lĩnh vực tri thức(knowledge domain) Hình 1.3 Quan hệ lĩnh vực vấn đề lĩnh vực tri thức 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ị Chú ý lĩnh vực tri thức hoàn toàn nằm lĩnh vực vấn đề Phần bên ngồi lĩnh vực tri thức nói lên khơng phải tri thức cho vấn đề Tùy theo yêu cầu người sử dụng mà có nhiều cách nhìn nhận khác hệ chuyên gia Loại người sử dụng Vấn đề đặt Người quản trị Tơi dùng để làm gì? Kỹ thuật viên Làm cách để tơi vận hành tốt Nhà nghiên cứu Làm để tơi mở rơng nó? Người sử dụng Nó giúp tơi gì? Nó có rắc rối tốn khơng? Nó có đáng tin cậy khơng? Đặc trưng ưu điểm hệ chuyên gia Có bốn đặc trưng hệ chuyên gia:  Hiệu cao (high performance) Khả trả lời mức độ tinh thông cao so với chuyên gia lĩnh vực  Thời gian trả lời thỏa đáng (adequate response time) Thời gian trả lời hợp lý, nhanh so với chuyên gia để đến định Hệ chuyên gia hệ thống thời gian thực(real time system )  Độ tin cậy cao ( good reliability) Không thể xảy cố giảm sút độ tin cậy sử dụng  Dễ hiểu (understandable).Hệ chuyên gia giải thích bước suy luận cách dễ hiểu qn ,khơng giống cách trả lời bí ẩn hộp đen(black box) Những ưu điểm hệ chuyên gia:  Phổ cập(increased availability) Là sản phẩm chuyên gia ,được phát triển không ngừng với hiệu sử dụng không phủ nhận  Giảm giá thành(reduced cost)  Giảm rủi ro (reduced dangers).Giúp người tránh mơi trường rủi ro nguy hiểm  Tính thường trực (permanance) Bất kể lúc khai thác sử dụng, người mệt mỏi ,nghỉ ngơi hay vắng mặt  Đa lĩnh vực ( multiple expertise ).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 ( increased relialility).Luôn đảm bảo độ tin cậy khai thác  Khả giảng giải (explanation ).Câu trả lời mức độ tinh thông giảng giải rõ ràng,chi tiết ,dễ hiểu  Khả trả lời (fast reponse).Trả lời theo thời gian thực,khách quan  Tính ổn định,suy luận có lý đầy đủ lúc nơi (steady, une motional, and complete response at all times)  Trợ giúp thông minh người hướng dẫn (intelligent – tutor)  Có thể truy cập sở liêu thông minh (intelligent database ) Sự phát triển công nghệ hệ chuyên gia Sau số kiện quan trọng lịch phát triển công nghệ hệ chuyên gia (expert system technology) Năm 1943 1954 1956 Các kiện Dịch vụ bưu điện, mơ hình neural Mc Culloch and Pitts Model Thuật toán Markov điều kiện thực thi luật Hội thảo Dartmouth,lý luận logic,tìm kiếm nghiệm suy (heuristic search),thống thuật ngữ trí tuệ nhân tạo 1957 1958 1962 1965 1968 1969 1970 1971 1973 1975 1976 1977 1978 1979 1980 1982 1983 1985 Rosenblatt phát minh khả nhận thức,Newell,Shaw Simon đề suất giải toán tổng quát (GPS: Genenal Problem Solver ) Mc Carthy đề xuất ngôn ngữ trí tuệ nhân tạo LISA( LISA AI language) Nguyên lý Rosenblatt’s chức thần kinh nhận thức (Rosenblatt’s Principles of Neurodynamicdynamics on Perceptions) Phương pháp hợp giải Robinson.Ứng dụng logic mờ (fuzzy logic) suy luận đối tượng mờ (fuzzy object) Zadeh.Xây dựng hệ chuyên gia nha khoa DENDRAL (Feigenbaum,Buchanan,et.al) Mạng ngữ nghĩa (semantic nets), mơ hình nhớ kết hợp (asociative memory model) Quillian Hệ chuyên gia toán học MACSYMA (Martin and Moses) Ứng dụng ngôn ngữ PROLOG(Colmerauser,Roussell,et,al.) Hệ chuyên gia HEARSAY I nhận dạng tiếng nói (speech recognition) Xây dựng luật giải toán người (Human Problem Solving ppularizes rules (Newell abd Simon) Hệ chuyên gia MYCIN chuẩn trị y học (Shortli ffe,et,al.) Lý thuyết khung (frames),biểu diễn tri thức (knowledge reresentation ) (Mínky) Tốn nhân tạo (AM: Artificial Mathematician) (Lenat).Lý thuyết DempsterShafer tính hiển nhiên lập luận khơng chắn (Dempster-Shafer theory of Evidence for reason ubder uncertainty).Ứng dụng hệ chuyên gia PROSPECTOR khai thác hầm mỏ (Duda,Har) Sử dụng ngôn ngữ chuyên gia OPS( OPS expert system shell ) hệ chuyên gia XCON/R1 (Forgy) Hệ chuyên gia XCON/R1 (McDermott ,DEC) để bảo trì hệ thống máy tính DEC (DEC computer systems) Thuật toán mạng so khớp nhanh (rete algorithm for fast pattern matching) Forgy; thương mại hóa ứng dụng trí tuệ nhân tạo Ký hiệu học (symbolics), Xây dựng máy LISP (LISP machines) từ LMI Hệ chuyên gia toán học (SMP math system ) ; mạng nơ-ron Hopfield (Hopfield neural net ); dự án xây dựng máy tính thơng minh hệ nhật (Japanese Fifth Generation Project to develop intelligent computers) Bộ công cụ phục vụ hệ chuyên gia KEE (KEE expert system tool ) (intrlli Corp ) Bộ công cụ phục vụ hệ chuyên gia CLIPS (CLIPS expert system tool (NASA) Các lĩnh vực hệ chuyên gia Cho đến nay, 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 hệ chun gia đượcsử dụng công ty, tổ chức quân mà khơng cơng bố lý bảo mật Bảng liệt kê số lĩnh vực ứng dụng diện rộng hệ chuyên gia Lĩnh vực Cấu hình(Configuration) Ứng dụng diện rộng Tập hợp thích đáng thành phần Chẩn đoán (Diagnosis) hệ thống theo cách riêng Lập luận dựa chứng quan Truyền đạt (Instruction) sát Dạy học kiểu thơng minh cho sinh viên hỏi (why?), (how?) (what if?) giống Giải thích(Interpretation) hỏi người thầy giáo Giải thích liệu thu nhận Kiểm tra (Monitoring) So sánh liệu thu lượm với liệu Lập kế hoạch(Planning) Dự đoán (Prognosis) Chữa trị (Remedy) Điều khiển (Control) chuyên môn để đánh giá hiệu Lập kế hoạch sản xuất theo yêu cầu Dự đốn hậu từ tình xảy Chỉ định cách thụ lý vấn đề Điều khiển q 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ị 10  Giao diện  Giao diện chuẩn đốn bệnh 31  Giao diện thực chuẩn đoán bệnh  Giao diện đăng nhập vào hệ thống 32  Giao diện quản lý kiện  Giao diện quản lý tập luật 33  Giao diện giới thiệu chương trình Code mã chương trình  Code class Process using using using using using using using using System; System.Collections.Generic; System.Linq; System.Text; System.Threading.Tasks; System.IO; System.Data; System.Text.RegularExpressions; namespace ChuanDoanBenhTim.Common { class Process { #region Field /// /// khai báo RULE dạng bảng,Bảng RULE có cột id (R0,R1,R2 .) luật suy diễn (vd: K2 ^ D1 ^ L1 ^ H5 -> KL1, ) /// 34 protected DataTable RULE; public string view; protected List GT; /// /// khai báo KL_table dạng bảng, bảng KL_table gồm cột chứa kết luận (K1,K2,K3 ) /// private DataTable KL_table; protected DataTable RULE1 { get { return RULE; } set { RULE = value; } } public List GT1 { get { return GT; } set { GT = value; } } public DataTable KL_table1 { get { return KL_table; } set { KL_table = value; } } public Process() { GT = new List(); RULE = new DataTable(); KL_table = new DataTable(); } public Process(DataTable rule_table) { RULE = rule_table; } public Process(List gt, DataTable kl, DataTable rule_table) { RULE = rule_table; GT = gt; KL_table = kl; } #endregion Field #region Method public List get_rule() { List rules = new List(); for (int i = 0; i < RULE.Rows.Count; i++) { 35 Rules rule = new Rules(); string str = RULE.Rows[i][1].ToString(); Regex RE = new Regex(@" -> "); string[] r; r = RE.Split(trim(str)); rule.Index = i; Regex RE1 = new Regex(@" \^ "); rule.Left.AddRange(RE1.Split(r[0])); Regex RE2 = new Regex(@" "); rule.Right.AddRange(RE2.Split(r[1])); rule.Used = false; rules.Add(rule); } return rules; } /// /// hàm lấy danh sách tập kết luận bảng KL_table /// /// public List get_KL() { List KL = new List(); int i = 0; while (i < KL_table.Rows.Count) { KL.Add(KL_table.Rows[i][0].ToString()); i++; } return KL; } /// /// hàm lọc luật khả dụng /// /// danh sách luật /// danh sách kiện tập trung gian /// public List LOC(List rules, List TG) { bool chk; List LOC_rules = new List(); for (int i = 0; i < rules.Count; i++) { if (rules[i].Used == false) { chk = true; for (int j = 0; j < rules[i].Left.Count; j++) if (TG.Contains(rules[i].Left[j].ToString())) chk = chk && true; else chk = chk && false; if (chk) { LOC_rules.Add(rules[i]); } } } 36 return LOC_rules; } /// /// hàm lấy luật để thực việc suy diễn /// /// danh sách kết luận tập SAT /// public Rules get_one_rule(List SAT) { int i = 0; while (i < SAT.Count) { if (SAT[i].Used == false) { SAT[i].Used = true; break; } i++; } return SAT[i]; } /// /// hàm bổ sung vế phải luật vào tập cuối tập TG /// /// /// public void TG_union_right(Rules rule, List TG) { for (int i = 0; i < rule.Right.Count; i++) if (!TG.Contains(rule.Right[i])) TG.Add(rule.Right[i]); } /// /// hàm kiểm tra tập SAT /// /// danh sách tập SAT /// public bool check_SAT(List SAT) { if (SAT.Count == 0) return false; for (int i = 0; i < SAT.Count; i++) if (!SAT[i].Used) return true; return false; } /// /// hàm kiểm tra tập TG có chứa KL hay không /// /// danh sách tập TG /// Danh sách tập KL /// public int check_KL(List TG, List KL) { for (int i = 0; i < KL.Count; i++) if (TG.Contains(KL[i])) return i; return -1; 37 } public List forward_reasoning() { List kq = new List(); List KL = new List(); List SAT = new List(); List rules = new List(); List TG = new List(); rules = get_rule(); KL = get_KL(); TG = GT; SAT = LOC(rules, TG); int index = 1; view = bieudien(0, TG, SAT); while (check_SAT(SAT)) { TG_union_right(get_one_rule(SAT), TG); SAT.AddRange(LOC(rules, TG)); view += bieudien(index, TG, SAT); index++; } view += bieudien_KL(index, TG, SAT); for (int i = 0; i < KL.Count; i++) if (TG.Contains(KL[i])) kq.Add(i); } return kq; public string trim(string str) { Regex RE = new Regex(@"\s+"); string str_trim = RE.Replace(str, " "); return str_trim; } public string bieudien(int index, List TG, List SAT) { string str, strTG; if (index == 0) { str = null; str = "Bắt đầu:\n"; strTG = "\tTG = GT = { "; } else { str = " \n"; str += "Lần " + index.ToString() + ":\n"; } strTG = "\tTG = { "; for (int i = 0; i < TG.Count; i++) { 38 if (i != 0) strTG += ", "; strTG += TG[i].ToString() + " "; } strTG += "}\n"; str += strTG; List d = new List(); for (int i = 0; i < SAT.Count; i++) if (SAT[i].Used == false && !d.Contains(SAT[i].Index)) d.Add(SAT[i].Index); if (d.Count > 0) { string strSAT = "\tSAT = LOC(R,TG) = { "; for (int i = 0; i < d.Count; i++) { if (i != 0) strSAT += ", "; strSAT += "r" + d[i].ToString() + " "; } strSAT += "}\n"; str += strSAT; str += "\tLấy luật R" + d[0].ToString() + " SAT\n"; str += "\t=> TG = TG U { "; string strKL = null; int vt = 0; for (int i = 0; i < SAT.Count; i++) if (SAT[i].Used == false) { vt = i; break; } for (int i = 0; i < SAT[vt].Right.Count; i++) { if (i != 0) strKL += ", "; strKL += SAT[vt].Right[i] + " "; } str += strKL + "} = {"; strTG = null; for (int i = 0; i < TG.Count; i++) { if (i != 0) strTG += ", "; strTG += TG[i].ToString() + " "; } strTG += ", " + strKL; str += strTG; str += "}\n"; } else { str += "\tSAT={ø} => Dừng\n"; } } return str; 39 public string bieudien_KL(int index, List TG, List SAT) { List KL = new List(); KL = get_KL(); string str = " -\n"; str += "Kết thúc:\n"; string strKL = "\tKL = { "; int d = 0; for (int i = 0; i < KL.Count; i++) if (TG.Contains(KL[i])) { if (d != 0) strKL += ", "; strKL = string.Concat(strKL, KL[i] + " "); d++; } str += strKL + "}\n"; return str; } } #endregion Method }  Button chuẩn đoán private void OnBtnChuanDoanClick(object sender, EventArgs e) { if (lstTrieuChung.Items.Count == 0) { MessageBox.Show("Khơng có thơng tin triệu chứng, khơng thể chuẩn đốn bệnh!", "Thơng báo", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { GT = new List(); lstKetQua.Items.Clear(); Regex RE = new Regex(": "); for (int i = 0; i < lstTrieuChung.Items.Count; i++) { string[] r; r = RE.Split(lstTrieuChung.Items[i].ToString()); GT.Add(r[0]); } ///XuLy(List gt, DataTable kl, DataTable rule_table) Process xl = new Process(GT, kn.DocFile(path + "MoTaKetLuan.txt"), kn.DocFile(path + "Rules.txt")); kq = new List(); kq.AddRange(xl.forward_reasoning()); if (kq.Count != 0) { for (int i = 0; i < kq.Count; i++) 40 { lstKetQua.Items.Add(kn.DocFile(path + "MoTaKetLuan.txt").Rows[kq[i]][1]); } } } else { lstKetQua.Items.Add("Các triệu chứng chưa đủ để kết luận bệnh!"); lstKetQua.Items.Add("\t" + "==> Không thể chuẩn đoán bệnh!"); } view = xl.view; rtbGiaiThich.Text = view; }  Hàm thêm kiện public void GhiFile() { FileStream fs = new FileStream(path + "Rules.txt", FileMode.Append, FileAccess.Write); StreamWriter stw = new StreamWriter(fs, Encoding.UTF8); stw.WriteLine(txtLuatSo.Text.Trim() + ": " + txtVeTrai.Text.Trim() + " -> " + txtVePhai.Text.Trim()); stw.Flush(); stw.Close(); fs.Close(); }  Hàm sửa kiện { public void SuaFile() StreamReader sr = File.OpenText("Rules.txt"); string[] tam = new string[count_Rule]; TTLuat ttLuat = new TTLuat(); ttLuat._ruleName = txtLuatSo.Text; ttLuat._veTrai = txtVeTrai.Text; ttLuat._vePhai = txtVePhai.Text; for (int i = 0; i < count_Rule; i++) { if (R[i]._ruleName == ttLuat._ruleName) { R[i] = ttLuat; tam[i] = txtLuatSo.Text.Trim() + ": " + txtVeTrai.Text.Trim() + " -> " + txtVePhai.Text.Trim(); sr.ReadLine(); } else tam[i] = sr.ReadLine(); } sr.Close(); FileStream outtream = new FileStream("Rules.txt", FileMode.Create); StreamWriter sw = new StreamWriter(outtream, Encoding.UTF8); 41 for (int i = 0; i < count_Rule; i++) { sw.WriteLine(tam[i]); } sw.Close(); }  Hàm xóa kiện public void XoaSK() { StreamReader sr = File.OpenText("TrieuChung.txt"); string[] tam = new string[count_node]; Event Ev = new Event(); Ev._suKien = txtID.Text; Ev._nguNghia = txtMoTa.Text; for (int i = 0; i < count_node; i++) { if (E[i]._suKien == Ev._suKien) { DeleteSK(i); i ; } else { tam[i] = sr.ReadLine(); } } sr.Close(); FileStream fs = new FileStream("TrieuChung.txt", FileMode.Create); StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); for (int i = 0; i < count_node; i++) { sw.WriteLine(tam[i]); } sw.Close(); txtID.Clear(); txtMoTa.Clear(); }  Hàm thêm luật public void GhiFile() { FileStream fs = new FileStream(path + "Rules.txt", FileMode.Append, FileAccess.Write); StreamWriter stw = new StreamWriter(fs, Encoding.UTF8); stw.WriteLine(txtLuatSo.Text.Trim() + ": " + txtVeTrai.Text.Trim() + " -> " + txtVePhai.Text.Trim()); stw.Flush(); stw.Close(); fs.Close(); } 42  Hàm sửa luật public void SuaFile() { StreamReader sr = File.OpenText("Rules.txt"); string[] tam = new string[count_Rule]; TTLuat ttLuat = new TTLuat(); ttLuat._ruleName = txtLuatSo.Text; ttLuat._veTrai = txtVeTrai.Text; ttLuat._vePhai = txtVePhai.Text; for (int i = 0; i < count_Rule; i++) { if (R[i]._ruleName == ttLuat._ruleName) { R[i] = ttLuat; tam[i] = txtLuatSo.Text.Trim() + ": " + txtVeTrai.Text.Trim() + " -> " + txtVePhai.Text.Trim(); sr.ReadLine(); } else tam[i] = sr.ReadLine(); } sr.Close(); FileStream outtream = new FileStream("Rules.txt", FileMode.Create); StreamWriter sw = new StreamWriter(outtream, Encoding.UTF8); for (int i = 0; i < count_Rule; i++) { sw.WriteLine(tam[i]); } sw.Close(); }  Hàm xóa luật public void XoaFile() { StreamReader sr = File.OpenText("Rules.txt"); string[] tam = new string[count_Rule]; TTLuat ttLuat = new TTLuat(); ttLuat._ruleName = txtLuatSo.Text; ttLuat._vePhai = txtVePhai.Text; ttLuat._veTrai = txtVeTrai.Text; for (int i = 0; i < count_Rule; i++) { if (R[i]._ruleName == ttLuat._ruleName) { DeleteRules(i); i ; } else tam[i] = sr.ReadLine(); } sr.Close(); FileStream outtream = new FileStream("Rules.txt", FileMode.Create); StreamWriter sw = new StreamWriter(outtream, Encoding.UTF8); for (int i = 0; i < count_Rule; i++) 43 { sw.WriteLine(tam[i]); } sw.Close(); } 44 IV Tổng kết Sau khoảng thời gian, với nỗ lực cố gắng tìm tòi giúp đỡ tận tình Lê Thị Thủy, nhóm chúng em hồn thành xong chương trình “Chuẩn đốn bệnh tim” Về chức chương trình đáp ứng nhu cầu người sử dụng Chương trình xây dựng tương đối hoàn thiện, giao diện thân thiện với người sử dụng tính tốn để nâng cấp cần thiết Nhóm mong nhận đóng góp bạn để nhóm em hồn thiện tối đa chương trình nhằm áp sát thực tế nhất, hiệu phù hợp Chúng em xin chân thành cảm ơn! V Tài liệu tham khảo - Trần Hùng Cường-Nguyễn Phương Nga, Trí tuệ nhân tạo, Đại học Cơng nghiệp Hà Nội Nhà xuất Giáo dục Việt Nam Đỗ Trung Tuấn Hệ chuyên gia Nhà xuất Giáo dục, 1999 http://123doc.vn/document/16792-thuat-toan-giai-bai-toan-suy-dien-tien.htm http://hoidapit.com.vn/Questions/ViewQuestions/3766/c-thuat-toan-suy-dien-tien-tronghe-chuyen-gia-tri-tue-nhan-tao-trong-c.html https://bienuit.wordpress.com/2013/03/09/giai-bai-toan-tam-giac-bang-mo-hinh-he-luatdan-dung-thuat-giai-suy-dien-tien-va-suy-dien-lui-phan-cuoi-demo/ http://www.wattpad.com/8953802-%C4%91%E1%BA%B7c-tr%C6%B0ng-v%C3%A0%C6%B0u-%C4%91i%E1%BB%83m-c%E1%BB%A7a-h%E1%BB%87-chuy %C3%AAn-gia-suy-di%E1%BB%85n 45

Ngày đăng: 04/05/2018, 21:12

Xem thêm:

Mục lục

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

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

    3. Sự phát triển của công nghệ hệ chuyên gia

    4. Các lĩnh vực trong hệ chuyên gia

    I. Kiến trúc tổng quát của hệ chuyên gia

    1. Những thành phần cơ bản của một hệ chuyên gia

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

    3. Biểu diễn tri thức trong các hệ chuyên gia

    II. Kỹ thuật suy diễn tiến trong hệ chuyên gia

    III. Xây dựng hệ chuyên gia chuẩn đoán bệnh tim

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w