Do đó, nhóm đã đề xuất đề tài nghiên cứu trong khóa luận này với tên là “Nghiên cứu xây dựng mô hình cơ sở tri thức và hệ giải 1 số lớp bài toán Hóa vô cơ trong chương trình THPT” với m
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
KHÓA LUẬN TỐT NGHIỆP
XÂY DỰNG MÔ HÌNH BIỂU DIỄN TRI THỨC
VÀ HỆ HỖ TRỢ GIẢI MỘT SỐ LỚP BÀI TẬP HÓA VÔ CƠ
TRONG CHƯƠNG TRÌNH THPT
Giáo viên hướng dẫn : PGS.TS Đỗ Văn Nhơn
Sinh viên thực hiện : Lương Chấn Viễn – 07520408
Lê Hoài Nam – 07520233
TP Hồ Chí Minh, tháng 8 năm 2011
Trang 2i
LỜI MỞ ĐẦU
Công nghệ thông tin được ra đời và phát triển từ những năm nữa cuối của thế
kỉ XX Và đến nay đã gặt hái được rất nhiều thành tựu vượt bậc, khả năng áp dụng rộng khắp vào tất các các ngành kinh tế, xã hội khác nhau và làm thay đổi không ít lối sống, cách suy nghĩ của con người hiện đại
Tuy nhiên, nhu cầu của con người ngày càng cao, họ không chỉ cần những thiết bị Công nghệ thông tin làm việc theo mệnh lệnh được lập trình sẵn, hỗ trợ tính toán cơ bản hay lưu trữ dữ liệu và tìm kiếm thông thường Họ cần những thiết bị máy tính thông minh hơn, giúp họ tìm ra lời giải những bài toán khó, gợi ý cho họ trong giải quyết các vấn đề phức tạp v.v…
Trước nhu cầu mới, ngành Khoa học máy tính nói chung và lĩnh vực Trí tuệ nhân tạo nói riêng nhận vai trò quan trọng trong việc nghiên cứu tìm ra các giải pháp tiên tiến giúp làm ra những phần mềm và thiết bị máy tính đáp ứng nhu cầu trên Chúng phải có khả năng tự động xử lý thông tin, xử lý tri thức, suy luận tính toán và điều khiển phức tạp Một số ứng dụng trong lĩnh vực này có thể kể đến như: các hệ tự động lập luận và chứng minh định lý; các hệ chuyên gia; các hệ hiểu và xử
lý ngôn ngữ tự nhiên; máy học và khai khoáng dữ liệu; robotics v.v… [10]
Để xây dựng được 1 hệ thống thông minh, việc đầu tiên là phải tìm ra 1 mô hình biểu diễn tri thức, đưa tri thức ở dạng tự nhiên thành dạng mà máy tính có thể lưu trữ và xử lý được, cùng với 1 bộ máy suy diễn, tìm kiếm tri thức trên mô hình
đó Từ những năm cuối thế kỉ trước, người ta đã tìm và liệt kê ra được 4 phương pháp chính để lưu trữ và xử lý tri thức như sau [6]:
- Biểu diễn logic như phương pháp diễn diễn tri thức theo vị từ cấp 1
- Biểu diễn tri thức thủ tục như phương pháp biểu diễn tri thức dạng hệ luật dẫn
- Biểu diễn tri thức dạng mạng ngữ nghĩa
Trang 3ii
- Biểu diễn tri thức theo cấu trúc các frames và object
Dựa trên việc nghiên cứu và kết hợp các phương pháp trên cùng với một số cải tiến, tác giả Đỗ Văn Nhơn đã đề xuất ra mô hình các đối tượng tính toán C-Object vào năm 1997 [5] Từ ngày được công bố, C-Object đã được phát triển, mở rộng thành các mô hình như: mô hình mạng các đối tượng tính toán COKB [1], mô hình mạng các đối tượng tính toán mở rộng ECOKB [7] Từ những kết quả trên, rất nhiều nghiên cứu ứng dụng được ra đời nhằm giải quyết các vấn đề liên quan tới biểu diễn tri thức và suy luận tìm lời giải cho bài toán ở nhiều lĩnh vực khác nhau như: toán đại số tuyến tính, vật lý điện 1 chiều, hình học giải tính 2 chiều/ 3 chiều v.v… Có thể tham khảo trong các tài liệu số [4], [7], [8], [9]
Kết quả của những nghiên cứu ứng dụng từ mô hình COKB ở trên đã phần nào chứng minh được khả năng áp dụng của mô hình này vào lĩnh vực phát triển các công cụ hỗ trợ học tập thông minh Tuy nhiên số lượng ứng dụng vẫn chưa nhiều và mức độ đem lại hiệu quả thực tế vẫn chưa cao, các nghiên cứu đã có vẫn thiên về môn Toán học và Vật lý hơn Hơn nữa, Hóa học cũng là một bộ môn quan trọng trong chương trình Phổ thông nhưng vẫn chưa có nghiên cứu chính thức nào
về biểu diễn tri thức và hệ hỗ trợ giải bài tập cho Hóa học Nhu cầu của học sinh hiện nay về 1 hệ hỗ trợ học tập thông minh tương đối cao, các phần mềm này nếu hoạt động tốt sẽ giúp học sinh tiếp thu kiến thức nhanh hơn, bằng một cách thú vị hơn, góp phần vào việc nâng cao chất lượng dạy và học trong môi trường Phổ thông
Do đó, nhóm đã đề xuất đề tài nghiên cứu trong khóa luận này với tên là
“Nghiên cứu xây dựng mô hình cơ sở tri thức và hệ giải 1 số lớp bài toán Hóa vô
cơ trong chương trình THPT” với mong muốn tìm ra được 1 phương pháp biểu
diễn và xử lý tri thức Hóa vô cơ trên máy tính bằng cách áp dụng và cải tiến lý thuyết của mô hình COKB, góp phần vào thành quả chung của việc ứng dụng mô hình COKB vào lĩnh vực E-learning
Nội dung của khóa luận này được chia làm 7 chương như sau:
Trang 4iii
Chương 1: Giới thiệu chung về vấn đề nghiên cứu, một số thành tựu đã có liên quan
tới việc biểu diễn và xử lý tri thức Hóa học trên máy tính Ngoài ra, chương này sẽ giới thiệu thêm về 1 số lý thuyết cơ bản trong việc nghiên cứu phát triển 1 hệ cơ sở tri thức trên máy tính
Chương 2: Trình bày về mô hình COKB và 1 số vấn đề mở rộng mô hình COKB
Hiện nay đã có mô hình ECOKB mở rộng nhưng đề tài chỉ tập trung cải tiến mô hình COKB để nghiên cứu xây dựng ứng dụng theo mục đã đề ra Nội dung mở rộng sẽ liên quan tới kiểu thuộc tính của đối tượng tính toán C-Object và quan hệ tính toán mới dùng để mô tả mối liên hệ giữa các kiểu thuộc tính mới Bên cạnh đó, chương 3 sẽ trình bày thêm 4 loại sự kiện mới bên cạnh 6 sự kiên đã có trong mô hình COKB
Chương 3: Biểu diễn tri thức Hóa vô cơ bằng cách áp dụng mô hình COKB nhưng
chỉ sử dụng 4 trong 5 thành phần là tập C, tập H, tập R và tập Rules, có áp dụng thêm lý thuyết cải tiến trình bày ở chương 3 Cùng với cách tổ chức lưu trữ tri thức này lên máy tính Thay vì sử dụng các tập tin TXT chứa dữ liệu cho từng tập (C,H,R,Rules), khóa luận sẽ trình bày cách lưu trữ tất cả tri thức vào 1 tập tin có tên
Chemistry.KB theo 1 chuẩn lưu trữ khác
Chương 4: Mô hình bài toán và thuật giải Ở đây, khóa luận sẽ dùng 1 mô hình duy
nhất có 3 thành phần để biểu diễn các bài toán Hóa vô cơ phổ biến trong sách giáo khoa, các kỳ thi tốt nghiệp THPT và thi vào Đại học, Cao đẳng Vẫn còn nhiều hạn chế nên mô hình chỉ tập trung giải quyết các bài toán lập luận trên các thí nghiệm hóa học, các chuỗi phản ứng liên tiếp; tạm thời chưa giải quyết được các dạng bài tập lý thuyết và hỏi đáp suy luận trên lý thuyết
Chương 5: Cài đặt thử nghiệm Đề tài sử dụng công cụ lập trình chính là Maple để
hiên thực toàn bộ lý thuyết đã đề ra, sử dụng C#, WPF trong NET Frameworks 4.0
để phát triển giao diện demo
Chương 6: Kết luận và hướng phát triển
Cuối cùng là danh mục tài liệu tham khảo và phụ lục bổ xung
Trang 5iv
LỜI CẢM ƠN
Chúng tôi chân thành gửi lời cảm ơn sâu sắc nhất tới PSG.TS Đỗ Văn Nhơn, trưởng khoa Khoa học máy tính, trường Đại học Công Nghệ Thông Tin đã tận tình hướng dẫn chúng tôi thực hiện đề tài này trong suốt thời gian qua Bên cạnh kiến thức chuyên môn, thầy đã giúp chúng tôi thêm ý tưởng và động lực
để theo đuổi, phát triển đề tài cho khóa luận này
Bên cạnh đó, chúng tôi không quên cảm ơn các giảng viên của khoa Khoa học máy tính, trường Đại học Công nghệ thông tin đã trang bị cho chúng tôi đầy đủ kiến thức làm cơ sở để nghiên cứu và phát triển tới những mục tiêu cao hơn
Cuối cùng, chúng tôi muốn gửi lời cảm ơn tới các bạn sinh viên trong lớp CNTN02, các bạn đã đóng góp những ý kiến quí báu và tinh thần nhiệt quyết trong suốt thời gian dài chúng tôi học tập và nghiên cứu cùng nhau trên giảng đường đại học
Lương Chấn Viễn - Lê Hoài Nam
TP Hồ Chí Minh, ngày 1 tháng 8 năm 2011
Trang 6v
Mục lục
LỜI MỞ ĐẦU i
LỜI CẢM ƠN iv
DANH MỤC BẢNG viii
DANH MỤC HÌNH ix
Chương 1: GIỚI THIỆU ĐỀ TÀI 1
1.1 Bối cảnh 1
1.2 Mục tiêu và phạm vi đề tài 2
1.3 Tổng quan về thành tựu trong và ngoài nước 3
1.4 Các vấn đề cơ bản trong thiết kế hệ giải toán dựa trên tri thức 5
1.4.1 Cấu trúc hệ thống 5
1.4.2 Biểu diễn tri thức 7
1.4.3 Bộ suy diễn tự động 8
Chương 2: MÔ HÌNH COKB VÀ 1 SỐ CẢI TIẾN MỚI 9
2.1 Mô hình COKB 5 thành phần 9
2.1.1 Định nghĩa đối tượng tính toán (C-Object): 9
2.1.2 Mô hình cho một C-Object 9
2.1.3 Mô hình tri thức các đối tượng tính toán (COKB) 10
2.2 Một số cải tiến mới 12
2.2.1 Mở rộng kiểu thuộc tính của C-Object 12
2.2.2 Quan hệ tính toán phụ thuộc 17
2.2.3 Tập 10 sự kiện (thêm 4 sự kiện mới) 22
Chương 3: BIỂU DIỄN TRI THỨC HÓA VÔ CƠ 27
Trang 7vi
3.1 Mô hình tri thức 27
3.1.1 Tập C 27
3.1.2 Tập H 28
3.1.3 Tập R 29
3.1.4 Tập Rules 30
3.2 Cách tổ chức lưu trữ 31
3.2.1 Tập các khái niệm (C-Object) 31
3.2.2 Tập các quan hệ phân cấp 33
3.2.3 Tập các quan hệ R 34
3.2.4 Tập các luật suy diễn 34
Chương 4: MÔ HÌNH BÀI TOÁN VÀ THUẬT GIẢI 36
4.1 Mô hình bài toán 36
4.2 Thuật giải 40
4.2.1 Suy diễn bên trong một đối tượng 40
4.2.2 So khớp sự kiện 42
4.2.3 Suy diễn trên luật dẫn 55
4.2.4 Suy diễn trên các sự kiện loại 4 57
4.2.5 Deduce sự kiện 58
4.2.6 Suy diễn trên đối tượng “Thí nghiệm” 59
Chương 5: CÀI ĐẶT VÀ THỬ NGHIỆM 71
5.1 Cài đặt ứng dụng 71
5.1.1 Xây dựng thư viện ChemistryUtility 71
5.1.2 Xây dựng thư viện hàm suy diễn trên tri thức 74
Trang 8vii
5.1.3 Xây dựng công cụ hỗ trợ người dùng nhập bài toán 75
5.1.4 Xây dựng ứng dụng demo 81
5.2 Thử nghiệm và đánh giá 82
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 88
6.1 Kết luận 88
6.2 Hạn chế 89
6.3 Hướng phát triển 89
TÀI LIỆU THAM KHẢO 90
PHỤ LỤC 1: GIỚI THIỆU MỘT SỐ KIẾN THỨC CƠ BẢN VỀ HÓA VÔ CƠ 92
PHỤ LỤC 2: VÍ DỤ CỤ THỂ VỀ 1 SỐ C-OBJECT TRONG HÓA VÔ CƠ 101
Trang 9viii
DANH MỤC BẢNG
Bảng 2-1 Một số kí hiêu qui ƣớc dùng biểu diễn các loại sự kiện 22
Bảng 4-1 Bảng chân trị khi so khớp sự kiện 43
Bảng 4-2 So khớp sự kiện loại 1 43
Bảng 4-3 Xử lý sự kiện loại 7 49
Bảng 4-4 Qui luật so khớp các sự kiện 55
Bảng 4-5 Deduce sự kiện 59
Bảng 4-6 Cấu trúc mô tả 1 thí nghiệm 62
Bảng 5-1 Các hàm suy diễn 75
Trang 10ix
DANH MỤC HÌNH
Hình 1.1 Mẫu ví dụ về ChEBI 3
Hình 1.2 Chemlap 4
Hình 1.3 Giao diện chính của DCE 2008 5
Hình 1.4 Mô hình của hệ thống tự động suy diễn 6
Hình 3.1 Ví dụ về sơ đồ mạch điện 16
Hình 5.1 Lưu đồ thuật giải suy diễn bên trong 1 đối tượng 41
Hình 5.2 Lưu đồ suy diễn trên 1 quan hệ tính toán phụ thuộc 41
Hình 5.3 Lưu đồ so khớp sự kiện loại 1 44
Hình 5.4 Lưu đồ so khớp sự kiện loại 2 45
Hình 5.5 Lưu đồ so khớp sự kiện loại 2' 45
Hình 5.6 Lưu đồ so khớp sự kiện loại 3 46
Hình 5.7 Lưu đồ so khớp sự kiện loại 4n, 4l 47
Hình 5.8 Lưu đồ so khớp sự kiện loại 4o 47
Hình 5.9 Lưu đồ so khớp sự kiện loại 6 48
Hình 5.10 Lưu đồ so khớp sự kiện lọa 8 50
Hình 5.11 Lưu đồ so khớp sự kiện loại 9 51
Hình 5.12 Phân loại môi trường phản ứng 60
Hình 5.13 Phân loại "thí nghiệm" 63
Hình 5.14 Thí nghiệm có phản ứng không hoàn toàn 65
Hình 5.15 Thí nghiệm hoàn chỉnh 65
Hình 5.16 Thí nghiệm chưa hoàn chỉnh dạng 1 66
Hình 5.17 Thí nghiệm chưa hoàn chỉnh dạng 2 67
Hình 5.18 Thí nghiệm chưa hoàn chỉnh dạng 3 68
Trang 11Trong những ngành cần quan tâm ứng dụng Công nghệ thông tin, Giáo dục là 1 trong những ngành được nhà nước ta tập trung hàng đầu Đem Công nghệ thông tin vào Giáo dục giúp nâng cao chất lượng đào tạo, nâng cao trình độ con người trong xã hội mới
Ứng dụng Công nghệ thông tin trong giao dục bao gồm: các phần mềm hỗ trợ soạn thảo bài giảng cho giáo viên; phần mềm hỗ trợ học tập, tra cứu kiến thức cho học sinh; các hệ thống e-learning trực tuyến
Nói về phần mềm hỗ trợ học tập, phần lớn các phần mềm loại này chỉ đáp ứng được nhu cầu cơ bản của học sinh như ôn tập lý thuyết, tra cứu và hỗ trợ giải các bài tập mẫu Gần như ít có phần mềm nào tiếp cận tới vấn đề hỗ trợ học sinh tìm lời giải cho các bài toán khác nhau Việc sử dụng các phần mềm có khả năng hỗ trợ tìm lời giải sẽ giúp học sinh tiếp cận kiến thức mới nhanh hơn, tự do sáng tạo hơn để tìm ra những lời giải mới
Trong chương trình Phổ thông, đặc biệt là chương trình ban A, Toán – Lý – Hóa là 3 môn học quan trọng Các bài tập, bài kiểm tra của các môn này nặng về tư duy giải toán Không phải học sinh nào cũng có đủ năng lực để giải hết các bài tập khó
dễ trong các đề thi của 3 môn học Học sinh cần có một công cụ hỗ trợ, gợi ý để tìm ra lời giải Từ những gợi ý của công cụ phần mềm, học sinh sẽ dễ dàng luyện tập nâng cao kĩ năng giải toán trong các kì thi hơn
Trang 122
Như vậy, nhu cầu về 1 hệ thống hỗ trợ giải bài tập thông minh đã xuất hiện Đây chính là động lực để chúng tôi cũng như các nhóm sinh viên Công nghệ thông tin khác tìm tòi, nghiên cứu, phát triển các hệ thống tiên tiến đáp ứng nhu cầu trên
1.2 Mục tiêu và phạm vi đề tài
Đề tài khóa luận này sẽ nghiên cứu phát triển mô hình COKB, ứng dụng vào biểu diễn tri thức và hệ tự động giải 1 số bài tập Hóa Vô cơ trong chương trình Phổ thông Vì Hóa học nói chung và Hóa Vô cơ nói riêng là 1 trong những môn học quan trọng trong chương trình Phổ thông Môn Hóa học được xem là 1 trong 3 môn quan trọng Toán – Lý – Hóa của chương trình phân ban khối A, là môn thi bắt buộc trong các kì thi Đại học, Cao đẳng vào khối A, B hằng năm Khóa luận có tham khảo nội dung chương trình học và kiểm tra của môn Hóa Vô cơ từ các tài liệu [14], [15], [16], [17], [18]
Mục tiêu của đề tài là nghiên cứu mở rộng mô hình COKB nhằm phục vụ cho việc xây dựng mô hình cơ sở tri thức Hóa Vô cơ để có thể lưu trữ và xử lý suy luận giải bài tập trên máy tính; cùng với phát triển 1 ứng dụng demo hỗ trợ giải bài toán Hóa Vô cơ thỏa mãn các yêu cầu sau:
- Có cơ sở tri thức về Hóa vô cơ lưu trữ riêng trên máy tính với cấu trúc đơn giản
để người sử dụng dễ thay đổi, chỉnh sửa khi cần thiết
- Cho phép nhập bài toán bằng ngôn ngữ đơn giản gần với ngôn ngữ tự nhiên
- Tìm ra lời giải gần với cách giải của con người, trình bày đẩy đủ, dễ hiểu
- Giao diện phần mềm trực quan, sinh động, dễ thao tác
Phạm vi của đề tài này sẽ tập trung mở rộng mô hình COKB, cụ thể là tập thuộc tính và quan hệ tính toán của C-Object để áp dụng vào biểu diễn tri thức Hóa Vô cơ, xây dựng mô hình bài toán cùng thuật giải để giải quyết 1 số lớp bài toán Hóa vô cơ phổ biến trong chương trình sách giáo khoa THPT cũng như trong đề thi Tốt nghiệp THPT, đề thi Đại học khối A, B hằng năm
Trang 133
Đề tài sẽ sử dụng công cụ lập trình chính là Maple 15 vì ngôn ngữ này hỗ trợ khá tốt lập trình tính toán hình thức, 1 trong những kĩ thuật cơ bản trong lập trình các hệ thống tự động giải toán [17]
1.3 Tổng quan về thành tựu trong và ngoài nước
Mặc dù, hóa học là 1 ngành học đã có từ lâu đời nhưng các nghiên cứu về xây dựng hệ thống tri thức cho lĩnh vực này còn khá mới mẻ Kết quả của quá trình tìm tòi trên mạng và các tài liệu chính thức, hiện tại chỉ có 1 vài công trình nghiên cứu đã hoàn thiện và đang được tiếp tục phát triển, tiêu biểu là công trình khoa học mang tên ChEBI (Chemical Entities of Biological Interest) [19]
Hình 1.1 Mẫu ví dụ về ChEBI
ChEBI là một hệ cơ sở tri thức mở về các hợp chất hữu cơ, được dùng để tra cứu thông tin về các chất, mối liên hệ giữa các chất và cấu tạo của chúng Mục tiêu của ChEBI là xây dựng hệ thống tiêu chuẩn dùng để biểu diễn tri thức của các hợp chất hữu cơ và lưu trữ vào cơ sở dữ liệu Có thể gọi ChEBI là một Ontology của lĩnh
Trang 14Hình 1.2 Chemlap
Trong nước, các nghiên cứu khoa học và đề tài ứng dụng liên quan tới biểu diễn tri thức của lĩnh vực Hóa học nói chung và Hóa vô cơ nói riêng gần như vẫn chưa
có nhiều thành tựu đáng kể ngoại trừ một số phần mềm ứng dụng mang tính đơn giản
và không chứa các yếu tố liên quan tới tri thức và xử lý tri thức
Một ứng dụng phổ biến về hỗ trợ học Hóa học có thể kể đến là phần mềm “Từ điển phương trình Hóa học DCEv4.00” [21], phần mềm hỗ trợ tra cứu tìm kiếm phương trình phản ứng hóa học do nhóm học sinh trường Lê Hồng Phong thực hiện Phần mềm thực hiện tra cứu các phương trình phản ứng hóa học dựa trên thông tin về
Trang 155
chất tham gia, chất tạo thành Kết quả trả về là các phản ứng tìm được cùng với thông tin chi tiết về phản ứng đó Chương trình sử dụng các kĩ thuật cơ bản để so khớp thông tin tìm kiếm và không có khả năng xử lý suy diễn trên các phản ứng tìm được
Hình 1.3 Giao diện chính của DCE 2008
1.4 Các vấn đề cơ bản trong thiết kế hệ giải toán dựa trên tri
thức
1.4.1 Cấu trúc hệ thống
Hệ giải toán dựa trên tri thức là 1 hệ thống thông minh, có khả năng biểu diễn được tri thức tự nhiên lên máy tính, có thể xử lý tri thức và suy luận giải quyết bài toán 1 cách tự động Hệ thống thông minh này phải có khả năng thực hiện suy luận trên 1 miền tri thức cụ thể nào đó Cấu trúc cơ bản của hệ thống này bao gồm các thành phần như: Giao diện người dùng, cơ sở tri thức, bộ suy diễn, hệ thống phân tích bài toán và hiệu chỉnh cơ sở tri thức [11]
Trang 166
Knowledge Base
Cơ sở tri thức Người dùng
User
Giao diện UI
Hiệu chỉnh cơ sở tri thức
KB Editor
Hê thống con giải thích Explain System
Bộ suy diễn Inference Engine
Hình 1.4 Mô hình của hệ thống tự động suy diễn
Hai thành phần quan trọng nhất của 1 hệ tự động suy diễn chính là Cơ sở tri thức và Bộ suy diễn Cơ sở tri thức chính là trái tim của hệ thống, là nơi lưu trữ tất cả tri thức của 1 lĩnh vực cụ thể để máy tính có thể xử lý được Bộ suy diễn là thành phần
sẽ đi tìm lời giải cho các bài toán bằng cách áp dụng tri thức có trong Cơ sở tri thức
Cơ sở tri thức và Bộ suy diễn cần phải được tách biệt rõ ràng bởi vì:
- Sự tách biệt giữa Cơ sở tri thức và Bộ suy diễn làm cho việc biểu diễn tri thức
tự nhiên hơn, gần gũi hơn với con người
- Sự tách biệt này nhằm tăng cường tính module hóa cho toàn bộ hệ thống Mỗi module sẽ được giao 1 nhiệm vụ khác nhau giúp cho việc kiểm tra, nâng cấp hay sửa lỗi hệ thống được dễ dàng hơn
- Tri thức là thành phần có thể thay đổi được bởi người sử dụng, còn bộ suy diễn thường được thiết kế để có thể hoạt động cả khi nội dung tri thức đã thay đổi Tuy nhiên, do mức độ phức tạp của tri thức nên việc cập nhật cơ sở tri thức cần được giới hạn trước trong 1 miền tri thức nào đó
- Sự tách biệt giữa 2 phần này còn giúp ta dễ dàng thử nghiệm nhiều chiến lượt suy diễn trên cùng 1 cơ sở tri thức hay ngược lại
Giống như các hệ thống chứa thông tin khác, cơ sở tri thức sau khi thiết kế phải đả bảo
dễ dàng sử dụng, cập nhật khi cần thiết
Trang 177
1.4.2 Biểu diễn tri thức
Biểu diễn tri thức là bài toán lớn đặt lên vai các nhà làm nghiên cứu trong lĩnh vực Khoa học máy tính và Trí tuệ nhân tạo Biểu diễn tri thức cơ bản là việc chuyển đổi tri thức thực thành 1 kiểu biểu diễn khác để có thể lưu trữ và xử lý trên máy tính Thành quả nghiên cứu nhiều năm của ngành Khoa học máy tính đã đề ra 4 phương pháp biểu diễn tri thức cơ bản như sau:
- Các phương pháp biểu diễn bằng logic hình thức Các phương pháp này sử
dụng các biểu diễn hình thức để diễn đạt các sự kiện và các luật trong cơ sở tri thức Người ta thường dùng ngôn ngữ lập trình PROLOG để biểu diễn phương pháp này
- Các phương pháp biểu diễn tri thức thủ tục Loại phương pháp này biểu diễn tri
thức như là một tập hợp các chỉ thị dùng cho giải quyết các bài toán Chỉ thị
như thế thường được thể hiện bởi tập các luật dẫn có dạng if … then…
- Các phương pháp biểu diễn dạng mạng Biểu diễn mạng kiến thức như là một
đồ thị trong đó các đỉnh biểu diễn cho các khái niệm hay các đối tượng và các cạnh biểu diễn quan hệ hay những sự kết hợp nào đó giữa các đối tượng và khái
niệm Phổ biến nhất trong các phương pháp loại này là các mạng ngữ nghĩa và các đồ thị khái niệm
- Các phương pháp biểu diễn cấu trúc Các ngôn ngữ biểu diễn cấu trúc cho
phép sử dụng các cấu trúc dữ liệu phức tạp và các cấu trúc dữ liệu trừu tượng trong biểu diễn Ví vụ như các khung (frames) và các đối tượng (objects)
Rõ ràng mỗi phương pháp biểu diễn trên đều có ưu và nhược điểm riêng Tri thức tự nhiên vô cùng phong phú và đa dạng, do đó các chuyên gia khả định rằng muốn xây dựng được một hệ cơ sở tri thức tốt cần phải vận dụng linh hoạt tất cả các cách trên cùng với những cải tiến thay đổi khi cần thiết
Trang 188
1.4.3 Bộ suy diễn tự động
Khi đã có 1 cơ sở tri thức tốt, việc quan trọng tiếp theo là xây dựng được bộ suy diễn tự động trên cơ sở tri thức đó Các phương pháp suy diễn tự động đều hướng tới mục tiêu là áp dụng tri thức trong cơ sở tri thức, phát sinh các sự kiện mới từ các
sự kiện đã có Sau đây là 4 chiến lượt suy diễn tự động tương đối khái quát:
- Phương pháp hợp giải trong biểu diễn tri thức dưới dạng logic vị từ Trong
phương pháp biểu diễn logic hình thức ta đã sử dụng luật “Modus Ponens”, luật
“tam đoạn luận”
- Phương pháp suy diễn tiến (Forward chaining) như sau: “Chiến lược suy luận
được bắt đầu bằng tập sự kiện đã biết, rút ra các sự kiện mới nhờ dùng các luật
mà phần giả thiết khớp với sự kiện đã biết, và tiếp tục quá trình nầy cho đến khi thấy trạng thái đích, hoặc cho đến khi không còn luật nào khớp được các sự kiện đã biết hay được sự kiện suy luận”
- Phương pháp suy diễn lùi (Backward chaining) Phương pháp nầy được tiến
hành bằng cách truy ngược từ mục tiêu cần đạt được trở về phần giả thiết của bài toán bằng cách áp dụng các luật trong cơ sở tri thức Quá trình suy diễn lùi nầy sẽ phát sinh một sơ đồ cây mục tiêu kèm theo một cơ chế quay lui và lời giải sẽ được tìm thấy khi tất cả các mục tiêu ở các nút lá của cây mục tiêu đều thuộc về những sự kiện đã biết
- Kết hợp suy diễn tiến và suy diễn lùi Mỗi phương pháp suy diễn tiến và lùi đều
có ưu nhược điểm của nó Việc kết hợp hai phương pháp này một cách thích hợp sẽ cho ta một phương pháp suy diễn hiệu quả trong các ứng dụng cụ thể
Trang 199
Chương 2: MÔ HÌNH COKB
VÀ 1 SỐ CẢI TIẾN MỚI
2.1.1 Định nghĩa đối tượng tính toán (C-Object):
Ta gọi một đối tượng tính toán (C-object) là một đối tượng O có cấu trúc bao gồm:
(1) Một danh sách các thuộc tính Attrs = x1, x2, , xn trong đó mỗi thuộc tính lấy giá trị trong một miền xác định nhất định, và giữa các thuộc tính ta có các quan
hệ thể hiện qua các sự kiện, các luật suy diễn hay các công thức tính toán (2) Các hành vi liên quan đến sự suy diễn và tính toán trên các thuộc tính của đối tượng hay trên các sự kiện như:
Xác định bao đóng của một tập hợp thuộc tính A Attr(O), tức là đối tượng
O có khả năng cho ta biết tập thuộc tính lớn nhất có thể được suy ra từ A trong đối tượng O
Xác định tính giải được của bài toán suy diễn tính toán có dạng A B với
A Attr(O) và B Attr(O) Nói một cách khác, đối tượng có khả năng trả lời câu hỏi rằng có thể suy ra được các thuộc tính trong B từ các thuộc tính trong A không
Thực hiện các tính toán
Thực hiện việc gợi ý bổ sung giả thiết cho bài toán
Xem xét tính xác định của đối tượng, hay của một sự kiện
2.1.2 Mô hình cho một C-Object
Một C-Object có thể được mô hình hoá bởi một bộ
(Attrs,F,Fact,Rules)
Trang 2010
Trong đó:
- Attrs là tập hợp các thuộc tính của đối tƣợng
- F là tập hợp các quan hệ suy diễn tính toán
- Facts là tập hợp các tính chất hay sự kiện vốn có của đối tƣợng
- Rules là tập hợp các luật suy diễn trên các sự kiện liên quan đến các
thuộc tính cũng nhƣ liên quan đến bản thân đối tƣợng
2.1.3 Mô hình tri thức các đối tƣợng tính toán (COKB)
(C, H, R, Ops, Rules)
[1] Một tập hơp C các khái niệm về các C-Object
Mỗi khái niệm là một lớp C-Object có cấu trúc và đƣợc phân cấp theo sự thiết lập của cấu trúc đối tƣợng:
[1] Các biến thực
[2] Các đối tƣợng cơ bản có cấu trúc rỗng hoặc có cấu trúc gồm một số
thuộc tính thuộc kiểu thực (ví dụ như DIEM không có thuộc tính giá trị thực trong hình học phẳng) Các đối tƣợng loại nầy làm nền cho các đối
tƣợng cấp cao hơn
[3] Các đối tƣợng C-Object cấp 1 Loại đối tƣợng nầy có một thuộc tính
loại <real> và có thể đƣợc thiết lập từ một danh sách nền các đối tƣợng
cơ bản Ví dụ: DOAN[A,B] và GOC[A,B,C] trong đó A, B, C là các đối tƣợng cơ bản loại DIEM
[4] Các đối tƣợng C-Object cấp 2 Loại đối tƣợng nầy có các thuộc tính
loại real và các thuộc tính thuộc loại đối tượng cấp 1, và đối tƣợng có
thể đƣợc thiết lập trên một danh sách nền các đối tƣợng cơ bản Ví dụ: TAM_GIAC[A,B,C] và TU_GIAC[A,B,C,D], trong đó A, B, C, D là các đối tƣợng cơ bản loại DIEM
Cấu trúc bên trong của mỗi lớp đối tƣợng gồm:
Trang 21vi cơ bản nầy của đối tượng C-Object sẽ được xem xét chi tiết hơn trong các mục sau
[2] Một tập hơp H các quan hệ phân cấp giữa các loại đối tượng
Trên tập hợp C ta có một quan hệ phân cấp theo đó có thể có một số khái niệm
là sự đặc biệt hóa của các khái niệm khác, chẳng hạn như một tam giác cân cũng là một tam giác, một hình bình hành cũng là một tứ giác Có thể nói rằng H là một biểu
đồ Hasse khi xem quan hệ phân cấp trên là một quan hệ thứ tự trên C
[3] Một tập hơp R các khái niệm về các loại quan hệ trên các C-Object
Mỗi quan hệ được xác định bởi <tên quan hệ> và các loại đối tượng của quan
hệ, và quan hệ có thể có một số tính chất trong các tính chất sau đây: tính chất phản
xạ, tính chất đối xứng, tính chất phản xứng và tính chất bắc cầu Ví dụ: Quan hệ cùng phương trên 2 đoạn thẳng có các tính chất phản xạ, đối xứng và bắc cầu
[4] Một tập hơp Ops các toán t ử
Các toán tử cho ta một số phép toán trên các biến thực cũng như trên các đối tượng, chẳng hạn các phép toán số học và tính toán trên các đối tượng đoạn và góc tương tự như đối với các biến thực
[5] Một tập hơp Rules gồm các luật được phân lớp
Các luật thể hiện các tri thức mang tính phổ quát trên các khái niệm và các loại
sự kiện khác nhau Mỗi luật cho ta một qui tắc suy luận để đi đến các sự kiện mới từ các sự kiện nào đó, và về mặt cấu trúc nó gồm 2 thành phần chính là: phần giả thiết của luật và phần kết luận của luật Phần giả thiết và phần kết luận đều là các tập hợp
Trang 222.2.1 Mở rộng kiểu thuộc tính của C-Object
Đối tượng tính toán C-Object được giới thiệu từ năm 1997 là cơ sở cho sự hình thành các mô hình biểu diễn tri thức sau nay như mô hình mạng các đối tượng tính toán COKB, mô hình mạng tính toán mở rộng ECOKB cùng với rất nhiều bài báo khoa học, nghiên cứu ứng dụng đã được xuất bản
Dù được phát triển qua nhiều giai đoạn nhưng C-Object vẫn đóng vai trò là thành phần không thể thiếu trong việc biểu diễn khái niệm về nhóm đối tượng trong 1 miền tri thức cụ thể Thành phần quan trọng nhất của C-Object chính là tập các thuộc tính Attrs vì mỗi thuộc tính sẽ biểu diễn một tính chất đặc trưng của đối tượng Tập các thuộc tính của 1 C-Object dùng để phân biệt nó với các C-Object khác
Ví dụ:
- Trong hình học ta có khái niệm "Tam Giác" với các thuộc tính: độ dài 3 cạnh
a,b,c; độ dài 3 góc A,B, C; diện tích S, chu vi P v.v…
- Trong vật lý về mạch điện ta có khái niệm "Điện trở" với các thuộc tính: điện
trở R, cường độ dòng điện I, hiệu điện thế U
- Trong hóa học có khái niệm "Nguyên tố" với các thuộc tính: Khối lượng riêng
M, Số hiệu nguyên tử Z, độ âm điện v.v
Trang 23
13
Cho đến hiện nay, kiểu thuộc tính của đối tượng C-Object được định nghĩa là
"có kiểu thực, kiểu đối tượng cơ bản hay kiểu đối tượng cấp thấp hơn"[1] (Đối tượng
cơ bản là các đối tượng có thuộc tính kiểu thực, đối tượng cấp 1 được định nghĩa từ đối tượng cơ bản và kiểu thực, định nghĩa tương tự cho các đối tượng cấp lớn hơn.) Chú ý: định nghĩa trên được xét trong 1 miền tri thức cụ thể với các đối tượng được phân cấp
Ràng buộc về kiểu thuộc tính của đối tượng ở trên, mỗi thuộc tính chỉ có thể được gán 1 giá trị duy nhất Tuy nhiên, trong thực tế có nhiều trường hợp yêu cầu phức tạp hơn khi biểu diễn giá trị thuộc tính của đối tượng
Ví dụ
- Với khái niệm "Hỗn hợp" trong Hóa học Như đã biết, khái niệm Hỗnhợp là tập
hợp các chất cùng trạng thái vật lý và không tác dụng với nhau ở điều kiện
thường Vậy thuộc tính gì của "Hỗn hợp" có thể biểu diễn được tập các chất mà
"Hỗn hợp" đó có?
- Trong bài toán hóa học, người ta thường đưa ra 1 thí nghiệm Nếu gọi đây là 1
đối tượng "Thí nghiệm" thì tập thuộc tính của nó cần lưu trữ thông tin về các
chất tham gia, các chất tạo thành, chuỗi phản ứng xảy ra trong thí nghiệm (vì thí nghiệm có thể có nhiều phản ứng xảy ra liên tiếp), các sản phẩm trung gian tạo thành trong chuỗi phản ứng đó v.v…
- Tương tự như trong Vật lý, khi nói về đối tượng "Mạch điện", chưa cần biết mạch điện đó đơn giản hay phức tạp, nhưng khi nói tới đối tượng "Mạch điện"
ta cần phải biết thông tin về các thiết bị điện mà nó sử dụng trong mạch
- Mở rộng hơn vào trong lĩnh vực xã hội, nếu định nghĩa khái niệm "Hộ gia
đình" ngoài các thuộc tính như "địa chỉ", "điện thoại", "thu nhập", ta cần phải
có 1 thuộc tính lưu trữ danh sách các thành viên trong gia đình Mỗi thành viên
là 1 đối tượng thuộc kiểu "Con người"
Và còn nhiều loại đối tượng trong các lĩnh vực khác nhau chứa thông tin tương
tự như trên Ta thấy nếu áp dụng lý thuyết về C-Object hiện tại để áp dụng biểu diễn tri thức cho các trường hợp này là không thể Ta cần phải thay đổi, cải tiến C-Object
Trang 2414
để giải quyết các trường hợp này Trong báo cáo này sẽ đề ra giải pháp là mở rộng kiểu thuộc tính của C-Object
Nội dung cụ thể về mở rộng kiểu thuộc tính của C-Object như sau.
Ta mở rộng kiểu thuộc tính của C-Object thêm 3 kiểu dưới đây
list( TYPE ) set( TYPE ) dict( TYPE1, TYPE2)
Với TYPE, TYPE1, TYPE2 là tên kiểu dữ liệu, bao gồm các kiểu dữ liệu cơ
bản, kiểu khái niệm đã được định nghĩa thêm trong tập C, kiểu list, set hoặc dict list(TYPE)
Một thuộc tính có kiểu dữ liệu là list( TYPE ) thể hiện một danh sách có thứ tự
mà các thành phần trong danh sách là các đối tượng thuộc kiểu TYPE Trong trường hợp ta không quan tâm tới kiểu giá trị của từng thành phần trong danh sách, TYPE có
thể bằng rỗng (NULL)
Ví dụ:
- Trong một thí nghiệm hóa học, các phản ứng hóa học xảy ra một cách lần lượt, phản ứng này xảy ra trước, phản ứng kia xảy ra ngay sau khi phản ứng này kết thúc Chẳng hạn, khi ta cho vào dung dịch chứa và một lượng dư nhôm thì phản ứng sẽ xảy ra lần lượt như sau:
có tính oxi-hóa mạnh hơn nên sẽ tác dụng trước với chất khử
Sau khi lượng tác dụng hết, thì khi đó các phân tử trong mới bắt đầu tác dụng với
Trang 25
15
Để mô tả một thí nghiệm, ta có các thuộc tính nhƣ "State" dùng để chỉ trạng thái của các chất có trong thí nghiệm tại một thời điểm, và "Phases" dùng để chỉ các pha phản ứng xảy ra giữa các thời điểm trong thí nghiệm Vậy
State có kiểu dữ liệu là list(list("Chất")) và Phases có kiểu dữ liệu là list("Phản ứng")
Ứng với thí nghiệm trên, ta có:
State = [ [Fe2+, Cu2+, Al], [Fe2+, Al, Cu, Al3+], [Al, Cu, Al3+, Fe] ] Phases[ , ]
set( TYPE )
Một thuộc tính có kiểu là set( TYPE ) biểu diễn cho một tập hợp các đối tƣợng
có kiểu là TYPE Với set, ta không quan tâm tới thứ tự sắp xếp của chúng.TYPE =
NULL khi ta không cần quan tâm tới kiểu dữ liệu của các thành phần bên trong tập hợp
Components = { ch_Al, ch_Fe, ch_Cu }
Chú ý: ch_Al, ch_Fe, ch_Cu là tên đối tƣợng dùng để biểu diễn cho 3 kim loại
Al, Fe và Cu
Đối với khái niệm "Mạch điện", ta cũng gọi thuộc tính chứa các thành phần
trong mạch điện là "Componets", có kiểu là set() Do trong mạch điện có thể có
Trang 2616
nhiều kiểu đối tượng khác nhau như điện trở, nguồn điện, khóa điện v.v… nên
ta không cần xác định kiểu dữ liệu cụ thể
dict(TYPE1, TYPE2)
Một thuộc tính kiểu dict(TYPE1, TYPE2) thể hiện một từ điển, hay một bảng với các khóa là các đối tượng kiểu TYPE1 và các giá trị tương ứng là các đối tượng kiểu TYPE2
Ví dụ: trong khái niệm "Dung dịch" là một hỗn hợp đồng nhất giữa dung môi
và chất tan (ở đây, ta chỉ xét dung môi là nước), người ta định nghĩa Nồng độ mol thể tích (nồng độ phân tử gam), biểu thị số mol của một chất tan cho trước trong 1 lít dung
dịch
Ta có thể biểu diễn nồng độ mol thể tích là một thuộc tính của "Dung dịch" như sau:
MC có kiểu là dict("Chất", real)
Diễn tả một sự kiện "nồng độ mol thể tích của NaOH trong dung dịch X là 0.1 M" bằng đẳng thức:
, -, -
Trang 2717
2.2.2 Quan hệ tính toán phụ thuộc
Tiếp tục nói về đối tượng tính toán C-Object, tập các thuộc tính của C-Object là thành phần quan trọng nhất dùng để mô tả các tính chất/thuộc tính có trong 1 đối tượng mà nó muốn biểu diễn Bên cạnh tập các thuộc tính, C-Object không thể thiếu các quan hệ tính toán, thành phần chính dùng trong suy diễn tính toán Quan hệ tính
toán được định nghĩa là “Mỗi quan hệ thể hiện một qui luật suy diễn và cho phép ta có thể tính toán một hay một số thuộc tính nầy từ một số thuộc tính khác của đối tượng”[1] Nói 1 cách khác, quan hệ tính toán là 1 biểu thức tính toán giữa các thuộc
tính bên trong đối tượng Quan hệ tính toán có 2 loại:
- Quan hệ tính toán đối xứng có hạng (rank) bằng 1 số nguyên dương k, đó là quan hệ mà ta có thể tính được giá trị của k thuộc tính bất kì từ n-k thuộc tính
đã biết (n là số lượng thuộc tính)
- Quan hệ tính toán không đối xứng là 1 quan hệ tính toán toán có dạng 1 ánh xạ u(f) -> v(f) Với u(f) là tập biến đầu vào và v(f) là tập biến đầu ra của quan hệ
Ví dụ như trong tam giác ta có các quan hệ tính toán sau:
- A+B+C = Pi // quan hệ giữa 3 góc trong tam giác
- S= ½*a*b*sin(C) // quan hệ tính diện tích tam giác
Tuy nhiên, khi mở rộng kiểu thuộc tính trong đối tượng tính toán, ngoài việc sử dụng lại quan hệ tính toán cũ cho kiểu thuộc tính cũ, ta cũng cần phải mở rộng thêm loại quan hệ tính toán mới để áp dụng vào các kiểu thuộc tính mới Quan hệ tính toán mới sẽ biểu diễn các loại quan hệ như:
- Quan hệ tính giá trị thuộc tính bằng tổng giá trị có trong 1 thuộc tính có kiểu tập hợp/danh sách
Ví dụ: quan hệ tính khối lượng của hỗn hợp bằng tổng khối lượng các chất trong hỗn hợp đó
- Quan hệ tính giá trị thuộc tính của 1 đối tượng trong 1 thuộc tính của đối tượng khác có tập hợp danh sách
Trang 28- ListAttrs ⊂ Attrs: là tập các thuộc tính loại list (danh sách) hay set (tập hợp)
- DictAttrs ⊂ Attrs: là tập các thuộc tính loại từ điển (table)
- NumAttrs ⊂ Attrs: là tập các thuộc tính có kiểu số học như số thực, số nguyên… chú ý là: NumAttrs ∩ ListAttrs =
Loại : ∀ x ∈ f(la): expression(x, na)
- expression là 1 đẳng thức dựa trên x và tập na
- f : là một hàm số trả về một tập hợp (hữu hạn) f thường là các hàm filter (lọc), các phép toán trên tập hợp, hay các hàm tổ hợp…
Cách biểu diễn trong tri thức
depend [la] then [expression] for [x] in [f]
Ví dụ 1:
- Trong "Dung dịch", ta có thuộc tính Solutes biểu diễn các chất tan trong dung
dịch Solutes có kiểu là set("Chất") Thuộc tính MC dùng để chỉ nồng độ mol của chất trong dung dịch Nhƣ đã đề cập ở trên, MC có kiểu là dict("Chất", real)
Trang 29depend Solutes then MC[s] = s[n] / V for s in Solutes
- Tỷ lệ mol phu thuộc vào số mol của chất trong dung dịch thông qua quan hệ tính toán sau:
∀* + ∈ (
)
, , -
, , -
-Với / chỉ tập các tập con của Components có 2 phần tử
Nếu biểu diễn theo tuyến tính thì:
depend Components then
MoleRatio[x[1]] / MoleRatio[x[2]] = x[1][n] / x[2][n]
Trang 30o : là tíc đề các giữa các miền giá trị của các biến trong tập na.
mhh là thuộc tính chỉ khối lƣợng hỗn hợp, có kiểu dữ liệu là real
- Với một đối tƣợng "Chất", ta có thuộc tính m kiểu real chỉ khối lƣợng của chất
đó
- Biểu diễn phát biểu trên bằng Quan hệ tính toán phụ thuộc dạng 2 nhƣ sau:
Trang 31depend Component then m = add(subs(s=s[m], Solutes))
(Định luật bảo toàn khối lượng)
- Với một đối tƣợng "Phản ứng", ta có các thuộc tính;
Reactants chỉ các chất tham gia phản ứng
- Biểu diễn tuyến tính của quan hệ tính toán trên
depend Reactants, Products then
sum(s[m], s in Reactants) = sum(s[m], s in Products)
Trang 3222
2.2.3 Tập 10 sự kiện
Do có sự mở rộng kiểu thuộc tính của đôi tƣợng, tập các loại sự kiện cần bổ xung thêm 1 số loại sự kiện mới dùng để biểu diễn các sự kiện liên quan tới các kiểu thuộc tính mới Cụ thể, để biểu diễn đƣợc các bài toán Hóa Vô Cơ, chúng ta cần sử dụng các loại sự kiện sau đây (các loại sự kiện 6->10 là các loại sự kiện mới)
Chú ý một số kí hiệu quy ước dùng khi ghi cách biểu diễn các loại sự kiện trong bảng sau:
Từ khóa Biểu diễn trực quan Mô tả Ví dụ cụ thể
dd_X[MC][ch_NaOH]
(nồng độ của NaOH trong dung dịch X)
concept <concept> chỉ tên một khái
niệm
SUBTANCE
const <const> chỉ biểu thức hằng 22.4
Bảng 2-1 Một số kí hiêu qui ƣớc dùng biểu diễn các loại sự kiện
[1] Sự kiện thông tin về loại của đối tƣợng
Cấu trúc sự kiện: type(obj, concept)
Ví dụ:
istype(ch_Fe, METAL) istype(Na, ELEMENT)
[2] Sự kiện về tính xác định của một đối tƣợng hay của một thuộc tính
Trang 3323
Cấu trúc sự kiện: determined(<object> | <object>.<thuộc tính>)
Ví dụ:
determined(ch_Fe[m]) determined(nt_M)
[3] Sự kiện về tính xác định của một thuộc tính hay một đối tƣợng thông qua một biểu thức hằng
Cấu trúc sự kiện: (obj | attr) = const
Ví dụ:
ch_M_1.m = 2.7 hh_A = MIXTURE[ch_Al_1, ch_Fe_1]
[4a] Sự kiện bằng nhau giữa 2 thuộc tính của các đối tƣợng có kiểu dữ liệu thực
Cấu trúc sự kiện: (attr | indexAttr) = (attr | indexAttr)
Trang 34[7] Sự kiện so sánh đối tƣợng hay thuộc tính đối tƣợng với một hằng
Cấu trúc sự kiện: (obj|attr) OP const
trong đó: OP là một trong các toán tử sau * +
Ví dụ:
x.m > 0 hh_X.CV[ch_Fe] <= 1
[8] Sự kiện xác định miền giá trị của đối tƣợng
Cấu trúc sự kiện: in(x, X)
Trang 35in(nt_M, {Na, K, Ca, Ba})
# nguyên tố nt_M là 1 trong 4 nguyên tố Na, K, Ca, Ba
in([x.V,y.V] { [1,0.5], [1, 1], [1.25, 0.25] })
# {x.V=1 ^ y.V=0.5} v {x.V=1 ^ y.V=1} v {x.V=1.25 ^ y.V=0.25}
[9] Sự kiện một thuộc tính là tập con của một tập hợp hay thuộc tính khác
Cấu trúc sự kiện: subset(attr, { }|attr2 )
Chú ý: "tập con" ở đây là tập con hay bằng chính tập hợp đó, ký hiệu trong toán học là ⊆
Attr là thuộc tính đối tƣợng mà có kiểu là `list` hoặc `set`
Concepti là loại đối tƣợng, khái niệm
Ni ràng buộc về số lƣợng các đối tƣợng thuộc loại Concepti
trong attr
ni có thể vắng mặt trong sự kiện
ni không có: không có ràng buộc về mặt số lƣợng
Trang 3626
ni = 0: list không chứa bất kỳ thành phần nào thuộc Class_i
ni = k: list chứa đúng k thành phần thuộc Class_i
Trang 37- Tập C: tập các khái niệm về các “đối tượng hóa chất”
- Tập H: tập các quan hệ thừa kế giữa 1 số đối tượng trong C
- Tập R: tập các quan hệ giữa các đối tượng trong C
- Tập Rules: tập các luật
3.1.1 Tập C
Là tập chứa các C-Object với mỗi C-Object là một “khái niệm về các đối tượng hóa chất” có trong chương trình trung học phổ thông, thường xuất hiện trong các bài toán hóa vô cơ Mỗi C-Object gồm có các thành phần sau:
- Tập các thuộc tính Attrs: Mỗi thuộc tính có 1 kiểu giá trị xác định thể hiện
cho 1 thuộc tính của đối tượng
Ví dụ:
o Nguyên tố có thuộc tính: khối lượng riêng, số thứ tự trong bản tuần hoàn
o Chất có thuộc tính: khối lượng, khối lượng riêng, thể tích, công thức phân
tử v.v…
Bên cạnh loại thuộc tính có kiểu số thực, ta quan tâm tới loại thuộc tính mới là:
Thuộc tính kiểu tập hợp, danh sách: dùng để mô tả thông tin về thành phần của 1
dung dịch, hỗn hợp hoặc thành phần chất tham gia/tạo thành trong phản ứng (đã được
trình bày cụ thể ở mục 3.2.1)
- Tập các quan hệ tính toán F: mỗi hàm là 1 công thức tính toán để tính giá trị
của các thuộc tính dựa trên các thuộc tính khác trong tập Attr
Trang 38Ví dụ: công thức tính khối lượng phân tử của 1 chất phụ thuộc vào công thức hóa học của nó
- Tập các sự kiện vốn có của đối tượng Facts: mỗi thành phần là 1 sự kiện liên
quan tới các thuộc tính ở trên Các sự kiện này có thể dùng để giới hạn vùng giá trị của thuộc tính, xác định giá trị cụ thể của thuộc tính hoặc các sự kiện được khai báo kèm với đối tượng
- Tập các luật Rules: chứa các luật suy diễn dựa trên các sự kiện liên quan tới
các thuộc tính hoặc bản thân đối tượng Mỗi luật suy diễn được trình bày dưới dạng luật dẫn có mô hình có dạng
{Tập các sự kiện đã có} ->{Tập các sự kiện mới}
Tập các loại sự kiện đã được trình bày chi tiết ở mục 3.2.3
Một số mẫu ví dụ về C-Object xem chi tiết ở Phụ lục 2
3.1.2 Tập H
Là tập chứa các quan hệ thừa kế giữa các 1 số khái niệm trong C Các khái niệm có quan hệ thừa kế là những khái niệm về các chất, nhóm chất có trong chương trình THPT Cụ thể như sau:
Đơn chất
Kim loại
Kim loại kiềm
Kim loại kiềm thổ
Kim loại nhóm Boron
Phi kim
Trang 39 Oxit kim loại
Oxit phi kim
Hidroxit
Clorua
Halogenua
Nhờ sử dụng tập H nên các khái niệm tương trong tập C sẽ được thiết kế theo
mô hình thừa kế lại các thuộc tính đã có ở đối tượng “cha” Như vậy, ta chỉ cần tập
trung biểu diễn tri thức cho khái niệm Chất để cho các khái niệm “con” của nó kế
thừa lại Đối tượng “con” là 1 trường hợp cụ thể của đối tượng “cha” sẽ có đầy đủ các thuộc tính của “cha” và thêm các sự kiện trong tập Facts để xác định các trường hợp
(2)Quan hệ đồng dạng của 2 dung dịch trên thể tích
[DongDang, DD1, DD1]
Trang 40{các sự kiện đã có} => {các sự kiện mới}
Danh sách các loại sự kiện được trình bày chi tiết trong mục 2.2.3
Các luật trong tập Rules dùng để mô tả các định lý, quy tắt tính toán và suy diễn trong hóa vô cơ Sau đây là 1 số ví dụ:
Luật về quan hệ tỉ khối hơi giữa 2 chất:
- { TyKhoiHoi[A,B,n]; determined(A.M)} => { A.M / B.M = n }
- { TyKhoiHoi[A,B,n]; determined(B.M)} => { A.M / B.M = n }