Trong tiểu luận này 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.. Cách biểu diễn tri thức tính toán dưới
Trang 1TIỂU LUẬN LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG
Đề tài: GIẢI BÀI TOÁN TAM GIÁC ỨNG
DỤNG MAPLE
GVHD: PGS.TS Đỗ Văn Nhơn
Học viên thực hiện:
Trang 2LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến thầy PGS.TS Đỗ Văn Nhơn, người đã dành nhiều thời gian quý báu của mình để truyền đạt cho lớp CH CNTT K6 những kiến thức bổ ích, lý thú về biểu diễn tri thức và ứng dụng Đây là những kiến thức hết sức cần thiết cho hành trang của chúng em trong công việc nghiên cứu về lĩnh vực tin học Đặt biệt thầy đã truyền đạt các kiến thức và ví dụ minh họa rất bổ ích cho chúng em về Symbolic và công cụ Maple Đây chính là tiền đề, là kiến thức nền tảng đã thôi thúc em thực hiện đề tài tiểu luận về “Giải bài toán tam giác ứng dụng maple”
Xin chân thành cảm ơn sự giúp đỡ của các bạn bè, anh chị, những người đã thảo luận và đóng góp ý kiến, giúp đỡ em tìm kiếm thông tin và động viên tinh thần cho em trong suốt quá trình thực hiện tiểu luận
Một lần nữa xin chân thành cảm ơn đến tất cả những người đã quan tâm đến tiểu luận của em Tuy nhiên, trong quá trình làm việc không thể tránh khỏi những sai sót, rất mong sự đóng góp ý kiến nhiệt tình của Thầy và các bạn
Học viên thực hiện
Phan Đình Duy Lớp: CH CNTT K6
Trang 3Mục lục
Chương 1 MẠNG TÍNH TOÁN 3
1.1 Giới thiệu về mạng tính toán 3
1.2 Các quan hệ 3
1.3 Mạng tính toán và các ký hiệu 6
1.4 Vấn đề trên mạng tính toán 8
Chương 2 GIẢI BÀI TOÁN TAM GIÁC 11
2.1 Yêu cầu bài toán 11
2.2 Cấu trúc dữ liệu 11
2.3 Thuật giải 13
2.4 Ví dụ 14
Trang 4HÌNH ẢNH
Hình 1-1 quan hệ đối xứng có hạng k 4
Hình 1-2 quan hệ không đối xứng có hạng k 5
Hình 1-3 Quan hệ các góc trong tam giác 5
Hình 1-4 Quan hệ giữa nửa chu vi với các độ dài 6
Trang 5Chương 1 MẠNG TÍNH TOÁN 1.1 Giới thiệu về mạng tính toán
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 quyết các vấn đề này 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 Có thể nói rằng mạng tính toán là một sự tổng quát hoá của kiểu dữ liệu trừu tượng có khả năng tự xây dựng các hàm dùng cho việc tổng hợp thành các chương trình
Trong tiểu luận này 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
Cách biểu diễn tri thức tính toán dưới dạng các đối tượng này rất tự nhiên và gần gũi đối với cách nhìn và nghĩ của con người khi giải quyết các vấn đề tính toán liên quan đến một số khái niệm về các đối tượng, chẳng hạn như các tam giác, tứ giác, hình bình hành, hình chữ nhật, v.v
1.2 Các quan hệ
Cho là một tập hợp các biến có thể lấy giá trị trong các miền xác định tương ứng Đối với mỗi quan hệ R
D1xD2x xDm trên các tập hợp D1,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 >) Quan hệ R(x) xác định một (hay một số) ánh xạ
fR,u,v: Du Dv, trong đó u,v là các bộ biến và u x, v x; Du và Dv là tích của các miền xác định tương ứng của các biến trong u và trong v
Trang 6Ta 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
Đố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
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í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”
Ta có thể vẽ hình biểu diễn cho các quan hệ đối xứng và các quan hệ không đối xứng (xác định một hàm) như trong hình sau
Hình 1-1 quan hệ đối xứng có hạng k
Trang 7Hình 1-2 quan hệ không đối xứng có hạng k Nhận xét:
Một quan hệ không đối xứng hạng k có thể được viết thành k quan hệ không đối xứng có hạng 1
Dưới đây là một vài ví dụ về các quan hệ (tính toán) và mô hình biểu diễn tương ứng
Ví dụ 1: 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 (đơn vị: độ)
Hình 1-3 Quan hệ các góc trong tam giác
Quan hệ f giữa 3 góc trong một tam giác trên đây là một quan hệ đối xứng có hạng 1
Trang 8Ví dụ 2: quan hệ f giữa nửa chu vi p với các độ dài của 3 cạnh a, b, c:
Hình 1-4 Quan hệ giữa nửa chu vi với các độ dài
Ví dụ 3: Quan hệ f giữ a n biến x1, x2, , xn được cho dưới dạng một hệ phương
trình tuyến tính có nghiệm Trong trường hợp này f là một quan hệ có hạng k bằng hạng của ma trận hệ số của hệ phương trình
1.3 Mạng tính toán và các ký hiệu
Như đã nói ở trên, ta sẽ xem xét các mạng tính toán bao gồm một tập hợp các biến M và một tập hợp các quan hệ (tính toán) F trên các biến Ta gọi một mạng
tính toán một cách vắn tắt là một MTT, và trong trường hợp tổng quát có thể viết:
M = x1,x2, ,xn , F = f1,f2, ,fm
Đối với mỗi f F, ta ký hiệu M(f) là tập các biến có liên hệ trong quan hệ f
Dĩ nhiên 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ì ta có M(f) = u(f) v(f)
Ví dụ 4:
Trong ví dụ 1 ở trên, ta có M(f) = A,B,C
Trong ví dụ 2 ở trên, ta có M(f) = a,b,c,p
Trang 9Trong ví dụ 3 ở trên, ta có M(f) = x1, x2, , xn
Ví dụ 5: Mạng tính toán cho một hình chữ nhật
Việc tính toán trên một hình chữ nhật liên quan đến một số giá trị của hình chữ nhật như sau:
b1, b2: hai cạnh của hình chữ nhật;
d: đường chéo của hình chữ nhật;
s: diện tích của hình chữ nhật;
p: chu vi của hình chữ nhật;
trong đó mỗi biến đều có giá trị là thuộc tập các số thực dương Giữa các biến ta đã biết có các quan hệ sau đây:
f1: s = b1 * b2;
f2: p = 2 * b1 + 2 * b2;
f3: d2 = b12 + b22;
các quan hệ này đều là các quan hệ đối xứng có hạng 1
Như vậy tập biến và tập quan hệ của mạng tính toán này là M = b1, b2, d, s,
p , F = f1, f2, f3
Trang 101.4 Vấ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ột tập biến A M đã được xác định (tức là tập gồm các biến đã biết trước giá trị), và B là một tập biến bất kỳ trong M
Các vấn đề đặt ra là:
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á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?
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
B như 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 (hay tập biến cần tính) của vấn đề Trường hợp tập B chỉ gồm có một phần tử b, ta viết vắn tắt bài toán trên là A b
Đị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ố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ố
Trang 11quan hệ trong lời giải Lời giải được gọi là lời giải tối ưu khi nó có số bước tính toán ít nhất, tức là số quan hệ áp dụng trong tính toán là ít nhất
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 tính 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
Trong quá trình tìm lời giải cho bài toán chúng ta cần xét một dãy quan
hệ nào đó xem có thể tính thêm được các biến từ một tập biến cho trước nhờ dãy quan hệ này hay không Do đó chúng ta đưa thêm định nghĩa sau đây
Đị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) Trong trườ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
Thuật toán tính D(A) :
Nhập : Mạng tính toán (M,F),
Trang 12dãy các quan hệ D = { f1, f2, , fm} Xuất : D(A)
Thuật toán :
B1 A’ A;
B2 for i=1 to m do
if fi áp dụng được trên A’ then
A’ A’ M(fi);
B3 D(A) A’
Trang 13Chương 2 GIẢI BÀI TOÁN TAM GIÁC
Để giải bài toán tam giác ta áp dụng mạng tính toán gồm 2 thành phần
(M, F) Trong đó:
M = {x1,x2, ,xn} là tập hợp các biến của đối tượng
F = {f1, f2, , fm} là tập hợp các quan hệ (tính toán) trên các biến
2.1 Yêu cầu bài toán
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ương trì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á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
Ví dụ 1:
Trong tam giác ABC giả sử đã biết cạnh a, góc , góc Hãy tính các cạnh còn lại (cạnh b và cạnh c) và chu vi của tam giác Như vậy ta có:
Input : a, ,
Output : b, c, p
Ví dụ 2:
Trong tam giác, giả sử đã biết cạnh b, cạnh c, góc Hãy tính chiều dài cạnh a của tam giác Như vậy ta có:
Input : b, c,
Output : a
2.2 Cấu trúc dữ liệu
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 đối tượ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ác
quan 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ố đó
Trong đó:
- 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
Trang 14- R: bán kính đường tròn ngoại tiếp
- S: diện tích tam giác
- p: nửa chu vi của tam giác
Trong đó gồm các hệ thức cơ bản giữa các yếu tố của tam giác như:
- Liên hệ giữa 3 góc :
f1: + + = (radian)
- Định lý cosin :
f2: a2 = b2 + c2 - 2.b.c.cos
f3: b2 = a2 + c2 - 2.a.c.cos
f4 c2 = a2 + b2 - 2.a.b.cos
- Định lý Sin :
sin
b sin
sin
b sin
sin
c sin
sin 2R
sin 2R
f10: c
sin 2R
- Liên hệ giữa nửa chu vi và 3 cạnh :
f11: 2.p = a + b + c
- Các công thức tính diện tích :
f12: S = a.ha/2
f13: S = b.hb/2
f14: S = c.hc/2
- Các công thức tính đường cao theo cạnh và góc:
f15: ha = b.sin
f16: ha = c.sin
f17: hb = a.sin
f18: hb = c.sin
Trang 15f19: hc = a.sin
f20: hc = b.sin
2.3 Thuật giải
Input: Mạng tính toán (M, F),
Tập giả thiết Hypos M,
Tập biến cần tính Goals M
Output: Lời giải cho bài toán Hypos Goals
Thuật toán:
B1:Solutions empty; // Solutions là dãy các quan hệ sẽ áp dụng
_Hypos Hypos;
B2: if Goals Hypos then
begin
solutionFound true; // biến solutionFound= true khi bài toán là
// giải được
goto 4;
end else
solutionFound false;
B3: Repeat
Aold _Hypos;
Chọn ra một f F chưa xem xét;
while not solutionFound and (chọn được f) do begin
if (f đối xứng and 0 < Card (M(f) \ _Hypos) r(f) ) or (f không đối xứng and M(f) \ _Hypos v(f) ) then begin
_Hypos _Hypos M(f);
Solutions Solutions f;
end;
if Goals _Hypos then
solutionFound true;
Chọn ra một f F chưa xem xét;
Trang 16Until solutionFound or (_Hypos = Aold);
B4: if not solutionFound then
Bài toán không có lời giải;
else
Solutions là một lời giải;
2.4 Ví dụ
Ví dụ 1:
Trong tam giác ABC giả sử đã biết cạnh a, góc , góc Hãy tính các cạnh còn lại (cạnh b và cạnh c) và chu vi của tam giác Như vậy ta có:
Input : a, ,
Output : b, c, p
Á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:
→ →
→
→ →
Ví dụ 2:
Trong tam giác, giả sử đã biết cạnh b, cạnh c, góc Hãy tính chiều dài cạnh a của tam giác
Input : b, c,
Output : a
Trang 17Á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 :
→
→
→ → →
Trang 18TÀI LIỆU THAM KHẢO
[1] Nhon Do Van, A system supports studying knowlegde and solving analytic Geometry problems P.O.Box 3058 - Macau, 2000
Educational software Wuhan, P R China, August 22-23, 2009
in an Educational Software Wuhan, P R China, August 22-23, 2009
[4] 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
[5] Hoàng Kiếm, Đỗ Văn Nhơn (2005), Mở rộng và phát triển mô hình tri thức các đối tượng tính toán, Nhà xuất bản Khoa Học Kỹ Thuật