Tải bản đầy đủ (.docx) (9 trang)

Tiểu luận môn biểu diễn tri thức và suy luận Ứng dụng Giải bài toán hóa học vô cơ chương trình THCS bằng phương pháp Suy diễn tiến có Heuristic

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 (158.47 KB, 9 trang )

Tp.HCM, 03/2014
MỤC LỤC
NHẬN XÉT





















I. Vấn đề
Từ các phản ứng có sẵn, cho trước một số chất ban đầu. Hỏi có thể điều chế
được một chất theo yêu cầu hay không và cho biết các phản ứng nào được sử
dụng trong quá trình điều chế.
Ví dụ:
Cho trước Na, Cl2, AgNO3. Yêu cầu điều chế NaNO3
Giải


1. Suy luận:
• Na + Cl2 -> NaCl
• NaCl + AgNO3 -> NaNO3 + AgCl
2. Kết luận: Điều chế được
II. Đề xuất giải pháp
Sử dụng mạng tính toán với phương pháp suy diễn tiến có Heuristic.
Mạng tính toán là một mô hình được biểu diễn bởi 2 thành phần <M,F>. Trong đó:
• M: tập hợp các biến
• F: tập hợp các quan hệ tính toán
Trong vấn đề của bài tiểu luận này thì:
• F: danh sách các phản ứng hóa học (dsphanung)
• M: tập hợp các chất (được suy ra từ dsphanung)
III.
Lưu
trữ
Các phản ứng được lưu trong một tập tin dữ liệu “DuLieu.txt”. Mỗi phản ứng được
đặt trên một dòng theo cấu trúc tựa HTML như: dùng HTML element <sub> để tạo
chỉ số dưới và <sup> để tạo chỉ số trên.
Ví dụ:
• Để lưu phản ứng Na + Cl
2
 NaCl thì phản ứng được lưu trong tập tin
“DuLieu.txt” như sau:
Na + Cl<sub>2</sub> = NaCl
t
o
• Để lưu phản ứng Cl
2
+ KOH  KCl + KClO + H
2

O:
Cl<sub>2</sub> + KOH=KCl + KClO + H<sub>2</sub>O <dk>t<sup>o</sup>
(Điều kiện của phản ứng được đặt ở cuối dòng lưu phản ứng theo mẫu:
<dk>[Nội dung điều kiện]). Theo ví dụ trên thì <dk>t<sup>o</sup> biểu diễn
cho điều kiện t
o
của phản ứng.
IV. Hàm Heuristic
Mỗi phản ứng có một thuộc tính “uutien” để lưu trữ giá trị ưu tiên của phản ứng.
Quá trình suy diễn sẽ xét các phản ứng theo thứ tự giá trị “uutien” từ nhỏ đến lớn.
Mặc định, mỗi phản ứng chưa được gán giá trị “uutien” và có giá trị “uutien” ban
đầu là 0.
IV.1. Giải thuật xây dựng Heuristic
Input: “chatcuoi” là chất cần điều chế
Output: Các phản ứng được sắp xếp tăng dần theo giá trị “uutien”
Ý tưởng:
• Ưu tiên phản ứng có ít chất ở vế trái
• Ưu tiên phản ứng có vế phải chứa “chatcuoi”
B0: Gán giá trị “uutien” của mỗi phản ứng bằng với số chất bên trái của phản ứng
“giatriuutien”=1;
Sắp xếp các phản ứng tăng dần theo giá trị “uutien”.
B1: muctieu = {chatcuoi} //lưu các mục tiêu trung gian
B2: Tìm phản ứng (pu) có “uutien” ≠ số chất vế trái và có vế phải ⊇ muctieu. Nếu
tìm thấy thì đến B3. Nếu không tìm thấy thì đến B4.
B3: pu.uutien += giatriuutien; giatriuutien++; Quay lại B2.
B4: Với mỗi phản ứng (pu) còn lại:
pu.uutien = pu.uutien + giatriuutien;
giatriuutien++;
B5: Sắp xếp các phản ứng tăng dần theo giá trị “uutien”
IV.2. Ưu và khuyết điểm

Ưu điểm: Ưu tiên được các phản ứng tạo ra chatcuoi và có ít chất ở vế trái.
Khuyết điểm: Do chưa cập nhật muctieu trung gian phù hợp trong quá trình duyệt
các phản ứng nên chưa xây dựng được giá trị heuristic (uutien) tối ưu cho các
phản ứng trung gian.
V. Giải thuật suy diễn tiến có Heuristic
Input:
• Danh sách phản ứng (dsphanung)
• Các chất đầu (chatdau)
• Chất cần điều chế (chatcuoi)
Output:
• Kết luận: Điều chế thành công hay không.
• Danh sách các phản ứng được sử dụng trong quá trình điều chế (solve)
Thuật giải
B0:
• dsphanungchuaxet = dsphanung;
• known=chatdau;
• solve={};
B1: Nếu (chatcuoi ∉ known) và tìm thấy phản ứng (pu ∈
dsphanungchuaxet) (ưu tiên từ nhỏ đến lớn của giá trị uutien) sao cho vetrai
⊆ known thì:
• vephai = {các chất ở vế phải của pu};
• Nếu vephai ⊄ known thì
o known=known ∪ vephai;
o solve = sove ∪ pu;
• dsphanungchuaxet = dsphanungchuaxet \ pu;
Ngược lại: đến B3.
B2: Quay lại B1
B3: Nếu (chatcuoi ∉ known): Kết luận Điều chế không thành công
Ngược lại: Kết luận Điều chế thành công
VI. Giao diện demo

Bước 1: Nhập các các ban đầu (cách nhau bởi dấu phẩy “,”), không cần định dạng
chỉ số dưới vì chương trình tự xử lý.
Bước 2: Nhập chất cần điều chế
Bước 3: Click chuột lên nút lệnh
VII. Công cụ phát triển
Visual Studio 2010, .NET Framework 2.0
Hiển thị các phản ứng: Web Browser Control
VIII. Nhận xét
• Chưa phân nhóm được các chất: Axit, Bazơ để tự học tạo ra các phản ứng
giữa axit với bazơ.
• Chưa phân biệt được mức độ khử của các kim loại để tự tạo ra các phản ứng
khử giữa kim loại với muối.
• Chưa tự cân bằng các phương trình phản ứng.
• Heuristic còn hạn chế, cần phải cải tiến.
• Chưa tìm được các chất cần bổ sung khi không điều chế được.
IX. Tài liệu tham khảo
• Bài giảng của PGS.TS. Đỗ Văn Nhơn.
• Luận văn Thạc sĩ Khoa học Tin học (1995) – Phần IVb – Đỗ Văn Nhơn
• MSDN

×