Giữa các yếu tố của tam giác có các quan hệ cho phép ta có thể tính ra được các yếu tốcần thiết trong tam giác từ giả thiết rằng đã biết một số yếu tố nào đó của tam giác.. Tìm các phươn
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
TIẾU LUẬN MÔN HỌC BIỂU DIỄN TRI THỨC VÀ SUY LUẬN:
SỬ DỤNG MẠNG TÍNH TOÁN ĐỂ GIẢI
TAM GIÁC VÀ HÓA HỌC
Giảng viên hướng dẫn: PGS TS ĐỖ VĂN NHƠNHọc viên thực hiện: LÊ DUY ĐẮC NHÂN
Trang 2TP Hồ Chí Minh, 03/2014
LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn sâu sắc đến PGS TS Đỗ Văn Nhơn, trưởng khoa Khoa Học Máy Tính, trường Đại học Công Nghệ Thông Tin, ĐHQG TP.HCM đã tận tình hướng dẫn, cung cấp kiến thức, truyền đạt những kinh nghiệm quí báu giúp em hoàn thành tốt bài tiểu luận này.
Xin cám ơn cha, mẹ, các anh, chị em trong gia đình đã hỗ trợ, lo lắng và động viên Đồng thời, xin cám ơn tất cả các bạn đã ủng hộ, giúp đỡ chúng tôi trong quá trình thực hiện bài tiểu luận này.
Dù đã có nhiều cố gắng nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, em rất mong nhận được sự đóng góp ý kiến của các Thầy giáo, Cô giáo và các bạn để đề tài này được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Tp Hồ Chí Minh, tháng 03 năm 2014
Học viên
Trang 3Mục Lục
A Yêu Cầu: 1
B Nội Dung: 2
I Lý Thuyết: 2
1 Mạng Tính Toán: 2
2 Bài toán giải tam giác: 6
3 Bài toán hóa học: 9
4 Thuật giải của bài toán giải tam giác và hóa học: 9
4.1 Thuật giải tìm lời giải cho bài toán A B: 9
4.2 Thuật giải bổ sung giả thiết cho bài toán: 11
5 Một số bài toán cụ thể: 11
5.1 Giải tam giác: 11
5.2 Giải hóa học: 14
II Thiết kế và cài đặt: 15
1 Mô hình tri thức cho bài toán giải tam giác: 15
1.1 Mô hình mạng tính toán: 15
1.2 Lưu trữ tri thức tam giác trên máy tính: 15
2 Mô hình tri thức cho bài toán hóa học: 15
3 Cài đặt và kết quả thử nghiệm: 16
3.1 Giải tam giác: 16
3.2 Giải hóa học: 20
C Tài Liệu Tham Khảo: 24
Trang 5A Yêu Cầu:
Cho người sử dụng nhập vào một bài toán tam giác hoặc hóa học theo quy cách đã đượcqui định Máy sẽ đưa ra lời giải cho bài toán trên (nếu bài toán có lời giải) Trong trườnghợp bài toán không giải được thì chương trình sẽ thông báo để ta cho thêm dữ kiện hoặcđiều chỉnh lại bài toán
Chúng ta xét một tam giác bao gồm 22 yếu tố:
a, b, c : 3 cạnh của tam giác (Hình 1)
, , : 3 góc đối diện với 3 cạnh tương ứng trong tam giác (Hình 1)
ha, hb, hc : 3 đường cao tương ứng với 3 cạnh của tam giác (Hình 2a)
ma, mb, mc : 3 đường trung tuyến tương ứng với 3 cạnh của tam giác (Hình 2b)
pa, pb, pc : 3 đường phân giác trong tương ứng với 3 cạnh của tam giác
S : diện tích tam giác
p : nửa chu vi của tam giác
R : bán kính đường tròn ngoại tiếp tam giác
r : bán kính đường tròn nội tiếp tam giác
ra, rb, rc : các bán kính của các đường tròn bàng tiếp tam giác
Hình 1
Hình 2
Trang 6Giữa các yếu tố của tam giác có các quan hệ cho phép ta có thể tính ra được các yếu tốcần thiết trong tam giác từ giả thiết rằng đã biết một số yếu tố nào đó của tam giác Nhờ vào
lý thuyết về mạng tính toán ta có thể cài đặt một chương trình để giải tam giác
Chúng ta biết rằng trong hóa học, việc xem xét các phản ứng hóa học là một trong nhữngvấn đề quan trọng Về mặt tri thức người ta đã biết được nhiều chất và các phản ứng hóahọc có thể chuyển hóa từ một số chất nầy thành các chất khác Tạm thời bỏ qua một số điềukiện phản ứng, ta có thể xem tri thức đó như một mạng tính toán mà mỗi phản ứng là mộtquan hệ của mạng Ví dụ như phản ứng điều chế Clo từ axít Clohidric và đioxit mangan :
MnO2 + HCl MnCl2 + Cl2 + H2O
Phản ứng trên có thể được xem như một quan hệ cho chúng ta có được các chất Cl2,MnCl2, H2O từ các chất MnO2, HCl
Trong báo cáo chúng ta dùng mạng tính toán để giải 2 bài toán sau trong hóa học:
1 Cho một số chất, hỏi có điều chế được một vài chất nào đó không?
2 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:
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 ứngdụ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.1 Các quan hệ:
Cho M = x1,x2, ,xm là một tập hợp các biến có thể lấy giá trị trong các miền xác địnhtương ứng D1,D2, ,Dm Đối với mỗi quan hệ R D1xD2x xDm trên các tập hợpD1,D2, ,Dm ta nói rằng quan hệ nầy liên kết các biến x1,x2, ,xm, và 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 < x1,x2, ,xm >) Ta có thể thấy rằng quan
hệ R(x) có thể được biểu diễn bởi một ánh 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
Trang 7Đố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ếnthuộc u.
Trong 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 đó u
v = (tập rỗng) Đặc biệt là các quan hệ đối xứng có hạng (rank) bằng một số 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 kia (ở đây x là
bộ gồm m biến < x1,x2, ,xm >) Ngoài ra, trong trường hợp cần nói rõ 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ínhtổ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:
1.3 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ó mộttập biến A M đã được xác định và B là một tập biến bất kỳ trong M
Các vấn đề đặt ra là:
Trang 8 Có thể xác định được tập B từ tập A nhờ các quan hệ trong F hay không? Nói cáchkhá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ếnthuộc A hay không?
Nếu có thể xác định được B từ A thì quá trình tính toán giá trị của các biến thuộc Bnhư thế nào?
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 B,
trong đó 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
thuộc B xuất phát từ giả thiết A Ta nói rằng một dãy các quan hệ f1, f2, , fk F là một
lời giải của bài toán A B nếu như ta lần lượt áp dụng các quan hệ fi (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, , fk được gọi là lời giải tốtnế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 :
Cho D = f1, f2, , fk là một dãy quan hệ của mạng tính toán (M,F), A là một tập
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ể lần
lượt áp dụng được các quan hệ f1, f2, , fk xuất phát từ giả thiết A
Nhận xét : Trong định nghĩa trên, nếu đặt : A0 = A, A1 = A0 M(f1), , Ak = Ak-1
M(fk), và ký hiệu Ak là D(A), thì ta có D là một lời giải của bài toán A D(A) Trongtrườ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
Định nghĩa 2.3: Cho mạng tính toán (M,F), và A là một tập con của M Ta có thể
thấy rằng có duy nhất một tập hợp B lớn nhất M sao cho bài toán A B là giải được, 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ý hiệu bao đóng của A
là A , chúng ta có định lý sau đây:
Trang 9Định lý 2.1 Trên một mạng tính toán (M,F), bài toán A B là giải được khi và chỉ
khi B A
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 bao
đóng của tập A rồi xét xem B có bao hàm trong A hay không.
Định lý 2.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:
(1) B A
(2) Có một dãy quan hệ D = f1, f2, , fk F thỏa các điều kiện :
(a) D áp được trên A
(b) D(A) B
Chứng minh : Giả sử có (1), tức là B A Khi đó bài toán A B là giải
được Do đó có một dãy quan hệ f1, f2, , fk F sao cho khi ta lần lượt áp dụng các quan
hệ fi (i=1, ,k) xuất phát từ giả thiết A thì sẽ tính được các biến thuộc B Dễ dàng thấy rằngdãy f1, f2, , fk nầy thỏa các điều kiện (2)
Đảo lại, giả sử có (2) Với các điều kiện có được bởi (2) ta thấy fi là lời giảicủa vấn đề Ai-1 Ai, với mọi i = 1,2, , k Từ mệnh đề 3.2 suy ra bài toán A0 Ak là giải
được Do đó bài toán A B cũng giải được, suy ra B A theo định lý 3.1.
Qua 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ếntrê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ủatập hợp A M Trong thuật toán nầy chúng ta thử áp dụng các quan hệ f F để tìm dầnnhững biến thuộc M có thể tính được từ A; cuối cùng sẽ được bao đóng của A
Mệnh đề 1.1 : dãy quan hệ D là một lời giải của bài toán A B khi và chỉ khi D áp
dụng được trên A và D(A) B
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 đạt đến tậpbiến B Dưới đây là thuật toán tìm một lời giải cho bài toán A B trên mạng tính toán(M,F)
Định lý 2.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ỗii=1, ,m đặt Di = f1, f2, , fi, D0 = Ta xây dựng một họ các dãy con Sm, Sm-1, , S2, S1của dãy D như sau :
Sm = nếu Dm-1 là một lời giải,
Trang 10Sm = fm nếu Dm-1 không là một lời giải,
Si = Si+1 nếu Di-1 Si+1 là một lời giải,
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
(2) Di-1 Si là một lời giải của bài toán A B với mọi i=m, , 2, 1
(3) Nếu S’i là một dãy con thật sự của Si thì Di-1 S’i không phải là một lời giải củabài toán A B với mọi i
(4) S1 là một lời giải tốt của bài toán A B
2 Bài toán giải tam giác:
Về mặt tính toán, chúng ta có thể xem tam giác là một mạng tính toán (hay một đốitượng tính toán) bao gồm các biến ghi nhận giá trị của các yếu tố trong tam giác, và cácquan hệ là các công thức thể hiện mối liên hệ tính toán giữa các yếu tố đó
Tập các biến trong tam giác gồm:
a, b, c : 3 cạnh của tam giác
, , : 3 góc đối diện với 3 cạnh tương ứng trong tam giác
ha, hb, hc : 3 đường cao tương ứng với 3 cạnh của tam giác
ma, mb, mc : 3 đường trung tuyến tương ứng với 3 cạnh của tam giác
pa, pb, pc : 3 đường phân giác trong tương ứng với 3 cạnh của tam giác
S : diện tích tam giác
p : nửa chu vi của tam giác
R : bán kính đường tròn ngoại tiếp tam giác
r : bán kính đường tròn nội tiếp tam giác
ra, rb, rc : các bán kính của các đường tròn bàng tiếp tam giác
Các hệ thức cơ bản giữa các yếu tố của tam giác:
Liên hệ giữa 3 góc :
f1 : + + = (radian)
Định lý cosin :
Trang 12Các công thức tính đường cao theo cạnh và góc :
Trang 13f36 : 4.R = ra + rb + rc - r
Ghi chú : Trong các công thức trên, có một số công thức có thể được suy ra từ các côngthức khác Do đó ta có thể bỏ bớt một số công thức Hơn nữa, chúng ta có thể nêu lên mộtthuật toán để làm tối thiểu hóa các công thức (hay các quan hệ) theo một thứ tự ưu tiên nào
đó Tuy nhiên, nếu có thể nhớ được trực tiếp nhiều công thức thì việc tính toán sẽ có lợihơn
3 Bài toán hóa học:
Chúng ta biết rằng trong hóa học, việc xem xét các phản ứng hóa học là một trong nhữngvấn đề quan trọng Về mặt tri thức người ta đã biết được nhiều chất và các phản ứng hóahọc có thể chuyển hóa từ một số chất nầy thành các chất khác Tạm thời bỏ qua một số điềukiện phản ứng, ta có thể xem tri thức đó như một mạng tính toán mà mỗi phản ứng là mộtquan hệ của mạng Ví dụ như phản ứng điều chế Clo từ axít Clohidric và đioxit mangan :
MnO2 + HCl MnCl2 + Cl2 + H2O
Phản ứng trên có thể được xem như một quan hệ cho chúng ta có được các chất Cl2,MnCl2, H2O từ các chất MnO2, HCl
Trong báo cáo chúng ta dùng mạng tính toán để giải 2 bài toán sau trong hóa học:
1 Cho một số chất, hỏi có điều chế được một vài chất nào đó không?
2 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ácdãy:
Zn ZnO ZnSO4
S SO2 SO3 H2SO4
4 Thuật giải của bài toán giải tam giác và hóa học:
4.1 Thuật giải tìm lời giải cho bài toán A B:
Nhập : các file chưa tri thức cho bài toán tam giác hay hóa học, tập giả thiết
Trang 14if ( 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
6 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;
7 Loại bỏ các bước giải không cần thiết
D f1, f2, , fm; // f 1 , f 2 , , f m của bài toán A B
Trang 15for 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 Tính giá trị cho từng thuộc tính được suy ra trong từng bước giải
9 In từng bước giải của bài toán
4.2 Thuật giải bổ sung giả thiết cho bài toán:
Nhập :F là tập hợp các quan hệ của đề bài, H là tập hợp phần giả thiết, G làtập hợp phần mục tiêu
Xuất : giả thiết cần bổ sung
7 while (ans = false) and k<= số phần từ của Aset do
for H1 in tập con có k phần tử của Aset do BaoH Baodong(Fset, H H1);
Trang 165.1 Giải tam giác:
Như đã nói ở trên, chúng ta xét một tam giác bao gồm 22 yếu tố Giữa các yếu tố củatam giác có các quan hệ cho phép ta có thể tính ra được các yếu tố cần thiết trong tam giác
từ giả thiết rằng đã biết một số yếu tố nào đó của tam giác Nhờ vào lý thuyết về mạng tínhtoán ta có thể cài đặt một chương trình để giải tam giác
Khi ta cho biết một số yếu tố của tam giác và yêu cầu tính ra một số yếu tố khác, chươngtrình sẽ cho chúng ta một lời giải (nếu bài toán là giải được) Trong trường hợp bài toánkhông giải được thì chương trình sẽ thông báo để ta cho thêm dữ kiện hoặc điều chỉnh lạibài toán
Trong tam giác ABC giả sử đã biết góc A, cạnh b, chu vi p Hãy tính diện tích tam giác
và đường cao ha Như vậy ta có :
Giả thiết: A, b, p
Tính các biến: S, ha
Áp dụng thuật toán tìm lời giải ta có lời giải gồm các bước tính toán như sau :
Bài toán không có lời giải, phải bổ sung thêm giả thiết B thì bài toán mới có thể giải được
Lời giải sau khi bổ sung giả thiết: