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

XÂY DỰNG VÀ ỨNG DỤNG MÔ HÌNH COKB GIẢI BÀI TOÁN HÌNH HỌC 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 (414.08 KB, 27 trang )

Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
BÀI THU HOẠCH MÔN
BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG
ĐỀ TÀI:
XÂY DỰNG VÀ ỨNG DỤNG MÔ HÌNH COKB
GIẢI BÀI TOÁN HÌNH HỌC TAM GIÁC
GVHD: PGS.TS. Đỗ Văn Nhơn
Người thực hiện: Bùi Chí Cường
Mã số: CH1101007
Lớp: Cao học khóa 6
TP.HCM – 2013
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời chân thành cảm ơn đến Ban Chủ nhiệm trường Đại học
công nghệ thông tin TP HCM đã tạo điều kiện cho em được tiếp cận với bộ môn Biểu
diễn tri thức và ứng dụng.
Em xin cảm ơn thầy PGS.TS. Đỗ Văn Nhơn đã tận tình truyền đạt kiến thức cho chúng
em cũng những gì thầy đã giúp đỡ, hướng dẫn để em thực hiện bài tiểu luận.
Em cũng xin gửi lời cảm ơn sâu sắc đến quý thầy cô trong Khoa Công nghệ Thông tin
cùng các bạn bè thân hữu đã nhiệt tình đóng góp ý kiến, cũng như động viên để em
hoàn thiện hơn đề tài của mình.
Mặc dù đã rất cố gắng nhưng đề tài khó tránh khỏi những thiếu sót và sai lầm, em
mong thầy cô và bạn bè cho ý kiến để đề tài ngày càng hoàn thiện hơn.
Một lần nữa, em xin chân thành cảm ơn!
Tp. HCM, 1 tháng 1 năm 2013
Bùi Chí Cường
CH1101007
MỤC LỤC
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC HÌNH


v
1 CHƯƠNG I - MỞ ĐẦU 6
1.1 Giới thiệu chung 6
1.2 Hoạt động nghiên cứu 7
2 CHƯƠNG II - TỔNG QUAN VỀ MÔ HÌNH COKB VÀ MỘT SỐ CẢI TIẾN 8
2.1 Mô hình COKB 8
2.1.1 Định nghĩa đối tượng tính toán (C-Object): 8
2.1.2 Mô hình cho một C-Object 8
Attrs là tập hợp các thuộc tính của đối tượng 8
F là tập hợp các quan hệ suy diễn tính toán 8
Facts là tập hợp các tính chất hay sự kiện vốn có của đối tượng 8
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 9
2.1.3 Mô hình tri thức các đối tượng tính toán (COKB) 9
2.2 Một số cải tiến mới 11
2.2.1 Mở rộng kiểu thuộc tính của C-Object 11
2.2.2 Quan hệ tính toán phụ thuộc 14
2.2.3 Tập 10 sự kiện 16
3 CHƯƠNG III – XÂY DỰNG VÀ CÀI ĐẶT ỨNG DỤNG BIỂU DIỄU TRI THỨC
HÌNH HỌC TAM GIÁC 20
3.1 Tổng quan bài toán 20
3.2 Cấu trúc dữ liệu 20
3.3 Giải thuật 20
3.4 Hướng dẫn cài đặt và sử dụng chương trình 21
3.4.1 Yêu cầu 21
3.4.2 Cài đặt và sử dụng chương trình 21
3.4.3 Thử nghiệm 25
4 CHƯƠNG IV - KẾT LUẬN 26
4.1 Tóm tắt kết quả đạt được 26
4.2 Hướng phát triển 26

4.3 Tài liệu tham khảo 26
v
DANH MỤC CÁC HÌNH
Hình 1 - Ví dụ về sơ đồ mạch điện 13
Hình 2 - Giao diện biểu diễn tri thức 22
Hình 3 - Giao diện tính toán 23
Hình 4 - Giao diện thông tin học viên 24
6
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
1 CHƯƠNG I - MỞ ĐẦU
1.1 Giới thiệu chung.
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.
7
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
1.2 Hoạt động nghiên cứu.
Đề tài khóa luận này sẽ nghiên cứu phát triển mô hình COKB, ứng dụng vào biểu
diễn tri thức và hệ tự động giải 1 số bài tập hình học về Tam Giác trong chương trình
Phổ thông.
Mục tiêu của đề tài là nghiên cứu mở rộng mô hình COKB nhằm phục vụ cho
việc xây dựng mô hình cơ sở tri thức hình học Tam giác để có thể lưu trữ và xử lý suy
luận giải bài tập trên máy tính; cùng với phát triển 1 ứng dụng demo hỗ trợ giải bài
toán hình học Tam giác thỏa mãn các yêu cầu sau:
• Có cơ sở tri thức về hình học Tam giác lưu trữ riêng trên máy tính với cấu
trúc đơn giản để người sử dụng dễ thay đổi, chỉnh sửa khi cần thiết.
• Cho phép nhập bài toán bằng ngôn ngữ đơn giản gần với ngôn ngữ tự nhiên.
• Tìm ra lời giải gần với cách giải của con người, trình bày đẩy đủ, dễ hiểu.
• Giao diện phần mềm trực quan, sinh động, dễ thao tác
Phạm vi của đề tài này sẽ tập trung mở rộng mô hình COKB, cụ thể là tập thuộc
tính và quan hệ tính toán của C-Object để áp dụng vào biểu diễn tri thức hình học Tam
giác, xây dựng mô hình bài toán cùng thuật giải để giải quyết 1 số lớp bài toán hình
học Tam giác phổ biến trong chương trình sách giáo khoa THPT cũng như trong đề thi
Tốt nghiệp THPT, đề thi Đại học khối A, B hằng năm.
8
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
2 CHƯƠNG II - TỔNG QUAN VỀ MÔ HÌNH COKB VÀ
MỘT SỐ CẢI TIẾN
2.1 Mô hình COKB
2.1.1 Định nghĩa đối tượng tính toán (C-Object):
Ta gọi một đối tượng tính toán (C-object) là một đối tượng O có cấu trúc bao

gồm:
(1) Một danh sách các thuộc tính Attrs = {x
1
, x
2
, , x
n
} trong đó mỗi thuộc tính lấy
giá trị trong một miền xác định nhất định, và giữa các thuộc tính ta có các quan
hệ thể hiện qua các sự kiện, các luật suy diễn hay các công thức tính toán.
(2) Các hành vi liên quan đến sự suy diễn và tính toán trên các thuộc tính của đối
tượng hay trên các sự kiện như:
 Xác định bao đóng của một tập hợp thuộc tính A ⊂ Attr(O), tức là đối tượng
O có khả năng cho ta biết tập thuộc tính lớn nhất có thể được suy ra từ A
trong đối tượng O.
 Xác định tính giải được của bài toán suy diễn tính toán có dạng A → B với
A ⊂ Attr(O) và B ⊂ Attr(O). Nói một cách khác, đối tượng có khả năng trả
lời câu hỏi rằng có thể suy ra được các thuộc tính trong B từ các thuộc tính
trong A không.
 Thực hiện các tính toán
 Thực hiện việc gợi ý bổ sung giả thiết cho bài toán
 Xem xét tính xác định của đối tượng, hay của một sự kiện.
2.1.2 Mô hình cho một C-Object
Một C-Object có thể được mô hình hoá bởi một bộ
(Attrs,F,Fact,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 sự kiện vốn có của đối tượng
9

BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
- 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
2.1.3 Mô hình tri thức các đối tượng tính toán (COKB)
(C, H, R, Ops, Rules)
[1] Một tập hơp C các khái niệm về các C-Object
Mỗi khái niệm là một lớp C-Object có cấu trúc và được phân cấp theo sự thiết lập
của cấu trúc đối tượng:
• [1] Các biến thực.
• [2] Các đối tượng cơ bản có cấu trúc rỗng hoặc có cấu trúc gồm một số thuộc
tính thuộc kiểu thực (ví dụ như DIEM không có thuộc tính giá trị thực trong
hình học phẳng). Các đối tượng loại nầy làm nền cho các đối tượng cấp cao
hơn.
• [3] Các đối tượng C-Object cấp 1. Loại đối tượng nầy có một thuộc tính loại
<real> và có thể được thiết lập từ một danh sách nền các đối tượng cơ bản. Ví
dụ: DOAN[A,B] và GOC[A,B,C] trong đó A, B, C là các đối tượng cơ bản
loại DIEM.
• [4] Các đối tượng C-Object cấp 2. Loại đối tượng nầy có các thuộc tính loại
real và các thuộc tính thuộc loại đối tượng cấp 1, và đối tượng 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ụ:
TAM_GIAC[A,B,C] và TU_GIAC[A,B,C,D], trong đó A, B, C, D là các đối
tượng cơ bản loại DIEM.
Cấu trúc bên trong của mỗi lớp đối tượng gồm:
• Tập các thuộc tính của đối tượng Attrs: trong đó mỗi thuộc tính lấy giá trị
trong 1 miền xác định.
• Tập các sự
Cùng với cấu trúc trên, đối tượng còn được trang bị các hành vi cơ bản trong việc
giải quyết các bài toán suy diễn và tính toán trên các thuộc tính của đối tượng, bản thân
đối tượng hay các đối tượng liên quan được thiết lập trên nền của đối tượng (nếu đối
10

BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
tượng được thiết lập trên một danh sách các đối tượng nền nào đó). Các hành vi cơ bản
nầy của đối tượng C-Object sẽ được xem xét chi tiết hơn trong các mục sau.
[2] Một tập hơp H các quan hệ phân cấp giữa các loại đối tượng.
Trên tập hợp C ta có một quan hệ phân cấp theo đó có thể có một số khái niệm là
sự đặc biệt hóa của các khái niệm khác, chẳng hạn như một tam giác cân cũng là một
tam giác, một hình bình hành cũng là một tứ giác. Có thể nói rằng H là một biểu đồ
Hasse khi xem quan hệ phân cấp trên là một quan hệ thứ tự trên C.
[3] Một 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à 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, tính chất phản xứng và tính chất bắc cầu. Ví dụ: Quan hệ cùng
phương trên 2 đoạn thẳng có các tính chất phản xạ, đối xứng và bắc cầu.
[4] Một tập hơp Ops các toán tử
Các toán tử cho ta một số phép toán trên các biến thực cũng như trên các đối
tượng, chẳng hạn các phép toán số học và tính toán trên các đối tượng đoạn và góc
tương tự như đối với các biến thực.
[5] Một tập hơp Rules gồm các luật được phân lớp
Các luật thể hiện các tri thức mang tính phổ quát trên các khái niệm và các loại sự
kiện khác nhau. Mỗi luật cho ta một qui 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 của
luật và phần kết luận của luật. 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. Như vậy, một luật r có thể được mô hình dưới dạng:
r : {sk1, sk2, , skn} -> { sk1, sk2, , skm }
Để 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
11
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
trong các luật. Dưới đây là định nghĩa cho 6 loại sự kiện khác nhau được xem xét trong
mô hình.

2.2 Một số cải tiến mới
2.2.1 Mở rộng kiểu thuộc tính của C-Object
Đối tượng tính toán C-Object được giới thiệu từ năm 1997 là cơ sở cho sự hình
thành các mô hình biểu diễn tri thức sau nay như mô hình mạng các đối tượng tính toán
COKB, mô hình mạng tính toán mở rộng ECOKB cùng với rất nhiều bài báo khoa học,
nghiên cứu ứng dụng đã được xuất bản.
Dù được phát triển qua nhiều giai đoạn nhưng C-Object vẫn đóng vai trò là thành
phần không thể thiếu trong việc biểu diễn khái niệm về nhóm đối tượng trong 1 miền
tri thức cụ thể. Thành phần quan trọng nhất của C-Object chính là tập các thuộc tính
Attrs vì mỗi thuộc tính sẽ biểu diễn một tính chất đặc trưng của đối tượng. Tập các
thuộc tính của 1 C-Object dùng để phân biệt nó với các C-Object khác.
Ví dụ:
- Trong hình học ta có khái niệm "Tam Giác" với các thuộc tính: độ dài 3 cạnh
a,b,c; độ dài 3 góc A,B, C; diện tích S, chu vi P v.v…
- Trong vật lý về mạch điện ta có khái niệm "Điện trở" với các thuộc tính: điện
trở R, cường độ dòng điện I, hiệu điện thế U.
- Trong hóa học có khái niệm "Nguyên tố" với các thuộc tính: Khối lượng riêng
M, Số hiệu nguyên tử Z, độ âm điện v.v
Cho đến hiện nay, kiểu thuộc tính của đối tượng C-Object được định nghĩa là "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" (Đối tượng cơ bản
là các đối tượng có thuộc tính kiểu thực, đối tượng cấp 1 được định nghĩa từ đối tượng
cơ bản và kiểu thực, định nghĩa tương tự cho các đối tượng cấp lớn hơn.). Chú ý: định
nghĩa trên được xét trong 1 miền tri thức cụ thể với các đối tượng được phân cấp.
Ràng buộc về kiểu thuộc tính của đối tượng ở trên, mỗi thuộc tính chỉ có thể được
gán 1 giá trị duy nhất. Tuy nhiên, trong thực tế có nhiều trường hợp yêu cầu phức tạp
hơn khi biểu diễn giá trị thuộc tính của đối tượng.
12
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Ví dụ :
- Với khái niệm "Hỗn hợp" trong Hóa học. Như đã biết, khái niệm Hỗnhợp là tập

hợp các chất cùng trạng thái vật lý và không tác dụng với nhau ở điều kiện
thường. Vậy thuộc tính gì của "Hỗn hợp" có thể biểu diễn được tập các chất mà
"Hỗn hợp" đó có?
- Trong bài toán hóa học, người ta thường đưa ra 1 thí nghiệm. Nếu gọi đây là 1
đối tượng "Thí nghiệm" thì tập thuộc tính của nó cần lưu trữ thông tin về các
chất tham gia, các chất tạo thành, chuỗi phản ứng xảy ra trong thí nghiệm (vì thí
nghiệm có thể có nhiều phản ứng xảy ra liên tiếp), các sản phẩm trung gian tạo
thành trong chuỗi phản ứng đó v.v…
- Tương tự như trong Vật lý, khi nói về đối tượng "Mạch điện", chưa cần biết
mạch điện đó đơn giản hay phức tạp, nhưng khi nói tới đối tượng "Mạch điện"
ta cần phải biết thông tin về các thiết bị điện mà nó sử dụng trong mạch.
- Mở rộng hơn vào trong lĩnh vực xã hội, nếu định nghĩa khái niệm "Hộ gia đình"
ngoài các thuộc tính như "địa chỉ", "điện thoại", "thu nhập", ta cần phải có 1
thuộc tính lưu trữ danh sách các thành viên trong gia đình. Mỗi thành viên là 1
đối tượng thuộc kiểu "Con người".
Và còn nhiều loại đối tượng trong các lĩnh vực khác nhau chứa thông tin tương tự
như trên. Ta thấy nếu áp dụng lý thuyết về C-Object hiện tại để áp dụng biểu diễn tri
thức cho các trường hợp này là không thể. Ta cần phải thay đổi, cải tiến C-Object để
giải quyết các trường hợp này. Trong báo cáo này sẽ đề ra giải pháp là mở rộng kiểu
thuộc tính của C-Object.
Nội dung cụ thể về mở rộng kiểu thuộc tính của C-Object như sau.
Ta mở rộng kiểu thuộc tính của C-Object thêm 3 kiểu dưới đây
list( TYPE )
set( TYPE )
dict( TYPE1, TYPE2)
Với TYPE, TYPE1, TYPE2 là tên kiểu dữ liệu, bao gồm các kiểu dữ liệu cơ
bản, kiểu khái niệm đã được định nghĩa thêm trong tập C, kiểu list, set hoặc dict.
13
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
list(TYPE)

Một thuộc tính có kiểu dữ liệu là list( TYPE ) thể hiện một danh sách có thứ tự
mà các thành phần trong danh sách là các đối tượng thuộc kiểu TYPE. Trong trường
hợp ta không quan tâm tới kiểu giá trị của từng thành phần trong danh sách, TYPE có
thể bằng rỗng (NULL)
set(TYPE)
Một thuộc tính có kiểu là set( TYPE ) biểu diễn cho một tập hợp các đối tượng
có kiểu là TYPE. Với set, ta không quan tâm tới thứ tự sắp xếp của chúng.TYPE =
NULL khi ta không cần quan tâm tới kiểu dữ liệu của các thành phần bên trong tập
hợp.
Ví dụ:
Đối với khái niệm "Mạch điện", ta cũng gọi thuộc tính chứa các thành phần
trong mạch điện là "Componets", có kiểu là set(). Do trong mạch điện có thể có nhiều
kiểu đối tượng khác nhau như điện trở, nguồn điện, khóa điện v.v… nên ta không cần
xác định kiểu dữ liệu cụ thể.


Hình 1 - Ví dụ về sơ đồ mạch điện
dict(TYPE1, TYPE2)
14
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Một thuộc tính kiểu dict(TYPE1, TYPE2) thể hiện một từ điển, hay một bảng
với các khóa là các đối tượng kiểu TYPE1 và các giá trị tương ứng là các đối tượng
kiểu TYPE2.
2.2.2 Quan hệ tính toán phụ thuộc
Tiếp tục nói về đối tượng tính toán C-Object, tập các thuộc tính của C-Object là
thành phần quan trọng nhất dùng để mô tả các tính chất/thuộc tính có trong 1 đối tượng
mà nó muốn biểu diễn. Bên cạnh tập các thuộc tính, C-Object không thể thiếu các quan
hệ tính toán, thành phần chính dùng trong suy diễn tính toán. Quan hệ tính toán được
định nghĩa là “Mỗi quan hệ thể hiện một qui 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 nầy từ một số thuộc tính khác của đối tượng”[1]. Nói 1

cách khác, quan hệ tính toán là 1 biểu thức tính toán giữa các thuộc tính bên trong đối
tượng. Quan hệ tính toán có 2 loại:
- Quan hệ tính toán đối xứng có hạng (rank) bằng 1 số nguyên dương k, đó là
quan hệ mà ta có thể tính được giá trị của k thuộc tính bất kì từ n-k thuộc tính đã
biết (n là số lượng thuộc tính).
- Quan hệ tính toán không đối xứng là 1 quan hệ tính toán toán có dạng 1 ánh xạ
u(f) -> v(f). Với u(f) là tập biến đầu vào và v(f) là tập biến đầu ra của quan hệ.
Ví dụ như trong tam giác ta có các quan hệ tính toán sau:
- A+B+C = Pi // quan hệ giữa 3 góc trong tam giác.
- S= ½*a*b*sin(C) // quan hệ tính diện tích tam giác
Tuy nhiên, khi mở rộng kiểu thuộc tính trong đối tượng tính toán, ngoài việc sử
dụng lại quan hệ tính toán cũ cho kiểu thuộc tính cũ, ta cũng cần phải mở rộng thêm
loại quan hệ tính toán mới để áp dụng vào các kiểu thuộc tính mới. Quan hệ tính toán
mới sẽ biểu diễn các loại quan hệ như:
- Quan hệ tính giá trị thuộc tính bằng tổng giá trị có trong 1 thuộc tính có kiểu tập
hợp/danh sách.
Ví dụ: quan hệ tính khối lượng của hỗn hợp bằng tổng khối lượng các chất trong
hỗn hợp đó
15
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
- Quan hệ tính giá trị thuộc tính của 1 đối tượng trong 1 thuộc tính của đối tượng
khác có tập hợp danh sách.
Ví dụ: quan hệ tính nồng độ phần trăm của 1 chất tan trong dung dịch gồm
nhiều chất tan.
Quan hệ tính toán mở rộng được đặt tên là “Quan hệ tính toán phụ thuộc” và
được chia làm 2 loại được trình bày sau đây.
Qui ước:
- ListAttrs ⊂ Attrs: là tập các thuộc tính loại list (danh sách) hay set (tập hợp).
- DictAttrs ⊂ Attrs: là tập các thuộc tính loại từ điển (table).
- NumAttrs ⊂ Attrs: là tập các thuộc tính có kiểu số học như số thực, số nguyên…

chú ý là: NumAttrs ∩ ListAttrs = .
Loại 1: ∀ x ∈ f(la): expression(x, na)
trong đó
- la ⊆ ListAttrs : là tập các thuộc tính loại danh sách trong quan hệ tính toán
phụ thuộc
- na ⊆ NumAttrs : là các thuộc tính loại số học trong quan hệ tính toán phụ
thuộc
- expression là 1 đẳng thức dựa trên x và tập na.
- f : là một hàm số trả về một tập hợp (hữu hạn). f thường là các hàm filter (lọc),
các phép toán trên tập hợp, hay các hàm tổ hợp…
Cách biểu diễn trong tri thức.
depend [la] then [expression] for [x] in [f]

Loại 2: d(la, na)
trong đó
- la ⊆ ListAttrs : là tập các thuộc tính loại danh sách trong quan hệ tính toán
phụ thuộc
16
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
- na ⊆ NumAttrs : là các thuộc tính loại số học trong quan hệ tính toán phụ
thuộc
- d : (set function)
o : là một họ, (một lớp) các tập hợp, tập mà trong đó các phần tử là
một tập hợp (hữu hạn), là miền xác định của la.
o : là tích đề các giữa các miền giá trị của các biến trong tập na.
o : là một tập các đẳng thức.
d thường chứa các toán tử như , , …
2.2.3 Tập 10 sự kiện
Do có sự mở rộng kiểu thuộc tính của đôi tượng, tập các loại sự kiện cần bổ
xung thêm 1 số loại sự kiện mới dùng để biểu diễn các sự kiện liên quan tới các kiểu

thuộc tính mới. Cụ thể, để biểu diễn được các bài toán Hóa Vô Cơ, chúng ta cần sử
dụng các loại sự kiện sau đây (các loại sự kiện 6->10 là các loại sự kiện mới).
Chú ý một số kí hiệu quy ước dùng khi ghi cách biểu diễn các loại sự kiện trong
bảng sau:
Từ khóa Biểu diễn trực quan Mô tả Ví dụ cụ thể
id (identifier)
obj <object> chỉ tên một đối
tượng
TAM_GIAC
attr <object>[<attribute>] chỉ thuộc tính của
một đối tượng
[GocA], [GocB], [GocC]
indexAttr <object>[<atrribute>]
[<key>]
Chỉ giá trị của thuộc
tính kiểu Dict tại vị
trí có khóa là <key>
concept <concept> chỉ tên một khái
niệm
SUBTANCE
const <const> chỉ biểu thức hằng 22.4
17
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
[1] Sự kiện thông tin về loại của đối tượng.
Cấu trúc sự kiện: type(obj, concept)
[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: determined(<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: (obj | attr) = const
[4a] Sự kiện bằng nhau giữa 2 thuộc tính của các đối tượng có kiểu dữ liệu
thực
Cấu trúc sự kiện: (attr | indexAttr) = (attr | indexAttr)

[4l] Sự kiện bằng nhau giữa 2 thuộc tính của các đối tượng có kiểu danh
sách, tập hợp
Cấu trúc sự kiện: attr = attr

[4o] Sự kiện bằng nhau giữa một đối tượng với một đối tượng hay thuộc
tính đối tượng khác
Cấu trúc sự kiện: obj = (obj | attr | indexAttr)

[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:
(obj | attr) = <biểu thức tính toán 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.
18
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Cấu trúc sự kiện: relation(R, (obj|attr)+)

[7] Sự kiện so sánh đối tượng hay thuộc tính đối tượng với một hằng
Cấu trúc sự kiện: (obj|attr) OP const
trong đó: OP là một trong các toán tử sau

[8] Sự kiện xác định miền giá trị của đối tượng
Cấu trúc sự kiện: in(x, X)

trong đó:
x có dạng
obj | attr hay (dạng x1 )
[ obj | attr , (obj | attr)* ] (dạng x2)
X có dạng
{ option1, option2 … } nếu x là dạng x1 hay x2 hay
attr nếu x là dạng x1
với option_i là các biểu thức hằng hay danh sách các biểu thức
hằng

[9] Sự kiện một thuộc tính là tập con của một tập hợp hay thuộc tính khác
Cấu trúc sự kiện: subset(attr, { }|attr2 )
Chú ý: "tập con" ở đây là tập con hay bằng chính tập hợp đó, ký hiệu trong toán
học là ⊆

[10]Sự kiện xác định quan hệ "chứa" trong 1 danh sách (Sự kiện ràng buộc
về thành phần)
Cấu trúc sự kiện: contain(attr, {[Concept1, n1?] (, [Concepti, ni?])*}
trong đó
Attr là thuộc tính đối tượng mà có kiểu là `list` hoặc `set`
19
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Concept
i
là loại đối tượng, khái niệm
Ni ràng buộc về số lượng các đối tượng thuộc loại Concepti
trong attr
ni có thể vắng mặt trong sự kiện
ni không có: không có ràng buộc về mặt số lượng
ni = 0: list không chứa bất kỳ thành phần nào thuộc Class_i

ni = k: list chứa đúng k thành phần thuộc Class_i
20
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
3 CHƯƠNG III – XÂY DỰNG VÀ CÀI ĐẶT ỨNG DỤNG
BIỂU DIỄU TRI THỨC HÌNH HỌC TAM GIÁC
3.1 Tổng quan bài toán
Ứng dụng mô hình biểu diễn tri thức COKB trong 1 đối tượng tam giác. Mục đích:
- Trình bày phương pháp lưu trữ và giải thuật của mô hình.
- Xác định giá trị 1 tham số với những giả thiết đã cho.
Lưu ý: giả định các giá trị truyền vào giả thiết là hợp lệ đối với tam giác. (Ví dụ:
GocA+GocB+GocC=Pi, …).
3.2 Cấu trúc dữ liệu
Chương trình lưu trữ file “CObject.txt” dung để xác định thông tin tam giác với các
thành phần sau:
- Name
- Parameters: mô tả các thông số của đối tượng. Chương trình chưa sử dụng
thông tin này.
- Attributes: Các thuộc tính
- Functions: Các quan hệ suy diễn tính toán
- Facts: Các tính chất hay sự kiện (chưa xử lý)
- Rules: 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 than đối tượng.
3.3 Giải thuật
CObject được khởi tạo với các thông tin về Attributes, Functions, Rules đọc từ file
“CObject.txt”.
Giải thuật gồm 4 bước chính như sau:
21
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
- Bước 1: Xác định them các giả thiết mới dựa trên giả thiết đã cho và tập
Rules của đối tượng.

- Bước 2: Refactor giả thiết – Tính toán các giá trị có thể tính được trong giả
thiết. Nếu kết quả cần tìm được xác định được toàn bộ trong bước này => kết
thúc chương trình.
- Bước 3: Dựa vào các hàm quan hệ suy diễn tính toán và giả thiết để tính ra
các giá trị mới. Bước này được lập lại cho đến khi không còn thuộc tính nào
có thể thay thế được.
- Bước 4: Xuất kết quả thực hiện.
3.4 Hướng dẫn cài đặt và sử dụng chương trình
3.4.1 Yêu cầu
Chương trình chạy trên nền .Net Framework 4.0 nên người dùng cần phải cài đặt .Net
Framework 4.0. Tải và cài đặt tại địa chỉ:
.
3.4.2 Cài đặt và sử dụng chương trình
Chương trình được đóng gói thành tập tin COKBHinhHocTamGiac.msi. Người
dùng có thể click setup và theo hướng dẫn cài đặt cho đến khi hoàn tất.
Sau khi kết thúc cài đặt, hãy khởi động chương trình bằng cách double click vào
biểu tượng hình mặt cười trên desktop.
22
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Giao diện màn hình giao diện lúc chạy ứng dụng sẽ hiển thị.
Hình 2 - Giao diện biểu diễn tri thức
23
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Hình 3 - Giao diện tính toán
24
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Hình 4 - Giao diện thông tin học viên
25
BÙI CHÍ CƯỜNG - CH1101007 LỚP CH CNTTQM - K6
Người dùng thông qua giao diện biểu diễn tri thức, người dùng có thể load file

định nghĩa sẵn các tri thức cho tam giác, mặc định chương trình sẽ load sẵn một tri
thức mẫu thiết lập sẵn.
Bên cạnh đó, giao diện tính toán cũng cho phép chúng ta load các file ví dụ có sẵn
để tính toán.
3.4.3 Thử nghiệm
Chương trình đã tính toán được các kết quả dựa trên các tham số và luật suy diễn
đã định nghĩa ban đầu.

×