Trường Đại học Công Nghệ Thông Tin – TP. Hồ Chí Minh
Ứng dụng lập trình
symbolic trong giải bài
toán hình học tam giác
Lớp Cao học Khóa 06
Môn học: Lập trình Symbolic
Hướng dẫn: PGS. TS. Đỗ Văn Nhơn
Thực hiện: Nguyễn Hữu Việt Long
Mã số: CH1101101
02-2012
Mục lục
Mô hình mạng tính toán được ứng dụng nhiều trong những phần mềm hỗ trợ giải
bài tập. Báo cáo xin trình bày một dạng ứng dụng của mô hình này trong giải quyết một
số dạng toán đơn giản của hình học tam giác. Kỹ thuật lập trình symbolic dựa trên Maple
được áp dụng nhằm đơn giản hóa quá trình tính toán.
1. Bài toán hình học tam giác
Bài toán hình học tam giác đơn giản được phát biểu như sau: trong một tam giác,
cho trước các giá trị của một vài yếu tố, thuộc tính và yêu cầu tính một vài yếu tố, thuộc
tính khác.
Bài toán hình học tam giác đơn giản sẽ có dạng A B với A là tập hợp các giả
thiết (bao gồm giá trị của các biến và các công thức liên hệ đơn giản giữa các biến), B là
tập hợp các biến mục tiêu cần tính.
Ví dụ: Cho một hình tam giác có góc A=PI/6 và góc B=2A. Tính góc C.
Giả thiết: {A=PI/6; B=2A}
Mục tiêu: {C}
2
2. Mô hình biểu diễn tri thức
Tri thức để giải những bài toán hình học tam giác đơn giản ở đây là các công thức,
đẳng thức trong tam giác (A + B + C = Pi; S = a.ha/2 …)
Tri thức được tổ chức lưu trữ theo dạng file văn bản có cấu trúc như sau:
TENTRITHUC
Quá trình suy diễn trên mạng tính toán hình học tam giác được thực hiện bằng kỹ
thuật lan truyền theo dạng suy diễn tiến.
Về cơ bản, thuật giải tìm lời giải cho bài toán tam giác có dạng như sau:
4
+ Biến với kiểu dữ liệu nhất định:
Solution = []: là danh sách các công thức cần áp dụng để giải
Fknown = []: là danh sách các biến đã biết
B1: Solution:= [];
Fknown:= H;
B2: While (G không nằm trong map(x->lhs(x), Fknown) do
2.1 Tìm luật f thuộc Formula có thể áp dụng trên Fknown
2.2 if (không tìm được r) then
Dừng: không tìm được lời giải
2.3 Thêm f vào Solution:
Xác định biến mới sẽ tính ra: {View = V( f) – V( Fknown);
Thay thế và giải: newfact := solve (Subs( Fknown, f), Vnew);
Fknown: = Fknown union solve (Subs( Fknown, f), Vnew)
End do;
B3: Cho kết quả tìm được lời giải Solution
Để kết quả lời giải được tốt, kỹ thuật tìm và loại bỏ các bước giải thừa được áp
dụng nhằm tìm ra một lời giải tối ưu cho bài toán. Nguyên tắc loại bỏ bước giải thừa là áp
dụng kỹ thuật lan truyền ngược. Từ các sự kiện mục tiêu, ta do ngược trên tập các công
thức để suy ra tập sự kiện ban đầu. Trong quá trình dò tìm, ta đánh dấu các công thức
được duyệt qua. Tập các công thức này chính là một lời giải tốt cho bài toán.
5
4. Ví dụ minh họa
Ta xem xét một ví dụ sau: Cho tam giác ABC có cạnh a và 2 góc B, C được cho
trước. Hãy tính diện tích tam giác ABC;
Trong cơ sở tri thức, ta có:
- Tập sự kiện: M = {A, B, C, a, b, c, S, p, r, R…}
5
: p = (a+b+c)/2; f
6
: S = a.h
a
/ 2;f
7
: S = b.h
b
/ 2; f
8
: S =
c.h
c
/ 2; f
9
: S = a.b.sin(C) / 2; }
Theo đề bài ta có giả thiết là : GT = {a, B, C}, và tập biến cần tính là KL = {S}.
Áp dụng thuật toán tìm lời giải ta có một lời giải cho bài tính là dãy luật sau:
{f
1
, f
2
, f
3
, f
5
, f
9
}. Xuất phát từ tập biến GT, lần lượt áp dụng các quan hệ trong lời
, f
9
}:
6
{a, B, C}
1
f
→
{a, B, C, α}
2
f
→
{a, B, C, A, b}
9
f
→
{a, B, C, A, b,
S}.
Theo lời giải này, ta có quá trình tính toán như sau :
bước 1: tính A (áp dụng f
1
).
bước 2: tính b (áp dụng f
2
).
bước 3: tính S (áp dụng f
9
).
Quá trình tính toán (gồm 3 bước) này có thể được diễn đạt một cách rõ ràng trên
sơ đồ mạng sau đây:
môn Trí tuệ nhân tạo – Nhà xuất bản Đại học Quốc Gia Thành phố Hồ Chí
Minh, 2008.
2) GS. TSKH. Hoàng Kiếm, PGS. TS. Đỗ Phúc, PGS. TS. Đỗ Văn Nhơn – Giáo
trình Các hệ cơ sở tri thức – Nhà xuất bản Đại học Quốc Gia Thành phố Hồ
Chí Minh, 2008
3) GSTS. Hoàng Kiếm, Đỗ Văn Nhơn – Mạng tính toán và ứng dụng – 1996.
10