Cụ thể trong miền tri thức về toán học , mạng tính toán xây dựng để có thể sử dụng một số vấ n đề về tính toán và được sử dụng để giải một số bài toán đơn giản theo cách suy luận của con
Trang 1Đại học Công Nghệ Thông Tin Đại học Quốc gia TP.HCM
Môn: BIỂU DIỄN TRI THỨC
VÀ SUY LUẬN
Đề tài: Ứng dụng mạng tính toán trong điều chế hoá chất vô cơ
GVHD: PGS.TS Đỗ Văn Nhơn Học viên: Hồ Duy Nhật Linh MSHV: CH1301028
TP.HCM 03.2014
Trang 2Mục lục
I Đặt vấn đề: 4
A Mục tiêu đề tài 4
B Bố cục báo cáo 4
II Lý thuyết - Mạng tính toán : 5
A Định nghĩa : 5
B Bài toán : 6
1 Yêu cầu bài toán : 6
2 Giải yêu cầu bài toán : 6
C Chứng minh tính giải được của bài toán : 7
1 Thuật toán tìm bao đóng A ⊆ M : 8
2 Tìm lời giải bài toán : 8
3 Thuật giải tìm lời giải tốt nhất từ lời giải ban đầu : 9
4 Thuật toán kiểm tra quan hệ có phải là lời giải của bài toán : 10
D Giải bài toán nếu bài toán không giải được : 10
E Đánh giá, đề xuất cải tiến, mở rộng bài toán : 10
1 Đánh giá : 10
2 Đề xuất : 11
III Ứng dụng minh họa : 12
A Mục tiêu: 12
B Mô hình bài toán 12
1 Xác định yêu cầu bài toán: 12
2 Giới hạn phạm vi vấn đề: 12
C Mô hình tri thức 12
D Biểu diễn tri thức: 13
1 Tri thức: 13
2 Tổ chức tri thức: 15
3 Tổ chức lưu trữ: 16
E Suy luận: 16
F Xây dựng chương trình: 17
1 Người dùng nhập liệu: 17
G Kết quả: 19
1 Ưu điểm: 19
Trang 32 Khuyết điểm: 19
IV Tổng kết : 20
Trang 4I Đặt vấn đề:
Ngày nay công nghệ thông tin (CNTT) trở thành một lĩnh vực mũi nhọn trong công cuộc phát triển kinh tế xã hội, CNTT vừa là công cụ, vừa là động lực thúc đẩy quá trình công nghiệp hóa, hiện đại hóa đất nước Việc ứng dụng CNTT vào thực tiễn đã có một bước phát triển rất mạnh mẽ CNTT được ứng dụng rộng rãi, đóng vai trò to lớn trong quá trình xử lý của nhiều lĩnh vực và nhiều ngành: y tế, giáo dục, tài chính
Cùng với sự phát triển của CNTT, logic học phát triển hết sức mạnh mẽ dẫn đến
sự hình thành một loạt các bộ môn logic học hiện đại, như logic học mệnh đề, logic học
vị từ, logic học đa trị, logic học tình thái, logic học xác suất, v.v Các bộ môn đó cung cấp cho nhân loại những công cụ sắc bén giúp tư duy con người ngày càng đi sâu hơn vào nhận thức các bí mật của thế giới khách quan
Việc biễu diễn tri thức đóng vai trò hết sức quan trọng trong việc khẳng định khả năng giải quyết vấn đề của logic học, đặc biệt logic học ứng dụng trong CNTT Để hiểu
rõ điều này, báo cáo sẽ tìm hiểu lý thuyết về công nghệ tri thức, phương pháp biểu diễn tri thức bằng mạng tính toán
A Mục tiêu đề tài
- Tìm hiểu công nghệ tri thức
- Tìm hiểu phương pháp biểu diễn tri thức bằng mạng tính toán
- Áp dụng lý thuyết mạng tính toán để xây dựng ứng dụng giúp điều chế chất hoá học hỗ trợ cho học sinh lớp 9
B Bố cục báo cáo
- Chương I: Tổng quan
- Chương II: Lý thuyết mạng tính toán
- Chương III: Ứng dụng minh hoạ
- Chương IV: Kết luận
Trang 5II Lý thuyết - Mạng tính toán :
A Định nghĩa :
Mạng tính toán được dùng để biểu diễn tri thức , tri thức này được cụ thể hóa ở một số lãnh vực tri thức nhất định của con người Cụ thể trong miền tri thức về toán học , mạng tính toán xây dựng để có thể sử dụng một số vấ n đề về tính toán và được sử dụng để giải một số bài toán đơn giản theo cách suy luận của con người Mạng tính toán được xây dựng trên nề n tảng của mạng ngữ nghĩa Theo tài liệu về mạng tính toán của TS.Đỗ Văn Nhơ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 ” Theo đó , mỗi biến có thể đại diện cho một khái niệm cụ thể về đố i tượng , sự vật , … ; bên cạnh đó , quan hệ đại diện cho những tri thức liên quan đến đối tượng sự vật được nêu
Ta gọi :
M={x1 ,x2 ,…,xn } là một tập hợp chứa các biến có giá trị trong miền D1,D2
,…,Dn
F ={f1 ,f2 ,…,fn } là tập hợp các quan hệ trên các biến
Vậy một mạng tính toán sẽ là (M,F)
Một quan hệ trong mạng tính toán là một ánh xạ từ tích các miền xác định của các tập biến nguồ n tới đích của các tập biến đích Điề u này có nghĩa là quan hệ là sự mô tả
sự liên hệ của các biến với nhau Đố i với mạng tính toán , quan hệ ở đây được xác định
là các phương trình ,hệ phương trình , đẳng thức , … Một mạng tính toán có các 2 dạng quan hệ đặc thù :
Quan hệ đố i xứng dạng k , với k biể u thị cho số biến tố i đa có thể tìm được từ m-k biến còn lại
Quan hệ không đối xứng nếu ta chỉ có thể tìm được k biến cố định từ m-k biến cho trước
Trang 6Với mỗi quan hệ f ∈ F , ta ký hiệu M(f) là tập các biến có liên hệ trong quan hệ
f Khi đó , M(f) là một tập con của M : M(f) ⊆ M Nếu viết f dưới dạng f:u(f) v(f) thì M(f) = u(f) ∪ v(f)
Quan hệ f giữa 3 góc A,B,C trong tam giác ABC cho bởi hệ thức : A+B+C=180
B Bài toán :
Cho một mạng tính toán (M,F) với M là tập các biến , F là tập các quan hệ Giả
sử có một tập biến A ⊆ M đã được xác định và B là một tập bất kì sao cho B ⊆ M
1 Kiểm tra bước quá trình giải để tìm ra tập B từ tập A trên tập quan hệ F có thể thực hiện hay không ?
2 Nếu quá trình trên có thể thực hiện được , thì sẽ thực hiện như thế nào và giá trị của B sẽ như thế nào ?
3 Nếu quá trình không thể thực hiện được thì sẽ cần điề u kiện như thế nào để thực hiện ?
Bài toán xác định B từ A trên mạng tính toán (M,F) được biể u diễn dưới dạng : A
B
Trong đó :
A là tập giả thuyết
B là tập mục tiêu của bài toán
Trang 7C Chứng minh tính giải được của bài toán :
Để thực hiện yêu cầu 1 theo giáo trình ”Mạng Tính Toán” của TS.Đỗ Văn Nhơn thì ta có định nghĩa :
“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 thuộc tập B từ giả thiết A Ta nói rằng các dãy quan hệ f1 , f2 , , fn là một lời giải của bài A B nếu như ta lần lượt áp dụng các quan hệ f (i=1, ,k) xuất phát từ giả thiết A thì
sẽ tính được các biến thuộc B Lời giải f1 , f2 , , fi được 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à k không thể bỏ bớt một số quan hệ trong quá trình 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ể suy ra được B
từ A Điều này cũng có nghĩa là tìm ra được quá trình tính toán để giải bài toán ”
Điều này có nghĩa , để chứng minh bài toán có thể thực hiện quá trình giải tìm ra tập mục tiêu B từ tập A dựa trên tập quan hệ F nếu ta có thể tính toán được các giá trị các biến thuộc B từ A Đồng thời, để thực hiện việc tính toán theo yêu cầ u thứ 2 thì ta lần lượt áp dụng lan truyền các quan hệ f (i=1,…,k) để giải bài toán
Một bài toán được gọi là có thể giải được nếu ta có thể tìm ra giá trị của tập biến B
từ tập biến A thông quan tập quan hệ F Một lời giải được gọi là lời giải tốt nếu không thể
bỏ bớt bất kì bước tính toán nào tuy nhiên vẫ n giải được Một lời giải được gọi là tố i
ưu nhất có nghĩa là có số lời giải ít nhất đồng nghĩa với số lượng quan hệ sử dụng là ít nhất
Tính bao đóng: bao đóng của một tập hợp biến A là một tập hợp A có số phần tử lớn nhất được sinh ra từ A thông qua các quan hệ Một khi đã tìm được bao đóng của
A , để xét tính giải được của bài toán , ta chỉ cần kiểm tra tập biến B có phải là tập con của bao đóng A thì bài toán giải được Ngược lại, nếu tập biến mục tiêu B có phần tử không thuộc tập bao đóng A thì bài toán không giải được
Nhập : Mạng tính toán (M,F)
Trang 8Xuất: A ⊆ M
Thuật toán:
1 B ← A;
2 Repeat
B1 ← B;
for f ∈ F do
if ( f đối xứng and Card (M(f) \ B) ≤ r(f) ) or
( f không đối xứng and M(f) \ B⊆v(f) ) then
begin
B ← B ∪ M(f);
F ←F \ {f}; // loại f khỏi lần xem xét sau
end;
Until B = B1;
3 ´A ← B
2 Tìm lời giải bài toán :
Để tìm lời giải cho bài toán ta xuất phát từ tập giả thiết A thực hiện lan truyề n qua các quan hệ trong tập F để mở rộng dần tập các biến có giá trị được xác định Quá trình này sẽ được thực hiện đến khi tập mục tiêu B được xác định
Thuật toán tìm lời giải bài toán:
1 Solution ← empty;
2 if B ⊆ A then
begin
Solution_found ← true;
goto 4;
end
else
Solution_found ← false;
3 Repeat
Aold ← A;
Chọ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 ( f không đối xứng and ∅ ≠ M(f) \ A ≤ v(f) ) then
begin
A ← A ∪ M(f);
Solution ← Solution ∪ {f};
Trang 9if B ⊆ A then
Solution_found ← true;
Chọn ra một f ∈F chưa xem xét;
end;
Until Solution_found or (A = A old );
4 if not Solution_found then
Bài toán không có lời giải
Else
Solution là một lời giải;
Đối với thuật toán này có nhược điểm là đã vét hết các quan hệ nên có thể không phải là lời giải tốt nhất Đặc biệt đối với các quan hệ hạng 1 thì lời giải sẽ không luôn luôn là lời giải tốt nhất Để cải thiện điều này ta cần xây dựng một thuật giải có thể tìm ra lời giải tốt nhất từ lời giải ban đầu
3 Thuật giải tìm lời giải tốt nhất từ lời giải ban đầu :
Nhập :
Mạng tính (M,F),
Lời giải {f1 , f2 , , f3} của bài toán A → B
Xuất : Lời giải của 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 \ {f i }
3 D là một lời giải của bài toán
4 Thuật toán kiểm tra quan hệ có phải là lời giải của bài toán :
Nhập: Mạng tính toán (M,F), bài toán A B, dãy các quan hệ {f1 , f2 , , fm}
Xuất : thông tin cho biết {f1 , f2 , , fm} có phải lời giải của bài toán A B hay không
Thuật toán:
1 for i=1 to m do
if ( f đối xứng and Card (M(f ) \ A) ≤ r(f ) ) or
( f không đối xứng and M(f ) \ A ⊆ v(f ) ) then
A A ∪ M(f );
2 if A B then B then
{f , f , , f là lời giải
Trang 10{f 1 , f 2 , , f m} không là lời giải
D Giải bài toán nếu bài toán không giải được :
Để có thể giải bài toán trong trường hợp này ta có thể dùng phương pháp sau : Tìm trong A’ ⊆ M\( ´A ∪B B) tố i tiểu sao cho bao đóng của tập A ∪ A’ chứa B
E Đánh giá, đề xuất cải tiến, mở rộng bài toán :
Mô tả được các biến và các quan hệ dựa trên các biến này
Có thể sử dụng luật suy diễn tiến để lan truyền phương pháp tính toán tìm ra lời giải của bài toán
Xử lý tốt trên các hệ cơ sở tri thức có quan hệ dạng phương trình
Thuật toán có thể tìm ra tính giải được của bài toán trước khi thực hiện quá trình tìm lời giải cho bài toán từ đó có thể giảm thiể u chi phí hoạt động của thuật giải
Bên cạnh việc đưa ra kết quả của bài toán , thuật giải của mạng tính toán còn đưa
ra lời giải cho bài toán và các phương pháp để thêm giả thiết trong trường hợp bài toán không giải được
b) Khuyết điểm :
Mạng tính toán có các tập biến được xây dựng trên các biến đơn Điề u này làm cho mạng tính toán kém hiệu quả ở những tri thức có cấu trúc
Các quan hệ được xây dựng trên quan hệ dạng phương trình Tuy nhiên , mạng tính toán được xử lý bằng hệ luật dẫn để giải bài toán Vì thế , ta cần phải chuyển
từ quan hệ dạng phương trình sang hệ luật dẫn sau đó sử dụng suy diễn tiến để giải bài toán
Kỹ thuật xử lý làm chậm quá trình suy luận trên những hệ tri thức lớn
Bỏ qua khả năng kết hợp các phương trình để giải các hệ phương trình
Mô hình chưa thể hiện được các loại quan hệ như bất phương trình , đồ thị , …
Trang 112 Đề xuất :
Cải tiến thuật giải duyêt các quan hệ nhanh hơn , lược bỏ các quan hệ đã được sử dụng để tính toán trước đó Tuy nhiên , phương pháp này có thể bỏ qua sự kết hợp của nhìu quan hệ với nhau
Cần xem các biến là các đố i tượng có cấu trúc để có thể sử dụng trên các miền tri thức khác
Để phát triển mô hình có thể giải được các bài toán có các quan hệ hệ
phương trình ta cần cải tiến thêm thuật giải hiện có
Ý tưởng cải tiến thuật giải :
o Xây dựng một List (danh sách) lưu các quan hệ cần duyệt
o Tại mỗi lần sử dụng giải bài toán , nếu không thể xác định được bất kì giá trị của tập biến mới nào ta sẽ thêm vào danh sách các quan hệ Ngược lại , nếu có thể xác định được một biến mới thì ta sẽ xóa danh sách và tiếp tục bước tiếp theo trong quá trình giải bài toán Bước thêm quan hệ sẽ kết thúc đến khi các quan hệ đã thêm hết vào trong danh sách này
o Ta sẽ duyệt danh sách quan hệ này để sử dụng đồng thời sự liên hệ của chúng để giải hệ phương trình
III Ứng dụng minh họa :
A Mục tiêu:
o Xây dựng chương trình máy tính để đáp ứng các điều chế các chất hoá học
vô cơ từ các thành phần hoá học cho trước
o Đưa ra phương pháp điều chế (nếu có)
B Mô hình bài toán
Cho M = {Fe,CaO, …} là tập hợp các chất hoá học vô cơ
A ∈M là tập hợp các chất hoá học đang có
B ∈ M là chất hoá học cần điều chế
Xác định phương pháp F = {f1,f2,…,fm} để điều chế chất B từ tập hợp các chất hoá học A
Trang 122 Giới hạn phạm vi vấn đề:
Vì lí do thời gian nên bài báo cáo chỉ tạm dừng ở mức hoá học căn bản vô cơ lớp 9
Quá trình điều chế hạn chế ở mức phương trình điều chế, chưa đề cập đến cân bằng, điều kiện phản ứng xảy ra ,…
C Mô hình tri thức
Các mô hình tri thức hiện có bao gồm:
o Logic vị từ
o Mạng tính toán
o COKB
o Ontology
o Frame
o Luật dẫn
o …
Trong đó, ta thấy mô hình mạng tính toán phù hợp vì tính đơn giản, phù hợp với
đề bài đặt ra Ta có thể sử dụng mạng tính toán để kích hoạt các đỉnh (chất) khác thông qua các cung (phương trình) từ các đỉnh đã được kích hoạt
Trang 13D Biểu diễn tri thức:
1 Tri thức:
Tri thức bao gồm tập hợp các nguyên tố theo bảng tuần hoàn các nguyên tố hoá học
Luật điều chế chất hoá học:
[11] H2 + Cl2 = HCl
Trang 14[13] AgNO3 + KCl = KNO3 + AgCl
2 Tổ chức tri thức:
Tri thức được tổ chức thành 2 loại tập hợp:
M = {Fe,Cl2,H2,HCl, … }: Là tập hợp các chất hoá học
F = {f1,f2,…,fn): Là tập hợp các phương trình điều chế Trong đó, với mỗi fi ∈F:
o Vế phải: Là Ai ∈ M là tập hợp các chất hoá học
o Vế trái: Là Bi ∈M là tập hợp các chất hoá học
Khi đó, ta có:
Giả thiết: Bao gồm các tập hợp
M: Người lập trình nhập liệu
F: Người lập trình nhập liệu
A: Người dùng nhập liệu
B: Người dùng nhâp liệu Yêu cầu: tìm phương pháp giải f sao cho A B
Dữ liệu được tổ chức thành các Class để có thể truy xuất dễ dàng
Việc tổ chức dữ liệu được mô hình như sau:
Equation
B - right
A - left
M M
M M
Trang 15{
publicList<Chemical> left = newList<Chemical>();
publicList<Chemical> right = new List<Chemical>();
}
classChemical
{
publicstring Name { get; set; }
}
3 Tổ chức lưu trữ:
Tập luật điều chế được lưu trữ thành file (phuongtrinh.txt) với format mỗi dòng luật như sau:
A = B
Trong đó:
- A là tập hợp các chất sinh được ngăn cách nhau bởi “ + “
- B là tập hợp các chất tạo thành được ngăn cách nhau bởi “ + “
E Suy luận:
Quá trình suy luận được sử dụng bằng thuật toán suy diễn tiến
Ta sử dụng 1 phương pháp trong 3 phương pháp đã được đề cập ở phần lí thuyết
để có thể đi tìm lời giải của bài toán Đó là phương pháp 1:
1 Solution ← empty;
2 if B ⊆ A then
begin
Solution_found ← true;
goto 4;
end
else
Solution_found ← false;
3 Repeat
Aold ← A;
Chọ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 ( f không đối xứng