Tải bản đầy đủ (.docx) (31 trang)

Tiểu luận Biểu diễn tri thức và suy luận Sử dụng mạng tính toán để giải tam giác và hóa học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.52 MB, 31 trang )

Sử học
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
TIẾU LUẬN MÔN HỌC
BIỂU DIỄN TRI THỨC VÀ SUY LUẬN:
SỬ DỤNG MẠNG TÍNH TOÁN ĐỂ GIẢI TAM
GIÁC VÀ HÓA HỌC
Giảng viên hướng dẫn: PGS. TS. ĐỖ VĂN NHƠN
Học viên thực hiện: LÊ DUY ĐẮC NHÂN
TP. Hồ Chí Minh, 03/2014
LỜI CẢM ƠN
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Em xin bày tỏ lòng biết ơn sâu sắc đến PGS. TS. Đỗ Văn Nhơn, trưởng khoa Khoa Học Máy
Tính, trường Đại học Công Nghệ Thông Tin, ĐHQG TP.HCM đã tận tình hướng dẫn, cung cấp kiến
thức, truyền đạt những kinh nghiệm quí báu giúp em hoàn thành tốt bài tiểu luận này.
Xin cám ơn cha, mẹ, các anh, chị em trong gia đình đã hỗ trợ, lo lắng và động viên. Đồng thời,
xin cám ơn tất cả các bạn đã ủng hộ, giúp đỡ chúng tôi trong quá trình thực hiện bài tiểu luận này.
Dù đã có nhiều cố gắng nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, em rất mong nhận
được sự đóng góp ý kiến của các Thầy giáo, Cô giáo và các bạn để đề tài này được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Tp Hồ Chí Minh, tháng 03 năm 2014
Học viên
Mục Lục
GV: PGS. TS. Đỗ Văn Nhơn Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
GV: PGS. TS. Đỗ Văn Nhơn Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
A. Yêu Cầu:
Cho người sử dụng nhập vào một bài toán tam giác hoặc hóa học theo quy cách đã được
qui định. Máy sẽ đưa ra lời giải cho bài toán trên (nếu bài toán có lời giải). Trong trường


hợp bài toán không giải được thì chương trình sẽ thông báo để ta cho thêm dữ kiện hoặc
điều chỉnh lại bài toán.
Chúng ta xét một tam giác bao gồm 22 yếu tố:
− a, b, c : 3 cạnh của tam giác (Hình 1).
− α, β, γ : 3 góc đối diện với 3 cạnh tương ứng trong tam giác (Hình 1).
− h
a
, h
b
, h
c
: 3 đường cao tương ứng với 3 cạnh của tam giác (Hình 2a).
− m
a
, m
b
, m
c
: 3 đường trung tuyến tương ứng với 3 cạnh của tam giác (Hình 2b).
− p
a
, p
b
, p
c
: 3 đường phân giác trong tương ứng với 3 cạnh của tam giác.
− S : diện tích tam giác.
− p : nửa chu vi của tam giác.
− R : bán kính đường tròn ngoại tiếp tam giác.
− r : bán kính đường tròn nội tiếp tam giác.

− r
a
, r
b
, r
c
: các bán kính của các đường tròn bàng tiếp tam giác.
Hình 1
Hình 2
Giữa các yếu tố của tam giác có các quan hệ cho phép ta có thể tính ra được các yếu tố
cần thiết trong tam giác từ giả thiết rằng đã biết một số yếu tố nào đó của tam giác. Nhờ vào
lý thuyết về mạng tính toán ta có thể cài đặt một chương trình để giải tam giác.
Chúng ta biết rằng 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ố
GV: PGS. TS. Đỗ Văn Nhơn Trang 4 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
đ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ừ axít Clohidric và đioxit mangan
:
MnO
2
+ HCl → MnCl
2
+ Cl
2
↑ + H
2
O.
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 từ các chất MnO
2
, HCl.
Trong báo cáo chúng ta dùng mạng tính toán để giải 2 bài toán sau trong hóa học:
1. Cho một số chất, hỏi có điều chế được một vài chất nào đó không?
2. 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
B. Nội Dung:
I. Lý Thuyết:
1. Mạng Tính Toán:
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.1 Cá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
xD
2
x xD
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
R,u,v
với u ∪ v = x, và ta viết : f
R,u,v
: 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.
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,
GV: PGS. TS. Đỗ Văn Nhơn Trang 5 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
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ị: độ)
1.2 Mạng tính toán và các kí hiệu:
Như đã nói ở trên, 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 có thể viết:
M = {x
1
,x
2
, ,x
n
},
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:
f : u(f) → v(f)
thì ta có M(f) = u(f) ∪ v(f).
1.3 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 đề đặt 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?
− 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.
GV: PGS. TS. Đỗ Văn Nhơn Trang 6 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Đị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
k-1

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
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.
Định nghĩa 2.3: 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

A
, chúng ta có định lý sau đây:

Định lý 2.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ý 2.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 được trên A.
(b) D(A) ⊇ B.
GV: PGS. TS. Đỗ Văn Nhơn Trang 7 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Chứng minh : Giả sử có (1), tức là B ⊆
A
. Khi đó bài toán A → B là giải
được. Do đó có một dãy quan hệ {f
1
, f

2
, , f
k
} ⊆ F sao cho khi 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. Dễ dàng thấy rằng
dãy {f
1
, f
2
, , f
k
} nầy thỏa các điều kiện (2).
Đảo lại, giả sử có (2). Với các điều kiện có được bởi (2) ta thấy {f
i
} là lời giải
của vấn đề A
i-1
→ A
i
, với mọi i = 1,2, , k. Từ mệnh đề 3.2 suy ra bài toán A
0
→ A
k
là giải
được. Do đó bài toán A → B cũng giải được, suy ra B ⊆
A
theo định lý 3.1.
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.
Mệnh đề 1.1 : 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).
Định lý 2.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, , 2, 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
giả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.
2. Bài toán giải tam giác:
GV: PGS. TS. Đỗ Văn Nhơn Trang 8 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Về mặt tính toán, chúng ta có thể xem tam giác là một mạng tính toán (hay một đối
tượng tính toán) bao gồm các biến ghi nhận giá trị của các yếu tố trong tam giác, và các
quan hệ là các công thức thể hiện mối liên hệ tính toán giữa các yếu tố đó.
Tập các biến trong tam giác gồm:
− a, b, c : 3 cạnh của tam giác.
− α, β, γ : 3 góc đối diện với 3 cạnh tương ứng trong tam giác.
− h
a
, h
b
, h
c
: 3 đường cao tương ứng với 3 cạnh của tam giác.
− m
a
, m
b
, m
c
: 3 đường trung tuyến tương ứng với 3 cạnh của tam giác.

− p
a
, p
b
, p
c
: 3 đường phân giác trong tương ứng với 3 cạnh của tam giác.
− S : diện tích tam giác.
− p : nửa chu vi của tam giác.
− R : bán kính đường tròn ngoại tiếp tam giác.
− r : bán kính đường tròn nội tiếp tam giác.
− r
a
, r
b
, r
c
: các bán kính của các đường tròn bàng tiếp tam giác.
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
: α + β + γ = π (radian).
Định lý cosin :
f
2
: a
2
= b
2

+ c
2
- 2.b.c.cosα
f
3
: b
2
= a
2
+ c
2
- 2.a.c.cosβ
f
4
: c
2
= a
2
+ b
2
- 2.a.b.cosγ
Định lý Sin :
f
5
:
a
sin
b
sin
α β

=
f
6
:
c
sin
b
sin
γ β
=
f
7
:
a
sin
c
sin
α γ
=
f
8
:
a
sin
2R
α
=
GV: PGS. TS. Đỗ Văn Nhơn Trang 9 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
f

9
:
b
sin
2R
β
=
f
10
:
c
sin
2R
γ
=
Liên hệ giữa nửa chu vi và 3 cạnh :
f
11
: 2.p = a + b + c
Các công thức tính diện tích :
f
12
: S = a.h
a
/2
f
13
: S = b.h
b
/2

f
14
: S = c.h
c
/2
f
15
: S = p.r
f
16
: S =
p(p a)(p b)(p c)− − −
f
17
: S = b.c.sinα / 2
f
18
: S = c.a.sinβ / 2
f
19
: S = a.b.sinγ / 2
Các công thức tính đường cao theo cạnh và góc :
f
20
: h
a
= b.sinγ
f
21
: h

a
= c.sinβ
f
22
: h
b
= a.sinγ
f
23
: h
b
= c.sinα
f
24
: h
c
= a.sinβ
f
25
: h
c
= b.sinα
Các công thức tính các đường trung tuyến :
f
26
: 4.m
a
2
= 2.b
2

+ 2.c
2
- a
2
f
27
: 4.m
b
2
= 2.a
2
+ 2.c
2
- b
2
f
28
: 4.m
c
2
= 2.a
2
+ 2.b
2
- c
2
Các công thức tính các đường phân giác trong :
GV: PGS. TS. Đỗ Văn Nhơn Trang 10 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
f

29
: p
a
=
2
b c
b.c.p.(p a)
+

f
30
: p
b
=
2
a c
a.c.p.(p b)
+

f
31
: p
c
=
2
b a
b.a.p.(p c)
+

Một số công thức khác liên quan đến bán kính đường tròn ngoại tiếp, đường tròn nội

tiếp, và các đường tròn bàng tiếp :
f
32
: R =
a.b.c
4.S
f
33
: r
a
=
S
p - a
f
34
: r
b
=
S
p - b
f
35
: r
c
=
S
p -c
f
36
: 4.R = r

a
+ r
b
+ r
c
- r
Ghi chú : Trong các công thức trên, có một số công thức có thể được suy ra từ các công
thức khác. Do đó ta có thể bỏ bớt một số công thức. Hơn nữa, chúng ta có thể nêu lên một
thuật toán để làm tối thiểu hóa các công thức (hay các quan hệ) theo một thứ tự ưu tiên nào
đó. Tuy nhiên, nếu có thể nhớ được trực tiếp nhiều công thức thì việc tính toán sẽ có lợi
hơn.
3. Bài toán hóa học:
Chúng ta biết rằng 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ừ axít Clohidric và đioxit mangan
:
MnO
2
+ HCl → MnCl
2
+ Cl
2
↑ + H
2
O.
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 từ các chất MnO
2
, HCl.
Trong báo cáo chúng ta dùng mạng tính toán để giải 2 bài toán sau trong hóa học:
1. Cho một số chất, hỏi có điều chế được một vài chất nào đó không?
GV: PGS. TS. Đỗ Văn Nhơn Trang 11 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
2. 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
4. Thuật giải của bài toán giải tam giác và hóa học:
4.1 Thuật giải tìm lời giải cho bài toán A → B:
Nhập : các file chưa tri thức cho bài toán tam giác hay 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 trong tam giác hay hóa học bằng cách đọc
file tri thức TamGiac.txt hay 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; // biến Solution_found = true khi 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);
Solution ← Solution ∪ {f};
GV: PGS. TS. Đỗ Văn Nhơn Trang 12 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
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 ← {f
1
, f
2
, , f
m
}; //
{
f
1
, f
2
, , f
m
}
của bài toán A

B
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. 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 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
GV: PGS. TS. Đỗ Văn Nhơn Trang 13 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
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]);
5. Một số bài toán cụ thể:
5.1 Giải tam giác:
Như đã nói ở trên, chúng ta xét một tam giác bao gồm 22 yếu tố. Giữa các yếu tố của
tam giác có các quan hệ cho phép ta có thể tính ra được các yếu tố cần thiết trong tam giác
từ giả thiết rằng đã biết một số yếu tố nào đó của tam giác. Nhờ vào lý thuyết về mạng tính
toán ta có thể cài đặt một chương trình để giải tam giác.

Khi ta cho biết một số yếu tố của tam giác và yêu cầu tính ra một số yếu tố khác, chương
trình sẽ cho chúng ta một lời giải (nếu bài toán là giải được). Trong trường hợp bài toán
không giải được thì chương trình sẽ thông báo để ta cho thêm dữ kiện hoặc điều chỉnh lại
bài toán.
Ví dụ 1 :
Trong tam giác ABC giả sử đã biết cạnh a=3, cạnh b=4, diện tích S=6. Hãy tính chu vi
tam giác. Như vậy ta có :
Giả thiết: {a=3, b=4, S=6}
Tính các biến: {p}
Á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=1/2*Pi (áp dụng f
19
)
Tính : c=5 (áp dụng f
4
)
Tính : p=6 (áp dụng f
11
)
Ví dụ 2 :
Trong tam giác ABC giả sử đã biết góc A, cạnh b, chu vi p. Hãy tính diện tích tam giác
và đường cao h
a
. Như vậy ta có :
Giả thiết: {A, b, p}
Tính các biến: {S, h
a
}
Á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 :
GV: PGS. TS. Đỗ Văn Nhơn Trang 14 Học viên: Lê Duy Đắc Nhân

Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Bài toán không có lời giải, phải bổ sung thêm giả thiết B thì bài toán mới có thể giải
được.
Lời giải sau khi bổ sung giả thiết:
Tính : C (áp dụng f
1
)
Tính : a (áp dụng f
5
)
Tính : c (áp dụng f
4
)
Tính : S (áp dụng f
16
)
Tính : h
a
(áp dụng f
21
)
Ví dụ 3 :
Trong tam giác ABC giả sử đã biết cạnh a, góc β, góc γ. Hãy tính các cạnh còn lại (cạnh
b và cạnh c) và đường cao h
a
. Như vậy ta có :
Giả thiết: {a, β, γ}
Tính các biến: {b, c, h
a
}

Á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 : α (áp dụng f
1
)
Tính : b (áp dụng f
5
)
Tính : c (áp dụng f
6
)
Tính : h
a
(áp dụng f
20
)
Ví dụ 4 :
Trong tam giác, giả sử đã biết cạnh b, cạnh c, góc α. Hãy tính các đường trung tuyến
trong tam giác : m
a
, m
b
, m
c
.
Giả thiết: {b, c, α}
Yêu cầu tính: {m
a
, m
b
, m

c
}
Á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 : a (áp dụng f
2
)
Tính : m
a
(áp dụng f
26
)
Tính : m
b
(áp dụng f
27
)
Tính : m
c
(áp dụng f
28
)
Ví dụ 5 :
Trong tam giác, giả sử đã biết cạnh b, cạnh c, góc β. Hãy tính nửa chu vi p và diện tích S
của tam giác.
Giả thiết: {b, c, β}
GV: PGS. TS. Đỗ Văn Nhơn Trang 15 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Yêu cầu tính: {p, S}
Á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 : γ (áp dụng f

6
)
Tính : R (áp dụng f
9
)
Tính : h
a
(áp dụng f
20
)
Tính : α (áp dụng f
1
)
Tính : a (áp dụng f
2
)
Tính : p (áp dụng f
11
)
Tính : S (áp dụng f
12
)
5.2 Giải hóa học:
Trong mục này chúng ta nêu một số ví dụ cụ thể áp dụng mạng tính toán các chất hóa
học trong đó các quan hệ là các phản ứng hóa học.
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 (xem là các quan hệ của mạng tính toán các chất
hóa học) đã biết ta có thể tìm thấy được các phản ứng sau đây :

Zn + O
2
→ ZnO
ZnO + H
2
SO
4
→ ZnSO
4
+ H
2
O
Ví dụ 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 ?
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
Tương tự như 2 ví dụ trên, với tri thức gồm các phản ứng hóa học đã biết dưới dạng một
mạng các chất hóa học chúng ta cũng có thể dễ dàng giải các bài toán sau đây :
Ví dụ 3 : Viết các phương trình phản ứng để thực hiện các biến hóa theo các sơ đồ sau
đây :
ZnS → SO
2
→ H
2
SO
4
GV: PGS. TS. Đỗ Văn Nhơn Trang 16 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học

ZnS → ZnO → ZnCl
2
Ví dụ 4 : Hoàn thành các phương trình phản ứng sau đây :
Mg + H
2
SO
4
→ . . .
Fe(OH)
3
+ H
2
SO
4
→ . . .
K
2
CO
3
+ H
2
SO
4
→ . . .
Ba(NO
3
)
2
+ H
2

SO
4
→ . . .
Ví dụ 5 : Viết phương trình phản ứng theo các sơ đồ sau :
FeS + ? → FeCl
2
+ ?
CuSO
4
+ ? → ? + Na
2
SO
4
Ví dụ 6 : Từ muối NaCl và nước (H
2
O) ta có thể điều chế được axit clohidric (HCl) và
NaOH không ?
II. Thiết kế và cài đặt:
1. Mô hình tri thức cho bài toán giải tam giác:
1.1 Mô hình mạng tính toán:
Sau khi phân tích giả thiết, thuật giải của bài toán sẽ đưa đoạn mạch 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.
F: danh sách các quan hệ giữa các thuộc tính trong M, mỗi quan hệ là một danh sách
gồm:
1. Chuỗi giải thích về quan hệ.
2. 1 (nghĩa là đối xứng), 0 (nghĩa là không đối xứng).
3. Tập hợp các thuộc tính cần biết để suy ra thuộc tính cần tính trong công
thức liên hệ.
4. hạng (rank) của quan hệ.

5. Tập hợp các thuộc tính được suy ra trong quan hệ.
6. Công thức liên hệ giữa các thuộc tính.
Từ mô hình mạng tính toán (M, F) này, thuật giải tìm lời giải cho bài toán A → B sẽ đưa
ra lời giải tương ứng cho bài toán, nếu thiếu giả thiết thì thuật giải bổ sung giả thiết sẽ đưa
ra những giả thiết cần bổ sung.
1.2 Lưu trữ tri thức tam giác trên máy tính:
Tri thức về bài toán tam giác sẽ được lưu thành file: TamGiac.txt
GV: PGS. TS. Đỗ Văn Nhơn Trang 17 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
File TamGiac.txt (file đính kèm) diễn tả mối quan hệ giữa các thuộc tính của một tam
giác có cấu trúc được ghi như mô hình mạng tính toán ở trên.
2. Mô hình tri thức cho bài toán hóa học:
Tri thức về bài toán hóa học sẽ được lưu thành file: HoaHoc.txt
File HoaHoc.txt (file đính kèm) diễn tả mối quan hệ giữa các thuộc tính của các nguyên
tố có cấu trúc được ghi như mô hình mạng tính toán ở mục 2.1.
3. Cài đặt và kết quả thử nghiệm:
Chương trình giải tam giác và hóa học được viết bằng ngôn ngữ lập trình của Maple, với
đối số của các hàm là các file tri thức và giả thiết, kết luận của đề bài. Những ví dụ sau đây
minh họa cho chương trình giải một số bài tập trong tam giác và hóa học.
3.1 Giải tam giác:
Ví dụ 1 :
Trong tam giác ABC giả sử đã biết cạnh a=3, cạnh b=4, diện tích S=6. Hãy tính chu vi
tam giác. Như vậy ta có :
Giả thiết: {a=3, b=4, S=6}
Tính các biến: {p}
Lời giải của chương trình:
> GT:={a=3, b=4, S=6}; KL:={p};
> sol:=FindSol("TamGiac.txt", GT, KL);
> sol:=ReduceSol({a, b, S}, KL, sol);
> L:=Solve(GT, sol);

> InKetQua(sol, L, KL);
Kết quả:
p = 6
Bài giải:
Diện tích tam giác:
S = a*b*sin(C)/2
=> C = 1/2*Pi
Định lý Cosin:
c^2 = a^2 + b^2 - 2*a*b*cos(C)
=> c = 5
GV: PGS. TS. Đỗ Văn Nhơn Trang 18 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Chu vi tam giác:
2*p = a+b+c
=> p = 6
Ví dụ 2 :
Trong tam giác ABC giả sử đã biết góc A, cạnh b, chu vi p. Hãy tính diện tích tam giác
và đường cao h
a
. Như vậy ta có:
Giả thiết: {A, b, p}
Tính các biến: {S, h
a
}
Lời giải của chương trình:
> GT:={A, b, p};KL:={S, ha};
> FindSol2("TamGiac.txt", GT, KL);
Không tìm được lời giải cho bài toán
Bạn cần phải bổ sung vào giả thiết: B , để bài toán có thể giải được
Bài giải sau khi bổ sung giả thiết

Bài giải:
Tổng 3 góc trong tam giác bằng 180 độ
A+B+C = Pi
Ta có:
a*sin(B) = b*sin(A)
Định lý Cosin:
c^2 = a^2 + b^2 - 2*a*b*cos(C)
Diện tích tam giác:
S = sqrt(p*(p-a)*(p-b)*(p-c))
Đường cao cạnh a:
ha = b*sin(C)
Ví dụ 3 :
Trong tam giác ABC giả sử đã biết cạnh a, góc β, góc γ. Hãy tính các cạnh còn lại (cạnh
b và cạnh c) và đường cao h
a
. Như vậy ta có :
Giả thiết: {a, β, γ}
Tính các biến: {b, c, h
a
}
Á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 : α (áp dụng f
1
)
Tính : b (áp dụng f
5
)
Tính : c (áp dụng f
6
)

Tính : h
a
(áp dụng f
20
)
Lời giải của chương trình:
> GT:={a, B, C};KL:={b, c, ha};
GV: PGS. TS. Đỗ Văn Nhơn Trang 19 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
> sol:=FindSol("TamGiac.txt", GT, KL);
> sol:=ReduceSol(GT, KL, sol);
> InKetQua(sol, [], KL);
Bài giải:
Tổng 3 góc trong tam giác bằng 180 độ
A+B+C = Pi
Ta có:
a*sin(B) = b*sin(A)
Định lý Cosin:
c^2 = a^2 + b^2 - 2*a*b*cos(C)
Đường cao cạnh a:
ha = b*sin(C)
Ví dụ 4 :
Trong tam giác, giả sử đã biết cạnh b, cạnh c, góc α. Hãy tính các đường trung tuyến
trong tam giác : m
a
, m
b
, m
c
.

Giả thiết: {b, c, α}
Yêu cầu tính: {m
a
, m
b
, m
c
}
Á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 : a (áp dụng f
2
)
Tính : m
a
(áp dụng f
26
)
Tính : m
b
(áp dụng f
27
)
Tính : m
c
(áp dụng f
28
)
Lời giải của chương trình:
> GT:={b, c, A};KL:={ma, mb, mc};
GV: PGS. TS. Đỗ Văn Nhơn Trang 20 Học viên: Lê Duy Đắc Nhân

Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
> sol:=FindSol("TamGiac.txt", GT, KL);
> sol:=ReduceSol(GT, KL, sol);
> InKetQua(sol, [], KL);
Bài giải:
Định lý Cosin:
a^2 = b^2 + c^2 - 2*b*c*cos(A)
Trung tuyến ma:
4*ma^2=2*b^2+2*c^2-a^2
Trung tuyến mb:
4*mb^2=2*a^2+2*c^2-b^2
Trung tuyến mc:
4*mc^2=2*a^2+2*b^2-c^2
Ví dụ 5 :
Trong tam giác, giả sử đã biết cạnh b, cạnh c, góc β. Hãy tính nửa chu vi p và diện tích S
của tam giác.
Giả thiết: {b, c, β}
Yêu cầu tính: {p, S}
Á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 : γ (áp dụng f
6
)
Tính : R (áp dụng f
9
)
Tính : h
a
(áp dụng f
20
)

Tính : α (áp dụng f
1
)
Tính : a (áp dụng f
2
)
Tính : p (áp dụng f
11
)
Tính : S (áp dụng f
12
)
Lời giải của chương trình:
GV: PGS. TS. Đỗ Văn Nhơn Trang 21 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
> GT:={b, c, B};KL:={p, S};
> sol:=FindSol("TamGiac.txt", GT, KL);
> sol:=ReduceSol(GT, KL, sol);
> InKetQua(sol, [], KL);
Bài giải:
Ta có:
b*sin(C) = c*sin(B)
Tổng 3 góc trong tam giác bằng 180 độ
A+B+C = Pi
Định lý Cosin:
a^2 = b^2 + c^2 - 2*b*c*cos(A)
Chu vi tam giác:
2*p = a+b+c
Diện tích tam giác:
S = sqrt(p*(p-a)*(p-b)*(p-c))

3.2 Giải hóa học:
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 (xem là các quan hệ của mạng tính toán các chất
hóa học) đã biết ta có thể tìm thấy được các phản ứng sau đây :
Zn + O
2
→ ZnO
ZnO + H
2
SO
4
→ ZnSO
4
+ H
2
O
Lời giải của chương trình:
>
FindSol2("HoaHoc.txt", GT, KL);
Không tìm được lời giải cho bài toán
Bạn cần phải bổ sung vào giả thiết: H2SO4 , để bài toán có thể giải được
Bài giải sau khi bổ sung giả thiết
Bài giải:
Ta có:
Zn + H2SO4(đặc nóng) -> ZnSO4 + S + H2O
Phản ứng điều chế oxi:
H2O ->(điện phân) H2 + O2
Ta có:

Zn + O2 -> ZnO
GV: PGS. TS. Đỗ Văn Nhơn Trang 22 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Ví dụ 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 ?
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
Lời giải của chương trình:
> GT:={S, H2O}; KL:={H2SO4};
FindSol2("HoaHoc.txt", GT, KL);
Bài giải:
Phản ứng điều chế oxi:
H2O ->(điện phân) H2 + O2
Ta có:
S + O2 -> SO2
Ta có:
SO2 + O2 -> SO3
Ta có:
SO3 + H2O -> H2SO4
Ví dụ 3 : Viết các phương trình phản ứng để thực hiện các biến hóa theo các sơ đồ sau
đây :
ZnS → SO
2
→ H
2
SO
4
ZnS → ZnO → ZnCl

2
Lời giải của chương trình:
> GT:={ZnS}; KL:={SO2, H2SO4};
FindSol2("HoaHoc.txt", GT, KL);
Không tìm được lời giải cho bài toán
Bạn cần phải bổ sung vào giả thiết: H2O , để bài toán có thể giải được
Bài giải sau khi bổ sung giả thiết
Bài giải:
Phản ứng điều chế oxi:
H2O ->(điện phân) H2 + O2
Ta có:
ZnS + O2 -> ZnO + SO2
Ta có:
SO2 + O2 -> SO3
Ta có:
SO3 + H2O -> H2SO4
> GT:={ZnS}; KL:={ZnO, ZnCl2};
FindSol2("HoaHoc.txt", GT, KL);
GV: PGS. TS. Đỗ Văn Nhơn Trang 23 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Không tìm được lời giải cho bài toán
Bạn cần phải bổ sung vào giả thiết: Cl2 H2O
Bài giải sau khi bổ sung giả thiết
Bài giải:
Clo tác dụng với nước:
Cl2 + H2O -> HCl + HClO
Phản ứng điều chế oxi:
H2O ->(điện phân) H2 + O2
Ta có:
ZnS + O2 -> ZnO + SO2

Ta có:
ZnO + HCl -> ZnCl2 + H2O
Ví dụ 4 : Hoàn thành các phương trình phản ứng sau đây :
Mg + H
2
SO
4
→ . . .
Fe(OH)
3
+ H
2
SO
4
→ . . .
K
2
CO
3
+ H
2
SO
4
→ . . .
Ba(NO
3
)
2
+ H
2

SO
4
→ . . .
> GT:={Mg, H2SO4};
PTPU("HoaHoc.txt", GT);
Bài giải:
Ta có:
3Mg + 4H2SO4 = 3MgSO4 + S + H2O
> GT:={FeOH3, H2SO4};
PTPU("HoaHoc.txt", GT);
Bài giải:
Ta có:
Fe(OH)3 + H2SO4 -> Fe2(SO4)3 + H2O
> GT:={K2CO3, H2SO4};
PTPU("HoaHoc.txt", GT);
Bài giải:
Ta có:
K2CO3 + H2SO4 -> K2SO4 + H2O + CO2
> GT:={BaNO32, H2SO4};
PTPU("HoaHoc.txt", GT);
Bài giải:
Ta có:
Ba(NO3)2 + H2SO4 -> Ba2SO4 + HNO3
Ví dụ 5 : Viết phương trình phản ứng theo các sơ đồ sau :
CuSO
4
+ ? → ? + Na
2
SO
4

> GT:={CuSO4}; KL:={Na2SO4};
FindSol2("HoaHoc.txt", GT, KL);
Không tìm được lời giải cho bài toán
Bạn cần phải bổ sung vào giả thiết: NaOH , để bài toán có thể giải được
Bài giải sau khi bổ sung giả thiết
GV: PGS. TS. Đỗ Văn Nhơn Trang 24 Học viên: Lê Duy Đắc Nhân
Tiểu luận Biểu diễn tri thức và suy luận: Sử dụng mạng tính toán để giải tam giác và hóa học
Bài giải:
Ta có:
CuSO4 + NaOH -> Cu(OH)2(kết tủa) + Na2SO4
Ví dụ 6 : Từ muối NaCl và nước (H
2
O) ta có thể điều chế được axit clohidric (HCl) và
NaOH không ?
> GT:={NaCl, H2O}; KL:={HCl, NaOH};
FindSol2("HoaHoc.txt", GT, KL);
Bài giải:
Điện phân dung dịch đậm đặc muối ăn trong nước:
NaCl + H2O -> Cl2 + H2 + NaOH
Clo tác dụng với nước:
Cl2 + H2O -> HCl + HClO
C. Tài Liệu Tham Khảo:
[1] GSTS. Hoàng Kiếm & Đỗ Văn Nhơn - Mạng Tính Toán Và Ứng Dụng.
[2] Maplevn2008’s Blog – Blog hướng dẫn sử dụng và lập trình trên
Maple.
GV: PGS. TS. Đỗ Văn Nhơn Trang 25 Học viên: Lê Duy Đắc Nhân

×