ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO THU HOẠCH MÔN HỌC
BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG
Đề tài:
XÂY DỰNG MÔ HÌNH BIỂU DIỄN TRI THỨC
VÀ HỆ HỖ TRỢ GIẢI MỘT SỐ LỚP BÀI TẬP HÓA VÔ
CƠ
TRONG CHƯƠNG TRÌNH THPT
Giảng viên hướng dẫn : PGS.TS Đỗ Văn Nhơn
Sinh viên thực hiện : Đỗ Thị Nhung - CH1101117
TP. Hồ Chí Minh, tháng 1 năm 2013
2
LỜI MỞ ĐẦU
Công nghệ thông tinđược ra đời và phát triển từ những năm nữa cuối của thế
kỉ XX. Và đến nay đã gặt hái được rất nhiều thành tựu vượt bậc, khả năng áp dụng
rộng khắp vào tất các các ngành kinh tế, xã hội khác nhau và làm thay đổi không ít
lối sống, cách suy nghĩ của con người hiện đại.
Tuy nhiên, nhu cầu của con người ngày càng cao, họ không chỉ cần những
thiết bị Công nghệ thông tin làm việc theo mệnh lệnh được lập trình sẵn, hỗ trợ tính
toán cơ bản hay lưu trữ dữ liệu và tìm kiếm thông thường. Họ cần những thiết bị
máy tính thông minh hơn, giúp họ tìm ra lời giải những bài toán khó, gợi ý cho họ
trong giải quyết các vấn đề phức tạp v.v…
Trước nhu cầu mới, ngành Khoa học máy tính nói chung và lĩnh vực Trí tuệ
nhân tạo nói riêng nhận vai trò quan trọng trong việc nghiên cứu tìm ra các giải
pháp tiên tiến giúp làm ra những phần mềm và thiết bị máy tính đáp ứng nhu cầu
trên. Chúng phải có khả năng tự động xử lý thông tin, xử lý tri thức, suy luận tính
toán và điều khiển phức tạp. Một số ứng dụng trong lĩnh vực này có thể kể đến như:
các hệ tự động lập luận và chứng minh định lý;các hệ chuyên gia; các hệ hiểu và xử
lý ngôn ngữ tự nhiên; máy học và khai khoáng dữ liệu; robotics v.v…
Để xây dựng được 1 hệ thống thông minh, việc đầu tiên là phải tìm ra 1 mô
hình biểu diễn tri thức, đưa tri thức ở dạng tự nhiên thành dạng mà máy tính có thể
lưu trữ và xử lý được, cùng với 1 bộ máy suy diễn, tìm kiếm tri thức trên mô hình
đó. Từ những năm cuối thế kỉ trước, người ta đã tìm và liệt kê ra được 4 phương
pháp chính để lưu trữ và xử lý tri thức như sau :
- Biểu diễn logic như phương pháp diễn diễn tri thức theo vị từ cấp 1.
- Biểu diễn tri thức thủ tục như phương pháp biểu diễn tri thức dạng hệ luật
dẫn.
- Biểu diễn tri thức dạng mạng ngữ nghĩa.
- Biểu diễn tri thức theo cấu trúc các frames và object.
3
Dựa trên việc nghiên cứu và kết hợp các phương pháp trên cùng với một số
cải tiến, tác giả Đỗ Văn Nhơn đã đề xuất ra mô hình các đối tượng tính toán C-
Object vào năm 1997. Từ ngày được công bố, C-Object đã được phát triển, mở rộng
thành các mô hình như: mô hình mạng các đối tượng tính toán COKB, mô hình
mạng các đối tượng tính toán mở rộng ECOKB. Từ những kết quả trên, rất nhiều
nghiên cứu ứng dụng được ra đời nhằm giải quyết các vấn đề liên quan tới biểu diễn
tri thức và suy luận tìm lời giải cho bài toán ở nhiều lĩnh vực khác nhau như: toán
đại số tuyến tính, vật lý điện 1 chiều, hình học giải tính 2 chiều/ 3 chiều v.v…
Kết quả của những nghiên cứu ứng dụng từ mô hình COKB ở trên đã phần
nào chứng minh được khả năng áp dụng của mô hình này vào lĩnh vực phát triển
các công cụ hỗ trợ học tập thông minh. Tuy nhiên số lượng ứng dụng vẫn chưa
nhiều và mức độ đem lại hiệu quả thực tế vẫn chưa cao, các nghiên cứu đã có vẫn
thiên về môn Toán học và Vật lý hơn. Hơn nữa, Hóa học cũng là một bộ môn quan
trọng trong chương trình Phổ thông nhưng vẫn chưa có nghiên cứu chính thức nào
về biểu diễn tri thức và hệ hỗ trợ giải bài tập cho Hóa học. Nhu cầu của học sinh
hiện nay về 1 hệ hỗ trợ học tập thông minh tương đối cao, các phần mềm này nếu
hoạt động tốt sẽ giúp học sinh tiếp thu kiến thức nhanh hơn, bằng một cách thú vị
hơn, góp phần vào việc nâng cao chất lượng dạy và học trong môi trường Phổ
thông.
Đó là lý do em chọn khóa luận “Nghiên cứu xây dựng mô hình cơ sở tri thức
và hệ giải 1 số lớp bài toán Hóa vô cơ trong chương trình THPT” với mong muốn
tìm ra được 1 phương pháp biểu diễn và xử lý tri thức Hóa vô cơ trên máy tính bằng
cách áp dụng và cải tiến lý thuyết của mô hình COKB, góp phần vào thành quả
chung của việc ứng dụng mô hình COKB vào lĩnh vực E-learning.
Nội dung của khóa luận này được chia làm 7 chương như sau:
Chương 1: Giới thiệu chung về vấn đề nghiên cứu, một số thành tựu đã có liên quan
tới việc biểu diễn và xử lý tri thức Hóa học trên máy tính. Ngoài ra, chương này sẽ
4
giới thiệu thêm về 1 số lý thuyết cơ bản trong việc nghiên cứu phát triển 1 hệ cơ sở
tri thức trên máy tính.
Chương 2: Trình bày về mô hình COKB và 1 số vấn đề mở rộng mô hình COKB.
Hiện nay đã có mô hình ECOKB mở rộng nhưng đề tài chỉ tập trung cải tiến mô
hình COKB để nghiên cứu xây dựng ứng dụng theo mục đã đề ra. Nội dung mở
rộng sẽ liên quan tới kiểu thuộc tính của đối tượng tính toán C-Object và quan hệ
tính toán mới dùng để mô tả mối liên hệ giữa các kiểu thuộc tính mới. Bên cạnh đó,
chương 3 sẽ trình bày thêm 4 loại sự kiện mới bên cạnh 6 sự kiên đã có trong mô
hình COKB.
Chương 3: Biểu diễn tri thức Hóa vô cơ bằng cách áp dụng mô hình COKB nhưng
chỉ sử dụng 4 trong 5 thành phần là tập C, tập H, tập R và tập Rules,có áp dụng
thêm lý thuyết cải tiến trình bày ở chương 3. Cùng với cách tổ chức lưu trữ tri thức
này lên máy tính. Thay vì sử dụng các tập tin TXT chứa dữ liệu cho từng tập
(C,H,R,Rules), khóa luận sẽ trình bày cách lưu trữ tất cả tri thức vào 1 tập tin có tên
Chemistry.KB theo 1 chuẩn lưu trữ khác.
Chương 4: Cài đặt thử nghiệm. Đề tài sử dụng công cụ lập trình chính là Maple để
hiên thực toàn bộ lý thuyết đã đề ra, sử dụng C#, Window form trong .NET
Frameworks 4.0 để phát triển giao diện demo.
Chương 5: Kết luận và hướng phát triển.
Cuối cùng là danh mục tài liệu tham khảo.
5
LỜI CẢM ƠN
Sau hơn 1 tháng nghiên cứu và tìm tòi tôi đã hoàn thành bài thu hoạch này.
Để đạt được kết quả này, tôi đã nỗ lực hết sức đồng thời cũng nhận được rất nhiều
sự quan tâm, giúp đỡ, ủng hộ của các quí Thầy Cô và các bạn.
Trước hết, chúng em xin gửi lời cảm ơn chân thành đến Khoa Công Nghệ
Phần Mềm, Khoa Mạng Máy Tính, trường Đại học Công Nghệ Thông Tin và các
quí Thầy Cô đặc biệt là TSKH. Đỗ Văn Nhơn đã tận tình hướng dẫn, giảng giải và
cho em nguồn cảm hứng đến với môn học và rộng hơn là cảm hứng trong nghiên
cứu khoa học.
Tôi cũng rất cảm ơn bạn bè trong Khoa đã luôn bên cạnh và ủng hộ, đóng
góp ý kiến giúp tôi có thể giải quyết các vấn đề khó khăn gặp phải trong quá trình
thực hiện báo cáo cuối kì này.
Mặc dù đã rất nỗ lực, cố gắng nhưng kiến thức còn hạn chế nên chắc chắn
báo cáo cuối kì này vẫn còn nhiều thiếu sót, và thực sự chưa phải là một báo cáo
hoàn thiện. Tôi rất mong nhận được sự góp ý đánh giá của quí Thầy Cô, của các
bạn để tôi có thể phát triển báo cáo này thêm hoàn chỉnh hơn.
Một lần nữa, tôi xin chân thành cảm ơn!
TPHCM, Tháng 01 năm 2013
Sinh viên thực hiện
Đỗ Thị Nhung
6
Mục lục
7
Chương 1: GIỚI THIỆU ĐỀ TÀI
1.1. Bối cảnh
Hiện nay, thế giới đang bước vào giai đoạn bùng nổ Công nghệ thông tin. Việt
Nam với vị thế là 1 nước đang phát triển cần thúc đẩy việc ứng dụng Công nghệ thông
tin vào nhiều lĩnh vực, áp dụng kĩ thuật cao, công nghệ tiên tiến vào đời sống và sản
xuất nhằm thúc đẩy đất nước đi lên 1 cách bền vững.
Trong những ngành cần quan tâm ứng dụng Công nghệ thông tin, Giáo dục là 1
trong những ngành được nhà nước ta tập trung hàng đầu. Đem Công nghệ thông tin
vào Giáo dục giúp nâng cao chất lượng đào tạo, nâng cao trình độ con người trong xã
hội mới.
Ứng dụng Công nghệ thông tin trong giao dục bao gồm: các phần mềm hỗ trợ
soạn thảo bài giảng cho giáo viên; phần mềm hỗ trợ học tập, tra cứu kiến thức cho học
sinh; các hệ thống e-learning trực tuyến.
Nói về phần mềm hỗ trợ học tập, phần lớn các phần mềm loại này chỉ đáp ứng
được nhu cầu cơ bản của học sinh như ôn tập lý thuyết, tra cứu và hỗ trợ giải các bài
tập mẫu. Gần như ít có phần mềm nào tiếp cận tới vấn đề hỗ trợ học sinh tìm lời giải
cho các bài toán khác nhau. Việc sử dụng các phần mềm có khả năng hỗ trợ tìm lời
giải sẽ giúp học sinh tiếp cận kiến thức mới nhanh hơn, tự do sáng tạo hơn để tìm ra
những lời giải mới.
Trong chương trình Phổ thông, đặc biệt là chương trình ban A, Toán – Lý –
Hóa là 3 môn học quan trọng. Các bài tập, bài kiểm tra của các môn này nặng về tư
duy giải toán. Không phải học sinh nào cũng có đủ năng lực để giải hết các bài tập khó
dễ trong các đề thi của 3 môn học. Học sinh cần có một công cụ hỗ trợ, gợi ý để tìm ra
lời giải. Từ những gợi ý của công cụ phần mềm, học sinh sẽ dễ dàng luyện tập nâng
cao kĩ năng giải toán trong các kì thi hơn.
8
Như vậy, nhu cầu về 1 hệ thống hỗ trợ giải bài tập thông minh đã xuất hiện.
Đây chính là động lực để em tìm tòi, nghiên cứu, phát triển các hệ thống tiên tiến đáp
ứng nhu cầu trên.
1.2. Mục tiêu và phạm vi đề tài
Đề 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óa Vô 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óa Vô 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óa Vô cơ thỏa mãn các yêu cầu sau:
- Có cơ sở tri thức về Hóa vô 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óa Vô 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óa vô 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.
1.3. Tổng quan về thành tựu trong và ngoài nước
Mặc dù, hóa học là 1 ngành học đã có từ lâu đời nhưng các nghiên cứu về xây
dựng hệ thống tri thức cho lĩnh vực này còn khá mới mẻ. Kết quả của quá trình tìm tòi
trên mạng và các tài liệu chính thức, hiện tại chỉ có 1 vài công trình nghiên cứu đã
hoàn thiện và đang được tiếp tục phát triển, tiêu biểu là công trình khoa học mang tên
ChEBI (Chemical Entities of Biological Interest)
9
Hình 1.1 Mẫu ví dụ về ChEBI
ChEBI là một hệ cơ sở tri thức mở về các hợp chất hữu cơ, được dùng để tra
cứu thông tin về các chất, mối liên hệ giữa các chất và cấu tạo của chúng. Mục tiêu
của ChEBI là xây dựng hệ thống tiêu chuẩn dùng để biểu diễn tri thức của các hợp
chất hữu cơ và lưu trữ vào cơ sở dữ liệu. Có thể gọi ChEBI là một Ontology của lĩnh
vực hóa hữu cơ. Mọi cá nhân, tổ chức có nhu cầu đều có thể tải miễn phí toàn bộ mã
nguồn và cơ sở dữ liệu của ChEBI trên trang chủ www.ebi.ac.uk.
Bên cạnh sự hiếm hoi các đề tài nghiên cứu về lĩnh vực này là các ứng dụng
thương mại hỗ trợ dạy và học Hóa thông minh với các chức năng tương đối hiện đại
và cao cấp. Ví dụ tiêu biểu nhất là phần mềm tạo thí nghiệm ảo trên máy tính
Chemlap. Phần mềm này cung cấp đầy đủ các công cụ và tính năng ảo cần thiết cho
việc thực hiện 1 thí nghiệm hóa học. Nhận biết được quá trình xảy ra các phản ứng
hóa học và hiện tượng của nó. Có thể nói phần mềm này đã xử lý rất tốt tri thức thực
tế về các hóa chất trong Hóa học, khả năng xử lý phân tích với các điều kiện khác
nhau tương đối chính xác và đem lại 1 môi trường ảo thân thiện với người dùng.
10
Hình 1.2 Chemlap
Trong nước, các nghiên cứu khoa học và đề tài ứng dụng liên quan tới biểu
diễn tri thức của lĩnh vực Hóa học nói chung và Hóa vô cơ nói riêng gần như vẫn chưa
có nhiều thành tựu đáng kể ngoại trừ một số phần mềm ứng dụng mang tính đơn giản
và không chứa các yếu tố liên quan tới tri thức và xử lý tri thức.
Một ứng dụng phổ biến về hỗ trợ học Hóa học có thể kể đến là phần mềm “Từ
điển phương trình Hóa học DCEv4.00”, phần mềm hỗ trợ tra cứu tìm kiếm phương
trình phản ứng hóa học do nhóm học sinh trường Lê Hồng Phong thực hiện. Phần
mềm thực hiện tra cứu các phương trình phản ứng hóa học dựa trên thông tin về chất
tham gia, chất tạo thành. Kết quả trả về là các phản ứng tìm được cùng với thông tin
chi tiết về phản ứng đó. Chương trình sử dụng các kĩ thuật cơ bản để so khớp thông tin
tìm kiếm và không có khả năng xử lý suy diễn trên các phản ứng tìm được.
11
Hình 1.3 Giao diện chính của DCE 2008
1.4. Các vấn đề cơ bản trong thiết kế hệ giải toán dựa trên tri
thức
1.4.1. Cấu trúc hệ thống
Hệ giải toán dựa trên tri thức là 1 hệ thống thông minh, có khả năng biểu diễn
được tri thức tự nhiên lên máy tính, có thể xử lý tri thức và suy luận giải quyết bài
toán 1 cách tự động. Hệ thống thông minh này phải có khả năng thực hiện suy luận
trên 1 miền tri thức cụ thể nào đó. Cấu trúc cơ bản của hệ thống này bao gồm các
thành phần như: Giao diện người dùng, cơ sở tri thức, bộ suy diễn, hệ thống phân tích
bài toán và hiệu chỉnh cơ sở tri thức
12
Hình 1.4 Mô hình của hệ thống tự động suy diễn
Hai thành phần quan trọng nhất của 1 hệ tự động suy diễn chính là Cơ sở tri
thức và Bộ suy diễn. Cơ sở tri thức chính là trái tim của hệ thống, là nơi lưu trữ tất cả
tri thức của 1 lĩnh vực cụ thể để máy tính có thể xử lý được. Bộ suy diễn là thành phần
sẽ đi tìm lời giải cho các bài toán bằng cách áp dụng tri thức có trong Cơ sở tri thức.
Cơ sở tri thức và Bộ suy diễn cần phải được tách biệt rõ ràng bởi vì:
- Sự tách biệt giữa Cơ sở tri thức và Bộ suy diễn làm cho việc biểu diễn tri thức
tự nhiên hơn, gần gũi hơn với con người.
- Sự tách biệt này nhằm tăng cường tính module hóa cho toàn bộ hệ thống. Mỗi
module sẽ được giao 1 nhiệm vụ khác nhau giúp cho việc kiểm tra, nâng cấp
hay sửa lỗi hệ thống được dễ dàng hơn.
- Tri thức là thành phần có thể thay đổi được bởi người sử dụng, còn bộ suy diễn
thường được thiết kế để có thể hoạt động cả khi nội dung tri thức đã thay đổi.
Tuy nhiên, do mức độ phức tạp của tri thức nên việc cập nhật cơ sở tri thức cần
được giới hạn trước trong 1 miền tri thức nào đó.
- Sự tách biệt giữa 2 phần này còn giúp ta dễ dàng thử nghiệm nhiều chiến lượt
suy diễn trên cùng 1 cơ sở tri thức hay ngược lại.
Giống như các hệ thống chứa thông tin khác, cơ sở tri thức sau khi thiết kế phải đả bảo
dễ dàng sử dụng, cập nhật khi cần thiết.
13
1.4.2. Biểu diễn tri thức
Biểu diễn tri thức là bài toán lớn đặt lên vai các nhà làm nghiên cứu trong lĩnh
vực Khoa học máy tính và Trí tuệ nhân tạo. Biểu diễn tri thức cơ bản là việc chuyển
đổi tri thức thực thành 1 kiểu biểu diễn khác để có thể lưu trữ và xử lý trên máy tính.
Thành quả nghiên cứu nhiều năm của ngành Khoa học máy tính đã đề ra 4 phương
pháp biểu diễn tri thức cơ bản như sau:
- Các phương pháp biểu diễn bằng logic hình thức. Các phương pháp này sử
dụng các biểu diễn hình thức để diễn đạt các sự kiện và các luật trong cơ sở tri
thức. Người ta thường dùng ngôn ngữ lập trình PROLOG để biểu diễn phương
pháp này.
- Các phương pháp biểu diễn tri thức thủ tục. Loại phương pháp này biểu diễn tri
thức như là một tập hợp các chỉ thị dùng cho giải quyết các bài toán. Chỉ thị
như thế thường được thể hiện bởi tập các luật dẫn có dạng if … then…
- Các phương pháp biểu diễn dạng mạng. Biểu diễn mạng kiến thức như là một
đồ thị trong đó các đỉnh biểu diễn cho các khái niệm hay các đối tượng và các
cạnh biểu diễn quan hệ hay những sự kết hợp nào đó giữa các đối tượng và khái
niệm. Phổ biến nhất trong các phương pháp loại này là các mạng ngữ nghĩa và
các đồ thị khái niệm.
- Các phương pháp biểu diễn cấu trúc. Các ngôn ngữ biểu diễn cấu trúc cho
phép sử dụng các cấu trúc dữ liệu phức tạp và các cấu trúc dữ liệu trừu tượng
trong biểu diễn. Ví vụ như các khung (frames) và các đối tượng (objects).
Rõ ràng mỗi phương pháp biểu diễn trên đều có ưu và nhược điểm riêng. Tri
thức tự nhiên vô cùng phong phú và đa dạng, do đó các chuyên gia khả định rằng
muốn xây dựng được một hệ cơ sở tri thức tốt cần phải vận dụng linh hoạt tất cả các
cách trên cùng với những cải tiến thay đổi khi cần thiết.
14
1.4.3. Bộ suy diễn tự động
Khi đã có 1 cơ sở tri thức tốt, việc quan trọng tiếp theo là xây dựng được bộ
suy diễn tự động trên cơ sở tri thức đó. Các phương pháp suy diễn tự động đều hướng
tới mục tiêu là áp dụng tri thức trong cơ sở tri thức, phát sinh các sự kiện mới từ các
sự kiện đã có. Sau đây là 4 chiến lượt suy diễn tự động tương đối khái quát:
- Phương pháp hợp giải trong biểu diễn tri thức dưới dạng logic vị từ. Trong
phương pháp biểu diễn logic hình thức ta đã sử dụng luật “Modus Ponens”, luật
“tam đoạn luận”.
- Phương pháp suy diễn tiến (Forward chaining) như sau: “Chiến lược suy luận
được bắt đầu bằng tập sự kiện đã biết, rút ra các sự kiện mới nhờ dùng các luật
mà phần giả thiết khớp với sự kiện đã biết, và tiếp tục quá trình nầy cho đến khi
thấy trạng thái đích, hoặc cho đến khi không còn luật nào khớp được các sự
kiện đã biết hay được sự kiện suy luận”.
- Phương pháp suy diễn lùi (Backward chaining). Phương pháp nầy được tiến
hành bằng cách truy ngược từ mục tiêu cần đạt được trở về phần giả thiết của
bài toán bằng cách áp dụng các luật trong cơ sở tri thức. Quá trình suy diễn lùi
nầy sẽ phát sinh một sơ đồ cây mục tiêu kèm theo một cơ chế quay lui và lời
giải sẽ được tìm thấy khi tất cả các mục tiêu ở các nút lá của cây mục tiêu đều
thuộc về những sự kiện đã biết.
- Kết hợp suy diễn tiến và suy diễn lùi. Mỗi phương pháp suy diễn tiến và lùi đều
có ưu nhược điểm của nó. Việc kết hợp hai phương pháp này một cách thích
hợp sẽ cho ta một phương pháp suy diễn hiệu quả trong các ứng dụng cụ thể.
15
Chương 2: MÔ HÌNH COKB VÀ 1 SỐ CẢI
TIẾN MỚI
2.1 Mô hình COKB 5 thành phần
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)
16
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
- 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:
17
• 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
[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:
18
r : {sk1, sk2, , skn} -> { sk1, sk2, , skm }
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”. 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.
Ví dụ
19
Với khái niệm "Hỗn hợp" trong Hóa học. Như đã biết, khái niệm Hỗn hợ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ó?
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.
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)
Ví dụ:
- Trong một thí nghiệm hóa học, các phản ứng hóa học xảy ra một cách lần lượt,
phản ứng này xảy ra trước, phản ứng kia xảy ra ngay sau khi phản ứng này kết
thúc. Chẳng hạn, khi ta cho vào dung dịch chứa và một lượng dư nhôm thì
phản ứng sẽ xảy ra lần lượt như sau:
có tính oxi-hóa mạnh hơn nên sẽ tác dụng trước với chất khử .
20
Sau khi lượng tác dụng hết, thì khi đó các phân tử trong mới bắt đầu tác dụng
với .
Để mô tả một thí nghiệm, ta có các thuộc tính như "State" dùng để chỉ trạng
thái của các chất có trong thí nghiệm tại một thời điểm, và "Phases" dùng để
chỉ các pha phản ứng xảy ra giữa các thời điểm trong thí nghiệm. Vậy
State có kiểu dữ liệu là list(list("Chất")) và
Phases có kiểu dữ liệu là list("Phản ứng")
Ứng với thí nghiệm trên, ta có:
State = [ [Fe2+, Cu2+, Al], [Fe2+, Al, Cu, Al3+], [Al, Cu, Al3+, Fe] ]
Phases[ , ]
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ụ:
- Quay trở lại với khái niệm "Hỗn hợp", một hỗn hợp sẽ có các chất tạo thành
nên nó. Ta gọi thuộc tính chỉ các chất tạo thành nên hỗn hợp có tên là
"Components". Thuộc tính "Components" của một hỗn hợp sẽ có kiểu dữ liệu
là set("Chất")
- Chẳng hạn, hỗn hợp gồm 3 kim loại Al, Fe, Cu có thuộc tính Component như
sau:
Components = { ch_Al, ch_Fe, ch_Cu }
21
Chú ý: ch_Al, ch_Fe, ch_Cu là tên đối tượng dùng để biểu diễn cho 3 kim loại
Al, Fe và Cu.
dict(TYPE1, TYPE2)
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.
Ví dụ: trong khái niệm "Dung dịch" là một hỗn hợp đồng nhất giữa dung môi
và chất tan (ở đây, ta chỉ xét dung môi là nước), người ta định nghĩa Nồng độ mol thể
tích (nồng độ phân tử gam), biểu thị số mol của một chất tan cho trước trong 1 lít dung
dịch.
Ta có thể biểu diễn nồng độ mol thể tích là một thuộc tính của "Dung dịch" như
sau:
MC có kiểu là dict("Chất", real)
Diễn tả một sự kiện "nồng độ mol thể tích của NaOH trong dung dịch X là 0.1
M" bằng đẳng thức:
2.2.2 Quan hệ tính toán phụ thuộc
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”. 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:
22
- 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 đó
- 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
23
- 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]
Ví dụ 1:
- Trong "Dung dịch", ta có thuộc tính Solutes biểu diễn các chất tan trong dung
dịch. Solutes có kiểu là set("Chất"). Thuộc tính MC dùng để chỉ nồng độ mol
của chất trong dung dịch. Như đã đề cập ở trên, MC có kiểu là dict("Chất",
real).
- Trong "Chất" ta có thuộc tính n chỉ số mol của chất. Thuộc tính n có kiểu là
real.
- Ta có phát biểu như sau:
Nồng độ mol của một chất trong dung dịch bằng số mol của chất đó trong
dung dịch chia cho thể tích dung dịch.
- Ta biểu diễn phát biểu trên theo quan hệ tính toán phụ thuộc loại 1 như sau:
nếu biểu diễn quan hệ tính toán trên theo dạng tuyến như sau:
depend Solutes then MC[s] = s[n] / V for s in Solutes
Ví dụ 2:
- Trong "Hỗn hợp", ta có thuộc tính MoleRatio chỉ tỷ lệ mol của các chất có
trong hỗn hợp. MoleRation có kiểu dữ liệu là dict("Chất", integer)
- Ví dụ: Hỗn hợp hhX khí SO2, CO2, O2 có tỷ lệ mol là 1:2:1. Khi đó:
hhX[MoleRatio][ch_SO2] = 1
hhX[MoleRatio][ch_CO2] = 2
hhX[MoleRatio][ch_O2] = 1
24
- Tỷ lệ mol phu thuộc vào số mol của chất trong dung dịch thông qua quan hệ
tính toán sau:
Với chỉ tập các tập con của Components có 2 phần tử.
Nếu biểu diễn theo tuyến tính thì:
depend Components then
MoleRatio[x[1]] / MoleRatio[x[2]] = x[1][n] / x[2][n]
for x in combinat[choose](Components,2)
với hàm combinat[choose](X, n) là hàm trả về tập các tập con của X có n phần tử
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
- 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ư , , …
Ví dụ 1:
- Ta có phát biểu sau:
Tổng khối lượng các chất trong hỗn hợp bằng khối lượng của
hỗn hợp.
- Với một đối tượng "Hỗn hợp" ta có:
25