Biểu diễn tri thức và suy luận 2014
LỜI MỞ ĐẦU
Lời đầu tiên xin chân thành cảm ơn thầy PGS.TS. Đỗ Văn Nhơn đã giảng dạy tận
tình và cung cấp cho em nhiều kiến thức chuyên sâu về môn học. Từ vốn hiểu biết rộng
rãi của mình thầy đã định hướng, diễn giảng và giới thiệu nhiều vấn đề liên quan đến biểu
diễn tri thức, qua đó góp phần hoàn thiện thêm kiến thức cũng như hình thành cho người
học những hiểu biết sâu thêm về tri thức và các phương pháp biểu diễn tri thức trên máy
tính.
Mặc dù rất cố gắng, song bài viết chắc không tránh khỏi những hạn chế, thiếu sót
rất mong được thầy thông cảm.
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 1
Biểu diễn tri thức và suy luận 2014
MỤC LỤC HÌNH ẢNH
Hình 1: Quan hệ 3 góc trong tam giác ABC 6
Hình 2: Minh họa bài toán điều chế hợp chất hóa học 21
Hình 3: Thể hiện tam giác ABC với các yếu tố cần xét 22
Hình 4: Minh họa bài toán tam giác 27
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 2
Biểu diễn tri thức và suy luận 2014
MỤC LỤC
LỜI MỞ ĐẦU 1
MỤC LỤC HÌNH ẢNH 2
MỤC LỤC 3
1.Mạng tính toán 4
1.1Khái niệm 4
1.2Các quan hệ 4
1.3Mạng tính toán và các ký hiệu 5
B. Áp dụng 13
1.Bài toán hóa học 13
1.4 Thiết kế bộ suy diễn và cài đặt 16
2.Bài toán hình học – bài toán tam giác 18
TÀI LIỆU THAM KHẢO 25
A.Cơ sở lý thuyết
Một trong những vấn đề đang được quan tâm của Trí tuệ nhân tạo là nghiên cứu
các phương pháp biểu diễn và xử lý tri thức. Trên cơ sở đó có thể tạo ra những
chương trình “thông minh” ở một mức độ nào đó. Trong nhiều lĩnh vực chúng ta
thường gặp những vấn đề đặt ra dưới dạng như sau: Thực hiện những tính toán hay
suy diễn ra những yếu tố cần thiết nào đó từ một số yếu tố đã được biết trước. Để giải
quyết vấn đề đó, người ta phải vận dụng một số hiểu biết (tri thức) liên quan tới các
yếu tố đang được xem xét. Những liên hệ cho phép ta có thể suy ra được một số yếu
tố từ giả thiết để biết một số yếu tố khác để giải các bài toán trong các lĩnh vực của
khoa học như toán học, vật lý và hóa học.
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 3
Biểu diễn tri thức và suy luận 2014
Để giải quyết vấn đề trên ta xét đến một mô hình biểu diễn và xử lý tri thức có thể
áp dụng giải tự động các bài toán trên và ta gọi mô hình này là “Mạng tính toán”.
1. Mạng tính toán
1.1Khái niệm
Mạng tính toán là một dạng biểu diễn tri thức có thể dùng biểu diễn các tri thức về
các vấn đề tính toán và được áp dụng một cách có hiệu quả để giải một số dạng bài
toán. Mỗi mạng tính toán là một mạng ngữ nghĩa chứa các biến và những quan hệ có
thể cài đặt và sử dụng được cho việc tính toán. Chúng ta xét một mạng tính toán gồm
một tập hợp các biến cùng với một tập các quan hệ (chẳng hạn các công thức) tính
toán giữa các biến. Trong ứng dụng cụ thể mỗi biến và giá trị của nó thường gắn liền
với một khái niệm cụ thể về sự vật, mỗi quan hệ thể hiện một sự tri thức về sự vật.
1.2Các quan hệ
Cho M = {x
1
,x
2
, ,x
m
} là một tập hợp các biến có thể lấy giá trị trong các miền
xác định tương ứng D
1
,D
2
, ,D
m
. Đối với mỗi quan hệ R
⊆
D
1
x D
2
x x D
m
trên
các tập hợp D
1
, D
2
, , D
m
ta nói rằng quan hệ này liên kết các biến x
1
,x
2
, ,x
m
, và
ký hiệu là R(x
1
,x
2
, ,x
m
) hay vắn tắt là R(x) (ký hiệu x dùng để chỉ bộ biến
< x
1
,x
2
, ,x
m
>). Ta có thể thấy rằng quan hệ R(x) có thể được biểu diễn bởi một ánh
xạ f
vuR ,,
với u v = x, và ta viết : f
vuR ,,
: u → v, hay vắn tắt là f : u → v.
Đối với các quan hệ dùng cho việc tính toán, cách ký hiệu trên bao hàm ý nghĩa
như là một hàm: ta có thể tính được giá trị của các biến thuộc v khi biết được giá trị
của các biến thuộc u.
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 4
Biểu diễn tri thức và suy luận 2014
Trong phần sau ta xét các quan hệ xác định bởi các hàm có dạng f : u → v, trong
đó u
∩
v = ∅ (tập rỗng). Đặc biệt là các quan hệ đối xứng có hạng (rank) bằng một số
nguyên dương k. Đó là các quan hệ mà ta có thể tính được k biến bất kỳ từ m-k biến
kia (ở đây x là bộ gồm m biến < x
1
,x
2
, ,x
m
>). Ngoài ra, trong trường hợp cần nói rõ
ta viết u(f) thay cho u, v(f) thay cho v. Đối với các quan hệ không phải là đối xứng có
hạng k, không làm mất tính tổng quát, ta có thể giả sử quan hệ xác định duy nhất một
hàm f với tập biến vào là u(f) và tập biến ra là v(f); ta gọi loại quan hệ nầy là quan hệ
không đối xứng xác định một hàm, hay gọi vắn tắt là quan hệ không đối xứng.
Ví dụ: Quan hệ f giữa 3 góc A, B, C trong tam giác ABC cho bởi hệ thức:
A+B+C = 180 (đơn vị: độ)
Hình 1 : Quan hệ 3 góc trong tam giác ABC
1.3Mạng tính toán và các ký hiệu
Ta sẽ xem xét các mạng tính toán bao gồm một tập hợp các biến M và một tập hợp
các quan hệ (tính toán) F trên các biến. Trong trường hợp tổng quát ta có thể viết:
M = { x
1
,x
2
, ,x
m
}
F = { f
1
,f
2
, ,f
m
}
Đối với mỗi f
∈
F, ta ký hiệu M(f) là tập các biến có liên hệ trong quan hệ f. Dĩ
nhiên M(f) là một tập con của M: M(f)
⊆
M. Nếu viết f dưới dạng:
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 5
Biểu diễn tri thức và suy luận 2014
f: u(f) → v(f)
thì ta có: M(f) = u(f) v(f).
1.4Ưu điểm & khuyết điểm của mạng tính toán
Ưu điểm:
• Giải được hầu hết các bài toán giả thiết → kết luận nếu như đáp ứng đầy đủ
các giả thiết cần có.
• Thuật toán đơn giản dễ cài đặt cho nên việc bảo trì hệ thống tương đối đơn
giản.
• Có thể xây dựng hệ thống suy luận và giải thích một cách rõ ràng và dễ
hiểu.
Khuyết điểm:
• Do hệ thống chỉ bao gồm 1 cặp (M,F) để biểu diễn tri thức nên khi gặp phải
những bài toán phức tạp thì có thể xảy ra việc lưu trữ khó khăn và nhập nhằng
khi quản lý. Đồng thời việc xây dựng lại thuật toán là một việc tương đối khó
khăn nên đòi hỏi phải bảo trì lại toàn bộ hệ thống.
• Đối với các bài toán mà sử dụng nhiều các đối tượng tính toán bài toán trở
nên phức tạp, việc giải quyết bài toán bằng mạng tính toán trở nên khó khăn
cho người lập trình.
2. Bài toán trên mạng tính toán
Cho một mạng tính toán (M,F), M là tập các biến và F là tập các quan hệ. Giả sử
có một tập biến A
⊆
M đã được xác định và B là một tập biến bất kỳ trong M.
Các vấn đề xảy ra là:
• Có thể xác định được tập B từ tập A nhờ các quan hệ trong F hay không ?
Nói cách khác, ta có thể tính được giá trị của các biến thuộc B với giả thiết
đã biết giá trị của các biến thuộc A hay không ?
• Nếu có thể xác định được B từ A thì quá trình tính toán giá trị của các biến
thuộc B như thế nào ?
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 6
Biểu diễn tri thức và suy luận 2014
• Trong trường hợp không thể xác định được B, thì cần cho thêm điều kiện gì
để có thể xác định được B.
Bài toán xác định B từ A trên mạng tính toán (M,F) được viết dưới dạng:
A→B
trong đó A được gọi là giả thiết, B được gọi là mục tiêu tính toán của bài toán.
Định nghĩa 2.1:
Bài toán A→B được gọi là giải được khi có thể tính toán được giá trị các biến
thuộc B xuất phát từ giả thiết A. Ta nói rằng một dãy các quan hệ { f
1
,f
2
, ,f
k
}
⊆
F là
một lời giải của bài toán A→B nếu như ta lần lượt áp dụng các quan hệ f
i
(i = 1, ,k)
xuất phát từ giả thiết A thì sẽ tính được các biến thuộc B. Lời giải { f
1
,f
2
, ,f
k
} được
gọi là lời giải tốt nếu không thể bỏ bớt một số bước tính toán trong quá trình giải, tức
là không thể bỏ bớt một số quan hệ trong lời giải.
Việc tìm lời giải cho bài toán là việc tìm ra một dãy quan hệ để có thể áp dụng suy
ra được B từ A. Điều này cũng có nghĩa là tìm ra được một quá trình tính toán để giải
bài toán.
Định nghĩa 2.2:
Cho D = {f
1
,f
2
, ,f
k
} là một dãy quan hệ của mạng tính toán (M,F), A là một tập
con của M. Ta nói dãy quan hệ D là áp dụng được trên tập A khi và chỉ khi ta có thể
lần lượt áp dụng được các quan hệ f
1
,f
2
, ,f
k
xuất phát từ giả thiết A.
Nhận xét: Trong định nghĩa trên, nếu đặt: A
0
= A, A
1
= A
0
M(f
1
),…,A
k
= A
1−k
M(f
k
), và ký hiệu A
k
là D(A), thì ta có D là một lời giải của bài toán A→D(A). Trong
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 7
Biểu diễn tri thức và suy luận 2014
trường hợp D là một dãy quan hệ bất kỳ (không nhất thiết là áp dụng được trên A), ta
vẫn ký hiệu D(A) là tập biến đạt được khi lần lượt áp dụng các quan hệ trong dãy D
(nếu được). Chúng ta có thể nói rẳng D(A) là sự mở rộng của tập A nhờ áp dụng dãy
quan hệ D.
3. Giải quyết bài toán
3.1 Tính giải được của bài toán:
Ta khảo sát một khái niệm của vấn đề trên mạng tính toán: bao đóng của một tập
hợp biến trên một mạng tính toán.
Định nghĩa 3.1: Cho mạng tính toán (M,F), và A là một tập con của M. Ta có thể
thấy rằng có duy nhất một tập hợp B lớn nhất
⊆
M sao cho bài toán A→B là giải được,
và tập hợp B này được gọi là bao đóng của A trên mô hình (M,F). Một cách trực
quan, có thể nói bao đóng của A là sự mở rộng tối đa của A trên mô hình (M,F). Ký
hiệu bao đóng của A là
A
, chúng ta có định lý sau đây:
Định lý 3.1 Trên một mạng tính toán (M,F), bài toán A→B là giải được khi và chỉ
khi B
⊆
A
Từ định lý này, ta có thể kiểm tra tính giải được của bài toán A→B bằng cách tính
bao đóng của tập A rồi xét xem B có bao hàm trong
A
hay không.
Định lý 3.2 Cho một mạng tính toán (M,F), A, B là hai tập con của M. Ta có các
điều sau đây là tương đương:
(1) B
⊆
A
(2) Có một dãy quan hệ D = {f
1
,f
2
, ,f
k
}
⊆
F thỏa các điều kiện:
a. D áp dược trên A
b. D(A) ⊇ B
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 8
Biểu diễn tri thức và suy luận 2014
Qua các định lý trên, ta thấy rằng việc xác định bao đóng của một tập biến trên mô
hình tính toán là cần thiết. Dưới đây là thuật toán cho phép xác định bao đóng của tập
hợp A
⊆
M. Trong thuật toán này chúng ta thử áp dụng các quan hệ f ∈ F để tìm dần
những biến thuộc M có thể tính được từ A; cuối cùng sẽ được bao đóng của A.
Thuật toán 3.1 Tìm bao đóng của tập A
⊆
M:
Nhập: Mạng tính toán (M,F), A
⊆
M.
Xuất:
A
Thuật toán:
1. B ← A;
2. Repeat
B
1
← B;
for f ∈ F do
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 = B
1
;
3.
A
← B;
3.2 Lời giải của bài toán
Mệnh đề 3.4: Dãy quan hệ D là một lời giải của bài toán A→ B khi và chỉ khi D
áp dụng được trên A và D(A) ⊇ B.
Do mệnh đề trên, để tìm một lời giải ta có thể làm như sau : Xuất phát từ giả thiết
A, ta thử áp dụng các quan hệ để mở rộng dần tập các biến có giá trị được xác định;
và quá trình này tạo ra một sự lan truyền tính xác định trên tập các biến cho đến khi
đạt đến tập biến B. Dưới đây là thuật toán tìm một lời giải cho bài toán A→ B trên
mạng tính toán (M,F).
Thuật toán 3.2 Tìm một lời giải cho bài toán A→ B:
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 9
Biểu diễn tri thức và suy luận 2014
Nhập: Mạng tính toá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 bài toán A→ B
Thuật toán:
1. Solution ← empty; //Solution là dãy các quan hệ sẽ áp dụng
2. if B
⊆
A then
begin
Solution_found ← true ;
goto 4 ;
end
else
Solution_found ← false;
3. 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);
Solution ← Solution ∪ {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 );
4. if not Solution_found then
Bài toán không có lời giải;
else
Bài toán có lời giải;
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 10
Biểu diễn tri thức và suy luận 2014
Định lý 3.3 Cho D = {f
1
,f
2
, ,f
m
} là một lời giải của bài toán A→ B. Ứng với mỗi
i = 1, ,m đặt D
i
= {f
1
,f
2
, ,f
i
}, D
0
= ∅. Ta xây dựng một họ các dãy con S
m
, S
m-
1
, , S
2
, S
1
của dãy D như sau:
S
m
= ∅ nếu D
m-1
là một lời giải,
S
m
= {f
m
} nếu D
m-1
không là một lời giải,
S
i
= S
i+1
nếu D
i-1
∪ S
i+1
là một lời giải,
S
i
= {f
i
} ∪ S
i+1
nếu D
i-1
∪ S
i+1
không là một lời giải,
với mọi i = m-1, m-2, , 2, 1.
Khi đó ta có :
1. S
m
⊆ S
m-1
⊆ ⊆ S
2
⊆ S
1.
2. D
i-1
∪ S
i
là một lời giải của bài toán A→ B với mọi i = m,…,1.
3. Nếu S’
i
là một dãy con thật sự của S
i
thì D
i-1
∪ S’
i
không phải là một lời của
bài toán A→ B với mọi i.
4. S
1
là một lời giải tốt của bài toán A→ B.
Thuật toán 3.3 Tìm một lời giải tốt từ một lời giải đã biết.
Nhập: Mạng tính toán (M,F), lời giải { f
1
,f
2
, ,f
m
} của bài toán A→ B
Xuất: Lời giải tốt cho bài toán A→ B
Thuật toán:
1. D ← { f
1
,f
2
, ,f
m
};
2. for i=m downto 1 do
if D\ { f
i
} là một lời giải then
D ← D \ {f
i
};
3. D là một lời giải tốt.
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 11
Biểu diễn tri thức và suy luận 2014
Trong thuật toán 3.3 có sử dụng việc kiểm tra một dãy quan hệ có phải là lời giải
hay không. Việc kiểm tra này có thể được thực hiện nhờ thuật toán sau đây:
Thuật toán kiểm tra lời giải cho bài toán:
Nhập: Mạng tính toán (M,F), bài toán A→ B, dãy các quan hệ { f
1
,f
2
, ,f
m
}.
Xuất: Thông tin cho biết { f
1
,f
2
, ,f
m
} có phải là lời giải của bài toán A→ B hay
không.
Thuật toán:
1. for i = 1 to m do
if (f
i
đối xứng and 0< Card( M(f
i
) \ A) ≤ r(f
i
) ) or
(f
i
không đối xứng and ∅ ≠M(f
i
) \ A
⊆
v(f
i
) ) then
A ← A ∪ M(f
i
);
2. if A ⊇ B then { f
1
,f
2
, ,f
m
} là lời giải
else { f
1
,f
2
, ,f
m
} không là lời giải
3.3 Định lý về sự phân tích quá trình giải:
Xét bài toán A→ B trên mạng tính toán (M,F), ta nêu lên một cách xây dựng quá
trình giải từ một lời giải đã biết. Đối với một lời giải, rất có khả năng một quan hệ nào
đó dẫn tới việc tính toán một số biến thừa, tức là các biến tính ra mà không có sử
dụng cho các bước tính phía sau. Do đó, chúng ta cần xem xét quá trình áp dụng các
quan hệ trong lời giải và chỉ tính toán các biến thật sự cần thiết cho quá trình giải theo
lời giải. Định lý sau đây cho ta một sự phân tích tập các biến được xác định theo lời
giải và trên cơ sỡ đó có thể xây dựng quá trình tính toán các biến để giải quyết bài
toán.
Định lý 3.4 Cho { f
1
,f
2
, ,f
m
} là một lời giải tốt cho bài toán A→ B trên một
mạng tính toán (M,F). Đặt:
A
0
= A, A
i
= {f
1
, f
2
, , f
i
}(A), với mọi i = 1,…,m.
Khi đó có một dãy {B
0
, B
1
, , B
m-1
, B
m
}, thỏa các điều kiện sau đây:
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 12
Biểu diễn tri thức và suy luận 2014
1. B
m
= B.
2. B
i
⊆
A
i,
với mọi i = 1,…,m.
3. Với mọi i = 1,…,m, {f
i
} là lời giải của bài toán B
i-1
→ B
i
nhưng không phải là
lời giải của bài toán G → B
i
, trong đó G là một tập con thật sự tùy ý của B
i-1.
B. Áp dụng
1. Bài toán hóa học
1.1 Đặt vấn đề
Trong hóa học, việc xem xét các phản ứng hóa học là một trong những vấn đề
quan trọng. Về mặt tri thức, người ta đã biết được nhiều chất và các phản ứng hóa học
có thể chuyển hóa từ một số chất này thành các chất khác. Tạm thời bỏ qua một số
điều kiện phản ứng, ta có thể xem tri thức đó như một mạng tính toán mà mỗi phản
ứng là một quan hệ của mạng. Ví dụ như phản ứng điều chế Clo từ axit clohidric và
kali pemaganat:
HCl + KMnO
4
= KCl + MnCl
2
+ H
2
O +Cl
2
↑
Phản ứng trên có thể được xem như một quan hệ cho chúng ta có được các chất
Cl
2
, MnCl
2
, H
2
O, KCl từ các chất HCl, KMnO
4.
Ta sẽ dùng mạng tính toán để áp dụng giải các loại bài toán sau :
1. Nhận diện loại phương trình phản ứng ?
2. Cho một số chất, hỏi có điều chế được một vài chất nào đó không ?
3. Tìm các phương trình phản ứng để biểu diễn dãy các biến hóa, chẳng hạn như các
dãy :
Zn → ZnO → ZnSO
4
S → SO
2
→ SO
3
→ H
2
SO
4
1.2 Một số ví dụ cụ thể
Ví dụ 1: Viết phương trình phản ứng biểu diễn các biến hóa sau:
Zn → ZnO → ZnSO
4
Giải : Trên cơ sở dò tìm các phản ứng đã biết (xem là các quan hệ của mạng tính
toán các chất hóa học), ta có thể tìm thấy được các phản ứng sau đây:
Zn + O
2
→ ZnO
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 13
Biểu diễn tri thức và suy luận 2014
ZnO + H
2
SO
4
→ ZnSO
4
+ H
2
O
Ví dụ 2: Từ lưu huỳnh (S) và nước (H
2
0) ta có thể điều chết được axit sunfuaric
(H2SO4) không?
Giải: Áp dụng các thuật toán tìm lời giải cho mạng tính toán các chất hóa học, dò
theo các phản ứng liên quan đến lưu huỳnh và nước ta tìm ra được quá trình điều chế
như sau:
Điện phân
H
2
O → H
2
↑ + O
2
↑
S + O
2
→ SO
2
SO
2
+ O
2
→ SO
3
SO
3
+ H
2
O → H
2
SO
4
1.3 Mô hình và thuật giải
1.3.1 Mô hình tri thức cho bài toán hóa học
Nhìn vào yêu cầu của bài toán ta thấy rằng đây một dạng của thuật giải mạng tính
toán tìm lời giải cho bài toán A→B, trong đó A các tập giả thiết, B là tập biến cần tìm.
Các file chứa tri thức cho bài toán hóa học, tập giả thiết chemical.txt chứa thông
tin các nguyên tố hóa học, file tri thức equation.txt chứa các phương trình phản ứng
giữa các chất (quan hệ của các thuộc tính của các nguyên tố có cấu trúc) và tập biến
compound.txt là tập các chất cần tìm, tập biến có thể là tập con của tập giả thiết là
các nguyên tố hay hợp chất của nó. Dưới đây là trích dẫn ví dụ mô tả cấu trúc của các
file tri thức:
File chemical.txt: <tên nguyên tố>
Ag
Al
Ba
C
Ca
Cl2
File compound.txt: <tên hợp chất >
AgCl
Ag2SO4
AlBr3
AlI3
Al(OH)3
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 14
Biểu diễn tri thức và suy luận 2014
Al2O3
AlCl3
BaSO3
BaSO4
File equation.txt: <phương trình phản ứng>
Fe + H2O + SO3 = FeSO4 + H2
2NaCl + 2H2O = 2NaOH + H2 + Cl2
Na + Cl2 = NaCl
Fe + Cl2 = FeCl3
Cu + Cl2 = CuCl2
Cl2 + H2O = HCl + HClO
MnO2 + 4HCl = MnCl2 + Cl2 + 2H2O
HCl + KMnO4 = KCl + MnCl2 + H2O +Cl2
K + Cl2 = KCl
Na + Cl2 = NaCl
Al + Cl2 = AlCl3
Ca + Cl2 = CaCl2
FeCl2 + Cl2 = FeCl3
Cl2 + KBr = KCl + Br2
Cl2 + NaBr = NaCl + Br2
1.3.2 Thuật giải
Áp dụng thuật toán 3.1 tìm lời giải cho mạng tính toán A→B đã đề cập ở phần cơ
sở lý thuyết.
Nhập: Các file chứa tri thức cho bài toán hóa học, tập giả thiết chemical.txt, tập
biến cần tính compound.txt.
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 trong hóa học bằng các đọc file tri thức
equation.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 ;// khi bài toán là giải được
goto 4;
end
else
5. Repeat
Aold ←A;
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 15
Biểu diễn tri thức và suy luận 2014
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);
Solution ← Solution ∪ {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
Không đủ nguyên liệu để tạo; In kết quả;
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 ← { f
1
,f
2
, ,f
m
};
for i=m downto 1 do
if D\ { f
i
} là một lời giải then
D ← D \ {f
i
};
D là một lời giải tốt.
8. In từng bước giải của bài toán (Phương trình hóa học)
1.4 Thiết kế bộ suy diễn và cài đặt
Về mặt tri thức người ta đã biết được nhiều chất và các phản ứng hóa học có thể
chuyển hóa từ một số chất này thành các chất khác. Ta có thể xem tri thức đó như một
mạng tính toán mà mỗi phản ứng là một quan hệ của mạng.
(M, F)
Trong đó M là tập giả thiết và kết luận, F là tập các quan hệ của các chất.
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 16
Biểu diễn tri thức và suy luận 2014
Bài toán 1
: Viết phương trình phản ứng (PTPƯ) biểu diễn các biến hóa sau:
Zn → ZnO → ZnSO
4
Mô hình bài toán:
M = { [Zn, ZnO, ZnSO
4
] }
F = { tập các phương trình phản ứng hóa học }
Lời giải:
Solution = {[Zn + O
2
→ ZnO] , [ZnO + H
2
SO
4
→ ZnSO
4
+ H
2
O]}
Bài toán 2
: Từ lưu huỳnh (S) và nước (H
2
O) ta có thể điều chế được axit
sunfuaric (H
2
SO
4
) không ?
Mô hình bài toán:
O = { [S, H
2
O , H
2
SO
4
] }
F = { tập các phương trình phản ứng hóa học }
Lời giải:
Solution = {
Điện phân
[H
2
O →H
2
↑ + O
2
↑ ],
[S + O
2
→ SO
2
],
[SO
2
+ O
2
→ SO
3
],
[SO
3
+ H
2
O → H
2
SO
4
]
}
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 17
Biểu diễn tri thức và suy luận 2014
Chương trình viết bằng ngôn ngữ lập trình C# trên nền tảng Visual Studio 2010
với đối số là các file tri thức và giả thiết, dựa trên tri thức về phương trình phản ứng
hóa học để tìm ra chất từ các nguyên tố.
Hình 2: Minh họa bài toán điều chế hợp chất hóa học
2. Bài toán hình học – bài toán tam giác
2.1 Đặt vấn đề
Trong bài này ta sẽ khảo sát bài toán hình học tam giác. Mục đích :
- Trình bày phương pháp lưu trữ và giải thuật dựa trên mô hình mạng tính toán.
- Xác định giá trị 1 yếu tố của tam giác với những giả thiết đã cho trước.
Chúng ta xét một tam giác bao gồm 11 yếu tố:
- a, b, c : 3 cạnh của tam giác.
- A, B, C : 3 góc của tam giác.
- S : diện tích tam giác.
- p : nửa chu vi của tam giác.
- h
a,
h
b,
h
b
: độ dài đường cao tương ứng với cạnh a, b, c
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 18
Biểu diễn tri thức và suy luận 2014
Hình 3: Thể hiện tam giác ABC với các yếu tố cần xét
Các hệ thức cơ bản giữa các yếu tố của tam giác:
Liên hệ giữa 3 góc:
f
1
: A+B+C = π (radian)
Định lý cosin:
f
2
: a
2
= b
2
+ c
2
– 2.b.c.cosA
f
3
: b
2
= a
2
+ c
2
– 2.a.c.cosB
f
4
: c
2
= a
2
+ b
2
– 2.a.b.cosC
Định lý sin
f
5
:
A
a
sin
=
B
b
sin
f
6
:
A
a
sin
=
C
c
sin
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 19
Biểu diễn tri thức và suy luận 2014
f
7
:
B
b
sin
=
C
c
sin
Liên hệ nửa chu vi và 3 cạnh:
f
8
: 2p = a+b+c
Các công thức tính diện tích:
f
9
: S = a.h
a
/2
f
10
: S = b.h
b
/2
f
11
: S = c.h
c
/2
f
12
: S =
c) -b)(p -a)(p -p(p
f
13
: S = b.c.sinA / 2
f
14
: S = c.a.sinB / 2
f
15
: S = a.b.sinC / 2
Các công thức tính đường cao theo cạnh và góc:
f
16
: h
a
= b.sinC
f
17
: h
a
= c.sinB
f
18
: h
b
= a.sinC
f
19
: h
b
= c.sinA
f
20
: h
c
= a.sinB
f
21
: h
c
= b.sinA
2.2 Một số bài toán cụ thể
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 20
Biểu diễn tri thức và suy luận 2014
Ví dụ 1:
Trong tam giác ABC cho cạnh a=3, cạnh b = 4, C=1/2*Pi, diện tích S= 6. Hãy
tính chu vi tam giác.
Ta có:
Giả thiết : {a=3, b=4, C=1/2*Pi, S=6}
Tính : {2*p}
Lời giải: Áp dụng thuật toán tìm lời giải ta có lời giải gồm các bước tính toán như
sau:
Tính: c = 4(áp dụng f
4
: c
2
= a
2
+ b
2
– 2.a.b.cosC)
Tính: p = 6 (áp dụng f
8
: 2p = a+b+c)
Kết luận: Vậy chu vi 2*p = 12.
Ví dụ 2: Trong tam giác ABC giả sử đã biết góc A, cạnh b, góc C, nửa chu vi p.
Hãy tính diện tích tam giác và được cao h
a.
Ta có:
Giả thiết : {A, b, C, p}
Tính : {S, h
a
}
Lời giải: Áp dụng thuật toán tìm lời giải ta có lời giải gồm các bước tính toán như
sau:
Tính: B (áp dụng f
8
: 2p = a+b+c)
Tính: a (áp dụng f
5
:
A
a
sin
=
B
b
sin
)
Tính: c (áp dụng f
7
:
B
b
sin
=
C
c
sin
)
Tính: S (áp dụng f
12
: S =
c) -b)(p -a)(p -p(p
)
Tính h
a
(áp dụng f
17
: h
a
= c.sinB )
Kết luận: Vậy tính được S và h
a.
2.3 Mô hình và thuật giải
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 21
Biểu diễn tri thức và suy luận 2014
2.3.1 Mô hình tri thức cho bài toán tam giác
Bài toán cần giải gồm giả thiết là một số thông số (đối tượng, sự kiện) của tam
giác cho trước. Mục tiêu là xác định một thông số (đối tượng) của tam giác. Tri thức
trong bài toán này được đưa về mô hình mạng tính toán (M,F) với:
M: danh sách các thuộc tính của tam giác lưu trong file triangle.txt.
F: danh sách các quan hệ giữa các thuộc tính trong M lưu trong file
triangleRelations.txt.
Cấu trúc file triangle.txt : <tên đối tượng> : <mô tả của đối tượng>
Ví dụ:
A : so do goc doi dien canh a
B : so do goc doi dien canh b
C : so do goc doi dien canh c
….
Cấu trúc file triangleRelations.txt : <các mối quan hệ> : <công thức liên hệ>
Ví dụ:
a,b,c->p.( a + b + c ) / 2
a,b,c,p->S.sqrt ( p * ( p - a ) * ( p - b ) * ( p - c ) )
a,b,C->S.( a * b * sin C ) / 2
a,c,B->S.( a * c * sin B ) / 2
b,c,A->S.( b * c * sin A ) / 2
a,ha->S.a * ha / 2…
2.3.2 Thuật giải
Nhập: Các file chứa tri thức cho bài toán tam giác, tập giả thiết triangle.txt, tập
quan hệ triangleRelations.txt.
Xuất: Lời giải cho bài toán A→B và giá trị của yếu tố B(nếu giải được).
Thuật toán:
Tương tự thuật giải mạng tính toán đã áp dụng trong bài toán hóa học; nhưng do
còn phải tính kết quả cho yếu tố tam giác nếu tìm được lời giải, nên sau khi bước 7
(loại bỏ các bước giải không cần thiết) được thực hiện, ta thêm một bước để tính giá
trị cần tìm:
…(Xem thêm ở thuật giải trong mục 1.3.2 phần Áp dụng)
Bước 7 : Loại bỏ các bước giải không cần thiết.
D ← { f
1
,f
2
, ,f
m
};
for i=m downto 1 do
if D\ { f
i
} là một lời giải then
D ← D \ {f
i
};
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 22
Biểu diễn tri thức và suy luận 2014
D là một lời giải tốt.
Bước 8: Tính giá trị của tập B.
Bước 9: In từng bước giải của bài toán và giá trị tìm được.
2.4Cài đặt
Chương trình viết bằng ngôn ngữ lập trình C# trên nền tảng Visual Studio 2010
với đối số là các file tri thức và giả thiết, dựa trên tri thức về công thức hình học của
tam giác.
Hình 4: Minh họa bài toán tam giác
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 23
Biểu diễn tri thức và suy luận 2014
C. Kết luận
Những tiến bộ nhanh chóng và dồn dập của công nghệ thông tin và truyền thông
đã thúc đẩy mạnh mẽ quá trình đưa hoạt động tri thức về gần với cuộc sống hàng
ngày. Nếu trước đây, việc tìm kiếm tri thức là đặc quyền của các nhà khoa học, và tri
thức phải là những điều cao xa hướng tới các qui luật tất yếu và phổ biến, thì giờ đây
con người cần tri thức phục vụ cho những công việc cụ thể trong mọi lĩnh vực và gần
gũi với đời sống như y tế, giáo dục, thương mại…
Bài thu hoạch đã trình bày lại những kiến thức nắm được về biểu diễn tri thức dựa
trên mạng tính toán và xây dựng chương trình minh họa áp dụng mạng tính toán để
giái quyết các bài toán trên cơ sở tri thức hóa học và hình học cơ bản.
Tuy nhiên, bài thu hoạch không thể tránh khỏi những thiếu sót về kiến thức cũng
như về kỹ năng lập trình, rất mong thầy có những ý kiến góp ý.
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 24
Biểu diễn tri thức và suy luận 2014
TÀI LIỆU THAM KHẢO
1. PSG.TS. Đỗ Văn Nhơn. Bài giảng Biểu diễn tri thức và ứng dụng, 2013.
2. GS.TSKH. Hoàng Kiếm & PSG.TS. Đỗ Văn Nhơn, Mạng tính toán và ứng dụng,
Tạp chí Tin học và điều khiển học, T.13, S.3(1997)
Sinh viên thực hiện: Vũ Xuân Vinh- CH1301117 Trang 25