Tải bản đầy đủ (.docx) (14 trang)

Tiểu luận Lập trình Symbolic Mạng tính toán – Giải toán tam giác

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (270.43 KB, 14 trang )

Lập trình Symbolic
Mạng nh toán – Giải toán tam giác
Giảng viên:PGS.TS Đỗ Văn Nhơn
2013
Trần Nguyên Phong
MSHV: CH1101028
MSSHV: CH1101028
Lập trình Symbolic
Mạng tính toán
2
LỜI CẢM ƠN
Em xin chân thành gửi lời cảm ơn đến thầy PGS.TS Đỗ Văn Nhơn đã dành nhiều thời
gian quý báu để truyền đạt cho lớp CH CNTT K6 những kiến thức quý giá về lập trình
Symbolic. Từ những kiến thức về lập trình Symbolic và yêu cầu vận dụng kiến thức phổ
thông vào thực tế đã thôi thúc em thực hiện tiểu luận “Giải toán tam giác bằng mạng tính
toán”.
Ngoài ra, em cũng xin chân thành cảm ơn các bạn bè, anh chị, những người đã thảo
luận và đóng góp ý kiến, động viên, giúp đỡ trong suốt quá trình làm tiểu luận. Tuy nhiên,
trong quá trình làm tiểu luận không thể tránh khỏi những sai sót nên rất mong nhận được
sự đóng góp nhiệt tình từ thầy và các bạn.
Học viên thực hiện
Trần Nguyên Phong
CH1101028 – lớp CH CNTT K6
2
Giảng Viên: PGS.TS Đỗ Văn Nhơn Trần Nguyên Phong – CH1101028
Lập trình Symbolic
Mạng tính toán
3
Mục lục
Trang
1. Mạng tính toán và các thuật giải 3


1.1 Mô hình mạng tính toán 3
1.2 Vấn đề trên mạng tính toán 3
1.3 Quá trình tính toán 4
1.3.1 Quá trình tìm lời giải trên mạng tính toán 4
1.3.2 Quá trình tìm lời giải tốt từ lời giải đã biết 5
1.3.3 Kiểm tra lời giải 6
1.3.4 Phân tích lời giải từ lời giải đã biết 6
2. Ứng dụng và cài đặt 8
2.1 Ứng dụng giải toán tam giác 8
2.2 Cài đặt thử nghiệm 8
3. Phụ lục 11
3.1 Quan hệ đối xứng 11
3.2 Quan hệ không đối xứng 11
3.3 Định lý về quá trình phân tích lời giải 11
4. Tài liệu tham khảo 12
3
Giảng Viên: PGS.TS Đỗ Văn Nhơn Trần Nguyên Phong – CH1101028
Lập trình Symbolic
Mạng tính toán
4
1. Mạng tính toán và các thuật gi

i
1.1 Mô hình 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ề
vấn đề tính toán và được áp dụng một cách có hiệu quả để giải một số 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à các quan hệ có thể cài đặt và sử
dụng cho việc tính toán.
Mạng tính toán là một mạng gồm có một tập các biến và một tập các quan hệ dùng để
tính toán giữa các biến.

M = {x1, x2, … , xn}
F = {f1, f2, … , fm}
Đối với mỗi f F, ký hiệu M(f) là tập các biến có liên hệ trong quan hệ f.
1.2 Các 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. Các vấn đề trên mạng tính toán bao gồm: [5]
- Vấn đề 1: 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, có thể xác đị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 ?
- Vấn đề 2: 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 ?
- Vấn đề 3: 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.
Trong đó, 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
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
đề.
4
Giảng Viên: PGS.TS Đỗ Văn Nhơn Trần Nguyên Phong – CH1101028
Lập trình Symbolic
Mạng tính toán
5
Định nghĩa về tính giải được của bài toán
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  nếu như ta lần lượt áp dụng các 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à một 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ứ là không thể bỏ bớt một số quan hệ torng 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. Trong đó, quá trình tìm lời giải cho bài toán khi 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.
Định nghĩa về dãy quan hệ trên mạng tính toán
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 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.
1.3 Quá trình tính toán
Các quá trình tính toán trên mạng tính toán xuất phát từ các vấn đề trên mạng tính toán ở
phần trên. Bao gồm 4 quá trình chính: quá trình tìm lời giải trên mạng tính toán, quá trình
tìm lời giải tốt từ 1 lời giải đã biết, quá trình kiểm tra lời giải cho bài toán và quá trình phân
tích quá trình phân tích lời giải từ lời giải đã biết.
1.3.1 Quá trình tìm lời giải trên mạng tính toán
Quá trình tìm lời giải trên mạng tính toán thực chất là việc “lan truyền” để mở rộng tập
giả thiết đến khi nào phủ được tập kết luận hay đã mở rộng đối với tất cả các quan hệ trên
mạng tính toán.
Nhập: Mạng tính toán (M, F) Tập giả thiết A ⊆ M
5
Giảng Viên: PGS.TS Đỗ Văn Nhơn Trần Nguyên Phong – CH1101028
Lập trình Symbolic
Mạng tính toán
6
Tập biến cần tính B ⊆ M. (tập kết luận)
Xuất: lời giải cho bài toán A  B (S)
Thuật toán:
S

{ } // lời giải của mạng tính toán

While not B

A do
Ffound

false
Sold

S // kiểm tra
For f in F do
if ( 0 < Card(M( f ) \ A ≤ r( f ) then
Ffound

True
Break
End
End for
if (Ffound = True ) then
S

S

{ f }
A

A

M( f )
End
If (S = Sold) Then

Dừng thuật toán (vì không tìm được quan hệ nào để mở rộng tập giả thiết)
End
End while
( Ký hiệu: Card(X) chỉ số phần tử của tập X và r(f) là hạng của quan hệ đối xứng f )
1.3.2 Quá trình tìm lời giải tốt từ lời giải đã biết
Quá trình tìm lời giải trên là quá trình mở rộng tập giả thiết nên trong quá trình mở
rộng sẽ nảy sinh một số bước thừa. Do đó, cần thu gọn lời giải trên thành một lời giải tốt
hơn. Mạng tính toán cung cấp thuật toán tìm lời giải tốt từ lời giải đã biết với cách thức
6
Giảng Viên: PGS.TS Đỗ Văn Nhơn Trần Nguyên Phong – CH1101028
Lập trình Symbolic
Mạng tính toán
7
tổng quát dành cho các quan hệ tổng quát (đối xứng hạng k, quan hệ không đối xứng).
Nhập: Mạng tính toán (M, F)
Lời giải { f1, f2, … , fm} của bài toán A  B
Xuất: lời giải tốt cho bài toán A  B
Thuật toán:
D

{ f1, f2, … , fm }.
For i = m down to 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.
1.3.3 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ệ {f1, f2, … , fm};
Xuất: thông tin cho biết {f1, f2, …, , fm} có phải là lời giải của bài toán A  B hay

không.
Thuật toán:
For i =1 to m do
If (fi đối xứng và Card( M( fi ) \ A ≤ r( fi ) ) then
A

A M(fi) End for
If B

A then
{ f1, f2, … , fm } là một lời giải
Else
{ f1, f2, … , fm } không là lời giải
1.3.4 Phân tích lời giải từ một lời giải đã biết
Quá trình phân tích lời giải sẽ giúp loại bỏ các biến tính toán thừa – biến tính toán
thừa là biến không được dùng cho các bước tính phía sau. Do đó, 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
7
Giảng Viên: PGS.TS Đỗ Văn Nhơn Trần Nguyên Phong – CH1101028
Lập trình Symbolic
Mạng tính toán
8
theo lời giải.
Dựa trên định lý về quá trình phân tích lời giải (phụ lục 3) sẽ có thủ tục phân tích lời
giải từ lời giải đã biết sau đây:
Nhập: Mạng tính toán (M, F)
Sol = { f1 , f2 , …, fm } là một lời giải tốt cho bài toán A  B
Xuất: Tập các biến được xác định theo lời giải.
Thuật toán:
G

t
1


A
kl
card(Sol) +1


B
kq

{ }
// lấy các biến từ các quan hệ trong tập lời giải
For i = 1 to card (Sol) M
i


M( Sol
i
)
End for
// quá trình mở rộng tập giả thiết
For i = 1 to card (Sol)
Gt
i+1


Gt
i



M
i
End for
// quá trình suy ngược về tập kết luận
For i = card( Sol ) to 1
Temp

(M
i
\ kl
i+1
)

Gt
i
kl
i


( kl
i+1
Gt
i
)

temp
End for
// quá trình tính các biến theo các lời giải

For i = 1 to card (Sol)
kq
i


kl
i+1
\ kl
i
End for
Return kq;
8
Giảng Viên: PGS.TS Đỗ Văn Nhơn Trần Nguyên Phong – CH1101028
Lập trình Symbolic
Mạng tính toán
9
9
Giảng Viên: PGS.TS Đỗ Văn Nhơn Trần Nguyên Phong – CH1101028
2. Ứng dụng và cài đặt
2.1 Ứng dụng giải toán tam giác
Ứng dụng được minh họa được sử dụng trong tiểu luận, liên quan đến phần “Giải toán
tam giác”.
Input:
1. Tập công thức
2. Tập giả thiết (chứa các biến đã biết)
Ví dụ: Đã biết các biến a, beta, delta
3. Tập kết luận (chứa các biến cần tìm)
Ví dụ: các biến cần tìm (S)
Output: là các bước tìm ra lời giải
2.2 Cài đặt thử nghiệm

Cài đặt chính về mạng tính toán (các bước giải) được thực hiện trên Maple, giao diện sử
dụng được cài đặt bằng C# (.Net).
Một số hình ảnh về giao diện chương trình và cách sử dụng
10
S = (1/2)*a*ha
S = (1/2)*b*hb
S = (1/2)*c*hc
S = (1/2)*a*b*sin(delta)
S = (1/2)*b*c*sin(alpha)
S = (1/2)*c*a*sin(beta)
S = sqrt(p*(p-a)*(p-b)*(p-c))
p = (a+b+c)*(1/2)
a/sin(alpha) = b/sin(beta)
a/sin(alpha) = c/sin(delta)
c/sin(delta) = b/sin(beta)
alpha+beta+delta = Pi
a*a = b*b + c*c - 2*cos(A)
b*b = a*a + c*c - 2*cos(B)
c*c = a*a + b*b - 2*cos(C)
Bước 1: từ công thức alpha+beta+delta = Pi
Suy ra: alpha
Bước 2: từ công thức a/sin(alpha) = b/sin(beta)
Suy ra: b
Bước 3: từ công thức S = 1/2*a*b*sin(delta)
Suy ra: S
- Lựa chọn ở phần “Toán tam giác” là hiện ra các công thức có sẵn liên quan đến giải
toán tam giác. Ngoài ra, có thể nhập thêm công thức ở các lĩnh vực khác bằng cách
chọn “Input Data” - nhập các công thức cần tính toán và nhấn nút Input.
- Sau khi nhập các công thức liên quan. Các biến của các công thức hiện ra ở phần
“Danh sách các biến”. Nhập vào các biến đã biết (Giả thiết) và các biến cần tìm (Kết

luận).
- Nhấn nút “Tìm lời giải” sẽ có giao diện như sau:
11
12
3. Phụ lục
A1> Q uan hệ

đ ối xứng [1]
Quan hệ đối xứng có hạng là 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> ).
A2> Q uan hệ không đối x ứ ng [1]
Quan hệ không đối xứng là 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 v(f).
A3> Đ ị

nh l

ý v ề

quá t

r ì

nh p hân t í

ch lời g i

ả i [2]
Cho {f1, f2, … , fm} 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
= {f1, f2, … , fi} (A), với mọi i = 1, … , m
Khi đó một dãy { B
0
, B
1
, … , B
m-1
, B
m
}, thỏa các điều kiện sau đây :
(1) B
m
= B
(2) B
i 
A
i
, với mọi i = 0, 1, , m
(3) Với mọi i = 1, … , m, {fi} là lời giải của bài toán B
i-1 
B
i
, nhưng không phải là
lời giải của bài
toán G  B
i
, trong đó G là một tập con thật sự tùy ý của B

i-1
.
Từ định lý trên, sẽ có định lý có quá trình tính toán các biến để giải toán A  B như sau:
Bước 1: tính các biến trong B
1
\ B
0
( áp dụng f
1
)
Bước 2: tính các biến trong B
2
\ B
1
( áp dụng f
2
)

Bước m: tính các biến trong tập B
m
\ B
m-1
( áp dụng f
m
)
Trong đó, B
i
được tính như sau:
B
i

= ( B
i+1

A
i
) A’
i
A’
i
= một tập con gồm max (0, t
i
) phần tử của tập hợp ( M(f
i+1
) \ B
i+1
) A
i
Với t
i
= card ( M( f
i+1
) ) – r( f
i+1
) – card ( M( f
i+1
) ∩ B
i+1
∩ A
i
)

13
4. Tài liệu tham khảo
[1]. Hoàng Kiếm, Đỗ Văn Nhơn, “Mạng tính toán và ứng dụng”, trang 3 – 4
[2]. Hoàng Kiếm, Đỗ Văn Nhơn, “Mạng tính toán và ứng dụng”, trang 7
[3]. Hoàng Kiếm, Đỗ Văn Nhơn, “Mạng tính toán và ứng dụng”, trang 1
[4]. Hoàng Kiếm, Đỗ Văn Nhơn, “Mạng tính toán và ứng dụng”, trang 6
[5]. Hoàng Kiếm, Đỗ Văn Nhơn, Đỗ Phúc, “Giáo trình các hệ cơ sở tri thức”, trang 98 -
100
14

×