2 CHƯƠNG II - TỔNG QUAN VỀ MÔ HÌNH COKB VÀMỘT SỐ CẢI TIẾ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
Trang 1Trường Đại Học Công Nghệ Thông Tin
BÀI THU HOẠCH MÔN
Trang 2LỜ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 lập trình Symbolic
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, 15 tháng 1 năm 2013
Bùi Chí CườngCH1101007
Trang 3MỤC LỤC
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC CÁC HÌNH
CHƯƠNG I - MỞ ĐẦU 6
1.1 Giới thiệu chung 6
1.2 Hoạt động nghiên cứu 6
1.3 Một số thành tựu hiện có 7
CHƯƠNG II - TỔNG QUAN VỀ MÔ HÌNH COKB VÀ MỘT SỐ CẢI TIẾN 10
2.1 Mô hình COKB 10
2.1.1 Định nghĩa đối tượng tính toán (C-Object): 10
2.1.2 Mô hình cho một C-Object 10
2.1.3 Mô hình tri thức các đối tượng tính toán (COKB) 11
2.2 Một số cải tiến mới 13
2.2.1 Mở rộng kiểu thuộc tính của C-Object 13
2.2.2 Quan hệ tính toán phụ thuộc 16
2.2.3 Tập 10 sự kiện 18
CHƯƠNG III – XÂY DỰNG MÔ HÌNH TRI THỨC VÀ CÀI ĐẶT ỨNG DỤNG GIẢI BÀI TOÁN HOÁ VÔ CƠ 22
3.1 Mô hình tri thức 22
3.1.1 Tập C 22
3.1.2 Tập H 23
3.1.3 Tập R 24
3.1.4 Tập Rules 24
3.2 Cách tổ chức lưu trữ 25
3.2.1 Tập các khái niệm (C-Object) 25
3.2.2 Tập các quan hệ phân cấp 27
3.2.3 Tập các quan hệ R 27
3.2.4 Tập các luật suy diễn 28
3.3 Tổng quan bài toán 28
3.4 Cấu trúc dữ liệu 32
3.5 Giải thuật 32
3.6 Hướng dẫn cài đặt và sử dụng chương trình 32
3.6.1 Yêu cầu 32
Trang 43.6.3 Thử nghiệm 39
CHƯƠNG IV - KẾT LUẬN 40
4.1 Tóm tắt kết quả đạt được 40
4.2 Hướng phát triển 41
4.3 Tài liệu tham khảo 41
Trang 5DANH MỤC CÁC HÌNH
Hình 1 - Mẫu ví dụ về ChEBI 8
Hình 2 - Chemlap 9
Hình 3 - Giao diện chính của DCE 2008 9
Hình 4 - Ví dụ về sơ đồ mạch điện 15
Hình 5 - Giao diện chính 34
Hình 6- Giao diện hướng dẫn 35
Hình 7 - Giao diện thông tin học viên 36
Hình 8 - Load bài toán mẫu 37
Hình 9 - Chọn 1 bài toán mẫu bất kỳ 38
Hình 10 - Sau khi load xong bài toán mẫu 38
Trang 61 CHƯƠNG I - MỞ ĐẦU
1.1 Giới thiệu chung.
Trong những ngành cần quan tâm ứng dụng Công nghệ thông tin, Giáo dục làmột trong những ngành được nhà nước ta tập trung hàng đầu Đem Công nghệ thôngtin 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ọcsinh; 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àitậ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ảicho 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ữnglờ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ảitoá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ễ trongcá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ănggiải toán trong các kì thi hơn
1.2 Hoạt động nghiên cứu.
Đề tài tiểu luận này sẽ nghiên cứu phát triển mô hình COKB, ứng dụng vào biểudiễn tri thức và hệ tự động giải 1 số bài tập hoá 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ụ choviệ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
Trang 7bà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 đơngiả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ộctí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ệpTHPT, đề thi Đại học khối A, B hằng năm
Đề tài sẽ sử dụng công cụ lập trình chính là Maple 16 vì ngôn ngữ này hỗ trợ khátốt lập trình tính toán hình thức, một trong những kĩ thuật cơ bản trong lập trình các hệthống tự động giải toán
1.3 Một số thành tựu hiệ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âydự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òitrê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ànthiệ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)
Trang 8Hình 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ứuthô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ủaChEBI 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ấthữ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ựchó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ụngthươ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ựchiệ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óachấ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 đốichính xác và đem lại 1 môi trường ảo thân thiện với người dùng
Trang 9Hình 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ễntri 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ươngtrì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ềmthự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 thamgia, 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ìmkiếm và không có khả năng xử lý suy diễn trên các phản ứng tìm được
Hình 3 - Giao diện chính của DCE 2008
Trang 102 CHƯƠNG II - TỔNG QUAN VỀ MÔ HÌNH COKB VÀ
MỘT SỐ CẢI TIẾ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 = x1, x2, , xn trong đó mỗi thuộc tính lấygiá 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 đốitượ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ừ Atrong đố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ờicâu hỏi rằng có thể suy ra được các thuộc tính trong B từ các thuộc tínhtrong 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
Trang 11- 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ậpcủ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ảnloạ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 đốitượ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ệcgiả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
Trang 12tượ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ảnnầ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ộttam 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ùngphươ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 đốitượ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óctươ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ủaluậ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ácthuậ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
Trang 13trong 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ìnhthà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ánCOKB, 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ànhphầ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ềntri 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ínhAttrs 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ácthuộ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ú ý: địnhnghĩ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ể đượcgá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ạphơn khi biểu diễn giá trị thuộc tính của đối tượng
Trang 14Ví 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ạothà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 trithứ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ểuthuộ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)
Trang 15Vớ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)
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 4 - Ví dụ về sơ đồ mạch điện
Trang 16dict(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.
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ậphợp/danh sách
Trang 17Ví 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 tronghỗ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ượngkhá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)
- 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)
Trang 18o : là tích đề các giữa các miền giá trị của các biến trong tập na.
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:
Trang 19trí có khóa là <key>
concept <concept> chỉ tên một khái
niệm
SUBTANCEconst <const> chỉ biểu thức hằng 22.4
[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
Trang 20Cấ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
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)
[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ánhọc là ⊆
Trang 21[10]Sự kiện xác định quan hệ "chứa" trong 1 danh sách (Sự kiện ràng buộc
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