TOÁN HÓA HỌC
4.1. Mô hình biểu diễn tri thức
Tri thức được mô hình hóa bằng mô hình COKB gồm 4 thành phần:
(C, H, Funcs, Rules)
1.1. Tập C - tập hợp các khái niệm đối tượng
Tập C bao gồm các khái niệm: “Axit”, “Bazơ”, “Muối”, “Oxit”, “Kim loại”...
- “Axit”: phân tử axit gồm có một hay nhiều nguyên tử H liên kết gốc axit.
- “Bazơ”: phân tử bazơ gồm có một nguyên tử kim loại liên kết với một hay nhiều nhóm OH.
- “Muối”: phân tử muối gồm có một hay nhiều nguyên tử kim loại liên kết với một hay nhiều gốc axit.
1.2. Tập H - tập hợp các quan hệ phân cấp giữa các loại đối tượng
- “Axit có oxi” và “Axit không có oxi” là các khái niệm của “Axit”.
- “Bazơ tan” và “Bazơ không tan” là các khái niệm của “Bazơ”.
- “Muối trung hòa” và “Muối axit” là các khái niệm của “Muối”.
1.3. Tập Funcs - tập hợp các hàm
Cân bằng phương trình phản ứng hóa học.
1.4. Tập Rules – tập hợp các luật
Các loại phản ứng hóa học cơ bản: - “Axit” + “Bazơ” → “Muối” + “Nước”.
- “Kim loại kiềm” + “Nước” → “Bazơ” + H2
4.2. Thuật giải của bài toán hóa học:
4.2.1. Thuật giải tìm lời giải cho bài toán A → B:
Nhập : các fle chưa tri thức cho bài toán hóa học, tập giả
thiết A, tập biến cần tính B.
Xuất : lời giải cho bài toán A →B.
Thuật toán :
1. F ← empty.
2. F ← các quan hệ giữa các thuộc tính hóa học bằng cách đọc fle tri thức HoaHoc.txt.
3. Solution ← empty; // Solution là dãy các quan hệ sẽ áp dụng
4. if B ⊆ A then begin
Solution_found ← true; // bài toán là giải được goto 4; end else Solution_found ← false; 5. Repeat Aold ← A; Chọn ra một f ∈ F chưa xem xét;
while not Solution_found and (chọn được f) do begin
if ( f đối xứng and 0 < 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);
end; if B ⊆ A then
Solution_found true;
Chọn ra một f F chưa xem xét;
end; {while}
Until Solution_found or (A = Aold); 6. if not Solution_found then
Bài toán không có lời giải; else
Solution là một lời giải;
7. Loại bỏ các bước giải không cần thiết
D ← {f1, f2, ..., fm}; // {f1, f2, ..., fm} của bài toán A → B for i=m downto 1 do
if D \ {f} là một lời giải then
D ← D \ {f}; D là một lời giải tốt.
8. Tính giá trị cho từng thuộc tính được suy ra trong từng bước giải.
9. In từng bước giải của bài toán.
4.2.2. Thuật giải bổ sung giả thiết cho bài toán:
Nhập :F là tập hợp các quan hệ của đề bài, H là tập hợp phần giả thiết, G là
tập hợp phần mục tiêu.
Xuất : giả thiết cần bổ sung.
Thuật toán :
1. Fset ← F;
2. Aset ← empty; 3. for f in Fset do
Aset ← Aset ⋃ M(f); # M(f) = (f[2] ⋃ f[3]) 4. Aset ← Aset \ (G ⋃ Baodong(Fset,H));
5. ans ← false; 6. k ← 0;
7. while (ans = false) and k<= số phần từ của Aset do for H1 in tập con có k phần tử của Aset do
BaoH ← Baodong(Fset, H H1);
if G\BaoH = {} then ans ← true;
break;
if ans ≠ true then k ← k+1; 8. RETURN ([ans, H1]);