Tải bản đầy đủ (.pdf) (29 trang)

MÔN BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG TÌM HIỂU MÔ HÌNH COKB-ONT

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 (1.05 MB, 29 trang )



ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƢỜNG ĐẠI HỌC CÔNG NGHIỆ THÔNG TIN


CHUYÊN ĐỀ
BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG

BÀI THU HOẠCH


TÌM HIỂU MÔ HÌNH COKB-ONT



HƯỚNG DẪN
PGS. TS. ĐỖ VĂN NHƠN

HỌC VIÊN THỰC HIỆN
LÊ CUNG TƢỞNG (CH1101152)





Tp. Hồ Chí Minh, 2013
i

LỜI MỞ ĐẦU
Trong lĩnh vực Trí tuệ Nhân tạo, vấn đề về biểu diễn tri thức đóng vai trò rất quan


trọng trong việc thiết kế các hệ cơ sở tri thức và các hệ chuyên gia. Hiện nay đã có
nhiều phương pháp biểu diễn tri thức cho các hệ thống khác nhau ứng dụng trong nhiều
lĩnh vực. Ontology là một phương pháp mới để biểu diễn tri thức đặc biệt là trong các
hệ trí tuệ nhân tạo phân tán. Computational Object Knowledge Base Ontology (COKB-
ONT) [3] đã được đề xuất và ứng dụng vào các hệ giải toán. COKB-ONT bao gồm mô
hình, ngôn ngữ đặc tả, ngôn ngữ truy vấn và kỹ thuật xử lý hay suy diễn. Do thời gian
có hạn, bài thu hoạch này chỉ dừng lại ở mức tìm hiểu mô hình, ngôn ngữ đặc tả, mạng
các đối tượng tính toán và thuật giải suy luận trên mạng các đối tượng tính toán của
PGS. TS. Đỗ Văn Nhơn đã đưa ra trong [3].


ii

Mục lục
LỜI MỞ ĐẦU i
Mục lục ii
Chương 1. TỔNG QUAN 1
1.1. Mô hình tri thức các đối tượng tính toán – ontology COKB 1
1.1.1. Tập các khai niệm về các đối tượng tính toán 1
1.1.2. Tập các quan hệ phân cấp 3
1.1.3. Tập các quan hệ giữa các khái niệm 4
1.1.4. Tập các hàm 5
1.1.5. Tập các toán tử 5
1.1.6. Tập các luật 6
Chương 2. NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB 8
2.1. Ký pháp EBNF 8
2.2. Định nghĩa C-Object 9
2.2.1. Cây phân cấp 12
2.2.2. Sự kiện 12
2.2.3. Quan hệ 13

2.2.4. Luật 13
2.2.5. Hàm 14
2.2.6. Phép toán 16
2.2.7. Cú pháp khai báo 17
Chương 3. MẠNG CÁC ĐỐI TƯỢNG TÍNH TOÁN 20
3.1. Định nghĩa mạng các đối tượng tính toán 20
3.2. Thuật giải suy diễn trong mạng các đối tượng tính toán 21
TÀI LIỆU THAM KHẢO 26

1

Chƣơng 1. TỔNG QUAN
1.1. Mô hình tri thức các đối tƣợng tính toán – ontology COKB
Mô hình trí thức các đối tượng tính toán, viết tắt là COKB (Computational Objects
Knowledge Base) đề xuất trong [3] được xây dựng theo cách tiếp cận hướng đối tượng
kết hợp với các kỹ thuật lập trình tính toán hình thức, là một cấu trúc gồm 6 thành
phần:
(C, H, R, Ops, Funcs, Rules)
Trong đó:
- C: tập các khái niệm về đối tượng tính toán
- H: tập các quan hệ phân cấp
- R: tập các quan hệ giữa các loại khái niệm
- Ops: tập các toán tử
- Funcs: tập các hàm
- Rules: tập các luật
1.1.1. Tập các khai niệm về các đối tƣợng tính toán
Khái niệm được định nghĩa bằng một tên duy nhất. Các khái niệm được phân loại,
áp dụng cơ chế kế thừa. Có các loại khái niệm sau:
- Khái niệm nền: kiểu boolean, số tự nhiên, số nguyên, số hữu tỉ, số thực, tập hợp và
danh sách.

- Khái niệm cơ bản: có cấu trúc rỗng hoặc có một số thuộc tính có khái niệm nền.
Ví dụ khái niệm NGAY bao gồm các thuộc tính Ngay, Thang và Nam là các số tự
nhiên. Các khái niệm này làm nền cho các khái niệm cấp cao hơn.
2

- Khái niệm cấp 1: có một số thuộc tính là khái niệm nền và có thể thiết lập từ danh
sách các khái niệm cơ bản.
- Khái niệm cấp 2: có các thuộc tính là khái niệm nền và khái niệm cấp 1, có thể
thiết lập từ danh sách các khái niệm nền hoặc cơ bản. Mỗi khái niệm cấp 2 là một đối
tượng tính toán gồm các thành phần:
(Name, Constructs, Isa, Attrs, Constraints, F, Facts, Rules)
Trong đó:
- Name: tên của khái niệm
- Constructs: các thuộc tính xác định khái niệm
- Isa: phân cấp khái niệm
- Attrs: tập hợp các thuộc tính của khái niệm
- Constraints: tập hợp các điều kiện ràng buộc trên các thuộc tính
- F: tập hợp các quan hệ suy diễn tính toán
- Facts: tập hợp các tính chất hay các sự kiện vốn có của khái niệm
- 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 thân khái niệm.
Ví dụ 1: Tri thức về tam giác gồm các yếu tố như: 3 cạnh a, b, c; 3 góc tương ứng
A, B, C; 3 đường cao tương ứng ha, hb, hc; diện tính S; chu vi P; Các công thức liên hệ
giữa chúng: định lý góc trong tam giác, định lý sin, định lý cosin, công thức tính diện
tích. Ta có một đối tượng tam giác biễu diễn theo mô hình COKB như sau:
Name: TAMGIAC
Constructs: A, B, C
Isa: {}
Attrs: {GocA, GocB, GocC, a, b, c, ha, hb, hc, S, P}
Constraints: {a>0, b>0, c>0, ha>0, hb>0, hc>0, S>0, P>0}

3

F: {GocA + GocB + GocC = Pi, a*sin(GocB)=b*sin(GocA),
a^2 = b^2 + c^2 – 2*b*c*cos(GocA),…}
Facts: {}
Rules: {{GocA=GocB}⇒{a=b},{a=b}⇒{GocA=GocB},{a^2=b^2+c^2}⇒
{GocA=pi/2},{GocA=pi/2}⇒{a^2=b^2+c^2, b⊥c},…}
Sự kiện là một phát biểu được mô tả bằng các biểu thức, đẳng thức, quan hệ giữa
các đối tượng, thuộc tính hoặc các hàm mà có thể cho giá trị đúng hoặc sai. Sự kiện
còn mô tả thông tin về đối tượng. Có 11 loại sự kiện sau:
- Sự kiện thông tin về loại đối tượng. Ví dụ: A là một tam giác vuông.
- Sự kiện về tính xác định của đối tượng hay thuộc tính, được biểu diễn bởi tên của
đối tượng hay tên thuộc tính. Ví dụ: Phần tử thứ i của mảng A.
- Sự kiện về sự xác định của đối tượng hay thuộc tính thông qua một biểu thức
hằng. Ví dụ: phần tử thứ i của mảng A là 0.
- Sự kiện về sự bằng nhau của hai đối tượng hay hai thuộc tính. Ví dụ: Mảng A =
Mảng B.
- Sự kiện về sự phụ thuộc của đối tượng vào đối tượng khác thông qua biểu thức
tính toán. Ví dụ: Phần tử thứ i của mảng B bằng phần tử thứ i của mảng A cộng 1.
- Sự kiện về quan hệ giữa các đối tượng hay thuộc tính các đối tượng.
- Sự kiện về biểu thức hàm cơ bản.
- Sự kiện về sự bằng nhau của một biểu thức hàm cơ bản với một giá trị hoặc biểu
thức hằng.
- Sự kiện về sự bằng nhau giữa một đối tượng với một biểu thức hàm cơ bản
- Sự kiện về sự bằng nhau giữa một biểu thức hàm với một biểu thức hàm khác.
- Sự kiện về sự phụ thuộc của một biểu thức hàm cơ bản vào một biểu thức hàm cơ
bản hoặc đối tượng khác thông qua phương trình.
1.1.2. Tập các quan hệ phân cấp
4


Trên tập C ta có một quan hệ phân cấp, một số khái niệm sẽ là trường hợp đặc biệt
của một số khái niệm khác. Ví dụ: tam giác vuông cân cũng là một tam giác. Nếu xem
quan hệ phân cấp này là quan hệ có thứ tự trên C thì H chính là một biểu đồ Hasse.

Hình 1. Biểu đồ Hasse thể hiện phân cấp của các khái niệm tam giác.
1.1.3. Tập các quan hệ giữa các khái niệm
Mỗi quan hệ được xác định bởi:
(Name, Args, Facts)
Trong đó:
- Name: tên của quan hệ
- Args: các đối tượng (thuộc kiểu khái niệm) của quan hệ.
- Facts: các sự kiện định nghĩa quan hệ.
Quan hệ có tính chất: phản xạ, đối xứng, phản xứng và bắc cầu.
Ví dụ 2: Quan hệ vuông góc giữa hai đường thằng được mô tả như sau:
Name: VUONG
Args: a,b: DUONGTHANG
Facts: A, B là hai điểm; A thuộc a và A không thuộc b; B thuộc
b và B không thuộc a; Góc tạo bởi A, B và giao điểm của
a, b là góc vuông.
5

1.1.4. Tập các hàm
Hàm thể hiện các quy tắc tính toán trên các loại khái niệm. Có hai loại:
- Hàm cơ bản: các hàm trên số tự nhiên, số nguyên, số hữu tỉ, số thực và số phức.
- Hàm cấp n (n>0): được mô tả bằng tập các sự kiện và trong cấu trúc mô tả bao
gồm các khái niệm, quan hệ, hàm và toán tử. Trong cấu trúc mô tả phải xuất hiện ít
nhất các khái niệm, quan hệ, hàm và toán tử có cấp n.
Mỗi hàm gồm các thành phần:
(Name, Args, Return, Facts)
Trong đó:

- Name: tên của hàm
- Args: đối số của hàm là các đối tượng thuộc kiểu khái niệm.
- Return: khái niệm trả về của hàm
- Facts: các sự kiện định nghĩa hàm.
Ví dụ 3: Hàm xác định giao điểm của hai đường thẳng
Name: GIAODIEM
Args: a,b: DUONGTHANG
Return: X: DIEM
Facts: X thuộc a và X thuộc b
1.1.5. Tập các toán tử
Gồm các phép toán trên các biến thuộc các loại khái niệm. Có hai loại:
- Toán tử nền: các phép toán trên các kiểu boolean, số tự nhiên, số nguyên, số hữu
tỉ, số thực, tập hợp và danh sách.
6

- Toán tử cấp n: các phép toán số học và tính toán trên các đối tượng, các thuộc tính
của đối tượng tương tự như đối với các biến thực.
Một toán tử gồm các thành phần:
(Name, Args, Return, Facts)
Trong đó:
- Name: tên toán tử
- Args: danh sách các toán hạng
- Return: kiểu trả về của toán tử
- Facts: các sự kiện định nghĩa toán tử
Ví dụ 4: phép toán trừ hai góc được mô tả như sau:
Name: “-”
Args: g1, g2: GOC
Return: x: real
Facts: x = op1.sd – op2.sd
1.1.6. Tập các luật

Các luật thể hiện tri thức. Mỗi luật cho ta một qui tắc suy luận để đi đến kết luận từ
những sự kiện giả thuyết dưới dạng luật dẫn. Mỗi luật gồm các thành phần:
(Name, Kind, Vars, Hypothesis, Goal)
Trong đó:
- Name: tên của luật
- Kind: chuỗi mô tả loại luật
- Vars: Các đối tượng thuộc kiểu khái niệm
- Hypothesis: tập các sự kiện giả thuyết của luật
- Goal: tập các sự kiện kết luận của luật.
7

Ví dụ 5: Luật hai tam giác bằng nhau:
Name: “TAM_GIAC_BANG_NHAU”
Kind: “BANG_NHAU”
Vars: tg1, tg2: TAMGIAC
Hypothesis: 3 cạnh của tg1 bằng với 3 cạnh tương ứng của tg2
Facts: tg1 = tg2


8

Chƣơng 2. NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB
2.1. Ký pháp EBNF
BNF (Backus-Naur Form) là tập ký hiệu dùng để mô tả văn phạm các ngôn ngữ lập
trình, các tập lệnh và giao thức truyền thống.
EBNF (Extended BNF) là phiên bản mở rộng của BNF được đơn giản hóa bằng
cách sử dụng một số quy ước đặt biệt để định nghĩa danh sách và các tập hợp tùy chọn.
Quy ước cú pháp EBNF:
<…>: Tên của cấu trúc cú pháp được gọi là ký hiệu không kết thúc.
Mỗi ký hiệu không kết thúc được định nghĩa bằng một hoặc nhiều luật. Mỗi luật có

dạng:
X := s
Trong đó:
- X : là ký hiệu không kết thúc.
- s : một xâu gồm 0 hay nhiều ký hiệu kết thúc.
- | : hoặc
- […] : phần tùy chọn
- {…} : có thể lặp lại với số lần tùy ý.
Ví dụ:
<số>::= -<số thập phân>|<số thập phân>
<số thập phân> ::= <dãy chữ số> | <dãy chữ số>.<dãy chữ số>
<dãy chữ số> ::= <chữ số> | <chữ số><dãy chữ số>
<chữ số> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<If-stm> ::= IF <Expression> THEN <stms> [ELSE <Stms> ] end
9

2.2. Định nghĩa C-Object
Khái niệm C-Object được định nghĩa trong cặp từ khóa COBJECT,
ENDCOBJECT. Mỗi khái niệm có một tên duy nhất. Khi định nghĩa một khái niệm C-
Object mới, có thể định nghĩa phân cấp khái niệm đó qua từ khóa ISA.
cobject-type ::= COBJECT name
[description]
[isa]
[attributes]
[constructs]
[constraints]
[crelations]
[facts]
[rules]
ENDCOBJECT

 Mô tả khái niệm
description ::= DESCRIPTION: string;
 Thuộc tính
Hầu hết các khái niệm đều có thuộc tính. Các giá trị thuộc tính có kiểu cơ bản (số
nguyên, số thực…) hoặc có kiểu đối tượng C-Object. Khai báo thuộc tính của khái
niệm bắt đầu bằng từ khóa ATTRIBUTE và nằm trong phần định nghĩa khái niệm.
attributes ::= ATTRIBUTE: attribute-def+
attribute-def ::= name <, name >*: type;
 Thuộc tính thiết lập
10

Thuộc tính thiết lập là tính chất đặc trưng tạo nên một khái niệm mới trên cơ sở kế
thừa từ một khái niệm nào đó, được khai báo sau từ khóa CONSTRUCT.
constructs ::= CONSTRUCT: construct-def+
construct-def ::= name <, name >*: type
 Ràng buộc
Các điều kiện ràng buộc liên quan đến thuộc tính được thể hiện qua các biểu thức
logic, có cú pháp như sau:
constraints ::= CONSTRAINT: condition+
condition ::= logic-expr | rel-expr;
Ví dụ: định nghĩa khái niệm ma trận
COBJECT MATRAN
DESCRIPTION:
“Ma tran tren truong K la bang chu nhat gom m x n
phan tu trong K duoc viet thanh m dong va n cot.";
ISA:
CONSTRUCT:
ENDCONSTRUCT
ATTRIBUTE:
m, n: INTEGER;

a: ARRAY(1 m, 1 n);
ROW: ARRAY(1 m);
COL: ARRAY(1 n);
ENDATTRIBUTE
CONSTRAINT:
m > 0;
n > 0;
11

ENDCONSTRAINT

ENDCOBJECT
 Quan hệ tính toán
Các quan hệ tính toán thể hiện mối liên hệ giữa các thuộc tính của khái niệm đang
định nghĩa. Có thể đặt trong khai báo khái niệm COBJECT hoặc định nghĩa thành một
tập riêng. Nếu đặt trong COBJECT thì phải đặt trong từ khóa CRELATION.
crelations ::= CRELATION:
crelation-def+
ENDCRELATION;
crelation-def ::= CR name;
MF: name <, name>*;
MFEXP: equation;
ENDCR;
equation ::= expr = expr
Ví dụ: khai báo các mối quan hệ suy diễn tính toán trong khái niệm tam giác của
hình học phẳng.
CRELATION:
CR r1;
MF: GocA, GocB, GocC;
MFEXP: GocA + GocB + GocC = Pi;

ENDCR;
CR r2;
MF: a, b, c, GocA;
MFEXP: a^2 = b^2 + c^2 - 2*b*c*cos(GocA);
ENDCR;
12

ENDCRELATION;
2.2.1. Cây phân cấp
Quan hệ phân cấp giữa các C-Object được thể hiện qua từ khóa ISA.
isa ::= ISA: name <, name>*;
Các quan hệ phân cấp trong tập hợp H cũng có thể được mô tả trong cặp từ khóa
HIERARCHY, ENDHIERARCHY theo cú pháp sau:
hierarchy-def ::= HIEARARCHY
name ISA name;
ENDHIERARCHY
Ví dụ: phân cấp các khái niệm MA_TRAN trong đại số tuyến tính.
MA_TRAN_VUONG ISA MA_TRAN;
MA_TRAN_TAM_GIAC_TREN ISA MA_TRAN_VUONG;
2.2.2. Sự kiện
Nếu tập các sự kiện được khai báo bên trong phần định nghĩa khái niệm thì đặt sau
từ khóa FACT như sau:
facts ::= FACT: fact-def+
fact-def ::= object-type |
attribute |
name |
equation |
relation |
function
object-type ::= cobject-type (name <, name>* )

13

relation ::= name relation name
function ::= function ( name <, name>* )
2.2.3. Quan hệ
Quan hệ giữa các đối tượng và thuộc tính được mô tả bằng các sự kiện.
relation-def ::= RELATION name;
ARGUMENT: argument-def+
DEFINE: rel-def+
FACT:
[facts]
ENDRELATION;
argument-def ::= name <, name>*: type;
rel-def ::= equation
Ví dụ: Quan hệ giao hoán giữa hai ma trận A và B
RELATION GIAO_HOAN;
ARGUMENT:
A, B: MA_TRAN;
DEFINE:
A*B = B*A;
FACT:
ENDRELATION;
2.2.4. Luật
Các luật có thể được khai báo bên trong phần định nghĩa COBJECT hoặc trong một
tập luật riêng. Nếu khai báo bên trong định nghĩa COBJECT thì phải đặt trong cặp từ
khóa RULE, ENDRULE; ngược lại các luật được khai báo trong cặp từ khóa RULES,
ENDRULES.
14

rules ::= RULE: rule-def+

rule-def ::= RULE name;
KINDRULE: name;
[VARIABLE: variables-def;]
HYPOTHESIS: fact-def+
ENDHYPOTHESIS
GOAL: fact-def+
ENDGOAL
ENDRULE
variable-def ::= name <, name >*: type;
Ví dụ: khai báo các luật trong khái niệm tam giác của hình học phẳng.
RULE R1;
KINDRULE: “”;
HYPOTHESIS:
GocA = GocB;
ENDHYPOTHESIS
GOAL:
a = b;
ENDGOAL
ENDRULE;
2.2.5. Hàm
Mỗi hàm có một tên và một dãy các tham số. Hàm thực hiện các tính toán trên các
loại khái niệm (đối tượng, thuộc tính, quan hệ…) và trả về giá trị.
function ::= basic-funcion | def-function
Có 2 loại hàm: hàm cơ bản và hàm được định nghĩa:
15

 Hàm cơ bản
basic-func ::= SIN | COS | TAN | COTG | LN | EXP | SUM
 Hàm được định nghĩa: mô tả dưới dạng các sự kiện và mô tả dưới dạng một thủ
tục.

Dạng 1:
def-function ::= FUNCTION name;
ARGUMENT: argument-def+
RETURN: return-def;
[CONSTRAINT: facts]
DEFINE: [facts]
ENDFUNCTION;
argument-def ::= name <,name>: type;
return-def ::= name: type;
Dạng 2:
def-function ::= FUNCTION name;
ARGUMENT: argument-def+
RETURN: return-def;
DEFINE:
[constraint]
[variables]
[statements]
ENDFUNCTION;
statements ::= statement-def+
statement-def ::= assign-stmt | if-stmt | for-stmt
asign-stmt ::= name := expr;
if-stmt ::= IF logic-expr THEN statements+ |expr
16

ENDIF; |
IF logic-expr THEN statements+ |expr
ELSE statements+
ENDIF;
for-stmt ::= FOR name IN [range] DO
statements+ |expr

ENDFOR;
Ví dụ: hàm biến đổi dùng k trong ma trận A thành c * dòng k + dòng l
FUNCTION BIEN_DOI_SO_CAP_2;
ARGURMENT:
A: MA_TRAN;
c: REAL;
k, l: INTEGER;
RETURN:
A: MA_TRAN;
CONSTRAINT:
k > 0 ANDk <= A.m;
l > 0 ANDl <= A.m;
k <> l;
DEFINE:
A.ROW[k] := c * A.ROW[k] + A.ROW[l];
ENDFUNCTION;
Gọi hàm:
function-call ::= name (sequence );
2.2.6. Phép toán
17

Phép toán được định nghĩa trong cặp từ khóa OPERATOR, ENDOPERATOR. Có
2 loại phép toán: phép toán một ngôi và phép toán hai ngôi.
operator-def ::= OPERATOR name
ARGUMENT: argument-def+
RETURN: return-def;
[constraint]
DEFINE:
[statements]
FACT:

[facts]
ENDOPERATOR;
Ví dụ: phép toán cộng hai ma trận
OPERATOR „+‟;
ARGUMENT:
A, B: MA_TRAN;
RETURN:
C: MA_TRAN;
CONSTRAINT:
A.m = B.m;
A.n = B.n;
DEFINE:
FORALL(i, j), C.a[i, j] := A.a[i, j] + B.a[i, j];
ENDOPERATOR;
2.2.7. Cú pháp khai báo
 Khai báo kiểu dữ liệu
18

variable-def ::= name <, name>* : type
Ví dụ:
x: INTEGER;
lst: LIST;
 Khai báo kiểu dữ liệu là một đối tƣợng tính toán C-Object
object-def ::= name <, name>* : cobject-type[sequence]|name <,
name>*: cobject-type;
Ví dụ:
A: MA_TRAN[m,n,a];
B: MA_TRAN ;
 Gọi một quan hệ
rel-call ::= name rel-name name;

Ví dụ: quan hệ bằng nhau của hai ma trận A, B
A = B;
Ví dụ: quan hệ tương đương dòng của hai ma trận A, B
A TUONG_DUONG_DONG B
 Gọi một phép toán
ops-call ::= name operator | name operator name;
operator ::= + | - | . | ^ | ^T | ^-1
Ví dụ: Phép chuyển vị của ma trận A
19

A^T
Ví dụ: Phép cộng hai ma trận
A + B
 Truy xuất đến một thuộc tính của đối tƣợng: để truy xuất đến một thuộc tính
của đối tượng thuộc một kiểu khái niệm, ta sử dụng ký pháp dấu chấm như sau:
attribute ::= name.name
 Khai báo hằng
constants ::= CONSTANT:constant-def+
constant-def ::= name: number | TRUE | FALSE;

20

Chƣơng 3. MẠNG CÁC ĐỐI TƢỢNG TÍNH TOÁN
3.1. Định nghĩa mạng các đối tƣợng tính toán
Một mối quan hệ 𝑓 giữa những thuộc tính của các đối tượng hoặc giữa các đối
tượng với nhau được gọi là mối quan hệ giữa các đối tượng.
Một mạng các đối tượng tính toán bao gồm một tập hợp các đối tượng tính toán
𝑂 = {𝑂
1
, 𝑂

2
, … , 𝑂
𝑛
} và một tập hợp các quan hệ giữa các đối tượng tính toán 𝐹 =
{𝑓
1
, 𝑓
2
… , 𝑓
𝑚
}. Mạng các đối tượng tính toán thì được ký hiệu bằng: (𝑂, 𝐹). Sau đây là
một số ký hiệu:
M(𝑓
𝑖
) = the set of attributes of C-objects in the relation 𝑓
𝑖

M(F) =

M(𝑓
𝑖
)
𝑚
𝑖=1

M(O) =

𝑂
𝑖
𝑛

𝑖=1

M là một tập hợp thuộc tính của các đối tượng tính toán liên quan trong một vấn đề
nào đó.
M
i
= M ∩ M(O
i
) với i = 1, 2, …, n: là tập hợp những thuộc tính liên quan đến đối
tượng O
i
.
Trong mạng các đối tượng tính toán (𝑂, 𝐹), tác giả xem xét vấn đề đó là xác định
các thuộc tính của tập G bằng những thuộc tính trong tập H. Vấn đề này được ký hiệu
là HG.
Ví dụ: Trong hình bên dưới, giả sử rằng AB = AC, cho trước góc A và độ dài cạnh
BC. ABDE và ACFG là hình vuông. Xác định EG.
21


Vấn đề này có thể được xem xét trên mạng các đối tượng tính toán (O, F) như sau:
O = {O
1
: tam giác ABC với AB = AC, O
2
: tam giá AEG, O
3
: hình vuông ABDE, O
4
:

hình vuông ACFG }, và F = {f
1
, f
2
, f
3
, f
4
, f
5
} bao gồm những quan hệ sau:
f1 : O1.c = O3.a cạnh c của tam giá ABC = cạnh của hình vuông ABDE
f2 : O1.b = O4.a cạnh b của tam giá ABC = cạnh của hình vuông ACFG
f3 : O2.b = O4.a cạnh b của tam giác AEG = cạnh hình vuông ACFG
f4 : O2.c = O3.a cạnh c của AEG = cạnh hình vuông ABDE
f
5
: O
1
.A + O
2
.A = .
3.2. Thuật giải suy diễn trong mạng các đối tƣợng tính toán
Cho một mạng các đối tượng tính toán (O, F) và M là một tập hợp các thuộc tính
liên quan. Giả sử A là một tập hợp con của M.
(1) với mỗi 𝑓 ∈ 𝐹, ký hiệu 𝑓(𝐴) là hội của tập A với tập hợp bao gồm toàn bộ thuộc
tính của M suy luận ra được từ A bởi 𝑓. Tương tự, với mỗi đối tượng tính toán 𝑂
𝑖
∈ 𝑂,
𝑂

𝑖
(𝐴) là hội của tập A với tập hợp bao gồm toàn bộ thuộc tính (trong M) mà đối tượng
𝑂
𝑖
có thể xác định được từ những thuộc tính trong A.
22

(2) Giả sử D = [t
1
, t
2
, , t
m
] là một danh sách các phần tử trong F  O. Ký hiệu A0
= A, A
1
= t
1
(A
0
), . . ., A
m
= t
m
(A
m-1
), và D(A) = A
m
. Ta có A
0

 A
1
 . . .  A
m
=
D(A)  M.
Một vấn đề HG được gọi là khó thể giải được nếu tồn tại một danh sách D  F 
O như là D(A)  B. Trong trường hợp này, ta nói D chính là giải pháp để giải quyết
vấn đề trên.
Thuật toán sau dùng để tìm bài giải cho một HG trên mạng các đối tượng tính
toán. Các đối tượng có thể tham gia vào trong bài giải như là những mối quan hệ của
đối tượng tính toán.
Algorithm 1: Tìm bài giải cho vấn đề HG trên mạng các đối tượng tính toán.
Step 1: Solution  empty;
Step 2: if G  H then
begin
Solution_found  true;
goto step 5;
end
else
Solution_found  false;
Step 3: Repeat
Hold  H;
Select f  F;
while not Solution_found and (f found) do
begin

×