Việc chữa trị kịp thời sẽ giảm thiểu những rủi ro này và tránh được những biến chứng nghiêm trọng có thể xảy ra.Xây dựng một hệ thống chuyên gia dự đoán bệnh cúm sẽ thu thập dữ liệu từ c
TẢ BÀI TOÁN
Các nguồn tài liệu,dữ liệu, biểu mẫu
Các nguồn tài liệu liên quan đến bài toán xây dựng hệ chuyên gia dự đoán bệnh cúm bao gồm:
Tài liệu khoa học về bệnh cúm: Các tài liệu này cung cấp kiến thức về nguyên nhân, triệu chứng, cách lây truyền, cách phòng ngừa và điều trị bệnh cúm.
Tài liệu về hệ chuyên gia là nguồn cung cấp thông tin toàn diện về:- Khái niệm và cấu trúc của hệ chuyên gia- Nguyên lý hoạt động và phương pháp xây dựng- Các thước đo đánh giá hiệu suất của hệ chuyên gia
Tài liệu về các phương pháp dự đoán bệnh cúm: Các tài liệu này cung cấp kiến thức về các phương pháp dự đoán bệnh cúm, bao gồm các phương pháp thống kê, mô hình hóa, học máy.
Dữ liệu là yếu tố quan trọng nhất trong việc xây dựng hệ chuyên gia dự đoán bệnh cúm Dữ liệu cần đáp ứng các yêu cầu sau:
Dữ liệu cần toàn diện, bao hàm đầy đủ thông tin liên quan đến bệnh cúm, chẳng hạn như thời gian, địa điểm, số lượng ca mắc, triệu chứng và các thông tin khác có liên quan Điều này đảm bảo rằng dữ liệu có thể được sử dụng để hiểu rõ về sự bùng phát của bệnh cúm và đưa ra các quyết định sáng suốt về các biện pháp phòng ngừa và kiểm soát.
Chất lượng: Dữ liệu cần có chất lượng tốt, chính xác và tin cậy.
Được cập nhật thường xuyên: Dữ liệu cần được cập nhật thường xuyên để đảm bảo tính cập nhật của hệ chuyên gia.
Dữ liệu từ các cơ quan y tế: Các cơ quan y tế thường thu thập và
Dữ liệu từ các trang web, ứng dụng theo dõi dịch bệnh: Các trang web, ứng dụng này thường thu thập dữ liệu về các ca mắc bệnh cúm từ các nguồn khác nhau, bao gồm cả các nguồn từ các cơ quan y tế.
Dữ liệu từ các mạng xã hội: Các mạng xã hội có thể cung cấp dữ liệu về các triệu chứng của bệnh cúm từ người dùng.
Một số mẫu biểu có thể sử dụng trong quá trình xây dựng hệ chuyên gia dự đoán bệnh cúm bao gồm:
Mẫu biểu thu thập dữ liệu: Mẫu biểu này được sử dụng để thu thập dữ liệu từ các nguồn khác nhau.
Mẫu biểu phân tích dữ liệu: Mẫu biểu này được sử dụng để phân tích dữ liệu thu thập được.
Mẫu biểu thiết kế hệ chuyên gia: Mẫu biểu này được sử dụng để thiết kế hệ chuyên gia.
Mẫu biểu thu thập dữ liệu về các ca mắc bệnh cúm: Mẫu biểu này bao gồm các thông tin về thời gian, địa điểm, số lượng ca mắc bệnh, các triệu chứng, v.v.
Mẫu biểu phân tích dữ liệu về bệnh cúm: Mẫu biểu này bao gồm các thông tin về tần suất mắc bệnh, xu hướng mắc bệnh, các yếu tố ảnh hưởng đến bệnh cúm, v.v.
Mẫu biểu thiết kế hệ chuyên gia dự đoán bệnh cúm: Mẫu biểu này bao gồm các thông tin về các yếu tố đầu vào, các quy tắc suy luận, các kết quả đầu ra của hệ chuyên gia.
4.Phân tích đánh giá hiện trạng:
Hiện nay, trên thế giới đã có nhiều nghiên cứu về xây dựng hệ chuyên gia dự đoán bệnh cúm Các hệ chuyên gia này thường sử dụng các phương pháp thống kê, mô hình hóa, học máy, v.v để dự đoán xu hướng mắc bệnh cúm trong tương lai.
Mặc dù đã có nhiều nghiên cứu về xây dựng hệ chuyên gia dự đoán bệnh cúm, nhưng vẫn còn một số vấn đề còn tồn tại:
Tính chính xác của các hệ chuyên gia: Tính chính xác của các hệ chuyên gia dự đoán bệnh cúm phụ thuộc vào nhiều yếu tố, bao gồm chất lượng dữ liệu, phương pháp dự đoán được sử dụng, v.v Tuy nhiên, các hệ chuyên gia hiện nay vẫn chưa có độ chính xác cao, đặc biệt là trong trường hợp xuất hiện các chủng virus cúm mới.
Khả năng dự đoán trong thời gian ngắn: Các hệ chuyên gia dự đoán bệnh cúm hiện nay thường chỉ có thể dự đoán xu hướng mắc bệnh cúm trong thời gian dài, chẳng hạn như 6 tháng, 3 tháng, hoặc 1 tuần Việc dự đoán trong thời gian ngắn, chẳng hạn như trong vòng 24 giờ, là rất cần thiết để có thể đưa ra các biện pháp phòng ngừa và kiểm soát hiệu quả.
Khả năng dự đoán trên phạm vi toàn cầu: Các hệ chuyên gia dự đoán bệnh cúm hiện nay thường chỉ được xây dựng cho một khu vực cụ thể, chẳng hạn như một quốc gia hoặc một khu vực địa lý Việc xây dựng các hệ chuyên gia dự đoán bệnh cúm trên phạm vi toàn cầu là rất cần thiết để có thể dự đoán xu hướng mắc bệnh cúm trên toàn thế giới. Để giải quyết những vấn đề còn tồn tại nêu trên, các nghiên cứu về xây dựng hệ chuyên gia dự đoán bệnh cúm cần tập trung vào các vấn đề sau:
Nâng cao độ chính xác của các hệ chuyên gia: Cần nghiên cứu các phương pháp dự đoán mới, có độ chính xác cao hơn, đặc biệt là trong trường hợp xuất hiện các chủng virus cúm mới.
Mở rộng khả năng dự đoán trong thời gian ngắn: Cần nghiên cứu các phương pháp dự đoán mới, có thể dự đoán trong thời gian ngắn, chẳng hạn như trong vòng 24 giờ.
Sự bùng phát của cúm đòi hỏi các công cụ dự đoán mạnh mẽ có thể dự đoán xu hướng bệnh trên toàn cầu Tập trung vào việc phát triển các phương pháp dự đoán mới là điều tối quan trọng để theo kịp bản chất tiến hóa nhanh chóng của vi-rút cúm.
HỆ CHUYÊN GIA
Hệ chuyên gia là gì?
Hệ chuyên gia(Expert System) là một chương trình máy tính thông minh sử dụng tri thức (knowledge) và các thủ tục suy luận (inference procedures) để giải quyết các bài toán tương đối khó khăn đòi hỏi những chuyên gia mới có thể giải được.Hay nói cách khác hệ chuyên gia sẽ dựa trên những chi thức của những người giỏi nhất về lĩnh vực cần quan tâm.
Hệ chuyên gia là một hệ thống tin học có thể thông tin có thể mô phỏng (emulates),năng lực quyết đoán (decision) và hành động (making abilily) của một chuyên gia (con người chuyên sâu về lĩnh vực đó).Hệ chuyên gia là một trong những ứng dụng của trí tuệ nhân tạo.
Hệ chuyên gia sử dụng tất cả các tri thức của những chuyên gia để giải quyết vấn đề bài toán khác nhau thuộc mọi lĩnh vực.
Tri thức trong hệ thống chuyên gia là tập hợp kiến thức từ sách vở, tạp chí và các chuyên gia Tri thức bao gồm sự kiện và luật Sự kiện là thông tin rộng rãi, được chấp nhận bởi các chuyên gia Luật thể hiện sự quyết đoán của chuyên gia trong lĩnh vực Hệ chuyên gia, hệ thống dựa trên tri thức và hệ chuyên gia dựa trên tri thức đều là thuật ngữ chỉ cùng một hệ thống sử dụng tri thức để giải quyết vấn đề.
Mức độ hiệu quả của một hệ chuyên gia phụ thuộc vào kích thước và chất lượng của cơ sở tri thức mà hệ chuyên gia đó có được.
Một hệ chuyên gia chỉ chuyên sâu về một lĩnh vực hoặc một vấn đề cụ thể duy nhất, như y học, tài chính, khoa học ,công nghệ,… mà không phải là cho bất cứ một lĩnh vực vấn đề nào
Một hệ chuyên gia gồm ba thành phần chính là cơ sở tri thức (knowledge base), 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 (userinterface) Cơ sở tri thức chứa các tri thức để từ đó, máy suy diễn tạo ra câu trả lời cho người sử dụng qua hệ thống giao tiếp.
Người sử dụng (user) cung cấp sự kiện (facts) là những gì đã biết, đã có thật hay những thông tin có ích cho hệ chuyên gia, và nhận được những câu trả lời là những lời khuyên hay những gợi ý dùng dần (expertise).
Hoạt động của một hệ chuyên gia :
Ví dụ: Hệ chuyên gia về lĩnh vực y học được đào tạo để dự đoán bệnh tim mạch sẽ sở hữu lượng kiến thức sâu rộng về các triệu chứng đau ngực Kiến thức chuyên sâu này bao gồm thông tin về các loại triệu chứng đau tim, cách phân loại bệnh tim và phương pháp điều trị cụ thể cho từng loại.
Tùy theo yêu cầu của người sử dụng mà có nhiều cách nhìn nhận khác nhau về hệ chuyên gia.
Đặc trưng
Có bốn đặc trưng cơ bản của một hệ chuyên gia :
Hiệu quả cao (high performance) Khả năng trả lời với mức độ tỉnh thông bằng hoặc cao hơn so với chuyên gia (người) trong cùng lĩnh vực.
Thời gian trả lời thoa đảng (adequate response time) Thời gian trả lới hợp lý, bằng hoặc nhanh hơn so với chuyên gia (người) để đi đến cùng một quyết định Hệ chuyển gia là một hệ thống thời gian thực (real time system).
Độ tin cậy cao (good reliability) Không thể xảy ra sự cố hoặc giảm sút độ tin cậy khi sử dụng.
Dễ hiểu (understandable) Hệ chuyên gia giải thích các bước suy luận một cách dễ hiểu và nhất quản, không giống như cách trả lời bí ẩn của các hộp đen (black box).
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 quả sử dụng không thể phủ nhận.
Giảm giá thành (reduced cost).
Giảm rủi ro (reduced dangers): Giúp con người tránh được trong các môi trường rủi ro,nguy hiểm
Tính thường trực (Permanance);Bất kể lúc nào cũng có thể khai thác sử dụng trong khi con người có thể mệt mỏi, nghỉ ngơi hay vắng mặt.
Đa lĩnh vực (multiple expertise):Chuyên gia về nhiều lĩnh vực khác nhau và được khai thác đồng thời bất kể thời gian sử dụng.
Độ tin cậy (increased relialility) Luôn đảm bảo độ tin cậy khi khai thác Khả năng giảng giải (explanation) Câu trả lời với mức độ tinh thông được giảng giải rõ ràng chi tiết, dễ hiểu.
Khả năng 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ý và đầy đủ mọi lúc mọi nơi (steady, une motional, and complete response at all times).
Trợ giúp thông minh như một người hưỡng dẫn (intelligent -tutor).
Có thể truy cập như là một cơ sở dữ liệu thông minh (intelligent database).
Ứng dụng
Tính đến thơi điểm hiện nay đã có đến hàng trăm hệ chuyên gia đã được xây dựng và đã được báo cáo thường xuyên trong các tạp chí, sách, báo và hội thảo khoa học Ngoài ra còn các hệ chuyên gia được sử dụng trong các công ty, các tổ chức quân sự mà không được công bố vì lý do bảo mật
Một số lĩnh vực ứng dụng diện rộng của các hệ chuyên gia.
Cấu hình là sự tập hợp hợp lý các thành phần trong một hệ thống Chẩn đoán là việc sử dụng kinh nghiệm và quan sát để đưa ra kết luận Truyền đạt là phương pháp dạy học hướng đến việc kích thích học sinh đặt câu hỏi "tại sao", "như thế nào" và "sẽ thế nào nếu", giống như đang hỏi một chuyên gia trong lĩnh vực đó.
Giải thích: Trích xuất ý nghĩa từ dữ liệu thu thập được Kiểm tra: Đối chiếu dữ liệu đã thu thập với các tiêu chuẩn chuyên môn để đánh giá mức độ hiệu quả Lập kế hoạch: Lên kế hoạch sản xuất dựa trên các yêu cầu.
Dự đoán(Prognosis) Dự đoán hậu quả từ một tình huống xảy ra Chữa trị(Remedy) Chỉ định cách giải quyết một vấn đề Điều khiển(Control) Điều khiển một quá trình, đòi hỏi diễn giải, chẩnđoán, kiểmtra, lập kế hoạch, dự đoán và chữa trị
Kiến trúc tổng quát của hệ chuyên gia
Một hệ chuyên gia được thiết lập thường có 7 phần.
Giao diện người, máy : Thực hiện giao tiếp giữa hệ chuyên gia và người sử dụng Nhận các thông tin từ người dùng (các câu hỏi, các yêu cầu về lĩnh vực) và đưa ra các lời khuyên, các câu trả lời, các giải thích về lĩnh vực đó.
Bộ giải thích : Giải thích các hoạt động của hệ khi có yêu cầu của 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 con người, từ kỹ sư tri thức và cả người sử dụng thông qua các câu hỏi và yêu cầu của họ, sau đó lưu trữ vào cơ sở tri thức.
Cơ sở tri thức : Lưu trữ, biểu diễn các tri thức trong lĩnh vực mà hệ đảm nhận, làm cơ sở cho các hoạt động của hệ Cơ sở tri thức bao gồm các khái niệm cơ bản, các sự kiện, các luật và quan hệ công chúng.Dùng để chứa đựng tri thức trong một lĩnh vực nào đó, tri thức này do chuyên gia con người chuyển giao.Ví dụ: Tri thức về bệnh nhiểm trùng máu phải do các bác sĩ chuyên ngành này chuyển giao
Mô tơ suy diễn : Là bộ sử lí cho tri thức, được mô tả sao cho giống với việc suy luận của chuyên gia con người Bộ xử lí này làm việc dựa trên thông tin mà người dùng mô tả về vấn đề , kết hợp với cơ sở tri thức để cho ra kết luận hay để đề nghị.Thông qua qua cơ sở tri thức để từ đó máy suy diễn tạo ra câu trả lời cho người sử dụng thông qua hệ thống giao tiếp. Để thực hiện được các công việc của các thành phần trên trong cấu trúc hệ chuyên gia phải có một hệ điều khiển và 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 là “Hệ quản trị cơ sở tri thức” Hệ quản trị cơ sở tri thức thực chất là quản lý và điều khiển công việc của Bộ thu nạp tri thức, Bộ giải thích,
Mô tơ suy diễn Nó phải đảm bảo các yêu cầu :
Giảm dư thừa tri thức, dữ liệu.
Tính nhất quán và phi mâu thuẫn của tri thức.
Tính toàn vẹn và an toàn.
Giải quyết các vấn đề cạnh tranh.
Ngôn ngữ xử lý tri thức.
Một số cấu trúc mô hình
a.Mô hình J.L Ermine b)Mô hình C.Ernest : c)Mô hình E.V.Popov :
Phân biệt tri thức và dữ liệu
Cơ sở tri thức (knowledge base) là một tập hợp các thông tin có cấu trúc, được sử dụng để mô tả một lĩnh vực kiến thức cụ thể Cơ sở tri thức thường được lưu trữ dưới dạng các quy tắc, thực thể, mối quan hệ, và các kiến thức khác.
Dữ liệu (data) là tập hợp các thông tin thô, chưa được xử lý, chưa có ý nghĩa.
Dữ liệu có thể là số, văn bản, hình ảnh, âm thanh, hoặc bất kỳ dạng thông tin nào khác.
Sự khác biệt giữa cơ sở tri thức và dữ liệu:
Khả năng 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 khi còn được mã hóa cho ngắn gọn để dễ cài đặt trong máy Chỉ có người lập trình đó mới có thể hiểu được nội dung, ý nghĩa của dữ liệu, nhưng tri thức có thể tự giải thích nội dung của mình với người sử dụng bất kỳ.
Tính cấu trúc : Một trong những đặc tính cơ bản của hoạt động nhận thức của con người đối với thế giới xung quanh là khả năng phân tích cấu trúc của các đối tượng Tri thức được đưa vào máy cũng cần có khả năng tạo ra được một sự phân cấp giữa các khái niệm và mối quan hệ giữa chúng.
Tính liên hệ : Ngoài các quan hệ về cấu trúc trong mỗi tri thức (khái niệm, quá trình, hiện tượng, sự kiện) giữa các đơ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 đã chỉ ra số các liên hệ cơ bản giữa các sự kiện xấp xỉ 200 lần Một cơ sở tri thức được kết hợp với số liên hệ cơ bản này có thể mô tả và biểu diễn được hầu hết mọi vấn đề mà chúng ta quan tâm.
Tính chủ động : o Như chúng ta đã thấy, dữ liệu có vai trò bị động vì nó phụ thuộc vào sự khai thác của chương trình cụ thể. o Trong xã hội loài người khi hoạt động bất kỳ ở đâu và ở trong lĩnh vực nào thì con người bao giờ cũng bị điều khiển bằng chính tri thức (vốn hiểu biết) của mình Nhờ có tri thức mà con người đã hình thành mục tiêu và các hành vi để thực hiện mục tiêu đó Quá trình này luôn đi kèm với sự bổ sung tri thức và khắc phục sự mâu thuẫn giữa các tri thức để đi đến hoàn thiện dần cơ sở tri thức trong mỗi người. o Đối với các tri thức biểu diễn trong máy cũng vậy, chúng chủ động hướng người sử dụng biết khai thác tri thức Đó chính là quá trình kích hoạt tri thức được thể hiện trong các hệ chuyên gia được xây dựng trên các cơ sở tri thức biểu diễn ở mức cao có khả năng tiếp nhận, tinh chế, tự hoàn thiện ngay trong quá trình hoạt động của hệ Tính chủ động của tri thức còn thể hiện sinh động thông qua các ngôn ngữ lập trình trí tuệ nhân tạo như Lisp, Prolog…ở đó không còn có sự phân biệt rõ ràng giữa dữ liệu và thủ tục.
Mục đích sử dụng của cơ sở tri thức là mô tả một lĩnh vực kiến thức cụ thể, trong khi đó dữ liệu dùng để lưu trữ thông tin thô Hai khái niệm này đóng vai trò khác nhau trong lưu trữ và quản lý thông tin, với cơ sở tri thức tập trung vào việc tổ chức và cấu trúc thông tin, còn dữ liệu tập trung vào việc thu thập và lưu trữ thông tin dạng thô.
Cấu trúc: Cơ sở tri thức thường có cấu trúc rõ ràng, được tổ chức theo một mô hình nhất định, còn dữ liệu có thể có cấu trúc hoặc không.
Trong vũ trụ thông tin mênh mông, sự khác biệt giữa dữ liệu và kiến thức là vô cùng quan trọng đối với việc ra quyết định sáng suốt và giải quyết vấn đề hiệu quả Dữ liệu, bản chất ban đầu là chưa định hình và không có ý nghĩa, chỉ trở nên có giá trị sau khi được xử lý và giải thích để tạo thành tri thức Ngược lại, tri thức là sự tích lũy có ý nghĩa của thông tin, có thể được sử dụng trực tiếp để giải quyết vấn đề và đưa ra quyết định sáng suốt.
Cơ sở tri thức: Một cơ sở tri thức về lĩnh vực y tế có thể bao gồm các quy tắc về chẩn đoán bệnh, các thực thể về các loại bệnh và triệu chứng, và các mối quan hệ giữa các quy tắc và thực thể.
Dữ liệu: Dữ liệu về bệnh nhân có thể bao gồm các thông tin như tên,tuổi, địa chỉ, bệnh sử, và các kết quả xét nghiệm.
Đặc điểm biểu diễn tri thức
Biểu diễn tri thức là lĩnh vực tập trung nghiên cứu và phát triển các phương pháp, cách thức thể hiện tri thức, cũng như các công cụ hỗ trợ quá trình này.
Có rất nhiều phương pháp biểu diễn tri thức, và phải phụ thuộc vào tri thức cụ thể của từng bài toán ta mới chọn được một phương pháp biểu diễn hợp lý nhất.
Biểu diễn tri thức bằng luật sản xuất (Production rules)
Biểu diễn tri thức bằng khung (Frames)
Biểu diễn tri thức sử dụng mạng ngữ nghĩa(Semantic networks )
Biểu diễn tri thức bằng ontology
Khi biểu diễn tri thức cho một bài toán, việc biểu diễn này được coi là tốt khi chúng thỏa mãn được 4 yếu tố sau:
Tính hiệu quả về tính toán( Computational efficiency)
Tính rõ ràng, dễ hiểu(Transparency)
Các phương pháp biểu diễn tri thức
2.3.1)Biểu diễn tri thức nhờ logic
Dựa trên các khái niệm nền tảng của logic mệnh đề và logic vị từ, trạng thái của một bài toán có thể mô tả bằng các biểu thức logic Sau đó, bài toán được diễn đạt lại dưới dạng:
A.Chứng minh : Từ GT1 ∩ GT2 ∩ …∩ GTn để suy ra một trong các kết luận : KL1,…,KLn. Ở đây :GTi,KLj là các biểu thức logic (mệnh đề hoặc vị từ)
B.Tìm phép gán cho các biến tự do sao cho từ GT1,…,GTn suy ra một trong các kết luận KL1,…,KLn.
Cơ sở tri thức bằng logic mệnh đề :
Cơ sở tri thức gồm 2 phần :
Các sự kiện được cho bởi các luật đặc biệt dạng : q1; q2;
… qk; Tập F = (p1,…,pn) tạo nên giả thiết cho quá trình suy diễn.
Cơ sở tri thức biểu diễn bằng logic vị từ :
Cơ sở tri thức được cấu tạo bởi 2 phần :
Các sự kiện được cho bởi qi (x,y,z,…), I = ,ở đây qi (x,y,z,
…) là các vị từ phụ thuộc vào các hạng thức x, y, z,…
Logic vị từ cho phép biểu diễn hầu hết các khái niệm và các phát biểu định lý, định luật trong các bộ môn khoa học Cách biểu diễn này khá trực quan và ưu điểm căn bản của nó là có một cơ sở lý thuyết vững chắc cho những thủ tục suy diễn nhằm tìm kiếm và sản sinh ra những tri thức mới, dựa trên các sự kiện và các luật đã cho.
Logic vị từ và logic mệnh đề có các ưu điểm:
Là ngôn ngữ biểu diễn kiểu mô tả.
Có khả năng suy diễn đối với các cơ chế quen thuộc : Pronens
Khá trực quan với người sử dụng.
Khá gần gũi về cú pháp với các lệnh lập trình logic, chẳng hạn như PROLOG.
Có thể dùng để mô tả cấu trúc mô hình và xử lý động mô hình.
Có thể kiểm tra tính mâu thuẫn trong cơ sở tri thức.
Tính mô đun cao, do vậy các tri thức có thể thêm bớt sửa đổi khá độc lập với nhau và các cơ chế suy diễn.
Một số điểm yếu của logic :
Mức độ hình thức hóa cao, dẫn tới khó hiểu ngữ nghĩa của các vị từ khi xét chương trình.
Năng xuất xử lý thấp Một trong những khó khăn cơ bản của quá trình suy diễn là cơ chế hợp và suy diễn vét cạn.
Do các tri thức được biểu diễn nhờ các vị từ, nên ưu thể sử dụng cấu trúc dữ liệu không được khai thác triệt để.
2.3.2)Biểu diễn tri thức nhờ mạng ngữ nghĩa
Mạng ngữ nghĩa biểu diễn dưới dạng một đồ thị có hướng nhưng không chi trình Bao gồm nút (Một đối tượng, một sự kiện một khái niệm khác) và cung (thể hiện mối quan hệ)
Ví dụ thể hiện tri thức: Minh là một sinh viên có thẻ sinh viên và có thể đăng kí môn học
Bằng cách thêm vào đồ thị nút mới và các cung mới người ta có thể mở rộng một mạng ngữ nghĩa Các cung mới được thêm thể hiện các đối tượng tương tự (với các nút đã có trong đồ thị), hoặc tổng quát hơn. Ưu điểm:
Các tri thức mới có tính độc lập khi được thêm vào với các tri thức cũ.
Có tính kế thừa thông tin giữa các đối tượng và các lớp đối tượng.
Cho phép biểu diễn một cách trực quan các sự kiện và mối quan hệ giữa chúng.
Thuận lợi cho việc biểu diễn tri thức mô tả.
Tính mô đun cao, theo nghĩa các tri thức thêm vào hoàn toàn độc lập với các tri thức cũ.
Cập nhật thông tin sẽ khó kiểm soát để phát hiện mẫu.
Việc xác định giá trị của một đối tượng sẽ rất phức tạp.
2.3.3)Biểu diễn tri thức nhờ các luật
Ngày nay, hầu hết hệ chuyên gia đều là hệ thống dựa trên luật vì luật có bản chất đơn thể, dễ diễn giải, tương tự như quá trình nhận thức của con người.
Các luật được viết dưới dạng câu điều kiện IF THEN Có 2 dạng :
If Then
If Then Do
Các điều kiện được đưa ra tương đối dễ hiểu và các kết luận được suy ra từ chúng cũng rất hợp lý Mỗi điều kiện sẽ dẫn đến một kết luận cụ thể thông qua suy luận logic thông thường.
Dùng luật có thể biểu diễn được nhiều loại tri thức như quan hệ,khuyên bảo,hướng dẫn, chiến lược, heuritic,siêu tri thức.
Ví dụ: IF Vị trí bị vết thương có chảy máu AND
Chưa biết chắc chắn là cơ quan nào bị tổn thương AND
Chất nhuộm màu là âm tính AND
Vi khuẩn có dạng hình que AND
Bệnh nhân bị bệnh sốt cao
Cơ quan đó bị nhiễm trùng Ưu điểm: o Biểu diễn khá đơn giản o Thêm bớt các luật không ảnh hưởng đến nhau
Nhược điểm: o Năng suất xử lý thông tin thấp khi tập dữ liệu lớn.
Là một bảng mẫu, cho phép điển thông tin vào chỗ trống.Mỗi frame đều có tên là tên đối tượng,hay khái niệm cần biểu diễn.Trong mỗi frame có các rãnh(slot).Một rãnh là một mô tả trong frame với 1 cặp gồm thuộc tính và giá trị.
Frame tận dụng được các ưu điểm của luật sản xuất, vị từ, cũng như mạng ngữ nghĩa.
(như trên, duy nhất,miền…)
(text, integer, real, pointer…)
(tên, giá trị, thủ tục,…)
Ví dụ về 1 FRAME mô tả tập SINHVIEN:
FART-OF : NGUOI_DI_HOC
A KIND OF : (SINH_VIEN_DAI_HOC,SINH_VIEN_CA_ DANG)
Cân nặng : 45-80 kgChiều cao : 150-190 cm
Nói tiếng : Việt/Anh/Trung
Cấu trúc luật thể hiện rõ ràng các điều kiện ràng buộc để xác định đối tượng (sinh viên), nếu một cá thể không thỏa mãn các ràng buộc thì có thể chắc chắn rằng đối tượng không thuộc loại đã xác định Ưu điểm nổi trội của cấu trúc luật là khả năng biểu diễn logic tốt, thể hiện rõ ràng mối quan hệ kế thừa thông tin và bao quát cả tri thức mô tả đến tri thức thủ tục.
Nhược điểm: o Không tốt cho kỹ năng và trực giác của người lập trình.
Suy diễn tiến
Lấy những thông tin đã có để sinh ra tất cả các sự kiện có thể sinh ra được.Không thể dự đoán trước được những sự kiện sẽ nhận được ở đầu ra trong cơ chế này.
Bước 1: Lấy thông tin từ môi trường bên ngoài, thường là yêu cầu người sử dụng đưa các sự kiện vào hệ thống
Bước 2: Duyệt các luật trong cơ sở luật, với mỗi luật kiểm tra xem phần điều kiện có khớp được với dữ liệu có trong bộ nhớ làm việc không?
Bước 3: Nếu phát hiện một luật có phần điều kiện khớp được như nói trên thì phần kết luận này được coi là đúng và sự kiện mới đó được bổ sung vào bộ nhớ làm việc luật cháy
Bước 4: Quá trình duyệt các luật để tìm luật chảy cho đến khi không còn luật cháy nữa.
Bước 5: Kết thúc luật bộ nhớ làm việc chứa cả sự kiện ban đầu và những sự kiện được sinh ra nhờ suy diễn
Suy diễn lùi
Suy diễn lùi hay còn được gọi là suy diễn điều khiển bởi đích Lấy những thông tin đã có để chứng minh hay bác bỏ một giả thuyết.
Các thức hoạt động của suy diễn lùi:
Bước 1: Bắt đầu từ đích cần chứng minh Kiểm tra Xem đích có trong mộng nhớ làm việc chưa ? Nếu có thì quá trình suy diễn dừng Đích được chứng minh.
Bước 2: nếu đích chưa được chứng minh, duyệt tìm luật trong cơ sở luật của phần THEN chứa địch gọi là luật đích.
Bước 3: Kiểm tra các điều kiện của luật đích đã có trong bộ nhớ làm việc chưa Nếu điều kiện nào chưa có trong bộ nhớ làm việc và thuộc phần THEN của luật khác thì coi đó là một đích con cần chứng minh Các điều kiện chưa có trong bộ nhớ và cũng không nằm trong phần THEN của bất kỳ luật nào thì là thông tin hệ thống lấy từ môi trường bên ngoài (từ người dùng) để đưa vào bộ nhớ làm việc.
Bước 4: Quá trình tiếp tục cho đến khi địch con được chứng minh hết hoặc không quy về được các sự kiện đã có trong bộ nhớ làm việc (giải thích ban đầu sai)
DỤNG BÀI TOÁN DỰ ĐOÁN BỆNH CÚM DỰA VÀO TRIỆU CHỨNG
Thu thập tri thức
Thu thập tri thức là bước nền tảng không thể thiếu cho quá trình giải quyết các bài toán xây dựng hệ thống chuyên gia, đặc biệt là bài toán xây dựng hệ chuyên gia dự đoán phát hiện bệnh cúm.
Xác định các triệu chứng bệnh cúm: Bước đầu tiên cần xác định các triệu chứng bệnh cúm có thể được sử dụng để dự đoán bệnh cúm Các triệu chứng này có thể được xác định từ các tài liệu y khoa, dữ liệu lâm sàng, và dữ liệu từ các cơ sở y tế, tổ chức nghiên cứu, và kho dữ liệu mở.Thu thập dữ liệu về các triệu chứng bệnh cúm: Sau khi xác định các triệu chứng bệnh cúm, cần thu thập dữ liệu về các triệu chứng này
Phân tích dữ liệu về các triệu chứng bệnh cúm: Sau khi thu thập dữ liệu, cần phân tích dữ liệu để xác định mối quan hệ giữa các triệu chứng bệnh cúm và nguy cơ mắc bệnh cúm.
Tổng hợp tri thức về các triệu chứng bệnh cúm: Sau khi phân tích dữ liệu, cần chỉnh Hệ thống tri thức này sẽ được sử dụng để xây dựng hệ chuyên gia dự đoán bệnh cúm.
Các triệu chứng và phân loại bệnh cần thu thập một cách chính xác và đầy đủ từ các nguồn uy tín hoặc từ các chuyên gia chuyên về lĩnh vực này
Trong bài toán dự đoán bệnh cúm thông qua các triệu chứng ta sẽ xây dựng một bảng dữ liệu lưu trữ thông tin để sử dụng để mô phỏng việc dự đoán.
Sử dụng SQL Sever Management Studio để tạo một database Cum Trong databae bảng chuẩn đoán bệnh chứng thông tin về các triệu chứng và bệnh cúm tương ứng với các triệu trứng đó.
Bảng thứ nhất là bảng lưu chữ tên các triệu chứng gồm có 27 triệu chứng được miêu tả như sau:
Bảng thứ 2 lưu trữ dữ liệu của các loại bệnh:
Bảng thứ 3 lưu trữ thông tin của các tập luật suy diễn:
Đối với bài toán dự đoán bệnh cúm là bài toán đưa ra quyết định, phương pháp suy diễn tiến là phương pháp tối ưu nhất Trong bài báo cáo này, phương pháp suy diễn tiến được sử dụng để đưa ra các gợi ý nhằm phục vụ mục đích dự đoán bệnh cúm được chuẩn xác hơn.
Lập lại 2 bước sau cho đến khi suy ra được kết luận
Áp dụng các luật có mệnh đề giả thiết được thỏa mãn trong bộ nhớ làm việc
Bổ sung kết luận của các luật đó vào trong bộ nhớ làm việc
Trong trường hợp xảy ra xung đột luật tức là tại một bước suy diễn có nhiều hơn một bước có thể sử dụng được.
Giải quyết xung đột luật đồng thời tránh các vòng lập và tránh việc chứng minh lập lại đối với một mệnh đề
Không áp dụng các luật sinh ra các kết quả (các sự kiện) đã có trong bộ nhớ làm việc.
Không áp dụng lại một luật nếu nó vẫn sinh ra cùng một tập các sự kiện (giống như lần áp dụng trước của nó.)
Tập giả thiết ban đầu sẽ là người bị bệnh có các triệu chứng:Tím môi,sổ mũi,nôn mửa,hắt hơi và buồn nôn
Có giả thiết ban đầu là:Tím môi ,sổ mũi, nôn mửa, hắt hơi , buồn nôn
Thực hiện tập luật suy diễn gồm các ý:
Rule 1: Buồn nôn thì có thể bị đau đầu
Rule 2: Đau đầu thì có thể bị cúm A-H5N9
Rule 3: Tím môi thì có thể bị cúm A-H5N9
Rule 4: Sổ mũi thì có thể bị cúm A-H5N9
Rule 5: Nôn mửa thì có thể bị cúm A-H5N9
Rule 6: Hắt hơi thì có thể bị cúm A-H5N9
Thông qua việc áp dụng tuần tự các quy tắc, bác sĩ có thể đưa ra chẩn đoán rằng người bệnh có khả năng mắc cúm A-H5N9 dựa trên các triệu chứng Khi kết luận của một quy tắc được đưa ra, các kết luận trùng khớp với kết luận đã nêu trong các quy tắc khác sẽ không còn được áp dụng.
ĐẶT VÀ THỬ CHẠY CHƯƠNG TRÌNH
SỬ dụng phần mềm SQL SEVER MANAGENMENT STUDIO
Phần mềm Visual Studio Code
Sử dụng visual stuido code để tạo một form chương trình gồm có 4 chức năng:
Phần đầu tiên lưu các triệu chứng, người bệnh có thể chọn thêm các triệu chứng mà mình bị mắc phải.
Phần thứ 2 lưu trữ các triệu chứng mà người bệnh đã chọn
Phần thứ 3 chứa các cơ sở tri thức, các dữ liệu từ suy diễn lưu trữ các triệu chứng và các bệnh tương ứng
Phần thứ 4:Cho biết xem là quá trình suy diễn và trả ra kết quả có bị bệnh cúm hay không và đó là bệnh cúm nào.
Như có thể thấy từ chương trình người bệnh chọn các triệu chứng mà mình bị là ớn lạnh,buồn nôn,choáng váng,nhiệt độ cao trên 38 độ , đau nhức cơ thể,chảy nước mũi,nghẹt mũi Sau khi nhấn vô chuẩn đoán hệ này sẽ chạy một suy diễn tiến để tìm các kết quả từ triệu chứng đó sau khi chạy các suy diễn tiến ta có bộ nhớ làm việc ớn lạnh,buồn nôn,choáng váng,nhiệt độ cao trên 38 độ,đau nhức cơ thể, chảy nước mũi,nghẹt mũi, đau đầu ,đau họng ,mệt mỏi,sốt,viêm họng và cúm mùa.Cuối cùng hệ thống dự đoán có thể bệnh nhân đó bị mắc bệnh cúm mùa
2:Các đoạn mã code của chương trình:
File ketnoi.cs using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WindowsFormsApp1
SqlConnection conn = new SqlConnection(@"Data Source=PHANKHAI\SQLSEVER;Initial Catalog=Cum;Integrated Security=True"); public DataTable ExcuteQuery(string sql)
DataTable dt = new DataTable(); try
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); conn.Close(); return dt;
} public List Trieuchung(string sql)
List list = new List(); try
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader read = cmd.ExecuteReader(); while (read.Read())
{ list.Add(read["tentrieuchung"].ToString());
} public List Benh(string sql)
List list = new List();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader read = cmd.ExecuteReader(); while (read.Read())
{ list.Add(read["tenbenh"].ToString());
File chương trình Program.cs: using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1
/// The main entry point for the application.
File Trieuchung.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WindowsFormsApp1
{ public string matrieuchung { get; set; } public string tentrieuchung { get; set; }
File Form1.cs: using System; using System.Collections.Generic; using System.Data; using System.Windows.Forms; namespace WindowsFormsApp1
{ public partial class Form1 : Form
List list = new List();
List list2 = new List();
List benh = new List();
} private void Form1_Load(object sender, EventArgs e)
{ list = xl.Trieuchung("select Distinct tentrieuchung from chuandoanbenh"); foreach (string x in list)
List timbenh = xl.Benh("select Distinct tenbenh from chuandoanbenh"); foreach (string result in timbenh)
{ if (kiemtra(result, list)=se) { benh.Add(result);
} private void dstc(object sender, EventArgs e)
{ if (!lbdstrieuchung.SelectedItem.ToString().Equals(""))
} private void btnThem_Click(object sender, EventArgs e)
{ if (!lbdstrieuchung.SelectedItem.ToString().Equals(""))
{ if (kiemtra(lbdstrieuchung.SelectedItem.ToString(),list2))
MessageBox.Show("Triệu chứng này đã có!"); return;
} lbtrieuchung.Items.Add(lbdstrieuchung.SelectedItem); list2.Add(lbdstrieuchung.SelectedItem.ToString()); btnXoaall.Enabled = true;
} private void button2_Click(object sender, EventArgs e)
{ if (!lbtrieuchung.SelectedItem.ToString().Equals(""))
{ list2.Remove(lbtrieuchung.SelectedItem.ToString()); lbtrieuchung.Items.Remove(lbtrieuchung.SelectedItem);
} btnXoa.Enabled = false; if (lbtrieuchung.Items.Count == 0)
} private void button3_Click(object sender, EventArgs e)
{ lbtrieuchung.Items.Clear(); btnXoaall.Enabled = false; list2.Clear();
} public Boolean kiemtra(string a, List list)
Dictionary getDanhSachBenhVaTC()
Dictionary dic = new Dictionary(); string sql = @"SELECT * FROM CHUANDOANBENH ORDER BY TENBENH ASC";
DataTable dataTbale = xl.ExcuteQuery(sql);
List listVitri = new List(); for (int i = 0; i = 0; i )
List item = new List(); item.Add(listVitri[i]); item.Add(0); listTrave.Add(item);
List item = new List(); item.Add(listVitri[i]); item.Add(listVitri[i - 1] + 1); listTrave.Add(item);
Console.WriteLine("Kết quả gần đúng");
Console.WriteLine("Kết quả đúng");
Dictionary dictionary = new Dictionary(); foreach (List item in listTrave)
List itemTrieuChung = new List(); itemTrieuChung.Add(dataTbale.Rows[item[0]]
["TENTRIEUCHUNG"].ToString()); dictionary.Add(dataTbale.Rows[item[0]]["TENBENH"].ToString(), itemTrieuChung);
List itemTrieuChung = new List(); for (int i = item[1]; i newlist.Count); int sltc =0; do
{ sltc = newlist.Count; newlist = Chuandoan(newlist);
//Phân chia triệu chứng và bệnh lbchuandoan.Items.Add("SUY DIỄN TIẾN "); foreach (string tc in list2)
// lbchuandoan.Items.Add("Các triệu chứng phát sinh: ");
// foreach (string tcps in newlist)
// if (kiemtra(tcps, list2) == false && kiemtra(tcps,benh)=se)
// } lbchuandoan.Items.Add(" "); lbchuandoan.Items.Add("Các bệnh có thể mắc phải: "); int dem = 0; foreach(string b in newlist)
{ lbchuandoan.Items.Add("Bạn không bị bệnh cúm.");
} private List Chuandoan(List listx)
List newlist = listx; int tm = 0; int slluat = 0; string vephai = "";
DataTable dt = xl.ExcuteQuery("select * from chuandoanbenh order by tenbenh asc"); for (int i = 0; i < dt.Rows.Count; i++)
{ vephai = dt.Rows[0]["tenbenh"].ToString(); for (int j = 0; j < newlist.Count; j++)
{ if (newlist[j].Equals(dt.Rows[0]["tentrieuchung"].ToString()))
{ if (!dt.Rows[i]["tenbenh"].Equals(dt.Rows[i - 1]["tenbenh"]))
{ if (kiemtra(vephai, newlist) == false) newlist.Add(vephai);
} vephai = dt.Rows[i]["tenbenh"].ToString(); tm = 0; slluat = 0;
{ if (newlist[j].Equals(dt.Rows[i]["tentrieuchung"].ToString()))
{ if (kiemtra(vephai, newlist) == false)
} private void lbdstrieuchung_SelectedIndexChanged(object sender, EventArgs e)
} private void clicktrieuchung(object sender, EventArgs e)
{ btnXoa.Enabled = true; btnXoaall.Enabled = true;
} private void btnCstt_Click(object sender, EventArgs e)
DataTable dt = xl.ExcuteQuery("select * from chuandoanbenh order by tenbenh asc"); for (int i = 0; i < dt.Rows.Count; i++) if (i == 0)
{ luat +=" & "+ dt.Rows[i]["tentrieuchung"].ToString();
{ if (!dt.Rows[i]["tenbenh"].Equals(dt.Rows[i - 1]["tenbenh"]))
{ luat +=" => "+ dt.Rows[i - 1]["tenbenh"]; x.Items.Add(luat); luat = "";
} luat +=" & "+ dt.Rows[i]["tentrieuchung"].ToString();
{ luat +=" => "+ dt.Rows[i]["tenbenh"].ToString(); x.Items.Add(luat) ;
} private void label1_Click(object sender, EventArgs e)
} private void lbcstt_SelectedIndexChanged(object sender, EventArgs e)
} private void lbchuandoan_SelectedIndexChanged(object sender, EventArgs e) {
3.Đánh giá chương trình Ưu điểm :
Cách sử dụng hoàn toàn đơn giản, dễ hiểu.
Chương trình đã cơ bản xử lý được tình huống khi đưa ra nhiều triệu chứng khác nhau và các triệu chứng từ suy diễn
Các luật trong cơ sở trí thức là khá lớn và ràng buộc được xây dựng chặt chẽ.
Cơ sở tri thức được xây dựng đảm bảo cho việc xử lý cập nhập thông tin thuận tiện.
Giao diện chương trình chưa thật đặc sắc, chưa thật thân thiện với người dùng (ép người dùng lựa chọn những đặc điểm thông qua ComboBox).
Chương trình mới chỉ đưa ra các phỏng đoán thông thông qua triệu chứng mà không có các khám bệnh, sàng lọc lâm sàng Hướng phát triển:
Tăng tính thân thiện của giao diện bằng việc cho phép người dùng chủ động hơn trong việc đưa vào các dữ liệu.
Cơ sở dữ liệu về các triệu chứng và biểu hiện lâm sàng của bệnh hiện thông qua việc thu thập dữ liệu từ các bệnh viện, phòng khám và các nguồn thông tin khác.
Các quy tắc dựa trên kinh nghiệm của các bác sĩ cần được hoàn thiện hơn, tham khảo ý kiến của các bác sĩ chuyên khoa và các chuyên gia về trí tuệ nhân tạo.
Hệ thống cần được thử nghiệm trên một số lượng lớn bệnh nhân để đánh giá độ chính xác và hiệu quả trong thực tế.
Hệ thống này cho phép dự đoán trên nhiều phương diện về các triệu chứng, bệnh nền, sàng lọc lâm sàng, diễn tiến nhằm hỗ trợ các chuyên gia y tế trong việc đưa ra các quyết định chẩn đoán và điều trị bệnh cúm một cách nhanh chóng và chính xác Đây là một hệ thống được thiết kế để sử dụng thông tin từ một cơ sở dữ liệu đa dạng về các triệu chứng, kết hợp với các quy tắc logic được xây dựng dựa trên kiến thức và kinh nghiệm của các bác sĩ chuyên khoa.
Qua việc áp dụng logic suy diễn tiến, hệ thống có khả năng phân tích các dữ liệu đầu vào từ bệnh nhân và đưa ra những dự đoán về nguy cơ mắc bệnh cúm và diễn biến của bệnh Điều này giúp cung cấp cho các chuyên gia y tế những thông tin cần thiết để đưa ra quyết định chẩn đoán và điều trị phù hợp, từ đó giảm thiểu rủi ro và tăng cường hiệu quả của quá trình điều trị bệnh cúm.