Tải bản đầy đủ (.docx) (25 trang)

TIỂU LUẬN MÔN CÔNG NGHỆ TRI THỨC BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG VÀO GIẢI BÀI TOÁN Đ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 (399.51 KB, 25 trang )

Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN CÔNG NGHỆ TRI THỨC
BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG
VÀO GIẢI BÀI TOÁN “ĐIỆN MỘT CHIỀU”
Giảng viên hướng dẫn : GS.TSKH Hoàng Kiếm
Học viên thực hiện :
Nguyễn Thị Ngọc Diễm CH1101075
Nguyễn Thị Thu Trang CH1101147
Lớp : Cao học khóa 6
1
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
TP Hồ Chí Minh, tháng 06 năm 2012
Mục Lục
Chương 1:
TỔNG QUAN
1.1 Vấn đề biểu diễn tri thức
Như ta đã biết con người sống trong môi trường có thể nhận biết được thế giới nhờ
các giác quan và sử dụng tri thức tích lũy được và nhờ khả năng lập luận, suydiễn, con
người có thể đưa ra các hành động hợp lý cho công việc mà con người đang làm.Trong
khi đó mục tiêu của trí tuệ nhân tạo ứng dụng là thiết kế các tác nhân thông minh
(Intelligent Agent) cũng có khả năng đó như con người. Tác nhân thông minh là bất cứ
cái gì có thể nhận thức được môi trường thông qua các bộ cảm nhận (sensors) và đưa ra
hành động hợp lý đáp ứng lại môi trường thông qua bộ phận hành động (effectors). Ví dụ:
robots, softrobot (software robot), các hệ chuyên gia, là các tác nhân thông minh.Chính
vì vậy, muốn xây dựng một trí thông minh nhân tạo, ta cần phải có các phương pháp đưa
tri thức vào máy tính được gọi là biểu diễn tri thức.
Tri thức đóng vai trò rất quan trọng đối với khả năng của một chuyên gia. Trong


khoa học Trí tuệ nhân tạo, để xây dựng các hệ chuyên gia và hệ giải các bài toán dựa trên
tri thức, người ta phải thiết kế một cơ sở tri thức cho hệ thống và một động cơ suy diễn để
giải quyết vấn đề dựa trên tri thức.
Quá trình nghiên cứ phát triển các phương pháp biểu diễn tri thức và cơ chế suy
luận có ý nghĩa rất lớn về lý thuyết cũng như ứng dụng của Khoa học máy tính, đặc biệt
là khoa học Trí tuệ nhân tạo. Các hệ chương trình dựa trên biểu diễn tri thức cần phải [7]:
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
- Cho phép kiểm tra quá trình suy luận bao gồm việc thể hiện cụ thể các bước
giải bài toán và trả lời hay giải thích cho quá trình giải.
- Cho phép hiệu chỉnh và cập nhật cơ sở tri thức như thêm, bớt, thay thế trong cơ
sở chi thức.
- Sử dụng các Heuristic trong việc suy luận giải bài toán nhằm tìm cách giải
nhanh, ngắn và lời giải tốt nhất có thể
Ngoài ra các hệ giải toán trong giáo dục còn đòi hỏi một lời giải tốt phù hợp với
cách suy nghĩ và cách viết bình thường của con người, càng tự nhiên càng tốt.
Một hệ giải bài toán dựa trên tri thức là một hệ giải toán thông minh có thể giải
được các dạng toán tổng quát trong một miền tri thức nào đó, trong đó nó có một cơ sở tri
thức và một bộ phận thực hiện suy luận giải toán trong phạm vi tri thức của hệ thống.
Theo cách khái quát thì, “biểu diễn tri thức là thể hiện các mô tả về thế giới bên
ngoài dưới dạng sao cho các máy thông minh có thể đưa tới những kết luận về môi
trường quanh nó, trên cơ sở một cách hình thức các mô tả này”, “thể hiện tri thức là
phương pháp dùng để mã hóa tri thức trong cơ sở tri thức của hệ thống” [5]. Trong quá
trình xây dựng cơ sở tri thức, người lập trình phải chọn lựa các đối tượng và các quan hệ
thích hợp trong miền tri thức và thực hiện một phép ánh xạ chúng trên một ngôn ngữ
hình thức. Từ đó chương trình sẽ có đủ kiến thức cho việc giải quyết các bài toán trong
phạm vi kiến thức được biểu diễn.
3
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”

Tri thức và suy diễn là hai thành phần trong bất kỳ một hệ dựa trên tri thức nào.
Phương pháp biểu diễn tri thức sẽ quyết định phương pháp suy diễn tương ứng, nhưng
ngược lại phương pháp suy diễn chỉ có thể phù hợp cho một phương pháp biểu diễn tri
thức nhất định. Để máy tính có thể sử dụng được tri thức, có thể xử lý được tri thức,
chúng ta cần phải biểu diễn tri thức dưới dạng thuận tiện cho máy tính. Đó là mục
tiêu của biểu diễn tri thức. Có nhiều phương pháp biểu diễn tri thức khác nhau với những
ưu nhược điểm nhất định, thường được phân chia thành 4 phương pháp [6] :
- Các phương pháp biểu diễn tri thức dựa trên logic hình thức : Các phương
pháp này sử dụng các biểu thức logic hình thức để diễn đạt các sự kiện và các
luật trong cơ sở tri thức. Các thủ tục sẽ chứng minh áp dụng kiến thức vào các
bài toán cụ thể. Phép tính logic vị từ cấp 1 được sử dụng phổ biến nhất (
PROLOG là ngôn ngữ lập trình hỗ trợ tốt nhất cho phương pháp này).
- Các phương pháp biểu diễn tri thức thủ tục : Biểu diễn tri thức như là một tập
hợp các chỉ thị dùng cho việc giải quyết các bài toán. Trong nhiều hệ chuyên
gia ứng dụng các chỉ thị như thế thường được thể hiện bởi một tập các luật đẫn
có dạng “if then ”
- Các phương pháp biểu diễn tri thức dạng mạng : Biểu diễn mạng nắm bắt 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 các quan hệ hay những sự kết hợp nào đó giữa
các đối tượng và các khái niệm. Phổ biến trong phương pháp này là các mạng
ngữ nghĩa và các đồ thị khái niệm.
o Ưu điểm:
 Cho phép biểu diễn một cách trực quan các sự kiện
và các mối liên hệ giữa chúng.
 Tính mô đun cao theo nghĩa các tri thức mới được
thêm vào hoàn toàn độc lập với các tri thức cũ.
 Là ngôn ngữ biểu diễn dạng mô tả.
 Có thể áp dụng một số cơ chế suy diễn trên
mạng: cơ chế truyền và thừa hưởng thông tin giữa
các đối tượng (tính kế thừa), cơ chế “cháy” trên

mạng.
o Nhược điểm:
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
 Không có một phương pháp suy diễn chung nào cho
mọi loại mạng ngữnghĩa.
 Khó kiểm soát quá trình cập nhật tri thức để dẫn
đến mâu thuẫn trong cơ sở tri thức.
- 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 trừu tượng trong
biểu diễn. Ví dụ như frame và object.
-
Khi xây dựng một cơ sở tri thức cho chương trình, người thiết kế và lập trình phải
vận dụng một cách linh hoạt sáng tạo các phương pháp biểu diễn tri thức cơ bản trên để
phù hợp với những khái niệm, quy luận, liên hệ khác nhau trong tri thức.
5
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
1.2 Vấn đề suy diễn tự động
Cùng với vấn đề biểu diễn tri thức, suy diễn tự động để giải quyết các bài toán dựa
trên tri thức cũng là vấn đề quan trọng. Các phương pháp duy diễn tự động nhằm vận
dụng kiến thức đã biết trong quá trình lập luận giải quyết vấn đề trong đó quan trọng nhất
là các chiến lược điều khiển giúp phát inh những sự kiện mới từ các sự kiện đã có. Các
kỹ thuật suy diễn tự động được khái quát thành một số phương pháp sau [7]:
- Phương pháp hợp giải trong biểu diễn tri thức dưới dạng vị từ. Trong phương
pháp biểu diễn logic hình thức ta sử dụng các luật suy diễn như luật “Modus
Ponens”, “Modus Tollens”, “tam đoạn luận”
- Phương pháp suy diễn tiến (Forward Chaining) : “Chiến lược suy luận được
bắt đầu bằng tập đã biết, rút ra được các sự kiện mới nhờ dung 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àu 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ả 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 2 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ể.
1.3 Phần mềm toán học Maple
Phần mềm Maple là một phần mềm đại số tính toán (Computer Algebra) khá
mạnh trong đó không chỉ hỗ trợ các tính toán về số mà cả các tính toán ký hiệu, tính toán
hình thức (Symbolic Computation). Nó có một nhân tính toán rất mạnh và một hệ thống
như viện tính toán gồm nhiều gói chương trình (package) cho các phần tính toán toán học
khác nhau như đại số tuyến tính, giải tích, hình học, số học, … Ngoài ra Maple còn cho
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
phép khả năng lập trình với các cấu trúc dữ liệu trừu tượng để xây dựng những gói
chương trình mới bổ sung vào hệ thống thư viện của nó.
Tuy khả năng lập trình của Maple đạt đến trình độ rất cao nhưng chủ yếu là các
thủ tục tính toán cho từng vấn đề đơn lẻ như giải một phương trình, tính đạo hàm của một
hàm số, thực hiện các phép tính đa thức … Maple chưa thực sự cài đặt một cơ sở tri thức
cho các phần toán học khác nhau với các bộ suy luận giải toán dựa trên tri thức. Ví dụ
như gói chương trình về hình học chỉ cung cấp một số thủ tục tính toán đơn giản như :
tính diện tích hình vuông khi biết tọa độ 4 đỉnh, tính độ dài đoạn thẳng khi biết tọa độ 2
điểm đầu của đoạn thẳng đó, …
Ngoài phần mềm toán học Maple, chúng ta còn thấy nhiều phần mềm tính toán
toán học khác như Mathematica, MathCad, Reduce, … Các phần mềm này cũng như

Maple chỉ cung cấp những đơn vi chương trình giúp thực hiện các thao tác tính toán riêng
lẻ mà chưa có một bộ giải toán dựa trên một cơ sở tri thức thật sự. Người sử dụng phần
mềm này khi cần giải quyết một vấn đề nào đó mang tính tổng quát hơn thì phải thiết kết
một quy trình giải bài toán dưới dạng thuật giải và tự cài đặt thuật giải đó dựa vào ngôn
ngữ lập trình được cho trong phần mềm. Và cũng chính nhờ sự hỗ trợ thư viện mở rộng
đó mà đây cũng là những công cụ hỗ trợ tốt cho người lập trình liên quan đến tính toán
các bài toán phức tạp có thể mở rộng và phát triển hệ giải toán dựa trên tri thức một cách
dễ dàng và thuận tiện hơn
7
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
Chương 2:
MÔ HÌNH COKB
Chương này trình bày về mô hình tri thức được sử dụng làm cơ sở lý thuyết, mô
hình COKB, tham khảo trong tài liệu [8]
2.1 Định nghĩa Mô hình COKB
Một mô hình tri thức các C-Object (viết tắt là mô hình COKB – Computational
Objects Knowledge Base) là một hệ thống gồm 5 thành phần:
(C, H, R, Ops, Rules)
Trong đó:
o C là một tập hợp các khái niệm về các C-Object
o H là một tập hợp các quan hệ phân cấp giữa các loại đối tượng
o R là tập hợp các khái niệm về các loại quan hệ trên các C-Object
o Ops là một tập hợp các toán tử
o Rules là tập hợp các luật được phân lớp
Chi tiết về mỗi thành phần được mô tả cụ thể như sau:
o Một tập hợp C các khái niệm về các C-Object:
o Một tập hợp H các quan hệ phân cấp giữa các loại đối tượng
o 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
o Một tập hợp Ops các toán tử

o Một tập hợp Rules gồm các luật được phân lớp
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
Mỗi luật cho ta một quy 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 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:
R:{sk
1
,sk
2
,…,sk
n
}=>{sk
1
,sk
2
,…,sk
m
}
Để 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ác
thuậ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 trong
các luật. Dưới đây là định nghĩa cho 11 loại sự kiện khác nhau được xem xét trong mô
hình:
 Các loại sự kiện
[1] Sự kiện thông tin về loại của đối tượng.
[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.
[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.
[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 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.
[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.
2.2 Tổ chức cơ sở tri thức về theo mô hình COKB
2.2.1 Các thành phần
Cơ sở tri thức về các C-Object theo mô hình COKB có thể được tổ chức bởi một
hệ thống tập tin văn bản có cấu trúc thể hiện các thành phần trong mô hình tri thức. Có
thể thiết kế hệ thống các tập tin nầy gồm những tập tin như sau:
o Tập tin “Objects.txt” lưu trữ các định danh (hay tên gọi) cho các khái niệm
về các loại đối tượng C-Object.
9
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
o Tập tin “Relations.txt” lưu trữ thông tin về các loại quan hệ khác nhau trên
các loại C-Object.
o 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 trên các khái niệm.
o Các tập tin với tên tập tin có dạng “<tên khái niệm C-Object>.txt” để lưu
trữ cấu trúc của loại đối tượng <tên khái niệm C-Object>. Ví dụ: tập tin
“TamGiac.txt” lưu trữ cấu trúc của loại đối tượng tam giác.
o Tập tin “Operators.txt” lưu trữ các thông tin về các toán tử trên các đối
tượng.
o Tập tin “Define-Operators.txt” lưu trữ định nghĩa về các toán tử trên các
đối tượng.
o Tập tin “Facts.txt” lưu trữ thông tin về các loại sự kiện khác nhau.
o Tập tin “Rules.txt” lưu trữ hệ luật của cơ sở tri thức.
2.2.2 Cấu trúc của các tập tin lưu trữ các thành phần COKB
Các tập tin lưu trữ các thành phần trong cở sở tri thức các C-Object được ghi dưới
dạng các văn bản có cấu trúc dựa trên một số từ khóa và qui ước về cú pháp khá đơn giản

và tự nhiên. Dưới đây là phần liệt kê cấu trúc của các tập tin:
- Cấu trúc tập tin “Objects.txt”
begin_Objects
<tên lớp đối tượng 1>
<tên lớp đối tượng 2>

end_Objects
- Cấu trúc tập tin “relations.txt”
begin_Relations
[<tên quan hệ>, <loại đối tượng>, <loại đối tượng>, ],
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
{<tính chất>, <tính chất>, }
[<tên quan hệ>, <loại đối tượng>, <loại đối tượng>, ],
{<tính chất>, <tính chất>, }

end_Relations
- 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>;

begin_variables
<tên thuộc tính> : <kiểu>;

end_variables
begin_constraints

end_constraints
begin_properties
<sự kiện>


end_properties
begin_computation_relations
begin_relation
flag=<0 hoặc 1>
Mf={các thuộc tính}
rf=1
vf={ghi thuộc tính kết quả nếu flag = 0}
expf= `biểu thức tính toán`
11
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
cost= <trọng số của sự tính toán>
end_relation

end_computation_relations
begin_rules
begin_rule
kind_rule = "<loại luật>";
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
end_object
begin_inside_net
parameters:
objects:


facts:

end_inside_net
- Cấu trúc tập tin “rules.txt”
begin_rules
begin_rule
kind_rule = "<loại luật>";
<các tên đối tượng> : <kiểu đối tượng>;

Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
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
2.3 Mô hình bài toán
2.3.1 Mô hình
Dựa trên việc nghiên cứu các bài toán cụ thể ta có thể đề xuất mô hình bài toán
tổng quát trên mô hình tri thức COKB gồm các thành phần như sau:
(O, M, Facts), Goal
Trong đó:
o O là tập các đối tượng tính toán trong bài toán
o M là tập các thuộc tính của các đối tượng được đề cập tới trong bài toán
o Facts là tập các sự kiện thuộc 6 lọai [1]-[6]
o Goal là mục tiêu hay yêu cầu của bài toán
2.3.2 Đặc tả bài toán

Để có thể thiết kế phần giao tiếp và cho phép nhập bài toán vào hệ thống giải bài
toán một cách đa dạng và đáp ứng các yêu cầu thực tế, ta cần có một ngôn ngữ quy ước
để đặc tả bài toán. Trong mục này trình bày ngôn ngữ quy ước để đặc tả bài toán với các
tiêu chí sau:
o Tính đơn giản.
o Tính tự nhiên.
o Tính tiện dụng.
13
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
o Khả năng đặc tả tốt.
Hệ thống sẽ cung cấp 2 cách để đặc tả bài toán:
Đề bài có thể được cho dưới dạng một tập tin văn bản có cấu trúc dựa trên một số
từ khoá như: begin_exercise, end_exercise, begin_hypothesis, end_hypothesis,
parameters, end_parameters, objects, end_object, facts, end_facts, goals, end_goals
cùng với một số qui ước khai báo các tham biến, các đối tượng, các sự kiện, các hàm, và
yêu cầu của bài toán.
Cấu trúc của đề bài bài toán có dạng như sau:
begin_exercise
kind_ex = ”….”
// Phần giả thiết của bài toán
begin_hypothesis
parameters:
<các tham biến>
end_parameters
objects:
<dãy các tên đối tượng> : <kiểu đối tượng>
…………
end_objects
facts:

<các sự kiện giả thiết loại [1] – [6]>
………
end_facts
end_hypothesis
// Phần kết luận_mục tiêu của bài toán
begin_goal
[<các sự kiện mục tiêu>]
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
end_goal
end_exercise
15
R1 R2 R3 Rn
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
Chương 3:
BÀI TOÁN ĐIỆN MỘT CHIỀU
Yêu cầu : Cho biết một số giá trị của mạch điện một chiều, sơ đồ mạch điện (đã được
vẽ lại), tìm một số yếu tố còn lại.
1.1 Thu thập tri thức về “Dòng điện không đổi”
1. Định luật Ôm cho đoạn mạch chỉ có điện trở
(A)
- Nếu có R và I, có thể tính hiệu điện thế như sau :
U = V
A
- V
B
= I.R ; I.R: gọi là độ giảm thế (độ sụt thế hay sụt áp) trên điện trở.
- Công thức của định luật ôm cũng cho phép tính điện trở:
( )Ω

U
R =
I

2. Điện trở mắc nối tiếp
Điện trở tương đương được tính bởi:
R

= R
l
+ R
2
+ R
3
+ … + R
n

I
m
= I
l
= I
2
= I
3
=… = I
n
I
m
=

U
m
= U
l
+ U
2
+ U
3
+… + U
n
3. Điện trở mắc song song
RnR3R2R1
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
Điện trở tương đương được anh bởi
1 2 3 n
d
1 1 1 1
+ + + +
R R R R
1
=
R
t
I
m
= I
l
+ I
2

+ … + I
n
I
m
=
U
m
= U
l
= U
2
= U
3
= … = U
n
1.2 Mô hình tri thức :
1.2.1 Mô hình biểu diễn tri thức cho ứng dụng
Xây dựng mô hình dựa trên mô hình tri thức COKB (Computational Objects
Knowledge Base) gồm 3 thành phần :
(C, R, Rules)
Mô hình biểu diễn tri thức cho ứng dụng “Điện một chiều” sử dụng các loại sự
kiện của mô hình COKB.
1.2.2 Tập các mảng đối tượng O
- Đoạn mạch ĐM : ĐM = {ĐM[1], ĐM[2], ĐM[3], }
- Điện trở R : R ={R[1],R[2],R[3] }
1.2.3 Tập các quan hệ R
Tập các quan hệ R là tập các sự kiện đối tượng thuộc đoạn mạch nào, các đối
tượng nối tiếp, song song
- R[1] ĐM[1], R[2] ĐM[1],
- R[1] nt R[2]

- R[3]//(R[1] nt R[2])
- (R[1] nt R[2] ) // (R[3] nt R[4])
- R[i] nt R[j] , R[i] // R[j]
1.2.4 Tập luật Rules
17
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
Tập luật Rules chung cho mọi bài toán, lưu trữ ngoài trên file text có cấu trúc
1.2.4.1Tập luật dạng phương trình (Rules_1 )
(3)
(4)
U[i] = R[i]*I[i] (5)
1.2.4.2 Tập luật dạng luật dẫn (Rules_2)
- if R[i] in ĐM[x], R[j] in ĐM[x],
R[i] nt R[j]
then ĐM[x].R =R[i]+R[j] (6-1)
- if R[i] in ĐM[x], R[j] in ĐM[x],
R[i] nt R[j]
then ĐM[x].I = I[i] = I[j] (6-2)
- if R[i] in ĐM[x], R[j] in ĐM[x],
R[i] nt R[j]
then ĐM[x].U = U[i] + U[j] (6-3)
- if R[i] in ĐM[x], R[j] in ĐM[x],
R[i] // R[j]
then ĐM[x].R =( R[i]*R[j])/(R[i]+R[j]) (7-1)
- if R[i] in ĐM[x], R[j] in ĐM[x],
R[i] // R[j]
then ĐM[x].I = I[i] + I[j] (7-2)
- if R[i] in ĐM[x], R[j] in ĐM[x],
R[i] // R[j]

then ĐM[x].U = U[i] = U[j] (7-3)
-
1.3 Tổ chức cơ sở tri thức
- Đối tượng Điện trở cơ bản : Lưu trên file R_unit.txt theo cấu trúc
Tên_đối_tượng : Chú thích
Ví dụ :
R: Điện trở
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
U: Hiệu điện thế
I: Cường độ dòng điện
- Tập các đối tượng : Lưu trữ trên file Objects_2.txt theo cấu trúc sau
Tên_đối_tượng : Chú thích
Ví dụ :
R : Điện trở
ĐM: Đoạn mạch
- Tập luật dạng phương trình : Lưu trữ trên file Rules_1.txt
{số lượng các đối tượng liên quan} đối_tượng_1 = công thức
Ví dụ :
{3} U[i] = R[i]*I[i]
{3} R[i] = U[i]/I[i]
{3} I[i] = U[i]/R[i]
- Tập luật dạng luật dẫn : Lưu trữ trên file Rules_2.txt với cấu trúc
{số lượng các đối tượng liên quan} If (điều kiện) Then (tính toán)
Ví dụ :
{3} If (R[i]-> ĐM[x], R[j]-> ĐM[x], R[i] nt R[j])
Then ĐM[x].R =R[i]+R[j]
1.4 Thuật giải
- Quá trình suy luận dựa vào suy diễn tiến
- Từ công thức nhập vào ta xác định các đối tượng điện trở và đoạn mạch

- Mỗi đoạn mạch gồm 2 đối tượng với quan hệ là song song (ss) hoặc nối tiếp
(nt)
VD: (R1 nt R2) ss R3: gồm 2 đoạn mạch
 ĐM1 gồm R1, R2 và quan hệ nối tiếp
 ĐM2 gồm ĐM1, R3 và quan hệ song song
- Tính các giá trị có thể tính được của đối tượng dựa vào các giá trị đã biết của
đối tượng đó
- Để kích hoạt công thức chứa n yếu tố, thì ta chỉ cần biết được (n-1) yếu tố.
1.4.1 Thuật giải
- Nhập vào:
o dt : các công thức của đối tượng trong mạch điện
VD: Đối với mạch điện gồm hai điện trở R1 nt R2 ta có
19
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
o dt := {Id1 = I1, Id1 = I2, P1 = U1*I1, P2 = U2*I2, Pd1 = Ud1*Id1, Rd1 =
R1+R2, U1 = I1*R1, U2 = I2*R2, Ud1 = Id1*Rd1, Ud1 = U1+U2}
o gt: tập các đối tượng đã biết (giả thiết)
o kl: tập các đối tượng cần tìm (kết luận)
o đk: điều kiện cho các đối tượng trong đoạn mạch
- Quá trình suy luận
o Biến:
 steps : lưu các bước giải
 found : cờ, nếu tìm hết trong tập kl thì found = true, ngược lại
thì found = false
o Khởi tạo:
 steps := {};
 found := false;
- While ( còn áp dụng được công thức trong tập dt VÀ chưa tìm được lởi giải )
o Duyệt từng công thức dt[i]trong tập các đối tượng mạch điện một chiều dt

o Kiểm tra xem (n-1)biến tồn tại trong dt[i] có trong tập giả thiết (gt) không
o Nếu có :
 Kích hoạt biến còn lại dựa theo các biến đã biết
 Thêm biến được kích hoạt vào tập giả thiết
 Thêm công thức dt[i] vào steps
o Kiểm tra nếu tập kl là tập con của gt thì dừng
o Ngược lại tiếp tục vòng lặp
Code trong Maple :
getSteps := proc (dt :: set, gt :: set, kl :: set,
dk :: set)
local gt1,dt1,dt2,found,steps;
local temp,tempkq,i,vars;
steps := {};
gt1 := gt;
dt1 := dt;
dt2 := {};
found := false;
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
while ((found = false) and (dt1 <> dt2)) do
dt2 := dt1;
for i from 1 to nops(dt2) do
i;
vars[1] := getVars(dt2[i]);
vars[2] := getVars(gt1);
vars[3] := vars[1] intersect vars[2];
if (nops(vars[3]) = (nops(vars[1]) -1)) then
temp := solve({dt2[i]} union dk union gt1);
tempkq := (temp minus gt1 ) minus dk;
gt1 := gt1 union (temp minus dk);

steps := steps union {[nops(steps) + 1,
dt2[i],tempkq]};
kl;gt1; temp := kl minus getVars(gt1);
if (temp = {}) then
found := true;
break;
fi;
dt2 := dt2 minus {dt2[i]};
i := i-1;
fi;
od;
21
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
od;
if (found = false )then steps := {"Khong tim thay"};
fi;
return steps;
end:
1.4.2 Ví dụ
gt := {Id = 3, R1 = 20, R2 = 40}
kl := {Ud1}
dk := {0 < I1, 0 < I2, 0 < Id1, 0 < P1, 0 < P2, 0 < Pd1, 0 < R1, 0 < R2, 0 < Rd1, 0 <
U1, 0 < U2, 0 < Ud1}
dt := {Id1 = I1, Id1 = I2, P1 = U1*I1, P2 = U2*I2, Pd1 = Ud1*Id1, Rd1 = R1+R2, U1
= I1*R1, U2 = I2*R2, Ud1 = Id1*Rd1, Ud1 = U1+U2}
 Áp dụng thuật giải trên ta được kết quả các bước giải sau :
- [1, Id1 = I1, {I1 = 3}],
- [2, Id1 = I2, {I2 = 3}],
- [3, Rd1 = R1+R2, {Rd1 = 60}],

- [4, U1 = I1*R1, {U1 = 60}],
- [5, U2 = I2*R2, {U2 = 120}],
- [6, Ud1 = Id1*Rd1, {Ud1 = 180}]
1.5 Áp dụng
1.5.1 Bài toán ví dụ
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
Cho mạch điện như hình vẽ. Biết R[1] = 20Ω, R[2] = R[3] = 40Ω; R[4] = 50Ω;
I=3A. Tính hiệu điện thế qua R[2].
1.5.2 Biểu diễn tri thức
- Dữ liệu nhập vào :
o (R[1] nt R[2])//(R[3] nt R[4])
o R[1] = 20
o R[2] = 40
o R[3] = 30
o R[4] =50
- Tập các đối tượng được hình thành từ đề bài :
o Đoạn mạch : ĐM = {ĐM[1], ĐM[2]}.
o Điện trở : R= {R[1] = 20 Ω, R[2] = 40Ω, R[3] = 40Ω, R[4] = 50Ω }.
- Tập các sự kiện :
o R[1] = 20
o R[2] = 40
o R[3] = 30
o R[4] =50
o
o [“thuoc”, E[1], ĐM[3]]
o [“thuoc”, R[1], ĐM[1]]
o [“thuoc”, R[2], ĐM[1]]
o [“thuoc”, R[3], ĐM[2]]
o [“thuoc”, R[4], ĐM[2]]

o
o [“//”,ĐM[1], ĐM[2] ]
o
o [“nt”, R[1], R[2]]
o [“nt”, R[3], R[4]]
23
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
1.5.3 Quá trình suy luận
o Theo luật (6-1) => ĐM[1].R = R[1]+R[2] = 20 + 40 = 60(Ω)
o Theo luật (6-1) => ĐM[2].R = R[3]+R[4] = 40 + 50 = 90(Ω)
o Theo luật (7-1) => ĐM[3].R

= (ĐM[1].R * ĐM[2].R

)/( ĐM[1].R +
ĐM[2].R)

= (60*90) / (60 + 90) = 36 (Ω)

theo luật (4)
o ĐM[3].R = 36 (Ω)
o ĐM[3].I = I

= 3 (A) theo giả thiết
o ĐM[3].U = ĐM[3].R* ĐM[3].I = 36 * 3 = 108(V)
o Theo luật (7-3) => ĐM[3].U = ĐM[1].U = ĐM[2].U (*)
 ĐM[3].U

= ĐM[1].U


= ĐM[2].U =108 (V)
o Theo luật (4) => ĐM[1].I

= = = 1,8 (A)
o Theo luật (6-2) => R[1].I

= R[2].I

= ĐM[1].I = 1,8 (A)
o Theo luật (5) => R[2].U

= R[2].I * R[2] = 1,8 * 40 = 72 (V)
Biểu diễn tri thức và ứng dụng
Bài toán “Điện một chiều”
Tài liệu tham khảo
[1] Đỗ Văn Nhơn , Xây dựng hệ tính toán thông minh, 2002
[2] Hoàng Kiếm, Đỗ Văn Nhơn – Mở rộng và phát triển mô hình tri thức các
đối tượng tính toán – Kỷ hiếu hội thảo Quốc gia – Đà Nẵng 18-20 tháng 8
năm 2004
[3] Hoàng Kiếm, Đỗ Văn Nhơn – Mạng tính toán và ứng dụng, 1996
[4] Sách giáo khoa Vật Lý Nâng cao 11, Nhà xuất bản giáo dục, 2011
[5] Adam Blum, Neural Networks in C++, John Wiley & Sons, Inc, 1992
[6] Steven Holzner, Visual C++ Programming Brady, 1994
[7] Đỗ Văn Nhơn, Luận văn cao học “Xây dựng hệ tính toán thông minh”,
2002
[8] Đỗ Văn Nhơn, Mô hinh COKB, 2001
25

×