Tiểu luận môn biểu diễn tri thức và suy luận THIẾT KẾ BỘ SUY DIỄN CHUỖI PHẢN ỨNG HÓA HỌC

36 1.6K 2
Tiểu luận môn biểu diễn tri thức và suy luận THIẾT KẾ BỘ SUY DIỄN CHUỖI PHẢN ỨNG HÓA HỌC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN - - BÁO CÁO Đề tài: THIẾT KẾ BỘ SUY DIỄN CHUỖI PHẢN ỨNG HĨA HỌC Mơn học: Biểu diễn tri thức suy luận Giảng viên hướng dẫn: PGS.TS Đỗ Văn Nhơn Học viên: Huỳnh Thanh Việt – CH1301114 TPHCM, Tháng – 2014 NHẬN XÉT CỦA GIẢNG VIÊN MỤC LỤC LỜI CÁM ƠN Đầu tiên, em xin chân thành cám ơn thầy PGS.TS Đỗ Văn Nhơn truyền đạt nhiệt tình cho chúng em kiến thức quý báu môn Biễu diễn tri thức ứng dụng để em hoàn thành đề tài Em xin gửi lời cám ơn chân thành đến thầy cô trường Đại học Cơng Nghệ Thơng Tin tận tình giúp đỡ em thời gian học vừa qua Xin cảm ơn tất bạn bè động viên, giúp đỡ tơi q trình học tập hồn thành đề tài TPHCM, ngày 27 tháng 03 năm 2014 Lớp CH08 Học viên thực Huỳnh Thanh Việt LỜI NÓI ĐẦU Một vấn đề quan tâm “Trí Tuệ Nhân Tạo” nghiên cứu phương pháp biểu diễn xử lý tri thức Trên sở tạo chương trình “thơng minh” mức độ Trong nhiều lĩnh vực thường gặp vấn đề đặt dạng sau : Chúng ta phải thực tính tốn hay suy diễn yếu tố cần thiết từ số yếu tố biết trước Để giải vấn đề người ta phải vận dụng số hiểu biết (tri thức) liên hệ yếu tố xem xét Những liên hệ cho phép ta suy số yếu tố từ giả thiết biết số yếu tố khác Trong báo cáo xét đến mơ hình biểu diễn xử lý tri thức áp dụng giải tự động tốn mơ hình “Mạng tính tốn” CHƯƠNG : MỘT SỐ MƠ HÌNH BIỂU DIỄN TRI THỨC I Giới thiệu tri thức Tri thức (knowledge): hiểu biết người phạm vi, lĩnh vực đó; xem xét theo mục tiêu hay vấn đề định Ví dụ: - Kiến thức lĩnh vực y học khả chẩn đoán bệnh tri thức Biết tam giác có yếu tố với cơng thức liên hệ yếu tố tri thức Biết dạng cấu trúc liệu thường dùng lập trình với thuật tốn xử lý cấu trúc tri thức Các dạng tri thức - Tri thức mô tả: khái niệm, đối tượng Tri thức cấu trúc: khái niệm cấu trúc, quan hệ, đối tượng phức hợp, Tri thức thủ tục: luật dẫn, thủ tục xử lý, chiến lược, … Tri thức meta: tri thức dạng tri thức khác cách sử dụng chúng Tri thức hệ thống phức tạp, đa dạng trừu tượng bao gồm nhiều thành tố với mối liên hệ tác động qua lại như: - Các khái niệm (concepts), với mối liên hệ định (relationships) Các quan hệ (relations): Xem lại kiến thức quan hệ góc độ tốn học giáo trình “Tốn Rời Rạc”: o Định nghĩa quan hệ ngơi o Các tính chất quan hệ R tập X: phản xạ, đối xứng, phản xứng, bắc cầu o Quan hệ thứ tự o Quan hệ tương đương o Cách biểu diễn quan hệ R tập X: Biểu diễn dựa “tập - hợp”,biểu diễn ma trận, biểu đồ (đồ thị) Các tốn tử (operators), phép tốn, biểu thức hay cơng thức o Phép tốn ngơi T tập X ánh xạ T : XxX  X (a,b)  a T b ≡ T(a,b) Ví dụ: T: NxN  N (a,b)  a+b o Phép tốn ngơi S tập X S: X  X o Các tính chất thường xem xét: giao hốn, kết hợp, phần tử trung hòa, - phần tử nghịch đảo, phần tử đối, phân phối (hay phân bố), … Các hàm (functions) Các luật (rules) Sự kiện (facts) Các thực thể hay đối tượng, phần tử cụ thể (objects) Biểu diễn tri thức luật dẫn(luật sinh) 1.1 Khái niệm Phương pháp biểu diễn tri thức luật sinh phát minh Newell Simon lúc hai ông cố gắng xây dựng hệ giải toán tổng quát.Đây kiểu biểu diễn tri thức có cấu trúc Ý tưởng tri thức cấu trúc cặp điều kiện hành động: "NẾU điều kiện xảy THÌ hành động thi hành" Chẳng hạn, NẾU đèn giao thơng đỏ THÌ bạn khơng thẳng, NẾU máy tính mở mà khơng khởi động THÌ kiểm tra nguồn điện,… Ngày nay, luật sinh trở nên phổ biến áp dụng rộng rãi nhiều hệ thống trí tuệ nhân tạo khác nhau.Luật sinh cơng cụ mơ tả để giải vấn đề thực tế thay cho kiểu phân tích vấn đề truyền thống.Trong trường hợp này, luật dùng dẫn (tuy khơng hồn chỉnh) hữu ích để trợ giúp cho định trình tìm kiếm, từ làm giảm khơng gian tìm kiếm.Một ví dụ khác luật sinh dùng để bắt chước hành vi chuyên gia Theo cách này, luật sinh không đơn kiểu biểu diễn tri thức máy tính mà kiểu biễu diễn hành vi người Một cách tổng quát luật sinh có dạng sau: P1∧ P2∧ ∧ Pn  Q Tùy vào vấn đề quan tâm mà luật sinh có ngữ nghĩa hay cấu tạo khác nhau: - Trong logic vị từ: P1, P2, , Pn, Q biểu thức logic Trong ngơn ngữ lập trình, luật sinh câu lệnh IF (P1 AND P2AND AND Pn) THEN Q - Trong lý thuyết hiểu ngôn ngữ tự nhiên, luật sinh phép dịch: ONE  TWO  hai JANUARY  tháng Để biễu diễn tập luật sinh, người ta thường phải rõ hai thành phần sau: - Tập kiện F(Facts) F = {f1, f2, fn} - Tập quy tắc R (Rules) áp dụng kiện dạng sau : f1 ^ f2 ^ ^ fi q Trong đó, fi, q thuộc F • Cơ chế suy luận luật sinh - Suy diễn tiến: trình suy luận xuất phát từ số kiện ban đầu, xác định kiện "sinh" từ kiện Sự kiện ban đầu: H, K R3: H  A {A, H K } R1: A  E { A, E, H, K } R5: E ∧K  B { A, B, E, H, K } R2: B  D { A, B, D, E, H, K } R6: D ∧ E ∧ K  C { A, B, C, D, E, H, K } - Suy diễn lùi: trình suy luận ngược xuất phát từ số kiện ban đầu, ta tìm kiếm kiện "sinh" kiện Một ví dụ thường gặp thực tế xuất phát từ tình trạng máy tính, chẩn đốn xem máy tính bị hỏng hóc đâu • Vấn đề tối ưu luật Tập luật sở tri thức có khả thừa, trùng lắp mâu thuẫn.Dĩ nhiên hệ thống đổ lỗi cho người dùng việc đưa vào hệ thống tri thức Tuy việc tối ưu sở tri thức mặt tổng quát thao tác khó (vì tri thức thường có quan hệ khơng tường minh), giới hạn sở tri thức dạng luật, ta có số thuật toán đơn giản để loại bỏ vấn đề - Rút gọn bên phải: luật sau hiển nhiên :A ∧ B A (1) luật:A ∧ BA ∧ C hồn tồn tương đương với: A ∧ BC Quy tắc rút gọn : Có thể loại bỏ kiện bên vế phải kiện xuất bên vế trái Nếu sau rút gọn mà vế phải trở thành rỗng luật luật hiển nhiên Ta loại bỏ luật hiển nhiên khỏi tri thức - Rút gọn bên trái: Xét luật : (L1) A, B  C (L2) A  X (L3) X  C Rõ ràng luật A, B  C thay luật A  C mà không làm ảnh hưởng đến kết luận trường hợp Ta nói kiện B luật (1) dư thừa loại bỏ khỏi luật dẫn - Phân rã kết hợp luật: Luật: A ∧ B  C Tương đương với hai luật: A  C B  C Với quy tắc này, ta loại bỏ hồn tồn luật có phép nối HOẶC.Các luật có phép nối thường làm cho thao tác xử lý trở nên phức tạp - Luật thừa: Một luật dẫn A  B gọi thừa suy luật từ luật lại Ví dụ : tập luật gồm {A  B, B  C, A  C} luật thứ luật thừa suy từ luật cịn lại - Thuật tốn tối ưu tập luật dẫn: Thuật toán tối ưu hóa tập luật cho cách loại luật có phép nối HOẶC, luật hiển nhiên luật thừa Thuật tốn bao gồm bước chính: B1: Rút gọn vế phải Với luật r R Với kiện A ∈VếPhải(r) Nếu A ∈VếTrái(r) Loại A khỏi vế phải R Nếu VếPhải(r) rỗng loại bỏ r khỏi hệ luật dẫn : R = R \{r} B2: Phân rã luật Với luật r : X1 ∨X2 ∨ … ∨ Xn Y R Với i từ đến n R := R + { Xi Y } R := R \ {r} B3: Loại bỏ luật thừa Với luật r thuộc R Nếu VếPhải(r) ∈BaoĐóng(VếTrái(r), R-{r}) R := R \ {r} B4: Rút gọn vế trái Với luật dẫn r : X : A1 ∧A2, …, An Y thuộc R Với kiện Ai∈ r Gọi luật r1 : X - Ai Y S = (R - {r}) ∪{r1} Nếu BaoĐóng (X - Ai , S) ≡ BaoĐóng (X, R) loại kiện A khỏi X Biểu diễn tri thức sử dụng mạng ngữ nghĩa 2.1 Khái niệm Mạng ngữ nghĩa phương pháp biểu diễn tri thức phương pháp dễ hiểu chúng ta.Phương pháp biểu diễn tri thức dạng đồ thị, đỉnh đối tượng (khái niệm) cung cho biết mối quan hệ đối tượng (khái niệm) Chẳng hạn: khái niệm chích chịe, chim, hót, cánh, tổ có số mối quan hệ sau: 10 nói bao đóng A mở rộng tối đa A mơ hình (M,F) Ký hiệu bao đóng A A , có định lý sau đây: Định lý 3.1 Trên mạng tính tốn (M,F), tốn A → B giải B ⊆ A Từ định lý nầy, ta kiểm tra tính giải tốn A → B cách tính bao đóng tập A xét xem B có bao hàm A hay không Định lý 3.2 Cho mạng tính tốn (M,F), A, B hai tập M Ta có điều sau tương đương: (1) B ⊆ A (2) Có dãy quan hệ D = {f1, f2, , fk} ⊆ F thỏa điều kiện : (a) D áp A (b) D(A) ⊇ B Chứng minh : Giả sử có (1), tức B ⊆ A Khi tốn A → B giải Do có dãy quan hệ {f1, f2, , fk} ⊆ F cho ta áp dụng quan hệ f i (i=1, ,k) xuất phát từ giả thiết A tính biến thuộc B Dễ dàng thấy dãy {f1, f2, , fk} nầy thỏa điều kiện (2) Đảo lại, giả sử có (2) Với điều kiện có (2) ta thấy {fi} lời giải vấn đề Ai-1 → Ai, với i = 1,2, , k Từ mệnh đề 3.2 suy toán A → Ak giải Do tốn A → B giải được, suy B ⊆ A theo định lý 3.1  Qua định lý trên, ta thấy việc xác định bao đóng tập biến mơ hình tính tốn cần thiết Dưới thuật tốn cho phép xác định bao đóng tập hợp A ⊆ M Trong thuật toán nầy thử áp dụng quan hệ f ∈ F để tìm dần biến thuộc M tính từ A; cuối bao đóng A Thuật tốn 3.1 tìm bao đóng tập A ⊆ M : 22 Nhập : Mạng tính tốn (M,F), A ⊆ M A Xuất : Thuật toán : B ← A; Repeat B1 ← B; for f ∈ F if ( f đối xứng and Card (M(f) \ B) ≤ r(f) ) or ( f không đối xứng and M(f) \ B ⊆ v(f) ) then begin B ← B ∪ M(f); F ← F \ {f}; // loại f khỏi lần xem xét sau end; Until B = B1; A ← B; Lời giải toán : Ở ta nêu lên cách xác định tính giải tốn Tiếp theo, ta trình bày cách tìm lời giải cho tốn A → B mạng tính toán (M,F) Mệnh đề 3.4 : dãy quan hệ D lời giải toán A → B D áp dụng A D(A) ⊇ B Do mệnh đề trên, để tìm lời giải ta làm sau: Xuất phát từ giả thiết A, ta thử áp dụng quan hệ để mở rộng dần tập biến có giá trị xác định; trình nầy tạo lan truyền tính xác định tập biến đạt đến tập biến B Dưới thuật tốn tìm lời giải cho tốn A → B mạng tính tốn (M,F) Thuật tốn 3.2 tìm lời giải cho tốn A → B : Nhập : Mạng tính tốn (M,F), tập giả thiết A ⊆ M, tập biến cần tính B ⊆ M Xuất : lời giải cho toán A → B 23 Thuật toán : Solution ← empty; // Solution dãy quan hệ áp dụng if B ⊆ A then begin Solution_found ← true; // biến Solution_found = true toán // giải goto 4; end else Solution_found ← false; Repeat Aold ← A; Chọn f ∈ F chưa xem xét; while not Solution_found and (chọn f) begin if ( f đối xứng and < Card (M(f) \ A) ≤ r(f) ) or ( f không đối xứng and ∅ ≠ M(f) \ A ⊆ v(f) ) then begin A ← A ∪ M(f); Solution ← Solution ∪ {f}; end; if B ⊆ A then Solution_found ← true; Chọn f ∈ F chưa xem xét; end; { while } Until Solution_found or (A = Aold); if not Solution_found then Bài toán khơng có lời giải; else Solution lời giải; Ghi : Về sau, cần trình bày q trình giải (hay giải) ta xuất phát từ lời giải tìm dạng dãy quan hệ để xây dựng giải Lời giải (nếu có) tìm thuật tốn chưa lời giải tốt Ta bổ sung thêm cho thuật toán thuật toán để tìm lời giải tốt từ lời giải 24 biết chưa tốt Thuật toán dựa định lý trình bày Định lý 3.3 Cho D={f1, f2, , fm} lời giải toán A → B Ưng với i=1, ,m đặt Di = {f1, f2, , fi}, D0 = ∅ Ta xây dựng họ dãy S m, Sm-1, , S2, S1 dãy D sau : Sm = ∅ Sm = {fm} Si = Si+1 Dm-1 lời giải, Dm-1 không lời giải, Di-1 ∪ Si+1 lời giải, Si = {fi} ∪ Si+1 Di-1 ∪ Si+1 không lời giải, với i = m-1, m-2, , 2, Khi ta có : (1) Sm ⊆ Sm-1 ⊆ ⊆ S2 ⊆ S1 (2) Di-1 ∪ Si lời giải toán A → B với i=m, , 2, (3) Nếu S’i dãy thật Si Di-1 ∪ S’i khơng phải lời giải toán A → B với i (4) S1 lời giải tốt tốn A → B Thuật tốn 3.3 tìm lời giải tốt từ lời giải biết Nhập : Mạng tính tốn (M,F), lời giải {f1, f2, , fm} toán A→ B Xuất : lời giải tốt cho toán A → B Thuật toán : D ← {f1, f2, , fm}; for i=m downto if D \ {fi} lời giải then D ← D \ {fi}; D lời giải tốt Trong thuật tốn 3.3 có sử dụng việc kiểm tra dãy quan hệ có phải lời giải hay khơng Việc kiểm tra nầy thực nhờ thuật toán sau đây: Thuật toán kiểm tra lời giải cho toán : Nhập : Mạng tính tốn (M,F), tốn A→ B, dãy quan hệ {f1, f2, , fm} Xuất : thông tin cho biết {f1, f2, , fm} có phải lời giải 25 tốn A→ B hay khơng Thuật toán : for i=1 to m if ( fi đối xứng and Card (M(fi) \ A) ≤ r(fi) ) or ( fi không đối xứng and M(fi) \ A ⊆ v(fi) ) then A ← A ∪ M(fi); if A ⊇ B then {f1, f2, , fm} lời giải else {f1, f2, , fm} không lời giải; Định lý phân tích trình giải : Xét tốn A → B mạng tính tốn (M,F) Trong mục nầy ta nêu lên cách xây dựng trình giải từ lời giải biết Đối với lời giải, có khả quan hệ dẫn tới việc tính tốn số biến thừa, tức biến tính mà khơng có sử dụng cho bước tính phía sau Do đó, cần xem xét trình áp dụng quan hệ lời giải tính tốn biến thật cần thiết cho trình giải theo lời giải Định lý sau cho ta phân tích tập biến xác định theo lời giải sở xây dựng q trình tính tốn biến để giải toán Định lý 3.4 Cho {f1, f2, , fm} lời giải tốt cho tốn A → B mạng tính tốn (M,F) Đặt : A0 = A, Ai = {f1, f2, , fi}(A), với i=1, ,m Khi có dãy {B0, B1, , Bm-1, Bm}, thỏa điều kiện sau đây: (1) Bm = B (2) Bi ⊆ Ai , với i=0,1, ,m (3) Với i=1, ,m, {fi} lời giải toán B i-1 → Bi khơng phải lời giải tốn G → Bi , G tập thật tùy ý Bi-1 26 CHƯƠNG 3: THIẾT KẾ BỘ SUY DIỄN CHUỖI PHẢN ỨNG HÓA HỌC Giới thiệu Thiết kế hệ thống thông minh (hệ chuyên gia) trình trải qua nhiều bước khác nhau: thu thập tri thức, chuẩn hóa tri thức, biểu diễn tri thức, thiết kế suy diễn… Nội dung báo cáo trình bày ứng dụng sử dụng mơ hình mạng tính tốn để tìm chuỗi phản ứng hình thành chất hóa học từ chất cho trước Bài báo cáo trình bày trình thu thập tri thức, chuẩn hóa tri thức biểu diễn tri thức Cuối xây dựng suy diễn hoạt động sở tri thức có I Thu thập tri thức Nếu xét tồn tri thức phương trình hóa học khối lượng lớn Do vậy, chương trình sử dụng tri thức phương trình phản ứng thường gặp hợp chất hóa học vơ Số lượng phương trình thu thập 61 Danh mục phương trình hóa học thu thập sau: 1: Na + Cl2 -> NaCl 2: Fe + Cl2 -> FeCl3 3: Cu + Cl2 -> CuCl2 4: Cl2 + H2O -> HCl + HClO 5: MnO2 + HCl -> MnCl2 + Cl2 + H2O 6: FeCl2 + NaOH -> Fe(OH)2 + NaCl 7: FeCl3 + NaOH -> Fe(OH)3 + NaCl 8: NaO + H2O -> NaOH 9: Na + H2O -> NaOH + H2 10: Cu + O2 -> CuO 27 11: Zn + O2 -> ZnO 12: K + Cl2 -> KCl 13: Na + Cl2 -> NaCl 14: Al + Cl2 -> AlCl3 15: Ca + Cl2 -> CaCl2 16: FeCl2 + Cl2 -> FeCl3 17: Cl2 + KBr -> KCl + Br2 18: Cl2 + NaBr -> NaCl + Br2 19: Fe(OH)3 + H2SO4 -> Fe2(SO4)3 + H2O 20: NaCl + H2SO4 -> NaHSO4 + HCl 21: H2 + Cl2 -> HCl 22: Fe + HCl -> FeCl2 23: H2 + O2 -> H2O 24: Cu + Cl2 -> CuCl2 25: CuO + HCl -> CuCl2 + H2O 26: FeO + HCl -> FeCl2 + H2O 27: KCl + H2SO4 -> KHSO4 + HCl 28: CaCl2 + H2SO4 -> CaSO4 + HCl 29: Zn + HCl -> ZnCl2 + H2 30: Fe + HCl -> FeCl2 + H2 31: Al + HCl -> AlCl3 + H2 32: Na + HCl -> NaCl + H2 33: K + HCl -> KCl + H2 34: Mg + HCl -> MgCl2 + H2 35: ZnO + HCl -> ZnCl2 + H2O 36: MgO + HCl -> MgCl2 + H2O 37: MnO2 + HCl -> MnCl2 + Cl2 + H2O 38: Al2O3 + HCl -> AlCl3 + H2O 39: Al(OH)3 + HCl -> AlCl3 + H2O 40: NaOH + HCl -> NaCl + H2O 41: KOH + HCl -> KCl + H2O 42: Zn(OH)2 + HCl -> ZnCl2 + H2O 43: Cu(OH)2 + HCl -> CuCl2 + H2O 44: Cl2 + KOH -> KClO3 + KCl + H2O 45: Cl2 + NaOH -> NaClO3 + NaCl + H2O 46: AgNO3 + HCl -> AgCl + HNO3 28 47: CaCO3 + HCl -> CaCl2 + CO2 + H2O 48: MgCO3 + HCl -> MgCl2 + CO2 + H2O 49: H2S + HClO3 -> HCl + H2SO4 50: K + H2O -> KOH + H2 51: CuCl2 + NaOH -> Cu(OH)2 + NaCl 52: Cu + FeCl3 -> CuCl2 + FeCl2 53: NaCl + H2O -> H2 + Cl2 + NaOH 54: HCl + KMnO4 -> KCl + MnCl2 + H2O + Cl2 55: Cl2 + NaOH -> NaCl + NaClO + H2O 56: KClO3 -> KCl + O2 57: KClO3 -> KCl + KClO4 58: H2O -> H2 + O2 59: S + O2 -> SO2 60: SO2 + O2 -> SO3 61: SO3 + H2O -> H2SO4 Chương trình có khả cho phép bổ sung tri thức (phương trình phản ứng) dễ dàng cách chỉnh sửa tập tin văn liệu II Chuẩn hóa biểu diễn tri thức Các phương trình phản ứng phải đưa dạng sau để chương trình xử lý được: A1 + A2 + … + An -> B1 + B2 + … + Bn Trong đó, Ai chất tham gia phản ứng, Bi sản phẩm trình phản ứng Ví dụ sau phương trình đúng: H2O + NaO -> NaOH Các số nguyên tố ghi ngang hàng với ký hiệu ngun tố Ngồi ra, phản ứng khơng phép điền hệ số dùng để cân phương trình Ví dụ sau số phương trình khơng chuẩn: H2O > H2 + O2 (sử dụng dấu > thay dấu ->) NaOH & FeCl2 -> Fe(OH)2 + NaCl (sử dụng dấu “&” thay dấu “+”) 2Na + 2H2O -> 2NaOH + H2 (sử dụng hệ số cân bằng) 29 Để biểu diễn tri thức này, sử dụng mơ hình mạng tính tốn Đặc biệt, trường hợp sử dụng đồ thị có hướng có phân biệt chất tham gia sản phẩm sinh Mỗi nút chất phương trình phản ứng Nút chất biểu diễn hình ơ-van cịn nút phản ứng biểu diễn hình chữ nhật Các liên kết hướng từ nút chất đến nút phản ứng thể cho chất tham gia phản ứng, liên kết từ phản ứng đến chất thể cho sản phẩm trình phản ứng Các nút chất liên kết đến nhiều phương trình phản ứng Hình ảnh sau mơ tả đồ thị dùng để biểu diễncho phương trình phản ứng: Na + H2O -> NaOH + H2 NaOH + FeCl2 -> Fe(OH)2 + NaCl Na H2O H2 Na + H2O -> NaOH + H2 NaOH FeCl2 NaOH + FeCl2 -> NaCl + Fe(OH)2 NaCl III Fe(OH)2 Giải thuật suy diễn tìm lời giải Để dễ dàng minh họa trình suy luận mơ hình, ký hiệu: • R = {r1, r2, …, rn} tập hợp phương trình phản ứng • S = {s1, s2, …, sm} tập hợp chất hóa học 30 • • • • • Reactants(ri) thể cho chất tham gia vào phản ứng ri Products(ri) thể cho chất sản phẩm phản ứng ri IsReady(si) cho biến có chất si hay chưa IsReady(si) = true nghĩa chất si có React(ri): cho phản ứng ri xảy State(ri): trạng thái phản ứng ri Có mức trạng thái, là: o None: ri chưa phản ứng o Reacted: ri phản ứng Trạng thái ri tự động chuyển thành Reacted gọi React(ri) o Searching: trình tìm kiếm cách đạt phản ứng ri Trạng thái “Searching” phản ứng sử dụng trình tìm kiếm suy luận Giải thuật 1: FindSolution(Substance) Input: Substance //chất cần tìm chuỗi phản ứng Output: Solution // tập hợp phản ứng xảy trình tìm lời giải begin Solution = {}; if (IsReady(Sustance)) then returnSolution else Reactions = GetPossibleReactions(Substance) foreach (r in Reactions)do if (r phản ứng)then foreach (s in Products(r)) IsReady(s) = true; //đánh dấu chất sản phẩm tìm thấy Solution = Solution∪r; else State(r) = Searching foreach(sin Reactants(r)) if (Not IsReady(s))then Solution = Solution∪FindSolution(s); if (r.CanReact()) then Solution = Solution∪r; else State(r) = None; return Solution 31 end Giải thích: Giải thuật bắt đầu với việc kiểm tra xem chất có hay chưa, có trả chuỗi phản ứng tập rỗng (không cần phản ứng cả) Trong trường hợp chất chưa có, phải duyệt qua tồn phương trình phản ứng xét phương trình nhằm tìm lời giải Ở đây, giải thuật sử dụng heuristic nhằm giảm bớt số lượng phản ứng phải xét hàm GetPossibleReactions Hàm nhận vào chất s trả tập phản ứng có chất s sản phẩm phản ứng chưa xảy (trạng thái phản ứng ‘None’) Giải thuật:GetPossibleReactions(Substance) Input: Substance //chất hóa học Output: Danh sách phản ứng có sản phẩm phản ứng Substance begin list = {}; foreach(Reaction r in all reactions) if (State(r) = None AND Products(r) chứa Substance) list = list ∪{r}; return list; end Sau có danh sách phản ứng “tiềm năng”, xét qua phản ứng Có khả xảy ra: - Nếu phản ứng ri danh sách phản ứng (nghĩa toàn chất tham gia phản ứng có) ta thực hiện: (a) đánh dấu chất sản phẩm r i có; (b) thêm ri vào dãy lời giải để tìm chất Substance - Nếu ri khơng phản ứng (nghĩa chất tham gia phản ứng chưa có) ta phải tìm chất tham gia phản ứng chưa có Gọi s i chất tham gia chưa có, nhiệm vụ lúc tìm chuỗi phương trình phản ứng để tới chất s i Như vậy, ta gọi đệ quy giải thuật FindSolutions cho chất s i để tìm dãy phản ứng điều chế chất si, tạm gọi Solutioni Solutioni kết hợp với Solution chất để lời giải tổng hợp: Solution = Solution ∪ FindSolutions(s) Sau trình tìm kiếm đệ quy, ta đến khả sau: o ri không phản ứng được, ta bỏ qua ri o ri phản ứng được, ta đánh dấu chất sản phẩm thêm r i vào Solution 32 Trong trình tìm kiếm đệ quy, ta phải đánh dấu State(r i) = Searching nhằm mục đích tránh việc lặp vơ tận trình tìm kiếm (mỗi phản ứng xét lần trình đệ quy) Giả sử có phương trình sau: r1: H2O -> H2 + O2 (điện phân) r2: Na + H2O -> NaOH + H2 r3: H2 + O2 -> H2O Giả sử cho trước Na, O2 HCl Hỏi chuỗi phương trình phản ứng đến NaOH? Giải thuật tìm phản ứng tạo sản phẩm NaOH, phản ứng r2 Tuy nhiên, để r2 xảy cần phải có thêm điều kiện H2O Nếu giải thuật xét phương trình từ xuống bắt gặp phản ứng để tạo H2O phản ứng r3 Và để r3 phản ứng cần thêm điều kiện H2 Rõ ràng phản ứng r r2 phản ứng tạo H2, xét phản ứng chúng cần H2O để phản ứng Do vậy, giải thuật rơi vào vịng lặp vơ hạn IV Xây dựng lời giải tối ưu Quá trình tìm kiếm lời giải giải thuật FindSolutions đưa toàn phản ứng vào, khơng cần quan tâm phản ứng có thực cần thiết hay khơng Sau ví dụ chương trình chạy mà khơng có tối ưu lời giải Chất cho trước: H2, O2, Na Chất cuối: H2O Kết quả: H2 + O2 -> H2O (1) Na + H2O -> NaOH + H2 (2) Rõ ràng trường hợp này, phản ứng (2) phản ứng dư thừa khơng cần thiết Cơ chế để tìm lời giải tối ưu sau: Lần lượt thử bỏ phản ứng khỏi chuỗi phản ứng cuối cùng, phản ứng lại lời giải tốn thực bỏ phản ứng hồn tồn khỏi lời giải, ngược lại giữ lại phản ứng xét phản ứng khác dãy Giải thuật việc tối ưu sau: Giải thuật: RestrictSolution Input: Solution //dãy phản ứng tìm begin Temp = Solution; foreach(Reaction r inSolution) Temp = Temp \ {r}; 33 if (Temp khơng cịn lời giải) then Temp = Temp ∪ {r}; Solution = Temp; end V Cài đặt thử nghiệm chương trình Giao diện chương trình Chương trình có khung cho phép người dùng nhập vào ký hiệu hóa học, vùng nhập chất cho trước vùng nhập chất kết thúc Các chất cách dấu phẩy Kết trình tìm kiếm hiển thị khung hiển thị kết Chuỗi phản ứng tìm chất xuất phát từ chất biết, qua phản ứng trung gian cuối phản ứng tạo chất cần tìm Chương trình đơn giản hoạt động dựa thông tin cụ thể phản ứng mà chưa hình thành cách tổng quát hóa cách biểu diễn tri thức Ví dụ biểu diễn phản ứng: + -> + H2 Hy vọng tương lai, ứng dụng mơ hình hóa tri thức mức độ cao hơn, từ giải nhiều dạng toán 34 TÀI LIỆU THAM KHẢO [1]PGS.TS Đỗ Văn Nhơn, Model for Knowledge Bases of Computational Objects, 2010 [2]PGS.TS Đỗ Văn Nhơn, Computational Networks for KnowledgeRepresentation, 2009 [3]PGS.TS Đỗ Văn Nhơn, Tài liệu giảng dạy chuyên đề Biễu diễn tri thức ứng dụng, 2001-2011 [4] GS.TSKH HỒNG KIẾM, PGS.TS ĐỖ VĂN NHƠN, Mạng tính tốn ứng dụng 35 ... THIẾT KẾ BỘ SUY DIỄN CHUỖI PHẢN ỨNG HĨA HỌC Giới thiệu Thiết kế hệ thống thơng minh (hệ chuyên gia) trình trải qua nhiều bước khác nhau: thu thập tri thức, chuẩn hóa tri thức, biểu diễn tri thức, ... chuẩn hóa tri thức biểu diễn tri thức Cuối xây dựng suy diễn hoạt động sở tri thức có I Thu thập tri thức Nếu xét toàn tri thức phương trình hóa học khối lượng lớn Do vậy, chương trình sử dụng tri. .. ơ-van cịn nút phản ứng biểu diễn hình chữ nhật Các liên kết hướng từ nút chất đến nút phản ứng thể cho chất tham gia phản ứng, liên kết từ phản ứng đến chất thể cho sản phẩm trình phản ứng Các nút

Ngày đăng: 19/05/2015, 00:28

Từ khóa liên quan

Mục lục

  • LỜI CÁM ƠN

  • LỜI NÓI ĐẦU

  • CHƯƠNG 1 : MỘT SỐ MÔ HÌNH BIỂU DIỄN TRI THỨC

    • I. Giới thiệu về tri thức

      • 1. Biểu diễn tri thức bằng luật dẫn(luật sinh)

      • 2. Biểu diễn tri thức sử dụng mạng ngữ nghĩa

      • 3. Biểu diễn tri thức bằng Frame

      • 4. Biểu diễn tri thức bằng Script

      • 5. Mô hình COKB

      • CHƯƠNG 2: MÔ HÌNH MẠNG TÍNH TOÁN

        • I. MẠNG TÍNH TOÁN.

          • 1. Các quan hệ:

          • 2. Mạng tính toán và các ký hiệu:

          • II. BÀI TOÁN TRÊN MẠNG TÍNH TOÁN :

            • Định nghĩa 2.1:

            • Định nghĩa 2.2 :

            • III. GIẢI QUYẾT VẤN ĐỀ :

              • 1. Tính giải được của bài toán :

              • 2. Lời giải của bài toán :

              • 3. Định lý về sự phân tích quá trình giải :

              • CHƯƠNG 3: THIẾT KẾ BỘ SUY DIỄN CHUỖI PHẢN ỨNG HÓA HỌC

                • I. Thu thập tri thức

                • II. Chuẩn hóa và biểu diễn tri thức

                • III. Giải thuật suy diễn tìm lời giải

                • IV. Xây dựng lời giải tối ưu

                • V. Cài đặt thử nghiệm chương trình

                • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan