1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

13 585 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 144,05 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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?. Trong đó, bài toán xác định B từ A trên mạng tính toán M, F được

Trang 1

Lập trình Symbolic

Mạng tính toán – Giải toán tam giác Giảng viên:PGS.TS Đỗ Văn Nhơn

Trần Nguyên Phong MSHV: CH1101028 MSSHV: CH1101028

Trang 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

Trang 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

Trang 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

đề

Đị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,

Trang 5

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

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:

Trang 6

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 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:

Trang 7

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 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.

Trang 8

Thuật toán:

Gt1  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) Mi  M( Soli)

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  (Mi \ kl i+1 ) Gt i

kli  ( kli+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)

kqi  kl i+1 \ kl i

End for

Return kq;

Trang 9

Ứ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

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

Trang 10

- 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:

Trang 12

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: A0 = A, Ai = {f1, f2, … , fi} (A), với mọi i = 1, … , m

Khi đó một dãy { B0, B1, … , Bm-1, Bm }, thỏa các điều kiện sau đây :

(1) Bm = B

(2) Bi  Ai, 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 Bi-1  Bi, nhưng không phải là lời giải của bài toán G  Bi, trong đó G là một tập con thật sự tùy ý của Bi-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 B1 \ B0 ( áp dụng f1 )

Bước 2: tính các biến trong B2 \ B1 ( áp dụng f2 )

Bước m: tính các biến trong tập Bm \ Bm-1 ( áp dụng fm )

Trong đó, Bi được tính như sau:

Bi = ( Bi+1 Ai ) A’i

A’i = một tập con gồm max (0, ti) phần tử của tập hợp ( M(fi+1) \ Bi+1 ) Ai

Với ti = card ( M( f i+1 ) ) – r( f i+1 ) – card ( M( f i+1 )  Bi+1  Ai )

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

Trang 13

[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

Ngày đăng: 10/04/2015, 00:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w