ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Phan Hữu Phước – CH1301106 TIỂU LUẬN THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ GIẢI BÀI TOÁN HÓA HỌC VÔ CƠ BẰNG THUẬT TOÁN METAHEURISTIC TRÊN MẠNG TÍNH TOÁN GIẢNG VIÊN: PGS.TS. Đỗ Văn Nhơn TP HỒ CHÍ MINH – 11/2014 MỤC LỤC Trang 2 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước 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. MÔ HÌNH HÓA II.1. Khái niệm mạng tính toán 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ỗi phản ứng được xem là một quan hệ. • M: tập hợp các chất (được suy ra từ dsphanung). Mỗi chất được xem là một biến. Trang 3 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước II.2. Mô hình hóa vấn đề Danh sách các phản ứng: Na + Cl 2 = NaCl Fe + Cl 2 = FeCl 3 Cu + Cl 2 = CuCl 2 Cl 2 + H 2 O = HCl + HClO MnO 2 + HCl = MnCl 2 + Cl 2 + H 2 O HCl + KMnO 4 = KCl + MnCl 2 + H 2 O + Cl 2 AgNO 3 + NaCl = NaNO 3 + AgCl Danh sách các chất ban đầu: Na, Cl 2 , AgNO 3 Theo mô hình mạng tính toán thì: M= { Na; Cl 2 ; AgNO 3 } F= { Na + Cl 2 = NaCl; Fe + Cl 2 = FeCl 3 ; Cu + Cl 2 = CuCl 2 ; Cl 2 + H 2 O = HCl + HClO; MnO 2 + HCl = MnCl 2 + Cl 2 + H 2 O; HCl + KMnO 4 = KCl + MnCl 2 + H 2 O + Cl 2 ; AgNO 3 + NaCl = NaNO 3 + AgCl } Cho f ∈ F • f(L): tập hợp các chất ở vế trái của f • f(R): tập hợp các chất ở vế phải của f • K(f): trạng thái kích hoạt của f. Nếu f chưa được kích hoạt thì K(f)=false, ngược lại thì K(f)=true • C(f): Số lượng các chất ở vế trái của f • Nếu K(f)=true và f(L) ⊆ M thì M = M ∪ f(R) III. Ý TƯỞNG Tìm phản ứng chưa được kích hoạt và có vế trái chưa trong tập hợp các chất đã biết. Bổ sung các chất vế phải của phản ứng vào tập các chất đã biết và đánh dấu f đã được kích hoạt. Ưu tiên (Heuristic): Trang 4 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước • Phản ứng có ít chất ở vế trái • Phản ứng có vế phải chứa chất cần điều chế • U(f): giá trị ưu tiên của f trong quá trình giải bài toán. U(f) càng nhỏ thì càng được ưu tiên. IV. HÀM HEURISTIC Input • F: tập hợp các phản ứng • G: chất cần điều chế Output • F = {f i } đã được sắp xếp tăng dần theo U(f i ) Thuật giải B0: U(f)=R(f); UT=1; Sắp xếp F={f i } tăng dần theo U(f i ) B1: MT={G}; //Ghi nhận các mục tiêu trung gian B2: Tìm f có U(f) ≠ C(f) và f(R) ⊇ MT. Nếu tìm thấy thì đến B3, ngược lại thì đến B4 Trang 5 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước B3: U(f) = U(f) + UT; UT = UT + 1; Quay lại B2 B4: Với mỗi f còn lại: U(f) = U(f) + UT; UT = UT+1; B5: Sắp xếp F={f i } tăng dần theo U(f i ) Độ phức tạp: O(n 2 ) V. GIẢI THUẬT Input: • M: tập hợp các chất ban đầu • F: tập hợp các phản ứng • G: chất cần điều chế Output: • Kết luận: Điều chế được hay không • Danh sách các phản ứng đã sử dụng Giải thuật B0: UF=F; KNOW=M; SOLVE=∅; B1: Nếu (G∉KNOW) và Tìm thấy f sao cho f(L)⊆KNOW (ưu tiên f có U(f) nhỏ nhất) thì: • KNOW=KNOW∪f(R) • SOLVE=SOLVE∪f • UF=UF\f Ngược lại: đến B3 B2: Quay lại B1 B3: Nếu (G∉KNOW): 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. TÍNH ĐÚNG ĐẮN • Phản ứng nào đã được dùng để điều chế thì không dùng nữa Trang 6 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước • Thuật giải dừng khi đã điều chế được G hoặc khi không tìm thấy f để điều chế thêm chất khác Trang 7 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước VII. ĐỘ PHỨC TẠP O(n2) khi duyệt hết F mà không điều chế được G VIII. CẢI THIỆN Cập nhật MT trong hàm Heuristic phù hợp trong quá trình duyệt các f. Trang 8 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước IX. 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 Trang 9 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước X. TÀI LIỆU THAM KHẢO [1] Bài giảng của PGS.TS. Đỗ Văn Nhơn. [2] 2009-08, Computational Networks for Knowledge Representation - Đỗ Văn Nhơn. Trang 10 . ĐẠI HỌC QUỐC GIA TP. HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Phan Hữu Phước – CH1301106 TIỂU LUẬN THUẬT TOÁN VÀ PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ GIẢI BÀI TOÁN HÓA HỌC VÔ CƠ BẰNG THUẬT TOÁN METAHEURISTIC. TOÁN METAHEURISTIC TRÊN MẠNG TÍNH TOÁN GIẢNG VIÊN: PGS.TS. Đỗ Văn Nhơn TP HỒ CHÍ MINH – 11/2014 MỤC LỤC Trang 2 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước I. VẤN ĐỀ Từ các. dsphanung). Mỗi chất được xem là một biến. Trang 3 Thuật toán và phương pháp giải quyết vấn đề CH1301106 – Phan Hữu Phước II.2. Mô hình hóa vấn đề Danh sách các phản ứng: Na + Cl 2 = NaCl Fe +