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

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

Đ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

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 [...]... 13 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 [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 ... 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 ) Với ti = card ( M( f i+1 ) ) – r( f i+1 ) – card ( M(... 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 - 11 luận) Nhấn... phân tích lời giả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,... lời giải sẽ có giao diện như sau: 12 3 Phụ lục A1> Quan 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> Quan 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á trình . 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, . 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. – 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

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