CÔNG NGHỆ TRI THỨCVÀ ỨNG DỤNG ĐỀ TÀI: ĐIỀU CHẾ CHẤT HÓA HỌC - CÂN BẰNG PHẢN ỨNG HÓA HỌC SỬ DỤNG MẠNG NGỮ NGHĨA Giảng viên hướng dẫn: GS TSKH... Cho các hợp chất hóa học ban đầu A,B,C…, d
Trang 1CÔNG NGHỆ TRI THỨC
VÀ ỨNG DỤNG
ĐỀ TÀI:
ĐIỀU CHẾ CHẤT HÓA HỌC - CÂN BẰNG PHẢN ỨNG HÓA HỌC SỬ DỤNG MẠNG NGỮ NGHĨA
Giảng viên hướng dẫn: GS TSKH Hoàng Kiếm Học viên thực hiện: Ngô Hải Linh
MSHV: CH1101019 Lớp cao học khóa 6
TP Hồ Chí Minh, tháng 5/2012
Trang 2MỤC LỤC
Trang 3MỞ ĐẦU
Trong thời đại công nghệ phát triển nhanh chóng như hiện nay, việc ứng dụng công nghệ thông tin vào trong mọi lĩnh vực là một trong những nhu cầu cấp thiết và tất yếu Đặc biệt là trong lĩnh vực thương mại điện tử, quản lý, số lượng thông tin và
dữ liệu cần quản lý sẽ tăng lên gấp bội, dẫn tới công việc quản lý trở nên phức tạp, khó khăn hơn Do đó, việc ứng dụng công nghệ thông tin lại càng cấp thiết hơn, cùng với sự hỗ trợ của các phần mềm quản lý, nó giúp chúng ta quản lý mọi việc dễ dàng, nhanh chóng, đáp ứng mọi yêu cầu lưu trữ và truy xuất dữ liệu, tiết kiệm được thời gian và chi phí cho công việc
Công nghệ tri thức có thể xem là một nhánh nghiên cứu của trí tuệ nhân tạo, phân tích tri thức lĩnh vực và chuyển nó thành những mô hình tính toán đưa vào máy tính để phục vụ những nhu cầu cần thiết Hay nói cách khác là việc ứng dụng, biểu diễn các thông tin, các suy diễn đời thường của con người vào trong máy tính Xây dựng cho máy tính trở thành như một con người thực sự, và có thể giải quyết vấn đề như con người
Công nghệ tri thức đóng vai trò hết sức quan trọng trong việc phát triển Công nghệ thông tin, nâng cao sự hữu dụng của máy tính, giúp con người gần gũi với máy tính hơn Đồng thời, công nghệ tri thức còn góp phần thúc đẩy nhiều ngành khoa học khác phát triển, khả năng phát triển khoa học dựa trên tri thức liên ngành
Cho các hợp chất hóa học ban đầu A,B,C…, dựa vào các phương trình phản ứng đã biết, hãy điều chế ra hợp chất hóa học X từ những phương trình phản ứng trên Bài toán đơn giản nếu số lượng phương trình phản ứng là nhỏ Nhưng với số lượng phương trình phản ứng là rất lớn thì việc tìm ra những phương trình thích hợp
để điều chế ra chất X là rất khó khăn Từ lý do trên, áp dụng giải bài toán điều chế trên bằng việc sử dụng mạng ngữ nghĩa Và một phần nhỏ trong bài thu hoạch này là cân bằng phản ứng oxi hóa khử
Trang 4Thông qua những buổi giảng dạy và hướng dẫn của thầy Hoàng Kiếm, giúp em nắm được kiến thức tổng quát và hiểu hơn về việc quản lý tri thức, các hệ cơ sở tri thức, cũng như khai mỏ dữ liệu và khám phá tri thức Và trong bài thu hoạch này,
em xin trình bày chi tiết việc áp dụng mạng ngữ nghĩa vào bài toán điều chế chất hóa và cẩn bằng phản ứng oxi khóa khử Do khả năng và kiến thức có hạn, nên bài viết cũng chỉ dừng ở mức điều chế đơn giản và khái quát Em xin chân thành cảm ơn thầy Hoàng Kiếm đã giảng dạy và hướng dẫn để hoàn thành bài viết rất bổ ích và lý thú này
Nội dung của bài viết ngoài phần mở đầu và kết luận, có 3 mục sau:
I Mạng ngữ nghĩa
II Ứng dụng vào bài toán Điều chế chất hóa học
III Xây dựng chương trình Điều chế chất hóa học
Trang 5I Mạng ngữ nghĩa
1 Khái niệm
Mạng ngữ nghĩa là một phương pháp biểu diễn tri thức dùng đồ thị Trong đó nút biểu diễn đối tượng, và cung biểu diễn quan hệ giữa các đối tượng
Hình 1.1: Ví dụ về mạng ngữ nghĩa
Người ta có thể mở rộng mạng ngữ nghĩa bằng cách thêm các nút và nối chúng vào đồ thị Các nút mới ứng với các đối tượng bổ sung Thông thường có thể mở rộng mạng ngữ nghĩa theo ba cách:
- Thêm một đối tượng tương tự
- Thêm một đối tượng đặc biệt hơn
- Thêm một đối tượng tổng quát hơn
Ta có thể mở rộng mạng ngữ nghĩa ở Hình 1.1 như sau:
- Thêm “Cá voi” thể hiện một loài động vật có vú mới
- Thêm “Mèo Garfield” cũng là một loài mèo (nhân vật hoạt hình)
- Thêm “Loài vật” một đối tượng tổng quát hơn
Động vật có vú
Con mèo
lông
trên cạn
có
sống
đuôi
có
là
Trang 6Hình 1.2: Phát triển mạng ngữ nghĩa
Tính chất quan trọng của mạng ngữ nghĩa là tính kế thừa Nó cho phép các nút được bổ sung sẽ nhận các thông tin của các nút đã có trước, và cho phép mã hóa tri thức một cách dễ dàng
Để minh họa cho tính kế thừa của mạng ngữ nghĩa, ta hãy xét một câu hỏi trên
đồ thị Hình 1.2 Ta muốn biết mèo “Garfield” có đuôi hay không?
Hình 1.3: Các bước thực hiện phép toán trên mạng ngữ nghĩa
2 Cơ chế suy diễn
Cơ chế suy diễn thực hiện theo thuật toán “loang” đơn giản:
Động vật có vú
Con mèo
lông
có sống
đuôi
có
là
Cá voi
trên cạn
Garfield
là
Loài vật là
là
dưới nước sống
mèo
Động vật có vú Đuôi
có đuôi?
Có
Có
Trang 7Bước 1: Kích hoạt những đỉnh hình tròn đã cho ban đầu (những yếu tố đã có giá trị) Bước 2: Lặp lại bước sau cho đến khi kích hoạt được tất cả những đỉnh ứng với
những yếu tố cần tính hoặc không thể kích hoạt được bất kỳ đỉnh nào nữa
Nếu một đỉnh hình chữ nhật có cung nối với n đỉnh hình tròn mà n-1 đỉnh hình tròn đã được kích hoạt thì kích hoạt đỉnh hình tròn còn lại (và tính giá trị đỉnh còn lại
này thông qua công thức ở đỉnh hình chữ nhật)
II Ứng dụng vào bài toán Điều chế chất hóa học
Bài toán ví dụ: Từ quặng pyrit sắt (FeS2), nước biển (NaCl), không khí (O2) và nước (H2O) Tìm các phương trình phản ứng để điều chế chất FeSO4
Giả sử ta có mạng ngữ nghĩa để giải bài toán điều chế trên như hình sau:
Chất tham gia Chất tạo thành
FeS2 + O2 → Fe2O3 + SO2 SO2 + O2 → SO3
NaCl + H
2O → NaOH + H
2 + Cl 2
Fe2O3 + H2 → Fe + H2O Fe + H2O + SO3 → FeSO4 + H2
O 2
SO 2
FeS2
SO 3
Fe2O3
Fe
H
4 NaC
l
NaO
H
Cl2
(1)
(2)
(4)
(3)
(5)
Chú thích:
Trang 8Bắt đầu: đỉnh FeS2, NaCl, O2 được kích hoạt.
Phương trình (1) được kích hoạt Từ (1) ta được Fe2O3 và SO2, đỉnh Fe2O3 và
SO2 được kích hoạt
Phương trình (2) được kích hoạt Từ (2) ta được SO3, đỉnh SO3 được kích hoạt Phương trình (5) được kích hoạt Từ (5) ta được H2, đỉnh H2 được kích hoạt Phương trình (4) được kích hoạt Từ (2) ta được Fe, đỉnh Fe được kích hoạt Phương trình (3) được kích hoạt Từ (3) ta được FeSO4
Chất FeSO4 đã được điều chế, thuật toán kết thúc
III Xây dựng chương trình Điều chế chất hóa học
1 Cài đặt chương trình
1.1 Cài đặt mạng ngữ nghĩa sử dụng mảng 2 chiều
- Cột: ứng với mỗi phương trình phản ứng khác nhau (đỉnh hình chữ nhật).
- Dòng: ứng với mỗi hợp chất hóa học (gồm các chất tham) (đỉnh hình eclipse) Phần tử M[i, j] = -1 nghĩa là ứng với phương trình phản ứng cột j có hợp chất ứng với dòng i (hợp chất ở vế trái – chất tham gia) Và ngược lại M[i, j] = 0.
Mảng biểu diễn mạng ngữ nghĩa ban đầu:
(1) (2) (3) (4) (5)
Trang 9Khởi đầu: các chất FeS2, NaCl, O2, H2O được kích hoạt.
(1) (2) (3) (4) (5)
Cột (1), tất cả các dòng M[i, 1] > 0, nên các chất Fe2O3, SO2 được kích
hoạt Tương tự, ở cột (5), tất cả các dòng M[i, 5] > 0, nên các chất NaOH, H2,
Cl2 được kích hoạt
Lặp lại bước trên cho đến khi tìm được FeSO4 Ngược lại, nếu trong quá trình lặp lại mà không có ô nào được kích hoạt thì thuật toán dừng, không tìm được lời giải
Trang 101.2 Cài đặt mạng ngữ nghĩa sử dụng mảng 1 chiều
Cũng tương tự như cách cài đặt trên, nhưng chỉ sử dụng mảng 1 chiều
để lưu thông tin mạng ngữ nghĩa Và danh sách L chứa các chất ở vế trái (chất tham gia) của tất cả các phương trình phản ứng
L = {(1), (2), (3), (4), (5)}
Mảng biểu diễn mạng ngữ nghĩa ban đầu:
FeS 2 O 2 SO 2 Fe 2 O 3 Fe SO 3 H 2 O NaCl H 2
Khởi đầu: các chất FeS2, NaCl, O2, H2O được kích hoạt
FeS 2 O 2 SO 2 Fe 2 O 3 Fe SO 3 H 2 O NaCl H 2
Lặp từng phương trình phản ứng (1) tới (5), ứng với từng phương trình, kiểm tra các chất ở vế trái của phương trình đó Nếu tất cả giá trị lớn hơn 0 thì các chất ở vế phải ứng với phương trình đó được kích hoạt
Ở phương trình (1), vế trái FeS2 = 1, O2 = 1 nên các chất ở vế phải Fe2O3,
SO2 được kích hoạt Loại bỏ phương trình (1) ra khỏi danh sách L.
L = {(2), (3), (4), (5)}
FeS 2 O 2 SO 2 Fe 2 O 3 Fe SO 3 H 2 O NaCl H 2
Tiếp đến kiểm tra phương trình (2), vế trái SO2 = 1, O2 = 1 nên các chất ở
vế phải SO3 được kích hoạt Loại bỏ phương trình (2) ra khỏi danh sách L.
L = {(3), (4), (5)}
FeS 2 O 2 SO 2 Fe 2 O 3 Fe SO 3 H 2 O NaCl H 2
Trang 11Kiểm tra phương trình (3), vế trái Fe = 0, H2O= 1, SO3= 1 nên các chất ở
vế phải chưađược kích hoạt
L = {(3), (4), (5)}
FeS 2 O 2 SO 2 Fe 2 O 3 Fe SO 3 H 2 O NaCl H 2
Lặp lại bước trên cho đến khi tìm được FeSO4 Ngược lại, nếu trong quá trình lặp lại mà không có phương trình nào bị loại khi đã duyệt hết danh sách L thì thuật toán dừng, không tìm được lời giải
Sử dụng mảng 1 chiều tiết kiệm được không gian lưu trữ hơn so với mảng 2 chiều Do đó, em sử dụng cài đặt mảng 1 chiều cho chương trình demo Điều chế này
1.3 Giới thiệu CSDL
Cấu trúc XML được sử dụng để lưu trữ dữ liệu của các phương trình phản ứng, và các chỉ số electron (dùng để cân bằng phản ứng hóa học bằng phương pháp electron) như sau:
- Cấu trúc xml lưu trữ các phương trình phản ứng (equation.xml):
<?xml version="1.0" encoding="utf-8" ?>
< equations >
< eq >4FeS2 + 9O2 = 2Fe2O3 + 6SO2</ eq >
< eq >2SO2 + O2 = 2SO3</ eq >
< eq >Fe2O3 + 3H2 = 2Fe + 3H2O</ eq >
< eq >Fe + H2O + SO3 = FeSO4 + H2</ eq >
< eq >2NaCl + 2H2O = 2NaOH + H2 + Cl2</ eq >
</ equations >
- Cấu trúc xml lưu trữ chỉ số electron của 1 nguyên tố (electron.xml):
<?xml version="1.0" encoding="utf-8" ?>
< electronlist >
< nguyento >
< kyhieu >O</ kyhieu >
< electron >-2</ electron >
</ nguyento >
Trang 12< nguyento >
< kyhieu >H</ kyhieu >
< electron >1</ electron >
</ nguyento >
< nguyento >
< kyhieu >Fe</ kyhieu >
< electron >2,3</ electron >
</ nguyento >
< nguyento >
< kyhieu >S</ kyhieu >
< electron >2,4,6</ electron >
</ nguyento >
< nguyento >
< kyhieu >Mg</ kyhieu >
< electron >2</ electron >
</ nguyento >
< nguyento >
< kyhieu >N</ kyhieu >
< electron >3,4,5</ electron >
</ nguyento >
< nguyento >
< kyhieu >Cl</ kyhieu >
< electron >-1</ electron >
</ nguyento >
< nguyento >
< kyhieu >O</ kyhieu >
< electron >-2</ electron >
</ nguyento >
…
< nhomnguyento >
< kyhieu >SO4</ kyhieu >
< electron >-2{S[6,1],O[-2,4]}</ electron >
</ nhomnguyento >
< nhomnguyento >
< kyhieu >NO3</ kyhieu >
< electron >-1{N[5,1],O[-2,3]}</ electron >
</ nhomnguyento >
< nhomnguyento >
< kyhieu >OH</ kyhieu >
< electron >1{O[-2,1],H[1,1]}</ electron >
</ nhomnguyento >
</ electronlist >
Trang 132 Các chức năng trong chương trình
Chương trình được xây dựng trên môi trường visual studio 2010, ngôn ngữ C# 2.1 Giao diện của chương trình
- Màn hình điều chế chất hóa học
- Màn hình cân bằng phản ứng hóa học (Phản ứng oxi hóa – khử)
Trang 142.2 Cách sử dụng chương trình
* Chức năng điều chế chất hóa học:
- Chọn các chất tham gia có trong dữ kiện bài toán vào ô Chất ban đầu.
- Tiếp theo, chọn chất cần điều chế ở combox Chất cần điều chế.
- Cuối cùng, nhấn nút Điều chế, và kết quả quá trình điều chế thông qua các phương trình phản ứng xuất hiện ở listbox Quá trình điều chế.
Hình 2.1: Điều chế chất FeSO4
* Chức năng cân bằng phản ứng hóa học (Phản ứng oxi – hóa khử):
- Nhập phương trình phản ứng cần cân bằng vào textbox
Ví dụ: Fe + H2SO4 = Fe2(SO)4 + SO2 + H2O
- Nhấn nút Cân bằng và kết quả xuất hiện (nếu có thể cân bằng).
Trong chương trình demo này, chỉ thực hiện cân bằng phản ứng hóa học theo phương pháp cân bằng electron
- Muốn thêm phương trình phản ứng vào cơ sở dữ liệu sử dụng cho
chức năng Điều chế Nhập phản ứng vào ô textbox (chọn nút Cân bằng nếu
có thể cân bằng) và nhấn nút Thêm vào dữ liệu.
Trang 15Hình 2.2: Cân bằng phản ứng hóa học
Hình 2.3: Phản ứng có chất hóa học là tổ hợp của 2 chất khử
Trang 16KẾT LUẬN
Qua bài viết trên cho chúng ta có cái nhìn khái quát về phương pháp biểu diễn tri thức của mạng ngữ nghĩa Cũng giống như các phương pháp khác, mạng ngữ nghĩa cũng có ưu khuyết điểm của nó Vì vậy, chúng ta hãy
cố gắng khai thác ưu điểm của nó và hạn chế khuyết điểm tối đa trong các chương trình ứng dụng của mình
Trong chương trình demo Điều chế trên, em chỉ dừng lại ở mức cơ bản
do thời gian có hạn Quá trình suy diễn để tìm ra được các phương trình phản ứng cần cho quá trình điều chế, nhưng các phương trình đó chưa được tối ưu (phản ứng đắt tiền trong thực tế, chưa nhận ra được chất kết tủa ) Hướng phát triển của chương trình là:
- Tối ưu được phương trình phản ứng cần cho quá trình điều chế
- Kế thừa để phát triển thành bài toán Nhận biết chất hóa học
- Đồng thời, hoàn thiện chức năng Cân bằng phản ứng hóa học
Tài liệu tham khảo chính:
(1) Slides chuyên đề Công Nghệ Tri Thức và Ứng dụng – GS.TSKH Hoàng Kiếm
(2) Giáo trình Các hệ cơ sở tri thức - GS.TSKH Hoàng Kiếm, TS Đỗ Phúc, TS Đỗ Văn Nhơn.
(3) en.wikipedia.org/wiki/Semantic_network
(4) chiennc.violet.vn/entry/show/entry_id/1822167
(5) d.violet.vn/uploads/resources/240/599635/preview.swf