Tải bản đầy đủ (.doc) (42 trang)

ỨNG DỤNG CƠ SỞ TRI THỨC VÀ SỬ DỤNG THƯ VIỆN MAPPLE GIẢI BÀI TOÁN HOÁ VÔ CƠ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (734.01 KB, 42 trang )

Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
BÀI THU HOẠCH MÔN
LẬP TRÌNH SYMBOLIC
ĐỀ TÀI:
ỨNG DỤNG CƠ SỞ TRI THỨC
VÀ SỬ DỤNG THƯ VIỆN MAPPLE
GIẢI BÀI TOÁN HOÁ VÔ CƠ
GVHD: PGS.TS. Đỗ Văn Nhơn
Người thực hiện: Bùi Chí Cường
Mã số: CH1101007
Lớp: Cao học khóa 6
TP.HCM – 2013
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời chân thành cảm ơn đến Ban Chủ nhiệm trường Đại học
công nghệ thông tin TP HCM đã tạo điều kiện cho em được tiếp cận với bộ môn lập
trình Symbolic.
Em xin cảm ơn thầy PGS.TS. Đỗ Văn Nhơn đã tận tình truyền đạt kiến thức cho chúng
em cũng những gì thầy đã giúp đỡ, hướng dẫn để em thực hiện bài tiểu luận.
Em cũng xin gửi lời cảm ơn sâu sắc đến quý thầy cô trong Khoa Công nghệ Thông tin
cùng các bạn bè thân hữu đã nhiệt tình đóng góp ý kiến, cũng như động viên để em
hoàn thiện hơn đề tài của mình.
Mặc dù đã rất cố gắng nhưng đề tài khó tránh khỏi những thiếu sót và sai lầm, em
mong thầy cô và bạn bè cho ý kiến để đề tài ngày càng hoàn thiện hơn.
Một lần nữa, em xin chân thành cảm ơn!
Tp. HCM, 15 tháng 1 năm 2013
Bùi Chí Cường
CH1101007
MỤC LỤC
LỜI CẢM ƠN ii
MỤC LỤC iii


DANH MỤC CÁC HÌNH v
1 CHƯƠNG I - MỞ ĐẦU 6
1.1 Giới thiệu chung 6
1.2 Hoạt động nghiên cứu 6
1.3 Một số thành tựu hiện có 7
2 CHƯƠNG II - TỔNG QUAN VỀ MÔ HÌNH COKB VÀ MỘT SỐ CẢI TIẾN 10
2.1 Mô hình COKB 10
2.1.1 Định nghĩa đối tượng tính toán (C-Object): 10
2.1.2 Mô hình cho một C-Object 10
Attrs là tập hợp các thuộc tính của đối tượng 10
F là tập hợp các quan hệ suy diễn tính toán 10
Facts là tập hợp các tính chất hay sự kiện vốn có của đối tượng 10
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 11
2.1.3 Mô hình tri thức các đối tượng tính toán (COKB) 11
2.2 Một số cải tiến mới 13
2.2.1 Mở rộng kiểu thuộc tính của C-Object 13
2.2.2 Quan hệ tính toán phụ thuộc 16
2.2.3 Tập 10 sự kiện 18
3 CHƯƠNG III – XÂY DỰNG MÔ HÌNH TRI THỨC VÀ CÀI ĐẶT ỨNG DỤNG
GIẢI BÀI TOÁN HOÁ VÔ CƠ 22
3.1 Mô hình tri thức 22
3.1.1 Tập C 22
3.1.2 Tập H 23
3.1.3 Tập R 24
3.1.4 Tập Rules 24
3.2 Cách tổ chức lưu trữ 25
3.2.1 Tập các khái niệm (C-Object) 25
3.2.2 Tập các quan hệ phân cấp 27
3.2.3 Tập các quan hệ R 27

3.2.4 Tập các luật suy diễn 28
3.3 Tổng quan bài toán 28
3.4 Cấu trúc dữ liệu 32
3.5 Giải thuật 32
3.6 Hướng dẫn cài đặt và sử dụng chương trình 32
3.6.1 Yêu cầu 32
3.6.2 Cài đặt và sử dụng chương trình 33
3.6.3 Thử nghiệm 39
4 CHƯƠNG IV - KẾT LUẬN 40
4.1 Tóm tắt kết quả đạt được 40
4.2 Hướng phát triển 41
4.3 Tài liệu tham khảo 41
DANH MỤC CÁC HÌNH
Hình 1 - Mẫu ví dụ về ChEBI 8
Hình 2 - Chemlap 9
Hình 3 - Giao diện chính của DCE 2008 9
Hình 4 - Ví dụ về sơ đồ mạch điện 15
Hình 5 - Giao diện chính 34
Hình 6 - Giao diện hướng dẫn 35
Hình 7 - Giao diện thông tin học viên 36
Hình 8 - Load bài toán mẫu 37
Hình 9 - Chọn 1 bài toán mẫu bất kỳ 38
Hình 10 - Sau khi load xong bài toán mẫu 38
6
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
1 CHƯƠNG I - MỞ ĐẦU
1.1 Giới thiệu chung.
Trong những ngành cần quan tâm ứng dụng Công nghệ thông tin, Giáo dục là
một 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.
1.2 Hoạt động nghiên cứu.
Đề tài tiểu 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 hoá vô cơ trong chương trình Phổ thông.
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
7
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
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.
Đề tài sẽ sử dụng công cụ lập trình chính là Maple 16 vì ngôn ngữ này hỗ trợ khá
tốt lập trình tính toán hình thức, một 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.
1.3 Một số thành tựu hiệ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) .
8
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Hình 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 vực
hóa hữu cơ. Mọi cá nhân, tổ chức có nhu cầu đều có thể tải miễn phí toàn bộ mã nguồn
và cơ sở dữ liệu của ChEBI trên trang chủ www.ebi.ac.uk.
Bên cạnh sự hiếm hoi các đề tài nghiên cứu về lĩnh vực này là các ứng dụng
thương mại hỗ trợ dạy và học Hóa thông minh với các chức năng tương đối hiện đại và
cao cấp. Ví dụ tiêu biểu nhất là phần mềm tạo thí nghiệm ảo trên máy tính Chemlap.
Phần mềm này cung cấp đầy đủ các công cụ và tính năng ảo cần thiết cho việc thực
hiện 1 thí nghiệm hóa học. Nhận biết được quá trình xảy ra các phản ứng hóa học và
hiện tượng của nó. Có thể nói phần mềm này đã xử lý rất tốt tri thức thực tế về các hóa

chất trong Hóa học, khả năng xử lý phân tích với các điều kiện khác nhau tương đối
chính xác và đem lại 1 môi trường ảo thân thiện với người dùng.
9
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Hình 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”, 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ề 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 3 - Giao diện chính của DCE 2008
10
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
2 CHƯƠNG II - TỔNG QUAN VỀ MÔ HÌNH COKB VÀ
MỘT SỐ CẢI TIẾN
2.1 Mô hình COKB
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 = {x
1
, x
2
, , x

n
} 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)
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
11
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
- 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:
• Tập các thuộc tính của đối tượng Attrs: trong đó mỗi thuộc tính lấy giá trị
trong 1 miền xác định.
• Tập các sự
Cùng với cấu trúc trên, đối tượng còn được trang bị các hành vi cơ bản trong việc
giải quyết các bài toán suy diễn và tính toán trên các thuộc tính của đối tượng, bản thân
đối tượng hay các đối tượng liên quan được thiết lập trên nền của đối tượng (nếu đối
12
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
tượng được thiết lập trên một danh sách các đối tượng nền nào đó). Các hành vi 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 sự
kiện trên các đối tượng nhất định. Như vậy, một luật r có thể được mô hình dưới dạng:
r : {sk1, sk2, , skn} -> { sk1, sk2, , skm }
Để mô hình luật dẫn trên có hiệu lực trong cơ sở tri thức và để có thể khảo sát các
thuật giải để giải quyết các bài toán, ta cần định nghĩa các dạng sự kiện khác nhau
13
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
trong các luật. Dưới đây là định nghĩa cho 6 loại sự kiện khác nhau được xem xét trong
mô hình.
2.2 Một số cải tiến mới
2.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
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" (Đố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.
14
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
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 để
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.
15
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
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)
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.
Ví dụ:
Đố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ó 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ể.


Hình 4 - Ví dụ về sơ đồ mạch điện
dict(TYPE1, TYPE2)
16
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
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.
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 đó
17
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
- 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.
Ví dụ: quan hệ tính nồng độ phần trăm của 1 chất tan trong dung dịch gồm
nhiều chất tan.
Quan hệ tính toán mở rộng được đặt tên là “Quan hệ tính toán phụ thuộc” và
được chia làm 2 loại được trình bày sau đây.
Qui ước:
- 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 1: ∀ x ∈ f(la): expression(x, na)
trong đó
- la ⊆ ListAttrs : là tập các thuộc tính loại danh sách trong quan hệ tính toán
phụ thuộc
- na ⊆ NumAttrs : là các thuộc tính loại số học trong quan hệ tính toán phụ

thuộc
- 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]

Loại 2: d(la, na)
trong đó
- la ⊆ ListAttrs : là tập các thuộc tính loại danh sách trong quan hệ tính toán
phụ thuộc
18
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
- na ⊆ NumAttrs : là các thuộc tính loại số học trong quan hệ tính toán phụ
thuộc
- d : (set function)
o : là một họ, (một lớp) các tập hợp, tập mà trong đó các phần tử là
một tập hợp (hữu hạn), là miền xác định của la.
o : là tích đề các giữa các miền giá trị của các biến trong tập na.
o : là một tập các đẳng thức.
d thường chứa các toán tử như , , …
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ể
id (identifier)

obj <object> chỉ tên một đối
tượng
TAM_GIAC
attr <object>[<attribute>] chỉ thuộc tính của
một đối tượng
[GocA], [GocB], [GocC]
indexAttr <object>[<atrribute>]
[<key>]
Chỉ giá trị của thuộc
tính kiểu Dict tại vị
trí có khóa là <key>
concept <concept> chỉ tên một khái
niệm
SUBTANCE
const <const> chỉ biểu thức hằng 22.4
19
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
[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)
[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.
Cấu trúc sự kiện: determined(<object> | <object>.<thuộc tính>)

[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
[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)

[4l] Sự kiện bằng nhau giữa 2 thuộc tính của các đối tượng có kiểu danh

sách, tập hợp
Cấu trúc sự kiện: attr = attr

[4o] Sự kiện bằng nhau giữa một đối tượng với một đối tượng hay thuộc
tính đối tượng khác
Cấu trúc sự kiện: obj = (obj | attr | indexAttr)

[5] Sự kiện về sự phụ thuộc của một đối tượng hay một thuộc tính theo
những đối tượng hay thuộc tính khác thông qua một công thức tính toán.
Cấu trúc sự kiện:
(obj | attr) = <biểu thức tính toán theo các object hay thuộc tính khác>

[6] Sự kiện về một quan hệ trên các đối tượng hay trên các thuộc tính của c|
c đối tượng.
20
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Cấu trúc sự kiện: relation(R, (obj|attr)+)

[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

[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)
trong đó:
x có dạng
obj | attr hay (dạng x1 )
[ obj | attr , (obj | attr)* ] (dạng x2)
X có dạng
{ option1, option2 … } nếu x là dạng x1 hay x2 hay

attr nếu x là dạng x1
với option_i là các biểu thức hằng hay danh sách các biểu thức
hằng

[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à ⊆

[10]Sự kiện xác định quan hệ "chứa" trong 1 danh sách (Sự kiện ràng buộc
về thành phần)
Cấu trúc sự kiện: contain(attr, {[Concept1, n1?] (, [Concepti, ni?])*}
trong đó
Attr là thuộc tính đối tượng mà có kiểu là `list` hoặc `set`
21
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Concept
i
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
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
22
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
3 CHƯƠNG III – XÂY DỰNG MÔ HÌNH TRI THỨC VÀ CÀI
ĐẶT ỨNG DỤNG GIẢI BÀI TOÁN HOÁ VÔ CƠ
3.1 Mô hình tri thức

Mô hình gồm 4 thành phần:
(C,H,R, Rules)
- 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.
Ví dụ như công thức tính số mol của 1 chất từ khối lượng và phân tử khối của
nó là: n= m/M.
Trong quan hệ tính toán F, ta định nghĩa thêm tập các quan hệ tính toán phụ
thuộc DF: là các quan hệ tính toán dựa trên giá trị 1 thuộc tính có kiểu danh sách/tập
hợp (đã được trình bày ở mục 3.2.2).
23
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Ví 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}
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

Nhóm Nito

Nhóm Cacbon


Nhóm Oxi

Nhóm Halogen

Hợp chất

Axit

Bazo

Muối

Oxit

Oxit kim loại

Oxit phi kim
24
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6

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 cụ thể.

3.1.3 Tập R
Tập R là tập hợp các khái niệm về các loại quan hệ giữa các đối tượng trong C. Xét
nhu cầu giải toán Hóa Vô Cơ THPT ta có các loại quan hệ sau:
(1)Quan hệ "tỉ khối hơi" giữa 2 hỗn hợp khí
[TiKhoiHoi, hh1, hh2, a]
Trong đó:
Hh1, hh2 là 2 hỗn hợp khí
.a là giá trị tỉ lệ giữa hh1 và hh2, nghĩa là hh1.V/hh2.V = a.
(2)Quan hệ đồng dạng của 2 dung dịch trên thể tích
[DongDang, DD1, DD1]
Trong đó
DD1, DD2 là 2 dung dịch
Ví dụ:
có 1 lít Dung dịch A, lấy 100ml dd A gọi là dd B ta có
[DongDang, B, A].
(3)Quan hệ đồng dạng của 2 dung dịch trên tỷ lệ
[ TyLe, DD1, D2,k ]
Trong đó
DD1, DD2 là 2 dung dịch
K là tỉ số đồng dạng
Có nghĩa là DD1.V/DD2.V = k.
Ví dụ:
có dd A, lấy phân nửa dd A gọi là dd B
=> [ TyLe, ddA, ddB, 1/2 ]
3.1.4 Tập Rules
Tương tự trong mô hình COKB, mỗi luật trong Rules là một tri thức mang tính
phổ quát giữa các khái niệm và các sự kiện đã có. Khi áp dụng một luật ta sẽ tìm ra các
sự kiện mới từ các sự kiện đã có. Luật trong Rules có cấu trúc như sau:
{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.

25
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
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 }
Luật về tìm các phản ứng oxi hóa khử
- if { P.Reactants has {KMnO4} and P[Reactants] has {H2O} }
then { P.Products has {MnO2} }{istype(Metal, M), istype(Salt,S),
IsMAbeforeMB(M,S[Metal])}
- if { P.Reactants has {KMnO4} and P[Reactants] has {OH-} }
then { P.Products has {K2MnO4} }
3.2 Cách tổ chức lưu trữ
Để lưu trữ tri thức cho lĩnh vực Hóa vô cơ theo mô hình được trình bày ở trên,
tiểu luận này đưa ra 1 cách lưu trữ mới thay thế cho các cách cũ đã dùng trước đây.
Cách mới này sẽ lưu trữ toàn bộ tri thức vào 1 tập tin mang tên Chemistry.KB có cấu
trúc như sau:
CHEMISTRY
Concepts
<danh sách các đối tượng trong tập C>
Hierarchical
<danh sách các đối tượng trong tập H>
Relations
<danh sách các đối tượng trong tập R>
Rules
<danh sách các đối tượng trong tập Rules>
3.2.1 Tập các khái niệm (C-Object)
Mỗi khái niệm được lưu trữ với cấu trúc:
<tên khái niệm>

attributes
<tên thuộc tính> : <kiểu thuộc tính>
facts
<danh sách các sự kiện>
formula relation
<danh sách các quan hệ tính toán>
depend formula relations

×