Ứng dụng lập trình symbolic trong giải bài toán hình học tam giác

10 806 0
Ứng dụng lập trình symbolic trong giải bài toán hình học tam giác

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

Thông tin tài liệu

Trường Đại học Công Nghệ Thông Tin – TP. Hồ Chí Minh Ứng dụng lập trình symbolic trong giải bài toán hình học tam giác Lớp Cao học Khóa 06 Môn học: Lập trình Symbolic Hướng dẫn: PGS. TS. Đỗ Văn Nhơn Thực hiện: Nguyễn Hữu Việt Long Mã số: CH1101101 02-2012 Mục lục Mô hình mạng tính toán được ứng dụng nhiều trong những phần mềm hỗ trợ giải bài tập. Báo cáo xin trình bày một dạng ứng dụng của mô hình này trong giải quyết một số dạng toán đơn giản của hình học tam giác. Kỹ thuật lập trình symbolic dựa trên Maple được áp dụng nhằm đơn giản hóa quá trình tính toán. 1. Bài toán hình học tam giác Bài toán hình học tam giác đơn giản được phát biểu như sau: trong một tam giác, cho trước các giá trị của một vài yếu tố, thuộc tính và yêu cầu tính một vài yếu tố, thuộc tính khác. Bài toán hình học tam giác đơn giản sẽ có dạng A  B với A là tập hợp các giả thiết (bao gồm giá trị của các biến và các công thức liên hệ đơn giản giữa các biến), B là tập hợp các biến mục tiêu cần tính. Ví dụ: Cho một hình tam giác có góc A=PI/6 và góc B=2A. Tính góc C. Giả thiết: {A=PI/6; B=2A} Mục tiêu: {C} 2 2. Mô hình biểu diễn tri thức Tri thức để giải những bài toán hình học tam giác đơn giản ở đây là các công thức, đẳng thức trong tam giác (A + B + C = Pi; S = a.ha/2 …) Tri thức được tổ chức lưu trữ theo dạng file văn bản có cấu trúc như sau: TENTRITHUC ……(Chú thích, nếu có)… VARIABLES Begin …(Danh sách biến, mỗi biến 1 dòng)…. End ……(Chú thích, nếu có)… FORMULAS Begin ….(Danh sách hàm, mỗi hàm 1 dòng)…… End ……(Chú thích, nếu có)… Lưu ý: một số công thức có thể dùng phép biến đổi vế để tính một biến từ các biến còn lại nhưng một số công thức không thể làm được điều đó. 3 Hình 1: File văn bản tri thức tam giác Ta gọi những công thức có thể biến đổi vế để tính một biến bất kỳ từ các biến còn lại là công thức đối xứng (Symmetry). Ví dụ: A + B + C = Pi ta có thể tính A khi có B, C; ta có thể tính B khi có A, C; ta có thể tính C khi có A, B. Ta gọi những công thức chỉ có thể tính được duy nhất một biến từ các biến còn lại, không thể thực hiện các thao tác chuyển vế là công thức bất đối xứng (Asymmetry). Ví dụ: a = (b 2 + c 2 – 2bccos(A)) (1/2) là một công thức bất đối xứng vì chỉ có thể tính a khi có b, c, A. Không thể tính b, c hay góc A từ công thức này. 3. Suy diễn trên mạng tính toán Quá trình suy diễn trên mạng tính toán hình học tam giác được thực hiện bằng kỹ thuật lan truyền theo dạng suy diễn tiến. Về cơ bản, thuật giải tìm lời giải cho bài toán tam giác có dạng như sau: 4 + Biến với kiểu dữ liệu nhất định: Solution = []: là danh sách các công thức cần áp dụng để giải Fknown = []: là danh sách các biến đã biết B1: Solution:= []; Fknown:= H; B2: While (G không nằm trong map(x->lhs(x), Fknown) do 2.1 Tìm luật f thuộc Formula có thể áp dụng trên Fknown 2.2 if (không tìm được r) then Dừng: không tìm được lời giải 2.3 Thêm f vào Solution: Xác định biến mới sẽ tính ra: {View = V( f) – V( Fknown); Thay thế và giải: newfact := solve (Subs( Fknown, f), Vnew); Fknown: = Fknown union solve (Subs( Fknown, f), Vnew) End do; B3: Cho kết quả tìm được lời giải Solution Để kết quả lời giải được tốt, kỹ thuật tìm và loại bỏ các bước giải thừa được áp dụng nhằm tìm ra một lời giải tối ưu cho bài toán. Nguyên tắc loại bỏ bước giải thừa là áp dụng kỹ thuật lan truyền ngược. Từ các sự kiện mục tiêu, ta do ngược trên tập các công thức để suy ra tập sự kiện ban đầu. Trong quá trình dò tìm, ta đánh dấu các công thức được duyệt qua. Tập các công thức này chính là một lời giải tốt cho bài toán. 5 4. Ví dụ minh họa Ta xem xét một ví dụ sau: Cho tam giác ABC có cạnh a và 2 góc B, C được cho trước. Hãy tính diện tích tam giác ABC; Trong cơ sở tri thức, ta có: - Tập sự kiện: M = {A, B, C, a, b, c, S, p, r, R…} - Tập luật F = { f 1 : A + B + C = Pi; f 2 : )(sin b )(sin a BA = ; f 3 : )(sin b )(sin c BC = ; f 4 : )(sin c )(sin a CA = ;f 5 : p = (a+b+c)/2; f 6 : S = a.h a / 2;f 7 : S = b.h b / 2; f 8 : S = c.h c / 2; f 9 : S = a.b.sin(C) / 2; } Theo đề bài ta có giả thiết là : GT = {a, B, C}, và tập biến cần tính là KL = {S}. Áp dụng thuật toán tìm lời giải ta có một lời giải cho bài tính là dãy luật sau: {f 1 , f 2 , f 3 , f 5 , f 9 }. Xuất phát từ tập biến GT, lần lượt áp dụng các quan hệ trong lời giải ta có tập các biến được xác định mở rộng dần đến khi S được xác định : {a, B, C} 1 f  → {a, B, C, A} 2 f  → {a, B, C, A, b} 3 f  → {a, B, C, A, b, c} 5 f  → {a, B, C, A, b, c, p} 9 f  → {a, B, C, A, b, c, p, S}. Có thể nhận thấy rằng lời giải nầy không phải là lời giải tốt vì có bước tính toán thừa, chẳng hạn là f 5 . Thuật toán loại bỏ bước thừa sẽ lọc ra từ lời giải trên một lời giải tốt là {f 1 , f 2 , f 9 }: 6 {a, B, C} 1 f  → {a, B, C, α} 2 f  → {a, B, C, A, b} 9 f  → {a, B, C, A, b, S}. Theo lời giải này, ta có quá trình tính toán như sau : bước 1: tính A (áp dụng f 1 ). bước 2: tính b (áp dụng f 2 ). bước 3: tính S (áp dụng f 9 ). Quá trình tính toán (gồm 3 bước) này có thể được diễn đạt một cách rõ ràng trên sơ đồ mạng sau đây: Hình 2: Sơ đồ mạng tính toán 5. Triển khai 7 Thuật toán suy diễn tiến để giải toán tam giác được xây dựng một cách hình thức trên ngôn ngữ lập trình Maple. Sử dụng ngôn ngữ C# để xây dựng giao diện cũng nhưng tương tác với Maple. C# có nhiệm vụ đọc và phân tích dữ liệu bài toán và truyền tới Maple. Maple sẽ cho ra lời giải và C# sẽ biểu diễn lời giải lên trên giao diện Công cụ sử dụng: Microsoft Visual Studio 2010 và Maple 16.00 6. Giao diện và cách sử dụng Hình 3: Giao diện chương trình giải toán hình học tam giác Hướng dẫn sử dụng: 8 - Nút Nạp Tri thức: cho phép chọn file chứa tri thức để thực thi - DataGridView (Giả thiết + Mục tiêu): cho phép người dùng nhập bài toán. Lưu ý: Giả thiết phải có các biến trong danh sách biến, phải có giá trị hoặc là 1 hàm đối xứng (biết 1 số biến thì chắc chắn suy ra được biến còn lại) - Nút Giải: thực hiện tính toán để xuất kết quả ra richtextbox - Nút Cập nhật lại: cho phép người dùng nhập lại 1 bài toán khác. - Nút Giúp đỡ: chỉ dẫn và hướng dẫn 7. Kết luận và hướng phát triển So với việc phải sử dụng C# để viết tất cả các thủ tục và cấu trúc dữ liệu cho việc giải toán, việc áp dụng Maple vào đã giúp giảm thiểu thời gian triển khai, đơn giản hóa công việc lập trình. Hơn thế nữa, kỹ thuật lập trình tính toán hình thức trên Maple giúp gia tăng mức độ chính xác của quá trình tính toán. Đem lại hiệu quả cao. Trong tương lai, việc mở rộng triển khai áp dụng Maple trong các lĩnh vực tri thức khác sẽ có thể đem lại những phát triển đầy tiềm năng, đem lại nhiều lợi ích thiết thực. Tài liệu tham khảo 9 1) GS. TSKH. Hoàng Kiếm, ThS. Đinh Nguyễn Anh Dũng – Giáo trình Nhập môn Trí tuệ nhân tạo – Nhà xuất bản Đại học Quốc Gia Thành phố Hồ Chí Minh, 2008. 2) GS. TSKH. Hoàng Kiếm, PGS. TS. Đỗ Phúc, PGS. TS. Đỗ Văn Nhơn – Giáo trình Các hệ cơ sở tri thức – Nhà xuất bản Đại học Quốc Gia Thành phố Hồ Chí Minh, 2008 3) GSTS. Hoàng Kiếm, Đỗ Văn Nhơn – Mạng tính toán và ứng dụng – 1996. 10 . giản của hình học tam giác. Kỹ thuật lập trình symbolic dựa trên Maple được áp dụng nhằm đơn giản hóa quá trình tính toán. 1. Bài toán hình học tam giác Bài toán hình học tam giác đơn giản được. Trường Đại học Công Nghệ Thông Tin – TP. Hồ Chí Minh Ứng dụng lập trình symbolic trong giải bài toán hình học tam giác Lớp Cao học Khóa 06 Môn học: Lập trình Symbolic Hướng dẫn: PGS hình mạng tính toán được ứng dụng nhiều trong những phần mềm hỗ trợ giải bài tập. Báo cáo xin trình bày một dạng ứng dụng của mô hình này trong giải quyết một số dạng toán đơn giản của hình học

Ngày đăng: 10/04/2015, 01:34

Từ khóa liên quan

Mục lục

  • 1. Bài toán hình học tam giác

  • 2. Mô hình biểu diễn tri thức

  • 3. Suy diễn trên mạng tính toán

  • 4. Ví dụ minh họa

  • 5. Triển khai

  • 6. Giao diện và cách sử dụng

  • 7. Kết luận và hướng phát triển

  • Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan