Mạng tính toán với các biến có giá trị đơn giản và mạng các đối tượng tính toán có thể được dùng để biểu diễn tri thức trong nhiều miền tri thức khác nhau. Các thành phần cơ bản của tri thức gồm: Một tập các biến có giá trị đơn giản và một tập các quan hệ tính toán trên các biến đó. Tuy nhiên, có nhiều miền cơ sở tri thức trên tập các phần tử mà mỗi phần tử là một biến có giá trị đơn giản hoặc là một hàm. Chẳng hạn như trong tri thức về dòng điện xoay chiều thì cường độ dòng điện i(t) và hiệu điện thế u(t) là các hàm theo t. Điều này dẫn đến một số mở rộng cho mạng tính toán như là mạng tính toán mở rộng và mạng các đối tượng tính toán mở rộng.
Một mạng tính toán mở rộng là một cấu trúc (M, R) gồm 2 tập:
f v M M
M : là tập các thuộc tính của các phần tử với giá trị đơn giản hoặc là giá
trị hàm. Mv = {xv1, xv2, …, xvk} là tập các biến có giá trị đơn giản, Mf = {xf1, xf2, …,
xfm} là tập các phần tử có giá trị hàm. fvf vf fv vv R R R R
R : là tập các luật suy diễn, và R là hợp của 4 tập các luật con
gồm Rvv,Rfv,Rvf,Rfvf . Mỗi luật r có dạng r: u(r) v(r), với u(r) là các giả thiết của r
và v(r) là các kết luận của r. Một luật cũng là một trong bốn trường hợp dưới đây:
Trường hợp 1: rRvv. Khi đó, u(r)Mvvà v(r)Mv
Trường hợp 2: rRfv. Khi đó, u(r)Mfvà v(r)Mv
Trường hợp 3: rRvf. Khi đó, u(r)Mvvà v(r)Mf
Trường hợp 4:rRfvf . Khi đó, u(r)M,u(r)Mf ,u(r)Mv và v(r)Mf
Mỗi luật trong tập R đều có quan hệ tính toán tương ứng trong tập
fvf vf fv vv F F F F F .
30
Một đối tượng tính toán mở rộng là một đối tượng O có cấu trúc gồm:
Một tập các thuộc tính Attr(O)MvMf, với Mv là tập các biến giá trị đơn
giản; Mf là tập các biến dạng hàm. Giữa các biến hoặc giữa các thuộc tính có
các quan hệ nội tại, cũng chính là các luật suy diễn hay các quan hệ tính toán.
Một đối tượng O có các hành vi suy luận và tính toán trên các thuộc tính của
đối tượng hoặc các sự kiện như: tìm tập bao đóng của một tậpA Attr(O); tìm
một lời giải cho bài toán AB vớiA Attr(O) và BAttr(O); thực hiện tính
toán; xác định sự kiện hay xác định đối tượng. 2.3 HỆ GIẢI TOÁN THÔNG MINH
2.3.1 Yêu cầu đối với một hệ giải toán:
Là một hệ giải toán thông minh có thể giải được các dạng bài toán tổng quát trong
một miền tri thức nào đó.
Có một cơ sở tri thức và một bộ phận thực hiện suy luận tự động dựa trên tri thức.
Cho phép kiểm tra quá trình suy luận trả lời hay giải thích cho quá trình giải.
Cho phép truy cập, hiệu chỉnh và cập nhật cơ sở tri thức.
Sử dụng các heuristic trong việc suy luận nhằm đạt được lời giải tốt và nhanh nhất.
Lời giải phải chính xác, tường minh, hợp lý, tối ưu đến mức có thể và phù hợp với
cách suy nghĩ, cách viết của con người, lời giải càng tự nhiên thì càng tốt. 2.3.2 Cấu trúc của một hệ giải toán dựa trên tri thức
Cấu trúc của một hệ giải toán dựa trên tri thức gồm có các thành phần chính sau:
31
Giao diện chương trình: dùng để giao tiếp giữa người sử dụng và hệ thống. Giao
diện phải đẹp, tiện dụng, phù hợp với người dùng.
Bộ giải thích: phân tích dữ liệu được nhập vào, phân tích yêu cầu bài toán.
Cơ sở tri thức: chứa các kiến thức cần thiết cho việc giải các bài toán trong một
miền tri thức nhất định.
Bộ phận suy diễn: giải quyết các vấn đề liên quan đến tri thức, thực hiện suy
diễn tự động dựa trên phạm vi tri thức của hệ thống, nó nhận dạng được bài toán, áp dụng kiến thức được lưu trữ trong cơ sở tri thức để tìm kiếm, suy diễn, tìm lời giải hợp lý cho các bài toán được đặt ra.
Vùng nhớ làm việc: dùng để ghi, đọc các sự kiện trung gian.
Quản lý tri thức: quản lý cơ sở tri thức được nhất quán.
Trong một hệ giải toán nhất thiết phải có 2 thành phần cơ bản, thứ nhất là “cơ sở tri thức” – là trái tim của toàn hệ thống, và thứ hai là “bộ suy diễn” – là động cơ suy diễn sẽ hoạt động trong khi giải toán.
Quá trình giải toán là một quá trình suy diễn những kiến thức có quan hệ với nhau trong cơ sở tri thức để từ giả thuyết có thể suy ra được kết luận của bài toán. Do đó, hai mối quan tâm nền tảng nhất khi xây dựng một hệ giải toán thông minh là nghiên cứu cách biểu diễn tri thức của con người và xây dựng các chiến lược tìm kiếm lời giải cho bộ suy diễn để có thể có được một hệ thống thông minh uyển chuyển trong khi giải toán.
Một số điểm cần lưu ý về mặt nguyên tắc:
Bộ phận suy diễn và cơ sở tri thức phải có tính độc lập tương đối với nhau. Độc lập tương đối là không ràng buộc theo cách hữu cơ, phức tạp và khi có sự điều chỉnh của một trong hai yếu tố thì không dẫn đến sự thay đổi của yếu tố còn lại (trừ khi có một sự thay đổi quá lớn). Sự độc lập này sẽ giúp cho việc biểu diễn tri thức được thực hiện một cách tự nhiên hơn, gần gũi hơn với quan niệm của con người, giúp dễ cài đặt chương trình, tăng cường tính module hoá cho từng thành phần, có thể sử dụng cùng một chiến lược điều khiển cho nhiều hệ thống khác nhau hoặc là có thể thử nghiệm nhiều chiến lược điều khiển khác nhau trên cùng một cơ sở tri thức.
32
Đối với phần giao diện, có 3 kiểu giao tiếp:
Giao tiếp dòng lệnh.
Giao tiếp theo các chuẩn của Windows: menu, icon…
Giao tiếp bằng ngôn ngữ: ngôn ngữ đặc tả tri thức và truy vấn vào cơ sở dữ liệu, bảo đảm những thuật ngữ của chuyên môn, bảo đảm ngữ nghĩa như quan niệm của con người, càng tự nhiên càng tốt.
Nhận xét
Mô hình COKB, mạng tính toán, mạng các đối tượng tính toán thể hiện một cách khá đầy đủ và toàn diện kiến thức thực tế của con người. So với các cách biểu diễn tri thức khác thì phương pháp biểu diễn dựa trên mô hình COKB tỏ ra hiệu quả hơn về nhiều mặt: từ mặt biểu diễn, suy diễn, cho đến giao tiếp,… Với cách tổ chức tri thức theo mô hình này, ta có thể thiết kế được mô hình biểu diễn tri thức cho các bài toán tổng quát, và trên cơ sở đó thiết kế được các thuật giải tổng quát mô phỏng hành vi suy luận giải quyết vấn đề dựa trên tri thức của con người. Điều này giúp cho việc thiết kế các module suy diễn khá dễ dàng và cho lời giải tường minh với sự giải thích về sự vận dụng tri thức trong cơ sở tri thức một cách rõ ràng. Ngoài ra, cách biểu diễn tri thức theo mô hình COKB cũng giúp ta xây dựng ngôn ngữ đặc tả gần gũi với ngôn ngữ tự nhiên hơn.
Mặc dù vậy, bên cạnh những ưu điểm ở trên thì mô hình COKB vẫn có một số hạn chế như sau:
Mô hình COKB vẫn còn quá tổng quát khi ta đi sâu vào giải quyết các dạng
toán cụ thể, dẫn đến làm cho quá trình thiết kế, xây dựng, tổ chức cơ sở tri thức và bộ suy diễn gặp nhiều khó khăn và mất nhiều thời gian.
Thành phần đối tượng tính toán Com-Object có phạm trù quá rộng, quá phức
tạp đối với một số miền tri thức.
Các thành phần có thể dư thừa đối với một số lớp bài toán.
Thành phần tri thức hàm mới chỉ được đặc tả về mặt hình thức, vẫn chưa hoàn
33
Từ những hạn chế này của mô hình COKB mà mục tiêu đặt ra của đề tài là nghiên cứu việc giới hạn phạm vi của các thành phần, loại bỏ một số thành phần tri thức nhằm giảm bớt độ phức tạp của mô hình COKB, để phù hợp hơn trong việc biểu diễn tri thức trên một số lớp bài toán trong miền tri thức Hình học giải tích hai chiều, từ đó nghiên cứu sâu hơn về thành phần tri thức hàm và đề xuất một mô hình tri thức mới tối ưu hơn mô hình COKB trong một số miền tri thức cụ thể. Phần chương 3 của bài báo cáo này sẽ trình bày chi tiết về mô hình mới này.
34
Chương 3. MÔ HÌNH VÀ THUẬT GIẢI 3.1 MÔ HÌNH TRI THỨC FUNCS-COKB
Như đã đề cập ở chương 2, mô hình COKB quá tổng quát và phức tạp đối với một số miền tri thức cụ thể. Do đó, qua quá trình nghiên cứu những ưu điểm và hạn chế của mô hình COKB đối với miền tri thức Hình học giải tích 2 chiều, em xin đề xuất một mô hình cơ sở tri thức mới từ việc loại bỏ thành phần tri thức về các quan hệ phân cấp trên các đối tượng H, và giới hạn lại phạm vi của từng thành phần trong mô hình COKB, mô hình COKB thu hẹp này được gọi là mô hình Funcs-COKB. Phần tiếp theo sẽ giới thiệu rõ hơn về mô hình này.
3.1.1 Các thành phần của mô hình Funcs-COKB
Định nghĩa 3.1: Mô hình cơ sở tri thức các đối tượng tính toán thu hẹp (Funcs- COKB model) là hệ thống cơ sở tri thức bao gồm 5 thành phần sau:
(C, R, Ops, Funcs, Rules) Trong đó:
(1)C là một tập hợp các khái niệm về các đối tượng tính toán thu hẹp.
Một đối tượng tính toán thu hẹp là một đối tượng O có cấu trúc gồm một bộ (Attrs, F, Rules). Trong đó, Attrs là tập các thuộc tính của đối tượng, F là tập các phương trình hay còn gọi là tập các quan hệ tính toán và Rules là tậ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ủa đối tượng hay của bản thân đối tượng. Như vậy so với đối tượng tính toán trong mô hình COKB thì cấu trúc của đối tượng tính toán trong mô hình Funcs-COKB đơn giản hơn, cụ thể chỉ gồm 3 thành phần so với 4 thành phần của mô hình COKB, do đã giảm đi thành phần tập các ràng buộc trên các loại thuộc tính của đối tượng. Để rõ hơn, ta biểu diễn lại cấu trúc của đối tượng “tam giác” đã được đề cập ở ví dụ 2.1, theo cấu trúc mới thì đối tượng “tam giác” sẽ gồm 3 thành phần như sau:
Attrs= {A, B, C, a, b, c, S, p, R, ha, hb, hc…} là tập các thuộc tính của một tam giác,
F= {A+B+C=pi; a/sin(A)= b/sin(B); a/sin(A)= c/sin(C); a2= b2+ c2- 2*b*c*cos(A);… } là
35
Rules= {{a2=b2+c2}=>{A=pi/2, bc}; {b2=a2+c2}=>{B=pi/2, ac}; {a=b}<=>{A=B}; {c2=a2+c2}=>{C=pi/2, ab}; {a=c}<=>{A=C}; {b=c}<=>{B+C};… }.
(2)R là một tập hợp của các quan hệ trên các khái niệm.
(3)Ops là một tập hợp các toán tử.
(4)Funcs là một tập hợp chứa các hàm trên các khái niệm Com-Object.
Trong mô hình COKB thì thành phần tri thức hàm chưa được làm rõ mà chỉ đưa ra đặc tả cơ bản về hai dạng hàm là: hàm cơ sở và hàm tự định nghĩa, chẳng hạn như các hàm lấy vế trái của một đẳng thức: lhs(eq), lấy giá trị tuyệt đối của một số: abs(a)… là các hàm cơ sở, còn các hàm tìm trung điểm của một đoạn thẳng: TRUNGDIEM(A, B), hay tính khoảng cách từ một điểm đến một đường thẳng: KHOANGCACH(A, d) là các hàm tự định nghĩa. Trong mô hình Funcs-COKB ta sẽ đi sâu vào việc giải quyết các vấn đề trên thành phần tri thức hàm mà ta sẽ nói rõ ở các phần sau như: vấn đề hợp nhất các sự kiện dạng hàm, vấn đề tìm kiếm và suy diễn trên hàm, vấn đề tính toán kết quả của hàm…
(5)Rules là một tập hợp gồm các luật suy diễn.
3.1.2 Các loại sự kiện trong mô hình Funcs-COKB
(6)Kế thừa từ mô hình COKB, trong mô hình Funcs-COKB, ta có 11 loại sự kiện
như sau:
a. Sự kiện loại 1: Sự kiện thông tin về loại của đối tượng.
Cấu trúc của sự kiện: [<tên_đối_tượng>, <“loại_đối_tượng”>]; Ví dụ 3.1: [d, “DUONGTHANG”]; [M, “DIEM”];
b. 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 thuộc
tính của đối tượng. Cấu trúc của sự kiện:
<tên_đối_tượng>[đối_số]; hoặc
<tên_đối_tượng>[đối_số].<tên_thuộc_tính>; Ví dụ 3.2: DOAN[A,B]; TAMGIAC[A,B,C].S;
c. 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 của sự kiện:
36
<tên_đối_tượng>[đối_số] = <biểu_thức_hằng>; hoặc
<tên_đối_tượng>[đối_số].<tên_thuộc_tính> = <biểu_thức_hằng>;
Ví dụ 3.3: DOAN[A,B] = 10 cm; TAMGIAC[A,B,C].S = 15 cm2
d. 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. Cấu trúc của sự kiện:
<tên_đối_tượng>[đối_số] = <tên_đối_tượng>[đối_số]; hoặc
<tên_đối_tượng>[đối_số].<thuộc_tính> = <tên_đối_tượng>[đối_số].<thuộc_tính>; Ví dụ 3.4: DOAN[A,B] = DOAN[B,A];
TAMGIAC[A,B,C].S = TAMGIAC[M,N,P].S;
e. Sự kiện loại 5: Sự kiện về sự phụ thuộc giữa các loại đối tượng và các thuộc
tính của đối tượng thông qua một công thức tính toán hay một đẳng thức theo các đối tượng hoặc các thuộc tính.
Cấu trúc của sự kiện:
<tên_đối_tượng>[đối_số] = <biểu thức theo các đối tượng khác>; hoặc
<tên_đối_tượng>[đối_số].<thuộc_tính> = <biểu thức theo các thuộc tính khác>; Ví dụ 3.5: DOAN[A,B] = DOAN[A,M] + DOAN[M,B];
TAMGIAC[A,B,C].S = 2 * TAMGIAC[M,N,P].S;
f. Sự kiện loại 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 đối tượng. Cấu trúc của sự kiện:
[<“tên_quan_hệ”>,<tên_đối_tượng1>,<tên_đối_tượng2>]; hoặc
[<“tên_quan_hệ”>,<tên_đối_tượng1><tên_thuộc_tính>,<tên_đối_tượng2>.<tên_th uộc_tính];
Ví dụ 3.6: [“THUOC”,M,d];
[“SSONG”,TAMGIAC[A,B,C].a,TAMGIAC[M,N,P].b];
g. Sự kiện loại 7: Sự kiện về tính xác định của một hàm.
Cấu trúc của sự kiện: <tên_hàm>(<đối_số1>,<đối_số2>…); Ví dụ 3.7: KHOANGCACH(A,B); GIAODIEM(d1, d2);
h. Sự kiện loại 8: Sự kiện về tính xác định của một hàm thông qua một biểu thức
37
Cấu trúc sự kiện: <tên_hàm>(<đối_số1>,<đối_số2>…)=<biểu_thức_hằng>; Ví dụ 3.8: KHOANGCACH(A,B) = 5;
i. Sự kiện loại 9: Sự kiện về sự bằng nhau giữa một đối tượng với một hàm.
Cấu trúc sự kiện:
<tên_đối_tượng>=<tên_hàm>(<đối_số1>,<đối_số2>…);
Ví dụ 3.9: M = TRUNGDIEM(A,B); A = GIAODIEM(d1, d2);
j. Sự kiện loại 10: Sự kiện về sự bằng nhau giữa một hàm với một hàm khác.
Cấu trúc của sự kiện:
<tên_hàm>(<đối_số1>,<đối_số2>…) = <tên_hàm>(<đối_số1>,<đối_số2>…); Ví dụ 3.10: KHOANGCACH(A,B) = KHOANGCACH(A, d);
k. 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 của sự kiện:
<tên_hàm>(<đối_số1>,<đối_số2>…) = <biểu thức các hàm hay đối tượng>; Ví dụ 3.11:
KHOANGCACH(A,B) = KHOANGCACH(A,M) + KHOANGCACH(M,B); Ta nhận thấy rằng: Năm loại sự kiện cuối cùng từ sự kiện loại 7 đến sự kiện loại 11 là 5 loại sự kiện liên quan đến thành phần tri thức hàm. Đây là năm sự kiện mà ta sẽ làm rõ trong đề tài này.
3.2 TỔ CHỨC CƠ SỞ TRI THỨC VỀ CÁC COM-OBJECT THEO MÔ HÌNH FUNCS-COKB HÌNH FUNCS-COKB
3.2.1 Các thành phần trong cơ sở tri thức về các Com-Object.
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ừ khoá và quy ước về cú pháp, thể hiện các thành phần trong mô hình tri thức Funcs-COKB. Hệ thống này bao gồm các tập tin như sau:
(1) Tập tin CONCEPTS.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 Com-Object.
(2) Tập tin RELATIONS.txt: lưu trữ thông tin về các loại quan hệ khác nhau
38
(3) Tập tin OPERATORS.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 Com-Object.
(4) Tập tin DEFINE-OPERATORS.txt: Lưu trữ định nghĩa về các loại toán tử
hay định nghĩa của các thủ tục tính toán phục vụ toán tử.
(5) Tập tin RULES.txt: lưu trữ các hệ luật trên các loại đối tượng và các sự
kiện (bao gồm cả sự kiện liên quan đến hàm) trong cơ sở tri thức.
(6) Tập tin FUNCTIONS.txt: lưu trữ các khai báo hàm, thông tin về các hàm