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

Tiểu luận môn biểu diễn tri thức và suy luận BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG GIẢI BÀI TOÁN TAM GIÁ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 (457.11 KB, 41 trang )

Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
Bài thu hoạch:
BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG GIẢI
BÀI TOÁN TAM GIÁC
Khoa đào tạo:
KHOA HỌC MÁY TÍNH
Giảng viên hướng dẫn:
PGS.TS. ĐỖ VĂN NHƠN
Học viên thực hiện:
Võ Nhựt Thanh
Mã số học viên:
CH1301054
TP. Hồ Chí Minh, tháng 03 năm 2014
HVTH: CH1301054 – Võ Nhựt Thanh 1
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
Mục lục
HVTH: CH1301054 – Võ Nhựt Thanh 2
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
A. LÝ THUYẾT VỀ BIỂU DIỄN TRI THỨC
I. Lời mở đầu
Trong sự nghiệp công nghiệp hoá, hiện đại hoá đất nước, ngành công nghệ thông tin là
một trong những lĩnh vực có được những bước tiến lớn và đạt được những thành tựu đáng kể.
Cùng với sự phát triển của ngành công nghệ thông tin, các vấn đề phức tạp trong thực tế được
đơn giản đi rất nhiều. Nhờ đó mà quá trình phát triển được thúc đẩy nhanh chóng hơn.
Vai trò của của công nghệ thông tin trong thời buổi công nghiệp hoá, hiện đại hoá đất
nước là không thể phủ nhận, tuy nhiên việc ứng dụng công nghệ thông tin vào những lĩnh vực
nào và ứng dụng như thế nào để có thể khai thác hết được thế mạnh của ngành công nghệ
thông tin luôn là một câu hỏi lớn. Việc ứng dụng tri thức nhân loại vào trong ngành công nghệ


thông tin để góp phần đưa ra những lời giải cho nhiều vấn đề khó được xem là một giải pháp
và cần thiết và có ý nghĩa. Các tri thức nhân loại đều có thể được xây dựng thành một hệ thống
hoàn chỉnh và ứng dụng trong nhiều ngành khác nhau dưới sự hổ trợ của công nghệ thông tin.
Việc chuyển đổi tri thức nhân loại thành các hệ thống hay còn được gọi là biểu diễn tri thức vẫn
đang được thực hiện, những tri thức đó đã và đang được ứng dụng rộng rãi trong quá trình
phát triển của xã hội.
Cuộc cách mạng khoa học kỹ thuật hiện đại bắt đầu giữa những năm 40 thế kỉ 20. Những
phát minh trong khoa học - kĩ thuật cuối thế kỉ 19 đầu thế kỉ 20 là tiền đề của cuộc CMKH - KT
hiện đại. Cuộc cách mạng trong giai đoạn này chủ yếu về công nghệ với sự ra đời của máy tính
điện tử thế hệ mới được sử dụng trong mọi hoạt động kinh tế và đời sống xã hội, về vật liệu
mới, về những dạng năng lượng mới và công nghệ sinh học, về phát triển tin học.
Ngày nay, chúng ta có thể thấy được sự xuất hiện của từ “Robot” ngày càng nhiều, điểm
đặc biệt của Robot không phải là hình dáng bên ngoài, hay là những chuyển động của nó mà
chính là bộ não của Robot.
Bộ não của Robot là trung tâm điều khiển mọi hoạt động của nó như là: điều khiển hoạt
động, cảm xúc và khả năng đưa ra nhiều sự lựa chọn để giải quyết vấn đề. Làm thế nào từ
những khối sắt nặng nề, mà con người có thể chế tạo ra được những chú Robot linh hoạt và
thông minh, có những tri thức của con người kỳ diệu đến vậy. Ngày nay, việc thể hiện tri thức
của con người dưới dạng một ngôn ngữ hệ thống gọi là trí tuệ nhân tạo đã không còn xa lạ
nữa mà thậm chí nó đang đi đến sự phát triển vượt bậc. Nhìn những chú Robot phát triển theo
từng giai đoạn, thì chúng ta cũng biết khoa học kỹ thuật đang thăng hoa.
Khoa học kỹ thuật đã giúp cho chúng ta khám phá và chạm đến những điều kỳ diệu của
cuộc sống, để có được những phát minh khoa học, các nhà khoa học vĩ đại cũng trải nghiệm
qua rất nhiều phương pháp nghiên cứu để tiếp cận vấn đề, và từ đó họ đút kết và đưa ra được
nhiều định lý, định nghĩa, công trình khoa học tồn tại vĩnh viễn theo thời gian.
Trong bài tiểu luận này, tác giả đưa ra một ví dụng minh hoạ cho việc biểu diễn tri thức
trong công nghệ thông tin và ứng dụng minh hoạ cho quá trình biểu diễn tri thức đó. Cho dù
phạm vi ứng dụng của hệ thống này còn hạn chế, nhưng đây là một cơ sở để phát triển các hệ
thống chuyên gia.
Mạng ngữ nghĩa là một khái niệm tri thức được ứng dụng nhiều trong thực tế như các bài

toán về mạng giao thông, luồng việc ứng dụng mạng ngữ nghĩa trong các lĩnh vực của đời
sống xã hội không còn xa lạ với con người. Và trong bài tiểu luận này, tác giả muốn gửi đến
một ứng dụng khác, đó là ứng dụng mạng ngữ nghĩa để giải các bài toán phổ thông.
HVTH: CH1301054 – Võ Nhựt Thanh 3
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
II. Giới thiệu về tri thức
- “Tri thức là sức mạnh” của 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 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.
Tri thức (knowledge): là sự hiểu biết của người trong một phạm vi, lĩnh vực nào đó; được
xem xét theo các mục tiêu hay các vấn đề nhất định.
Ví dụ:
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. 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. 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.
Các dạng tri thức
Tri thức mô tả: các khái niệm, các đối tượng cơ bản.
Tri thức cấu trúc: các khái niệm cấu trúc, các quan hệ, các đối tượng phức hợp,
Tri thức thủ tục: các luật dẫn, các thủ tục xử lý, các chiến lược, …

Tri thức meta: tri thức về các dạng tri thức khác và cách sử dụng chúng.
Tri thức là một hệ thống phức tạp, đa dạng và trừu tượng bao gồm nhiều thành tố với
những mối liên hệ tác động qua lại như:
Các khái niệm (concepts), với những mối liên hệ cơ bản nhất định (relationships).
Các quan hệ (relations): Xem lại kiến thức về quan hệ ở góc độ toán học trong giáo trình
“Toán Rời Rạc”:
Định nghĩa quan hệ 2 ngôi.
Các tính chất về một quan hệ 2 ngôi R trên một tập X: phản xạ, đối xứng, phản xứng, bắc
cầu.
Quan hệ thứ tự.
Quan hệ tương đương.
Cách biểu diễn của một quan hệ 2 ngôi R trên tập X: Biểu diễn dựa trên “tập hợp”, biểu
diễn bằng ma trận, biểu đồ (đồ thị).
Các toán tử (operators), phép toán, các biểu thức hay công thức
Phép toán 2 ngôi T trên tập X là ánh xạ
T : XxX  X
HVTH: CH1301054 – Võ Nhựt Thanh 4
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
(a, b)  a T b ≡ T(a, b)
Ví dụ: T: NxN  N
(a, b)  a+b
Phép toán 1 ngôi S trên tập X là
S : X  X
Các tính chất thường được xem xét: giao hoán, kết hợp, phần tử trung hòa, phần tử
nghịch đảo, phần tử đối, phân phối (hay phân bố), …
Các hàm (functions).
Các luật (rules).
Sự kiện (facts).
Các thực thể hay đối tượng, một phần tử cụ thể (objects).
III. 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 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

HVTH: CH1301054 – Võ Nhựt Thanh 5
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
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.
IV. Một số mô hình biểu diễn tri thức cơ bản
1. Logic vị từ
Mô hình: (Predicates, Clauses)
- Predicates là tập gồm các vị từ, mỗi vị từ biểu diễn cho phát biểu nói về một tính chất
của đối tượng hay một quan hệ giữa các đối tượng. Mỗi vị từ xác định bởi tên vị từ và các kiểu
tham biến. Vídụ: gioi(x:sinhvien)Vídụ:vg(v:vector,P:plane).
- Clauses là tập gồm các biểu thức vị từ gồm 2 dạng fact và rule.
2. Hệ luật dẫn
a) 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ô 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.
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….
Đư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,…
HVTH: CH1301054 – Võ Nhựt Thanh 6
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
Đưa vào Rules = {
r1: {A, B} -> {C= pi – A – B}

}
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
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?
b) Suy diễn tiến:
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
HVTH: CH1301054 – Võ Nhựt Thanh 7
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
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
c) 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
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
d) 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
HVTH: CH1301054 – Võ Nhựt Thanh 8

Biểu diễn tri thức và Ứng dụng giải bài toán tam giá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.
Ưu và khuyết điểm của hệ luật dẫn:
e) Ư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.
f) 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.
3. Biểu diễn tri thức bằng Frame
a) Khái niệm
Frame là một cấu trúc dữ liệu chứa đựng tất cả những tri thức liên quan đến một đối
tượng cụ thể nào đó. Frames có liên hệ chặt chẽ đến khái niệm hướng đối tượng (thực ra
frame là nguồn gốc của lập trình hướng đối tượng). Ngược lại với các phương pháp biểu diễn
tri thức đã được đề cập đến, frame "đóng gói" toàn bộ một đối tượng, tình huống hoặc cả một
vấn đề phức tạp thành một thực thể duy nhất có cấu trúc. Một frame bao hàm trong nó một khối
lượng tương đối lớn tri thức về một đối tượng, sự kiện, vị trí, tình huống hoặc những yếu tố

khác. Do đó, frame có thể giúp ta mô tả khá chi tiết một đối tượng.
Dưới một khía cạnh nào đó, người ta có thể xem phương pháp biểu diễn tri thức bằng
frame chính là nguồn gốc của ngôn ngữ lập trình hướng đối tượng. Ý tưởng của phương pháp
này là "thay vì bắt người dùng sử dụng các công cụ phụ như dao mở để đồ hộp, ngày nay các
hãng sản xuất đồ hộp thường gắn kèm các nắp mở đồ hộp ngay bên trên vỏ lon. Như vậy,
người dùng sẽ không bao giờ phải lo lắng đến việc tìm một thiết bị để mở đồ hộp nữa!". Cũng
vậy, ý tưởng chính của frame (hay của phương pháp lập trình hướng đối tượng) là khi biểu diễn
một tri thức, ta sẽ "gắn kèm" những thao tác thường gặp trên tri thức này. Chẳng hạn như khi
mô tả khái niệm về hình chữ nhật, ta sẽ gắn kèm cách tính chu vi, diện tích.
Frame thường được dùng để biểu diễn những tri thức "chuẩn" hoặc những tri thức được
xây dựng dựa trên những kinh nghiệm hoặc các đặc điểm đã được hiểu biết cặn kẽ. Bộ não
của con người chúng ta vẫn luôn "lưu trữ" rất nhiều các tri thức chung mà khi cần, chúng ta có
HVTH: CH1301054 – Võ Nhựt Thanh 9
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
thể "lấy ra" để vận dụng nó trong những vấn đề cần phải giải quyết. Frame là một công cụ thích
hợp để biểu diễn những kiểu tri thức này.
Frame : XE HƠI
Thuộc lớp : phương tiện vận chuyển.
Tên nhà sản xuất : Audi
Quốc gia của nhà sản xuất : Đức
Model : 5000 Turbo
Loại xe : Sedan
Trọng lượng : 3300lb
Số lượng cửa : 4 (default)
Hộp số : 3 số tự động
Số lượng bánh : 4 (default)
Máy (tham chiếu đến frame Máy)
Kiểu : In-line, overhead cam
Số xy-lanh : 5
Khả năng tăng tốc

0-60 : 10.4 giây
¼ dặm : 17.1 giây, 85 mph.

Frame MÁY
Xy-lanh : 3.19 inch
Tỷ lệ nén : 3.4 inche
Xăng : TurboCharger
Mã lực : 140 hp
Cấu trúc một Frame xe hơi
b) Cấu trúc của Frame
Mỗi một frame mô tả một đối tượng (object). Một frame bao gồm 2 thành phần cơ bản là
slot và facet. Một slot là một thuộc tính đặc tả đối tượng được biểu diễn bởi frame. Ví dụ : trong
frame mô tả xe hơi, có hai slot là trọng lượng và loại máy.
Mỗi slot có thể chứa một hoặc nhiều facet. Các facet (đôi lúc được gọi là slot "con") đặc tả
một số thông tin hoặc thủ tục liên quan đến thuộc tính được mô tả bởi slot. Facet có nhiều loại
khác nhau, sau đây là một số facet thường gặp:
- Value (giá trị) : cho biết giá trị của thuộc tính đó (như xanh, đỏ, tím vàng nếu slot là
màu xe).
- Default (giá trị mặc định) : hệ thống sẽ tự động sử dụng giá trị trong facet này nếu slot
là rỗng (nghĩa là chẳng có đặc tả nào!). Chẳng hạn trong frame về xe, xét slot về số
lượng bánh. Slot này sẽ có giá trị 4. Nghĩa là, mặc định một chiếc xe hơi sẽ có 4 bánh!
- Range (miền giá trị) : (tương tự như kiểu biến), cho biết giá trị slot có thể nhận những
loại giá trị gì (như số nguyên, số thực, chữ cái, )
- If added: mô tả một hành động sẽ được thi hành khi một giá trị trong slot được thêm
vào (hoặc được hiệu chỉnh). Thủ tục thường được viết dưới dạng một script.
- If needed : được sử dụng khi slot không có giá trị nào. Facet mô tả một hàm để tính ra
giá trị của slot.
HVTH: CH1301054 – Võ Nhựt Thanh 10
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
c) Tính kế thừa

Trong thực tế, một hệ thống trí tuệ nhân tạo thường sử dụng nhiều frame được liên kết
với nhau theo một cách nào đó. Một trong những điểm thú vị của frame là tính phân cấp. Đặc
tính này cho phép kế thừa các tính chất giữa các frame.
Hình sau đây cho thấy cấu trúc phân cấp của các loại hình hình học cơ bản. Gốc của cây
ở trên cùng tương ứng với mức độ trừu tượng cao nhất. Các frame nằm ở dưới cùng (không có
frame con nào) gọi là lá. Những frame nằm ở mức thấp hơn có thể thừa kế tất cả những tính
chất của những frame cao hơn.
Các frame cha sẽ cung cấp những mô tả tổng quát về thực thể. Frame có cấp càng cao thì mức
độ tổng quát càng cao. Thông thường, frame cha sẽ bao gồm các định nghĩa của các thuộc
tính. Còn các frame con sẽ chứa đựng giá trị thực sự của các thuộc tính này.
Quan hệ giữa các đối tượng hình học phẳng
4. Biểu diễn tri thức bằng Script
Script là một cách biểu diễn tri thức tương tự như frame nhưng thay vì đặc tả một đối
tượng, nó mô tả một chuỗi các sự kiện. Để mô tả chuỗi sự kiện, script sử dụng một dãy các
slot chứa thông tin về các con người, đối tượng và hành động liên quan đến sự kiện đó.
Tuy cấu trúc của các script là rất khác nhau tùy theo bài toán, nhưng nhìn chung một
script thường bao gồm các thành phần sau :
- Điều kiện vào (entry condition): mô tả những tình huống hoặc điều kiện cần
được thỏa mãn trước khi các sự kiện trong script có thể diễn ra.
- Role (đóng vai): là những con người có liên quan trong script.
HVTH: CH1301054 – Võ Nhựt Thanh 11
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
- Prop (tác tố): là tất cả những đối tượng được sử dụng trong các chuỗi sự kiện
sẽ diễn ra.
- Scene(Tình huống): là chuỗi sự kiện thực sự diễn ra.
- Result (Kết quả): trạng thái của các Role sau khi script đã thi hành xong.
- Track (phiên bản): mô tả một biến thể (hoặc trường hợp đặc biệt) có thể xảy ra
trong đoạn script.
Script rất hữu dụng trong việc dự đoán điều gì sẽ xảy đến trong những tình huống xác
định. Thậm chí trong những tình huống chưa diễn ra, script còn cho phép máy tính dự đoán

được việc gì sẽ xảy ra và xảy ra đối với ai và vào thời điểm nào. Nếu máy tính kích hoạt một
script, người dùng có thể đặt câu hỏi và hệ thống có thể suy ra được những câu trả lời chính
xác mà không cần người dùng cung cấp thêm nhiều thông tin (trong một số trường hợp có thể
không cần thêm thông tin). Do đó, cũng giống như frame, script là một dạng biểu diễn tri thức
tương đối hữu dụng vì nó cho phép ta mô tả chính xác những tình huống "chuẩn" mà con
người vẫn thực hiện mỗi ngày hoặc đã nắm bắt chính xác.
5. Mạng ngữ nghĩa
a) Đặc điểm
Mạng ngữ nghĩa là một phương pháp biểu diễn tri thức, được xây dựng dựa trên phương
pháp đồ thị để biểu diễn các mối liên hệ giữa các tri thức tổng quát, các khái niệm, các sự
việc
Do mạng ngữ nghĩa là một loại đồ thị cho nên ta có thể dùng những thuật toán của đồ thị
trên mạng ngữ nghĩa như thuật toán tìm liên thông, tìm đường đi ngắn nhất,… để thực hiện các
cơ chế suy luận. Điểm đặc biệt của mạng ngữ nghĩa so với đồ thị thông thường chính là việc
gán một ý nghĩa cho các cung. Cung nối giữa hai đỉnh cho biết giữa hai khái niệm tương ứng
có sự liên hệ như thế nào. Việc gán ngữ nghĩa vào các cung của đồ thị đã giúp giảm bớt được
số lượng đồ thị cần phải dùng để biễu diễn các mối liên hệ giữa các khái niệm.
Một đặc điểm quan trọng của mạng ngữ nghĩa là tính kế thừa. Chính đặc tính kế thừa của
mạng ngữ nghĩa đã cho phép ta có thể thực hiện được rất nhiều phép suy diễn từ những thông
tin sẵn có trên mạng.
Cơ chế suy diễn áp dụng trong mạng ngữ nghĩa là thực hiện theo thuật toán loang truyền
đơn giản theo hai bước sau:
Kích hoạt các đỉnh đã cho ban đầu (các đỉnh đã có giá trị)
Nếu một đỉnh chưa xác định nối với n đỉnh khác (thông qua những mối liên hệ). Và trong
đó có n-1 đỉnh đã xác định thì đỉnh đó cũng được xác định. Lặp lại bước này cho đến khi xác
định được tất cả các đỉnh.
b) Ưu điểm:
Mạng ngữ nghĩa rất linh động, có thể thêm vào mạng các đỉnh hoặc cung mới để bổ sung
các tri thức cần thiết
Mạng ngữ nghĩa có tính trực quan cao nên rất dễ hiểu

HVTH: CH1301054 – Võ Nhựt Thanh 12
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
Mạng ngữ nghĩa cho phép các đỉnh có thể kế thừa các tính chất từ các đỉnh khác thông
qua các cung loại “là’ từ đó có thể tạo ra các liên kết “ngầm” giữa những đỉnh không có liên kết
trực tiếp với nhau.
Mạng ngữ nghĩa hoạt động khá tự nhiên theo cách thức con người ghi nhận thông tin.
c) Nhược điểm:
Vẫn chưa có một chuẩn nào quy định các giới hạn cho các đỉnh và cung của mạng. Điều
đó đồng nghĩa với người dùng có thể gắn bất kỳ khái niệm nào cho đỉnh hoặc cung.
Tính thừa kế trong mạng có thể dẫn đến khả năng mâu thuẩn tri thức
Cách biểu diễn tri thức
Khi biểu diễn một mạng ngữ nghĩa, các đỉnh của đồ thị là các đối tượng (khái niệm, tri
thức, sự việc) nào đó, còn các cung giữa các đỉnh thể hiện các mối liên hệ giữa các đối tượng
(khái niệm, tri thức, sự việc) này.
Hình 1 Ví dụ về mạng ngữ nghĩa tiêu biểu
Trong ví dụ trên, các yếu tố như “Xe máy, Xe, Động cơ, Xăng, Đường” được xem là các
đối tượng của mạng ngữ nghĩa. Trong khi đó các yếu tố “Là, Di chuyển trên, chạy bằng hay có”
là các mối liên hệ giữa các đối tượng.
Xét ví dụ bên dưới,
HVTH: CH1301054 – Võ Nhựt Thanh 13
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
HÌNH 2 VÍ DỤ VỀ MẠNG NGỮ NGHĨA KẾ THỪA
Trong mạng ngữ nghĩa trên ta có thể thấy được các mối quan hệ như sau:
Hình vuông là hình chữ nhật + là tứ giác + có 4 góc. Từ đó ta có thể suy luận được là
hình vuông có 4 góc.
Hình chữ nhật là hình bình hành + hình bình hành có hai cặp cạnh bằng nhau. Từ đó có
thể suy ra hình chữ nhật có hai cặp cạnh bằng nhau.
Dù không có đường liên hệ trực tiếp từ đối tượng “Hình vuông” đến đối tượng “4 góc”
nhưng thông qua tính chất kế thừa ta có thể xác định được là đối tượng “Hìnhvuông” có liên hệ
“có” với đối tượng “4 góc”.

Tương tự với trường hợp của đối tượng “Hình chữ nhật” và đối tượng “Hai cặp cạnh
bằng nhau”.
Tuy mạng ngữ nghĩa là một kiểu biểu diễn trực quan đối với con người nhưng khi đưa
vào máy tính, các đối tượng và mối liên hệ giữa chúng thường được biểu diễn dưới dạng
những phát biểu động từ (như vị từ). Hơn nữa, các thao tác tìm kiếm trên mạng ngữ nghĩa
thường khó khăn (đặc biệt đối với những mạng có kích thước lớn). Do đó, mô hình mạng ngữ
nghĩa được dùng chủ yếu để phân tích vấn đề. Sau đó, nó sẽ được chuyển đổi sang dạng luật
hoặc frame để thi hành hoặc mạng ngữ nghĩa sẽ được dùng kết hợp với một số phương pháp
biểu diễn khác.
V. Mạng suy diễn tính toán:
1. Khá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
HVTH: CH1301054 – Võ Nhựt Thanh 14
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
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.
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
+ 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
}
6. Các quan hệ
Cho M = {x1,x2, ,xm} 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 D1,D2, ,Dm. Đối với mỗi quan hệ R ⊆ D1xD2x xDm trên các tập hợp
D1,D2, ,Dm ta nói rằng quan hệ nầy liên kết các biến x1,x2, ,xm, và ký hiệu là R(x1,x2, ,xm)
hay vắn tắt là R(x) (ký hiệu x dùng để chỉ bộ biến < x1,x2, ,xm >). Ta có thể thấy rằng quan hệ
R(x) có thể được biểu diễn bởi một ánh xạ fR,u,v với u ∪ v = x, và ta viết : fR,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 < x1,x2, ,xm >). 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ị: độ)
HVTH: CH1301054 – Võ Nhựt Thanh 15
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
Quan hệ 3 góc trong tam giác ABC
7. 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).
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 1
Cho một mạng tính toán K = (M, F)
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.
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.
HVTH: CH1301054 – Võ Nhựt Thanh 16
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
Định nghĩa 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.
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
Bài toán H  G giải được.
H
⊇ G
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;
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;
HVTH: CH1301054 – Võ Nhựt Thanh 17
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
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 = [f1, f2, , fk] của bài toán
H  G trên mạng tính toán (M, F).
D ← {f1, f2, , fm};
for i = m downto 1 do
if D \ {fi} là một lời giải then
D ← D \ {fi};
D là một lời giải tốt.
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
Bài toán H  G giải được.
H
⊇ G
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;
HVTH: CH1301054 – Võ Nhựt Thanh 18
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
B3: Tính ra S bằng cách áp dụng f9;
10. Ưu và khuyết điểm của mạng tính toán:
a) Ư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.
b) 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.
VI. Mạng các đối tượng tính toán:
1. 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:
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).
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.
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
HVTH: CH1301054 – Võ Nhựt Thanh 19
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
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(Oi), 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.
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
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.
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
HVTH: CH1301054 – Võ Nhựt Thanh 20
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
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
11. 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 }
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);
HVTH: CH1301054 – Võ Nhựt Thanh 21
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
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};
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
A0
5
f
 →
A1
1
O
 →
A2
1
f
 →
A3
2
f
 →
A4
3
f
 →
A5
4

f
 →
A6
2
O
 →
A7
Trong đó :
A0 = A = {O1.a , O1.A},
A1 = {O1.a , O1.A, O2.A},
A2 = { O1.a , O1.A, O2.A, O1.b, O1.c },
HVTH: CH1301054 – Võ Nhựt Thanh 22
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
A3 = {O1.a , O1.A, O2.A, O1.b, O1.c, O3.a},
A4 = {O1.a , O1.A, O2.A, O1.b, O1.c, O3.a, O4.a},
A5 = {O1.a , O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b},
A6 = {O1.a , O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b, O2.c},
A7 = {O1.a , O1.A, O2.A, O1.b, O1.c, O3.a, O4.a, O2.b, O2.c, O2.a}.
Thuật toán 2: Tìm lời giải tốt nhất từ một lời giải S = [f1, f2, , fk] của bài toán
H  G trên mạng tính toán (M, F).
D ← {f1, f2, , fm};
for i = m downto 1 do
if D \ {fi} là một lời giải then
D ← D \ {fi};
D là một lời giải tốt.
12. Ư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.
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.
13. 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.
VII. Mô hình COKB:
1. 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 COKB (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
C là tập các đối tượng tính toán.
HVTH: CH1301054 – Võ Nhựt Thanh 23
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
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.
a) 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:
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).
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, }
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}, }
b) 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.
HVTH: CH1301054 – Võ Nhựt Thanh 24
Biểu diễn tri thức và Ứng dụng giải bài toán tam giác
Quan hệ phân cấp của lớp tam giác
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,
d) 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ó các toán tử trên các ma trận.
Mô hình COKB 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.
e) 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,
f) 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>”.
g) Các loại sự kiện trong mô hình COKB
Trong mô hình COKB 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ạ
HVTH: CH1301054 – Võ Nhựt Thanh 25

×