Đồng thời các bác sĩ,các chuyên gia y tế có thể cải tiến, sửa chữa kho tri thức để làm cho hệ thống ngày một hoànthiện và chẩn đoán được chính xác hơn với số lượng bệnh nhiều hơn.. Mục đ
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI :
HỆ CHUYÊN GIA CHẨN ĐOÁN BỆNH TRỰC TUYẾN
Mã số : 06T4-044 Ngày bảo vệ : 15-16/06/2011
SINH VIÊN : LÊ VĂN SỸ
ĐÀ NẴNG, 06/2011
Trang 2Tôi chân thành cảm ơn khoa Công Nghệ Thông Tin, Trường Đại Học Bách Khoa Đà Nẵng đã hổ trợ tạo nhiều điều kiện thuận lợi cho tôi trong quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp
Tôi xin gởi lòng biết ơn sâu sắc đến TS Huỳnh Công Pháp đã tận tình hướng dẫn, truyền đạt cho tôi những kiến thức quý báu cùng những giúp đỡ của thầy giúp tôi giải quyết những vấn đề khó khăn, trở ngại khi thực hiện đề tài.
Tôi cũng xin cảm ơn quý Thầy Cô trong khoa Công Nghệ Thông Tin đã tận tình giảng dạy, trang bị cho tôi những kiến thức cần thiết trong quá trình học tập
và nghiên cứu tại Khoa.
Con xin ghi nhớ công ơn của ba mẹ đã sinh thành, nuôi dưỡng và dạy dỗ con trưởng thành như ngày hôm nay Ba mẹ luôn là chỗ dựa tinh thần vững chắc cho con và luôn động viên con trên bước đường đời Con xin cám ơn.
Cuối cùng tôi xin gởi lời cảm ơn đến bạn bè đã hỏi thăm, động viên và giúp
đỡ tôi trong quá trình thực hiện đề tài.
Trang 3Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy TS Huỳnh Công Pháp.
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên,
Lê Văn Sỹ
Trang 6II.3 Nội dung của đề tài 2
II.3.1 Đối tượng nghiên cứu 2
II.3.2 Phương pháp nghiên cứu 2
III Kết quả dự kiến đạt được 3
IV Bố cục luận văn 3
I Trí tuệ nhân tạo 4
I.1 Lịch sử ra đời 4
I.2 Định nghĩa về trí tuệ nhân tạo4
I.3 Các trường phái trí tuệ nhân tạo 5
I.4 Ứng dụng của trí tuệ nhân tạo5
II Giới thiệu về hệ chuyên gia 6
II.1 Cơ sở tri thức 6
II.2 Định nghĩa về hệ chuyên gia 7
II.3 Xây dựng Hệ chuyên gia 8
II.4 Những thuận lợi và khó khăn của Hệ chuyên gia 10
II.4.1 Thuận lợi 10
II.4.2 Những bất lợi của một hệ chuyên gia dựa trên luật 10
II.5 Những ứng dụng của Hệ chuyên gia 11
II.5.1 Phân tích tín dụng 11
II.5.2 An toàn thương mại và Phân tích danh mục vốn đầu tư 11
II.5.3 Hệ chuyên gia phân tích chiến lược kinh doanh – BusinessInsight 11 II.5.4 FINEVA - Hệ chuyên gia phân tích tài chính 11
III Những hệ chuyên gia chẩn đoán bệnh trên thế giới 12
III.1 Hệ chuyên gia MYCIN 12
III.2 Hệ chuyên gia PUFF 13
III.3 Hệ chuyên gia CADUCEUS 13
IV Ngôn ngữ và công cụ xây dụng web 14
IV.3.3 Mô hình MVC trong CakePHP 15
IV.4 Hệ quản trị cơ sở dữ liệu MySQL 16
IV.4.1 Tổng quan về MySQL 16
Trang 7I.1.1 Giới thiệu tổng quan 17
I.1.2 Đặc tả chi tiết các chức năng 17
I.2 Yêu cầu phi chức năng 22
II Phân tích và thiết kế hệ thống 23
II.1 Xác định các tác nhân 23
II.2 Xác định các Use Case và các yêu cầu về chức năng 23
II.2.1 Sơ đồ Use Case 23
II.2.2 Biểu đồ tuần tự 27
II.3 Cơ sở dữ liệu 30
II.3.1 Cấu trúc cơ sở dữ liệu 30
II.3.2 Các bảng trong cơ sở dữ liệu 31
I Thiết kế và xây dựng hệ chuyên gia 33
I.1 Thiết kế hệ chuyên gia 33
I.1.1 Cơ sở tri thức 33
I.1.2 Bộ nhớ làm việc 35
I.2 Thuật toán 36
I.2.1 Giới thiệu về các thuật toán trong hệ chuyên gia 36
I.2.2 Áp dụng thuật toán suy diễn lùi 37
I.3 Xây dựng component Ruleprocess 37
I.3.1 Các thuộc tính của component Rulesprocess 38
I.3.2 Các phương thức của component Rulesprocess: 38
II Minh họa kết quả 40
I Kết quả đạt được 53
I.1 Ưu điểm 53
I.2 Nhược điểm 54
II Hướng phát triển trong tương lai 54
Trang 8MỤC LỤC HÌNH ẢNH
Hình 1 Các thành phần của hệ chuyên gia 7
Hình 2 Những thành phần cơ bản của một hệ chuyên gia 8
Hình 3 Mô hình MVC trong CakePHP 15
Hình 4 Sơ đồ miêu tả chức năng chẩn đoán bệnh 18
Hình 5 Yêu cầu gói quản lý người dùng 19
Hình 6 Yêu cầu gói quản lý bệnh 20
Hình 7 Yêu cầu gói quản lý triệu chứng 20
Hình 8 Yêu cầu gói quản lý các loại thuốc 21
Hình 9 Yêu cầu gói quản lý luật 21
Hình 10 User Case tổng quan 23
Hình 11 User Case chẩn đoán bệnh 24
Hình 12 Gói User Case quản lý bệnh 24
Hình 13 Giói User Case quản lý triệu chứng 25
Hình 14 Gói User Case quản lý thuốc 25
Hình 15 Gói User Case quản lý người dùng 26
Hình 16 Gói User Case quản lý luật 26
Hình 17 Biểu đồ tuần tự của chức năng chẩn đoán 27
Hình 18 Biểu đồ tuần tự quản lý bệnh 27
Hình 19 Biểu đồ tuần tự quản lý thuốc 28
Hình 20 Biểu đồ tuần tự quản lý triệu chứng 28
Hình 21 Biểu đồ tuần tự quản lý người dùng 29
Hình 22 Biểu đồ tuần tự quản lý luật 29
Hình 23 Cấu trúc cơ sở dữ liệu 30
Hình 24 Thiết kế cơ sở tri thức 33
Hình 25 Nội dung bảng luật 34
Hình 26 Nội dung bảng triệu chứng 34
Hình 27 Nội dung bảng luật_triệu chứng 34
Hình 28 Nội dung bảng bệnh 34
Hình 29 Cấu trúc của bộ nhớ làm việc sử dụng Session 35
Hình 30 Khai báo component Rulesprocess 37
Hình 31 Phương thức startup 38
Hình 32 Phương thức _nextQuestion 38
Hình 33 Phương thức _getWorkingMemory và _saveWorkingMemory 39
Hình 34 Phương thức process 39
Hình 35 Trang chủ 40
Hình 36 Kết quả chẩn đoán 41
Hình 37 Tin tức 42
Hình 38 Giao diện trên điện thoại 43
Hình 39 Trang giới thiệu xem trên di động 44
Hình 40 Đăng nhập vào phần quản trị 45
Hình 41 Quản lý người dùng 46
Hình 42 Thêm người dùng 46
Trang 9Hình 45 Quản lý bệnh 48
Hình 46 Thêm bệnh lý mới 48
Hình 47 Quản lý triệu chứng 49
Hình 48 Thêm triệu chứng mới 49
Hình 49 Quản lý thuốc 50
Hình 50 Thêm một loại thuốc mới 50
Hình 51 Quản lý các luật 51
Hình 52 Thêm luật mới – bước 1 52
Hình 53 Thêm luật mới – bước 2 52
Hình 54 Thêm luật mới – bước 3 52
Trang 10MỤC LỤC BẢNG BIỂU
Bảng 1 Bảng bệnh 31
Bảng 2 Bảng nhóm bệnh 31
Bảng 3 Bảng triệu chứng 31
Bảng 4 Bảng thuốc 31
Bảng 5 Bảng luật 32
Bảng 6 Bảng người dùng 32
Bảng 7 Bảng luật_triệu chứng 32
Bảng 8 Bảng bệnh_thuốc 32
Trang 11Chương mở đầu trình bày những vấn đề tổng quan về đề tài: đặt vấn đề, mục đích, ýnghĩa của đề tài, nội dung của đề tài, các kết quả dự kiến đạt được Cuối cùng là phần tóm tắt
bố cục của luận văn “Hệ chuyên gia chẩn đoán bệnh trực tuyến”
Hiện nay nền y học của thế giới đã có những bước phát triển vượt bậc, nhiều căn bệnhđược phát hiện, nhiều phương pháp điều trị mới được tìm ra đem lại nhiều lợi ích cho conngười
Ngoài sự đa dạng và phức tạp về bệnh, số lượng bệnh nhân ngày càng nhiều do sự ônhiễm môi trường, thức ăn, nguồn nước,… nên vấn đề chẩn đoán bệnh gặp nhiều khó khăn.Tại Việt Nam, tình trạng quá tải ở các bệnh viện xảy ra thường xuyên, tỷ lệ giữa bệnh nhân
và bác sĩ rất lớn Từ thực tế này, tôi cùng với TS Huỳnh Công Pháp đã quyết định nghiên cứu
và phát triển một hệ thống với tham vọng trợ giúp hoặc thay thế các chuyên gia trong việcchẩn đoán bệnh, đặc biệt cho cộng đồng người Việt Nam và chẩn đoán các bệnh nhiệt đới.Thực tế, qua tìm hiểu chúng tôi nhận thấy hiện nay có một số hệ chuyên gia chẩn đoánbệnh đang tồn tại Tuy nhiên, hầu hết các hệ chuyên gia này đều ở dạng ngôn ngữ nướcngoài, gây khó khăn cho đại đa số những bệnh nhân ở Việt Nam do rào cản ngôn ngữ
Với mục đích cho phép bệnh nhân dễ dàng sử dụng và phát huy tối đa công suất phục vụ,
hệ thống phải là một hệ thống trực tuyến, xây dựng trực tuyến Đó sẽ là một bác sĩ ảo trựctuyến, mọi người có thể sử dụng trình duyệt web và tham khảo chẩn đoán của bác sĩ này đểbiết tình trạng bệnh của mình và các phương pháp điều trị thích hợp Đồng thời các bác sĩ,các chuyên gia y tế có thể cải tiến, sửa chữa kho tri thức để làm cho hệ thống ngày một hoànthiện và chẩn đoán được chính xác hơn với số lượng bệnh nhiều hơn
.II Mục đích và ý nghĩa của đề tài
.II.1 Mục đích
Đề tài được xây dựng với hai mục đích chính:
Thứ nhất: tìm hiểu và nghiên cứu về trí tuệ nhân tạo, hệ chuyên gia, các thuật toán suydiễn, các ứng dụng của hệ chuyên gia, các hệ chuyên gia chẩn đoán bệnh hiện tại trên thếgiới
Thứ hai: xây dựng một ứng dụng có tính thực tiễn cao với chức năng là một bác sĩ ảo chẩnđoán bệnh thông qua việc đưa ra các câu hỏi cho người dùng Đồng thời, cung cấp công cụcho các bác sĩ, các chuyên gia y tế chỉnh sửa cơ sở tri thức để mang đến kết quả ngày càngchính xác và đem lại niềm tin cho người sử dụng
Trang 12báu trong nghiên cứu, tìm hiểu, tra cứu các tài liệu và xây dựng một hệ thống với những kiếnthức hoàn toàn mới mẻ.
Qua thời gian làm việc và thực tập tại 2 công ty phần mềm hợp chính (Fiisoft) và công typhần mềm Trí thức Việt, bản thân đã hiểu và nắm bắt được quy trình sản xuất phần mềm, hệchuyên gia chẩn đoán bệnh trực tuyến là kết quả của việc áp dụng chặt chẽ quy trình vào thựchiện
Những kiến thức và kinh nghiệm thu thập được trong suốt thời gian thực hiện đề tài sẽ làhành trang vững chắc giúp bản thân có một khởi đầu tốt sau khi ra trường
Hệ chuyên gia chẩn đoán bệnh trực tuyến là một đề tài có tính thực tiễn cao, hoàn toàn cóthể đem triển khai và đưa vào sử dụng, phục vụ cho nhu cầu khám chữa bệnh của mọi người,cũng như là công cụ tham khảo đắc lực cho các bác sĩ
.II.3 Nội dung của đề tài
Hệ chuyên gia là một hệ thống phức tạp cần sự đóng góp công sức của nhiều người cũngnhư sự cố vấn của các chuyên gia thực sự, do đó trong khuôn khổ đề tài này tôi chỉ xây dựngmột hệ thống với chức năng chẩn đoán một số bệnh đơn giản với mong muốn đây sẽ là nềntảng để xây dựng một hệ chuyên gia hoàn chỉnh, thuần việt
.II.3.1 Đối tượng nghiên cứu
Trí tuệ nhân tạo: lịch sử hình thành, định nghĩa, ứng dụng
Hệ chuyên gia: định nghĩa, các ứng dụng thực tế của hệ chuyêngia nhất là trong lĩnh vực y học
Hệ chuyên gia dựa trên luật, thuật toán suy diễn tiến, suy diễn lùi, thuật toán mạng lưới
Các bệnh nhiệt đới thường gặp ở Việt Nam với các triệu chứng
rõ ràng, đơn giản
Các loại thuốc
.II.3.2 Phương pháp nghiên cứu
Thu thập tài liệu, đọc và nghiên cứu tài liệu
Tìm hiểu hệ chuyên gia, cách thức triển khai một hệ chuyên gia, các thuật toán liên quan
Lựa chọn thuật toán phù hợp, nghiên cứu cách triển khai
Tìm hiểu các kiến thức về y học, các loại bệnh thường gặp, các triệu chứng, bệnh lý, cách chữa trị và các loại thuốc
Trang 13 Tìm hiểu ngôn ngữ lập trình PHP, framework CakePHP, hệ quản trị cơ sở dữ liệu MySQL để xây dựng trên hệ thống chạy trực tuyến.
Trang 14.III Kết quả dự kiến đạt được
Xây dựng một hệ chuyên gia hoàn chỉnh chạy trực tuyến cho phép chẩn đoán bệnh sau khingười sử dụng trả lời một số câu hỏi về triệu chứng dạng Có / Không, sau đó đưa ra hướngdẫn về cách chữa trị và các loại thuốc liên quan Chẩn đoán của hệ thống chỉ mang tính thamkhảo cho người sử dụng và các bác sĩ chứ không thay thế quyết định của bác sĩ
Xây dựng phần quản lý cho phép bác sĩ hay các chuyên gia y tế có thể chỉnh sửa, bổ sung
dữ liệu cho hệ thống ( thay đổi cơ sở tri thức ) làm cho hệ thống ngày càng hoàn thiện: độchính xác cao hơn, chẩn đoán được nhiều loại bệnh, các phương án chữa trị phù hợp hơn
Có giao diện sử dụng thân thiện, dễ sử dụng đối với tất cả mọi người Hổ trợ 2 ngôn ngữ làtiếng Việt và tiếng Anh
.IV Bố cục luận văn
Luận văn được tổ chức gồm 3 chương chính và các phần mở đầu, kết luận:
Chương 1: Cơ sở lý thuyết
Cơ sở lý thuyết đã tìm hiểu, công cụ, ngôn ngữ hỗ trợ giải quyết vấn đề
Chương 2: Đặc tả, Phân tích và thiết kế hệ thống
Đặc tả các yêu cầu, từng bước phân tích, thiết kế hệ thống
Chương 3: Xây dựng chương trình và minh họa kết quả
Xây dựng hệ chuyên gia, giải thích thuật toán, các hình ảnh minh họa của ứng dụng
Trang 15Chương cơ sở lý thuyết trình bày những lý thuyết liên quan đến đề tài đó là trí tuệ nhântạo, ứng dụng của trí tuệ nhân tạo, hệ chuyên gia, cách thức xây dựng một hệ chuyên gia,những ứng dụng của hệ chuyên gia Phần này cũng trình bày về những hệ chuyên gia chẩnđoán bệnh trên thế giới như MYCIN, EMYCIN, những ưu, nhược điểm của chúng Phần cuốitrình bày về những công cụ và ngôn ngữ được sử dụng để xây dựng trang web.
.I Trí tuệ nhân tạo
.I.1 Lịch sử ra đời
Xây dựng Trí tuệ nhân tạo (TTNT), hay tạo cho máy móc khả năng suy luận, phán đoán
và cảm nhận như con người là một trong những tham vọng to lớn của loài người Tham vọngnày đã có từ lâu và cùng với sự ra đời của máy tính, con người từng bước đưa kiến thức củamình vào máy, biến chúng trở thành những công cụ thực sự có trí tuệ
TTNT đã được bắt đầu nghiên cứu từ thập niên 1950 bởi những nhà tiên phong như AllenNewell, Herbert Simon, người sáng lập phòng thí nghiệm trí tuệ nhân tạo đầu tiên ở Đại họcCarnegie Mellon, John McCarthy và Marvin Minsky, người sáng lập phòng thí nghiệm trí tuệnhân tạo tại MIT, MIT AI Lab, năm 1959 Họ đã cùng dự hội thảo về trí tuệ nhân tạo tại Đạihọc Dartmouth vào mùa hè năm 1956, do McCarthy, Minsky, Nathan Rochester của IBM vàClaude Shannon tổ chức
Thập niên 1980, mạng nơ-ron được sử dụng rộng rãi với thuật toán truyền ngược(backpropagation), thuật toán này đã được mô tả đầu tiên bởi Paul John Werbos vào năm
1974 Thập niên 1990 đánh dấu các thành tựu chính trong nhiều lĩnh vực của TTNT và đượcthể hiện trong nhiều ứng dụng đa dạng Nổi tiếng nhất là Deep Blue, một máy tính chơi cờvua đã thắng Garry Kasparov trong một trận đấu 6 ván nổi tiếng năm 1997 DARPA tuyên bốrằng chi phí tiết kiệm được do cài đặt các phương pháp TTNT cho việc lập lịch cho các đơn
vị trong Chiến tranh vùng Vịnh lần thứ nhất đã bù lại được toàn bộ đầu tư của chính phủ Mỹcho nghiên cứu TTNT kể từ thập niên 1950
.I.2 Định nghĩa về trí tuệ nhân tạo
Trí tuệ nhân tạo hay trí thông minh nhân tạo (tiếng Anh: artificial intelligence haymachine intelligence, thường được viết tắt là AI) là trí tuệ được biểu diễn bởi bất cứ một hệthống nhân tạo nào Thuật ngữ này thường dùng để nói đến các máy tính có mục đích khôngnhất định và ngành khoa học nghiên cứu về các lý thuyết và ứng dụng của trí tuệ nhân tạo.Trí thông minh nhân tạo liên quan đến cách cư xử, sự học hỏi và khả năng thích ứngthông minh của máy móc Trí thông minh nhân tạo đã trở thành một môn học, với mục đích
Trang 16.I.3 Các trường phái trí tuệ nhân tạo
Trí tuệ nhân tạo chia thành hai trường phái tư duy: TTNT truyền thống và Trí tuệ tínhtoán
TTNT truyền thống bao gồm các phương pháp hiện được phân loại là các phương pháphọc máy (machine learning), đặc trưng bởi hệ hình thức (formalism) và phân tích thống kê
Nó còn được biết với các tên TTNT biểu tượng, TTNT logic, TTNT ngăn nắp và TTNT cổđiển Các phương pháp gồm có:
Mạng neuron: Các hệ thống mạnh về nhận dạng mẫu (pattern recognition).
Hệ mờ (Fuzzy system): Các kỹ thuật suy luận không chắc chắn, đã được sử dụng
rộng rãi trong các hệ thống công nghiệp hiện đại và các hệ thống quản lý sản phẩmtiêu dùng
Tính toán tiến hóa (Evolutionary computation): Ứng dụng các khái niệm sinh học
như quần thể, biến dị và đấu tranh sinh tồn để sinh các lời giải ngày càng tốt hơn cho bài toán Các phương pháp này thường được chia thành các thuật toán tiến hóa (ví dụ thuật toán gien) và trí tuệ bầy đàn (swarm intelligence) (chẳng hạn hệ kiến)
TTNT dựa hành vi (Behavior based AI): Một phương pháp mô-đun để xây dựng
các hệ thống TTNT bằng tay
Người ta đã nghiên cứu các hệ thống thông minh lai, trong đó kết hợp hai trường pháinày
.I.4 Ứng dụng của trí tuệ nhân tạo
TTNT đã được sử dụng ở rất nhiều ngành khác nhau, như là:
Ngân hàng: Các hệ thống dự báo, phân tích tài chính
Quân đội: Các hệ thống tự động, các hệ thống ra lệnh và trợ giúp quyết định
Các trò chơi máy tính: TTNT được áp dụng rất nhiều vào các trò chơi máy tính
hiện nay nhằm tăng sự thông minh cho các nhân vật, các chiến thuật hấp dẫn hơn
Y học: Những hệ chuyên gia chẩn đoán các loại bệnh được sử dụng rất nhiều trong
y học
Giáo dục: Các hệ thống hỏi đáp, trợ giúp giảng dạy, trợ giúp học tập …
Vũ trụ: Hệ thống không người lái, các robot thông minh có khả năng tự di chuyển
Trang 17 Và còn nhiều ứng dụng khác của TTNT trên nhiều lĩnh vực khác
.II Giới thiệu về hệ chuyên gia
.II.1 Cơ sở tri thức
Tri thức là những gì mà một người có thể biết và hiểu được Tri thức có thể được phânloại thành tri thức có cấu trúc hoặc không có cấu trúc, tri thức rõ ràng hay là tri thức ngụ ý,không rõ ràng Những gì mà chúng ta biết được thường là các tri thức rõ ràng Tri thức không
có cấu trúc mà vẫn hiểu được, nhưng không được phát biểu rõ ràng là các tri thức ngầm ý, trithức không rõ Khi tri thức được tổ chức để có thể chia sẻ thì lúc đó tri thức được gọi là trithức có cấu trúc Để có thể chuyển đổi từ tri thức không rõ ràng sang tri thức rõ ràng thì trithức đó cần phải được cấu trúc hóa và định dạng lại
Phân loại tri thức: như đã đề cập ở trên, tri thức có nhiều loại tùy thuộc vào tính chất cấutrúc và tính chất rõ ràng của tri thức Tri thức có thể được phân loại thành các loại tri thứcsau, đây là các loại tri thức thường gặp trong thực tế:
Tri thức thủ tục : Trong thực tế, nhiều bài toán mà ta có thể gặp là các bài toán mà
tri thức không đơn thuần là khái niệm hay mô tả mà là một hành động hay một công thức, thủ tục Ta gọi các tri thức như vậy là các Tri thức thủ tục ( diễn tả các vấn đề được giải quyết )
Tri thức mô tả : Cho biết một vấn đề được thấy như thế nào.
Tri thức meta : Diễn tả tri thức về tri thức.
Tri thức may rủi : Diễn tả các luật may rủi dẫn dắt quá trình suy lý Tri thức này
có được dựa trên kinh nghiệm tích lũy nên còn gọi là heuristic
Tri thức cấu trúc : Mô tả mô hình tri thức tổng quát của chuyên gia về một vấn đề.
Tùy thuộc vào ứng dụng cụ thể mà tri thức được biểu diễn theo những phương thức khácnhau Ứng với mỗi dạng biểu diễn đó có một cơ chế để xử lí tri thức đó
Hệ cơ sở tri thức là một tập hợp các cơ sở lập luận, các luật, các quy trình, thủ tục được tổchức thành các lược đồ (giản đồ) Đó là tập hợp của tất cả các thông tin cũng như tất cả kiếnthức về một lĩnh vực cụ thể nào đó
Quá trình thu thập tri thức được gọi là quá trình rút trích tri thức và định dạng tri thứcđược thực hiện từ nhiều nguồn khác nhau, đặc biệt là từ các chuyên gia trong các lĩnh vực cụthể Công việc này là một trong những bước quan trọng và thường mất rất nhiều thời giancũng như công sức trong quá trình xây dựng một hệ cơ sở tri thức được sử dụng trong hệchuyên gia Trong quá trình phát triển một hệ chuyên gia, các kĩ sư tri thức, những nhàchuyên môn trong lĩnh vực trí tuệ nhân tạo, có nhiệm vụ thu thập kiến thức từ các chuyên giathuộc lĩnh vực chuyên ngành, sau đó “sao chép” các tri thức đó vào cơ sở tri thức và diễn đạtcác tri thức đó dưới dạng có thể dùng được trong hệ chuyên gia
Trang 18.II.2 Định nghĩa về hệ chuyên gia
Hệ chuyên gia là một chương trình máy tính được bắt nguồn từ một nhánh của khoa họcmáy tính, gọi là Trí tuệ nhân tạo (Artificial Intelligence-AI)
Hình 1 Các thành phần của hệ chuyên gia
Những chương trình TTNT đạt được khả năng giải quyết các vấn đề trong các lĩnh vực cụthể ở mức độ chuyên gia bằng cách sử dụng một cơ sở tri thức trong lĩnh vực đó gọi là các
hệ cơ sở tri thức hoặc hệ chuyên gia Thông thường, thuật ngữ Hệ chuyên gia được dùngriêng cho các chương trình mà cơ sở tri thức của nó chứa đựng các tri thức được dùng bởi cácchuyên gia thực thụ, khác với các tri thức được thu thập trong các sách giáo khoa hoặc khôngphải là tri thức chuyên môn Tuy nhiên, đôi khi 2 thuật ngữ Hệ chuyên gia và Hệ cơ sở trithức, được sử dụng tương tự như nhau Phạm vi của trí tuệ nhân tạo cố gắng để đạt đượctrong một hệ chuyên gia gọi là lĩnh vực chuyên ngành Nhiệm vụ này có thể là các hoạt độngnhư giải quyết vấn đề, hoặc là các suy luận hướng đích Còn chuyên ngành là phạm vi trithức mà nhiệm vụ đang thực hiện Các chức năng (nhiệm vụ) thông thường như chẩn đoánbệnh, lập kế hoạch, lập lịch, thiết lập cấu hình và thiết kế, …Một ví dụ cụ thể là lập lịch baycho phi hành đoàn trong các chuyến bay của một hãng hàng không, hay phân tích cấu trúccủa một tòa nhà và đưa ra các giải pháp hay tư vấn về việc thiết kế tòa nhà đó
Việc xây dựng một hệ chuyên gia được hiểu như là việc ứng dụng các kiến thức khoa họcvào việc vận hành và bảo trì tri thức, và người vận hành tri thức này gọi là người thiết kế trithức Người thiết kế tri thức phải đảm bảo rằng máy tính luôn có đủ tri thức để giải quyết mộtvấn đề nào đó Người thiết kế tri thức phải chọn một hoặc nhiều hình thức miêu tả các tri thứcđược yêu cầu dưới dạng các mô hình kí hiệu trong bộ nhớ của máy tính, và như vậy anh taphải chọn một cách biểu diễn tri thức Và anh ta cũng phải đảm bảo rằng máy tính có thể sửdụng tri thức một cách có hiệu quả bằng việc chọn ra một số các phương pháp lập luận
Mô tơ suy diễnGiao
tiếp người dùng
Trang 19.II.3 Xây dựng Hệ chuyên gia
Mỗi hệ chuyên gia đều bao gồm 2 thành phần cơ bản là : hệ cơ sở tri thức (và cơ sở dữliệu), và bộ máy suy diễn hay bộ máy lập luận Tùy theo cách biểu diễn tri thức mà ta có thểxây dựng mô tơ suy diễn theo thuật giải suy diễn nào
Cấu trúc của một hệ chuyên gia thường được phân ra thành 7 thành phần:
Hình 2 Những thành phần cơ bản của một hệ chuyên gia
Cơ sở tri thức (Knowledge Base): Bao gồm các luật thường được lưu ở dạng file
văn bản hoặc cơ sở dữ liệu
Bộ nhớ làm việc (Working Memory): Cơ sở dữ liệu toàn cục chứa các sự kiện phục
vụ cho các luật
Máy suy diễn (Inference Engine): Công cụ (chương trình, bộ xử lý) tạo ra suy luận
bằng cách xem xét các luật nào thỏa mãn các sự kiện, các đối tượng Thực thi luật
có độ ưu tiên cao nhất
Lịch công việc: Danh sách các luật ưu tiên do máy suy diễn tạo ra thỏa mãn các sự
kiện
Khả năng giải thích: Giải thích cách lập luận của hệ thống cho người sử dụng
(những luật nào được thực thi, các giả thiết nào thỏa mãn)
Khả năng thu nhận tri thức: Khả năng cho phép người sử dụng bổ sung thêm tri
Giao diện người
sử dụngLịch công việc
Trang 20Cơ sở tri thức của hệ chuyên gia bao gồm cả tri thức thực tế và tri thức heuristic Tri thứcthực tế là tri thức chuyên ngành mà được phổ biến và chia sẻ trong phạm vi rộng, có thể tìmthấy dễ dàng trong sách giáo khoa hoặc trong các sách báo, và nhìn chung là được chấp nhậndựa trên các kiến thức đúng đắn trong từng lĩnh vực cụ thể Còn tri thức heuristic mang ít tínhnghiêm ngặt hơn, dựa nhiều vào kinh nghiệm và sự phán đoán hơn Trái với tri thức thực tế,tri thức heuristic ít khi được thảo luận, và mang đậm tính cá nhân Nó là kiến thức rút ra từviệc thực hành và phán đoán tốt, và sự lập luận chặc chẽ trong từng lĩnh vực.
Biểu diễn tri thức là mô hình hóa và tổ chức tri thức Một phương pháp biểu diễn tri thứcđược sử dụng rộng rãi là sử dụng hệ các luật dẫn hoặc là dùng các luật đơn giản Một luật baogồm một phần IF và một phần là THEN (còn gọi là điều kiện và kết luận) Phần IF liệt kê mộttập hợp các điều kiện được liên kết logic với nhau Một mẫu tri thức được biểu diễn bởi luậtdẫn có liên quan đến dòng lập luận đang được khai triển nếu như phần IF của luật được thỏamãn ; vì vậy, phần THEN của luật có thể được kết luận, hoặc là vấn đề của luật có thể đượcgiải quyết
Ví dụ:
Nếu điều-kiện P thì kết luận C
Nếu trạng-thái S thì hành-động A
Nếu các điều kiện C1, … , Cn đúng thì kết luận C đúng
Hệ luật dẫn được sử dụng rộng rãi là do các nguyên nhân sau:
Tính đơn thể : Mỗi luật định nghĩa một phần nhỏ và độc lập các tri thức.
Dễ thêm: Có thể thêm các luật mới vào CSTT tương đối độc lập với các quy tắc đã
có
Dễ sửa đổi: Có thể sửa đổi các quy tắc trong CSTT tương đối độc lập với các quy
tắc khác
Trong suốt: Hệ thống dựa trên luật dẫn có khả năng giải thích các hành động cũng
như các quyết định của nó
Tri thức là thành phần quan trọng nhất trong bất kì một hệ chuyên gia nào Sức mạnh củacác hệ chuyên gia dựa vào các tri thức cụ thể và có chất lượng mà nó chứa đối với các lĩnhvực chuyên ngành Do tầm quan trọng của tri thức đối với các hệ chuyên gia và vì hiện naycác phương pháp thu thập tri thức còn tiêu tốn nhiều chi phí, các hệ chuyên gia trong tươnglai cần phải giải quyết được vấn đề thu thập tri thức và cải tiến việc hệ thống hóa cũng nhưviệc biểu diễn 1 hệ cơ sở tri thức lớn
Với mục tiêu xây dựng một hệ chuyên gia có những bước suy luận giống như con ngườithì đòi hỏi trước hết hệ thống cần phải có một cơ sở tri thức phong phú và sâu rộng về vấn đề
mà hệ chuyên gia cần giải quyết, quá trình thu thập cơ sở tri thức là một quá trình quan trọngđối với bất cứ một hệ chuyên gia nào, và việc quản lí cơ sở tri thức cũng là một vấn đề quantrọng
Trang 21.II.4 Những thuận lợi và khó khăn của Hệ chuyên gia
.II.4.1 Thuận lợi
Tính lâu dài của Hệ chuyên gia, các chuyên gia là con người vẫn có thể quên những lậpluận hay khái niệm nào đó, nhưng hệ chuyên gia thì không Ngoài ra hệ chuyên gia còn cókhả năng tái sử dụng cho các mục đích khác nhau, với các lĩnh vực khác nhau, một cáchnhanh chóng và dễ dàng Trong khi đó, quá trình đào tạo ra một chuyên gia là con người phảimất một khoảng thời gian và công sức không nhỏ
Các hệ chuyên gia có thể dùng các luật hay quy tắc một cách nhanh chóng mà không bịnhầm lẫn, nếu trong trường hợp có quá nhiều quy tắc hay luật thì một chuyên gia là conngười không xử lí nhanh như một hệ chuyên gia được
Về tính hiệu quả, một hệ chuyên gia có thể tăng số lượng được đưa vào trong hệ và giảm
đi các chi phí nhân công Và mặc dù các hệ chuyên gia được xây dựng và bảo trì thường tốnkém, nhưng để vận hành các hệ chuyên gia không phải tốn nhiều công sức và tiền bạc Việcphát triển và duy trì một hệ chuyên gia có thể được trải đều ra cho nhiều người, và tổng chiphí cho việc này sẽ hợp lí hơn rất nhiều so với việc tìm kiếm một chuyên gia thực thụ
Nếu như không có sự trục trặc về thiết bị máy móc thì một hệ chuyên gia có thể hoạtđộng rất ổn định, với các tập luật đã được xây dựng và cùng với các khả năng xử lí khác, hệ
có thể đưa ra các quyết định gần như nhau trong các tình huống tương tự nhau Ngoài ra, một
hệ chuyên gia có thể cung cấp các giải pháp một cách thường xuyên trong một quá trình giảiquyết vấn đề Và trong một thời điểm thì một hệ chuyên gia có khả năng giải quyết đượcnhiều vấn đề hơn so với một chuyên gia là con người
Một thuận lợi lớn khác của các hệ chuyên gia đó là kiến thức của rất nhiều chuyên giakhác nhau được đưa vào hệ chuyên gia, điều này rõ ràng là làm cho cơ sở tri thức của một hệchuyên gia rộng và phong phú hơn so với một vài chuyên gia đơn lẻ Và trong lĩnh vực kinh
tế, hệ chuyên gia sẽ có thể giảm thiểu được nhiều rủi ro hơn
.II.4.2 Những bất lợi của một hệ chuyên gia dựa trên luật
Một điều dễ nhận ra là các hệ chuyên gia không có khả năng học như các hệ thống thôngminh khác như hệ Suy luận dựa tình huống (Case-based reasoning) hay Mạng nơron (Neuralnetworks), vì vậy nếu có những thay đổi từ phía các chuyên gia là con người thì hệ chuyêngia cần được cập nhật lập tức Hệ chuyên gia không có khả năng sáng tạo và không có đượccác giác quan thông thường như con người, trong những tình huống bất thường, hệ chuyêngia không có khả năng giải quyết
Ngoài ra, các hệ chuyên gia không có được những kinh nghiệm như các chuyên gia là conngười, và cũng không thể nhận ra được vấn đề nếu như vấn đề đó không thuộc phạm vi “hiểubiết” của hệ thống
Trang 22.II.5 Những ứng dụng của Hệ chuyên gia
.II.5.1 Phân tích tín dụng
Rất nhiều công ty đã sử dụng hệ chuyên gia trợ giúp trong việc phân tích tín dụng Cái lợi
ở đây là sự nhanh chóng và chính xác, điều này thì hơn hẳn so khả năng thực hiện của conngười Hãng American Express sử dụng hệ chuyên gia để xử lí những yêu cầu bất thường.Điều này đã giúp cho hãng giải quyết các yêu cầu nhanh hơn rất nhiều lần so với việc sửdụng các đại lí dịch vụ khách hàng, cũng như giảm đi tỷ lệ lỗi trong việc ước lượng thông tin
.II.5.2 An toàn thương mại và Phân tích danh mục vốn đầu tư
Morgan Stanly và Rockwell Int là 2 trong số nhiều công ty đầu tư có sử dụng hệ chuyêngia Việc soạn thảo một danh mục vốn đầu tư thường tốn nhiều thời gian, nhưng một hệchuyên gia thực hiện việc này rất nhanh và tạo ra một kết quả với độ chắc chắn đáng tin cậy.Công ty Morgan Stanly ước tính là đã tăng được một khoảng lợi nhuận 1 triệu USD sau khi
đã cài đặt hệ thống của họ
.II.5.3 Hệ chuyên gia phân tích chiến lược kinh doanh – BusinessInsight
Business Insight (BI) là một hệ chuyên gia kết hợp sự phân tích về chiến lược chất lượng
và số lượng để hỗ trợ cho những nhà quản trị chiến lược trong các Công ty có thể nhận ranhững hướng phát triển trong tương lai cho Công ty Hệ chuyên gia này sử dụng những công
cụ hỗ trợ ra quyết định để tích hợp những dữ liệu về số lượng cũng như chất lượng mà ngườiquản trị cần để hoạch định một chiến lược
Dựa trên các lý thuyết về chiến lược marketing đã được xác nhận, BI cung cấp những sựphân tích khác nhau để giúp cho các nhà quản trị phát triển những chiến lược kinh doanh vớicác mức độ khác nhau Hệ thống này hoạt động rất hiệu quả đối với những công ty chỉ sảnxuất một loại sản phẩm hoặc cung cấp một loại dịch vụ
Có tất cả khoảng 400 sự kiện (fact) được BI yêu cầu người dùng cung cấp Sử dụngnhững sự kiện được đưa vào bởi người dùng hoặc bằng suy luận từ cơ sở tri thức, BI sẽ đưa
ra những kết luận hay những sự xác nhận về những vấn đề mà người dùng quan tâm
.II.5.4 FINEVA - Hệ chuyên gia phân tích tài chính
FINEVA, viết tắt từ FINancial EVAluation (Matsatsinis, Doumpos & Zopounidis1997), là một hệ chuyên gia chuyên về phân tích tài chính, sử dụng phương pháp luận về thuthập và biểu diễn tri thức một cách hoàn thiện Đây là một hệ cơ sở tri thức hỗ trợ đưa raquyết định đánh giá về hoạt động và khả năng sống sót của một công ty Hệ thống này đượcphát triển dựa trên trình tiện ích hệ chuyên gia M4, được xây dựng bởi N.F Matsatsinis,M.Doumpos và C Zopounidis, thuộc trường Đại học Kĩ thuật, thành phố Crete, Hy Lạp
Hệ thống này sử dụng khoảng hơn 1000 luật dẫn để biểu diễn cho hơn 12000 sự kết hợpgiữa những tiêu chuẩn đánh giá với nhau Mô tơ suy diễn của FINEVA sử dụng phương pháplập luận tiến và lập luận lùi để đưa ra kết luận về hoạt động của các công ty
Trang 23.III Những hệ chuyên gia chẩn đoán bệnh trên thế giới
.III.1 Hệ chuyên gia MYCIN
MYCIN là một hệ chuyên gia được phát triển rất sớm từ những năm 1970 tại trường đạihọc Stanford Nó được viết bằng ngôn ngữ Lisp và là đề tài Tiến sĩ của Edward Shortliffedưới sự hướng dẫn của Bruce Buchanan, Stanley N Cohen và các đồng sự Hệ chuyên giaMYCIN được phát triển để đưa ra những kết luận, lời khuyên khi chẩn đoán các bệnh nhânnhiễm trùng máu Đây là một hệ chuyên gia dựa trên luật và sự kiện MYCIN sử dụng cơ chếlập luật gần đúng để xử lý các luật suy diễn dựa trên độ đo chắc chắn Khi ra đời MYCIN có
200 luật và hiện nay là 500 luật
Do có nhiều loại thuốc kháng sinh, kháng vi cũng như có nhiều loại vi trùng với cáccách xử lý khác nhau, nên chỉ có các thầy thuốc chuyên gia thuộc lĩnh vực này mới có thể
có liệu pháp chữa trị hiệu quả Mục đích của MYCIN là :
Là một hệ thống dễ sử dụng
Khả năng vận hành đáng tin cậy
Chứa đựng nhiều tri thức liên quan đến lĩnh vực kháng sinh, kháng vi
Khả năng xử lý các chỉ dẫn chữa trị không đúng hoặc không đầy đủ
Khả năng giải thích và chỉ dẫn chữa trị
MYCIN là một chương trình tra cứu MYCIN cung cấp cho các thầy thuốc những ýkiến chữa trị liên quan đến liệu pháp kháng sinh
MYCIN là một hệ chuyên gia có các đặc tính :
Lập trình nghiệm suy
Tri thức chuyên gia về lĩnh vực kháng sinh
Giải thích kiểu tương tác
Khả năng phán đoán
MYCIN có khoảng 500 luật và các sự kiện rất tiêu biểu Hoạt động của hệ thống nhưsau:
1 MYCIN yêu cầu thông tin về lâm sàng
2 Bắt đầu suy luận từ những tri thức hiện có
3 Đưa ra các phán đoán và lời khuyên
4 Trả lời các câu hỏi liên quan đến suy luận
Nhược điểm của MYCIN đó là:
Sử dụng giao diện dòng lệnh, do đó phải trải qua một khóa đào tạo để sử dụng thành thạo MYCIN
Ngôn ngữ sử dụng là tiếng Anh
Trang 24 Tri thức của MYCIN chỉ được gói gọn trong lĩnh vực các bệnh nhiễm trùng.
Tiếp theo sau MYCIN, hệ EMYCIN ra đời ra đời tại đại học Stanford EMYCIN là một hệchuyên gia tổng quát được tạo lập bằng cách loại phần cơ sở tri thức ra khỏi hệ MYCIN.EMYCIN cung cấp một cơ chế lập luận và tuỳ theo bài toán cụ thể sẽ bổ sung tri thức riêngcủa bài toán đó để tạo thành hệ chuyên gia EMYCIN là nền tảng cho sự ra đời của nhiều hệchuyên gia trong nhiều lĩnh vực khác nhau
Một hệ chuyên gia khác cũng được phát triển từ MYCIN là TMYCIN (Tiny EMYCIN) làmột hệ chuyên gia có các chức năng rút gọn từ EMYCIN để dùng trong hệ thống nhỏ và đơngiản Hệ chuyên gia này được phát triển từ đầu sử dụng ngôn ngữ LIPS và hoàn toàn khác với
mã nguồn của EMYCIN
.III.2 Hệ chuyên gia PUFF
PUFF là một hệ chuyên gia dùng để chẩn đoán các bệnh về phổi và đưa ra báo cáo để lưuvào hồ sơ của bệnh nhân PUFF được phát triển vào năm 1983 bởi trường đại học Stanford vàtrung tâm y tế Pacific Presbyterian PUFF là hệ chuyên gia đầu tiên được phát triển từEMYCIN nên nó cũng mang những đặc tính của MYCIN:
Hệ chuyên gia dựa trên luật
Có cơ chế giải thích
Khả năng thu nhận tri thức
Nó bao gồm 400 luật, sử dụng thuật toán suy diễn lùi Cơ sở tri thức của PUFF sau đóđược tích hợp vào sản phẩm thương mại “Pulmonary Consult” và được sử dụng rộng rãi trêntoàn thế giới
.III.3 Hệ chuyên gia CADUCEUS
CADUCEUS là một hệ chuyên gia y tế ra đời năm 1980 (bắt đầu xây dựng từ năm 1970,
và phải mất một thời gian dài để xây dựng cơ sở tri thức) bởi Harry Pople tại Đại họcPittsburgh Mục đích của hệ chuyên gia này là cải tiến MYCIN để tập trung vào nhiều vấn đềtoàn diện hơn so với một lĩnh vực
CADUCEUS cũng là một hệ chuyên gia chẩn đoán bệnh dựa trên luật, nó có thể chẩnđoán lên đến 1000 bệnh khác nhau CADUCEUS sử dụng một động cơ suy luận tương tự nhưMYCIN với một số cải tiến về thuật toán CADUCEUS là hệ chuyên gia có cơ sở tri thức lớnnhất với khoảng 80% lượng kiến thức y học của thế giới
Trang 25.IV Ngôn ngữ và công cụ xây dụng web
.IV.1 Ngôn ngữ Php
PHP là viết tắt của Personal Home Page ra đời năm 1994 do Rasmus Lerdorf và được pháttriển bởi nhiều cá nhân và tập thể khác , do đó PHP được xem như sản phẩm của mã nguồnmở
PHP là kịch bản trình chủ chạy trên phía server (server script) như các server script khác(asp , jsp , cold fushion)
PHP là kịch bản cho phép ta xây dựng web mạng Internet hay Intranet tương tác với mọi
cơ sở dữ liệu mySQL, PostgreSQL, Oracle, SQL Server và Access
Chúng tôi sử dụng PHP trong đề tài vì những đặc điểm sau:
Hoàn toàn miễn phí
Được cập nhật liên tục
Được sự hổ trợ lớn từ cộng đồng với rất nhiều công cụ, thư viện, framework
Dễ học, dễ tìm kiếm tài liệu vì có số người sử dụng lớn
Bản thân đã có kinh nghiệm và đã làm việc với ngôn ngữ PHP trong 3 năm do đó việc phát triển hệ thống dễ dàng và nhanh chóng hơn
PHP là ngôn ngữ có thể viết theo hàm hoặc hướng đối tượng nên phù hợp với nhiều loại dự án khác nhau
Hổ trợ làm việc tốt với hệ cơ sở dữ liệu MySQL cũng hoàn toàn miễn phí
PHP dễ dàng triển khai, bảo trì, sửa chữa hơn các ngôn ngữ web khác, và phần lớn các máy chủ đều hổ trợ PHP và MySQL Vì thế chi phí phát triển một hệ thống bằng PHP nhỏ hơn nhiều so với các thế thống Java hay Dotnet
Hiện nay, có rất nhiều framework viết bằng PHP nhằm mục đích tăng tốc phát triển ứngdụng, trong đó có CakePHP Đây cũng chính là framework mà chúng tôi sử dụng trong đề tài.Với cấu trúc MVC, và các tính năng vượt trội CakePHP hiện là framework PHP phổ biếnnhất hiện nay và được nhiều trang web lớn sử dụng làm nền tảng phát triển
.IV.2 Các ngôn ngữ web khác
Ngoài ra trong đề tài còn sử dụng các ngôn ngữ như HTML, CSS , Javacript để tạo ragiao diện web và thực hiện các thao tác ở phía người dùng cho ứng dụng
Trang 26.IV.3 CakePHP
.IV.3.1 Giới thiệu
CakePHP là một nền tảng phát triển ứng dụng nhanh, mã nguồn mở miễn phí sử dụngngôn ngữ lập trình PHP Cấu trúc của nó được tạo ra để lập trình viên tạo các ứng dụng web.Mục tiêu của CakePHP là tạo ra một nền tảng có cấu trúc, cho phép lập trình viên làm việctrên cấu trúc đó một cách nhanh chóng mà không mất đi sự uyển chuyển
.IV.3.2 Tính năng
Cộng đồng năng động, thân thiện
Việc cấp phép uyển chuyển
Hỗ trợ làm việc với cơ sở dữ liệu (scaffolding)
Kiến trúc Model- View-Controller
Cho phép tạo ra các URL rõ ràng, dễ hiểu
Cung cấp khả năng bắt lỗi
Danh sách điều khiển truy cập (ACL) uyển chuyển
Cung cấp sẵn tiện ích xử lý dữ liệu (Data Sanitization)
Cung cấp khả năng lưu tạm (Caching) uyển chuyển
Cung cấp khả năng nội địa hóa (localization)
Có khả năng chạy từ bất kỳ thư mục web nào mà không cần phải cấu hình Apache hoặc chỉ cấu hình lại rất ít
.IV.3.3 Mô hình MVC trong CakePHP
CakePHP tuân theo mô hình thiết kế phần mềm chuẩn Model-View-Controller (MVC).MVC chia chương trình thành 3 phần riêng lẻ:
1 Model: Mô tả dữ liệu của ứng dụng
2 View: Hiển thị dữ liệu của model
3 Controller: Xử lý và điều hướng các yêu cầu của client
Trang 27.IV.4 Hệ quản trị cơ sở dữ liệu MySQL
.IV.4.1 Tổng quan về MySQL
MySQL là một phần mềm quản trị CSDL mã nguồn mở, miễn phí nằm trong nhóm LAMP (Linux - Apache -MySQL - PHP)
MySQL là phần mềm miễn phí hoàn toàn, ổn định, an toàn
MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft)
MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể
có nhiều bảng quan hệ chứa dữ liệu
MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL
Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng CSDL đó
.IV.4.2 Các thành phần cơ bản
Server Infomation: Lưu thông tin về Server
Service Control: Điều khiển các dịch vụ khi kết nối đến
localhost
User Administrator: Người dùng hệ thống
Server Connection: Thông tin về người dùng kết nối tới hệ
thống
Back up: Cho phép export database
Restore: Cho phép import 1 database
Catalog: Cho phép quản lí các database với các thao tác như
tạo Procedure tạo View ,xem thông tin về database,
.IV.5 Công cụ quản lí phiên bản Subversion
Subversion là một phần mềm mã nguồn mở dùng để quản lý và kiểm tra các phiênbản mã nguồn khác nhau trong quá trình phát triển phần mềm Subversion cũng còn được gọi
là svn Svn là lệnh dùng để thực hiện các chức năng Subversion trong môi trường thi hànhlệnh trên các máy vi tính Subversion được thiết kế với mục đích thay thế phần mềm quản líphiên bản Concurrent Versioning System (CVS) đã cũ và có nhiều nhược điểm
Subversion rất phổ biến trong giới mã nguồn mỡ và được dùng để quản lý mã nguồncho nhiều ứng dụng tự do như: Apache Software Foundation, KDE, GNOME, Free Pascal,FreeBSD, GCC, Python, Django, Ruby, và Mono SourceForge.net và Tigris.org, nơi chứamiễn phí chuyên nghiệp dành cho các ứng dụng tự do, đều có hỗ trợ Subversion cho các ứng
Trang 28dụng được lưu trữ trong máy chủ Ngoài ra Google Code và BountySource chỉ sử dụngSubversion để quản lý các phiên bản mã nguồn.
Trang 29Chương này gồm 2 phần chính đó là đặc tả các yêu cầu của hệ thống và phần phân tíchthiết kế hệ thống Đầu tiên, phần đặc tả các yêu cầu nêu ra các yêu cầu về chức năng cũngnhư các yêu cầu phi chức năng cần thực hiện trong đề tài Tiếp theo, dựa vào các yêu cầu đưa
ra các phân tích và thiết kế hệ thống theo chuẩn UML gồm các sơ đồ User Case, sơ đồ tuần
tự, cấu trúc cơ sở dữ liệu, các bảng trong cơ sở dữ liệu
.I.1 Yêu cầu chức năng
.I.1.1 Giới thiệu tổng quan
Hệ chuyên gia chẩn đoán bệnh trực tuyến là một hệ thống vừa cho phép người sử dụngchẩn đoán bệnh thông qua các triệu chứng và đồng thời các bác sĩ chuyên gia y tế cũng có thểthay đổi và bổ sung cơ sở dữ liệu nhằm tăng sự chính xác của hệ thống trong chẩn đoán bệnh
Hệ thống sẽ có hai phần chính:
Phần chẩn đoán: Được trình bày ở front-end của hệ thống, với giao diện thân
thiện, dễ sử dụng với mọi người
Phần quản lý: Phần này dành cho quản trị viên để quản trị các thành phần của hệ
thống và có chức năng dành cho các bác sĩ, chuyên gia y tế thay đổi cơ sở tri thức của hệ chuyên gia
Ngoài ra hệ thống còn có phần quản lý và phân quyền cho người sử dụng, bảo mật, xácthực người dùng
.I.1.2 Đặc tả chi tiết các chức năng
.1 Chức năng chẩn đoán bệnh
Đây là chức năng chính của hệ thống, chức năng này được thể hiện ở front-end cho phépngười sử dụng trả lời các câu hỏi về các triệu chứng, sau đó khi đã đủ căn cứ để quyết địnhthì thông báo đến người dùng bệnh mà hệ thống chẩn đoán và trình bày các thông tin về bệnhcũng như các thuốc điều trị
Các bệnh được đưa vào đề tài là các bệnh nhiệt đới phổ biến ở Việt Nam được lấy từ cácnguồn tài liệu tin cậy như các sách y học và các trang web về y học có uy tín ở Việt Nam
Trang 30Yêu cầu của tính năng này như sau:
Các câu hỏi về triệu chứng đưa ra ở dạng có hoặc không cho phép người sử dụng lựa chọn, sử dụng Ajax để tăng tính tương tác
Sử dụng Webservice để trao đổi dữ liệu giữa front-end và back-end nhằm phục vụ cho các ứng dụng di động sau này
Đưa ra kết luận bệnh có liên kết tới phần thông tin chi tiết về bệnh, các loại thuốc điều trị Có hình ảnh minh họa về bệnh, hình ảnh của thuốc để người dùng tiện tham khảo và tìm đúng loại thuốc cần sử dụng
Hình 4 Sơ đồ miêu tả chức năng chẩn đoán bệnh Người sử dụng các chức năng trên
Trang 31Chức năng này cho phép quản lý những người dùng hiện tại của hệ thống: xem, xóa, sửa
và thêm mới người dùng
Hình 5 Yêu cầu gói quản lý người dùng
Người sử dụng các chức năng trên
Quản trị viên hệ thống có quyền xem, chỉnh sửa xóa người dùng, những người khác không có các quyền này
Các nhóm người dùng khác có quyền đăng nhập, đăng xuất, lấy lại mật khẩu, chỉnhsửa thông tin cá nhân của mình
Đăng xuất5
Quản lý người dùng
Xem thông tin người dùng1
Chỉnh sửa người dùng2
Xóa người dùng3
Đăng nhập4
Lấy lại mật khẩu6
Trang 32.3 Quản lý các bệnh
Chức năng này cho phép quản lý các bệnh lý có trong hệ thống: xem, xóa, sửa và thêmmới bệnh lý
Hình 6 Yêu cầu gói quản lý bệnh
Người sử dụng các chức năng trên
Quản trị viên của hệ thống có toàn quyền
Nhóm người dùng bác sĩ, nhân viên y tế có toàn quyền
Nhóm người dùng bình thường không có quyền truy cập
.4 Quản lý các triệu chứng
Chức năng này cho phép quản lý các triệu chứng bệnh
Hình 7 Yêu cầu gói quản lý triệu chứng
Người sử dụng các chức năng trên
Quản trị viên của hệ thống có toàn quyền
Quản lý bệnh
Liệt kê các bệnh1
Thêm bệnh2
Chỉnh thông tin bệnh3
Xóa bệnh4
Thêm triệu chứng2
Trang 33.5 Quản lý các loại thuốc
Chức năng này cho phép quản lý các loại thuốc có trong hệ thống: xem, xóa, sửa và thêmmới thuốc
Hình 8 Yêu cầu gói quản lý các loại thuốc Người sử dụng các chức năng trên
Quản trị viên của hệ thống có toàn quyền
Nhóm người dùng bác sĩ, nhân viên y tế có toàn quyền
Nhóm người dùng bình thường không có quyền truy cập
.6 Quản lý các luật
Chức năng này cho phép quản lý các luật sử dụng cho hệ chuyên gia có trong hệ thống
Hình 9 Yêu cầu gói quản lý luật
Người sử dụng các chức năng trên
Quản trị viên của hệ thống có toàn quyền
Nhóm người dùng bác sĩ, nhân viên y tế có toàn quyền
Thêm thuốc2
Quản lý luật
Liệt kê các luật1
Thêm luật2
Sửa luật3
Xóa luật4
Trang 34.I.2 Yêu cầu phi chức năng
Phát triển ứng dụng sử dụng ngôn ngữ PHP, dựa trên nền tảng của CakePHP Framework
Chạy tốt trên Webserver chạy Linux hoặc Window
Dùng Apache Web server, database Mysql
Sử dụng Ajax và các ngôn ngữ lập trình khác (CSS, XML, HTML, JavaScript…)
Giao diện thân thiện, dễ sử dụng
Giao diện có thể xem tốt trên các loại trình duyệt: Internet Explorer phiên bản 7, phiên bản 8, phiên bản 9, Firefox 3, Firefox 4, Opera, Chrome, Safari
Có khả năng xem được trên các thiết bị di động nhất là 2 dòng điện thoại thông minh sử dụng 2 hệ điều hành dành cho điện thoại rất thông dụng hiện nay là iOS và Android
Trang 35.II Phân tích và thiết kế hệ thống
.II.1 Xác định các tác nhân
Hệ thống “Hệ chuyên gia chẩn đoán bệnh trực tuyến” có 3 tác nhân:
Người quản trị: Đây là người sử dụng hệ thống với quyền hạn cao nhất Người
quản trị có quyền định nghĩa ra các thông tin quy luật của hệ thống, tạo ra các loại người dùng khác
Bác sĩ: Là người có kiến thức, có chuyên môn về y học, am hiểu về các loại bệnh
Các bác sĩ sẽ truy cập vào hệ thống sử dụng các chức năng quản lý để quản lý các loại bệnh, các triệu chứng bệnh, các loại thuốc, đồng thời là giúp đỡ để tạo ra các luật tăng cơ sở tri thức của hệ thống
Người dùng bình thường: Là những người có nhu cầu chẩn đoán bệnh, họ truy cập
vào hệ thống và chỉ có quyền tương tác ở phía front-end ( chức năng chẩn đoán bệnh)
.II.2 Xác định các Use Case và các yêu cầu về chức năng
.II.2.1 Sơ đồ Use Case
.1 Sơ đồ User Case tổng quan:
Hình 10 User Case tổng quan