ỨNG DỤNG MÔ HÌNH MẠNG TÍNH TOÁN ĐỂ GIẢI BÀI TOÁN TAM GIÁC - Pdf 26

ĐẠI HỌC QUỐC GIA THÀNH PHỐ 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 CHUYÊN ĐỀ
BIỂU DIỄN TRI THỨC & ỨNG DỤNG
ĐỀ TÀI:
ỨNG DỤNG MÔ HÌNH MẠNG TÍNH
TOÁN ĐỂ GIẢI BÀI TOÁN TAM GIÁC

GIẢNG VIÊN HƯỚNG DẪN:
PGS.TS ĐỖ VĂN NHƠN
HỌC VIÊN THỰC HIỆN:
LÊ MINH TRÍ
MSHV: CH1101148
Thành phố Hồ Chí Minh
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác
01/2013
MỤC LỤC
Nội dung Trang
DANH MỤC CÁC HÌNH 3
LỜI NÓI ĐẦU 4
Chương I>Giới thiệu: 5
Chương II>Tri thức và biểu diễn tri thức: 6
1/Tri thức : 6
2/Biểu diễn tri thức : 6
Chương III>Cấu trúc của hệ giải toán dựa trên tri thức: 8
1/Cấu trúc hệ thống : 8
2/Vấn đề biểu diễn tri thức : 9
3/Vấn đề suy diễn tự động : 9
4/Các ví dụ: 10

khoa học máy tính nhằm nghiên cứu và phát triển các hệ thống ngày càng thông
minh hơn, hỗ trợ tốt cho hoạt động xử lý thông tin, xử lý tri thức, tính toán và điều
khiển,… Một thành phần không thể thiếu của Trí tuệ nhân tạo là việc dùng các máy
tính số như một phương tiện để tạo ra và thử nghiệm các lý thuyết về trí tuệ. Hiện
nay, một trong những vấn đề cơ bản của Trí tuệ nhân tạo đang được quan tâm nhất
là nghiên cứu các phương pháp, kỹ thuật biểu diễn và xử lý tri thứ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 một hệ cơ sở tri thức. Có rất nhiều phương pháp và kỹ
thuật để biểu diễn tri thức như: Logic vị từ, hệ luật dẫn, mạng ngữ nghĩa, frames,
classes, scripts, mạng tính toán, mạng các đối tượng tính toán, COKB,…Trong
phạm vi bài tiểu luận này, người nghiên cứu xin trình bày phương pháp biểu diễn tri
thức bằng mô hình Mạng tính toán và đồng thời cài đặt thử nghiệm chương trình
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác, nhằm tìm ra các lời
giải cụ thể về những bài toán có liên quan đến tính toán các yếu tố của một tam
giác.
Qua bài tiểu luận, em xin gửi lời cảm ơn chân thành, sâu sắc đến thầy PGS.TS
Đỗ Văn Nhơn, người đã tận tình truyền đạt cho em những kiến thức sâu rộng, bổ
ích về môn Biểu diễn tri thức và ứng dụng. Từ đó giúp em nắm vững hơn về cơ sở
lý thuyết, và có được một nền tảng kiến thức cơ bản tạo điều kiện thuận lợi để em
hoàn thành tốt bài tiểu luận này. Bên cạnh đó em cũng xin gửi lời cảm ơn đến các
anh/chị trong cùng khóa học đã nhiệt tình chia sẽ tài liệu và những thông tin cần
thiết trong suốt quá trình học.
Thân mến,
Người nghiên cứu
HVTH: Lê Minh Trí (CH1101148) Trang 4
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác
Chương I> Giới thiệu:
Trí tuệ nhân tạo (AI: Artificial Intelligence) có thể được định nghĩa như một
ngành của khoa học máy tính liên quan đến việc tự động hóa các hành vi thông
minh. AI là một bộ phận của khoa học máy tính và do đó nó phải được đặt trên

1.1/ Khái niệm:
Là sự hiểu biết thông qua các quá trình nhận thức phức tạp như: quá trình tri
giác, quá trình học tập, tiếp thu, quá trình giao tiếp, quá trình tranh luận, quá trình lý
luận, hay kết hợp các quá trình này.
1.2/ Phân loại:
Tri thức có 2 dạng tồn tại chính là tri thức hiện và tri thức ẩn:
a. Tri thức hiện: là những tri thức được giải thích và mã hóa dưới dạng văn
bản, tài liệu, âm thanh, phim, ảnh,… thông qua ngôn ngữ có lời hoặc
không lời, nguyên tắc hệ thống, chương trình máy tính, chuẩn mực hay
các phương tiện khác. Đây là những tri thức đã được thể hiện ra ngoài và
dễ dàng chuyển giao, thường được tiếp nhận qua hệ thống giáo dục và
đào tạo chính quy.
b. Tri thức ẩn: là những tri thức thu được từ sự trải nghiệm thực tế, dạng tri
thức này thường ẩn trong mỗi cá nhân và rất khó “mã hóa” và chuyển
giao, thường bao gồm: niềm tin, giá trị, kinh nghiệm, bí quyết, kỹ năng
Ví dụ: Trong bóng đá, các cầu thủ chuyên nghiệp có khả năng cảm nhận
bóng rất tốt; trong một siêu thị điện máy bằng việc phân tích các giao dịch
người ta thấy rằng, có tới 60% độ tin cậy cho việc khách hàng khi mua máy
tính thì cũng mua phần mềm diệt virus. Đây là một dạng tri thức ẩn, nó nằm
trong mỗi cầu thủ Nó không thể “mã hóa” thành văn bản, không thể chuyển
giao, mà người ta chỉ có thể có bằng cách tự mình luyện tập.
2/ Biểu diễn tri thức :
2.1/ Khái niệm :
Là sự diễn đạt và thể hiện của tri thức dưới những dạng thích hợp để có thể tổ
chức một cơ sở tri thức của hệ thống.
Biểu diễn tri thức giúp ta có thể tổ chức và cài đặt một cơ sở tri thức cho các hệ
chuyên gia, các hệ cơ sở tri thức và các hệ giải bài toán dựa trên tri thức.
2.2/ Các tiêu chuẩn đánh giá một phương pháp biểu diễn tri thức:
HVTH: Lê Minh Trí (CH1101148) Trang 6
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác

: 3 đường cao tương ứng.
o S: diện tích tam giác.
o p: nửa chu vi của tam giác.
o R: bán kính đường tròn ngoại tiếp tam giác.
o r: bán kính đường tròn ngoại tiếp nội giác.
o .v.v.
 Một tập hợp các công thức liên hệ tính toán trên các yếu tố của tam
giác:
o f
1
: A + B + C = π (radian)
o f
2
: a
2
= b
2
+ c
2
- 2.b.c.cosα
HVTH: Lê Minh Trí (CH1101148) Trang 7
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác
o f
3
: b
2
= a
2
+ c
2

đưa ra giải pháp để thực hiện một công việc nào đó.
b. Tri thức khai báo (tri thức mô tả): cho biết một vấn đề được thấy như thế
nào. Loại tri thức này bao gồm các phát biểu đơn giản, dưới dạng các
khẳng định logic đúng hoặc sai.
c. Siêu tri thức: mô tả tri thức về tri thức. Loại tri thức này giúp lựa chọn tri
thức thích hợp nhất trong số các tri thức khi giải quyết một vấn đề.
d. Tri thức heuristic (Tri thức nông cạn): mô tả các “mẹo” để dẫn dắt tiến
trình lập luận. Nó không bảm đảm hoàn toàn chính xác về kết quả giải
quyết vấn đề.
e. Tri thức có cấu trúc: mô tả tri thức theo cấu trúc. Loại tri thức này mô tả
mô hình tổng quan hệ thống theo quan điểm của chuyên gia, bao gồm khái
niệm, khái niệm con, và các đối tượng; diễn tả chức năng và mối liên hệ
giữa các tri thức dựa theo cấu trúc xác định.
Chương III> Cấu trúc của hệ giải toán dựa trên tri thức:
1/ Cấu trúc hệ thống :
Hình 1: Cấu trúc của một hệ giải toán thông minh.
HVTH: Lê Minh Trí (CH1101148) Trang 8
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác
Các thành phần chính của hệ thống trong việc giải toán: hệ giải toán thông
minh có thể giải được các dạng bài toán tổng quát trong một miền tri thức.
 Cơ sở tri thức (Knowledge Base): đây là trái tim của hệ thống, trong đó chứa
các kiến thức cần thiết cho việc giải các bài toán.
 Bộ suy diễn (mô tơ suy diễn): bộ suy diễn sẽ áp dụng kiến thức được lưu trữ
trong cơ sở tri thức để giải quyết hay tìm lời giải cho các bài toán đặt ra.
Sự tách biệt của bộ suy diễn và cơ sở tri thức nó mang tính độc lập tương đối và
là một tiêu chuẩn quan trọng. Ta cần phải có sự tách biệt này vì:
 Việc biểu diễn tri thức sẽ được thực hiện một cách tự nhiên hơn, gần gũi hơn
với quan niệm của con người.
 Các nhà thiết kế hệ thống sẽ tập trung vào việc nắm bắt và tổ chức cơ sở tri
thức hơn là phải đi vào những chi tiết cho việc cài đặt trên máy tính.

khác.
Ví dụ 1: Giả sử chúng ta đang quan tâm đến một số yếu tố trong một tam giác,
chẳng hạn : 3 cạnh a, b, c; 3 góc tương ứng với 3 cạnh : A, B, C; 3 đường cao tương
ứng : h
a
, h
b
, h
c
; diện tích S của tam giác; nửa chu vi p của tam giác; bán kính đường
tròn nội tiếp r của tam giác. Giữa 12 yếu tố trên có các công thức thể hiện những
mối quan hệ giúp ta có thể giải quyết được một số vấn đề tính toán đặt ra như: Tính
một yếu tố từ một số yếu tố được cho trước. Chẳng hạn, tính S khi biết a, b và p.
Trong tam giác chúng ta có thể kể ra một số quan hệ dưới dạng công thức sau đây:
o Liên hệ giữa 3 góc : A + B + C = π
o Định lý cosin :
a
2
= b
2
+ c
2
- 2.b.c.cosα
b
2
= a
2
+ c
2
- 2.a.c.cosβ

Ứng dụng mô hình mạng tính toán để giải bài toán tam giác
c)b)(pa)(pp(p −−−=S
Ví dụ 2: Một vật thể có khối lượng m chuyển động thẳng với gia tốc không thay đổi
là a trong một khoảng thời gian tính từ thời điểm t
1
đến thời điểm t
2
. Vận tốc ban
đầu của vật thể là v
1
, vận tốc ở thời điểm cuối là v
2
, và vận tốc trung bình là v.
Khoảng cách giữa điểm đầu và điểm cuối là ∆s. Lực tác động của chuyển động là f.
Độ biến thiên vận tốc giữa 2 thời điểm là ∆v, và độ biến thiên thời gian là ∆t. Ngoài
ra còn có một số yếu tố khác nữa của chuyển động vật thể có thể được quan tâm.
Để giải những bài toán về chuyển động nầy chúng ta phải sử dụng một số công thức
liên hệ giữa các yếu tố của chuyển động, chẳng hạn như:
o f = m * a;
o ∆v = a*∆t;
o ∆s = v*∆t;
o 2*v = v
1
+ v
2
;
o ∆v = v
2
- v
1

m
} tập hợp các biến đơn trong miền xác định tương ứng
D
1
, D
2
,…,D
m
• F = {f
1
, f
2
,…,f
m
} tập các quan hệ tính toán trên các biến trong tập M. Mỗi
quan hệ tính toán f ∈ F có các dạng sau:
o Một phương trình trên một số biến trong M hoặc
o Luật f : u(f) → v(f) trong đó u(f), v(f) là các tập con khác rỗng của
M hay M(f) ⊆ M thỏa : M(f) = u(f) ∪ v(f)
Ví dụ 1: Để tính các yếu tố của một tam giác ABC ta có thể đưa bài toán về dạng
mô hình mạng tính toán (M, F) với:
• M = {A, B, C, a, b, c, S, p, R, r, h
a
, h
b
, h
c
,…} là tập tất cả các thuộc tính
của tam giác ABC
• F = {f

3
:
BC sin
b
sin
c
=
o f
4
:
CA sin
c
sin
a
=
o f
5
: p = (a+b+c) /2
o f
6
: S = a.h
a
/ 2
o f
7
: S = b.h
b
/ 2
o f
8

,
f
2
, , f
k
} đượ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ố 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 = {f
1
, f
2
, , f
k
} 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ệ f
1
, f
2
, , f
k
xuất phát từ giả thiết A.
Nhận xét : Trong định nghĩa trên, nếu đặt : A
0
= A, A
1

A
, chúng ta có định lý sau đây:
Định lý 3.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ý 3.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 = {f
1
, f
2
, , f
k
} ⊆ 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ệ {f
1
, f
2

tìm dần những biến thuộc M có thể tính được từ A; cuối cùng sẽ được bao đóng của
A.
Thuật toán 3.1: tìm bao đóng của tập A ⊆ M :
Nhập :Mạng tính toán (M,F),
A ⊆ M.
Xuất :
A
Thuật toán :
1. B ← A;
2. Repeat
B1 ← B;
for f ∈ F do
HVTH: Lê Minh Trí (CH1101148) Trang 14
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác
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;
3.2/ Lời giải của bài toán:
Ở trên ta đã nêu lên cách xác định tính giải được của bài toán. Tiếp theo, ta sẽ
trình bày cách tìm ra lời giải cho bài toán A → B trên mạng tính toán (M,F).
Mệnh đề : 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

if B ⊆ A then
Solution_found ← true;
Chọn ra một f ∈ F chưa xem xét;
end; { while }
Until Solution_found or (A = Aold);
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;
Định lý 3.3: Cho D={f
1
, f
2
, , f
m
} là một lời giải của bài toán A → B. Ứng với
mỗi i=1, ,m đặt D
i
= {f
1
, f
2
, , f
i
}, D
0
= ∅. Ta xây dựng một họ các dãy con S
m
, S
m-

i
} ∪ S
i+1
nếu D
i-1
∪ S
i+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) S
m
⊆ S
m-1
⊆ ⊆ S
2
⊆ S
1
.
(2) D
i-1
∪ S
i
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 S
i
thì D
i-1

} là một lời giải then
D ← D \ {f
i
};
3. D là một lời giải tốt.
Trong thuật toán 3.3 có sử dụng việc kiểm tra một dãy quan hệ có phải là lời giải
hay không. Việc kiểm tra nầy có thể được thực hiện nhờ thuật toán sau đây:
Thuật toán kiểm tra lời giải cho 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ệ {f
1
, f
2
, , f
m
}.
Xuất : thông tin cho biết {f
1
, f
2
, , f
m
} có phải là 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
đối xứng and Card (M(f
i
) \ A) ≤ r(f

tính ra mà không có sử dụng cho các bước tính phía sau. Do đó, chúng ta cần xem
xét quá trình áp dụng các quan hệ trong lời giải và chỉ tính toán các biến thật sự cần
thiết cho quá trình giải theo lời giải. Định lý sau đây cho ta một sự phân tích tập các
biến được xác định theo lời giải và trên cơ sở đó có thể xây dựng quá trình tính toán
các biến để giải quyết bài toán.
Định lý 3.4: Cho {f
1
, f
2
, , f
m
} là một lời giải tốt cho bài toán A → B trên một
mạng tính toán (M,F). Đặt :
A
0
= A, A
i
= {f
1
, f
2
, , f
i
}(A), với mọi i=1, ,m.
Khi đó có một dãy {B
0
, B
1
, , B
m-1

 Thuật toán đơn giản dễ cài đặt cho nên việc bảo trì hệ thống tương đối
đơn giản.
 Có thể xây dựng hệ thống suy luận và giải thích một cách rõ ràng và dễ
hiểu.
4.2/ Nhược điểm:
 Không giải được các tri thức phức tạp, lưu trữ khó khăn và nhập nhằng
khi quản lý.
 Xây dựng lại thuật toán là một việc tương đối khó khăn dẫn đến việc phải
bảo trì lại toàn bộ hệ thống.
5/ Mở rộng mạng tính toán:
Mạng tính toán với các biến có giá trị đơn và mạng các đối tượng tính toán có
thể được sử dụng để biểu diễn tri thức trong nhiều miền tri thức. Các thành phần tri
thức cơ bản bao gồm một tập hợp các biến có giá trị đơn và một tập các quan hệ
tính toán thông qua các biến đó. Tuy nhiên, có những miền tri thức dựa trên một tập
hợp các yếu tố, trong đó mỗi phần tử có thể là một biến giá trị đơn hoặc một hàm.
Ví dụ, trong các tri thức về dòng điện xoay chiều cường độ dòng điện xoay chiều
i(t) và hiệu điện thế u(t) là các hàm. Nó đòi hỏi phải xem xét một số phần mở rộng
như mở rộng mạng tính toán và mở rộng mạng các đối tượng tính toán.
Định nghĩa: Một mở rộng của mạng tính toán là cấu trúc (M,R) bao gồm 2 tập
sau:
 M = M
v
∪ M
f
là một tập hợp các thuộc tính hoặc các yếu tố với giá trị đơn
hoặc giá trị hàm. Trong đó M
v
= {x
v1
, x

. Mỗi luật r có dạng r: u(r) → v(r), với u(r) là giả
thuyết của r và v(r) là kết luận của r. Một luật cũng là một trong bốn trường
hợp dưới đây:
o Trường hợp 1: r ∈ R
vv
. Trong đó u(r) ⊆ M
v
và v(r) ⊆ M
v
.
o Trường hợp 2: r ∈ R
fv
. Trong đó u(r) ⊆ M
f
và v(r) ⊆ M
v
.
HVTH: Lê Minh Trí (CH1101148) Trang 18
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác
o Trường hợp 3: r ∈ R
vf
. Trong đó u(r) ⊆ M
v
và v(r) ⊆ M
f
.
o Trường hợp 4: r ∈ R
fvf
. Trong đó u(r) ⊆ M, u(r)∩ M
f

Hình 2: Giao diện chính của chương trình.
2/ Một số đoạn mã chính để xây dựng chương trình:
2.1/ Mở đề bài: Mở file text để nhập thông số đầu vào.
HVTH: Lê Minh Trí (CH1101148) Trang 19
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác

// Mở đề bài
private void MoDeBai()
{
openFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog.Title = "Mở đề bài";
openFileDialog.FileName = "";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
DocDeBai(openFileDialog.FileName);
}
}
// Đọc đề bài
private void DocDeBai(string fileName)
{
string[] temp;
string[] debai = File.ReadAllText(fileName).Split('\n');
temp = debai[0].Split(':');
txtGiaThuyet.Text = temp[1];
temp = debai[1].Split(':');
txtKetLuan.Text = temp[1];
}
2.2/ Lưu đề bài: Lưu các thông số đầu vào thành file text

//Lưu đề bài

2.3/ Xuất kết quả: Xuất kết quả thành file text sau khi tìm luật
//Xuất kết quả thành file text
private void LuuKetQua()
{
if (!rtxOutput.Text.Equals(""))
{
saveFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog.Title = "Lưu kết quả";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
rtxOutput.SaveFile(saveFileDialog.FileName,
RichTextBoxStreamType.UnicodePlainText);
MessageBox.Show("Bạn đã lưu kết quả thành công.", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
MessageBox.Show("Chưa có kết quả cần lưu.", "Lỗi lưu kết quả",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
2.4/ Kết nối C# với Maple:
//Mở Maple
public void Open()
{
argv[0] = "maple";
argv[1] = "-A2";
cb.textCallBack = cbText;
cb.errorCallBack = cbError;
cb.statusCallBack = cbStatus;
HVTH: Lê Minh Trí (CH1101148) Trang 21

// Giải quyết bài toán và trả về kết kết quả
public void Calculate(string query)
{
myResult = "";
try
{
MapleEngine.EvalMapleStatement(kv,
Encoding.ASCII.GetBytes("plotsetup(maplet):"));
}
catch
{
HVTH: Lê Minh Trí (CH1101148) Trang 22
Ứng dụng mô hình mạng tính toán để giải bài toán tam giác
MessageBox.Show("Maple chưa được mở");
return;
}
try
{
if (query.Substring(0, 1) == "?")
query = "help(" + query.Substring(1, 0) + ");";
}
catch
{
MessageBox.Show("Lỗi do user input không hợp lệ");
return;
}
try
{
IntPtr val = MapleEngine.EvalMapleStatement(kv,
Encoding.ASCII.GetBytes(query));

[{S, ha}, a, S = (1/2)*a*ha],
[{S, hb}, b, S = (1/2)*b*hb],
[{S, hc}, c, S = (1/2)*c*hc],
[{a, ha}, S, S = (1/2)*a*ha],
[{b, hb}, S, S = (1/2)*b*hb],
[{c, hc}, S, S = (1/2)*c*hc],
[{A, B, a}, b, b = a*sin(B)/sin(A)],
[{A, B, b}, a, b = a*sin(B)/sin(A)],
[{A, C, a}, c, c = a*sin(C)/sin(A)],
[{A, C, c}, a, c = a*sin(C)/sin(A)],
[{A, a, b}, B, b = a*sin(B)/sin(A)],
[{A, a, c}, C, c = a*sin(C)/sin(A)],
[{B, C, b}, c, b = c*sin(B)/sin(C)],
[{B, C, c}, b, b = c*sin(B)/sin(C)],
[{B, a, b}, A, b = a*sin(B)/sin(A)],
[{B, b, c}, C, b = c*sin(B)/sin(C)],
[{C, S, a}, b, S = (1/2)*a*b*sin(C)],
[{C, S, b}, a, S = (1/2)*a*b*sin(C)],
[{C, a, b}, S, S = (1/2)*a*b*sin(C)],
[{C, a, c}, A, c = a*sin(C)/sin(A)],
[{C, b, c}, B, b = c*sin(B)/sin(C)],
[{P, a, b}, c, P = (a+b+c)*(1/2)],
[{P, a, c}, b, P = (a+b+c)*(1/2)],
[{P, b, c}, a, P = (a+b+c)*(1/2)],
[{S, a, b}, C, S = (1/2)*a*b*sin(C)],
[{a, b, c}, P, P = (a+b+c)*(1/2)],
[{P, S, a, b}, c, S = sqrt(P*(P-a)*(P-b)*(P-c))],
[{P, S, a, c}, b, S = sqrt(P*(P-a)*(P-b)*(P-c))],
[{P, S, b, c}, a, S = sqrt(P*(P-a)*(P-b)*(P-c))],
[{P, a, b, c}, S, S = sqrt(P*(P-a)*(P-b)*(P-c))],

LoaiThua := proc (newVknown)
local i, Vknowntemp;
Vknowntemp := newVknown;
for i to nops(Findhas) do
if not Findhas[i] = null then
if `in`(Findhas[i][2], Vknowntemp) then
Vknowntemp := `union`(Vknowntemp,
Findhas[i][1]);
Findhas[i] := null;
Vknowntemp := LoaiThua(Vknowntemp);
end if;
end if;
end do;
return Vknowntemp;
end proc;
SimplifyValues := proc ()
local tamValues, k;
tamValues := {};
for k in Values do
if `subset`(indets(k), Vknown) then
tamValues := [op(tamValues), k]
end if;
end do;
HVTH: Lê Minh Trí (CH1101148) Trang 25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status