ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO THU HOẠCH BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
TÌM HIỂU MÔ HÌNH COKB VÀ ỨNG DỤNG
TRONG GIẢI BÀI TOÁN VẬT LÝ
GVHD : PGS.TS. ĐỖ VĂN NHƠN
HVTH : NGÔ VĂN LINH
MSHV : CH1301021
TP.HCM - 2014
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
MỤC LỤC
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
PHẦN MỞ ĐẦU
Ngày nay, lĩnh vực công nghệ thông tin phát triển vượt bậc, việc áp dụng các thành
tựu khoa học kỹ thuật giúp nâng cao hiệu quả giải quyết công việc một cách đáng kể.
Trong đó, việc phát triển các hệ thống thông minh đang được phát triển mạnh và áp dụng
nhiều nhất. Việc tổ chức các cơ sở tri thức cho các hệ thống này thì có nhiều phương pháp
như: logic vị từ, luật dẫn, khung, đồ thị khái niệm, mạng ngữ nghĩa, mạng nơ ron, mạng
đối tượng tính toán COKB,… Mỗi phương pháp có những ưu điểm riêng. Vì vậy, việc lựa
chọn phương pháp nào sao cho phù hợp thì cũng rất quan trọng giúp cho hệ thống dễ thực
hiện, hoạt động có hiệu quả. Trí tuệ nhân tạo có thể giải quyết vấn đề trong phạm vi rộng
lớn khi có phương pháp làm việc hiệu quá và biểu diễn đúng đắn.
Trong bài viết này, đề cập việc áp dụng mô hình COKB để biểu diễn tri thức và
ứng dụng trong việc giải bài toán vật lý đơn giản.
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
PHẦN NỘI DUNG
CHƯƠNG 1 – MÔ HÌNH COKB
1.1 – ĐỊNH NGHĨA VỀ MÔ HÌNH COKB
đối tượng cơ bản loại DIEM, các thuộc tính như GocA, a, S có kiểu tương ứng là
“GOC[C,A,B]”, “DOAN[B,C]”, “real”.
- Các đối tượng (hay khái niệm) cấp n>0: Các đối tượng này có các thuộc tính kiểu
khái niệm nền và các thuộc tính loại đối tượng cấp thấp hơn, có thể được thiết lập trên một
danh sách nền các đối tượng thấp hơn.
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
Cấu trúc bên trong của mỗi lớp đối tượng:
- Kiểu đối tượng. Kiểu nầy có thể là loại kiểu thiết lập trên một danh sách nền các
đối tượng cơ bản.
- Danh sách các thuộc tính, mỗi thuộc tính có kiểu thực, kiểu đối tượng cơ bản hay
kiểu đối tượng cấp thấp hơn.
- Quan hệ trên cấu trúc thiết lập. Quan hệ nầy thể hiện các sự kiện về sự liên hệ
giữa đối tượng và các đối tượng nền (tức là các đối tượng thuộc danh sách đối tượng nền).
- Tập hợp các điều kiện ràng buộc trên các thuộc tính.
- Tập hợp các tính chất nội tại liên quan đến các thuộc tính của đối tượng. Mỗi tính
chất nầy cho ta một sự kiện của đối tượng.
- Tập hợp các quan hệ suy diễn - tính toán. 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.
- Tập hợp các luật suy diễn trên các loại sự kiện khác nhau liên quan đến các thuộc
tính của đối tượng hay bản thân đối tượng. Mỗi luật suy diễn có dạng:
{các sự kiện giả thiết} {các sự kiện kết luận}
- 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 tượng
được thiết lập trên một danh sách các đối tượng nền nào đó)
1.1.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
1
, sk
2
, …,sk
n
} {sk
m+1
, sk
m+2
, …,sk
n
}
Cấu trúc của một luật:
[Kind, BasicO, Hypos, Goals]
Trong đó,
+ Kind: loại luật
+ BaseO: tập các đối tượng cơ bản
+ Hypos: tập các sự kiện giả thuyết của một luật
+ Goals: tập các sự kiện kết luận của một luật
1.2 – TỔ CHỨC CƠ SỞ TRI THỨC THEO COKB
Cơ sở tri thức được tổ chức bởi một hệ thống tập tin văn bản có cấu trúc dựa trên
một số từ khóa và quy ước về cú pháp, thể hiện các thành phần trong mô hình tri thức
COKB. Hệ thống này bao gồm các tập tin sau:
- Tập tin Object.txt: Lưu trữ tất cả các khái niệm đối tượng của cơ sở tri thức.
- Tập tin Hierarchy.txt: Lưu lại các biểu đồ Hasse thể hiện quan hệ phân cấp đặc
biệt hóa giữa các loại đối tượng C-Object.
- Tập tin Relation.txt: Lưu trữ tất cả các quan hệ cũng như các tính chất giữa các
loại đối tượng.
- Tập tin Operation.txt: Lưu trữ các thông tin, cơ sở tri thức của thành phần toán
tử trên các đối tượng C-Object.
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
[<tên lớp đối tượng cấp cao>, <tên lớp đối tượng cấp
thấp>]
[<tên lớp đối tượng cấp cao>, <tên lớp đối tượng cấp
thấp>]
end_Hierarchy
- Cấu trúc tập tin “<tên khái niệm C-Object>.txt”
begin_object: <tên khái niệm C-Object>[các đối tượng nền]
<các đối tượng nền> : <kiểu>;
<các đối tượng nền> : <kiểu>;
begin_variables
<tên thuộc tính> : <kiểu>;
<tên thuộc tính> : <kiểu>;
end_variables
begin_constraints
end_constraints
begin_properties
<sự kiện>
<sự kiện>
end_properties
begin_computation_relations
begin_relation
flag=<0 hoặc 1>
Mf={các thuộc tính}
tính toán>]
[<toán tử>, [các kiểu toán hạng], <kiểu kết quả>, <quitắc
tính toán>]
end_Operators
- Cấu trúc tập tin “FACTS.txt”
begin_Facts
1, <cấu trúc sự kiện>, <cấu trúc sự kiện>,
2, <cấu trúc sự kiện>, <cấu trúc sự kiện>,
end_Facts
- Cấu trúc tập tin “RULES.txt”
begin_rules
begin_rule
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
kind_rule = "<loại luật>";
<các tên đối tượng> : <kiểu đối tượng>;
<các tên đối tượng> : <kiểu đối tượng>;
hypothesis_part:
{các sự kiện giả thiết của luật}
goal_part:
{ các sự kiện kết luận của luật hoặc là "Object"}
end_rule
end_rules
1.4 – NGÔN NGỮ ĐẶC TẢ THEO MÔ HÌNH COKB
Ngôn ngữ đặc tả theo mô hình COKB được xây dựng để biểu diễn cho các tri thức
có dạng COKB. Ngôn ngữ này bao gồm các thành phần :
logic-term ::= logic-term AND logic-primary |
logic-primary |
logic-primary ::= expr |
rel-expr |
function-call |
quantify-expr |
TRUE | FALSE
quantify-expr ::= FORALL(name<, name>*), logic-expr |
EXISTS(name), logic-expr
Định nghĩa của C-Object
cobject-type ::= COBJECT name;
[isa]
[hasa]
[constructs]
[attributes]
[constraints]
[crelations]
[rules]
ENDCOBJECT;
Định nghĩa của các quan hệ đặc biệt:
isa ::= ISA: name <, name>*;
hasa ::= HASA: [fact-def]
Định nghĩa của các sự kiện:
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang 11
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
facts ::= FACT: fact-def+
fact-def ::= object-type | attribute | name
equation | relation | expression
object-type ::= cobject-type (name) |
cobject-type (name <, name>*)
IF logic-expr THEN statemnets+
ELSE statements+
ENDIF;
for-stmt ::= FOR name IN [range] DO
statements+;
ENDFOR;
1.5 – CÁC LOẠI SỰ KIỆN TRONG MÔ HÌNH COKB
Mô hình COKB có loại sự kiện được chấp nhận. Những sự kiện được đề xuất từ
việc nghiên cứu trên yêu cầu và vấn đề thực tế trong các miền tri thức khác nhau. Các loại
sự kiện bao gồm:
Sự kiện loại 1: Sự kiện thông tin về loại của đối tượng
Cấu trúc sự kiện:
[<đối tượng>,<loại đối tượng>]
Ví dụ: Tam giác cân ABC được định nghĩa như sau:
[TAMGIAC[A,B,C], “TAMGIACCAN”]
Sự kiện loại 2: Sự kiện về tính xác định của một đối tượng hay của một số thuộc
tính của đối tượng.
Cấu trúc sự kiện:
<đối tượng>|<đối tượng>.<thuộc tính>
Ví dụ: Trong tam giác ABC ta có các cạnh AB, AC, BC và các góc ABC, góc
BAC và góc ACB được định nghĩa như sau:
• Các cạnh: DOAN[A,B], DOAN[A,C], DOAN[B,C].
• Các góc: GOC[A,B,C], GOC[B,A,C], GOC[A,C,B].
Sự kiện loại 3: 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ủa đối tượng thông qua biểu thức hằng.
Cấu trúc sự kiện:
<đối tượng> | <đối tượng>.<thuộc tính> = <biểu thức hằng>
Ví dụ: DOAN[A,B].a = 5; GOC[A,B,C] = Pi/2
Sự kiện loại 4: Sự kiện về sự bằng nhau của một đối tượng hay một thuộc tính của
đối tượng với một đối tượng hay một thuộc tính khác.
<đối tượng> | <đối tượng>.<thuộc tính> = <hàm>
Ví dụ: GOC[A,B,C] = GOC(d1,d2),H1 = HINHCHIEU(A,d)
Sự kiện loại 10: Sự kiện về sự bằng nhau của một hàm với một hàm khác.
Cấu trúc sự kiện:
<hàm> = <hàm>
Ví dụ: KHOANGCACH(d,d1) = KHOANGCACH(d1,d2)
Sự kiện loại 11: Sự kiện về sự phù thuộc của một hàm theo các hàm hay các đối
tượng khác thông qua một công thức tính toán.
Cấu trúc sự kiện:
<hàm> = < biểu thức theo các hàm hay các đối tượng>
Ví dụ: GOC(d,d2)= GOC(d,d2) + GOC(d,d3)
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang 14
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
Sự kiện loại 12: Sự kiện về sự phụ thuộc giữa các hàm hay các đối tượng thông
qua một đẳng thức theo các hàm hay các đối tượng.
Cấu trúc sự kiện:
<đẳng thức theo các hàm hay các đối tượng>
Ví dụ: GOC(d,d1) + GOC(d,d3) = GOC[A,B,C].a + GOC(d,d2).
1.6 – CÁC BƯỚC GIẢI THEO MÔ HÌNH COKB
- Deduce_from3s: suy ra các sự kiện loại 2 từ các sự kiện loại 1
- Deduce_from43s: suy ra các sự kiện mới loại 3 từ các sự kiện loại 3 và 4 bằng
cách thay thế các biến trong sự kiện loại 3 và sự kiện loại 4
- Deduce_from53s: suy ra các sự kiện mới loại 3, 5 từ các sự kiện loại 3 và 5 bằng
cách thay thế các biến trong sự kiện loại 3 vào sự kiện loại 5
- Deduce_from45s: suy ra các sự kiện mới loại 3 từ các sự kiện loại 4 và 5 bằng
cách giải hệ phương trình.
- Deduce_from8s: suy ra các sự kiện loại 7 từ các sự kiện loại 8
- Deduce_from983s: suy ra các sự kiện loại 3, 8 từ các sự kiện loại 3, 8, 9 bằng
cách thay thế các sự kiện loại 8 (hay sự kiện loại 3) vào các sự kiện loại 9
- Deduce_Objects: thực hiện suy diễn và tính toán bên trong cấu trúc của từng đối
các ngoại lệ, khó lập trình
3. Mạng tính
toán
Giải được hầu hết các bài toán
GT KL nếu như đáp ứng đầy
đủ các giả thiết cần thiết
Thuật toán đơn giản dễ cài đặt
cho nên việc bảo trì hệ thống
tương đối đơn giản.
Có thể xây dựng hệ thống suy
luận, giải thích một cách dễ dàng
và dễ hiểu
Không giải được các tri thức
phức tạp, lưu trữ khó khăn và
nhập nhằng khi quản lý.
Đồng thời việc xây dựng lại
thuật toán là việc tương đối khó
khăn bảo trì lại toàn bộ hệ
thống
4. Frame Có sức mạnh diễn đạt tốt, dễ cài
đặt các thuộc tính cho các slot
cũng như các mối liên hệ, dễ
dàng tạo ra các thủ tục chuyên
biệt hóa, dễ đưa vào các thông tin
mặc định và dễ thực hiện các
thao tác phát hiện các giá trị sai
sót
Khó lập trình, khó suy diễn,
thiếu phần mềm hỗ trợ
Ta nhận thấy “mô hình biểu diễn tri thức bằng Frame” là mô hình biểu diễn tri thức
kiến thức và kiểm tra tính nhất quán của kiến thức.
+ Giao diện: cần có một ngôn ngữ đặc trưng về mặc kỹ thuật để trao đổi thông
tin giữa người học và hệ thống, giữa hệ thống và người dạy.
1.8.2 – Thiết kế, xử lý
Quá trình phân tích và thiết kế các thành phần của hệ thống bao gồm các giai
đoạn sau:
Giai đoạn 1: Thu thập tri thức cần thiết dựa trên mô hình COKB
Giai đoạn 2: Phân loại kiến thức trong giai đoạn 1 để phân tích các yêu cầu
Giai đoạn 3: Xây dựng tổ chức cơ sở tri thức cho hệ thống dựa trên mô hình
COKB và đặc điểm kỹ thuật của ngôn ngữ. Kiến thức cơ bản có thể được tổ chức bởi các
tập tin văn bản có cấu trúc. Chúng bao gồm các tập tin dưới đây.
+ Tập tin Object.txt lưu trữ các khái niệm
+ Tập tin Hierarchy.txt lưu trữ thông tin các sơ đồ Hasses đại diện cho thành
phần H của mô hình COKB.
+ Tập tin Relations.txt lưu trữ thông tin các quan hệ
+ Tập tin Operations.txt đặc tả cách thức thao tác của các đối tượng hay một
thành phần hàm nào đó
+ Tập tin Functions.txt lưu trữ những đặc điểm kỹ thuật của các hàm
+ Tập tin Facts.txt lưu trữ các định nghĩa của các loại sự kiện
+ Tập tin Rules.txt lưu trữ các quy tắc suy luận
+ Các tập tin SomeObject.txt lưu trữ các đối tượng nhất định
Giai đoạn 4: Mô hình hóa các vấn đề và thiết kế thuật toán. Chúng ta sử dụng
mạng các đối tượng tính toán. Thành phần của nó gồm 3 tập hợp sau:
O = {O
1
, O
2
, …, O
n
}
Giai đoạn 7: Kiểm tra, duy trì và phát triển các ứng dụng. Giai đoàn này tương
tự như các hệ thống máy tính khác.
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang 18
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
CHƯƠNG 2 - ỨNG DỤNG
2.1 – PHÁT BIỂU BÀI TOÁN
Để đơn giản hóa việc giải các bài toán về mạch điện một chiều với các kiểu mắc
nối tiếp và mắc song song, cũng đồng thời là công cụ giúp học sinh kiểm tra lại kết quả các
dạng bài tập một cách nhanh chóng.
Bài toán “Giải bài toán Vật lý” trong mạch điện một chiều với các điện trở mắc
song song và nối tiếp.
Hệ thống có kiến trúc khá đơn giản. Giao diện nhận yêu cầu ( giả thiết, kết luận) từ
người dùng rồi gửi yêu cầu đó cho bộ suy diễn. Bộ suy diễn căn cứ vào yêu cầu để tìm đến
cơ sở tri thức phù hợp rồi suy diễn cho ra kết quả, trả về cho giao diện hiển thị cho người
dùng.
2.2 – THU THẬP TRI THỨC CHO ỨNG DỤNG
Định luật Ôm cho đoạn mạch chỉ có 1 điện trở
I = U / R (A)
Nếu có giá trị của I và R thì ta có thể tính hiệu điện thế như sau:
U = V
B
– V
A
= I * R (V)
Các điện trở mắc song song
Trong đoạn mạch, có nhiều điện trở mắc song song thì ta có công thức tính:
Điện trở tương đương:
Cường độ dòng điện:
Hiệu điện thế:
Định luật Ôm trong đoạn mạch mắc song song:
}
Tập các hàm Formula_Rule
Có cấu trúc : Formula_Rule(Rules, Formulas, )
Trong đó,
- Rules: là các luật từ giả thiết suy ra kết luận có cấu trúc giữa các C-Object
khác nhau.
Rules { R1, R2 -> R; I1 -> I; I2 -> I; U1, U2 -> U……}
- Formula: là các công thức,định luật liên quan giữa các C-Object
Formula{
R1 + R2 = R
U1 + U2 = U
I1 = I2 = I
R1 = Q1 / ( ( I1 x I1 ) x t)
……
}
Tập các quan hệ Relation
Có cấu trúc: Relation(1_resistor,2_resistors,3_resistors)
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang 20
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
+ 1_resistor: là tập gồm { Mạch một R }
+ 2_resistors: là mối quan hệ giữa hai điện trở mắc với nhau,hay là hai mạch
một bộ nối với nhau
2_resistors{ R1ntR2; R1 ss R2}
+ 3_resistors : là mối quan hệ giữa 3 diện trở mắc với nhau
3_resistors{
R1 mắc nối tiếp R2 tất cả mắc song song với R3
R1 mắc song song R2 tất cả mắc nối tiếp với R3
R2 mắc nối tiếp với R3 tất cả mắc song song với R1
R2 mắc song song với R3 tất cả mắc nối tiếp với R1
R1 mắc nối tiếp R3 tất cả mắc song song với R2
Tên của tập tin: luat_R1ntR2.txt có nội dung sau đây:
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang 22
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
U,R->I.U / R
I,R->U.I * R
U,I->R.U / I
I,U,t->A.U * I * t
A,I,t->U.A / ( I * t )
A,U,t->I.A / ( U * t )
A,U,I->t.A / ( U * I )
A,t->Q.A * t
Q,t->A.Q / t
Q,A->t.Q / A
R,I,t->Q.R * ( I * I ) * t
Q,I,t->R.Q / ( I * I * t )
Q,R,I->t.Q / ( I * I * R )
Q,R,t->I.sqrt ( Q / ( R * t ) )
R1,R2->R.R1 + R2
R,R2->R1.R - R2
R,R1->R2.R - R1
U1,U2->U.U1 + U2
U,U1->U2.U - U1
U,U2->U1.U - U2
I1,T->I2.I2 = I1
I2,T->I1.I1 = I2
I1,T->I.I = I1
I2,T->I.I = I2
I,T->I1.I1 = I
I,T->I2.I2=I1
U1,R1->I1.U1 / R1
Suy diễn là từ những giả thiết đã
biết(know) ta áp dụng các tập luật để sinh
thêm giả thiết mới bổ sung vào giả thiết ban
đầu(know). Quá trình này cứ tiếp tục cho
đến khi kết luận cần tìm đã nằm trong know
hoặc không có thể áp dụng được luật nào để
sinh thêm giả thiết mới nữa và chương trình
kết thúc.
Mô phỏng thuật giải
• Bước 1: Khởi tạo một mảng đánh
dấu các luật nào đã được sữ dụng tránh
trùng lặp với các luật khác. Khởi tạo Know
= GT.
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang 23 / 27
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
• Bước 2: Kiểm tra xem kết luận cần
tìm đã nằm trong Know hay chưa?
Nếu đúng : goto Bước
6
Nếu sai : Chuyển tới
Bước 3
• Bước 3: Cho chạy kiểm tra các luật
có thể sữ dụng,nếu luật nào chưa dùng (chưa
được đánh dấu ):
Kiểm tra xem các luật có đủ
điều kiện để áp dụng sinh ra thêm Sự kiện
mới hay không? Nếu đủ điều kiện:
+ Đánh dấu luật này
lại.
+ Bổ sung kết luận
- Tìm tập tin luật phù hợp với kết
quả chọn mạch
private void LoadFile()
{
switch
(chon_mach())
{
…………
}
}
- Xác định các yêu cầu của đề bài
public int
purpose()
{
……………
}
- Bộ suy diễn duyệt qua các luật
trong tập tin tìm ra kết quả
private bool
ForwardCharning()
{
………
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang 24 / 27
BÁO CÁO CHUYÊN ĐỀ: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN
}
- Tính toán các giá trị
public void
ProcessCaculate()
{
……
Ta tính được: U1 = 7
Kết luận: Vậy U1 cần tính là 7 (v).
HỌC VIÊN: NGÔ VĂN LINH – CH1301021 Trang 25 / 27