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 . 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. 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) •. 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