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

DÙNG MẠNG NGỮ NGHĨA ĐỂ BIỂU DIỄN TRI THỨC - ỨNG DỤNG GIẢI BÀI TOÁN TAM GIÁC VÀ HÌNH THANG

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 (687.82 KB, 24 trang )

Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
BÁO CÁO CHUYÊN ĐỀ
BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG
TÊN ĐỀ TÀI:
DÙNG MẠNG NGỮ NGHĨA ĐỂ BIỂU
DIỄN TRI THỨC - ỨNG DỤNG GIẢI
BÀI TOÁN TAM GIÁC VÀ HÌNH
THANG
GVHD: PGS. TS Đỗ Văn Nhơn
Học viên: Trịnh Duy Sâm
Mã số: CH1101035
Lớp: Cao học khóa 6
Bình Dương, Tháng 12 năm 2012
MỤC LỤC

MỤC LỤC 1
LỜI MỞ ĐẦU 2
ĐẶT VẤN ĐỀ 3
PHẦN I - TỔNG QUAN VỀ MẠNG NGỮ NGHĨA 4
PHẦN II – MẠNG NGỮ NGHĨA CHO BÀI TOÁN TAM GIÁC VÀ HÌNH THANG 7
PHẦN III – XÂY DỰNG ỨNG DỤNG MẠNG NGỮ NGHĨA VÀ HỆ LUẬT DẪN GIẢI
BÀI TOÁN TAM GIÁC VÀ HÌNH THANG 18
KẾT LUẬN 22
TÀI LIỆU THAM KHẢO 23
LỜI MỞ ĐẦU

Cùng với sự phát triển của con người và khoa học kỹ thuật, tri thức ngày càng
nhiều nên việc biểu diễn tri thức là một vấn đề vô cùng cần thiết và tất yếu. Biểu diễn
tri thức là một trong những công đoạn cực kỳ quan trọng trong quá trình xây dựng các
hệ thống thông tin sử dụng trí tuệ nhân tạo trên máy vi tính. Nó chính là nền tảng để đề


xuất cách mà tri thức được lưu trữ trên bộ nhớ hay trong cơ sở dữ liệu máy tính cũng
như các kỹ thuật và thuật toán để thao tác, xử lý tri thức đó phục vụ cho các mục tiêu
được đặt ra khi thiết kế hệ thống.
Mạng ngữ nghĩa là một trong những phương pháp biểu diễn tri thức có hiệu
quả, được áp dụng phổ biến trong nhiều hệ thống thông tin hiện đại. Trong bài báo cáo
này em đã trình bày sơ lược về lý thuyết mạng ngữ nghĩa và hệ luật dẫn. Và dùng
mạng ngữ nghĩa để giải bài toán tam giác và hình thang cũng sẽ được mô tả cụ thể.
Cùng với đó em có xây dựng ứng dụng thử nghiệm: kết hợp mạng ngữ nghĩa và hệ
luật dẫn để giải bài toán tam giác và hình thang. Chương trình được xây dựng sẽ giúp
cho người dùng có thể tính toán nhanh chóng các cạnh các góc cụ thể nào đó dựa trên
các luật – các công thức – tức là các tri thức đã có sẵn.
Em xin gửi lời chân thành cám ơn sâu sắc tới thầy PGS. TS Đỗ Văn Nhơn đã tận
tình giảng dậy cho chúng em trong suốt thời gian qua để chúng em có được những
kiến thức quý báu, những kinh nghiệm trong cuộc sống và những kinh nghiệm trong
học tập. Xin kính chúc thầy luôn luôn khỏe mạnh, hạnh phúc.
ĐẶT VẤN ĐỀ

Trong một vài năm gần đây, ngành công nghệ thông tin trên toàn thế giới đã phát
triển mạnh mẽ với một tốc độ rất nhanh. Song song với điều đó chúng ta cũng phải đối
mặt với một thách thức mới là sự bùng nổ về lượng thông tin. Đặc biệt, khi những ứng
dụng công nghệ thông tin ngày càng phát triển. Con người có nhu cầu đưa những tri
thức, những hiểu biết trong mọi lĩnh vực của đời sống vào máy tính để nó có thể giúp
con người nhận thức được và đưa ra hành động hợp lý. Muốn máy tính làm được
những việc như vậy, con người cần phải có phương pháp đưa tri thức vào máy tính gọi
là biểu diễn tri thức. Tri thức và suy diễn là hai thành phần trong bất kỳ một hệ dựa
trên tri thức nào. Phương pháp biểu diễn tri thức sẽ quyết định phương pháp suy diễn
tương ứng, nhưng ngược lại phương pháp suy diễn chỉ có thể phù hợp cho một phương
pháp biểu diễn tri thức nhất định. Tri thức là sự hiểu biết của con 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.
Có rất nhiều phương pháp để biểu diễn tri thức như biểu diễn tri thức sử dụng luật

dẫn xuất, biểu diễn tri thức sử dụng mạng ngữ nghĩa, biểu diễn tri thức bằng frame,
biểu diễn tri thức bằng script,…. Không một kỹ thuật riêng lẻ nào có thể giải quyết đầy
đủ cách tổ chức tri thức trên máy tính, mà để giải quyết vấn đề, ta chỉ chọn dạng biểu
diễn nào thích hợp.Xuất phát từ thực tế đó mà trong một vài năm gần đây các nhà
nguyên cứu và ứng dụng tin học phải nguyên cứu, tìm kiếm những phương pháp mới
để khai thác triệt để nhưng thông tin có trong cơ sở dữ liệu. Từ cuối những năm của
thập kỷ 1980 khái niệm phát hiện tri thức trong cơ sở dữ liệu lần đầu tiên được nói
đến, đây là quá trình phát hiện tri thức tiềm ẩn, không biết trước và hữu ích trong các
cơ sở dữ liệu lớn.
Trong lĩnh vực toán học, con người cũng cần có sự trợ giúp của máy tính để
giải rất nhiều bài toán từ đơn giản đến phức tạp. Một trong những phương pháp biểu
diễn tri thức để giải quyết bài toán trong lĩnh vực toán học đó là dùng mạng ngữ nghĩa
và hệ luật dẫn để có thể giải quyết các bài toán đó. Trong khuôn khổ của bài tiểu luận
này em sẽ trình bày cách dùng mạng ngữ nghĩa và hệ luật dẫn để giải các bài toán tam
giác và hình thang. Tiểu luận sẽ được chia làm 3 phần chính:
- Phần I Cơ sở lý thuyết về mạng ngữ nghĩa và hệ luật dẫn
- Phần II Bài toán tam giác và hình thang
- Phần III Chương trình demo
PHẦN I - TỔNG QUAN VỀ MẠNG NGỮ NGHĨA
1. Khái niệm cơ bản
Mạng ngữ nghĩa là một trong những phương pháp biểu diễn tri thức đơn giản và
dễ hiểu nhất để trình bày khá nhiều vấn đề. Phương pháp này biểu diễn tri thức dưới
dạng một đồ thị. Trong đó, các đỉnh là các đối tượng (khái niệm), còn các cung cho biết
mối quan hệ giữa các đối tượng (khái niệm) này.
Quan hệ là phần chính trong mạng ngữ nghĩa. Không có quan hệ, tri thức chỉ là
tập hợp các sự kiện không liên quan với nhau. Với quan hệ, tri thức trở thành một cấu
trúc nối liền với các tri thức khác có liên quan.
Có một cung nối giữa hai đối tượng a và đối tượng b, ký hiệu a→b nếu có một
quan hệ nào đó giữa hai đối tượng a, b.
Mạng ngữ nghĩa là một dạng đồ thị nên nó thừa hưởng được tất cả những mặt

mạnh của đồ thị. 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à gán một ý
nghĩa (có, làm, là, biết,…) cho các cung. Trong đồ thị tiêu chuẩn, việc có một cung nối
giữa hai đỉnh chỉ cho biết sự liên hệ giữa hai đỉnh đó và tất cả các cung trong đồ thị
biểu diễn cho cùng một loại liên hệ. Trong mạng ngữ nghĩa, cung nối giữa hai đỉnh
còn 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.
Ta có thể nới rộng mạng ngữ nghĩa bằng cách thêm các nút và nối chúng vào đồ
thị. Các nút mới ứng với các đối tượng bổ sung. Thông thường có thể nới rộng mạng
ngữ nghĩa theo 3 cách:
+ Thêm đối tượng tương tự
+ Thêm một đối tượng đặc biệt hơn
+ Thêm một đối tượng tổng quát hơn
Điểm đặc biệt của mạng ngữ nghĩa là tính kế thừa. Bởi vì ngay từ trong khái
niệm, mạng ngữ nghĩa đã hàm ý sự phân cấp (như các mối liên hệ “là”) nên có nhiều
đỉnh trong mạng mặc nhiên sẽ có những thuộc tính của những đỉnh khác.
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 sinh 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.
Có 2 loại quan hệ đặc biệt:
+ "a là b" nghĩa là đối tượng a thuộc vào tập đối tượng được biểu
diễn bởi khái niệm b hoặc tập các đối tượng biểu diễn bởi khái niệm a là tập con của
tập đối tượng biểu diễn khái niệm b (quan hệ is-a).
Ví dụ: Diêu Hồng →cá

Ngược lại với quan hệ "là" là quan hệ "bao gồm". Khi có <a là b> (hoặc "b bao gồm
a"), các thông tin cơ bản về các đối tượng được cho bởi b sẽ truyền lại cho a (nghĩa là
a được thừa hưởng những gì b có).
Ví dụ về mạng ngữ nghĩa:
Giữa các khái niệm chích chòe, chim, hót, cánh, tổ có một số mối quan hệ như
sau :
Chích chòe là một loài chim.
Chim biết hót
Chim có cánh
Chim sống trong tổ
Các khái niệm và mối quan hệ này sẽ được biểu diễn trực quan bằng một đồ thị
như sau
Hình 1. Khái niệm về mạng ngữ nghĩa
Như đã thấy trong hình 1, do mạng ngữ nghĩa là một loại đồ thị cho nên ta có
thể sử dụng tất cả những kỹ thuật mạnh mẽ đã được phát triển cho công cụ này. Điều
này có nghĩa là ta có thể áp dụng các 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, v.v… để 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 ta có
thể gán các ý nghĩa khác nhau (có, làm, là, biết, ) cho các cung. Trong đồ thị thông
thường, việc có một cung nối giữa hai đỉnh chỉ cho biết có sự liên hệ giữa
hai đỉnh đó và tất cả các cung trong đồ thị đều biểu diễn cho cùng một loại liên hệ.
Trong mạng ngữ nghĩa, cung nối giữa hai đỉnh còn 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. Chẳng hạn như trong ví dụ trên, nếu sử dụng đồ thị thông thường, ta phải
dùng đến 4 loại đồ thị cho 4 mối liên hệ : một đồ thị để biểu diễn mối liên hệ "là",
một đồ thị cho mối liên hệ "làm", một cho "biết" và một cho "có".
Một điểm khá thú vị của mạng ngữ nghĩa là tính kế thừa. Bởi vì ngay từ trong
khái niệm, mạng ngữ nghĩa đã hàm ý sự phân cấp (như các mối liên hệ "là") nên có
nhiều đỉnh trong mạng mặc nhiên sẽ có những thuộc tính của những đỉnh khác. Chẳng

hạn theo mạng ngữ nghĩa ở trên, ta có thể dễ dàng trả lời "có" cho câu hỏi : "Chích
chòe có làm tổ không?". Ta có thể khẳng định được điều này vì đỉnh "chích chòe" có
liên kết "là" với đỉnh "chim" và đỉnh "chim" lại liên kết "biết" với đỉnh "làm tổ" nên
suy ra đỉnh "chích chòe" cũng có liên kết loại "biết" với đỉnh "làm tổ". Đây là
kiểu "suy luận" bắt nguồn từ thuật toán "dầu loang" hay "tìm liên thông" trên đồ thị.
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 ngữ nghĩa đó.
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.
2. Ưu điểm và nhược điểm của mạng ngữ nghĩa
a. Ưu điểm
- Mạng ngữ nghĩa rất linh động, ta có thể dễ dàng 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 đễ hiểu.
- Mạng ngữ nghĩa cho phép các đỉnh có thể thừa kế, 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 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.
b. Nhược điểm
- Cho đến nay vẫn chưa có một chuẩn nào qui định các giới hạn cho các đỉnh và
cung của mạng. Nghĩa là có thể gán ghép bất kỳ khái niệm nào cho đỉnh hoặc cung.
- Tính thừa kế (vốn là một ưu điểm) trên mạng sẽ có thể dẫn đến nguy cơ mâu
thuẫn trên tri thức.
- Hầu như không thể biểu diễn các tri thức dạng thủ tục bằng mạng ngữ nghĩa vì

các khái niệm về thời gian về trình tự không được thể hiện tường minh trên mạng ngữ
nghĩa.
PHẦN II – MẠNG NGỮ NGHĨA CHO BÀI TOÁN TAM GIÁC VÀ HÌNH THANG
1. Bài toán tam giác
1.1 Mạng ngữ nghĩa cho bài toán tam giác thông thường
Bài toán tam giác được phát biểu tổng quát như sau : “cho trước một số yếu tố
đã biết và yêu cầu tìm các yếu tố chưa biết nào đó trong một tam giác”, ví dụ như "cho
3 cạnh của tam giác, tính chiều dài đường cao kẻ từ góc A", "cho góc A, B và cạnh
AC. Tính chiều dài trung tuyến AM", … Mỗi bài toán tam giác đơn lẻ như vậy không
phải là vấn đề quá khó khăn khi lập trình vì ta hoàn toàn có thể xác định các bước tính
toán, sau đó viết các hàm hoặc thủ tục để chuyển nó thành chương trình. Tuy vậy, số
lượng các bài toán đơn lẻ tương tự là rất lớn và việc lập trình cho từng bài với các yếu
tố cho trước và yếu tố cần tính toán khác nhau là điều không hợp lý. Do đó, yêu cầu
đặt ra là một chương trình tổng quát có thể tự động xử lý các yếu tố đầu vào khác nhau
để tính các yếu tố đầu ra cũng khác nhau tương ứng với mỗi lần chạy chương trình trên
cơ sở các công thức toán học đã biết. Một cấp độ cao hơn nữa là việc ghi lại quá trình
tính toán để hướng dẫn người sử dụng các bước giải một bài toán thực tế được nhập
vào.
Mạng ngữ nghĩa chính là công cụ hỗ trợ xây dựng mô hình xử lý cho yêu cầu
nêu trên một cách tương đối tốt, trực quan và đơn giản.
Theo thống kê, có khoảng hơn 20 yếu tố mô tả các thành phần khác nhau của
một tam giác (cạnh, góc, đường cao, trung tuyến, chu vi, diện tích v.v…) và khoảng
hơn 200 công thức xác định các mối liên quan giữa các yếu tố đó. Để mô tả chúng
bằng công cụ mạng ngữ nghĩa, ta cần sử dụng khoảng hơn 200 đỉnh để chứa các công
thức và khoảng hơn 20 đỉnh để chứa các yếu tố của tam giác. Các cung giữa một đỉnh
chứa một yếu tố và một đỉnh chứa công thức được thiết lập khi công thức có chứa đỉnh
đó. Mạng ngữ nghĩa rút gọn (gồm 8 yếu tố và 5 công thức) cho bài toán này có cấu
trúc như sau :
Hình 2. Mạng ngữ nghĩa cho bài toán tam giác
Đỉnh của đồ thị bao gồm hai loại :

+ Đỉnh chứa công thức (các đỉnh hình chữ nhật)
+ Đỉnh chứa yếu tố của tam giác (các đỉnh hình tròn)
Cung : chỉ nối từ đỉnh hình tròn đến đỉnh hình chữ nhật cho biết yếu tố nào của
tam giác xuất hiện trong công thức nào (không có trường hợp cung nối giữa hai đỉnh
hình tròn hoặc cung nối giữa hai đỉnh hình chữ nhật).
Phương pháp suy diễn được sử dụng ở đây cũng tương đối đơn giản. Trong một
công thức có chứa n yếu tố của tam giác, nếu đã biết giá trị của n-1 yếu tố thì sẽ
tính được giá trị của yếu tố còn lại. Chẳng hạn như trong công thức tổng 3 góc của tam
giác bằng 180
o
thì khi biết được hai góc, ta sẽ tính được góc còn lại. Nói cách khác, ta
thực hiện cơ chế suy diễn theo thuật toán “vết dầu loang” đơn giản theo các bước sau :
B1 : Kích hoạt những đỉnh hình tròn đã cho ban đầu (những yếu tố đã biết giá
trị)
B2 : Lặp lại bước này cho đến khi kích hoạt được đỉnh ứng với yếu tố cần tính
hoặc không thể kích hoạt được bất kỳ đỉnh nào nữa.
Duyệt qua tất cả các đỉnh hình chữ nhật. Nếu một đỉnh hình chữ nhật có cung
nối với n đỉnh hình tròn mà n-1 đỉnh hình tròn đã được kích hoạt thì kích hoạt đỉnh
hình tròn còn lại (tính giá trị đỉnh còn lại này thông qua công thức ở đỉnh hình chữ
nhật tương ứng).
Một số ví dụ minh họa cho phương pháp suy diễn “vết dầu loang” dựa trên
mạng ngữ nghĩa tam giác ở hình 2 :
1) Cho A = 45, C = 45, a = 5. Tìm S :
○ Dùng công thức (4), từ A và C suy ra B = 90.
○ Dùng công thức (1), từ A, B và a suy ra b = 7,07.
○ Dùng công thức (2), từ C, B và b suy ra c = 5.
○ Dùng công thức (3), từ a, b và c suy ra S = 12,5.
2) Cho C = 60, b = 8, c = 8. Tìm h
C


○ Dùng công thức (2), từ c, C và b suy ra B = 60.
○ Dùng công thức (4), từ B và C suy ra A = 60.
○ Dùng công thức (1), từ A, B và b suy ra a = 8.
○ Dùng công thức (3), từ a, b và c suy ra S = 27,71.
○ Dùng công thức (5), từ S và c suy ra h
C
= 6,93.
1.2 Ứng dụng hệ luật dẫn cho bài toán tam giác đặc biệt
a. Vấn đề về trường hợp tam giác đặc biệt
Trong bài toán tam giác, ta vẫn thường gặp các trường hợp tam giác đặc biệt
như tam giác cân, tam giác vuông, tam giác đều v.v… Những trường hợp đặc biệt này
thường là dữ liệu đầu vào và việc xử lý chúng bằng mạng ngữ nghĩa thường gặp một
số trở ngại.
Xét trường hợp “tam giác cân tại C”. Trường hợp đặc biệt này được xem như
tương đương với một cặp công thức “góc A = góc B và cạnh a = cạnh b”. Với mạng
ngữ nghĩa, ta có thể có 2 cách biểu diễn trường hợp đặc biệt này dùng đỉnh hoặc dùng
cung như sau :
+ Biểu diễn như một thực thể – công thức (dùng đỉnh) : ở đây, ta có 2 cách gán
trường hợp đặc biệt thành một hoặc hai đỉnh (công thức) trong ô vuông như hình vẽ
sau.
a) Biểu diễn bằng 1 công thức b) Biểu diễn bằng 2 công thức
Hình 3. Biểu diễn trường hợp đặc biệt như một thực thể
Với cách a), ta thấy rõ ràng là không phù hợp với phương pháp suy diễn do
công thức chứa 4 yếu tố nhưng không cần phải biết đủ 3 yếu tố mới suy ra được yếu tố
thứ 4 như các công thức thông thường khác. Còn với b), ta thấy một vấn đề bất cập là
phải dùng 2 công thức để biểu diễn cho cùng một trường hợp, và với trường hợp tam
giác đều thì cần đến 6 công thức như vậy. Hơn nữa trường hợp đặc biệt này có thể tồn
tại hoặc không tồn tại nên việc dùng một đỉnh biểu diễn tương đối không thích hợp vì
nếu điều kiện không tồn tại thì đỉnh tương ứng cũng không tồn tại gây xáo trộn mạng
ngữ nghĩa hoặc nếu có tồn tại thì sẽ gây ra khó khăn khi thực hiện cơ chế suy diễn đã

trình bày ở trên.
+ Biểu diễn như một quan hệ (dùng cung) :
Hình 4. Biểu diễn trường hợp đặc biệt như một quan hệ
Việc dùng một cung giữa hai đỉnh hình tròn là không phù hợp với cấu trúc ban
đầu ở trên (cung chỉ nối giữa một đỉnh hình tròn và một đỉnh hình chữ nhật). Hơn nữa,
cơ chế suy diễn không duyệt qua cung (chỉ duyệt qua các đỉnh hình chữ nhật để suy ra
các thực thể nằm trong hình tròn) và do đó sẽ không thể suy ra góc B khi đã có góc A
và ngược lại.
Để giải quyết vấn đề xử lý trường hợp tam giác đặc biệt, hệ luật dẫn được đề
xuất sử dụng trong bài thu hoạch này.
Sơ lược về hệ luật dẫn
Hệ luật dẫn, còn được gọi là hệ luật cấu trúc nếu – thì, là một phương pháp
biểu diễn tri thức được dùng rất phổ biến. Một số dạng luật nếu – thì thường gặp là :
1 Nếu điều kiện A thì kết luận B
2 Nếu trạng thái C thì hành động D
3 Nếu các điều kiện E
1
, E
2
,…,E
n
đúng thì kết luận F đúng
4 …
Hệ luật dẫn được sử dụng rộng rãi vì nó có một số đặc trưng quan trọng sau đây
:
Tính đơn thể : mỗi luật định nghĩa một phần tri thức nhỏ và độc lập.
Dễ bổ sung : có thể dễ dàng bổ sung các luật mới vào cơ sở tri thức độc lập với
các luật đã có.
Dễ điều chỉnh : có thể dễ dàng điều chỉnh các luật trong cơ sở tri thức độc lập
với các luật khác mà không gây ảnh hưởng lẫn nhau.

Trong suốt : hệ thống dựa trên hệ luật dẫn có khả năng giải thích các quyết
định và hành động của nó dựa trên suy luận.
b. Ứng dụng hệ luật dẫn cho bài toán tam giác đặc biệt
Như đã trình bày ở trên, luật dẫn có dạng “Nếu … thì …” và khi áp dụng cho
bài toán tam giác ta sẽ có các luật cho một số trường hợp đặc biết thường gặp sau đây :
+ Nếu “Tam giác cân tại C” thì “A = B và a = b”
(tương tự đối với trường hợp tam giác cân tại các đỉnh khác)
+ Nếu “Tam giác đều” thì “A=B=C=60
o
và a=b=c”

Để áp dụng các luật dẫn này vào bài toán tam giác, ta đưa chúng vào cơ chế suy
diễn độc lập so với mạng ngữ nghĩa và thực thi sau mỗi yếu tố được kích hoạt. Khi đó,
cơ chế suy diễn áp dụng cả mạng ngữ nghĩa và hệ luật dẫn được điều chỉnh lại cụ thể
như sau :
B1 :
- Kích hoạt những đỉnh hình tròn đã cho ban đầu (những yếu tố đã biết giá trị)
- Duyệt hệ luật dẫn (nếu có), kích hoạt các yếu tố phù hợp với mỗi luật có trong
hệ.
B2 :
Lặp lại bước này cho đến khi kích hoạt được tất cả những đỉnh ứng với những
yếu tố cần tính hoặc không thể kích hoạt được bất kỳ đỉnh nào nữa.
- Nếu một đỉnh hình chữ nhật có cung nối với n đỉnh hình tròn mà n-1 đỉnh hình
tròn đã được kích hoạt thì kích hoạt đỉnh hình tròn còn lại (tính giá trị đỉnh còn lại
này thông qua công thức ở đỉnh hình chữ nhật).
- Duyệt hệ luật dẫn (nếu có), kích hoạt các yếu tố phù hợp với mỗi luật có trong
hệ.
Với phương pháp suy diễn này, hệ luật dẫn được xét độc lập so với mạng ngữ
nghĩa và việc có tồn tại hệ luật (tồn tại trường hợp tam giác đặc biệt) hay không sẽ
không ảnh hưởng đến suy diễn trên mạng ngữ nghĩa. Các mục b trong cả hai bước sẽ

chỉ thực thi khi có ít nhất một luật dẫn (một trường hợp tam giác đặc biệt nào đó),
trong trường hợp ngược lại khi tam giác là tam giác bình thường (không có luật dẫn)
thì các bước b được bỏ qua và mạng ngữ nghĩa vẫn suy diễn bình thường như đã trình
bày ở phần phía trên.
Xem lại 2 ví dụ ở cuối phần 2 của mục I phía trên, có thể dễ dàng thấy rằng ví
dụ thứ nhất là một tam giác cân tại B còn ví dụ thứ hai là một tam giác đều. Đề bài
toán thực tế thường cho ở dạng :
1. Cho a = 5, A = 45 và tam giác ABC cân tại B (thay vì cho tường mình là góc
C cũng bằng 45). Tìm S.
2. Cho cạnh b = 8 và tam giác ABC là tam giác đều (thay vì cho b = c = 8 và
góc C = 60). Tìm h
C
.
Phương pháp suy diễn kết hợp mạng ngữ nghĩa và hệ luật dẫn để xử lý bài toán
tam giác có điều kiện đặc biệt áp dụng cho 2 ví dụ này như sau :
1) Cho a = 5, A = 45 và tam giác ABC cân tại B. Tìm S :
○ Do tam giác cân tại B (dùng luật dẫn), suy ra C = 45 và c = 5.
○ Dùng công thức (4), từ A và C suy ra B = 90.
○ Dùng công thức (1), từ A, B và a suy ra b = 7,07.
○ Dùng công thức (3), từ a, b và c suy ra S = 12,5.
2) Cho cạnh b = 8 và tam giác ABC đều. Tìm h
C
.
○ Do tam giác đều (dùng luật dẫn), suy ra A = B = C = 60.
○ Do tam giác đều (dùng luật dẫn), suy ra a = c = 8.
○ Dùng công thức (3), từ a, b và c suy ra S = 27,71.
○ Dùng công thức (5), từ S và c suy ra h
C
= 6,93.
2. Bài toán hình thang

2.1. Cấu trúc mạng ngữ nghĩa
Mạng ngữ nghĩa cho bài toán trong hình thang có cấu trúc:
Đỉnh của đồ thị bao gồm 2 loại:
- Đỉnh chứa công thức (ký hiệu bằng hình chữ nhật)
- Đỉnh chứa yếu tố của hình thang (ký hiệu bằng hình tròn)
Cung: chỉ nối từ đỉnh hình tròn đến đỉnh hình chữ nhật cho biết yếu tố hình
thang xuất hiện trong công thức nào (không có trường hợp cung nối giữa hai
đỉnh tròn hoặc cung nối giữa hai đỉnh hình chữ nhật).
2.2. Giải thuật
Sử dụng cơ chế lan truyền trên mạng ngữ nghĩa:
B1 : Kích hoạt những đỉnh hình tròn đã cho ban đầu (những yếu tố đã có
giá trị)
B2 : Lặp lại bước sau cho đến khi kích hoạt được tất cả những đỉnh ứng
với những yếu tố cần tính hoặc không thể kích hoạt được bất kỳ đỉnh nào
nữa.
Nếu một đỉnh hình chữ nhật có cung nối với n đỉnh hình tròn mà n-
1 đỉnh hình tròn đãđược kích hoạt thì kích hoạt đỉnh hình tròn còn lại (và
tính giá trị đỉnh còn lại này thông qua công thức ở đỉnh hình chữ nhật).
2.3. Về mặt chương trình
Ta có thể cài đặt mạng ngữ nghĩa để giải bài toán hình thang bằng một
mảng 2 chiều A trong đó:
Cột: Ứng với công thức. Mỗi cột ứng với một công thức của hình thang
khác nhau (hình chữ nhật).
Dòng: ứng với yếu tố hình thang. Mỗi dòng ứng với một yếu tố hình
thang khác nhau (đỉnh hình tròn).
Phần tử A[i, j] = -1 nghĩa là trong công thức ứng với cột j có yếu tố của
hình thang ứng với cột i. Ngược lại A[i,j] = 0.
Để thực hiện thao tác "kích hoạt" một đỉnh hình tròn, ta đặt giá trị của
toàn dòng ứng với yếu tố hình thang bằng 1.
Để kiểm tra xem một công thức đã có đủ n-1 yếu tố hay chưa (nghĩa là

kiểm tra điều kiện "đỉnh hình chữ nhật có cung nối với n đỉnh hình tròn mà
n-1 đỉnh hình tròn đã được kích hoạt"), ta chỉ việc lấy hiệu giữa tổng số ô
có giá trị bằng 1 và tổng số ô có giá trị -1 trên cột ứng với công thức cần
kiểm tra. Nếu kết quả bằng n, thì công thức đã có đủ n-1 yếu tố.
2.4. Ví dụ
Giả sử ta có hình thang:
Hình 5 Hình Thang
Mạng ngữ nghĩa để giải bài toán hình thang như sau:
Hình 6 Mạng ngữ nghĩa cho bài toán Hình thang
Áp dụng: cho 2 cạnh bên a=c=25cm, đáy nhỏ b=15cm, góc
β
=120
o
. Tính
Diện tích của hình thang?
o Bắt đầu đỉnh a, c, b,
β
của đồ thị được kích hoạt
o Công thức (3) được kích hoạt (vì có
β
được kích hoạt). Từ công thức
(3) ta tính được góc α. Đỉnh α được kích hoạt.
o Công thức (1) được kích hoạt (vì có a và α được kích hoạt). Từ công
thức (1) tính được chiều cao h. Đỉnh h được kích hoạt.
o Công thức (2) được kích hoạt (vì có c và h được kích hoạt). Từ công
thức (2) tính được góc
δ
. Đỉnh
δ
được kích hoạt.

o Công thức (6) được kích hoạt (vì có a, b, c, α và
δ
được kích hoạt).
Từ công thức (6) tính được đáy lớn d Đỉnh d được kích hoạt.
o Công thức (8) được kích hoạt (vì có b, d và h được kích hoạt). Từ
công thức (8) tính được diện tích S. Đỉnh S được kích hoạt. Kết thúc.
Mảng biểu diễn mạng ngữ nghĩa ban đầu:
(1) (2) (3) (4) (5) (6) (7) (8)
α
-1 0 -1 0 -1 -1 0 0
β
0 0 -1 0 -1 0 0 0
γ
0 0 0 -1 -1 0 0 0
δ
0 -1 0 -1 -1 -1 0 0
a -1 0 0 0 0 -1 -1 0
b 0 0 0 0 0 -1 -1 -1
c 0 -1 0 0 0 -1 -1 0
d 0 0 0 0 0 -1 -1 -1
h -1 -1 0 0 0 0 0 -1
P 0 0 0 0 0 0 -1 0
S 0 0 0 0 0 0 0 -1
Khởi đầu đỉnh a, c, b,
β
của đồ thị được kích hoạt.
(1) (2) (3) (4) (5) (6) (7) (8)
α
-1 0 -1 0 -1 -1 0 0
β

0 0 1 0 1 0 0 0
γ
0 0 0 -1 -1 0 0 0
δ
0 -1 0 -1 -1 -1 0 0
a 1 0 0 0 0 1 1 0
b 0 0 0 0 0 1 1 1
c 0 1 0 0 0 1 1 0
d 0 0 0 0 0 -1 -1 -1
h -1 -1 0 0 0 0 0 -1
P 0 0 0 0 0 0 -1 0
S 0 0 0 0 0 0 0 -1
Trên cột (3), hiệu (2-1)=1 nên dòng α được kích hoạt.
(1) (2) (3) (4) (5) (6) (7) (8)
α
1 0 1 0 1 1 0 0
β
0 0 1 0 1 0 0 0
γ
0 0 0 -1 -1 0 0 0
δ
0 -1 0 -1 -1 -1 0 0
a 1 0 0 0 0 1 1 0
b 0 0 0 0 0 1 1 1
c 0 1 0 0 0 1 1 0
d 0 0 0 0 0 -1 -1 -1
h -1 -1 0 0 0 0 0 -1
P 0 0 0 0 0 0 -1 0
S 0 0 0 0 0 0 0 -1
Trên Cột (1), hiệu (3-(1+1))=1 nên dòng h được kích hoạt.

(1) (2) (3) (4) (5) (6) (7) (8)
α
1 0 1 0 1 1 0 0
β
0 0 1 0 1 0 0 0
γ
0 0 0 -1 -1 0 0 0
δ
0 -1 0 -1 -1 -1 0 0
a 1 0 0 0 0 1 1 0
b 0 0 0 0 0 1 1 1
c 0 1 0 0 0 1 1 0
d 0 0 0 0 0 -1 -1 -1
h 1 1 0 0 0 0 0 1
P 0 0 0 0 0 0 -1 0
S 0 0 0 0 0 0 0 -1
Trên cột (2), hiệu (3-(1+1))=1 nên dòng δ được kích hoạt.
(1) (2) (3) (4) (5) (6) (7) (8)
α
1 0 1 0 1 1 0 0
β
0 0 1 0 1 0 0 0
γ
0 0 0 -1 -1 0 0 0
δ
0 1 0 1 1 1 0 0
a 1 0 0 0 0 1 1 0
b 0 0 0 0 0 1 1 1
c 0 1 0 0 0 1 1 0
d 0 0 0 0 0 -1 -1 -1

h 1 1 0 0 0 0 0 1
P 0 0 0 0 0 0 -1 0
S 0 0 0 0 0 0 0 -1
Trên cột (6), hiệu (6-(1+1+1+1+1))=1 nên dòng d được kích hoạt
(1) (2) (3) (4) (5) (6) (7) (8)
α
1 0 1 0 1 1 0 0
β
0 0 1 0 1 0 0 0
γ
0 0 0 -1 -1 0 0 0
δ
0 1 0 1 1 1 0 0
a 1 0 0 0 0 1 1 0
b 0 0 0 0 0 1 1 1
c 0 1 0 0 0 1 1 0
d 0 0 0 0 0 1 1 1
h 1 1 0 0 0 0 0 1
P 0 0 0 0 0 0 -1 0
S 0 0 0 0 0 0 0 -1
Trên cột (8), hiệu (4-(1+1+1))=1 nên dòng S được kích hoạt.
PHẦN III – XÂY DỰNG ỨNG DỤNG MẠNG NGỮ NGHĨA VÀ HỆ LUẬT
DẪN GIẢI BÀI TOÁN TAM GIÁC VÀ HÌNH THANG
1. Giới thiệu
a. Mục đích của chương trình
- Ứng dụng này được xây dựng nhằm giúp đỡ cho con người trong việc tính
toán các góc cạnh, chiều cao, chu vi, diện tích của hình tam giác và hình
thang một cách hết sức nhanh chóng và chính xác. Người xử dụng chỉ cần
nhập các dữ liệu đã có của tam giác hoặc hình thang đó, sau đó lựa chọn các
thông số cần tính toán và bấm nút là chương trình sẽ làm việc và xuất ra kết

quả.
Ví dụ:
o Nếu bài toán tam giác có các dữ liệu như: độ dài cạnh a, độ dài cạnh b,
góc α, góc β, yêu cầu tính cạnh c, tính diện tích….
Kết quả:
Chương trình sẽ xuất ra kết quả ở chỗ màu đỏ cho người dùng rất dễ
nhìn thấy kết quả đó.
b. Môi trường cài đặt
- Phần mềm được xây dựng trên môi trường Visual Studio 2010. Với ngôn
ngữ lập trình C#.
Hình 7: Giao diện chương trình
2. Hướng dẫn chung
Khi chạy chương trình người dùng có thể xem phần hướng dẫn ở menu Trợ giúp
Hướng dẫn
- Bước 1:
- Tại đây người dùng có thể lựa chọn một trong hai trường hợp là:
- Chọn bài toán giải tam giác, hoặc chọn bài toán giải hình thang.
- Bước 2: Giải bài toán tam giác:
Hình 8: Giao diện bài toán giải tam giác
B2.1: Tại đây bạn nhập các thông tin đã có của tam giác ví dụ như cạnh a, cạnh
b, chiều cao h, các góc α β
B2.2: Sau khi nhập xong các dữ liệu rồi bạn bấm chuột để chọn giá trị cần tính
cho bài toán.
B2.3: Sau khi đã xuất kết quả rồi bạn có thể bấm nút làm bài khác, hoặc thoát,
hoặc về trang chủ.
Bước 2: . Chọn giải bài toán hình thang
Hình 9: Giao diện Giải bài toán hình thang
B3.1: Chọn nhập các thông tin đã có cho bài toán, như diện tích, chu vi, đáy
lớn, đáy nhỏ, chiều cao…
B3.2: Sau khi chọn nhập các thông tin đã có thì bấm để chọn giá trị cần

tính, tiếp theo bấm nút bắt đầu tính.
B3.3: Kết quả sẽ hiện thị ra và có màu đỏ để dễ phân biệt, sau đó bạn có
thể bấm làm bài khác để tiếp tục các bài toán mới, hoặc bấm xem giới
thiệu, xem hướng dẫn hoặc thoát chương trình.
Mọi thắc mắc bạn có thể gọi số 0979832234 hoặc email:
KẾT LUẬN

Vấn đề biểu diễn tri thức đóng vai trò quan trọng trong thiết kế và xây dựng
một hệ cơ sở tri thức và một hệ giải bài toán thông minh. Phương pháp biểu diễn
tri thức thích hợp sẽ tạo nên một hệ thống mạnh. Các phương pháp biểu diễn tri
thức đều có những ưu điểm nhất định trong việc biểu diễn từng dạng tri thức.
Không một kỹ thuật riêng lẻ nào có thể biểu diễn đầy đủ các khía cạnh của tri
thức mà chỉ biểu diễn được một phần của tri thức đa dạng và chưa hướng tới
một mô hình tri thức bao hàm nhiều dạng thông tin và nhiều dạng sự kiện khác
nhau. Do vậy, cần có sự kết hợp của các phương pháp biểu diễn khác nhau trong
thiết kế để xây dựng một cơ sở tri thức cho một hệ giải toán thông minh, thiết kế
một tác nhân thông minh, để máy tính có thể sử dụng được tri thức, có thể xử lý
được tri thức, dưới dạng thuận tiện cho máy tính giúp thu thập được thông tin,
dữ liệu cùng với những tri thức để ta có được những quyết định phán đoán trong
mọi lĩnh vực.
Xu hướng phát triển của phần mềm trong tương lai sẽ mở rộng thêm nhiều
chức năng nữa, có thể trả lời được nhiều câu hỏi hơn cho người dùng, cũng như
sẽ tạo nên giao diện thân thiện và đẹp hơn.
Xin chân thành cám ơn thầy PGS. TS. Đỗ Văn Nhơn đã tận tình giúp đỡ
em hoàn thành bài báo cáo, cảm ơn các thầy cô và các bạn trong lớp đã giúp đỡ
tôi trong lúc thực hiện để có được kết quả này.
Học viên thực hiện:
Trịnh Duy Sâm
TÀI LIỆU THAM KHẢO


[1] PGS. TS. Đỗ Văn Nhơn, Bài giảng môn Biểu Diễn Tri Thức Và Ứng
Dụng
[2] GS.TSKH Hoàng Kiếm, Giải một bài toán trên máy tính như thế nào.
[3] GS. TSKH. Hoàng Kiếm, PGS.TS. Đỗ Phúc, PGS. TS. Đỗ Văn Nhơn,
Giáo trình các hệ cơ sở tri thức, NXB ĐH QG TPHCM, 2009.

×