ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
________________
BÀI THU HOẠCH MÔN HỌC
LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG
Đề Tài:
Xây Dựng Ứng Dụng Giải Toán Tự Động
Giải Bài Toán Tam Giác Trên Maple
Giảng viên phụ trách:
PGS.TS. Đỗ Văn Nhơn
Học viên thực hiện:
Trần Thanh Quốc Thắng
MSSV: CH1101131
TP. HCM, 2013
MỤC LỤC
MỤC LỤC 2
Phần 1: Giới Thiệu Về Maple 3
Phần 2: Ứng Dụng Giải Bài Toán Tam Giác Trên Maple 4
I. Phát biểu bài toán tam giác 4
II. Các bước giải bài toán tam giác 4
III. Một số hàm của Maple và phương pháp được áp dụng trong chương trình. .8
IV. Một số mẫu thử và kết quả của chương trình 8
V. Đánh giá chương trình và các đề xuất cải tiến chương trình 9
1. Đánh giá 9
2. Cải tiến 10
Tài liệu tham khảo 12
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
Phần 1: Giới Thiệu Về Maple
Maple là phần mềm toán học được dùng trong lập trình symbolic hay lập trình
Ý tưởng chính của ứng dụng là người dùng sẽ nhập vào một tập giả thiết gồm
các giá trị đã biết của một số yếu tố trong tam giác và một tập mục tiêu bao gồm các
yếu tố mà người dùng muốn biết. Ứng dụng sau đó sẽ tính toán và xuất ra giá trị của
các yếu tố mà người dùng muốn biết, đồng thời ứng dụng cũng sẽ xuất ra các công
thức mà ứng dụng đã sử dụng để tính toán ra các giá trị đó.
Ví dụ:
Input của chương trình là:
- Tập giả thiết: GT:={a=5, b=4, c=3}
- Tập mục tiêu: MT:={S, p}
Output của chương trình là:
- Tập các công thức dùng trong việc tính toán để tìm ra tập mục tiêu:
Sol:=[]
- Tập các yếu tố đã tính toán được: FactsKnown:=[]
Hàm tính toán là:
- TamGiac(GT, MT)
II. Các bước giải bài toán tam giác
Các bước chính trong việc xây dựng ứng dụng giải bài toán tam giác bao gồm:
Bước 1:
Xây dựng tập Fomula gồm các công thức liên hệ tính toán giữa các yếu tố trong
tam giác
• Liên hệ giữa 3 góc:
MÔN HỌC: LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG 4
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
f
1
: A + B + C = π
• Định lý cosin:
f
2
f
6
:
sinB
b
sinC
c
=
f
7
:
sinC
c
sinA
a
=
f
8
:
2R
sinA
a
=
f
9
:
2R
sinB
b
=
: S = b.c.sinA / 2
f
18
: S = c.a.sinB / 2
f
19
: S = a.b.sinC / 2
• Các công thức tính đường cao theo cạnh và góc:
f
20
: ha = b.sinC
f
21
: ha = c.sinB
f
22
: hb = a.sinC
MÔN HỌC: LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG 5
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
f
23
: hb = c.sinA
f
24
: hc = a.sinB
f
25
: hc = b.sinA
• Các công thức tính các đường trung tuyến:
• Các công thức tính các đường phân giác trong:
f
29
: pa =
2
b c
b.c.p.(p a)
+
−
f
30
: pb =
2
a c
a.c.p.(p b)
+
−
f
31
: pc =
2
b a
b.a.p.(p c)
+
−
• Một số công thức liên quan đến bán kính đường tròn ngoại tiếp, đường
tròn nội tiếp và các đường tròn bang tiếp:
f
32
: R =
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
• r: bán kính 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 bang tiếp tam giác.
Xây dựng các biến chính của chương trình gồm:
• Biến Sol: dùng để lưu lại các công thức được áp dụng trong quá trình suy
diễn, tính toán nhằm tìm ra lời giải của bài toán.
• Biến FactsKnown: dùng để lưu lại các yếu tố của tam giác trong tập giả
thiết và các yếu tố mới thu được trong quá trình suy diễn, tính toán.
Ví dụ:
Với tập giả thiết của bài toán là:
GT:={a=5, b=4, c=3}
Khi đó tập FactsKnown ban đầu là:
FactsKnown:={a=5, b=4, c=3}
Chương trình sẽ tự động tìm kiếm và áp dụng công thức f
11
để tính toán và tạo ra
một tập FactsKnown mới:
FactsKnown:={a=5, b=4, c=3, p=6}
Bước 2:
Thực hiện suy diễn, tính toán để tìm ra các yếu tố trong tập mục tiêu:
(1) Khi MT không nằm trong FactsKnown thì thực hiện
(2) Tìm một công thức f thuộc tập Fomula có thể áp dụng trên tập Facts_known
(công thức có thể áp dụng là công thức nhằm bổ sung thêm các yếu tố của
tam giác vào tập FactsKnown, như vậy công thức này phải có số toán hạng
lớn hơn 1 so với số các yếu tố trong tập FactsKnown và tập này phải là tập
hợp con của tập các toán hạng trong công thức f)
(3) Nếu không tìm được f thì dừng chương trình, trã về một tập rỗng
(4) Nếu tìm được f thì thêm f vào tập Sol
(5) Xác định xem yếu tố mới nào sẽ được tính ra
- Với tập giả thiết GT:={a=5, b=4, p=6} và tập mục tiêu MT:={S}, chương trình
cho ra kết quả tính tập Sol:
và tập FactsKnown:
MÔN HỌC: LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG 8
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
- Với tập giả thiết GT:={A=π/6, B=π/3, a=4} và tập mục tiêu MT:={R, ha},
chương trình cho ra kết quả tính tập Sol:
và tập FactsKnown:
V. Đánh giá chương trình và các đề xuất cải tiến chương trình
1. Đánh giá
Chương trình có một số ưu điểm như sau:
- Chương trình luôn có thể đưa ra được kết quả tính toán với mọi tập giả thiết và
mục tiêu do người dùng nhập vào (trã về một kết quả rỗng nếu không tìm được lời
giải)
- Mã nguồn dễ đọc và có khả năng mỡ rộng cao vì được viết bằng Maple.
MÔN HỌC: LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG 9
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
2. Cải tiến
Bên cạnh đó, chương trình vẫn còn một số khuyết điểm cần được cải tiến như:
- Kiểm tra giá trị của các biến (các yếu tố của tam giác) trước khi lưu lại, thêm
vào các ràng buộc của các biến (ví dụ: độ dài của 1 cạnh thì không âm…)
- Áp dụng các đánh giá heuristic để tìm ra được giải pháp tốt nhất (dùng ít công
thức nhất) để tìm được kết quả trong tập mục tiêu.
- Kết hợp với các ngôn ngữ khác như C#, Java để tạo ra giao diện người dùng.
- Mỡ rộng tính toán cho các đối tượng hình học khác.
MÔN HỌC: LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG 10
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG