Tài liệu Báo cáo bài tập lớn hệ chuyên gia đề tài tư vấn tử vi

  • Số trang: 28 |
  • Loại file: DOC |
  • Lượt xem: 459 |
  • Lượt tải: 0
thucaothi349968

Tham gia: 25/12/2016

Mô tả:

Báo cáo bài tập lớn hệ chuyên gia đề tài tư vấn tử vi
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN œ Đề Tài: Tư vấn tử vi Giảng viên hướng dẫn: ThS. Nguyễn Thanh Hùng Lớp: Khoa Học Máy Tính 1 – K5 Nhóm thực hiện: Nhóm 8 Hà Nội, tháng 11 năm 2012 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... ............................................................................................. ............................................ .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .................................. .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... ............................................................................................................ Hà Nội, ngày tháng năm 2013 Giảng viên Th.S Trần Thanh Hùng BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 MỤC LỤC NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.......................................................................2 MỤC LỤC................................................................................................................................3 Giới thiệu sơ lược nội dung sẽ trình bày:................................................................................3 LỜI NÓI ĐẦU..........................................................................................................................4 BẢNG PHÂN CÔNG CÔNG VIỆC TRONG NHÓM.........................................................5 NỘI DUNG CHI TIẾT ĐỀ TÀI...............................................................................................6 I. GIỚI THIỆU ĐỀ TÀI VÀ GIAI ĐOẠN THU THẬP TRI THỨC CHUYÊN GIA..6 1) Trình bày tên đề tài và mục đích đề tài...................................................................7 Tên của đề tài:...................................................................................................................7 Mục đích đề tài:................................................................................................................7 Các yêu cầu xây dựng:.....................................................................................................7 2) Phát biểu bài toán.....................................................................................................7 a) Định nghĩa các “Số con người”............................................................................8 3) Xây dựng cơ sở tri thức............................................................................................9 a) Quy ước..................................................................................................................9 b) Sơ đồ suy diễn và các luật...................................................................................11 II. PHÂN TÍCH BÀI TOÁN..............................................................................................12 1) Mô tả bài toán..........................................................................................................12 2) Hướng giải quyết.....................................................................................................12 3) Cấu trúc dữ liệu.......................................................................................................13 a) Biểu diễn các sự kiện...........................................................................................13 b) Biểu diễn các luật.................................................................................................14 c) Biểu diễn danh sách các sự kiện.........................................................................15 d) Biểu diễn danh sách các luật..............................................................................16 4) Thuật toán................................................................................................................16 III. THIẾT KẾ CHƯƠNG TRÌNH DEMO....................................................................19 1) Ngôn ngữ và các công cụ........................................................................................19 2) Cài đặt......................................................................................................................20 3) Một số giao diện chính và kết quả chạy chương trình.........................................20 4) Đánh giá và hướng phát triển................................................................................24 Hướng phát triển của đề tài:..........................................................................................25 MỘT SỐ TÀI LIỆU THAM KHẢO....................................................................................26 LỜI KẾT.................................................................................................................................27 Giới thiệu sơ lược nội dung sẽ trình bày: Trang 4/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 Cấu trúc đề tài gồm 3 mục chính được đánh số I đến III, đi từ việc giới thiệu đề tài và mục đích đề tài đến hướng giải quyết chính và cuối cùng là chi tiết cài đặt chương trình Demo của nhóm. Ngoài ra phần đầu đề tài là “giới thiệu sơ lược nội dung đề tài” và phần cuối là “Một số tài liệu tham khảo” được nhóm sử dụng. Một nội dung quan trong của đề tài là phần thuật toán sử dụng và chi tiết cài đặt thuật toán của nhóm. Đề tài với mục đích demo là chính giúp chúng ta hiểu được vai trò quan trọng của việc xây dựng các hệ chuyên gia, và công dụng hữu ích của chúng cho con người, hiểu được các bước cơ bản để hiện thực hóa một hệ chuyên gia. Sau đây là nội dung chi tiết của đề tài, mọi ý kiến đóng góp xin gửi về nhóm thực hiện Nhóm 8 Lớp KHMT1 - K5 Trường ĐH Công Nghiệp Hà Nội. LỜI NÓI ĐẦU Ngày nay, công nghệ thông tin là lĩnh vực không thể thiếu trong đời sống con người. Hầu như trong mọi ngành, mọi lĩnh vực công nghệ thông tin đều có mặt. Các sản phẩm phần mền tạo ra đã phục vụ và đem lại không ít lợi ích về mặt kinh tế như các phần mền quản lý, thương mại điện tử, các dịch vụ mạng truyền thống v.v…. Đặc biệt các sản phẩm của công nghệ thông tin ngày nay còn đóng vai trò như một chuyên gia trong mọi lĩnh vực, nó đã giải quyết được Trang 5/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 rất nhiều vấn đề thường ngày mà người bình thường không thể làm được. Các hệ chuyên gia này chẩn đoán hay đưa ra các quyết định từ tập các giả thiết đầu vào. Trong cuộc sống hằng ngày, có rất nhiều người muốn biết trước số mình sau này sướng hay khổ, giàu hay nghèo hoặc một số người dùng bói toán để giảm stress... Cho nên yêu cầu của con người chúng ta cần có một hệ chuyên gia giúp họ dự đoán tương lai của mình như thế nào. Cũng xuất phát từ yêu cầu đó, chúng tôi chọn đề tài “Tư Vấn Tử Vi”. Mọi sự đóng góp ý kiến xin liên hệ nhóm 8, lớp KHMT1 - K5, trường ĐH Công Nghiệp Hà Nội. Nhóm SV thực hiện: Nhóm 8 lớp KHMT1 - K5 Đào Ngọc Luân Phùng Minh Tuân Vũ Hoàng Tuấn Hà Nội, ngày 23 tháng 8 năm 2013 BẢNG PHÂN CÔNG CÔNG VIỆC TRONG NHÓM STT Họ và tên Công việc Thời gian Tiến độ 1 Đào Ngọc Luân I đến III 07/2013 100% 2 Phùng Minh Tuân I đến III 07/2013 100% 3 Vũ Hoàng Tuấn I đến III 07/2013 100% Trang 6/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 Trong thời gian thực hiện đề tài, nhóm đã họp mặt nhiều lần để bàn luận và góp ý lẫn nhau giúp hoàn thiện đề tài. Các cuộc họp của nhóm xoay quanh các mục đích nghiên cứu của đề tài và bàn luận về phương pháp từ việc thu thập tài liệu đến việc nên lấy phần nào của tài liệu đưa vào bài… Chúng em xin trân thành cảm ơn sự giúp đỡ nhiệt tình từ phía các thầy cô giáo khoa Công Nghệ Thông Tin trường ĐH Công Nghiệp Hà Nội đã giúp đỡ chúng em trong việc cung cấp tài liệu và hướng dẫn đọc hiểu tài liệu và gỡ bỏ những vướng mắc gặp phải. Chúng em cũng xin trân thành cảm ơn thầy Trần Thanh Hùng đã tận tình chỉ bảo, giúp đỡ chúng em để chúng em không đi sai hướng và hoàn thành tốt đề tài. Hoạt động của nhóm theo hướng tất cả các thành viên cùng nghiên cứu chung các vấn đề khó, khi có vướng mắc hay phát hiện điều mới thì cùng nhau tranh luận để tìm ra hướng giải quyết thích hợp. Kết quả nhận được sau các cuộc họp của nhóm là sự thành công trong công việc của nhóm. Nhóm đã hoàn thiện việc xây dựng mục đích đề tài, đề cương vắn tắt các nội dung cần triển khai và bàn giao công việc cụ thể cho các thành viên. Bằng sự lỗ lực thật sự của bản thân các thành viên trong nhóm cuối cùng nhóm đã hoàn thiện đề tài tốt đẹp. NỘI DUNG CHI TIẾT ĐỀ TÀI I. GIỚI THIỆU ĐỀ TÀI VÀ GIAI ĐOẠN THU THẬP TRI THỨC CHUYÊN GIA 1) Trình bày tên đề tài và mục đích đề tài Trang 7/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 Tên của đề tài: Xây dựng demo shệ chuyên gia Tư vấn tử vi. Mục đích đề tài: Hệ chuyên gia xây dựng được phải có khả năng dự đoán tương lai của một người nào đo Các yêu cầu xây dựng: Cần dự đoán tương lại và hiện tại một cách chuẩn xác , giải thích rõ ràng, giao diện cần có tính hướng người sử dụng … 2) Phát biểu bài toán Bài toán là một hệ chuyên gia được xây dựng nhằm dự đoán tương lai của người sử dụng nó hoặc nó có thể giúp con người phần nào giảm đi áp lực khi gặp một vấn đề khó giải quyết nào đó. Với mong muốn một phần nào đó có thể tư vấn cho người sử dụng hệ thống biết tương lai mình như thế nào, số mình sướng hay khổ… , chương trình có thể đưa ra các lời khuyên hoặc nhận xét về con người bạn .Người sử dụng chỉ cần trả lời đúng hoặc sai các câu hỏi về nhận dạng, hoặc dấu vết trên người của mình trên hệ thống và từ đó hệ thống sẽ đưa ra các nhận xét hoặc lời khuyên cho người dùng Ví dụ: người dùng sẽ nhận được câu dự đoán là “số bạn xung túc” nếu tất cả các đặc điểm sau: dáng vóc cao, nốt ruồi ở mặt, bàn tay dài,trán cao, trán rộng. đều được người dùng cung cấp là “True” (Đúng). Để làm được các yêu cầu trên thì hệ thống cần có một cơ sở tri thức về các triệu chứng (hay các sự kiện cụ thể được thu thập từ người dùng), các luật suy diễn cụ thể cho tử vi dựa trên các đặc điểm về hình dáng được cung Trang 8/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 cấp. Với tính chất demo là chính nhóm chúng em xây dựng hệ chuyên gia để dự đoán 9 loại “số” con người khác nhau mà khi các thầy bói thường hay phán là : “số đào hoa”, số phát đạt”, sô sung túc”, “số lận đận”, số bình an”, số nghèo khổ”, “số thọ lâu”, số phú quý”, “bệnh thủy đậu”. Tương ứng với các “số” đó thì có các đặc điểm về hình dáng con người tương ứng. Sau đây sẽ là định nghĩa chi tiết về các “số của con người”, các đặc điểm hình dáng của con người hay gặp và các nhận xét mà chương trình đưa ra. a) Định nghĩa các “Số con người” - Một người có thể được gọi là “Số sung túc” khi người đó có những đặc điểm hình dáng như: “dáng vóc cao”, “nốt ruồi ở mặt”, “Bàn tay dài”, “trán cao”, “trán rộng”. - Một người có thể được gọi là “Số đào hoa” khi người đó có những đặc điểm hình dáng như: “dáng vóc cao”, “nốt ruồi ở mặt”, “nốt ruồi ở tay”, “bàn tay vuông”, “bàn tay ít đường chỉ”. - Một người có thể được gọi là “Số nghèo khổ” khi người đó có những đặc điểm hình dáng như: “có mạt trái xoan”, “gò má cao”, “bàn tay ngắn” , “bàn tay vuông”.. - Một người có thể được gọi là “Số lận đận” khi người đó có những đặc điểm hình dáng như: Có mặt trái xoan”, “gò má thấp”, “trán cao”, “trán rộng”. - Một người có thể được gọi là “Số thọ” khi người đó có những đặc điểm hình dáng như: “dáng vóc cao”, “nốt ruồi ở mặt”, “nốt ruồi ở chân”, “cổ tròn”,“gò má cao””. Trang 9/ 28 BTL Nhập Môn Hệ Chuyên Gia - Nhóm 8 Lớp KHMT1-K5 Một người có thể được gọi là “Số bình an” khi người đó có những đặc điểm hình dáng như: “Dáng vóc cao”, “nốt ruồi ở tay”, “bàn tay vuông”. - Một người có thể được gọi là “Số tài giỏi” khi người đó có những đặc điểm hình dáng như: “Dáng vóc cao”, “trán cao”, “bàn tay dài”. - Một người có thể được gọi là “Số phát đạt” khi người đó có những đặc điểm hình dáng như: “trán rộng”, “cổ tròn”, “nốt ruồi ở mặt”, “bàn tay dài”. - Một người bị coi là mắc “bệnh thủy đậu” khi người đó có các triệu chứng như: “sốt”, “da nổi đỏ”, “mụn nước trên da”. 3) Xây dựng cơ sở tri thức a) Quy ước - Quy ước “Số con người”: o “Số đào hoa” : đặt là ‘1’ o “Số phát đạt”: đặt là ‘2’ o “Số sung túc”: đặt là ‘3’ o “Số lận đận ”: đặt là ‘4’ o “Số bình an”: đặt là ‘5’ o “Số nghèo khổ”: đặt là ‘6’ o “Số thọ”: đặt là ‘7’ Trang 10/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 o “Số phú quý”: đặt là ‘8’ o “Số tài giỏi”: đặt là ‘9’ - Quy ước các đặc điểm hình dạng: o “dáng vóc cao”: đặt là ‘a’ o “nốt ruồi ở mặt”: đặt là ‘b’ o “nốt ruồi ở tay”: đặt là ‘d’ o “nốt ruồi ở chân”: đặt là ‘e’ o “nốt ruồi ở vai”: đặt là ‘f’ o “bàn tay ngắn”: đặt là ‘g’ o “Bàn tay dài”: đặt là ‘h’ o “Bàn tay vuông”: đặt là ‘i’ o “Bàn tay ít đường chỉ ”: đặt là ‘j’ o “trán cao”: đặt là ‘k’ o “trán thấp”: đặt là ‘l’ o “trán rộng”: đặt là ‘m’ o “Cổ cao”: đặt là ‘n’ o “Cổ thấp”: đặt là ‘o’ o “Cổ tròn”: đặt là ‘p’ Trang 11/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 o “Có mặt trái xoan”: đặt là ‘r’ o “Có mặt bầu dục”: đặt là ‘s’ o “Gò má cao”: đặt là ‘t’ o “Gò má thấp”: đặt là ‘u’ b) Sơ đồ suy diễn và các luật Từ các quy ước trên ta có được sơ đồ suy diễn như sau: Từ sơ đồ suy diễn trên ta có được tập 9 luật như sau: (dấu ^ biểu thị cho phép hội) - Luật 1: a^b^c->5 - Luật 2: a^b^d->6 Trang 12/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 - Luật 3: a^b^e^f^g->1 - Luật 4: a^o^y->9 - Luật 5: a^o^u^p->8 - Luật 6: f^h^r^g^x->2 - Luật 7: f^h^t^i^j->4 - Luật 8: k^l^m->3 - Luật 9: n^u^q->7 II. PHÂN TÍCH BÀI TOÁN 1) Mô tả bài toán Bài toán đặt ra khi xây dựng hệ chuyên gia Dự đoán về căn số tương lai con người: - Thu nhận các sự kiện do người dùng cung cấp miêu tả các triệu chứng mà họ gặp phải. - Áp dụng các luật có sẵn từ việc làm việc với các chuyên gia từ trước, được lưu trong một file dạng *.txt, để đưa ra dự đoán và nhận xét hợp lý. 2) Hướng giải quyết Các bước xây dựng hệ chuyên gia dự đoán “Số con người”: - Xây dựng cấu trúc dữ liệu biểu diễn được các triệu chứng khác nhau và chỉ rõ giá trị của nó là: Trang 13/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 o True (đúng, người dùng có đặc điểm hình dáng đó) o False (sai, người dùng có đặc điểm hình dáng đó)  Xây dựng: một lớp các sự kiện “SuKien” biểu diễn các đặc điểm hình dáng là các mệnh đề có giá trị “True” hoặc “False”. - Xây dựng cấu trúc dữ liệu lưu trữ cơ sở tri thức của hệ chuyên gia để sử dụng trong suy luận và đưa ra được tư vấn  Lựa chọn của nhóm: xây dựng tập các luật sản xuất tổ chức trong một file *.txt. - Xây dựng thuật toán có thể để tiến hành suy diễn từ tập các sự kiện được cung cấp bởi người dùng và tập các luật (Rules) có sẵn trong cơ sở tri thức để xác định được bệnh mà người dùng gặp phải và từ đó đưa ra nhận xét hợp lý.  Lựa chọn của nhóm: sử dụng tư tưởng chính của thuật toán suy diễn tiến để suy diễn, nghĩa là “lập luận từ các sự kiện, sự việc “tiền đề” để rút ra kết luận” (Trích Giáo trình Hệ chuyên gia, ĐH Đà Nẵng). 3) Cấu trúc dữ liệu a) Biểu diễn các sự kiện Các sự kiện cho ta biết rằng người dùng có hay không bị các đặc điểm hình dáng tùy vào giá trị của sự kiện là True hay False do người dùng cung cấp qua giao diện người dùng. Mỗi sự kiện trong chương trình sẽ là một đối tượng trong lớp “SuKien”, có: Trang 14/ 28 BTL Nhập Môn Hệ Chuyên Gia - Nhóm 8 Lớp KHMT1-K5 Các biến thành viên: o private char tenSuKien; // tên của sự kiện o private string textSuKien; /* đoạn text mô tả đặc điểm hình dáng mà sự kiện biểu diễn, chẳng hạn sự kiện có text là “dang voc cao” sẽ chứa giá trị của đặc điểm hình dáng “dáng vóc cao” */ o private Boolean giaTriSuKien; // giá trị của sự kiện cho biết người dùng có hay không bị triệu chứng - Các thuộc tính và các phương thức: (Xin xem chi tiết trong class SuKien trong chương trình Demo kèm theo) b) Biểu diễn các luật Các luật là các tri thức chuyên gia được biểu diễn sao cho việc sử dụng luật cho ta kết quả là dự đoán người dùng có “Số như thế nào đó”. Các luật trong chương trình được biểu diễn theo cấu trúc gồm: - Phần trái luật: (hay còn gọi là bộ khởi động) chứa danh sách các sự kiện cần có để luật được áp dụng và các toán tử ^(hội), @(tuyển) , ~(phủ định). - Phần phải luật: chứa sự kiện biểu diễn các loại bệnh (cụ thể trong chương trình là các bệnh từ 1 đến 9) Trang 15/ 28 BTL Nhập Môn Hệ Chuyên Gia - Nhóm 8 Lớp KHMT1-K5 Khi phần trái luật được thỏa mãn (nhận giá trị logic bằng True) thì luật được khởi động và phần phải luật được áp dụng, nói cách khác là người dùng “có số ” như thế nào đó ở vế phải luật. Cụ thể trong chương trình mỗi luật sẽ là một đối tượng thể hiện của lớp “Luat” gồm có: - Các biến thành viên: o private char tenLuat;// tên của luật o private string traiLuat;// phần trái luật o private string phaiLuat;// phần phải luật o private string thanLuat; // gồm phần trái luật và phần phải luật và dấu ngăn cách “->” giữa chúng - Các thuộc tính và phương thức: (Xin xem chi tiết trong class Luat trong chương trình Demo kèm theo) Các luật trong chương trình sẽ được lưu trữ dưới dạng các xâu trong một file *.txt (Luat.txt) trong thư mục Debug của chương trình. c) Biểu diễn danh sách các sự kiện Danh sách các sự kiện là một mảng một chiều với mỗi phần tử của nó là một đối tượng sự kiện. Danh sách này được dùng để duyệt qua các sự kiện được cung cấp bởi người dùng từ đó có được câu trả lời là: liệu có hay không luật nào đó trong tập cơ sở luật được khởi động và áp dụng. Cụ thể trong chương trình danh sách sự kiện được biểu diễn là một lớp gồm có: Trang 16/ 28 BTL Nhập Môn Hệ Chuyên Gia - Nhóm 8 Lớp KHMT1-K5 Các biến thành viên: o private int soSuKien;// số các sự kiện trong danh sách o private SuKien[] dsSuKien; // mảng môt chiều lưu trữ danh sách các sự kiện - Các thuộc tính và phương thức: (Xin xem chi tiết trong class DanhSachSuKien trong chương trình Demo kèm theo) d) Biểu diễn danh sách các luật Tương tự danh sách sự kiện, danh sách luật này là một mảng một chiều biểu diễn cho tập các luật có trong cơ sở tri thức của chương trình. Danh sách này dùng để duyệt qua các luật và cho biết loại bệnh mà người dùng mắc phải theo đúng luật. Cụ thể trong chương trình danh sách luật được biểu diễn là một lớp gồm có: - Các biến thành viên: o private int soLuat;// số các luật có trong danh sách luật o private Luat[] dsLuat;// mảng một chiều lưu trữ các luật - Các thuộc tính và phương thức: (Xin xem chi tiết trong class DanhSachLuat trong chương trình Demo kèm theo) 4) Thuật toán Trang 17/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 Với chi tiết phần mô tả bài toán, cấu trúc dữ liệu như trên, sau đây sẽ là thuật toán mà nhóm sử dụng để xây dựng hệ chuyên gia của mình. Điều đầu tiên cần khẳng định: - Các sự kiện sẽ được thu nạp từ người dùng theo cách thức là: “chuyên gia” hỏi , “người dùng” trả lời bằng cách xác nhận sự kiện “chuyên gia” hỏi là đúng hay sai (True or False). - Khi nhận được thông tin từ “người dùng” thì “chuyên gia” sẽ sử dụng các “suy luận logic” theo thuật toán để xác định bệnh mà người dùng mắc phải. - Việc hỏi sẽ dừng trong 2 trường hợp: o Xác nhận được người dùng có “số” như thế nào đó bằng cách sử dụng luật nào đó trong cớ sở luật đã có. o Đã duyệt qua tất cả các sự kiện hoặc các luật mà không có luật nào được áp dụng (chưa có luật xây dựng cho danh sách sự kiện mà người dùng cung cấp). Cụ thể cách giải quyết của nhóm là: - Sử dụng tư tưởng của thuật toán suy diễn tiến để suy luận logic tại mỗi bước. - Cụ thể là coi mỗi lần “chuyên gia” hỏi và “người dùng” trả lời là một bước lặp của vòng While (điều kiện dừng chưa thỏa). - Khi đó thuật toán cụ thể sẽ như sau: Trang 18/ 28 BTL Nhập Môn Hệ Chuyên Gia Nhóm 8 Lớp KHMT1-K5 Sử dụng 3 danh sách là: dsLuatDaHoi (danh sách các luật đã được chuyên gia hỏi rồi) và dsLuatCoTheHoi (danh sách các luật còn có thể hỏi, chưa bị phủ định bởi người dùng), dsLuatChuaHoi (danh sách các luật chưa được hỏi tới). Thuật toán gồm 3 bước cụ thể như sau: Bước 1: Khởi tạo Khởi tạo danh sách sự kiện ban đầu sẽ là danh sách mà tất cả các sự kiện đều có giá trị là False (sai) (người dùng không có nhận xét nào về “số” của mình). Load danh sách luật từ cơ sở tri thức. dsLuatDaHoi = {rỗng}, dsLuatCoTheHoi = dsLuatChuaHoi = {danh sách luật có trong cơ sở tri thức} Bước 2: Thu thập giá trị sự kiện và suy luận Hỏi người dùng về một sự kiện nào đó theo một nguyên tắc nào đó. Nếu sự kiện được trả lời là True (Đúng): - Duyệt qua các tất cả các luật có trong danh sách luật mà có sự kiện đang hỏi (nằm bên vế trái luật) xem nếu luật đó là luật “đã được hỏi rồi” thì đưa nó vào dsLuatDaHoi - dsLuatCoTheHoi sẽ là danh sách các luật có chứa sự kiện đang xét. - dsLuatChuaHoi không thay đổi. Nếu sự kiện được trả lời là False (Sai) Trang 19/ 28 BTL Nhập Môn Hệ Chuyên Gia - Nhóm 8 Lớp KHMT1-K5 Các luật trong cơ sở tri thức mà có chứa sự kiện đang xét (nằm bên vế trái luật) sẽ được đưa vào dsLuatDaHoi và được loại bỏ khỏi dsLuatChuaHoi. - dsLuatCoTheHoi được gán bằng dsLuatChuaHoi. Bước 3: Điều kiện dừng Lặp lại bước 2 cho đến khi 1 trong 2 trường hợp sau sảy ra - Có luật được áp dụng: thì kết luận người dùng mắc bệnh tương ứng mà luật biểu diễn và thông báo cho người dùng. - Không có luật nào được áp dụng cả (hay nói cách khác tập luật đang xét bị rỗng), thông báo ra cho người dùng biết (dsLuatCoTheHoi = {rỗng}). III. THIẾT KẾ CHƯƠNG TRÌNH DEMO 1) Ngôn ngữ và các công cụ Nhóm sử dụng ngôn ngữ C# để xây dựng chương trình của mình. Sử dụng công cụ là Visual Studio C# 2010, cơ sở tri thức là tập luật và tập sự kiện được lưu trữ trong 2 file dạng *.txt là “Luat.txt” và “SuKien.txt”, được đặt sẵn trong thư mục Debug của Project. Trong 2 file này các luật và sự kiện được trình bày theo đúng quy cách sau: - Tập luật trong “Luat.txt”: o Con số đầu tiên lưu trữ số lượng luật, sau đó là dấu ‘:’ (dấu hai chấm) để ngăn cách với phần tiếp theo. Trang 20/ 28
- Xem thêm -