Tải bản đầy đủ (.doc) (35 trang)

Tiểu luận môn Biểu diễn tri thức và ứng dụng MỘT SỐ MÔ HÌNH BIỂU DIỄN TRI THỨ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 (198.74 KB, 35 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CHƯƠNG TRÌNH ĐÀO TẠC THẠC SĨ CNTT QUA MẠNG
MỘT SỐ MÔ HÌNH BIỂU DIỄN TRI THỨC
Bộ môn: Biểu diển tri thức và ứng dụng
Giáo viên hướng dẫn: PGS.TS. Đỗ Văn Nhơn
Sinh viên: Trần Hoài Phong
MSSV: CH1101027
Niên khóa 2011 - 2013
Mục lục
Lời mở đầu
Mức độ phát triển của các hệ thống dựa trên tri thức của con người đã được mở
rộng ngày một nhanh. Nó đã thoát khỏi lĩnh vực thông thường, nhu cầu cần có một mô
hình để biểu diển tri thức cho các chương trình chuyên gia đã trở nên vô cùng cần thiết.
Có một điều cần phải biết là lĩnh vực này đang ngày càng trở nên phức tạp vì tính đặc
Niên khóa 2011 - 2013
2
thù của ngôn ngữ tự nhiên, do đó cần một hệ thống để có thể giao tiếp với các chuyên
gia theo ngôn ngữ của họ là không thể bỏ qua. Ngoài ra các công việc như chuẩn đoán
y khoa, phân tích kịch bản, hiểu được ngôn ngữ tự nhiên và chơi trò chơi, tất cả đã
từng bước phát triển các mô hình để có thể biểu diển được một phần những tri thức
chưa đầy đủ lên trên hệ thống máy tính.
Chính vì tính chất phức tạp cùng với việc các mô hình hiện tại vẫn chưa thể biểu
diễn đầy đủ tri thức của con người lên hệ máy tính. Do đó ngày càng nhiều công trình
nghiên cứu về các mô hình và phương pháp để có thể biểu diễn tri thức để có thể đưa
vào ứng dụng thực tế.
Trong bài tiểu luận này em sẽ đưa ra một số mô hình để biểu diễn tri thức để
giúp hiểu rõ hơn cách làm thế nào mà tri thức của con người có thể được biểu diễn trên
một hệ thống ứng dụng thực tế cũng như hiểu rõ hơn được các đặc trưng cơ bản của
từng mô hình. Vì thời gian và kiến thức có hạn nên bài tiểu luận vẫn còn nhiều hạn chế
rất mong được sự đóng góp ý kiến từ thầy.
Cuối cùng em xin cám ơn thầy đã rất nhiệt tình hướng dẫn trong quá trình giảng


dạy. Thầy đã cung cấp cho em nhiều kiến thức quý báu qua đó giúp em có thể nghiên
cứu sâu hơn trong lĩnh vực biểu diễn các tri thức phong phú trong thế giới thực vào
trong tin học mà trước đây mình chưa từng nghĩ đến.
1. Biểu diển tri thức
1.1. Tri thức và biểu diễn tri thức
“Tri thức là sức mạnh”
Francis Bacon
Như danh ngôn nổi tiếng của FrancisBacon, ta có thể thấy tri thức được xem
như là một trong những tài sản lớn nhất của nhân loại, nhưng nó là một cái gì rất mong
Niên khóa 2011 - 2013
3
manh và khó để ghi lại. Ghi lại và biểu diễn tri thức của con người với sự giúp đỡ của
máy tính là một trong những lĩnh vực đã được nghiên cứu rất lâu của khoa học máy
tính nhằm mục đích biểu diễn các kiến thức của con người thành một dạng mà máy
tính có thể hiểu được. Đã có nhiều tiếp cận khác nhau về vấn đề này nhưng gặp thất bại
trong quá khứ có thể vì đã không tập trung vào cái quan trọng nhất đó là cách mà tri
thức con người được biểu diễn: theo ngôn ngữ tự nhiên.
Các mô hình để phần nào có thể biểu diển tri thức con người dựa trên ngôn ngữ
tự nhiên lần lượt được đưa ra để giúp con người có thể đưa ra các tri thức của họ theo
cách tự nhiên sao cho máy tính có thể hiểu được. Các mô hình này đã được nghiên cứu
bởi nhiều nhóm chuyên gia và nhiều mô hình lần lượt ra đời mặc dù không phải mô
hình nào cũng đủ mạnh để có thể tạo ra ứng dựng thực tế có thể biểu diển được các tri
thức trên nhiều lĩnh vực khác nhau.
1.2. Tầm quan trọng của biểu diễn tri thức lên máy tính:
Chúng ta đang sống trong một thế giới mà máy tính ngày càng trở nên phổ biến
hơn. Số lượng người phải làm việc với máy tính trong cuộc sống hàng ngày đã gia tăng
một cách đáng kể trong thập kỷ qua. Sẽ không phải quá nếu nói rằng chúng ta không
còn xa thời điểm mà hầu như tất cả mọi người đều phụ thuộc vào máy tính trong cả
ngày và đêm.
Tuy nhiên số lượng người được đào tạo về khoa học máy tính lại không theo kịp

với đà phát triển. Tỷ lệ người có trình độ về khoa học máy tính chỉ chiếm tỷ lệ rất thấp
trên dân số có việc làm. Nghĩa là trong khi càng ngày càng nhiều người phải làm việc
với máy tính trong cuộc sống hàng ngày của họ, tỷ lệ người có trình độ cao trong khoa
học máy tính lại duy trì với mức rất thấp. Kết quả là càng ngày càng nhiều người
không có đủ kiến thức cụ thể cần thiết trong lĩnh vực khoa học máy tính để có thể giao
tiếp được với máy tính.
Tình trạng này làm tăng lên sự cần thiết của việc liên lạc với máy tính theo cách
dễ dàng và trực quan nhất mà không cần phải yêu cầu kiến thức chuyên sâu từ người
Niên khóa 2011 - 2013
4
dùng. Tuy nhiên trên thực tế con người và máy tính dùng các loại ngôn ngữ hoàn toàn
khác biệt đó là một trong những trở ngại lớn nhất trong việc giao tiếp giữa con người
với máy tính. Máy tính sử dụng các ngôn ngữ hình thức như ngôn ngữ lập trình hay
ngôn ngữ logic trong khi con người thể hiện họ bằng ngôn ngữ tự nhiên.
Giải pháp đơn giản nhất cho vấn đề này là viết các chương trình máy tính sao
cho chúng có khả năng xử lý ngôn ngữ tự nhiên sao cho hợp lý nhất. Mặc dù đã có
nhiều thành công bước đầu trong lĩnh vực nghiên cứu này, việc xử lý ngôn ngữ tự
nhiên trở thành một vấn đề vô cùng khó khăn. Từ những cố gắng đầu tiên, một lượng
lớn các nghiên cứu đã trực tiếp làm việc trên vấn đề này trong vài thập kỷ trở lại đây.
Mặc dù thực tế là có những tiến triển trên một số khía cạnh, máy tính vẫn thất bại trong
việc xử lý ngôn ngữ tự nhiên một cách tổng quát và đáng tin cậy nhất.
Trong khi máy tính thất bại trong việc hiểu ngôn ngữ tự nhiên, thì con người
được biết là gặp rất nhiều khó khăn trong việc học ngôn ngữ hình thức. Ví dụ rất nhiều
người sử dụng web thất bại trong việc dùng chính xác các toán tử vô cùng đơn giản
trong các công cụ tìm kiếm. Ngoài ra việc sử dụng các ngôn ngữ logic cũng gặp rất
nhiều khó khăn.
Nhìn chung, kết quả hiển nhiên là con người và máy tính có thể giao tiếp nhau
nhưng không thể dùng ngôn ngữ của hai bên. Một số mô hình đã ra đời để giải quyết
vấn đề này trên một số khía cạnh nhất định đó là có thể phần nào biểu diễn những tri
thức quý giá của con người lên máy tính và có thể tự phân tích được dựa vào những tri

thức đó. Chúng ta hãy cùng đi vào tìm hiểu một số mô hình biểu diễn tri thức phổ biến.
2. Một số mô hình biểu diễn tri thức
2.1. Hệ luật dẫn
1.1.1. Khái niệm
Hệ luật dẫn bao gồm một tập hợp các quy tắc nếu-thì hợp với nhau tạo thành
một mô hình xử lý thông tin cho một số công việc liên quan đến biểu diễn tri thức. Hệ
luật dẫn có một số thuộc tính đặc biệt làm cho nó có tính phù hợp cao để có thể mô
Niên khóa 2011 - 2013
5
hình được tri thức. Từ mô hình ban đầu chỉ dùng để giải quyết vấn đề, hệ luật dẫn đã
phát triển lên trở thành một hình thức có thể mô hình các tri thức của con người và các
khía cạnh trong máy học.
Hệ luật dẫn là một mô hình xử lý tri thức, bao gồm một tập hợp các quy tắc
(được gọi là luật dẫn). Mỗi luật gồm hai phần: phần điều kiện và phần hành động. Ý
nghĩa của luật này là khi điều kiện đúng, thì một hành động sẽ được thực thi. Hãy xem
xét một ví dụ đơn giản sau đây với hai luật dẫn để mô tả hành vi của một hệ thống làm
ấm.
Luật 1: nếu nhiệt độ < 20 C -> bật chế độ làm ấm.
Luật 2: nếu nhiệt độ > 20 C -> tắt chế độ làm ấm.
Khi nhiệt độ trong phòng nhỏ hơn 20 C, phần điều kiện của luật 1 đúng, vì thế
máy điều hoà nhiệt độ thực hiện hành động cụ thể theo luật vào bật chế độ làm ấm. Khi
nhiệt độ trên 20 C, luật 2 tương tự sẽ được thực thi và tắt chế độ làm ấm. Cùng với
nhau, hai nguyên tắc này xác định một quá trình mô tả hành vi của một máy điều hoà
nhiệt độ.
Một hệ luật dẫn cho mô hình tri thức có nhiều hơn hai luật, thậm chí cả ngàn
luật. Hệ thống hoạt động theo kiểu chu kỳ. Trước hết một luật có các điều kiện được
thoả sẽ được xác định, khi đó luật này sẽ được thực thi. Thường hành động này sẽ thay
đổi trạng thái hiện tại sang trạng thái khác do đó một luật khác với điều kiện của nó sẽ
được thoả, và vòng quay lại được lặp lại.
1.1.2. Mô hình biểu diễn tri thức của hệ luật dẫn

Mô hình biểu diễn tri thức của hệ luật dẫn gồm có hai thành phần chính (Facts,
Rules). Trong đó Facts bao gồm các phát biểu chỉ các sự kiện hay các tác vụ nào đó,
còn Rules gồm các luật dẫn có dạng “if…then….”
Ví dụ: Một phần cơ sở tri thức của tam giác
- Các yếu tố của tam giác ví dụ cạnh a, b, c; góc A, B, C, chu vi p, diện tích S,
đường cao ha, hb, hc….
Niên khóa 2011 - 2013
6
 Đưa vào Facts = {a, b, c, A, B, C, p, S, ha, hb, hc, …}
- Các luật sinh ví dụ: nếu có góc A, góc B thì có góc C,…
 Đưa vào Rules = {
r1: {A, B} -> {C= pi – A – B}

}
1.1.3. Tổ chức lưu trữ
Khi tiến hành lưu trữ tuỳ theo cấu trúc của Facts mà ta có thể sữ dụng các cấu
trúc dữ liệu phổ biến như struct, frames, classes,…
Ví dụ một tổ chức lưu trữ: hệ thống sẽ lưu hai tập tin dạng text có cấu trúc:
Fact.txt và Rule.txt. Trong đó cấu trúc của mỗi tập tin như sau:
 Fact.txt
Begin
a: cạnh a của tam giác
b: cạnh b của tam giác

End
 Rule.txt
Begin
{A, B} => {C = 180 - A - B}

End

1.1.4. Cơ chế suy luận trên luật dẫn
Với một hệ luật dẫn K = {Facts, Rules} cho trước. Giả sử ta có một tập sự kiện
GT đã xác định, ta xét một tập sự kiện mục tiêu KL. Có thể suy ra được KL từ tập GT
không, và nếu được thì KL được suy ra từ các luật sinh nào?
 Suy diễn tiến:
Niên khóa 2011 - 2013
7
Là quá trình suy luận xuất phát từ một số sự kiện ban đầu, xác định các sự kiện
có thể được sinh ra từ sự kiện này. Ví dụ: Trong ví dụ trên nếu ban đầu ta có các sự
kiện A, B. Ta có thể suy ra C nhờ luật R1
Thuật giải suy diễn tiến:
B1: Ghi nhận các sự kiện giải thiết và mục tiêu của bài toán
B2: Khởi tạo lời giải là rỗng
B3: Kiểm tra mục tiêu
If mục tiêu đáp ứng then goto B8
B4: Nếu mục tiêu chưa nằm trong know tìm luật có thể phát sinh sự kiện mới
B5: If không tìm được luật then
Dừng không tìm được lời giải
B6: If B4 thành công then
Ghi nhận thông tin về luật vào lời giải và sự kiện mới vào giả thiết được
phát sinh từ các luật.
B7: Goto B4
B8: Tìm được lời giải trong danh sách luật solution
 Suy diễn lùi:
Là quá trình suy luận ngược xuất phát từ một số sự kiện ban đầu, ta tìm kiếm
các sự kiện đã "sinh" ra sự kiện này. Ví dụ: Trong ví dụ trên nếu ban đầu ta cần tìm C.
Ta xem trong các luật sinh ra C để tìm sự kiện nào đã có trong đề bài. Nếu tìm được thì
kết thúc còn không tìm được thì lại truy ngược lên đối với các sự kiện đã sinh ra C. Ở
đây nhờ luật R1 ta tìm ra được sự kiện A, B mà đề bài đã cho trước.
Thuật giải suy diễn lùi:

B1: Giả sử mục tiêu đúng
B2: Phát sinh các mục tiêu con
B3: Kiểm tra các mục tiêu con
Niên khóa 2011 - 2013
8
If mục tiêu đáp ứng then goto B8
B4: Tìm luật có thể phát sinh sự kiện mới
B5: If không tìm được luật then
Dừng không tìm được lời giải
B6: If B4 thành công then
Ghi nhận thông tin về luật vào lời giải và sự kiện mới vào giả thiết được
phát sinh từ các luật.
B7: Goto B4
B8: Tìm được lời giải trong danh sách luật solution
1.1.5. Tối ưu luật
Tập các luật trong một cơ sở tri thức rất có khả năng thừa, trùng lắp hoặc mâu
thuẫn. Dĩ nhiên là hệ thống có thể đổ lỗi cho người dùng về việc đưa vào hệ thống
những tri thức như vậy. Tuy việc tối ưu một cơ sở tri thức về mặt tổng quát là một thao
tác khó (vì giữa các tri thức thường có quan hệ không tường minh), nhưng trong giới
hạn cơ sở tri thức dưới dạng luật, ta vẫn có một số thuật toán đơn giản để loại bỏ các
vấn đề này như
 Rút gọn vế phải:
A ∧ B  A ∧ C sẽ trở thành A ∧ B  C
 Rút gọn vế trái
(L1) A, B  C (L2) A  X (L3) X  C sẽ trở thành A  C do đó L1 bị dư
thừa có thể loại bỏ
 Phân rã và kết hợp luật
A ∧ B  C sẽ trở thành A  C, B  C
 Luật thừa
Một luật là thừa nếu có thể suy ra từ luật khác ví dụ A  B, B  C, A  C thì

luật thứ 3 bị thừa.
Niên khóa 2011 - 2013
9
1.1.6. Ưu và khuyết điểm của hệ luật dẫn:
 Ưu điểm:
Các luật rất dễ hiểu nên có thể dễ dàng dùng để trao đổi với người dùng (vì nó
là một trong những dạng tự nhiên của ngôn ngữ).
Có thể dễ dàng xây dựng được cơ chế suy luận và giải thích từ các luật.
Việc hiệu chỉnh và bảo trì hệ thống là tương đối dễ dàng.
Có thể cải tiến dễ dàng để tích hợp các luật mờ.
Các luật thường ít phụ thuộc vào nhau.
 Khuyết điểm:
Các tri thức phức tạp đôi lúc đòi hỏi quá nhiều (hàng ngàn) luật sinh. Điều này
sẽ làm nảy sinh nhiều vấn đề liên quan đến tốc độ lẫn quản trị hệ thống.
Thống kê cho thấy, người xây dựng hệ thống trí tuệ nhân tạo thích sử dụng luật
sinh hơn tất cả phương pháp khác (dễ hiểu, dễ cài đặt) nên họ thường tìm mọi cách để
biểu diễn tri thức bằng luật sinh cho dù có phương pháp khác thích hợp hơn! Đây là
nhược điểm mang tính chủ quan của con người.
Cơ sở tri thức luật sinh lớn sẽ làm giới hạn khả năng tìm kiếm của chương trình
điều khiển. Nhiều hệ thống gặp khó khăn trong việc đánh giá các hệ dựa trên luật sinh
cũng như gặp khó khăn khi suy luận trên luật sinh.
2.2. Mạng suy diễn tính toán:
1.1.7. Khái niệm
Một mạng tính toán với các biến giá trị đơn giản là một cặp (M,F) trong đó M =
{x1, x2, …,xn} là một tập các biến có giá trị đơn giản (hoặc giá trị không có cấu trúc)
và F = {f1, f2, …., fm} là tập các quan hệ tính toán giữa các biến trọng tập M. Mỗi
quan hệ tính toán f ∈ F có dạng như sau:
+ Một phương trình với một số biến trong M hoặc
Niên khóa 2011 - 2013
10

+ Một quy tắc suy luận: u(f)  v(f), với u(f) ⊆ M, v(f) ⊆ M, và có một công
thức tương ứng để xác định (hoặc tính toán) các biến trong v(f) từ u(f). Ta có M(f) =
u(f) ∪ v(f).
Ví dụ: Tam giác ABC có thể được biểu diễn bởi mạng tính toán như sau M = {a,
b, c, A, B, C, R, S, p} và F = { f
1
: A + B + C = 180 f
2
:
sinB
b
sinA
a
=
f
3
:
sinB
b
sinC
c
=
f
4
:
sinC
c
sinA
a
=

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.sinC / 2 v.v
}
1.1.8. Bài toán trên mạng tính toán
Cho một mạng tính toán (M,F). Vấn đề phổ biến nhất phát sinh từ các ứng dụng
thực tế là tìm ra một giải pháp xác định được tập H M ⊆ từ tập G ⊆ M. Vấn đề này
được viết dưới dạng H  G, H là giả thuyết và G là mục tiêu của vấn đề. Để giải quyết
vấn đề cần phải trả lời hai câu hỏi sau:
Q1: Vấn đề có thể được giải quyết dựa trên tri thức K = (M, F)
Q2: Làm thế nào để đạt được mục tiêu G từ giả thuyết H dựa trên tri thức K =
(M, F) trong trường hợp vấn đề có thể được giải quyết.
Ví dụ: Trong tập tri thức K = (M, F) của ví dụ trên giả sử ta có H = { a = 5, b =
4, A = pi/2} tìm giải pháp cho G = {S, R}

Định nghĩa 2.2.2.1
Cho một mạng tính toán K = (M, F)
(i) Cho mỗi A ⊆ M và f

F, ta ký hiệu f(A) = A ∪ M(f) là tập thu được từ A
bằng cách áp dụng f, cho S = [f1, f2, , fk] là một danh sách chứa các
quan hệ trong F, ký hiệu S(A) = fk(fk-1( (f2(f1(A)) )) được dùng để
biểu hiện một tập hợp các biến lấy được từ A bằng cách áp dụng các
quan hệ f.
Niên khóa 2011 - 2013
11
(ii) Danh sách S = [f1, f2, , fk] được gọi là một giải pháp của vấn đề H 
G nếu G ⊆ S(H). Giải pháp S được gọi là giải pháp tốt nhất nếu không có
một danh sách con S’ của S sao cho S’ cũng là giải pháp của vấn đề. Vấn
đề được xem là có thể giải quyết được nếu nó có một giải pháp.
Định nghĩa 2.2.2.2
Cho một mạng tính toán K = (M, F)
Cho A là tập con của M. Có thể dễ dàng xác định tồn tại một tập duy nhất
A

M sao cho bài toán A 
A
giải được; tập
A
được gọi là bao đóng của A.
1.1.9. Thuật toán
Định lý 1
Cho một mạng tính toán K = (M, F). Các dòng sau đây tương đương nhau
(i) Bài toán H  G giải được.
(ii)

H
⊇ G
(iii) Tồn tại một danh sách các quan hệ S sao cho S(H) ⊇ G
Thuật toán 1: Tìm một lời giải cho bài toán H  G
1. Solution ← empty; // Solution là dãy các quan hệ sẽ áp dụng
2. if G ⊆ H 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
Hold ← H;
Niên khóa 2011 - 2013
12
Chọn ra một f ∈ F chưa xem xét;
while not Solution_found and (chọn được f) do
begin
if (áp dụng f từ H tạo ra một facts mới)
then
begin
H ← H ∪ M(f);
Solution ← Solution ∪ {f};
end;
if G ⊆ H then
Solution_found ← true;
Chọn ra một f ∈ F chưa xem xét;
end; { while }

Until Solution_found or (H = Hold);
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;
Thuật toán 2: Tìm lời giải tốt nhất từ một lời giải S = [f
1
, f
2
, , f
k
] của bài toán
H  G trên mạng tính toán (M, F).
1. D ← {f1, f2, , fm};
2. for i = m downto 1 do
if D \ {fi} là một lời giải then
D ← D \ {fi};
3. D là một lời giải tốt.
Niên khóa 2011 - 2013
13
Trên mạng tính toán K = (M,F). Có nhiều trường hợp bài toán H  G có một
lời giải S mà trong đó có nhiều quan hệ dẫn tới việc tính toán một số biến thừa. Do đó,
chúng ta cần xác định các biến thật sự cần thiết trong mỗi bước trong quá trình giải
quyết bài toán. Định lý sau đây cho ta thấy làm cách nào để phân tích một lời giải để
xác định ra các biến cần thiế để tính toán trong từng bước.
Định lý 2: Cho một mạng tính toán K = (M, F). Gọi {f1, f2, , fm} là một lời
giải tốt cho bài toán H → G. Đặt : A0 = H, Ai = {f1, f2, , fi}(H), với mọi
i=1, ,m. Khi đó có một dãy {B0, B1, , Bm-1, Bm}, thỏa các điều kiện sau đây:
(1) Bm = G.
(2) Bi ⊆ Ai , với mọi i=0,1, ,m.

(3) Với mọi i=1, ,m, [fi] là lời giải của bài toán Bi-1 → Bi nhưng không phải
là lời giải của bài toán B → Bi , trong đó B là một tập con thật sự tùy ý của Bi-1.
Cho một mạng tính toán K = (M, F). Các dòng sau đây tương đương nhau
(iv) Bài toán H  G giải được.
(v)
H
⊇ G
(vi) Tồn tại một danh sách các quan hệ S sao cho S(H) ⊇ G
Ví dụ: Cho mạng tính toán biểu hiện tri thức liên quan đến tam giác trong ví dụ
trên. Tìm một lời giải cho bài toán {a, B, C}  {S}. Từ thuật toán 1 ta có được một lời
giải Sol = [f1, f2, f3, f5, f6]. Và lời giải này không phải là lời giải tốt nhất vì có một
quan hệ thừa là f5. Từ lời giải Sol thuật toán 2 sẽ cho lời giải mới NewSol = [f1, f2, f9]
và quá trình để giải quyết bài toán như sau:
B1: Tính ra A bằng cách áp dụng f1;
B2: Tính ra B bằng cách áp dụng f2;
B3: Tính ra S bằng cách áp dụng f9;
Niên khóa 2011 - 2013
14
1.1.10.Ưu và 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 GT  KL nếu như đáp ứng đầy đủ các giả thiết
cần thiết.
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  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.3. Mạng các đối tượng tính toán:
1.1.11.Khái niệm
Trong rất nhiều bài toán chúng ta thường gặp rất nhiều loại đối tượng. Mỗi một
đối tượng có các thuộc tính và các mối quan hệ bên trong giữa chúng. Vì vậy, mạng
tính toán được mở rộng sao cho mỗi biến là một đối tượng tính toán.
Định nghĩa 1 Một đối tượng tính toán sẽ có những đặc tính sau:
(1) Nó có các thuộc tính giá trị. Một tập hợp các thuộc tính này của đối tượng O
sẽ được ký hiệu là M(O).
(2) Có các quan hệ tính toán nội bộ giữa các thuộc tính của đối tượng O. Chúng
được hiện ra trong các đặc trưng sau đây của đối tượng:
 Cho một tập con A của M(O). Đối tượng O có thể cho chúng ta thấy các
thuộc tính có thể xác định được từ tập con A.
 Đối tượng O sẽ đưa ra giá trị của một thuộc tính.
Niên khóa 2011 - 2013
15
 Nó có thể hiện lên các xử lý bên trong để xác định ra các thuộc tính.
Ví dụ: 1 tam giác với các tri thức (công thức, định lý, …) là một đối tượng. Các
thuộc tính của đối tượng tam giác là ba góc, 3 cạnh,… Một đối tượng tam giác có thể
trả lời một số câu hỏi ví dụ như là “Có không một lời giải cho một bài toán để tính toán
diện tích từ một cạnh và hai góc?”
Định nghĩa 2 Quan hệ tính toán f giữa các thuộc tính của một đối tượng cụ thể
được gọi là một quan hệ giữa các đối tượng. Mạng các đối tượng tính toán sẽ chứa một
tập hợp các đối tượng tính toán O = { O1, O2, …, On} và một tập các quan hệ tính
toán F = { f1, f2, … fm}. Có một số ký hiệu sau đây:
M(fi) = Tập hợp các thuộc tính của đối tượng tính toán trong quan hệ fi
M(F) =
M(f
i

i 1
m
)
=

.
M(O) =
M(O
i
i 1
n
)
=

.
M = tập hợp các thuộc tính của đối tượng tính toán được xem xét trong bài toán
cụ thể
Mi = M ∩ M(O
i
), i=1,2, , m. Mi là tập hợp các thuộc tính được xem xét của
đối tượng Oi
Cho một mạng các đối tượng tính toán (O,F). Chúng ta quan tâm đến bài toán
xác định (hoặc tính toán) các thuộc tính trong tập G từ các đối tượng cho trước trong
tập H. Bài toán này được viết dưới dạng H  G
Ví dụ: Trong hình dưới, giả sử AB = AC, giá trị của góc A và cạnh BC được cho
trước. ABDE và ACFG là hình vuông. Tính EG.
Niên khóa 2011 - 2013
16
Bài toán trên có thể được xem làm mạng các đối tượng tính toán như sau:
O = {O1: tam giác ABC với AB = AC, O2: tam giác AEG, O3: hình vuông

ABDE, O4: hình vuông ACFG} và F = {f1, f2, f3, f4, f5} gồm các quan hệ sau
F1: O1.c = O3.a
F2: O1.b = O4.a
F3: O2.b = O4.a
F4: O2.c = O3.a
F5: O1.A + O2.A = 180
Định nghĩa 3 Cho (O, F) là mạng các đối tượng tính toán, M là tập hợp các
thuộc tính có liên quan. Giả sử A là một tập con của M
(a) Với mỗi f ∈ F, gọi f(A) là hội của tập hợp A và tập hợp gồm tất cả các thuộc
tính trong M suy ra từ A bởi f. Tương tự như vậy, với mỗi đối tượng tính
toán Oi ∈ O, Oi(A) là hội của tập hợp A và tập hợp bao gồm tất cả thuộc
tính (trong M) mà đối tượng Oi có thể xác định từ các thuộc tính trong A.
(b) Giả sử D = [t1, t2, …, tm] là một danh sách các yếu tố trong F ∪ O. Ký hiệu
Ao = A, A1 = t1(Ao), …., Am = tm(Am-1) và D(A) = Am
Chúng ta có Ao ⊆ A1 ⊆ …. ⊆ Am = D(A) ⊆ M.
Một bài toán H  G được gọi là giải được nếu có một danh sách D ⊆ F ∪ O
sao cho D(A) ⊇ B. Trong trường hợp này, chúng ta gọi D là một lời giải của
bài toán
Niên khóa 2011 - 2013
17
1.1.12.Thuật toán
Thuật toán 1: Tìm một lời giải cho bài toán H  G trên mạng các đối tượng
tính toán.
1. Solution ← empty;
2. if G ⊆ H then
begin
Solution_found ← true;
goto 5;
end
else

Solution_found ← false;
3. Repeat
Hold ← H;
Chọn ra một f ∈ F chưa xem xét;
while not Solution_found and (chọn được f) do
begin
if (áp dụng f từ H tạo ra một sự kiện mới) then
begin
A ← f(A);
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 }
Niên khóa 2011 - 2013
18
Until Solution_found or (A = Aold);
4. if not Solution_found then
begin
Chọn ra một Oi ∈ O sao cho Oi(A) ≠ A;
if (chọn được Oi) then
begin
H ← Oi(H);
Solution ← Solution ∪ { Oi };
if (G ⊆ H) then
begin
Solution_found ← true;
goto 5;
end;

else
goto 3;
end;
end;
5. 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;
Ví dụ:
Trong mô hình (O, F) trong ví dụ trên, và bài toán H  G. Trong đó H = {O1.a,
O1.A} và G = {O2.a}. Chúng ta có
M(f1) = {O1.c, O3.a};
M(f2) = {O1.b, O4.a};
Niên khóa 2011 - 2013
19
M(f3) = {O2.b, O4.a};
M(f4) = {O2.c, O3.a};
M(f5) = {O1.A, O2.A};
Thuật toán trên sẽ tạo ra một lời giải
D = {f5, O1, f1, f2, f3, f4, O2}
Và quá trình mở rộng tập hợp các thuộc tính như sau
A
0

5
f
 →
A
1


1
O
 →
A
2

1
f
 →
A
3

2
f
 →
A
4

3
f
 →
A
5

4
f
 →
A
6


2
O
 →
A
7
Trong đó :
A
0
= A = {O
1
.a , O
1
.A},
A
1
= {O
1
.a , O
1
.A, O
2
.A},
A
2
= { O
1
.a , O
1
.A, O
2

.A, O
1
.b, O
1
.c },
A
3
= {O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O
3
.a},
A
4
= {O
1
.a , O
1
.A, O
2
.A, O
1

.b, O
1
.c, O
3
.a, O
4
.a},
A
5
= {O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O
3
.a, O
4
.a, O
2
.b},
A
6
= {O
1

.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O
3
.a, O
4
.a, O
2
.b, O
2
.c},
A
7
= {O
1
.a , O
1
.A, O
2
.A, O
1
.b, O
1
.c, O

3
.a, O
4
.a, O
2
.b, O
2
.c, O
2
.a}.
Thuật toán 2: Tìm lời giải tốt nhất từ một lời giải S = [f
1
, f
2
, , f
k
] của bài toán
H  G trên mạng tính toán (M, F).
1. D ← {f1, f2, , fm};
2. for i = m downto 1 do
if D \ {fi} là một lời giải then
D ← D \ {fi};
3. D là một lời giải tốt.
1.1.13.Ưu và khuyết điểm của mạng các đối tượng tính toán:
 Ưu điểm:
Niên khóa 2011 - 2013
20
Giải được hầu hết các bài toán GT  KL nếu như đáp ứng đầy đủ các giả thiết
cần thiết.
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.
Mở rộng ra hơn trong trường hợp các đối tượng có thể giải quyết các quan hệ
nội tại theo hướng đối tượng, từ đó giúp bài toán được mở rộng ra hơn.
 Khuyết điểm:
Do hệ thống chỉ bao gồm 1 cặp (O, 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  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 các đối tượng tính toán trở nên khó khăn
cho người lập trình.
2.4. Mô hình KBCO:
1.1.14.Khái niệm
Các phương pháp truyền thống để biểu diễn tri thức như logic mệnh đề, hệ luật
dẫn, mạng ngữ nghĩa,…. rất được quan tâm và được sử dụng trong nhiều ứng dụng.
Tuy nhiên các phương pháp này không đủ và không dễ dùng để khởi tạo các chương
trình thông minh hoặc các hệ tri thức trong nhiều lĩnh vực tri thức khác nhau hoặc các
hệ thống tri thức trong nhiều lĩnh vực tri thức khác nhau. Mô hình được ra đời theo
cách tiếp cận hướng đối tượng để biểu diễn tri thức cùng với kĩ thuật lập trình tính toán
symbolic.
Mô hình KBCO (knowledge bases of computational objects) bao gồm sáu thành
phần:
(C, H, R, Ops, Funcs, Rules)
Ý nghĩa của các thành phần này như sau
Niên khóa 2011 - 2013
21
 C là tập các đối tượng tính toán.
 H là tập các quan hệ phân cấp trên các đối tượng.
 R là tập các quan hệ giữa các đối tượng.
 Ops là tập các toán tử.

 Funcs là tập các hàm.
 Rules là tập các luật.
C tập hợp các đối tượng tính toán
Đối tượng tính toán có các đặc điểm sau:
(1) Nó có các thuộc tính giá trị. Một tập hợp chứa tất cả các thuộc tính của đối
tượng O được ký hiệu là M(O).
(2) Có các quan hệ tính toán bên trong giữa các thuộc tính của một đối tượng
tính toán O. Chúng được biểu thị qua các đặc trưng sau của đối tượng:
- Cho một tập con A của M(O). Đối tượng O có thể cho chúng ta biết các
thuộc tính có thể xác dịnh được từ A.
- Đối tượng O sẽ đưa ra giá trị của một thuộc tính.
- Nó cũng có thể hiện ra các xử lý nội bộ trong việc xác định thuộc tính.
Cấu trúc của một đối tượng tính toán có thể được mô hình bởi (Attrs, F, Fact,
Rules). Attrs là một tập các thuộc tính, F là một tập các suy diễn tính toán, Facts là tập
các tính chất hay sự kiện vốn có của đối tượng và Rules là tập các luật suy diễn trên
các sự kiện liên quan đến các thuộc tính cũng như liên quan đến bản thân đối tượng.
Ví dụ: Tri thức về một tam giác bao gồm các nhân tố (góc, cạnh, ) cùng với
các công thức và các thuộc tính có thể được mô hình như là một lớp của các đối tượng
tính toán như sau:
Attrs = { A, B, C, a, b, c, R, S, p, }
Niên khóa 2011 - 2013
22
F = {A+B+C=180,
R2
sinA
a
=
,
R2
sinB

b
=
,
R2
sinC
c
=
,
sinB
b
sinA
a
=
,
S = b.c.sinA / 2}
Facts = {a+b>c, a+c>b, b+c>a, }
Rules = {{a>b}{A>B}, {a=b}{A=B},{a^2=b^2+c^2}{A=pi/2},
{A=pi/2}{a^2= b^2+c^2, b⊥c}, }
H tập hợp các quan hệ phân cấp giữa các đối tượng
Trong tập C, ta có các quan hệ mà theo đó có thể có những khái niệm là sự đặc
biệt hoá của những khái niệm khác. Có thể nói, H là một biểu đồ Hasse trên C khi xem
quan hệ phân cấp là một quan hệ thứ tự trên C.
Quan hệ phân cấp của lớp tam giác
R tập hợp các quan hệ trên các đối tượng
Đối với quan hệ 2 hay 3 ngôi thì quan hệ có thể có các tính chất như tính phản
xạ trong hình học phẳng, có nhiều mối quan hệ như vậy: quan hệ thuộc của một điểm
và một đường thẳng, quan hệ song song giữa hai đường thẳng, quan hệ vuông góc giữa
hai đường thẳng, quan hệ bằng nhau giữa hai tam giác,
Ops: Tập hợp các toán tử của C
Thành phần này biểu hiện một phần các tri thức về các toán tử trên các đối

tượng. Hầu hết lĩnh vực tri thức nào đều có một thành phần chứa các toán tử. Trong
hình học sẽ có một số toán tử như là cộng, nhân các vectơ, trong đại số tuyến tính có
Niên khóa 2011 - 2013
23
các toán tử trên các ma trận. Mô hình KBCO giúp tổ chức các tri thức này như là một
phần của hệ tri thức của hệ thống thông minh.
Funcs: Tập hợp các hàm số trên các đối tượng tính toán
Tri thức về các hàm cũng là loại phổ biến của tri thức trong hầu hết các lĩnh vực
tri thức trong thực tế, đặc biệt là trong các lĩnh vực khoa học tự nhiên như toán học
hoặc vật lý. Trong hình học chúng ta có các hàm: khoảng cách giữa hai điểm, khoảng
cách từ điểm đến một đường thẳng, mặt phẳng,
Rules: biểu diễn các luật
Tập hợp các luật là một phần của cơ sở tri thức. Các luật biểu hiện các câu nói,
định lý, nguyên tắc, công thức Hầu hết các luật viết dưới dạng “if <facts> then
<facts>”.
1.1.15.Các loại sự kiện trong mô hình KBCO
Trong mô hình KBCO có 11 loại sự kiện được chấp nhận. Các loại sự kiẹn này
được đề xuất từ các nghiên cứu dựa trên các yêu cầu thực và các vấn đề trong các lĩnh
vực tri thức khác nhau. Các loại sự kiện bao gồm:
Sự kiện loại 1: Sự kiện thông tin về loại của đối tượng.
Ví dụ: ABC là tam giác cân, ABCD là hình bình hành
Sự kiện loại 2: Sự kiện về tính xác định của một đối tượng hay của một thuộc
tính của đối tượng.
Ví dụ: Cho các điểm E và F, và đường thẳng (d). Giả sử E, F và (d) đã được xác
định. (P) là mặt phẳng thoả các quan hệ sau: E ∈ (P), F ∈ (P), (d) // (P). Tìm phương
trình mặt phẳng (P). Trong ví dụ này có 3 sự kiện loại 3: (1) điểm E được xác định
hoặc chúng ta biết được toạ độ của E, (2) điểm F xác định, (3) đường thẳng (d) được
xác định hoặc chúng ta biết được phương trình của (d).
Sự kiện loại 3: Sự kiện về tính xác định của một đối tượng hay của một thuộc
tính của đối tượng thông qua biểu thức hằng.

Ví dụ: Trong tam giác ABC, giả sử chiều dài của cạnh BC = 5
Niên khóa 2011 - 2013
24
Sự kiện loại 4: Sự kiện về sự bằng nhau của một đối tượng hay một thuộc tính
của đối tượng hay một thuộc tính khác. Loại sự kiện này rất phổ biến có nhiều bài toán
liên quan đến nó trên các hệ tri thức.
Ví dụ: DOAN[A,B].a = DOAN[B,C].a, GOC[A,B,C].a = GOC[A,C,B].a
Sự kiện loại 5: Sự kiện về sự phụ thuộc của một đối tượng hay của một thuộc
tính theo những đối tượng hay các thuộc tính khác thông qua một công thức tính toán.
Ví dụ: w = 2*u + 3*v, trong đó u v w là các vectơ.
Sự kiện loại 6: Mối quan hệ trên các đối tượng hay trên các thuộc tính của các
đối tượng.
Ví dụ: hai đường thẳng song song, một đường thẳng vuông góc với một mặt
phẳng
Sự kiện loại 7: Tính xác định của một hàm.
Ví dụ: Trungdiem(A, B) hàm trung điểm của hai điểm A, B.
Sự kiện loại 8: Tính xác định của một hàm thông qua biểu thức hằng.
Ví dụ: Khoangcach(d1, d2) = 9 khoảng cách hai đường thẳng d1 và d2 bằng 9.
Sự kiện loại 9: Sự kiện về sự bằng nhau giữa một đối tượng hay thuộc tính với
một hàm.
Ví dụ: Goc[A,B,C]=GOC(d1,d2).
Sự kiện loại 10: Sự kiện về sự bằng nhau của một hàm với một hàm khác.
Ví dụ: Khoangcach(d,d1)=Khoangcach(d,d2).
Sự kiện loại 11: Sự kiện về sự phụ thuộc của một hàm theo các hàm hay các
đối tượng khác thông qua một công thức tính toán.
Ví dụ: Goc(d,d1)=Goc(d,d2)+Goc(d,d3).
5 loại sự kiện cuối cùng có liên quan đến các tri thức về hàm, thành phần Funcs
trong mô hình KBCO.
1.1.16.Cấu trúc định nghĩa của các biểu thức
Niên khóa 2011 - 2013

25

×