TRƯỜNG CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
Lớp CHK8 - Chuyên Ngành KHMT
ĐỒ ÁN MÔN HỌC
BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
Đề tài: MẠNG TÍNH TOÁN
Ging viên: PGS TS. Đỗ Văn Nhơn
Học viên: Nguyễn Phương Thanh Diệu
MSHV: CH1301085
TP HCM – 03/2014
CH1301085 – Nguyễn Phương Thanh Diệu
Nội dung
2
CH1301085 – Nguyễn Phương Thanh Diệu
I. TRI THỨC VÀ BIỂU DIỄN TRI THỨC
1. Khái niệm tri thức
° Tri thức không có được định nghĩa chính xác.
° Khái niệm: Tri thức (knowledge) là sự hiểu biết về một lĩnh vực của chủ đề.
° Lĩnh vực: miền chủ đề được chú trọng.
° Tri thức thuờng bao gồm các khái niệm, các loại sự kiện, các luật,
Ví dụ:
1. Kiến thức về một lĩnh vực y học và khả năng chẩn đoán bệnh là tri thức.
2. Biết một tam giác có các yếu tố nào cùng với các công thức liên hệ giữa các yếu
tố là tri thức.
3. Biết các dạng cấu trúc dữ liệu thường dùng trong lập trình cùng với các thuật
toán xử lý cơ bản trên các cấu trúc là tri thức.
2. Khái niệm về biểu diễn tri thức
° Biểu diễn tri thức (Knowledge Representation) là sự diễn đạt và thể hiện của tri
thức dưới những dạng thích hợp để có thể tổ chức một cơ sở tri thức của hệ thống.
° Tại sao phải biểu diễn tri thức?Biểu diễn tri thức giúp có thể tổ chức và cài đặt
một cơ sở tri thức cho các hệ chuyên gia, các hệ cở sở tri thức và các hệ giải bài toán
dựa trên tri thức.
Công cụ cho việc biểu diễn tri thức
° Các cấu trúc dữ liệu cơ bản: dãy, danh sách, tập hợp, mẫu,
° Các cấu trúc dữ liệu trừu tượng: ngăn xếp, hàng đợi.
° Các mô hình toán học: đồ thị, cây.
° Các mô hình đối tượng.
° Các ngôn ngữ đặc tả tri thức.
Vídụ: Kiến thức về một tam giác cần thiết cho việc giải bài toán tam giác có thể được
biểu diễn gồm:
° Một tập hợp các biến thực, mỗi biến đại diện cho một yếu tố của tam giác.
3
CH1301085 – Nguyễn Phương Thanh Diệu
° Một tập hợp các công thức liên hệ tính toán trên các yếu tố của tam giác.
3. Một số mô hình biểu diễn tri thức cơ bản:
3.1. Logic hình thức
° Sử dụng các biểu thức logic hình thức trong một hệ thống logic để diễn đạt các sự
kiện và các luật trong cơ sở tri thức.
° Phép tính logic vị từ cấp 1 được sử dụng phổ biến nhất và có cả một ngôn ngữ lập
trình hỗ trợ cho phương pháp này. Đó là ngôn ngữ lập trình PROLOG.
° Trong ngôn ngữ PROLOG, chỉ cần khai báo các sự kiện và các luật. Hệ thống sẽ
thức hiện giải quyết vấn đề được yêu cầu dựa trên tri thức được khai báo.
3.2. Hệ luật dẫn
° Mỗi luật dẫn được phát biểu dưới dạng: if <giả thiết> then <kết luận>
° Mô hình: Một cách hình thức, hệ luật dẫn gồm
1) Tập ký hiệu đại diện cho các sự kiện.
2) tập luật dẫn trong đó <giả thiết> và <kết luận>
là các tập hợp sự kiện
Nhận xét: Mô hình hệ luật dẫn trên khó áp dụng trực tiếp vì quan niệm sự kiện khá
đơn giản.
3.3. Mạng ngữ nghĩa
° Mạng ngữ nghĩa (semantic network) có dạng một đồ thị gồm các nút và các cung,
trong đó
- Các nút thể hiện các khái niệm, các đối tượng.
- Các cung thể hiện các quan hệ giữa các đối tượng.
° Dựa trên mạng ngữ nghĩa ta nhận biết tri thức một cách trực quan giúp thiết kế các
xử lý như: thêm/bớt các khái niệm hay các đối tượng, tìm kiếm thông tin.
° Nhận xét: Mô hình khá trừu tượng và khái quát, trong áp dụng phải phát triển các
mô hình tri thức cụ thể hơn.
3.4. Các khung(frame)
° Các khung (frame) thể hiện các khái niệm dưới dạng cấu trúc mẫu tin và có hình
thức như một bảng mẫu.
4
CH1301085 – Nguyễn Phương Thanh Diệu
° Khung cơ bản: gồm các thành phần cơ bản sau
• Tên đối tượng (loại khung).
• Các thuộc tính.
• Giá trị của các thuộc tính.
° Khung lớp: thể hiện các tính chất tổng quát của một lớp các đối tượng, với những
quan hệ kế thừa và cấu trúc phân cấp.
I. Mạng tính toán:
Vấn đề bài toán:
Giả sử chúng ta đang quan tâm đến một số yếu tố trong một tam giác, chẳng hạn : 3 cạnh
a, b, c; 3 góc tương ứng với 3 cạnh : α, β, γ; 3 đường cao tương ứng : ha, hb, hc; diện tích
S của tam giác; nửa chu vi p của tam giác; bán kính đường tròn nội tiếp r của tam giác.
Giữa 12 yếu tố trên có các công thức thể hiện những mối quan hệ giúp ta có thể
giải quyết được một số vấn đề tính toán đặt ra như: Tính một yếu tố từ một số yếu tố
được cho trước
Chẳng hạn, tính S khi biết a, b và p.
Giải quyết vấn đề:
Trong tam giác chúng ta có thể kể ra một số quan hệ dưới dạng công thức sau đây:
1. Tập các biến:
- a, b, c: 3 cạnh tam giác
- A, B, C: 3 góc đối diện với 3 cạnh tương ứng trong tam giác.
- ha, hb, hc: 3 đường cao tương ứng 3 cạnh
- ma, mb, mc: 3 đường trung tuyến tương ứng 3 cạnh tam giác.
- pa, pb, pc: 3 đường phân giác trong tương ứng với 3 cạnh tam giác
- S: diện tích tam giác.
5
CH1301085 – Nguyễn Phương Thanh Diệu
- p : nửa chu vi 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.
- ra, rb, rc: các bán kính đường tròn bàng tiếp tam giác.
2. Các hệ thức cơ bản giữa các yếu tố tam giác
1. Liên hệ giữa 3 góc:
- f1: A + B + C = pi (radian).
2. Định lý Cosin:
- f2: a
2
= b
2
+ c
2
– 2.b.c.CosA
- f3: b
2
= a
2
+ c
2
– 2.a.c.CosB
- f4: c
2
= a
2
+ b
2
– 2.a.b.CosC
3. Định lý Sin:
- f5:
4. Liên hệ giữa nửa chu vi và 3 cạnh
- f6: 2.p = a + b + c
5. Các công thức tính diện tích
- f7: S = . a. ha; S = .b.hb; S = .c.hc
- f8: S = b.c.sinA; S = .c.a.sinB; S = .a.b.sinC
- f9: S = (a.b.c)/4R
- f10: S = p.r <=> 2S = (a + b + c).r
- f11: S =
- f12: S = r
a
.(p-a); S = r
b
.(p – b); S = r
c
.(p – c)
6
CH1301085 – Nguyễn Phương Thanh Diệu
6. Các công thức tính đường cao theo cạnh và góc
- f13: h
a
= b.sinC = c.sinB
- f14: h
b
= a.sinC = c.sinA
- f15: h
c
= a.sinB = b.sinA
7. Các công thức tính các đường trung tuyến:
- f16: 4.m
a
2
= 2.(b
2
+ c
2
) – a
2
- f17: 4.m
b
2
= 2.(a
2
+ c
2
) – b
2
- f18: 4.m
c
2
= 2.(a
2
+ b
2
) – c
2
8. Các công thức tính đường phân giác trong
- f19:
- f20:
- f21:
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, 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
7
X1
Xm-k
Xm-k+1
Xm
A
B
C
CH1301085 – Nguyễn Phương Thanh Diệu
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.
Ta có thể vẽ hình biểu diễn cho các quan hệ đối xứng và quan hệ không đối xứng
như sau:
Nhận xét:
1. Một quan hệ không đối xứng có hạng k có thể được viết thành k quan hệ không
đối xứng có hạng 1.
2. Nếu biểu diễn một quan hệ đối xứng có hạng k thành các quan hệ đối xứng có
hạng 1 thì số quan hệ có hạ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
độ
Quan hệ f giữa 3 góc trong một tam giác trên đây là một quan hệ đối xứng có hạng 1.
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ị: độ)
8
X
m-k+1
X1
X2
Quan hệ đối xứng có hạng
Xm
Xm
Quan hệ không đối xứng có hạng k
CH1301085 – Nguyễn Phương Thanh Diệu
Định nghĩa 1:
Mạng tính toán với các giá trị đơn là một cặp (M, F), trong đó
- M = {x1, x2 … xn}: tập các biến giá trị đơn (dữ liệu không có cấu trúc)
- F = {f1, f2 … fn}: tập các quan hệ tính toán trên các biến của tập M.
Mỗi quan hệ tính toán f ∈ F có dạng như sau:
i. Một phương trình trên các biến của M
ii. Luật suy diễn f: u(f) v(f) và có công thức tương ứng để tính toán v(f) từ u(f). Có
thể định nghĩa tập M(f) = u(f) ∪ v(f).
* Trong một số ứng dụng phương trình được nói đến ở trên cũng có thể là các luật suy
diễn.
Ví dụ: Mạng tính toán cho một hình chữ nhật.
- a, b: là 2 cạnh của hình chữ nhật
- d: là đường chéo hình chữ nhật
- S: là diện tích
- p: là chu vi hình chữ nhật
M= {a, b, d, S, p}; F = {f1: S=a*b, f2:2*(a+b), f3: d2=a2+b2}
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à:
1. 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?
2. 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?
3. 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.
9
CH1301085 – Nguyễn Phương Thanh Diệu
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
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.
Giải quyết vấn đề:
2. Tính giải được của bài toán :
Trong mục nầy chúng ta nêu lên một khái niệm có liên quan đến tính giải được
của vấn đề trên một 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 4.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
10
CH1301085 – Nguyễn Phương Thanh Diệu
đượ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à ,
chúng ta có định lý sau đây:
Định lý 4.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 ⊆
.
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 hay không.
Định lý 4.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 ⊆ .
(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.
Chứng minh : Giả sử có (1), tức là B ⊆ . 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 ⊆ 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.
11
CH1301085 – Nguyễn Phương Thanh Diệu
Thuật toán 4.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 :
Thuật toán :
1. B ← A;
2. Repeat
B1 ← 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 = B1;
3. ← B;
Lời giải của bài toán :
Ở trên ta đã nêu lên cách xác định tính giải được của bài toán. Tiếp theo, ta sẽ
trình bày cách tìm ra lời giải cho bài toán A → B trên mạng tính toán (M,F).
Mệnh đề 4.2 :
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à
12
CH1301085 – Nguyễn Phương Thanh Diệu
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 4.2 .
Tìm một lời giải cho bài toán A → B :
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; // biến Solution_found = true khi bài toán là
// giải được
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
13
CH1301085 – Nguyễn Phương Thanh Diệu
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
Solution là một lời giải;
Ghi chú :
1. Về sau, khi cần trình bày quá trình giải (hay bài giải) ta có thể xuất phát từ lời
giải tìm được dưới dạng một dãy các quan hệ để xây dựng bài giải.
2. Lời giải (nếu có) tìm được trong thuật toán trên chưa chắc là một lời giải tốt. Ta
có thể bổ sung thêm cho thuật toán ở trên thuật toán để tìm một lời giải tốt từ một lời
giải đã biết nhưng chưa chắc là tốt. Thuật toán sẽ dựa trên định lý được trình bày tiếp
theo đây.
Định lý 4.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,
14
CH1301085 – Nguyễn Phương Thanh Diệu
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.
Thuật toán 4.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.
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:
15
CH1301085 – Nguyễn Phương Thanh Diệu
1. for i=1 to m do
if ( f
i
đối xứng and 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. Đị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). Trong mục nầy 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:
(1) B
m
= B.
(2) B
i
⊆ A
i
, với mọi i=0,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
.
Ghi chú :
(1) Từ định lý trên ta có quá trình tính toán các biến để giải bài toán A→B như
sau:
bước 1: tính các biến trong tập B
1
\ B
0
(áp dụng f
1
).
16
CH1301085 – Nguyễn Phương Thanh Diệu
bước 2: tính các biến trong tập B
2
\ B
1
(áp dụng f
2
).
v.v
bước m: tính các biến trong tập B
m
\ B
m-1
(áp dụng f
m
).
(2) Từ chứng minh của định lý trên, ta có thể ghi ra một thuật toán để xây dựng
dãy các tập biến {B
1
’, , B
m-1
’, B
m
’} rời nhau cần lần lượt tính toán trong quá trình giải
bài toán (B
i
’ = B
i
\ B
i-1
) gồm các bước chính như sau:
• xác định các tập A
0
, A
1
, , A
m
.
• xác định các tập B
m
, B
m-1
, , B
1
, B
0
.
• xác định các tập B
1
’, B
2
’, , B
m
’ .
Ví dụ 1: Cho tam giác ABC có cạnh a và 2 góc kề là β, γ được cho trước.Tính
diện tích S của tam giác.
Để tìm ra lời giải cho bài toán trước hết ta xét mạng tính toán của tam giác. Mạng
tính toán nầy gồm :
1. Tập biến M = {a, b, c, α, β, γ, h
a
, h
b
, h
c
, S, p, R, r, }, trong đó a,b,c là 3 cạnh;
α, β, γ là 3 góc tương ứng với 3 cạnh; h
a
, h
b
, h
c
là 3 đường cao; S là diện tích tam giác; p
là nửa chu vi; R là bán kính đường tròn ngoại tiếp tam giác; r là bán kính đường tròn nội
tiếp tam giác, v.v
2. Các quan hệ:
f
1
: α + β + γ = 180 f
2
:
f
3
: f
4
:
f
5
: p = (a+b+c) /2 f
6
: S = a.h
a
/ 2
f
7
: S = b.h
b
/ 2 f
8
: S = c.h
c
/ 2
f
9
: S = a.b.sinγ / 2 v.v
Yêu cầu tính: S (diện tích của tam giác).
Theo đề bài ta có giả thiết là : A = {a, β, γ}, và tập biến cần tính là B = {S}.
17
CH1301085 – Nguyễn Phương Thanh Diệu
Áp dụng thuật toán tìm lời giải (thuật toán 3.2) ta có một lời giải cho bài tính là dãy quan
hệ sau: {f
1
, f
2
, f
3
, f
5
, f
9
}. Xuất phát từ tập biến A, lần lượt áp dụng các quan hệ trong lời
giải ta có tập các biến được xác định mở rộng dần đến khi S được xác định :
{a, β, γ} {a, β, γ, α} {a, β, γ, α, b} {a, β, γ, α, b, c}
{a, β, γ, α, b, c, p} {a, β, γ, α, b, c, p, S}.
Có thể nhận thấy rằng lời giải nầy không phải là lời giải tốt vì có bước tính toán thừa,
chẳng hạn là f
5
. Thuật toán 3.3 sẽ lọc ra từ lời giải trên một lời giải tốt là {f
1
, f
2
, f
9
}:
{a, β, γ} {a, β, γ, α} {a, β, γ, α, b} {a, β, γ, α, b, S}.
Theo lời giải nầy, ta có quá trình tính toán như sau :
bước 1: tính α (áp dụng f
1
).
bước 2: tính b (áp dụng f
2
).
bước 3: tính S (áp dụng f
9
).
Quá trình tính toán (gồm 3 bước) nầy có thể được diễn đạt một cách rõ ràng trên sơ đồ
mạng sau đây:
Ví dụ 2: 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à
18
CH1301085 – Nguyễn Phương Thanh Diệu
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.
Giả sử ta đã biết một số những phản ứng hóa học. Chẳng hạn như một số phản ứng
của Clo sau đây:
Na + Cl
2
→ NaCl
Fe + Cl
2
→ FeCl
3
Cu + Cl
2
→ CuCl
2
Cl
2
+ H
2
O → HCl + HClO
MnO
2
+ 4HCl = MnCl
2
+ Cl
2
↑ + 2H
2
O
HCl + KMnO
4
→ KCl + MnCl
2
+ H
2
O +Cl
2
↑
NaCl + H
2
O → Cl
2
↑ + H
2
↑ + NaOH
K + Cl
2
→ KCl
Bây giờ giả sử ta phải giải quyết bài toán điều chế như sau: cho rằng ta có các chất
hóa học S, H
2
O, NaCl; hãy tìm các phản ứng điều chế các chất hóa học Na
2
SO
4
,
H
2
SO
4
,HCl, Na.
Bằng các tiến hành thuật giải tìm lời giải nêu trong phần III.2 ở trên trong tập các
phản ứng hóa học ta có thể tìm ra các phản ứng sau đây:
H
2
O + NaCl → NaOH + H
2
+ Cl
2
H
2
+ Cl
2
→ HCl
H
2
O → O
2
+ H
2
NaCl → Cl
2
+ Na
19
CH1301085 – Nguyễn Phương Thanh Diệu
S + O
2
→ SO
2
SO
2
+ O
2
→ SO
3
SO
3
+ H
2
O → H
2
SO
4
H
2
SO
4
+ NaOH → Na
2
SO
4
+ H
2
O
20
CH1301085 – Nguyễn Phương Thanh Diệu
II. TÀI LIỆU THAM KHẢO
[1] Enn Tyugu. (1988). Knowledge-based Programming.
ADDISON-WESLEY PUBLISHING COMPANY.
[2] Elaine Rich & Kevin Knight. (1991). Artificial Intelligence.
McGraw-Hill, Inc.
[3] Jean-Louis Laurière. (1990). Problem-Solving and Artificial Intelligence.
Prentice Hall.
[4] Bạch Hưng Khang & Hoàng Kiếm. (1989). Trí Tuệ Nhân Tạo, các phương pháp
và ứng dụng. Hà Nội: Nhà Xuất bản Khoa học và Kỹ thuật.
[5] Hojjat Adeli. (1990). Knowlegde Engineering, Vol I.
McGraw-Hill, Inc.
[6] Hojjat Adeli. (1990). Knowlegde Engineering, Vol II.
McGraw-Hill, Inc.
[7] Judea Pearl. (1984). Heuristics.
ADDISON-WESLEY PUBLISHING COMPANY.
[8] J.D. Ullman. (1988). Principles of Database and Knowledge-base Systems,
Vol I. Computer Science Press.
[9] J.D. Ullman. (1989). Principles of Database and Knowledge-base Systems,
Vol II. Computer Science Press.
[10] D. Kapur & J.L. Mundy. (1988). Wu’s Method and Its Application to Perspective
Viewing.
[11] D. Kapur. (1988). A Refutational Approach to Geometry Theorem Proving.
[12] Adam Blum. (1992). Neural Networks in C++. John Wiley & Sons, Inc.
21