Ứ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Ơ - Pdf 26

Đạ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

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

• 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

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

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.

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

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ụ

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

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

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


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.

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

Trích đoạn Tập các quan hệ phân cấp
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status