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

Bài tiểu luận: Mô hình tri thức COKB cho bài toán mạch điện một chiều

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 (305.85 KB, 32 trang )

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Lớp Cao Học Khóa 6
__

Tiểu luận môn học
Biểu Diễn Tri Thức & Ứng Dụng

MÔ HÌNH TRI THỨC COKB CHO BÀI TOÁN
MẠCH ĐIỆN MỘT CHIỀU

Giảng viên hướng dẫn:
Học viên thực hiện:
MSHV:
Lớp:

Tháng 1/2013

PGS.TS. Đỗ Văn Nhơn
Đỗ Duy Phúc
CH1101122
Cao Học Khóa 6


Mục Lục
Mục Lục.................................................................................................................................................2
Lời Nói Đầu............................................................................................................................................3
Phần 1. Giới Thiệu Vấn Đề Tri Thức Bài Toán Điện Một Chiều................................................................5
1. Giới Thiệu Bài Toán........................................................................................................................5
2. Phân tích vấn đề.............................................................................................................................5
Phần 2. Mô Hình Biểu Diễn Tri Thức Các Đối Tượng Tính Toán - COKB..................................................9


1. Mô hình một đối tượng tính toán..................................................................................................9
2. Mô hình COKB..............................................................................................................................12
2.1. Một tập hơp C chứa các khái niệm về các C-Object..............................................................12
2.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..............................................13
2.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.....................................13
2.4. Một tập hơp Ops các toán tử................................................................................................14
2.5. Một tập hơp Rules gồm các luật được phân lớp...................................................................14
3. Giải thuật tìm lời giải trên mô hình COKB....................................................................................14
Phần 3. Mô Hình COKB Cụ Thể Cho Tri Thức Điện Một Chiều..............................................................16
1. Tập C – Concepts..........................................................................................................................16
1.1. Đối tượng điện trở DIEN_TRO...............................................................................................17
1.2. Đối tượng mạch điện một chiều cơ bản MACH_CO_BAN.....................................................18
1.3. Đối tượng mạch nối tiếp MACH_NOI_TIEP...........................................................................20
2. Tập H – Hierarchy.........................................................................................................................22
3. Tập R – Relations..........................................................................................................................23
4. Tập Ops – Operators.....................................................................................................................23
5. Tập Rules......................................................................................................................................24
Phần 4. Mô Hình Bài Toán Và Ví Dụ Áp Dụng.......................................................................................27
1. Mô Hình Bài Toán.........................................................................................................................27
2. Ví Dụ Minh Họa Cụ Thể................................................................................................................28
Kết Luận...............................................................................................................................................31
Tài Liệu Tham Khảo..............................................................................................................................32

2


Lời Nói Đầu
Nhân loại sau hơn hàng ngàn năm phát triển đã tích lũy được một khối lượng tri thức
vô cùng đồ sộ. Để tận dụng và chia sẽ nguồn tri thức vô cùng hữu ích ấy, con người
đã sáng tạo ra các hệ thống tính toán thông minh dựa trên cơ sở tri thức như các hệ

chuyên gia, hệ hỗ trợ ra quyết định,v.v… nhằm phục vụ các nhu cầu đa dạng khác
nhau của con người và đưa nên văn minh của nhân loại tiến xa thêm một bước.
Các thông tin từ nguồn tri thức của nhân loại rất đa dạng và phức tạp về cấu trúc và
ngữ nghĩa, các hệ quản trị cơ sở dữ liệu truyền thống dần đã không còn đáp ứng kịp
các nhu cầu mới cho việc thu nhận, lưu trữ tri thức và hỗ trợ xử lý tính toán. Từ yêu
cầu ấy, các hệ cơ sở tri thức với các mô hình biểu diễn lưu trữ tri thức khác nhau được
cho ra đời làm nền tảng cho các hệ tính toán thông minh. Cơ sở tri thức cung cấp khái
niệm, sự kiện, luật phục vụ cho hoạt động xử lý suy diễn, tính toán và điều khiển. Do
vậy, vấn đề nghiên cứu ứng dụng các mô hình biểu diễn cơ sở tri thức để thể hiện đầy
đủ miền tri thức là quan trọng.
Đối với một mô hình biểu diễn tri thức ngoài chức năng mô tả đầy đủ các khía cạnh
của tri thức trong lĩnh vực nó cần biểu diễn, mô hình này còn hướng đến việc tạo điều
kiện thuận lợi cho thiết kế, xây dựng các công cụ suy diễn dễ dàng truy cập và phục
vụ tốt quá trình suy luận, khai thác tri thức của ứng dụng.
Từ những vấn đề trên mà trong [2] đã xây dựng mô hình tri thức các đối tượng tính
toán được gọi là COKB (Computational Object Knowledge Base) và mạng các đối
tượng tính toán. Mô hình COKB đã biểu diễn được phần lớn các bài toán hình học và
các bài toán khác.
Để tìm hiểu nhiều hơn về sự hiệu quả của mô hình này, bài viết sẽ trình bày một mô
hình biểu diễn tri thức cho bài toán vật lý điện một chiều có áp dụng mô hình COKB.
Mô hình thực tế biểu diễn được điều chỉnh cho phù hợp với mô hình tri thức cụ thể,
cho thấy khả năng linh hoạt của mô hình COKB khi áp dụng vào thực tế.
Để thực hiện được bài viết này, em xin chân thành cám ơn thầy Đỗ Văn Nhơn đã tận
tình giảng dạy và truyền đạt cho em nhiều kiến thức rất có ích qua các môn học. Thầy
đã đưa em đến được những miền tri thức rộng lớn và kỳ thú, tạo động lực trong em để
có thể tiến xa hơn trên con đường học tập và khám phá tri thức khoa học.
3


Học Viên Thực Hiện

Đỗ Duy Phúc

4


Phần 1. Giới Thiệu Vấn Đề Tri Thức Bài Toán Điện Một Chiều
1. Giới Thiệu Bài Toán
Trong chương trình học ở các lớp phổ thông, môn Vật Lý điện một chiều có đưa ra
một dạng bài tập cho trước một mạch điện một chiều và nhiều điện trở (hoặc bóng
đèn, quạt). Các thiết bị tiêu thụ điện này được mắc một cách ngẫu nhiên theo hai hình
thức song song hoặc nối tiếp vào mạch điện chính. Từ hai kiểu mắc đơn giản ấy cùng
với số lượng thiết bị đủ lớn sẽ làm cho hình dạng của mạch điện trở nên rất đa dạng và
phức tạp. Do đó việc giải bài tập cũng trở nên phức tạp theo.
Với mục đích hỗ trợ giải bài tập dạng này, bài viết này sẽ đưa ra một cách biễu diễn tri
thức linh hoạt dựa trên mô hình COKB [2] để có thể đưa ra các thuật giải tìm lời giải
cho bài toán trên.

2. Phân tích vấn đề
Như chúng ta đã biết, một mạch điện một chiều sẽ bao gồm các yếu tố đại lượng cơ
bản như sau:
-

R: điện trở của mạch.
I: cường độ dòng điện đi qua mạch.
U: hiệu điện thế ở hai đầu mạch.
P: công suất dòng điện đi qua mạch.
t: khoảng thời gian cho dòng điện chạy.
W: điện năng tiêu thụ của dòng điện sau thời gian t.

Các công thức giữa các đại lượng:


Các công thức điện trở tương đương cho mạch ghép:

5


-

Song song:

-

Nối tiếp:

Cường độ dòng điện tương đương:
-

Song song

-

Nối tiếp
(7)

Hiệu điện thế tương đương:
-

Song song

-


Nối tiếp

Ví dụ: cho một mạch điện phù hợp với vấn đề như
1

hình vẽ bên

3

Ta thấy ở vị trí có đánh số 1, 2 và 3 là các hình đại
diện cho các thiết bị tiêu thụ điện. Ở đây, ta xem như
tất cả các thiết bị đó là các điện trở, lần lượt ký hiệu là

2

R1, R2, R3. Ứng với từng điện trở thành phần bên còn có các đại lượng tương ứng U,
I, P.
Có nghĩa là:
-

Đối với R1 ta có thêm I1, U1, P1.
Đối với R2 ta có thêm I2, U2, P2.
Đối với R3 ta có thêm I3, U3, P3.

Từ hình vẽ trên, ta có thể biểu diễn mạch điện lại theo dạng chuỗi ký tự như sau:
(R1 * R2) + R3
Với:
-


dấu ‘*’ là mắc song song
6


-

dấu ‘+’ là mắc nối tiếp

Nếu lấy R12 thay thế (R1 * R2), ta có cấu trúc biễu diễn như sau:
R12 + R3
Và R12 được gọi là điện trở tương đương cho (R1 * R2). Với R12 được tính theo
công thức điện trở tương đương song song (4) của R1 và R2 như sau:

Các công thức U12 và I12 tương ứng từ công thức (6) và (8):
I12 = I1 + I2
U12 = U1 = U2
Tương tự ta có điện trở tương đương R123 của hai điện trở R12 và R3 nối tiếp, cũng
là điện trở toàn mạch:
R = R123 = R12 + R3
I = I123 = I12 = I3
U = U123 = U12 + U3
Như vậy, ta thấy ngoài các đoạn mạch thành phần cơ bản tương ứng với R1, R2, R3,
ta còn có các đoạn thành phần tổng hợp cao hơn tương ứng với các điện trở tương
đương, như ví dụ là R12 và mạch chính tương ứng với R. Mỗi đoạn mạch như vậy đều
có đầy đủ các yếu tố đơn lẻ như một mạch điện một chiều độc lập: R, U, I, P, W, t và
giữa chúng có các mối quan hệ mắc nối tiếp hoặc song song. Từ những quan hệ này ta
có thể suy ra được các công thức liên quan đến các yếu tố giữa từng đoạn mạch với
nhau.
Nói lại mục tiêu đã đề ra, bài toán ta cần giải quyết có dạng cho một cấu trúc mạch
điện một chiều xác định và một số yếu tố cho trước của mạch. Yêu cầu của bài toán là

tìm một số yếu tố mới chưa biết. Ta thấy mục tiêu này hoàn toàn có thể đạt được với
những yếu tố trong mạch cùng với những quan hệ của chúng đã được xác định cụ thể
như trên. Phương pháp cho việc tìm lời giải cho bài toán là với những yếu tố đã cho
ban đầu, ta áp dụng những quan hệ liên quan đến những yếu tố đó để thu lại được

7


những yếu tố chưa biết. Và cách tố chức để hiện thực phương pháp này có thể dựa
trên mô hình COKB được giới thiệu sau đây.

8


Phần 2. Mô Hình Biểu Diễn Tri Thức Các Đối Tượng Tính Toán COKB
1. Mô hình một đối tượng tính toán
Mô hình Cơ Sở Tri Thức Các Đối Tượng Tính Toán (Computational Object
Knowledge Base – COKB) có nền tảng dựa trên các Đối Tượng Tính Toán
(Computational Object - 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:
A. Một danh sách các thuộc tính Attr(O) = {A1, A2,..., An} 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
B. 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
Ví dụ 1: Một cấu trúc tam giác với cấu trúc gồm các yếu tố như:
-

3 cạnh a, b, c
3 góc tương ứng với 3 cạnh: α, β, γ
9


-

3 đường cao tương ứng: ha, hb, hc
Diện tích S của tam giác
Nửa chu vi p của tam giác
Bán kính đường tròn ngoại tiếp R của tam giác,
v.v …

cùng với các công thức liên hệ giữa chúng như:
-

Định lý góc trong tam giác
Định lý sin
Định lý cosin
Các công thức tính diện tích
v.v…


sẽ trở thành một đối tượng C-object khi ta tích hợp cấu trúc nầy với các hành vi xử lý
liên quan đến việc giải bài toán tam giác cũng như các hành vi xem xét một sự kiện
nào đó liên quan đến các thuộc tính hay chính bản thân đối tượng.
 Như vậy ta là có một đối tượng tam giác.
Khi đối tượng tam giác nầy được yêu cầu cho một lời giải cho bài toán {a,B,C} ⇒ S
nó sẽ cung cấp một lời giải gồm 3 bước sau đây:
Bước 1: Xác định A bởi công thức A = π -B-C;
Bước 2: Xác định b bởi công thức b = a.sin(B)/sin(A);
Bước 3: Xác định S bởi công thức S = a.b.sin(C)/2;
Nếu yêu cầu là giải bài toán {a,B} ⇒ S thì đối tượng sẽ trả lời rằng “không giải
được” và nó có thể đề nghị cung cấp thêm thông tin như A, C, b hay c.
Ví dụ 2: Một cấu trúc tứ giác với cấu trúc gồm các yếu tố như:
-

4 cạnh a, b, c, d
2 đường chéo
4 góc
v.v …

cùng với các công thức liên hệ giữa chúng và các sự kiện về các quan hệ sẽ trở thành
một đối tượng C-object khi ta tích hợp cấu trúc nầy với các hành vi xử lý liên quan
10


đến việc giải bài toán tứ giác cũng như các hành vi xem xét một sự kiện nào đó liên
quan đến các thuộc tính hay chính bản thân đối tượng.
 Như vậy ta có một đối tượng tứ giác.
Một C-Object có thể được mô hình hóa bởi một bộ:
(Attrs, F, Facts, 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 các 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.

Ví dụ 3: Đối tượng tính toán thuộc loại “tam giác” được biểu diễn theo mô hình trên
gồm có:
• Attrs = { GocA, GocB, GocC, a, b, c, ha, hb, hc, ma, mb, mc, pa, pb, pc, S, p, R, r,
ra, rb, rc }
• 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}, ...}
Ví dụ 4: Đối tượng (C-Object) thuộc loại “TU_GIAC” được biểu diễn theo mô hình
trên gồm có:
• Attrs = { a, b, c, d, c1, c2, GA, GB, GC, GD, . . .}
• F = { GA + GB + GC + GD = 2*Pi, a+b+c+d = p,
2*S = a*d*sin(GA)+ b*c*sin(GC),
2*S = a*b*sin(GB)+ c*d*sin(GD), . . . }
• Facts = {}
11


• Rules = { {a // c} ⇒ {GD=Pi-GA, GB=Pi-GC, GOC[A,B,D]=GOC[C,D,B],
GOC[C,A,B]=GOC[A,C,D]},

{GOC[C,A,B]=GOC[A,C,D]} ⇒ {a // c},
{a=c, b=d} ⇒ {a // c, b // d}, ...}

2. Mô hình COKB
Từ nền tảng các đối tượng tính toán C-Object, mô hình tri thức các đối tượng tính toán
COKB là một hệ thống
(C, H, R, Ops, Rules)
gồm:
2.1. Một tập hơp C chứa 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 theo chiều từ đơn giản đến phức tạp như sau:
a. Các biến thực, được ký hiệu là <real>.
b. 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 loại
<real>. Các đối tượng loại nầy làm nền cho các đối tượng cấp cao hơn.
c. Các đối tượng tính toán 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.
d. Các đối tượng tính toán 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.
Cấu trúc bên trong của mỗi lớp đối tượng gồm:
-

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.


12


-

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 đó). Các
hành vi cơ bản nầy của đối tượng tính toán sẽ được xem xét chi tiết hơn trong phần
sau.

2.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.
2.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
13


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.
2.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.
2.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 : {gt1, gt2, ..., gtn} ⇒ { kl1, kl2, ..., klm }
Để mô hình luật dẫn trên có hiệu lực trong cơ sở tri thức và ta có thể khảo sát các
thuật giải để giải quyết các bài toán, chúng ta cần xác định các dạng sự kiện khác
nhau có thể có trong các luật. Ở đây chúng ta xem xét 6 loại sự kiện khác nhau như
sau:
(1) Sự kiện thông tin về loại của một đối tượng.
(2) Sự kiện về tính xác định của một đối tượng hoặc thuộc tính của đối tượng.
(3) Sự kiện về sự 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.
(4) Sự kiện về sự bằng nhau giữa một đối tượng hay một thuộc tính với một đối
tượng hay một thuộc tính khác.
(5) Sự kiện về sự phụ thuộc của một đối tượng hay của một thuộc tính theo những
đối tượng hay các thuộc tính khác thông qua một công thức tính toán.
(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.

3. Giải thuật tìm lời giải trên mô hình COKB
14


Xét bài toán: GL=> KL. Trong đó giả thuyết GL và kết luận là tập hợp những sự kiện
trên các thuộc tính trên các đối tượng, bài toán đặt ra là từ GL có thể đi được đến KL
hay không và nếu được thì ta cần phải đi qua những bước nào để có được kết luận.
Ý tưởng cơ bản là thực hiện một quá trính suy diễn tiến kết hợp với một số qui tắc
heuristic nhằm tăng cường tốc độ giải quyết bài toán và đạt được một lời giải tốt
nhanh hơn.
Quy trình tìm lời giải sẽ ưu tiên xem xét lần lượt các tập luật theo các bước sau cho
đến khi tìm được hết các yêu cầu của bài toán:
1) Các luật và luật suy diễn tính toán trong bản thân các đối tượng Com-Object
hiện có và có liên quan đến tập các sự kiện yêu cầu.

2) Các luật và luật suy diễn tính toán trong các đối tượng Com-Object hiện có còn
lại.
3) Inside net của các đối tượng hiện có.
4) Các luật trong Rules hiện có với các sự kiện không thuộc loại 2 (xác định đối
tượng) trong phần kết luận.
5) Các luật trong Rules hiện có với các sự kiện thuộc loại 2 (xác định đối tượng)
trong phần kết luận và có các sự kiện giả thuyết liên quan đến đối tượng yêu
cầu.
6) Quay lại bước 1.

15


Phần 3. Mô Hình COKB Cụ Thể Cho Tri Thức Điện Một Chiều
Ta sẽ sử dụng đầy đủ năm thành phần của mô hình COKB (C,H,R,Ops,Rules) để biểu
diễn tri thức.
Từ sự phân tích lý thuyết bài toán mạch một chiều ở trên, ta có:

1. Tập C – Concepts
Tập C chứa các lớp đối tượng (hay khái niệm) C-Object sử dụng trong mô hình. Trong
đó, mỗi lớp đối tượng ta sử dụng cấu trúc cụ thể như sau:
(1) <kiểu lớp đối tượng>[<danh sách các đối tượng nền>]: Kiểu lớp đố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 hoặc cấp thấp hơn.
(2) Variables: 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.
(3) Constraints: Tập hợp các điều kiện ràng buộc trên các thuộc tính.
(4) ObjectDetermine_rules: 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.
(5) Computation relations: 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.
(6) Rules: 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}
(7) Object determine rules: Tập hợp các luật suy diễn như (6) nhưng các luật ở
đây chỉ dùng để xác định đối tượng của lớp đối tượng này.

16


(8) Cùng với cấu trúc trên, lớp đố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 đó). Thành phần này được gọi là Inside net, có cấu trúc và hoạt
động giống như một mạng suy diễn tính toán [2] gồm hai thành phần: objects
(các đối tượng và facts (sự kiện).
Từ phân tích lý thuyết về bài toán mạch điện một chiều ở trên, ta có thể thấy từ mạch
cơ bản đến mạch tổng hợp điều phân biệt và xây dựng dựa trên các điện trở cơ bản.
Và ta có thể xem các mạch tổng hợp nối tiếp hoặc song song là một loại mạch cơ bản
dạng đặc biệt có thêm một số tính chất (công thức quan hệ) với các đoạn mạch con
(mỗi mạch con có thể xem là một mạch cơ bản) tạo thành mạch tổng hợp đó.
Vì vậy, ta đưa ra bốn loại khái niệm C-Object:
-

DIEN_TRO để chỉ điện trở
MACH_CO_BAN chỉ mạch cơ bản
MACH_NOI_TIEP chỉ mạch nói tiếp

MACH_SONG_SONG chỉ mạch song song

1.1. Đối tượng điện trở DIEN_TRO
Loại đối tượng DIEN_TRO đề xuất ở đây là đối tượng rỗng không có giá trị, chỉ có
tác dụng làm nền cho các đối tượng khác. Giá trị thực của điện trở đó sẽ được chuyển
vào mạch cơ bản chứa nó.
Vì các điện trở khi được mắc song song hay nối tiếp trong mạch thì sẽ cho ra kết quả
cũng là các điện trở (điện trở tổng hợp). Cho nên ở đây ta sẽ đề xuất một tính chất đặc
biệt cho loại đối tượng này là các phép toán (operator) giữa chúng, gồm:
-

Phép `+`: đại diện cho cách mắc nối tiếp của hai điện trở trong mạch.
Phép `*`: đại diện cho cách mắc song song của hai điện trở trong mạch.

 Lưu ý: kết quả trả về của hai phép toán này là một đối tượng DIEN_TRO mang
tính chất là một điện trở tương đương bao quát hai điện trở trên.

17


Ví dụ, ta có
R1, R2 là DIEN_TRO
=> (R1+R2), (R1*R2) cũng là DIEN_TRO nhưng (R1+R2) là điện trở tương đương
nối tiếp của R1 và R2
Lớp này được lưu trữ thành mô hình tri thức trên máy trong tập tin DIEN_TRO.txt
1.2. Đối tượng mạch điện một chiều cơ bản MACH_CO_BAN
Đây là lớp đối tượng cấp 1. Lớp này được xây dựng dựa trên một đối tượng của lớp
DIEN_TRO. Nó có:
-


các thuộc tính là các biến thực : U, I, R,… đại diện cho các đại lượng trong một

-

mạch điện đơn.
các luật suy diễn tính toán là các công thức trên các thuộc tính: U= I/R, P =U.I,…
các luật xác định đối tượng.

Ví dụ: ta có R1: DIEN_TRO
=> MACH_CO_BAN[R1] là đoạn mạch cơ bản chứa R1
Tương tự với (R1+R2): DIEN_TRO
=> MACH_CO_BAN[(R1+R2)] là đoạn mạch cơ bản chứa điện trở tổng hợp R1, R2
được mắc nối tiếp với nhau.

 Lưu ý: khi muốn đề cập giá trị của một điện trở thì ta gọi giá trị của R của đoạn
mạch chứa điện trở đó.
Ví dụ: giá trị của DIEN_TRO R1 sẽ là MACH_CO_BAN[R1].R
Lớp này được lưu trữ thành mô hình tri thức trên máy trong tập tin
MACH_CO_BAN.txt, có cấu trúc cụ thể như sau:
begin_object: MACH_CO_BAN[R1];
R1: DIEN_TRO;
begin_variables
U,I,R,W,P,t: real;
18


end_variables
begin_constraints
U>0; I>0; R>0; W>0; P>0; t>0;
end_constraints

begin_properties
end_properties
begin_computation_relations
begin_relation 1
flag = 1
Mf
={U,I,R}
rf
=1
vf
={}
expf =` I = U/R `
cost=1
end_relation
begin_relation 2
flag = 1
Mf
={P,U,I}
rf
=1
vf
={}
expf =` P = U*I `
cost=1
end_relation

end_computation_relations
begin_rules
end_rules
begin_ObjectDetermine_rules

begin_rule 1
kind_rule = "xac_dinh_doi_tuong";
hypothesis_part:
{U,I,t}
end_hypothesis_part
goal_part:
{"Object"}
end_goal_part
end_rule
begin_rule 2
kind_rule = "xac_dinh_doi_tuong";
hypothesis_part:
{U,I,W}
end_hypothesis_part
19


goal_part:
{"Object"}
end_goal_part
end_rule

end_ObjectDetermine_rules
end_object
begin_inside_net
parameters:
objects:
facts:
end_inside_net


1.3. Đối tượng mạch nối tiếp MACH_NOI_TIEP
MACH_NOI_TIEP là mạch tương đương của hai mạch điện cơ bản mắc nối tiếp với
nhau. Đây lớp đối tượng cấp 1, là một đối tượng kế thừa MACH_CO_BAN (tính chất
này sẽ được trình bày trong phần 2. Hierarchy). Vì là lớp con, nó manh tính thừa kế
các luật suy diễn tính toán (Computation relations) từ lớp đối tượng
MACH_CO_BAN.
Ngoài ra, trong lớp này còn định nghĩa thành phần Inside net biểu diễn mối quan hệ
tính toán giữa mạch tổng hợp nối tiếp và các mạch cơ bản thành phần, hay nói rõ hơn
là các công thức các đại lượng R, I, U tương đương cho mạch nối tiếp:
R = R1 + R2
U = U1 + U2
I = I1 = I2
Ở đây, các công thức chỉ có hai đại lượng thành phần vì MACH_NOI_TIEP chỉ
được định nghĩa có duy nhất hai DIEN_TRO thành phần.
Ví dụ: ta có R1, R2: DIEN_TRO
=> MACH_NOI_TIEP[R1,R2] là đối tượng mạch tổng hợp chứa hai điện trở R1, R2
mắc nối tiếp.
Lớp này được lưu trữ thành mô hình biễu diễn tri thức trên máy trong tập tin
MACH_NOI_TIEP.txt. Có cấu trúc tương tự với một thành phần quan trọng sau:
20


begin_object

end_object
begin_inside_net
parameters:
objects:
R1, R2: DIEN_TRO;
MNT: MACH_NOI_TIEP[R1,R2];

M1: MACH_CO_BAN[R1];
M2: MACH_CO_BAN[R2];
facts:
MNT.R = M1.R + M2.R;
MNT.U = M1.U + M2.U;
MNT.I = M1.I;
MNT.I = M2.I;
M1.I = M2.I;
end_inside_net

1.4. Đối tượng mạch song song MACH_SONG_SONG
MACH_SONG_SONG là mạch tương đương của hai mạch điện cơ bản mắc song
song với nhau. Cấu trúc đối tượng này tương tự với MACH_NOI_TIEP ngoại trừ các
công thức trong Inside net là các công thức cho mạch tổng hợp hai điện trở mắc song
song.
Ví du: ta có R1, R2: DIEN_TRO
=> MACH_SONG_SONG[R1,R2] là đối tượng mạch tổng hợp chứa hai điện trở R1,
R2 mắc song song.
Lớp này được lưu trữ thành mô hình biễu diễn tri thức trên máy trong tập tin
MACH_SONG_SONG.txt với cấu trúc như sau:
begin_object

end_object
begin_inside_net
parameters:
objects:
R1, R2: DIEN_TRO;
MSS: MACH_SONG_SONG[R1,R2];
M1: MACH_CO_BAN[R1];
21



M2: MACH_CO_BAN[R2];
facts:
1/MSS.R = 1/M1.R + 1/M2.R;
MSS.I = M1.I + M2.I;
MSS.U = M1.U;
MSS.U = M2.U;
M1.U = M2.U;
end_inside_net

 Lưu ý: có mối quan hệ tương đương giữa hai loại đối tượng MACH_NOI_TIEP
và MACH_SONG_SONG với MACH_CO_BAN.
Ví dụ: ta có MACH_CO_BAN[(R1+R2)] và MACH_NOI_TIEP[R1,R2] là hai
dạng ký hiệu biễu diễn cùng một dạng thực thể mạch điện một chiều.
Hai đối tượng trên có ý nghĩa hoàn toàn giống nhau nhưng do được xây dựng dựa trên
hai khái niệm khác nhau trong mô hình tri thức của chúng ta nên tính chất của chúng
có vài điểm khác. Ta có thể chuyển đổi qua lại giữa hai dạng biểu diễn này tùy ý để
phục vụ phù hợp cho quá trình thực hiện xử lý tính toán.
Hai đối tượng trên được gọi là có mối quan hệ tương đương vì các thành phần biến
thực của chúng có giá trị bằng nhau. Quan hệ này sẽ được định nghĩa trong tập
Relations và được sử dụng trong tập Rules.
Tổng hợp lại, các lớp đối tượng DIEN_TRO, MACH_CO_BAN, MAC_NOI_TIEP
và MACH_SONG_SONG được liệt kê trong tập tin Objects.txt.

2. Tập H – Hierarchy
Tập H chứa các tính kế thừa (hay còn gọi là tính chuyên biệt hóa) giữa các lớp đối
tượng C-Object.
Tính chất kế thừa ở đây ta định nghĩa cụ thể tương tự với khái niệm trong lập trình
hướng đối tượng như sau: nếu lớp đối tượng A kế thừa lớp đối tượng B thì lớp A sẽ có

(được sử dụng) các thành phần Properties, Computation Relations, Rules được định
nghĩa trong lớp đối tượng B mà không cần định nghĩa lại.
Ta có hai quan hệ kế thừa:
22


-

MACH_NOI_TIEP kế thừa MACH_CO_BAN
MACH_SONG_SONG kế thừa MACH_CO_BAN

Tập H được lưu trên máy theo cấu trúc tập tin Hierarchy.txt.
begin_Hierarchy
MACH_NOI_TIEP, MACH_CO_BAN;
MACH_SONG_SONG, MACH_CO_BAN;
end_Hierarchy

3. Tập R – Relations
Tập R chứa các định nghĩa quan hệ giữa các lớp đối tượng C-Object. Các quan hệ này
được dùng làm mẫu cho các sự kiện sử dụng trong tập Rules và trong các thành phần
rules của lớp đối tượng.
Tập này dược lưu trên máy trong tập tin Relations.txt với cấu trúc như sau:
[<tên quan hệ>, <đối tượng thuộc quan hệ>, <đối tượng trong quan hệ>,…], {tính chất quan hệ>}
begin_Relations
["SONGSONG", MACH_CO_BAN, MACH_CO_BAN], {"doi_xung"}
["NOITIEP", MACH_CO_BAN, MACH_CO_BAN], {"doi_xung"}
["TUONGDUONG", MACH_NOI_TIEP, MACH_CO_BAN], {"doi_xung"}
["TUONGDUONG", MACH_SONG_SONG, MACH_CO_BAN], {"doi_xung"}
[`=`, MACH_CO_BAN, MACH_CO_BAN], {}

[`=`, MACH_NOI_TIEP, MACH_NOI_TIEP], {}
[`=`, MACH_SONG_SONG, MACH_SONG_SONG], {}
end_Relations

 Lưu ý: với các quan hệ có thành tên quan hệ (phần đầu tiên trong danh sách) được
đánh dấu `<tên quan hệ>` ( ví dụ: `=`) thì có thể sử dụng dưới hai dạng:
<đối tượng > <tên quan hệ> <đối tượng>
hoặc: [<tên quan hệ>, <đối tượng>, <đối tượng>]
Với các kiểu tên quan hệ còn lại thì chỉ được sử dụng dưới dạng thứ hai.

4. Tập Ops – Operators
Tập Ops chứa các toán tử áp dụng trên các lớp đối tượng C-Object. Mỗi toán tử được
định nghĩa với cấu trúc:
23


[<ký hiệu/tên toán tử>, <kiểu trả về>, <danh sách/tập các toán hạng>];
Tập Ops được lưu trên máy với tập tin Operators.txt
begin_Operators
[+, MACH_NOI_TIEP[R1,R2], { MACH_CO_BAN[R1],
MACH_CO_BAN[R2] } ];
[*, MACH_SONG_SONG[R1,R2], { MACH_CO_BAN[R1],
MACH_CO_BAN[R2] } ];
[+, DIEN_TRO, { DIEN_TRO, DIEN_TRO } ];
[*, DIEN_TRO, { DIEN_TRO, DIEN_TRO } ];
end_Operators

Các toán tử được sử dụng dưới dạng: <toán hạng> <toán tử> <toán hạng>
Ví dụ: R1, R2: DIEN_TRO
=> (R1+R2): DIEN_TRO


5. Tập Rules
Tập Rules chứa các luật suy diễn dạng: {tập các sự kiện} => {tập các sự kiện}
Trong đó có sáu loại sự kiện như trong phần giới thiệu mô hình COKB được định
nghĩa biểu diễn trên máy như sau:
1, [<object>, <loai object>]
2, <object>, <object>.<thuoc_tinh>
* Ghi chu: truong hop object duoc cau thanh tu cac object
khac thi
<thuoc> tinh co the ghi theo phuong thuc cau thanh.
Vi du: O1 : TAM_GIAC[A,B,C];
O1.GocA co the viet la O1.GOC[C,A,B]
O1.a co the viet la O1.DOAN[B,C]
3, <object> = <bieu_thuc_hang>,
# truong hop doi thuong chi co mot thuoc tinh nhu DOAN
<object>.<thuoc_tinh> = <bieu_thuc_hang>
4, <object> | <object>.<thuoc_tinh> = <object> |
<object>.<thuoc_tinh>
5, <object> | <object>.<thuoc_tinh> = object hay
thuoc tinh khac>
24


6, [<ten quan he>, day 2 doi tuong cho quan he 2 ngoi]
[<ten quan he>, {2 doi tuong co quan he (co the nhieu)}]
# truong hop quan he co tinh "doi xung"
[<ten quan he>, {3 doi tuong co quan he tro len}]
# truong hop quan he co tinh "doi_xung" va "truyen"


Các cấu trúc này được lưu trong tập tin Facts.txt
Ta có các luật suy diễn trên các đối tượng mạch điện một chiều như:
-

{} =>{ MACH_NOI_TIEP[R1,R2] = MACH_NOI_TIEP[R2,R1]}
{ ["NOITIEP", MACH_CO_BAN[R1], MACH_CO_BAN[R2]] }
=> { [MACH_NOI_TIEP[R1,R2], "MACH_NOI_TIEP[R1,R2]"] }
{ MACH_CO_BAN[R1] + MACH_CO_BAN[R2] }
=> { ["NOITIEP", MACH_CO_BAN[R1], MACH_CO_BAN[R2]] }


Được lưu cụ thể trên máy dưới dạng:
begin_rule
kind_rule = "<tên luật>";
<dang sách các đối tượng cơ bản được sử dụng>;
hypothesis_part:
{<danh sách các sự kiện giả thuyết>}
end_hypothesis_part
goal_part:
{ <danh sách các sự kiện kết luận> }
end_goal_part
end_rule

Ví dụ:
begin_rule
kind_rule = "quan_he";
R1, R2 : DIEN_TRO;
hypothesis_part:
{ MACH_CO_BAN[R1] * MACH_CO_BAN[R2] }
end_hypothesis_part

goal_part:
{ ["SONGSONG", MACH_CO_BAN[R1], MACH_CO_BAN[R2]] }
end_goal_part
end_rule

25


×