3 CHƯƠNG III – XÂY DỰNG MÔ HÌNH TRI THỨC VÀ CÀI ĐẶT ỨNG DỤNG
3.2.2 Tập các quan hệ phân cấp
Mỗi quan hệ phân cấp gồm 2 phần: khái niệm cha và khái niệm con được biểu diễn cách nhau bằng dấu hai chấm (:). Mỗi quan hệ sẽ được trình bày thành 1 dòng.
Toàn bộ các quan hệ phân cấp trong cơ sở tri thức Hóa vô cơ như sau:
hierarchical SINGLE_SUBSTANCE : SUBSTANCE COMPOUND : SUBSTANCE METAL : SINGLE_SUBSTANCE NONMETAL : SINGLE_SUBSTANCE ALKALI : METAL EARTH_ALTKALI : METAL BORN_FAMILY : METAL CACBON_FAMILY : NON_METAL HALOGEN : NON_METAL OXIGEN_FAMILY : NON_METAL NITRO_FAMILY : NON_METAL ACID : COMPOUND BAZO : COMPOUND SALT : COMPOUND OXID : COMPOUND HIDROXID : COMPOUND HALOGENUA : COMPOUND 3.2.3 Tập các quan hệ R
Được lưu trữ trong tập tin Chemistry.KB theo cấu trúc
relations
<tên quan hệ>(<danh sách kiểu tham số>):{<tập các tính chất>}
Với <danh sách kiểu tham số> có mỗi phần tử là:
o Tên 1 kiểu dữ liệu cơ bản hoặc 1 khái niệm đã được định nghĩa trong tập C
o Tập hợp các kiểu dữ liệu đặt trong dấu {} nhằm biểu diễn rằng kiểu tham số có thể chọn 1 trong các kiểu trong tập đó.
<Tập các tính chất> là danh sách các tính chất có trong quan hệ đó như: giao hoán, kết hợp v.v….
Ví dụ : Relations
RTiKhoiHoi({SUBSTANCE,MIXTURE},{SUBSTANCE,MIXTURE}, rational ) RDDDongDang( SOLUTION, SOLUTION ) : { symmetric, transitive } RDDTyLe( SOLUTION, SOLUTION, rational )
3.2.4 Tập các luật suy diễn
Để dễ dàng hơn cho vấn đề đọc các luật suy diễn trong mô hình, cấu trúc lưu trữ mỗi luật trong rules được bổ xung thêm mệnh đề for chứa danh sách các kiểu đối tượng tham gia trong luật.
rules
for <danh sách các khái niệm tham gia trong luật>
if {<danh sách các sự kiện>} then {<danh sách các sự kiện>}
Ví dụ:
rules
# luật về tỷ khối hơi
for A:{SUBSTANCE,MIXTURE} , B:{SUBSTANCE,MIXTURE}
if { kbrelation(RTiKhoiHoi,A,B,n) and determined(A[M])} then { A[M] / B[M] = n }
for A:{SUBSTANCE,MIXTURE} , B:{SUBSTANCE,MIXTURE}
if { kbrelation(RTiKhoiHoi,A,B,n) and determined(B.M)} then { A.M / B[M] = n }
# luật về Dung dịch "đồng dạng", "tỷ lệ"
for A:SOLUTION, B:SOLUTION
if { RDDDongDang(A,B) and determined(A) }
then { get(fact=DungDichDongDang, source=A, dest=B) } for A:SOLUTION, B:SOLUTION
if { RDDDongDang(A,B) and determined(B) }
then { get(fact=DungDichDongDang, source=B, dest=A) } # Tập luật liên quan tới phản ứng oxihoa-khử
for P:REACTION
if { P.Reactants has {KMnO4} and P[Reactants] has {H2O} } then { P.Products has {MnO2} }
for P:REACTION
if { P.Reactants has {KMnO4} and P[Reactants] has {OH-} } then { P.Products has {K2MnO4} }
3.3 Tổng quan bài toán
Thông qua việc khảo sát 84 đề bài toán chọn lọc từ các đề thi đại học hai khối A, B môn Hóa từ năm 2007 – 2010, thì các bài toán này đều có nội dung như sau:
- Các thí nghiệm thường liên quan đến nhau như:
o Có chung một (hoặc nhiều) đối tượng tham gia vào việc thực hiện thí nghiệm
o Có chung một (hoặc nhiều) đối tượng là các chất tạo thành sau thí nghiệm
o Có ít nhất một trong các sản phẩm tạo ra từ thí nghiệm này tham gia vào việc thực hiện thí nghiệm kia.
- Dữ kiện bài toán là các số liệu của các chất tham gia thí nghiệm hoặc các chất tạo thành sau thí nghiệm.
- Yêu cầu của bài toán là tìm các dữ kiện của chất tham gia hay chất tạo thành sau thí nghiệm.
Ví dụ:
Bài toán có một thí nghiệm DH.A.08.263.04
Câu 04: Để hòa tan hoàn toàn 2,32 gam hỗn hợp gồm FeO, Fe3O4 và Fe2O3 (trong đó số mol FeO bằng số mol Fe2O3), cần dùng vừa đủ V lít dung dịch HCl 1M. Giá trị của V là
A. 0,23. B. 0,18. C. 0,08. D. 0,16.
Thí nghiệm của bài toán là "Hòa tan hỗn hợp (FeO, Fe3O4, Fe2O3) vào dung dịch HCl"
Bài toán có 2 thí nghiệm có chung một đối tượng tham gia vào việc thực hiện thí nghiệm
DH.A.09.175
Câu 2: Hoà tan hết m gam ZnSO4 vào nước được dung dịch X. Cho 110 ml dung dịch KOH 2M vào X, thu được a gam kết tủa. Mặt khác, nếu cho 140 ml dung dịch KOH 2M vào X thì cũng thu được a gam kết tủa. Giá trị của m là
A. 20,125. B. 22,540. C. 12,375. D. 17,710. Bài toán có 2 thí nghiệm là:
TN1: Cho 110 ml dung dịch KOH vào dung dịch X TN2: Cho 140 ml dung dịch KOH vào dung dịch X Đối tượng chung của 2 thí nghiệm này là dung dịch X
Bài toán có sản phẩm tạo ra từ thí nghiệm này tham gia vào việc thực hiện thí nghiệm kia.
DH.A.10.253
Câu 21: Hoà tan hoàn toàn 8,94 gam hỗn hợp gồm Na, K và Ba vào nước, thu được dung dịch X và 2,688 lít khí H2 (đktc). Dung dịch Y gồm HCl và H2SO4, tỉ lệ mol tương ứng là 4 : 1. Trung hoà dung dịch X bởi dung dịch Y, tổng khối lượng các muối được tạo ra là
A. 13,70 gam. B. 12,78 gam. C. 18,46 gam. D. 14,62 gam. Bài toán trên có 2 thí nghiệm
TN1: Hòa tan hỗn hợp (Na, K, Ba) vào nước thu được dung dịch X. TN2: Trung hòa dung dịch X bởi dung dịch Y.
Sản phẩm của TN1 tham gia vào TN2 là dung dịch X
Ứng với các dạng bài toán được đề cập như trên, thì ta có thể đưa ra mô hình bài toán như sau để có thể mô hình hóa các dạng bài toán đưa ra ở trên:
(O, F, Goals)
Trong đó:
O là tập hợp các đối tượng được đề cập hoặc có khả năng tham gia vào trong bài toán.
Mỗi phần tử được biểu diễn dưới dạng [tên đối tượng , tên khái niệm].
F là tập hợp các sự kiện dựa theo dữ kiện bài toán đưa ra.
Các sự kiện này có liên quan tới các đối tượng được định nghĩa ở tập O và đối tượng cần tìm ở tập Goals
Goals là tập mục tiêu của bài toán, là tập hợp các đối tượng hay thuộc tính đối tượng cần tìm
Ví dụ về mô hình cho 1 số bài toán cụ thể như sau: Bài 1: Đề thi đại học khối A năm 2008, câu 27 mã đề 263
Hấp thụ hoàn toàn 4,48 lít khí CO2 (ở đktc) vào 500 ml dung dịch hỗn hợp gồm NaOH 0,1M và Ba(OH)2 0,2M, sinh ra m gam kết tủa. Giá trị của m là
'Objects' = [ [ ChCO2 , "SUBSTANCE" ], [ ChNaOH , "SUBSTANCE" ], [ ChBaOH2 , "SUBSTANCE" ], [ ddX , "SOLUTION" ], [ tn , "EXPERIMENTS" ], [ ObjKettua ] ], 'F' = [ (ChCO2 ['Symbol'] = "CO2" ),
(ChNaOH ['Symbol'] = "Na(OH)" ),
(ChBaOH2 ['Symbol'] = "Ba(OH)2" ),
(ChCO2 ['V'] = 448/100 ),
(ddX ['Solutes2'] = [ ChNaOH, ChBaOH2 ] ),
(ddX ['V'] = 5/10 ), (ddX['MC'][chNaOH] = 1/10 ), (ddX['MC'][chBaOH2] = 2/10 ), (tn['Input'] = [ ChCO2, ddX ] ), (ObjKettua = tn['Solid'] )], 'Goals' = [ ObjKettua[m] ] ) Bài 2: Bài 7 trang 104 sách giáo khoa Hóa học 10 chương trình nâng cao Diiot pentaoxit (I2O5) tác dụng với cacbon monoxit tạo ra cacbon dioxit và iot Lập phương trình phản ứng oxi hóa - khử trên Khi cho 1 lít hỗn hợp khí có chưa CO và CO2 tham gia phản ứng thì khối lượng diiot pentaoxit bị khử là 0.5g. Tính thành phần phần trăm thể tich của CO trong hỗn hợp khí. Biết rằng ở điều kiện thí nghiệm, thể tích môn của chất khí V = 24 lít. 'Objects' = [ [ ChI2O5 , "SUBSTANCE" ], [ ChCO , "SUBSTANCE" ], [ ChI , "SUBSTANCE" ], [ ddCO2_1 , "SUBSTANCE" ], [ ddCO2_2 , "SUBSTANCE" ], [ hhX , "MIXTURE" ], [ tn , "EXPERIMENTS" ] ], 'F' = [ (ChI2O5 ['Symbol'] = "I2O5" ),
(ChCO ['Symbol'] = "CO" ),
(ChI ['Symbol'] = "I" ),
(ChCO2_1 ['Symbol'] = "CO2" ),
(ChCO2_2 ['Symbol'] = "CO2" ),
(hhX ['Component'] = {ChCO, ChCO2_1} ),
(ChI2O5 ['m'] = 0.5 ),
(tn['Input'] = [ ChI2O5, hhX ] ),
(tn['Output'] = [ ChCO2_2, ChI] ) ],
3.4 Cấu trúc dữ liệu
Chương trình lưu trữ file “CObject.txt” dung để xác định thông tin tam giác với các thành phần sau:
- Name
- Parameters: mô tả các thông số của đối tượng. Chương trình chưa sử dụng thông tin này.
- Attributes: Các thuộc tính
- Functions: Các quan hệ suy diễn tính toán - Facts: Các tính chất hay sự kiện (chưa xử lý)
- Rules: 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 than đối tượng.
3.5 Giải thuật
Giải thuật gồm 6 bước chính như sau: - Suy diễn bên trong một đối tượng - So khớp sự kiện
- Suy diễn trên luật dẫn
- Suy diễn trên các sự kiện loại 4 - Deduce sự kiện
- Suy diễn trên đối tượng “Thí nghiệm”
3.6 Hướng dẫn cài đặt và sử dụng chương trình
3.6.1 Yêu cầu
1.Chương trình chạy trên nền .Net Framework 4.0 nên người dùng cần phải cài đặt .Net Framework 4.0. Tải và cài đặt tại địa chỉ:
http://www.microsoft.com/en-us/download/details.aspx?id=17851 .
http://www.maplesoft.com/downloads/SelectPlatform.aspx? hash=68747B5B5B9EBC6C880E29ECF8940F38
3.6.2 Cài đặt và sử dụng chương trình
Chương trình được đóng gói thành tập tin GiaiHoaVoCo.msi. Người dùng có thể click setup và theo hướng dẫn cài đặt cho đến khi hoàn tất.
Sau khi kết thúc cài đặt, hãy khởi động chương trình bằng cách double click vào biểu tượng hình mặt cười trên desktop.
Giao diện màn hình giao diện lúc chạy ứng dụng sẽ hiển thị.
Thông qua giao diện chính, người dùng có thể load bài toán mẫu được định nghĩa sẵn các bài toán hoá vô cơ của các kì thi hoặc trong sách giáo khoa (có 11 bài toán mẫu).
Hình 9 - Chọn 1 bài toán mẫu bất kỳ
3.6.3 Thử nghiệm
Chương trình đã thử nghiệm giải các bài toán Hóa vô cơ thuộc nhiều dạng khác nhau thu thập từ các đề thi Tốt nghiệp và Đại học – Cao đẳng từ năm 2007-2012. Kết quả chương trình đã tìm được lời giải cho 80% bài toán trong Đề thi tốt nghiệp và 50% bài toán trong đề thi Đại học (chỉ xét các bài toán Hóa vô cơ)
Chương trình giải được các bài toán:
- Tổ hợp từ các dạng phản ứng
o Trao đổi, trung hòa.
o Oxi hóa – khử trong dãy điện hóa
o Oxi hóa - khử với HNO3 và H2SO4.
o Phản ứng nhiệt nhôm.
o Phản ứng cháy.
- Các dạng bài toán phức tạp có:
o Phản ứng hoàn toàn và không hoàn toàn
o Nhiều phản ứng xảy ra cùng lúc và liên tiếp.
Chương trình chưa giải được các bài toán:
- Liên quan tới phản ứng thuận nghịch, tốc độ phản ứng, hằng số cân bằng, phản ứng điện phân và định luận Faraday.
4 CHƯƠNG IV - KẾT LUẬN
4.1 Tóm tắt kết quả đạt được
Mục tiêu của đề tài là nghiên cứu và cải tiến mô hình COKB nhằm áp dụng vào việc xây dựng mô hình cơ sở tri thức cho lĩnh vực Hóa vô cơ và ứng dụng giải 1 số lớp bài toán trong chương trình THPT.
Với mục tiêu trên, tiểu luận này đã kết thúc với những kết quả như sau:
- Về mặt khoa học, tiểu luận đã đề ra 2 cải tiến mới trên mô hình COKB. Một là cải tiến về kiểu thuộc tính của đối tượng C-Object, bổ xung thêm kiểu dữ liệu tập hợp/danh sách các đối tượng khác (số thực, các đối tượng cơ bản và các đối tượng được định nghĩa thêm trong mô hình). Hai là cải tiến về quan hệ tính toán, bổ xung thêm khái niệm “quan hệ tính toán phụ thuộc” để biểu diễn các quan hệ tính toán liên quan tới các thuộc tính có kiểu mới vừa đề xuất ra. Với 2 cải tiến trên, mô hình C-Object có khả năng áp dụng vào nhiều miền tri thức hơn và miền tri thức Hóa vô cơ trong tiểu luận này là một ví dụ cụ thể.
- Về mặt ứng dụng, tiểu luận đã áp dụng những cải tiến mới vào xây dựng mô hình cở sở tri thức cho Hóa vô cơ trong chương trình THPT và thuật giải suy diễn hỗ trợ tìm lời giải cho 1 số lớp bài toán Hóa vô cơ THPT. Sản phẩm demo đã giải quyết được 1 số lượng bài toán tương đối được lấy từ sách giáo khoa, trong các đề thi tốt nghiệp THPT và đề thi vào Đại học Cao đẳng khối A,B từ năm 2007 tới nay.
- Về mặt kĩ thuật, tiểu luận đã kết hợp sử dụng nhiều ngôn ngữ và kĩ thuật lập trình bao gồm: ngôn ngữ lập trình Maple phiên bản 16, kĩ thuật lập trình C# sử dụng WinForm trên .NET framework 4.0
Bên cạnh đó, tiểu luận đã đóng gói toàn bộ sản phẩm demo thành gói package Chemistry viết bằng Maple 16 để tái sử dụng lại sau này. Gói này sẽ có đầy đủ tri thức, bộ suy diễn và người sử dụng chỉ cần gọi hàm để lấy kết quả theo yêu cầu bao gồm: đọc đề bài, lấy đáp án bài toán, lấy cách giải tổng quát/chi tiết, truy vấn 1 số thông tin tri thức Hóa Vô cơ.
Bên cạnh đó vẫn còn một số hạn chế :
Đề tài chưa biểu diễn được toàn bộ tri thức Hóa vô cơ mà chỉ tập trung vào tri thức hỗ trợ giải bài toán. Trong khi đó, bài tập về Hóa vô cơ có nhiều dạng phong phú khác như: nhận biết, tìm chuỗi phản ứng, điều chế, tách chiết và các câu hỏi lý thuyết
mà khóa luận chưa giải quyết được.
Đề tài chỉ đưa ra lời giải theo quy trình, chưa nhận biết và tìm ra lời giải thông minh trong các trường hợp bài toán đặc biệt, bài toán yêu cầu sự nhạy bén trong lập luận thay vì giải theo quy trình cũ, chưa giải quyết các bài toán biện luận nhiều trường hợp và tìm công thức hóa học của chất.
Dù đã đưa ra cấu trúc dùng ngôn ngữ tự nhiên để người dùng nhập bài toán vào chương trình nhưng cấu trúc vẫn còn chưa được thân thiện và phù hợp với một số đối tượng người dùng phổ thông đặc biệt là học sinh trung bình khá.
4.2 Hướng phát triển
Hướng phát triển tiếp theo là mở rộng cơ sở tri thức đã có để biểu diễn được toàn bộ lý thuyết Hóa vô cơ và thử áp dụng vào lĩnh vực Hóa hữu cơ.
Tiếp tục nghiên cứu giải quyết các vấn đề mới như nhận dạng các loại bài toán khó và sử dụng chiến thuật giải dành riêng cho các bài đó dạng đó.
Nghiên cứu các giải pháp suy luận mới, giải và biện luận các bài toán phức tạp nhằm giúp chương trình giải được nhiều dạng bài toán hơn. Góp phần vào việc xây dựng thành một phần mềm hỗ trợ học tập hoàn chỉnh.
Phát triển công cụ hỗ trợ người dùng nhập bài toán dễ dàng hơn, thân thiện và gần gũi với ngôn ngữ tự nhiên hơn.
4.3 Tài liệu tham khảo
[1] Đỗ Văn Nhơn; Hoàng Kiếm. Mô hình tri thức về các đối tượng tính toán. Báo cáo toàn văn. Trường Đại học Khoa học Tự nhiên TPHCM, 2001.
[2] Đỗ Văn Nhơn. Mạng tính toán và ứng dụng. Luận văn cao học, đại học Khoa học tự nhiên HCM, 1995.
[3] Do Van Nhon. An ontology for knowledge representation And Applications. International Conference on Data, Information and Knowledge Management. Singapo, 2008
[4] Kiem Hoang – Nhon Do Van – Bac Le Hoai – A Knowledgeable Model: Network of C_Object – Proceding of the Asia Pacific Symposium on Technologies (ANSITT 97) – HaNoi – VN 1997.
[5] Hoàng Kiếm, Đỗ Văn Nhơn, Đỗ Phúc. Giáo trình Các hệ cơ sở tri thức. NXB Đại học Quốc gia TPHCM, 2006.
[6] Russell, Stuart J., Canny, John and Norvig, Peter. Artificial Intelligence: A Modern Approach. s.l. : Prentice Hall, 1995.
[7] Pascal Hitzler, Henrik Scharfe. Conceptual Structures in Practice. Chapman & Hall/CRC. Apr 2009.
[8] L. Bernardin, P. Chin, P. DeMarco, K. O. Geddes, D. E. G. Hare, K. M. Heal, G. Labahn,J. P. May, J. McCarron, M. B. Monagan, D. Ohashi, and S. M. Vorkoetter.
Maple Programming Guide. Copyright© Maplesoft, adivision of Waterloo MapleInc.2011
[9] Lê Xuân Trọng, Sách giáo khoa Hóa học 10 (THPT). NXB Giáo Dục, 2010 [10] Lê Xuân Trọng, Sách giáo khoa Hóa học 11 (THPT). NXB Giáo Dục, 2010 [11] Lê Xuân Trọng, Sách giáo khoa Hóa học 12 (THPT). NXB Giáo Dục, 2010 [12] Lê Kim Hùng. Giúp nhớ nhanh chuỗi phản ứng Hóa học. NXB Trẻ, 1997
[13] Tuổi Trẻ Online. Các đề thi Đại học - Cao đẳng môn Hóa học khối A, B (2007- 2012). http://tuoitre.vn/tuyen-sinh/de-thi-dap-an
[14] ChEBI Home, trang chủ của dự án ChEBI, http://www.ebi.ac.uk/chebi/.
[15] Chemlap. Phần mềm hỗ trợ thực hiện các thí nghiệm ảo trên máy tính.
http://www.modelscience.com/products.html?ref=home&link=chemlab.
[16] DCEv4.00, từ điển phương trình hóa học, https://sites.google.com/site/nhutbinhsoft/