Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
113,27 KB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN -o0o - BÁO CÁO TIỂU LUẬN LẬP TRÌNH SYMBOLIC ĐỀ TÀI: LẬP TRÌNH MAPLE CÀI ĐẶT BÀI TOÁN VẬT LÝ ĐIỆN MỘT CHIỀU VÀ PHẢN ỨNG HĨA HỌC Bộ Mơn : LẬP TRÌNH SYMBOLIC Giảng viên : PGS-TS ĐỖ VĂN NHƠN Học viên : NGUYỄN NGỌC TÚ Mã Số Học Viên : CH1101053 Lớp : CH CNTTQM - 06 TP Hồ Chí Minh, tháng 01 năm 2013 MỞ ĐẦU Có đơi lúc gặp vấn đề vơ khó khăn, địi hỏi nhiều suy nghĩ, cảm xúc, nghiên cứu Đơi có số vấn đề vận dụng kiến thức tìm hiểu, nghiên cứu để giải dễ dàng Tuy nhiên, số vấn đề khác lại địi hỏi phải có tư sáng tạo dựa kiến thức biết Việc vận dụng thành thạo cơng cụ trí tuệ nhân tạo việc giải vấn đề điều quan tâm Các cơng cụ trí tuệ nhân tạo chương trình “thơng minh” mức độ đó, có khả học hỏi, suy dẫn… giải vấn đề sở ngôn ngữ tự nhiên Maple cơng cụ trí tuệ nhân tạo sử dụng phổ biến nay, với khả biểu diễn vấn đề từ lĩnh vực phổ thông tốn học, vật lý, hóa học…cho đến phức tạp lập trình Ngồi ra, với Maplets cịn tạo giao diện người dùng tùy chon dễ dàng Lời cảm ơn Tôi xin chân thành cảm ơn giúp đỡ nhiệt tình thầy PGS.TS ĐỖ VĂN NHƠN suốt thời gian học q trình làm đồ án mơn học:”LẬP TRÌNH SYMBOLIC”, xin cảm ơn bạn khoa có nhiều đóng góp để tơi hồn thành mơn học Tuy nhiên thời gian hạn hẹp, hiểu biết chúng em môn học chưa sâu, đề tài nhiều thiếu sót, nhiều vấn đề chưa giải hồn chỉnh phù hợp với thực tế Vì vậy, tơi mong nhận đóng góp thầy bạn để chương trình hồn thiện Học viên thực Nguyễn Ngọc Tú MỤC LỤC A ĐẶT VẤN ĐỀ B GIỚI THIỆU MAPLE .2 C TRI THỨC ĐIỆN MỘT CHIỀU I Yêu cầu II Xây dựng mô hình tri thức .5 III Một vài thủ tục xây dựng chương trình .8 D BIỂU DIỄN TRI THỨC HÓA HỌC I Tổng quan cách biểu diễn tri thức hóa học lên mạng tính tốn II Tạo package hóa học thủ tục package .11 III Cách giải toán AB lọc lời giải tốt từ lời giải biết 15 IV.Maplet tạo ứng dụng giao diện Maple 18 E KẾT LUẬN 23 TÀI LIỆU THAM KHẢO 23 A ĐẶT VẤN ĐỀ Ngày vấn đề biểu diễn tri thức ngày trở nên quan trọng phần thiếu chun ngành khoa học máy tính nói riêng ngành cơng nghệ thơng tin nói chung Việc chương trình máy tính hỗ trợ làm việc thay người ngày trở nên nhu cầu cấp bách phải đáp ứng cách nhanh chóng triệt để Các chương trình giải tốn thơng minh ứng dụng mà đặc biệt quan tâm Vì tốn học xem cha đẻ khoa học Và việc tạo chương trình giải tốn thơng minh xác góp phần giúp cho người dễ dàng việc tính tốn giúp cải thiện hiệu cơng việc cách đáng kể Để tạo chương trình vậy, ngày hỗ trợ nhiều cơng cụ lập trình Riêng lĩnh vực biểu diễn tri thức đặc thù riêng mơn nên cơng cụ lập trình thơng thường khơng đáp ứng nhu cầu tính tốn mức độ khó thơng minh Vì có nhiều chương trình tạo cho mục dich Ngày hôm chúng tơi xin giới thiệu cơng cụ lập trình Maple ứng dụng cài đặt mạng đối tượng tính tốn hóa học dựa cơng cụ Maple này! B GIỚI THIỆU VỀ MAPLE Khái niệm Maple xuất phát từ họp vào tháng 11 năm 1980 Đại học Waterloo Những nhà nghiên cứu đại học muốn mua máy tính đủ mạnh để chạy Macsyma Thay vào đó, người ta định họ phát triển hệ thống đại số máy tính riêng để chạy máy tính có giá thành hợp lý Do đó, dự án bắt đầu với mục tiêu tạo hệ thống đại số hình thức mà nhà nghiên cứu sinh viên truy cập Sự phát triển Maple tiến hành nhanh, với phiên hạn chế xuất vào tháng 12 năm 1980 Những nhà nghiên cứu thử nghiệm loại bỏ nhiều ý tưởng khác để tạo hệ thống liên tục cải tiến Maple trình diễn hội nghị bắt đầu vào năm 1982 Đến cuối năm 1983, 50 trường đại học cài Maple máy họ Do số lượng hỗ trợ yêu cầu giấy phép lớn, vào năm 1984, nhóm nghiên cứu xếp với WATCOM Products Inc để cấp phép phân phối Maple Vào năm 1988, số lượng hỗ trợ ngày tăng, Waterloo Maple Inc thành lập Mục tiêu công ty quản lý phân phối phần mềm Cuối cùng, công ty phải mở phịng R&D nhiều phát triển cho Maple thực đến ngày Sự phát triển đáng kể Maple tiếp tục diễn rại phòng thí nghiệm trường đại học, bao gồm: Phịng thí nghiệm Tính tốn hình thức Đại học Waterloo; Trung tâm nghiên cứu Tính tốn hình thức Ontario Đại học Tây Ontario; phịng thí nghiệm khắp nơi giới Vào năm 1989, giao diện đồ họa người dùng Maple phát triển bao gồm 4.3 dành cho Macintosh Những phiên trước Maple gồm giao diện dòng lệnh với ngõ hai chiều Bản X11 Windows với giao diện tiếp bước vào năm 1980 với Maple V Vào năm 1999, với việc phát hành Maple 6, Maple đưa vào số Thư viện Số học NAG, mở rộng độ xác ngẫu nhiên Vào năm 2003, giao diện “chuẩn” giới thiệu Maple Giao diện viết chủ yếu Java (mặc dù có nhiều phần, luật cho việc gõ cơng thức tốn học, viết ngơn ngữ Maple) Giao diện Java bị phê phán chậm; phát triển thực sau, tài liệu Maple 11 documentation khuyến cáo giao diện (“cổ điển”) trước dành cho người với nhớ vật lý 500 MB Giao diện cổ điển khơng cịn bảo trì Giữa 1995 2005 Maple nhiều thị phần vào tay đối thủ có giao diện người dùng yếu Nhưng vào năm 2005, Maple 10 giới thiệu “chế độ văn bản” mới, phần giao diện chuẩn Tính chế độ phép toán đưa vào ngõ nhập hai chiều, xuất tương tự cơng thức sách Vào năm 2008, Maple 12 thêm tính năn giao diện người dùng giống Mathematica, gồm có kiểu trình bày theo mục đích đặc biệt, quản lý phần đầu cuối trang, so trùng mở đóng ngoặc, vùng thực tự động, mẫu hồn thành lệnh, kiểm tra cú pháp vùng tự động khởi tạo Những tính khác thêm để làm cho Maple dễ dùng hộp công cụ Maple Cho đến Maple phát triển qua nhiều phiên khác ngày hoàn thiện với tính cập nhật maple trở thành phần mềm tính tốn mạnh hỗ trợ nhiều việc tính tốn hình thức Với phần mềm Maple, có thể: + Thực tính tốn với khối lượng lớn, với thời gian nhanh độ xác cao + Sử dụng gói chuyên dụng Maple để giải tốn cụ thể như: vẽ đồ thị (gói plot), hình học giải tích (gói geometry), đại số tuyến tính (gói linalg), + Thiết kế đối tượng chiều + v.v C TRI THỨC ĐIỆN MỘT CHIỀU I Yêu cầu Xây dựng chương trình giải tốn điện chiều với đoạn mạch khơng có nguồn +Input : toán điện chiều +Output : Lời giải Dựa vào xây dựng nên mơ hình biểu diễn tri thức cho kiến thức điện chiều Cách thức tổ chức lưu trữ tri thức Xây dựng thuật giải mơ hình Từ xem xét thử xây dựng mơ hình chung cho tốn hay khơng ? II Xây dựng mơ hình tri thức Mỗi đoạn mạch biểu diễn dạng mạng tính tốn (V, F) : V tập thuộc tính cịn F tập biểu diễn quan hệ thuộc tính đoạn mạch Ở biểu diễn quan hệ định luật Ôm V = {U, R, I} F = {U = R*I, R = U/I, I = U/R} Đoạn mạch thành lập từ nhiều đoạn mạch có quan hệ nối tiếp song song khác Và biểu diễn dạng biểu thức : A = (V, F) Trong cơng thức danh sách bao gồm thành phần : +Biểu diễn quan hệ đoạn mạch nối tiếp hay song song thể thơng quan tốn tử +(nối tiếp) *(song song) +Biểu diễn đoạn mạch thành phần(tức đoạn mạch đoạn mạch lớn) Chẳng hạn ta biểu diễn file dienmotchieu.txt Variables X.U1 X.R1 X.I1 Endvariables Áp dụng định luật Ôm cho đoạn mạch X {X.I1,X.R1} {X.U1} "X.U1=X.I1*X.R1" Áp dụng định luật Ôm cho đoạn mạch X {X.U1,X.R1} {X.I1} "X.I1=X.U1/X.R1" Áp dụng định luật Ôm cho đoạn mạch X {X.U1,X.I1} {X.R1} "X.R1=X.U1/X.I1" Tương tự cho file nối tiếp song song biểu diễn tương tự X thay X1, X2 Với file nối tiếp : Variables X1X2.U, X1.U, X2.U X1X2.R, X1.R, X2.R X1X2.I, X1.I, X2.I Endvariables Relation 0: Áp dụng định luật Ôm cho đoạn mạch X1X2 {X1.U, X2.U} {X1X2.U} “X1X2.U =X1.U+X2.U” Relation 1: Áp dụng định luật Ôm cho đoạn mạch X1X2 {X1.I, X2.I} {X1X2.I} “X1X2.I=X1.I=X2.I” Relation 2: Áp dụng định luật Ôm cho đoạn mạch X1X2 {X1.R, X2.R} {X1X2.R} “X1X2.R=X1.R+X2.R” Với file song song: Variables 10 Ví dụ: variables H2 = "Khi Hidro" O2 = "Khi Oxi" endvariables Hàng bỏ trống Các hành biểu diễn - mối quan hệ chất mạng tính tốn theo cấu trúc sau: relation Mf = vf = exp = `Phương trình phản ứng` ví dụ: relation Mf = {Na,Cl2,NaCl} vf = {NaCl} exp = ` Na + Cl2 = 2NaCl` Chú ý: mối quan hệ có hàng trống ngăn cách 14 II TẠO PACKAGE HÓA HỌC VÀ CÁC THỦ TỤC TRONG PACKAGE Tạo Package Hóa Học: Nhằm thuận tiện q trình sử dụng để gọi thủ tục mà không cần phải lập trình lại từ đầu thủ tục, tạo package Hóa học Package tạo cách đơn giản thông qua thủ tục gọi hàm sau maple: :=table(); [thủ tục 1]:=proc() … end: [thủ tục 2]:=proc() … end: … [thủ tục n]:=proc() … end: save(tên Package, “dir/tên Package.m”); save(tên Package, “dir/Maple12/lib/tên Package.m”); Ví dụ: HoaHoc := table(): HoaHoc[ReadFile] := proc(filename::string) … end: save(HoaHoc,"C:/Hoa_Hoc/HoaHoc.m"); save(HoaHoc,"C:/Program Files/Maple 12/lib/HoaHoc.m"); 15 Các thủ tục Package Hóa Học: a HoaHoc[ReadFile] := proc(filename::string) • Filename: tên file chứa thơng tin quan hệ mạng tính tốn • Chức năng: đọc liệu file text trình bày quan hệ mạng hóa học • Xuất ra: danh sách gồm - Tên object - Danh sách variable - Danh sách quan hệ, quan hệ gồm + chuỗi dạng “relation ” + tập chất có quan hệ + tập chất điều chế quan hệ + ý nghĩa chất b HoaHoc[ResultSet]:=proc(F::list,A::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất • Chức năng: Tìm tập hợp chất tạo từ A (bao gồm A) • Xuất ra: tập hợp chất tạo từ A (gồm A) c HoaHoc[ResultRelate]:=proc(F::list,A::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất • Chức năng: Tìm danh sách quan hệ chất tạo từ A • Xuất ra: danh sách gồm - Các chất A - Các chất điều chế từ A 16 - Các quan hệ thể điều chế chất d HoaHoc[ResultFormula]:=proc(F::list,A::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất • Chức năng: Tìm tập hợp phương trình phản ứng từ A • Xuất ra: tập hợp phương trình phản ứng xảy từ A e HoaHoc[ResultB]:=proc(F::list,B::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất • Chức năng: Tìm danh sách quan hệ tạo chất ởB • Xuất ra: danh sách quan hệ tạo chất B f HoaHoc[TestAB]:=proc(F::list,A::set,B::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất đầu vào • B tập hợp chất cần điều chế • Chức năng: Kiểm tra tốn AB • Xuất ra: true: giải false: khơng giải g HoaHoc[SolutionAB]:=proc(F::list,A::set,B::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất đầu vào • B tập hợp chất cần điều chế • Chức năng: Tìm danh sách quan hệ chất tạo từ A điều chế B • Xuất ra: danh sách gồm - true: giải false: không giải - danh sách quan hệ chất tạo từ A điều chế B 17 h HoaHoc[SolutionForAB]:=proc(F::list,A::set,B::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất đầu vào • B tập hợp chất cần điều chế • Chức năng: Tìm tập hợp phương trình phản ứng tạo từ A để điều chế B • Xuất ra: tập hợp phương trình phản ứng tạo nên từ A để điều chế B i HoaHoc[CompleteSolAB]:=proc(F::list,A::set,B::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất đầu vào • B tập hợp chất cần điều chế • Chức năng: Tìm danh sách quan hệ chất tạo từ A điều chế B (danh sách tốt nhất) • Xuất ra: danh sách gồm - true: giải false: không giải - danh sách quan hệ chất tạo từ A điều chế B (danh sách tốt nhất) j HoaHoc[CompleteForAB]:=proc(F::list,A::set,B::set) • F danh sách quan hệ (thành phần [3] ReadFile) • A tập hợp chất đầu vào • B tập hợp chất cần điều chế • Chức năng: Tìm chuỗi phản ứng ngắn tạo B từ A • Xuất ra: tập hợp phương trình phản ứng tạo nên từ A để điều chế B (chuỗi phản ứng ngắn nhất) 18 CÁCH GIẢI BẢI TOÁN AB VÀ LỌC LỜI GIẢI TỐT TỪ LỜI III GIẢI ĐÃ BIẾT Giải tốn A B: Thuật tốn: a • Nhập : Mạng đối tượng tính tốn (O,F), với tập biến M, tập giả thiết A ⊆ M, tập biến cần tính B ⊆ M • Xuất : lời giải cho tốn A → B • Thuật tốn : 1.Solution ← empty; if B ⊆ A then begin Solution_found ← true goto 5; end else Solution_found ← false; Repeat Aold ← A; Chọn f ∈ F chưa xem xét (trong bước lần nầy); while not Solution_found and (chọn f) begin if ( f đối xứng and < Card (M(f) \ A) ≤ r(f) ) or ( f không đối xứng and ∅ ≠ M(f) \ A ⊆ v(f) ) then begin A ← f(A); Solution ← Solution ∪ {f}; end; if B ⊆ A then Solution_found ← true; Chọn f ∈ F chưa xem xét (trong bước lần nầy); end; { while } Until Solution_found or (A = Aold); 19 if not Solution_found then begin Chọn Oi ∈ O (theo thứ tự ưu tiên nói trên) cho Oi(A) ≠ A; if (chọn Oi) then begin A ← Oi(A); Solution ← Solution ∪ { Oi }; if (B ⊆ A) then begin Solution_found ← true; goto 5; end; else goto 3; end; end; if not Solution_found then Bài tốn khơng có lời giải; else Solution lời giải; Giải tốn A B mạng tính tốn hóa học: - Đối với mạng tính tốn hóa học, mối quan hệ thường không đối xứng với nhau, ta xem khơng đối xứng q trình giải tốn A B ta bỏ bớt số bước Cụ thể ta không cần kiểm tra xem có đối xứng khơng, xét trường hợp khơng đối xứng (∅ ≠ M(f) \ A ⊆ v(f)) - Giải tốn thơng qua thủ tục: HoaHoc[SolutionAB]:=proc(F::list,A::set,B::set) Lọc lời giải tốt từ lời giải biết: Nhập : Mạng đối tượng tính tốn (O,F), 20 lời giải {t1, t2, , tm} toán A→ B Xuất : lời giải tốt cho toán A → B Thuật toán : D ← {t1, t2, , tm}; for i=m downto if D \ {ti} lời giải then D ← D \ {ti}; D lời giải tốt Kiểm tra lời giải cho toán: Nhập : Mạng đối tượng tính tốn (O,F), tốn A→ B, dãy {t1, t2, , tm} ⊆ F ∪ O Xuất : thông tin cho biết {t1, t2, , tm} có phải lời giải tốn A→ B hay khơng Thuật tốn : for i=1 to m if (ti áp dụng A) then A ← ti (A); if A ⊇ B then {t1, t2, , tm} lời giải else {t1, t2, , tm} không lời giải; 21 IV MAPLETS VÀ TẠO ỨNG DỤNG GIAO DIỆN TRONG MAPLE Cách sử dụng maplets: Để tạo ứng dụng với giao diện maple sử dụng package Maplets có sẵn Maple Để sử dụng elements Maplets Button, Menu… sử dụng thủ tục gọi sau: with(Maplets[Elements]); Sau khởi tạo đối tượng giao diện Button, TextField… thông qua thủ tục khởi tạo Ví dụ để tạo button nhãn OK button nhãn cancel gọi thủ tục sau: maplet := Maplet(["Select one:", [Button("OK", Shutdown("true")), Button("Cancel", Shutdown())]]) Tuy nhiên với thủ tục chưa hiển thị giao diện, cần gọi thủ tục hiển thị sau: result := Maplets[Display](maplet); Ta có giao diện: Để biết thêm thủ tục khởi tạo đối tượng elements khác maplet bấm ctrl+F1 giao diện Maple, khung search đánh Maplets Ứng dụng maplets ứng dụng hóa học: a Giao diện: 22 b Các thành phần chức năng: bao gồm i TextField 1: nhập chất ban đầu, có tooltip (“chú ý chất nằm dấu {}”) lưu chất ban đầu A ii TextField 2: nhập chất cần điều chế, có tooltip giống TextFiled lưu chất cần điều chế B iii Button OK: click vào giải toán AB, lời giải phương trình phản ứng, giao diện lời giải sau: iv Button Cancel: thoát khỏi ứng dụng 23 v Button Dieu che tu A: click vào giải toán điều chế chất từ A, lời giải tập chất điều chế từ A, giao diện sau: 24 vi Button Cac chat: click vào hiển thị danh sách chất có mạng tính tốn, giao diện sau: 25 vii Button Quan he: click vao hiển thị danh sách quan hệ mạng tính tốn, giao dien nhu sau: 26 E KẾT LUẬN Bài báo cáo trình bày mạng tính tốn hóa học cách biểu diễn maple cách giải toán A suy B… cuối cách sử dung maplets để tạo ứng dụng giao diện Maple Kết thực nghiệm cho thấy ứng dụng chạy tốt, giải toán AB với chất A,B có mạng tính tốn Trên bản, báo cáo trình bày đầy đủ vấn đề gặp phải trình trình bày mạng tính tốn sử dụng cơng cụ maple, nhiên q trình làm việc cịn có thiếu sót cần cải thiện việc tạo ứng dụng giao diện chưa đẹp, số element chưa sử dụng ứng dụng hóa học,… Hướng phát triển báo cáo tạo ứng dụng đẹp, than thiện, dễ dùng giải nhiều tốn khác hóa học khơng dừng lại tốn AB 27 TÀI LIỆU THAM KHẢO [1] 1995, Do Van Nhon, Luận văn Mang Tinh toan & Ung dung [2].Mapsoft a division of WaterLoo Maple Inc, Maple User Manual [3].Blog http://maplevn2008.wordpress.com/ [4].Lập trình tính tốn hình thức, http://ltttht.ptvuong.com/ 28 ... giải số tốn hóa học Các thành phần mạng tính tốn hóa học thường chất hóa học, mối quan hệ chất hóa học thơng qua phương trình phản ứng Có nhiều cách để biểu diễn mạng tính tốn hóa học nhiên làm... nhiều chương trình tạo cho mục dich Ngày hôm xin giới thiệu cơng cụ lập trình Maple ứng dụng cài đặt mạng đối tượng tính tốn hóa học dựa cơng cụ Maple này! B GIỚI THIỆU VỀ MAPLE Khái niệm Maple xuất... tính tốn hóa học cách phù hợp dễ sử dụng trình giải vấn đề hóa học điều cần quan tâm Tổng quan cách biểu diễn mạng tính tốn hóa học lên Maple: Để biều diễn mạng tính tốn hóa học lên maple, trước