Những liên hệ cho phép ta có thể suy ra được một số yếu tố từ giả thiết để biết một số yếu tố khác để giải các bài toán trong các lĩnh vực của khoa học như toán học, vật lý và hóa học...
Trang 1LỜI MỞ ĐẦU
Lời đầu tiên xin chân thành cảm ơn thầy PGS.TS Đỗ Văn Nhơn đã giảng dạy tận tình và cung cấp cho em nhiều kiến thức chuyên sâu về môn học Từ vốn hiểu biết rộng rãi của mình thầy đã định hướng, diễn giảng và giới thiệu nhiều vấn đề liên quan đến biểu diễn tri thức, qua đó góp phần hoàn thiện thêm kiến thức cũng như hình thành cho người học những hiểu biết sâu thêm về tri thức và các phương pháp biểu diễn tri thức trên máy tính
Mặc dù rất cố gắng, song bài viết chắc không tránh khỏi những hạn chế, thiếu sót rất mong được thầy thông cảm
Trang 2MỤC LỤC HÌNH ẢNH
Hình 1: Quan hệ 3 góc trong tam giác ABC 6
Hình 2: Minh họa bài toán điều chế hợp chất hóa học 21
Hình 3: Thể hiện tam giác ABC với các yếu tố cần xét 22
Hình 4: Minh họa bài toán tam giác 27
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 1
MỤC LỤC HÌNH ẢNH 2
MỤC LỤC 3
1.Mạng tính toán 4
1.1Khái niệm 4
1.2Các quan hệ 4
1.3Mạng tính toán và các ký hiệu 5
B Áp dụng 13
1.Bài toán hóa học 13
1.4 Thiết kế bộ suy diễn và cài đặt 16
2.Bài toán hình học – bài toán tam giác 18
TÀI LIỆU THAM KHẢO 25
A.Cơ sở lý thuyết
Một trong những vấn đề đang được quan tâm của Trí tuệ nhân tạo là nghiên cứu các phương pháp biểu diễn và xử lý tri thức Trên cơ sở đó có thể tạo ra những chương trình “thông minh” ở một mức độ nào đó Trong nhiều lĩnh vực chúng ta thường gặp những vấn đề đặt ra dưới dạng như sau: Thực hiện những tính toán hay suy diễn ra những yếu tố cần thiết nào đó từ một số yếu tố đã được biết trước Để giải quyết vấn đề đó, người ta phải vận dụng một số hiểu biết (tri thức) liên quan tới các yếu tố đang được xem xét Những liên hệ cho phép ta có thể suy ra được một số yếu
tố từ giả thiết để biết một số yếu tố khác để giải các bài toán trong các lĩnh vực của khoa học như toán học, vật lý và hóa học
Trang 4Để giải quyết vấn đề trên ta xét đến một mô hình biểu diễn và xử lý tri thức có thể
áp dụng giải tự động các bài toán trên và ta gọi mô hình này là “Mạng tính toán”
1 Mạng tính toán
1.1 Khái niệm
Mạng tính toán là một dạng biểu diễn tri thức có thể dùng biểu diễn các tri thức về các vấn đề tính toán và được áp dụng một cách có hiệu quả để giải một số dạng bài toán Mỗi mạng tính toán là một mạng ngữ nghĩa chứa các biến và những quan hệ có thể cài đặt và sử dụng được cho việc tính toán Chúng ta xét một mạng tính toán gồm một tập hợp các biến cùng với một tập các quan hệ (chẳng hạn các công thức) tính toán giữa các biến Trong ứng dụng cụ thể mỗi biến và giá trị của nó thường gắn liền với một khái niệm cụ thể về sự vật, mỗi quan hệ thể hiện một sự tri thức về sự vật
1.2 Các quan hệ
ký hiệu là R(x1,x2, ,xm) hay vắn tắt là R(x) (ký hiệu x dùng để chỉ bộ biến
xạ fR ,,u v với u v = x, và ta viết : fR ,,u v: u → v, hay vắn tắt là f : u → v
Đối với các quan hệ dùng cho việc tính toán, cách ký hiệu trên bao hàm ý nghĩa như là một hàm: ta có thể tính được giá trị của các biến thuộc v khi biết được giá trị của các biến thuộc u
Trang 5Trong phần sau ta xét các quan hệ xác định bởi các hàm có dạng f : u → v, trong
nguyên dương k Đó là các quan hệ mà ta có thể tính được k biến bất kỳ từ m-k biến
ta viết u(f) thay cho u, v(f) thay cho v Đối với các quan hệ không phải là đối xứng có hạng k, không làm mất tính tổng quát, ta có thể giả sử quan hệ xác định duy nhất một hàm f với tập biến vào là u(f) và tập biến ra là v(f); ta gọi loại quan hệ nầy là quan hệ
không đối xứng xác định một hàm, hay gọi vắn tắt là quan hệ không đối xứng
Ví dụ: Quan hệ f giữa 3 góc A, B, C trong tam giác ABC cho bởi hệ thức:
Trang 6f: u(f) → v(f)thì ta có: M(f) = u(f) v(f).
1.4 Ưu điểm & khuyết điểm của mạng tính toán
những bài toán phức tạp thì có thể xảy ra việc 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à một việc tương đối khó khăn nên đòi hỏi phải bảo trì lại toàn bộ hệ thống
nên phức tạp, việc giải quyết bài toán bằng mạng tính toán trở nên khó khăn
cho người lập trình
2 Bài toán trên mạng tính toán
Cho một mạng tính toán (M,F), M là tập các biến và F là tập các quan hệ Giả sử
Các vấn đề xảy ra là:
Nói cách khác, ta có thể tính được giá trị của các biến thuộc B với giả thiết
đã biết giá trị của các biến thuộc A hay không ?
thuộc B như thế nào ?
Trang 7• Trong trường hợp không thể xác định được B, thì cần cho thêm điều kiện gì
để có thể xác định được B
Bài toán xác định B từ A trên mạng tính toán (M,F) được viết dưới dạng:
A→Btrong đó A được gọi là giả thiết, B được gọi là mục tiêu tính toán của bài toán
Định nghĩa 2.1:
Bài toán A→B được gọi là giải được khi có thể tính toán được giá trị các biến
gọi là lời giải tốt nếu không thể bỏ bớt một số bước tính toán trong quá trình giải, tức
là không thể bỏ bớt một số quan hệ trong lời giải
Việc tìm lời giải cho bài toán là việc tìm ra một dãy quan hệ để có thể áp dụng suy
ra được B từ A Điều này cũng có nghĩa là tìm ra được một quá trình tính toán để giải bài toán
Định nghĩa 2.2:
con của M Ta nói dãy quan hệ D là áp dụng được trên tập A khi và chỉ khi ta có thể
Trang 8trường hợp D là một dãy quan hệ bất kỳ (không nhất thiết là áp dụng được trên A), ta vẫn ký hiệu D(A) là tập biến đạt được khi lần lượt áp dụng các quan hệ trong dãy D (nếu được) Chúng ta có thể nói rẳng D(A) là sự mở rộng của tập A nhờ áp dụng dãy quan hệ D.
3 Giải quyết bài toán
3.1 Tính giải được của bài toán:
Ta khảo sát một khái niệm của vấn đề trên mạng tính toán: bao đóng của một tập hợp biến trên một mạng tính toán
Định nghĩa 3.1: Cho mạng tính toán (M,F), và A là một tập con của M Ta có thể
và tập hợp B này được gọi là bao đóng của A trên mô hình (M,F) Một cách trực
quan, có thể nói bao đóng của A là sự mở rộng tối đa của A trên mô hình (M,F) Ký
Từ định lý này, ta có thể kiểm tra tính giải được của bài toán A→B bằng cách tính
Định lý 3.2 Cho một mạng tính toán (M,F), A, B là hai tập con của M Ta có các
điều sau đây là tương đương:
a D áp dược trên A
Trang 9Qua các định lý trên, ta thấy rằng việc xác định bao đóng của một tập biến trên mô hình tính toán là cần thiết Dưới đây là thuật toán cho phép xác định bao đóng của tập
những biến thuộc M có thể tính được từ A; cuối cùng sẽ được bao đóng của A
3.2 Lời giải của bài toán
Do mệnh đề trên, để tìm một lời giải ta có thể làm như sau : Xuất phát từ giả thiết
A, ta thử áp dụng các quan hệ để mở rộng dần tập các biến có giá trị được xác định;
và quá trình này tạo ra một sự lan truyền tính xác định trên tập các biến cho đến khi
mạng tính toán (M,F)
Trang 10Nhập: Mạng tính toán (M,F), tập giả thiết A ⊆ M, tập biến cần tính B ⊆ M.
Xuất: Lời giải cho bài toán A→ B
if (f đối xứng and 0< Card( M(f) \ A) ≤ r(f) ) or
Until Solution_found or (A = Aold );
4 if not Solution_found then
Bài toán không có lời giải;
else
Bài toán có lời giải;
Trang 11Định lý 3.3 Cho D = {f1,f2, ,fm} là một lời giải của bài toán A→ B Ứng với mỗi
m-1, , S2, S1 của dãy D như sau:
Si = {fi}∪ Si+1 nếu Di-1∪ Si+1 không là một lời giải,
với mọi i = m-1, m-2, , 2, 1
Khi đó ta có :
1 Sm ⊆ Sm-1⊆ ⊆ S2⊆ S1.
bài toán A→ B với mọi i
Thuật toán 3.3 Tìm một lời giải tốt từ một lời giải đã biết.
Xuất: Lời giải tốt cho bài toán A→ B
Thuật toán:
1 D ← { f1,f2, ,fm};
2 for i=m downto 1 do
if D\ { fi } là một lời giải then
D ← D \ {fi};
3 D là một lời giải tốt
Trang 12Trong thuật toán 3.3 có sử dụng việc kiểm tra một dãy quan hệ có phải là lời giải hay không Việc kiểm tra này có thể được thực hiện nhờ thuật toán sau đây:
Thuật toán kiểm tra lời giải cho bài toán:
không
Thuật toán:
1 for i = 1 to m do
if (fi đối xứng and 0< Card( M(fi) \ A) ≤ r(fi) ) or
(fi không đối xứng and ∅ ≠M(fi) \ A ⊆ v(fi) ) then
A ← A ∪ M(fi);
2. if A ⊇B then { f1,f2, ,fm} là lời giải
else { f1,f2, ,fm} không là lời giải
3.3 Định lý về sự phân tích quá trình giải:
Xét bài toán A→ B trên mạng tính toán (M,F), ta nêu lên một cách xây dựng quá trình giải từ một lời giải đã biết Đối với một lời giải, rất có khả năng một quan hệ nào
đó dẫn tới việc tính toán một số biến thừa, tức là các biến tính ra mà không có sử dụng cho các bước tính phía sau Do đó, chúng ta cần xem xét quá trình áp dụng các quan hệ trong lời giải và chỉ tính toán các biến thật sự cần thiết cho quá trình giải theo lời giải Định lý sau đây cho ta một sự phân tích tập các biến được xác định theo lời giải và trên cơ sỡ đó có thể xây dựng quá trình tính toán các biến để giải quyết bài toán
Định lý 3.4 Cho { f1,f2, ,fm} là một lời giải tốt cho bài toán A→ B trên một mạng tính toán (M,F) Đặt:
A0 = A, Ai = {f1, f2, , fi}(A), với mọi i = 1,…,m
Khi đó có một dãy {B0, B1, , Bm-1, Bm}, thỏa các điều kiện sau đây:
Trang 131 Bm = B.
Phản ứng trên có thể được xem như một quan hệ cho chúng ta có được các chất
Ta sẽ dùng mạng tính toán để áp dụng giải các loại bài toán sau :
1 Nhận diện loại phương trình phản ứng ?
2 Cho một số chất, hỏi có điều chế được một vài chất nào đó không ?
3 Tìm các phương trình phản ứng để biểu diễn dãy các biến hóa, chẳng hạn như các dãy :
Trang 141.3 Mô hình và thuật giải
1.3.1 Mô hình tri thức cho bài toán hóa học
Nhìn vào yêu cầu của bài toán ta thấy rằng đây một dạng của thuật giải mạng tính
Các file chứa tri thức cho bài toán hóa học, tập giả thiết chemical.txt chứa thông tin các nguyên tố hóa học, file tri thức equation.txt chứa các phương trình phản ứng
giữa các chất (quan hệ của các thuộc tính của các nguyên tố có cấu trúc) và tập biến
compound.txt là tập các chất cần tìm, tập biến có thể là tập con của tập giả thiết là
các nguyên tố hay hợp chất của nó Dưới đây là trích dẫn ví dụ mô tả cấu trúc của các file tri thức:
File chemical.txt: <tên nguyên tố>
Trang 15AlCl3
BaSO3
BaSO4
File equation.txt: <phương trình phản ứng>
Fe + H2O + SO3 = FeSO4 + H2
2NaCl + 2H2O = 2NaOH + H2 + Cl2
Trang 16Chọn ra một f ∈ F chưa xem xét;
while not Solution_found and (chọn được f) do begin
if (f đối xứng and 0< Card( M(f) \ A) ≤ r(f) ) or
Until Solution_found or (A = Aold );
6 if not Solution_found then
Không đủ nguyên liệu để tạo; In kết quả;
else
Solution là một lời giải;
7 Loại bỏ các bước giải không cần thiết
D ← { f1,f2, ,fm};
for i=m downto 1 do
if D\ { fi } là một lời giải then
D ← D \ {fi};
D là một lời giải tốt
8 In từng bước giải của bài toán (Phương trình hóa học)
1.4 Thiết kế bộ suy diễn và cài đặt
Về mặt tri thức người ta đã biết được nhiều chất và các phản ứng hóa học có thể chuyển hóa từ một số chất này thành các chất khác Ta có thể xem tri thức đó như một mạng tính toán mà mỗi phản ứng là một quan hệ của mạng
(M, F)
Trong đó M là tập giả thiết và kết luận, F là tập các quan hệ của các chất
Trang 17Bài toán 1 : Viết phương trình phản ứng (PTPƯ) biểu diễn các biến hóa sau:
Mô hình bài toán:
F = { tập các phương trình phản ứng hóa học } Lời giải:
Mô hình bài toán:
F = { tập các phương trình phản ứng hóa học }Lời giải:
Solution = {
Điện phân
[H2O →H2↑ + O2↑ ],[S + O2 → SO2 ],
[SO2 + O2 → SO3 ],[SO3 + H2O → H2SO4 ]
}
Trang 18Chương trình viết bằng ngôn ngữ lập trình C# trên nền tảng Visual Studio 2010 với đối số là các file tri thức và giả thiết, dựa trên tri thức về phương trình phản ứng hóa học để tìm ra chất từ các nguyên tố.
Hình 2: Minh họa bài toán điều chế hợp chất hóa học
2 Bài toán hình học – bài toán tam giác
2.1 Đặt vấn đề
Trong bài này ta sẽ khảo sát bài toán hình học tam giác Mục đích :
- Trình bày phương pháp lưu trữ và giải thuật dựa trên mô hình mạng tính toán
- Xác định giá trị 1 yếu tố của tam giác với những giả thiết đã cho trước
Chúng ta xét một tam giác bao gồm 11 yếu tố:
- a, b, c : 3 cạnh của tam giác
- A, B, C : 3 góc của tam giác
- S : diện tích tam giác
- p : nửa chu vi của tam giác
Trang 19Hình 3: Thể hiện tam giác ABC với các yếu tố cần xétCác hệ thức cơ bản giữa các yếu tố của tam giác:
sin
Trang 21Kết luận: Vậy chu vi 2*p = 12.
Ví dụ 2: Trong tam giác ABC giả sử đã biết góc A, cạnh b, góc C, nửa chu vi p
2.3 Mô hình và thuật giải
Trang 222.3.1 Mô hình tri thức cho bài toán tam giác
Bài toán cần giải gồm giả thiết là một số thông số (đối tượng, sự kiện) của tam giác cho trước Mục tiêu là xác định một thông số (đối tượng) của tam giác Tri thức trong bài toán này được đưa về mô hình mạng tính toán (M,F) với:
M: danh sách các thuộc tính của tam giác lưu trong file triangle.txt.
F: danh sách các quan hệ giữa các thuộc tính trong M lưu trong file
triangleRelations.txt.
Cấu trúc file triangle.txt : <tên đối tượng> : <mô tả của đối tượng>
Ví dụ:
A : so do goc doi dien canh a
B : so do goc doi dien canh b
C : so do goc doi dien canh c
…(Xem thêm ở thuật giải trong mục 1.3.2 phần Áp dụng)
Bước 7 : Loại bỏ các bước giải không cần thiết
D ← { f1,f2, ,fm};
for i=m downto 1 do
if D\ { fi } là một lời giải then
D ← D \ {fi};
Trang 23D là một lời giải tốt.
Bước 8: Tính giá trị của tập B
Bước 9: In từng bước giải của bài toán và giá trị tìm được
2.4 Cài đặt
Chương trình viết bằng ngôn ngữ lập trình C# trên nền tảng Visual Studio 2010 với đối số là các file tri thức và giả thiết, dựa trên tri thức về công thức hình học của tam giác
Hình 4: Minh họa bài toán tam giác
Trang 24C Kết luận
Những tiến bộ nhanh chóng và dồn dập của công nghệ thông tin và truyền thông
đã thúc đẩy mạnh mẽ quá trình đưa hoạt động tri thức về gần với cuộc sống hàng ngày Nếu trước đây, việc tìm kiếm tri thức là đặc quyền của các nhà khoa học, và tri thức phải là những điều cao xa hướng tới các qui luật tất yếu và phổ biến, thì giờ đây con người cần tri thức phục vụ cho những công việc cụ thể trong mọi lĩnh vực và gần gũi với đời sống như y tế, giáo dục, thương mại…
Bài thu hoạch đã trình bày lại những kiến thức nắm được về biểu diễn tri thức dựa trên mạng tính toán và xây dựng chương trình minh họa áp dụng mạng tính toán để giái quyết các bài toán trên cơ sở tri thức hóa học và hình học cơ bản
Tuy nhiên, bài thu hoạch không thể tránh khỏi những thiếu sót về kiến thức cũng như về kỹ năng lập trình, rất mong thầy có những ý kiến góp ý
Trang 25TÀI LIỆU THAM KHẢO
1 PSG.TS Đỗ Văn Nhơn Bài giảng Biểu diễn tri thức và ứng dụng, 2013
2 GS.TSKH Hoàng Kiếm & PSG.TS Đỗ Văn Nhơn, Mạng tính toán và ứng dụng, Tạp chí Tin học và điều khiển học, T.13, S.3(1997)