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

TIỂU LUẬN MÔN BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG ỨNG DỤNG XÂY DỰNG HỆ GIẢI BÀI TOÁN THÔNG MINH VỀ HÌNH HỌC KHÔNG GIAN

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 (254.46 KB, 40 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG
-ỨNG DỤNG XÂY DỰNG HỆ GIẢI BÀI TOÁN THÔNG MINH
VỀ HÌNH HỌC KHÔNG GIAN
Giảng viên hướng dẫn : PGS.TS Đỗ Văn Nhơn
Học viên thực hiện :
Nguyễn Thị Ngọc Diễm CH1101075
Lương Chấn Viễn CH1101155
Lớp : Cao học khóa 6
Tp Hồ Chí Minh, tháng 01 năm 2013
MỤC LỤC
Chương 1
GIỚI THIỆU ĐỀ TÀI
1.1 Bối cảnh
Hiện nay việc ứng dụng công nghệ thông tin (CNTT) trong ngành giáo dục là
nhu cầu tất yếu để theo kịp xu hướng phát triển của thế giới. Các chương trình đào tạo
ứng dụng CNTT hướng tới người học nhiều hơn, giúp tăng cường tính chủ động trong
học tập và nghiên cứu, góp phần tạo nên hứng thú học tập cho học sinh - sinh viên.
Trong giáo dục nói riêng và các lĩnh vực khoa học nói chung, Toán học luôn là một
ngành có vai trò khá quan trọng. Vì vậy ứng dụng công nghệ thông tin trong toán học
sẽ mang lại ý nghĩa vô cùng to lớn.
Trên thế giới hiện nay có rất nhiều phần mềm dành riêng cho toán học. Các
phần mềm này giúp ích khá nhiều cho việc học toán và giải toán từ những phần mềm
chuyên dụng như Cabri, The Geometer's Sketchpad, Archimedes Geo3D, Euler 3D,
Geometria, Geomview, GeospacW, C.a.R, GEUP 3D đến các phần mềm toán học cao
cấp có hỗ trợ ngôn ngữ lập trinh riêng như Maple, Mathematica. Bộ phần mềm giải
toán BAGATRIX gồm các gói giải toán đại số, hình học, lượng giác và đặc biệt phần
mềm này hỗ trợ giải toán theo từng bước.
Ở Việt Nam đã có nhiều công ty có những hoạt động nghiên cứu, sản xuất các
sản phẩm phần mềm giáo dục hỗ trợ thiết kế bài giảng dành cho giáo viên và các bài


giảng điện tử dành cho học sinh. Bên canh đó cũng có một số phần mềm giải toán như
phần mềm MathTutor là một chương trình tính toán hình thức và vẽ đồ thị mã nguồn
mở được phát triển bởi nhóm sinh viên Khoa Công nghệ Thông tin Đại học Khoa học
Tự nhiên thành phố Hồ Chí Minh, nhưng phần mềm này có nhược điểm là chỉ cho ra
đáp án chứ không có bài giải cụ thể.
3
Bên cạnh các sản phẩm phần mềm nêu trên cũng có một số công trình khoa
học, luận văn ở các trường đại học Việt Nam nghiên cứu về việc ứng dụng tin học
trong hỗ trợ giải toán đã đạt được một số kết quả nhất định. Các nghiên cứu này vận
dụng mô hình COKB để tổ chức, lưu trữ tri thức và các mô hình dùng trong quá trình
suy luận để giải quyết vấn đề trong một số miền tri thức cụ thể.
1.2 Mục tiêu, phạm vi đề tài
1.1.1 Mục tiêu
Đưa ra mô hình biểu diễn tri thức nhằm áp dụng cho việc biểu diễn tri thức
HÌNH HỌC KHÔNG GIAN LỚP 11 phát triển từ mô hình COKB [1]. Mô hình này
được thiết kế có khả năng cập nhật tri thức như bổ sung thêm các loại đối tượng mới
ngoài những đối tượng đã có sẵn trong cơ sở tri thức; mở rộng các tập quan hệ, tập
luật, tập hàm.
1.1.2 Phạm vi đề tài
Nội dung của đề tài tập trung thiết kế thử nghiệm trên miền kiến thức toán
HÌNH HỌC KHÔNG GIAN LỚP 11 (Lý thuyết gồm bài 1 và 2 chương 2 trong
chương trình sách giáo khoa chuẩn của Bộ giáo dục và đào tạo. Bao gồm các phần
kiến thức sau đây:
- Chương 2: Đường thẳng và mặt phẳng trong không gian. Quan hệ
song song
o Hai đường thẳng song song
o Đường thẳng song song với mặt phẳng
Chương 2
MÔ HÌNH COKB
Chương này trình bày về mô hình tri thức được sử dụng làm cơ sở lý thuyết,

mô hình COKB[1].
4
1.3 Mô hình một đối tượng tính toán
Một đối tượng tính toán Com-Object (Computional object) có thể được mô
hình hóa bởi một bộ gồm 4 thành phần:
(Attrs, F, Facts, Rules)
Trong đó: Attrs là tập hợp các thuộc tính của đối tượng, F là tập hợp các quan
hệ suy diễn tính toán, Facts là tập hợp các tính chất hay các sự kiện vốn có của đối
tượng, và Rules là tập hợ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ụ: Biểu diễn tri thức về tam giác bằng mô hình mạng đối tượng được mô tả
như sau:
Attrs = {A, B, C, a, b, c, R, S, p, } là tập hợp những thuộc tính của tam giác,
F = {A+B+C = π; ; ; ; ;
; },
Facts = {a+b>c; a+c>b; b+c>a ; …},
Rules = { {a>b} ⇔ {A>B}; {b>c} ⇔ {B>C}; {c>a} ⇔ {C>A}; {a=b} ⇔ {A=B};
{a^2= b^2+c^2} ⇒ {A=pi/2}, {A=pi/2} ⇒ {a^2 = b^2+c^2, b ⊥ c}, }.
1.4 Định nghĩa mô hình COKB
Một mô hình tri thức các Com-Object (viết tắt là mô hình COKB-
Computational Objects Knowledge Base) là một hệ thống gồm 6 thành phần:
(C, H, R, Ops, Funcs, Rules)
Trong đó:
o C là một tập hợp các khái niệm về các Com-Object
5
o H là một tập hợp các quan hệ phân cấp giữa các loại đối tượng
o R là tập hợp các khái niệm về các loại quan hệ trên các Com-Object
o Ops là một tập hợp các toán tử
o Funcs là một tập hợp các hàm
o Rules là tập hợp các luật được phân lớp

2.1.1 Tập hợp C các khái niệm về các C-Object.
Các khái niệm được xây dựng dựa trên các đối tượng. Mỗi khái niệm là một
lớp các đối tượng tính toán có cấu trúc nhất định và được phân cấp theo sự thiết lập
của cấu trúc đối tượng, bao gồm:
- Các đối tượng (hay khái niệm) nền: Là các đối tượng (hay khái niệm) được
mặc nhiên thừa nhận. Ví dụ: như một số đối tượng kiểu boolean (logic), số tự
nhiên (natural), số nguyên (integer), số thực (real), tập hợp (set), danh sách (list)
hay một số kiểu tự định nghĩa.
- Các đối tượng cơ bản (hay khái niệm) cơ bản cấp 0: Có cấu trúc rỗng hoặc
có cấu trúc thiết lập trên một số thuộc tính kiểu khái niệm nền: Các đối tượng (hay
khái niệm) này làm nền cho các đối tượng (hay các khái niệm) cấp cao hơn. Ví dụ: đối
tượng DIEM có kiểu mô tả không có cấu trúc thiết lập.
- Các đối tượng (hay khái niệm) cấp 1: Các đối tượng này chỉ có các thuộc tính
kiểu khái niệm nền và có thể được thiết lập trên một danh sách nền các đối
tượng cơ bản. Ví dụ: đối tượng DOAN[A,B] trong đó A, B là các đối tượng cơ
bản loại DIEM, thuộc tính a biểu thị độ dài đoạn thẳng có kiểu tương ứng là
“real”.
- Các đối tượng (hay khái niệm) cấp 2: Các đối tượng này có các thuộc tính
kiểu khái niệm nền và các thuộc tính loại đối tượng cấp 1, có thể được thiết lập
trên một danh sách nền các đối tượng cơ bản. Ví dụ: đối tượng
TAMGIAC[A,B,C] trong đó A, B, C là các đối tượng cơ bản loại DIEM, các
thuộc tính như GocA, a, S có kiểu tương ứng là “GOC[C,A,B]”,
“DOAN[B,C]”, “real”.
6
- Các đối tượng (hay khái niệm) cấp n >0: Các đối tượng này có các thuộc tính
kiểu khái niệm nền và các thuộc tính loại đối tượng cấp thấp hơn, có thể được
thiết lập trên một danh sách nền các đối tượng cấp thấp hơn.
• Cấu trúc bên trong của mỗi lớp đối tượng
- Kiểu đối tượng: Kiểu này có thể là kiểu thiết lập trên một danh sách nền các đối
tượng cấp thấp hơn.

- Danh sách các thuộc tính của đối tượng: Mỗi thuộc tính có kiểu thực, kiểu đối
tượng cơ bản hay kiểu đối tượng cấp thấp hơn. Phân ra làm 2 loại là tập các
thuộc tính thiết lập của đối tượng và tập các thuộc tính khác (còn gọi là tập
thuộc tính).
- Tập hợp các điều kiện ràng buộc trên các thuộc tính.
- Tập hợp các tính chất nội tại hay sự kiện vốn có liên quan đến các thuộc tính
của đối tượng.
- Tập hợp các quan hệ suy diễn - tính toán trên các thuộc tính của đối tượng. Các
quan hệ này thể hiện các luật suy diễn và cho phép ta có thể tính toán một hay
một số thuộc tính từ các thuộc tính khác của đối tượng.
- Tập hợp các luật suy diễn trên các loại sự kiện khác nhau liên quan đến các
thuộc tính của đối tượng hay bản thân đối tượng. Mỗi luật suy diễn có dạng:
{các sự kiện giả thiết} ⇒ {các sự kiện kết luận}.
2.1.2 Tập hợp H các quan hệ phân cấp giữa các loại đố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.
Cấu trúc của một quan hệ phân cấp:
[<tên lớp đối tượng cấp cao>, <tên lớp đối tượng cấp thấp> ]
7
2.1.3 Tập hợp R các khái niệm về các loại quan hệ trên các C-Object.
Mỗi quan hệ được xác định bởi tên quan hệ và danh sách các loại đối tượng của
quan hệ. Đố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ạ, tính phản xứng, tính đối xứng và tính bắc cầu.
Cấu trúc của một quan hệ:
[ < tên quan hệ > , < loại đối tượng > , < loại đối tượng > ,…] , {< tính chất > , <
tính chất >}.
2.1.4 Tập hợp Ops các toán tử.
Các toán tử thể hiện các qui tắc tính toán nhất định trên các biến thực cũng như
trên các đối tượng. Chẳng hạn như các phép toán số học, các phép tính toán trên các

đối tượng đoạn, góc tương tự như đối với các biến thực hay các phép tính toán vecto,
tính toán ma trận,… Trong trường hợp các phép toán 2 ngôi thì phép toán có thể có
các tính chất như tính giao hoán, tính kết hợp, tính nghịch đảo, tính trung hoà.
2.1.5 Tập hợp Funcs các hàm
Tập hợp Funcs trong mô hình COKB thể hiện tri thức về các hàm hay nói cách
khác là thể hiện tri thức về các khái niệm và các qui tắc tính toán trên các biến thực
cũng như trên các loại C-Object, được xây dựng thông qua các quan hệ tính toán dạng
hàm. Mỗi hàm được xác định bởi <tên hàm>, danh sách các đối số và một qui tắc định
nghĩa hàm về phương diện toán học.
2.1.6 Tập hợp Rules các luật
Mỗi luật cho ta một quy tắc suy luận để đi đến các sự kiện mới từ các sự kiện
nào đó và về mặt cấu trúc nó gồm 2 thành phần chính là: phần giả thiết và phần kết
luận đều là các tập hợp sự kiện trên các đối tượng nhất định:
R: {sk
1
,sk
2
,…,sk
n
}=>{sk
1
,sk
2
,…,sk
m
}
Cấu trúc của một luật:
[Kind, BasicO, Hypos, Goals, n ]
Trong đó:
8

− Kind: loại luật.
− BaseO: tập các đối tượng cơ bản.
− Hypos: tập các sự kiện giả thiết của một luật.
− Goals: tập các sự kiện kết luận của một luật.
Để mô hình luật dẫn trên có hiệu lực trong cơ sở tri thức và để có thể khảo sát
các thuật giải để giải quyết các bài toán, ta cần định nghĩa các dạng sự kiện khác nhau
trong các luật. Dưới đây là định nghĩa cho 11 loại sự kiện khác nhau được xem xét
trong mô hình:
 Các loại sự kiện
[1] Sự kiện thông tin về loại của đối tượng.
Cấu trúc sự kiện: [<object>, <loại object>]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ấu trúc sự kiện:<object> hay <object>.<thuộc tính>
[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ấu trúc sự kiện: <object>, <object>.<thuộc tính>
[3] Sự kiện về tính xác định của một thuộc tính hay một đối tượng thông qua một
biểu thức hằng.
Cấu trúc sự kiện:<object> = <biểu thức hằng> hay
<object>.<thuộc tính> = <biểu thức hằng>.
[4] Sự kiện về sự bằng nhau giữa một đối tượng hay một thuộc tính với một đối
tượng hay một thuộc tính khác.
Cấu trúc sự kiện:
<object>|<object>.<thuộc tính> = <object>|<object>.<thuộc tính>.
[5] Sự kiện về sự phụ thuộc của một đối tượng hay một thuộc tính theo những đối
tượng hay thuộc tính khác thông qua một công thức tính toán.
Cấu trúc sự kiện:
<object> = <biểu thức theo các object hay thuộc tính khác> hay
9
<object>.<thuộc tính> = <biểu thức theo các object hay thuộc tính khác>
[6] Sự kiện về một 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.
Cấu trúc sự kiện: [<tên quan hệ>,<object1>,<object2>,…]
[7] Sự kiện về tính xác định của một hàm.
Cấu trúc sự kiện:<hàm>
[8] Sự kiện về tính xác định của một hàm thông qua một biểu thức hằng.
Cấu trúc sự kiện:<hàm> = <biểu thức hằng>
[9] Sự kiện về sự bằng nhau giữa một đối tượng với một hàm.
Cấu trúc sự kiện:<đối tượng> = <hàm>
[10] Sự kiện về sự bằng nhau của một hàm với một hàm khác.
Cấu trúc sự kiện:<hàm> = <hàm>
[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.
Cấu trúc sự kiện: <hàm> = <biểu thức theo các hàm hay các đối tượng>
1.5 Tổ chức cơ sở tri thức
2.1.7 Các thành phần
Cơ sở tri thức về các C-Object theo mô hình COKB có thể được tổ chức bởi
một hệ thống tập tin văn bản có cấu trúc thể hiện các thành phần trong mô hình tri
thức. Có thể thiết kế hệ thống các tập tin nầy gồm những tập tin như sau:
o Tập tin “Objects.txt” lưu trữ các định danh (hay tên gọi) cho các khái
niệm về các loại đối tượng C-Object.
o Tập tin “Relations.txt” lưu trữ thông tin về các loại quan hệ khác nhau
trên các loại C-Object.
o Tập tin “Hierarchy.txt” lưu lại các biểu đồ Hasse thể hiện quan hệ phân
cấp đặc biệt hóa trên các khái niệm.
10
o Các tập tin với tên tập tin có dạng “<tên khái niệm Com-Object>.txt” để
lưu trữ cấu trúc của loại đối tượng <tên khái niệm Com-Object>.
o Tập tin “Operators.txt” lưu trữ các thông tin về các toán tử trên các đối
tượng.
o Tập tin “Define-Operators.txt” lưu trữ định nghĩa về các toán tử trên các

đối tượng.
o Tập tin “Functions.txt” lưu trữ thông tin các hàm.
o Tập tin “Define-Functions.txt” lưu trữ định nghĩa các hàm.
o Tập tin “Facts.txt” lưu trữ thông tin về các loại sự kiện khác nhau.
o Tập tin “Rules.txt” lưu trữ hệ luật của cơ sở tri thức.
2.1.8 Cấu trúc của các tập tin lưu trữ các thành phần COKB
Các tập tin lưu trữ các thành phần trong cở sở tri thức các Com-Object được
ghi dưới dạng các văn bản có cấu trúc dựa trên một số từ khóa và qui ước về cú pháp
khá đơn giản và tự nhiên. Dưới đây là phần liệt kê cấu trúc của các tập tin:
- Cấu trúc tập tin “Objects.txt”
begin_Objects
<tên lớp đối tượng 1>
<tên lớp đối tượng 2>
end_Objects
- Cấu trúc tập tin “relations.txt”
begin_Relations
[<tên quan hệ>, <loại đối tượng>, <loại đối tượng>, ],
{<tính chất>, <tính chất>, }
[<tên quan hệ>, <loại đối tượng>, <loại đối tượng>, ],
[<tính chất>, <tính chất>, }

end_Relations
11
- Cấu trúc tập tin “<tên khái niệm C-Object>.txt”
begin_object: <tên khái niệm C-Object>[các đối tượng nền]
<các đối tượng nền> : <kiểu>;

begin_variables
<tên thuộc tính> : <kiểu>;


end_variables
begin_constraints

end_constraints
begin_properties
<sự kiện>

end_properties
begin_computation_relations
begin_relation
flag=<0 hoặc 1>
Mf={các thuộc tính}
rf=1
vf={ghi thuộc tính kết quả nếu flag = 0}
expf= `biểu thức tính toán`
cost= <trọng số của sự tính toán>
end_relation

end_computation_relations
begin_rules
12
begin_rule
kind_rule = "<loại luật>";
hypothesis_part:
{các sự kiện giả thiết của luật}
goal_part:
{ các sự kiện kết luận của luật hoặc là "Object"}
end_rule

end_rules

end_object
begin_inside_net
parameters:
objects:

facts:

end_inside_net
- Cấu trúc tập tin “rules.txt”
begin_rules
begin_rule
kind_rule = "<loại luật>";
<các tên đối tượng> : <kiểu đối tượng>;

hypothesis_part:
{các sự kiện giả thiết của luật}
goal_part:
{ các sự kiện kết luận của luật hoặc là "Object"}
end_rule
13

end_rules
1.6 Mô hình bài toán
2.1.9 Mô hình mạng các đối tượng tính toán
Mô hình mạng các đối tượng tính toán gồm 2 thành phần:
O = {O
1
, O
2
, . . ., O

n
},
F = {f
1
, f
2
, . . ., f
m
},
Trong đó:
- O là một tập hợp các đối tượng Com-Object cơ bản
- F là tập hợp các sự kiện dựa trên các đối tượng
2.1.10Mô hình bài toán
Dựa trên việc nghiên cứu các bài toán cụ thể ta có thể đề xuất mô hình bài toán
tổng quát trên mô hình tri thức COKB dựa trên mô hình mạng các đối tượng tính toán
gồm các thành phần như sau:
(O, M, F, Facts, FFacts), Goal
Trong đó:
o O là tập các đối tượng tính toán trong bài toán,
o M là tập các thuộc tính của các đối tượng được đề cập tới trong bài toán,
o F là tập các hàm được đề cập trong bài toán,
o Facts là tập các sự kiện thuộc 6 lọai [1]-[6], và
o FFacts là tập các sự kiện thuộc các lọai khác liên quan đến tri thức hàm.
o Goal là mục tiêu hay yêu cầu của bài toán.
Ví dụ: Xét bài toán sau đây:
Viết phương trình đường thẳng đi qua giao điểm hai đường thẳng 2x + 7y – 8 =
0; 3x + 2y + 5 = 0 và hợp với đường thẳng (d): 2x + 3y -7 = 0 một góc 45
0
.
Bài toán có thể được mô hình hóa theo mô hình trên như sau:

O := {d: đường thẳng, d1: đường thẳng, d2: đường thẳng,
14
d3: đường thẳng, A: điểm}
M := {d.ptdt, d1.ptdt, d2.ptdt, d3.ptdt}
F := {Goc(đthẳng, đthẳng), GiaoDiem(đthẳng, đthẳng) }
Facts : = {d.ptdt : 2x + 3y -7 = 0,
d1.ptdt: 2x + 7y – 8 = 0,
d2.ptdt: 3x + 2y + 5 = 0,
A “thuộc” d3}
FFacts := {Goc(d,d3) = 45,
A = GiaoDiem(d1, d2)}
Goal := [d3]
2.1.11Đặc tả bài toán
Để có thể thiết kế phần giao tiếp và cho phép nhập bài toán vào hệ thống giải
bài toán một cách đa dạng và đáp ứng các yêu cầu thực tế, ta cần có một ngôn ngữ quy
ước để đặc tả bài toán. Trong mục này trình bày ngôn ngữ quy ước để đặc tả bài toán
với các tiêu chí sau:
- Tính đơn giản.
- Tính tự nhiên.
- Tính tiện dụng.
- Khả năng đặc tả tốt.
Hệ thống sẽ cung cấp 2 cách để đặc tả bài toán:
Đề bài có thể được cho dưới dạng một tập tin văn bản có cấu trúc dựa trên một
số từ khoá như: begin_exercise, end_exercise, begin_hypothesis, end_hypothesis,
parameters, end_parameters, objects, end_object, facts, end_facts, functions,
end_functions, goals, end_goals cùng với một số qui ước khai báo các tham biến, các
đối tượng, các sự kiện, các hàm, và yêu cầu của bài toán.
Cấu trúc của đề bài bài toán có dạng như sau:
begin_exercise
kind_ex = ”….”

15
// Phần giả thiết của bài toán
begin_hypothesis
parameters:
<các tham biến>
end_parameters
objects:
<dãy các tên đối tượng> : <kiểu đối tượng>
…………
end_objects
facts:
<các sự kiện giả thiết loại [1] – [6]>
………
end_facts
functions:
<các sự kiện giả thiết loại 7 – 11 liên quan đến hàm>
…………
end_functions
end_hypothesis
// Phần kết luận_mục tiêu của bài toán
begin_goal
[<các sự kiện mục tiêu>]
end_goal
end_exercise
16
Chương 3
ỨNG DỤNG XÂY DỰNG HỆ GIẢI BÀI TOÁN THÔNG
MINH VỀ HÌNH HỌC GIẢI TÍCH BA CHIỀU
1.7 Mô hình tri thức về Hình học giải tích ba chiều
Xây dựng mô hình dựa trên mô hình tri thức COKB rút gọn gồm 5 thành phần:

(C, H, Funcs, R, Rules)
Mô hình tri thức về hình học giải tích hai chiểu sử dụng 7 loại sự kiện của mô
hình COKB 6 thành phần. Cụ thể như sau:
Các loại sự kiện:
[1] Sự kiện thông tin về loại của đối tượng.
Cấu trúc sự kiện: <loại object>(<object>)
Ví dụ: DuongThang(d), MatPhang(P)
[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ấu trúc sự kiện: <object> hay <object>.<thuộc tính>
Ví dụ: MatPhang(A, B, C)
[3] Sự kiện về sự bằng nhau giữa một đối tượng hay một thuộc tính với một
đối tượng hay một thuộc tính khác.
Cấu trúc sự kiện:
<object>|<object>.<thuộc tính> = <object>|<object>.<thuộc tính>
Ví dụ: O1 = MatPhang(A, B, C)
[4] Sự kiện về một 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.
Cấu trúc sự kiện: [<tên quan hệ>, <object1>, <object2>, …]
17
Ví dụ: [“Thuoc”, M, d]
[5] Sự kiện về tính xác định của một hàm.
Cấu trúc sự kiện: <hàm>
Ví dụ: GiaoDiem(d1, d2)
[6] Sự kiện về sự bằng nhau giữa một đối tượng với một hàm.
Cấu trúc sự kiện: <đối tượng> = <hàm>
Ví dụ: J = GiaoDiem(d1, d2)
[7] Sự kiện về sự bằng nhau của một hàm với một hàm khác.
Cấu trúc sự kiện: <hàm>= <hàm>
Ví dụ: GiaoDiem(P, d) = GiaoTuyen(Q, d)
3.1.1 Tập C các khái niệm về các đối tượng tính toán

Tập các khái niệm C bao gồm “Điểm”, “Đường thẳng”, “Tam giác”, “Tứ Giác
Lồi”, “Hình Bình Hành”, “Mặt Phẳng”, “Tứ Diện”, “HìnhChóp”. Trong đó:
- “Điểm”, “Đường Thẳng”, “Mặt Phẳng” là một loại đối tượng cơ bản cấp 0 có
cấu trúc rỗng.
- “Tam giác”, “TuGiacLoi”, “Hình bình hành”, “Tứ Diện”, “Hình Chóp” là
loại đối tượng cấp 1 được thiết lập từ danh sách nền các đối tượng cơ bản kiểu
“Điểm”.
3.1.2 Tập các quan hệ R trên các đối tượng
Mỗi quan hệ được xác định bởi <tên quan hệ> và các loại đối tượng của quan
hệ và quan hệ có thể có một số tính chất trong các tính chất sau đây: tính chất phản xạ,
tính chất đối xứng và tính chất bắc cầu. Ví dụ một số quan hệ sau:
- Quan hệ thuộc giữa một điểm và một đường thẳng
o [“Thuoc”, Diem, DuongThang]
- Quan hệ “Song Song” giữa đường thẳng và đường thẳng
o [“SongSong”, DuongThang, DuongThang]{“đối xứng”}
- Quan hệ “Nằm ngoài” giữa một điểm và một tam giác
o [“NamTrong”, Diem, TamGiac]
18
3.1.3 Tập hợp Hierarchy
Tập hợp Hierachy gồm quan hệ phân cấp sau:
["HinhBinhHanh", "TuGiacLoi"]
3.1.4 Tập hợp hàm
Tập hợp hàm gồm các hàm sau:
- Hàm tìm giao tuyến của hai mặt phẳng
o GiaoTuyen(MatPhang, MatPhang) {"doi xung"}
- Hàm tính GiaoDiem giữa đường thẳng và mặt phẳng
o GiaoDiem(DuongThang, MatPhang){"doi xung"}
- Hàm tính giao điểm giữa hai đường thẳng
o GiaoDiem(DuongThang, DuongThang){"doi xung"}
3.1.5 Tập hợp các luật

Hầu hết các tính chất, mệnh đề, định lý trong HÌNH HỌC KHÔNG GIAN LỚP
11 đều có thể được biểu diễn dưới dạng các luật dẫn trên các sự kiện, quan hệ liên
quan đến các Com-Object khai báo trong tập C. Dưới đây là một số luật dẫn cụ thể:
- {M: “Điểm”, d1: “Đường Thẳng”, P: “Mặt Phẳng”, M “Thuộc” d1, M
“Thuộc” P, d1 “Cắt” P}  {M= GiaoDiem(d1, P)}
- {M: “Điểm”, d1: “Đường Thẳng”, d2: “Đường Thẳng”, M “Thuộc” d1, M
“Thuộc” d2, d1 “Cắt” d2}  {M= GiaoDiem(d1, d2)}
- {A: Điểm, d: Đường Thẳng, P: Mặt Phẳng, A “Thuộc” d, d “Thuộc” P } {A
“Thuộc” P}
1.8 Tổ chức lưu trữ
Cơ sở tri thức về Hình học không gian lớp 11 được lưu trữ trên cấu trúc dữ liệu
của ngôn ngữ Maple; dựa trên phương thức tổ chức lưu trữ của mô hình COKB. Cụ
thể gồm các tập tin sau:
- Tập tin KB.mpl lưu trữ cấu trúc của toàn bộ tri thức.
- Tập tin Objects.mpl lưu trữ các khái niệm và cấu trúc của các đối tượng C-
Object như Diem, DuongThang, MatPhang, TamGiac, TuDien, HinhChop
- Tập tin Hierarchy.mpl lưu lại biểu đồ Hasse thể hiện quan hệ phân cấp đặc biệt
hóa trên các khái niệm. Ví dụ: "HinhBinhHanh" → "TuGiacLoi" (Hình bình
hành là đặc biệt hóa của Tứ giác lồi)
19
- Tập tin Relations.mpl lưu trữ thông tin về các loại quan hệ giữa loại C-Object
như ["Thuoc", "Diem", "DuongThang"], ["ThangHang", "Diem", "Diem",
"Diem"]
- Tập tin Functions.mpl lưu trữ thông tin các hàm như GiaoDiem.
- Tập tin Rules.mpl lưu trữ hệ luật của cơ sở tri thức.
3.1.6 Cấu trúc của cơ sở tri thức trong tập KB.mpl
KB := Record(
Objects = $include "Objects.mpl",
Hierarchy = $include "Hierarchy.mpl",
Relations = $include "Relations.mpl",

Functions = $include "Functions.mpl",
Rules = $include "Rules.mpl")
3.1.7 Nội dung tập tin Objects.mpl
Concepts = table([
"Diem" = NULL,
"DuongThang" = NULL,
"MatPhang" = NULL,
"TamGiac" = module()
export
SubObject := [
[_A, "Diem"],
[_B, "Diem"],
[_C, "Diem"] ];
end module,
"TuGiacLoi" = module()
export
SubObject := [
[_A, "Diem"],
[_B, "Diem"],
[_C, "Diem"],
20
[_D, "Diem"] ];
end module,
"HinhBinhHanh" = module()
export
Properties := [
["SongSong", Doan[_A,_B], Doan[_C, _D]],
["SongSong", Doan[_A,_D], Doan[_B, _C]] ];
end module,
# trong không gian

"HinhChop" = module()
export
SubObjects := [
[_S, "Diem"]
#
[_A, "Diem"],
[_B, "Diem"],
[_C, "Diem"],
[_D, "Diem"] ],
# Tinh chat
# ABCD dong phang
# ABCD la tu giac loi
# S khong thuoc mp(ABCD)
end module,
"TuDien" = module()
export
SubObject := [
[_A, "Diem"],
[_B, "Diem"],
21
[_C, "Diem"],
[_D, "Diem"] ];
end module
]);
3.1.8 Nội dung tập tin Functions.mpl
Functions := [
# Diem GiaoDiem(DuongThang,MatPhang)
record(
Return = "Diem",
NameFunc = "GiaoDiem",

Para = ["DuongThang","MatPhang"],
Symmetric = true ),
# Diem GiaoDiem(DuongThang,DuongThang)
record(
Return = "Diem",
NameFunc = "GiaoDiem",
Para = ["DuongThang","DuongThang"],
Symmetric = true ),
# Duong GiaoTuyen(MatPhang, MatPhang)
record(
Return = "Duong",
NameFunc = "GiaoTuyen",
Para = ["MatPhang","MatPhang"],
Symmetric = true )
];
3.1.9 Nội dung tập tin Hierarchy.mpl
Hierarchy := [
["HinhBinhHanh", "TuGiacLoi"]
];
22
3.1.10Nội dung tập tin Relations.mpl
Relations := [
# Quan hệ Xác định
["XacDinh", "Diem"],
["XacDinh", "DuongThang"],
["XacDinh", "MatPhang"],
# Quan hệ Thuộc
["Thuoc", "Diem", "DuongThang"],
["Thuoc", "Diem", "MatPhang"],
["Thuoc", "Duong" , "MatPhang"],

["KhongThuoc", "Diem", "DuongThang"],
["KhongThuoc", "Diem", "MatPhang"],
["KhongThuoc", "Duong", "MatPhang"],
# Quan hệ Thẳng Hàng
["ThangHang", "Diem", "Diem", "Diem"], # doi xung
["KhongThangHang", "Diem", "Diem", "Diem"], # doi xung
# Quan hệ Đồng phẳng
["KhongDongPhang", "Diem", "Diem", "Diem"]
["DongPhang", "Diem", "Diem", "Diem"]
["NamGiua","Diem", "Diem","Diem"]
# Vị trí tương đối giữa hai Đường phẳng
["Cat", "DuongThang","DuongThang"]
["SongSong", "DuongThang","DuongThang"]
["Cheo", "DuongThang","DuongThang"]
# Vị trí tương đối giữa hai Mặt phẳng
["Cat", "MatPhang","MatPhang"]
["SongSong", "MatPhang","MatPhang"]
23
# Vị trí tương đối giữ Đường thẳng và Mặt phẳng
["Cat", "DuongThang", "MatPhang"]
["SongSong", "DuongThang", "MatPhang"]
# Vị trí tương đối giữa Điểm và Tam Giác
["NamTrong", "Diem", "TamGiac"],
["NamNgoai", "Diem", "TamGiac"]
];
3.1.11Nội dung tập tin Rules.mpl
Rules := [
# Luật xác định
# Rule Xac dinh Diem
# Giao diem 2 duong thang

# Xacdinh(d1), Xacdinh(d2), Giaodiem(d1,d2,A) SuyRa
Xacdinh(A)
Record(
NameRule = "Luat xac dinh Diem",
Objects = [
Diem(_A),
DuongThang(_d1),
DuongThang(_d2)
],
Hypothesis = [
["XacDinh",_d1],
["XacDinh",_d2],
_A = GiaoDiem(_d1, _d2) ],
Goal = [ ["XacDinh", _A] ]
24
),
# Rule Xác định mặt phẳng
#Rule 1
# 3 điểm không thẳng hàng trong mặt phẳng (bỏ được bởi luật
trên)
Record(
NameRule = "Luat xac dinh MatPhang",
Objects = [
Diem(_A),
Diem(_B),
Diem(_C)
],
Hypothesis = [
["XacDinh",_A],
["XacDinh", _B],

["XacDinh",_C],
["KhongThangHang", _A, _B, _C] ],
Goal = [
["XacDinh", MatPhang(_A,_B,_C)] ] ),
# Rule 2
# 1 điểm A và 1 đường thẳng d (A Khong Thuoc d)
Record(
NameRule = "Luat xac dinh MatPhang",
Objects = [
DuongThang(_d),
Diem(_D)
25

×