Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 97 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
97
Dung lượng
6,34 MB
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 KHOA KHOA HỌC MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC Đề tài: MƠ HÌNH MẠNG TÍNH TỐN MỞ RỘNG VỚI THÀNH PHẦN TRI THỨC HÀM Giảng viên hướng dẫn : PGS TS Đỗ Văn Nhơn Sinh viên thực : Nguyễn Huệ Minh 07520227 Lớp : CNTN02 Khóa : 2007 - 2011 Tp HCM, Tháng năm 2011 Lời cảm ơn Đầu tiên, em xin chân thành cảm ơn thầy Đỗ Văn Nhơn dù bận rộn thầy tận tình hướng dẫn, tạo điều kiện thuận lợi để em hoàn thành tốt đề tài Qua hướng dẫn thầy, em học phương pháp nghiên cứu khoa học, thái độ tinh thần làm việc nghiêm túc Em xin chân thành cảm ơn thầy cô trường Đại Học Công Nghệ Thông Tin, đặc biệt khoa Khoa học máy tính giảng dạy, truyền đạt cho em kiến thức bổ ích suốt q trình học tập trường, làm tảng để em thực tốt luận văn, làm hành trang cho em bước vào đời Xin gửi lời cảm ơn đến gia đình, cảm ơn anh chị, bạn bè ủng hộ, giúp đỡ động viên em thời gian học tập nghiên cứu Thành phố Hồ Chí Minh, ngày 10 tháng năm 2011 Sinh viên Nguyễn Huệ Minh Mục lục Chƣơng 1: TỔNG QUAN 1.1 Giới thiệu 1.2 Tình hình nghiên cứu nước 1.3 Mục tiêu nghiên cứu Chƣơng 2: MẠNG TÍNH TỐN MỞ RỘNG 2.1 Khái niệm hàm 2.2 Mô hình mạng tính tốn: 2.3 Mơ hình mạng suy diễn tính tốn mở rộng (EMSD): 11 2.4 Mơ hình mạng tính tốn mở rộng: 19 2.5 Tổ chức lưu trữ 29 2.6 Mơ hình tốn thuật giải 31 2.6.1 Mơ hình tốn 31 2.6.2 Các vấn đề mơ hình mạng tính tốn mở rộng: 33 2.6.3 Thuật giải : 35 Chƣơng 3: ỨNG DỤNG M ẠNG TÍNH TỐN MỞ RỘNG 45 3.1 Các mạch điện bản: 45 3.1.1 Mạch RLC nối tiếp: 45 3.1.2 Mạch điện có điện trở thuần: 47 3.1.3 Mạch điện có tụ điện: 48 3.1.4 Mạch điện có cuộn cảm thuần: 48 3.2 Một số toán cụ thể: 49 Chƣơng 4: CÀI ĐẶT - THỬ NGHIỆM 60 4.1 Công cụ lập trình: 60 4.2 Cài đặt mạng tính tốn mở rộng: 61 4.3 Giao diện chương trình demo 69 4.4 Kết thử nghiệm 72 4.5 So sánh mơ hình ECN mơ hình EMSD 72 Chƣơng 5: KẾT LUẬN 74 5.1 Các kết đạt 74 5.2 Hạn chế hướng phát triển 75 PHỤ LỤC A 77 KIẾN THỨC ĐIỆN XOAY CHIỀU 77 PHỤ LỤC B 82 NGÔN NGỮ F# 82 TÀI LIỆU THAM KHẢO 91 Chương 1: Tổng quan CHƢƠNG TỔNG QUAN 1.1 Giới thiệu Xây dựng mơ hình biểu diễn xử lý tri thức vấn đề khơng mẻ chúng mối quan tâm hàng đầu khoa học Trí tuệ Nhân Tạo Hệ rõ rệt nghiên cứu hệ chuyên gia hệ giải toán tự động cơng bố tạp chí quốc tế triển khai vào thực tế Để xây dựng hệ thống này, người ta phải thiết kế sở tri thức động suy diễn để giải vấn đề dựa tri thức cho hệ thống Chất lượng hoạt động hệ thống phụ thuộc lớn vào kiến thức có, kiến thức thực tế người đa dạng phong phú việc nghiên cứu phát triển phương pháp biểu diễn tri thức chế suy luận dựa tri thức có ý nghĩa lớn lý thuyết ứng dụng khoa học máy tính nói chung khoa học Trí Tuệ Nhân Tạo nói riêng, đặc biệt hệ giải tốn dựa tri thức Ngồi ra, hệ thống giải tốn dùng giáo dục đòi hỏi lời giải phù hợp với cách suy nghĩ cách viết bình thường người Điều gây thách thức lớn cho việc nghiên cứu mơ hình tri thức để giải toán tự động mà chúng cho lời giải tự nhiên gần giống với người 1.2 Tình hình nghiên cứu nƣớc Nhu cầu dịch vụ hỗ trợ cho việc học tập, đặc biệt phần mềm hỗ trợ giải toán tự động, điều tất yếu trình phát triển giáo dục đại Hiện có nhiều cơng ty nước nước sản xuất phần mềm hỗ trợ giải toán tự động SVTH : Nguyễn Huệ Minh Chương 1: Tổng quan Trong nước, có nhiều công ty hoạt động nghiên cứu sản xuất sản phẩm công nghệ thông tin cho giáo dục công ty công nghệ tin học nhà trường, trung tâm phát triển công nghệ thông tin, trung tâm phát triển khoa học công nghệ trẻ Các sản phẩm thường tập trung vào hệ quản lý giáo dục, phần mềm giúp tự học kiểm tra hình thức sách điện tử với số tính bổ sung tương đối đơn giản Về kết nghiên cứu, có nhiều luận văn, luận án nghiên cứu mơ hình biểu diễn tri thức thuật giải mô tư người phạm vi định [1], [3], [6], [7], [8], [9], [10] Tuy nhiên kết nghiên cứu chưa đầu tư phát triển để tạo sản phẩm cơng nghệ thực tế Ngồi nước, có nhiều nghiên cứu cho phương pháp giải tốn máy tính phương pháp Wu, phương pháp “diện tích”, phương pháp “thể tích”, phương pháp vector… [1] Các phương pháp tập trung vào việc tìm đặc trưng mặt tốn học lý thuyết đại số trừu tượng cho khía cạnh liên hệ thể loại kiện hình học định để dựa vào thực chứng minh tự động Điều làm cho phương pháp trở nên nặng nề tính tốn tốn học trừu tượng khó cài đặt máy tính Nhưng hạn chế lớn phương pháp nầy việc xây dựng hệ giải tốn thơng minh chúng khơng cho ta mơ hình biểu diễn tri thức tốt giúp xây dựng sở tri thức, suy diễn thành phần khác hệ thống Các phần mềm tính tốn tốn học MAPLE, MATHEMATICA, MATHCAD cung cấp đơn vị chương trình giúp thực thao tác tính tốn riêng lẻ mà chưa có giải tốn dựa sở tri thức thật [7] Người sử dụng phần mềm cần giải vấn đề giải tốn tính tốn tam giác hay tứ giác, giải tốn khảo sát hàm số họ phải thiết kế qui trình giải tốn dạng thuật giải tự cài đặt thuật giải dựa vào ngơn ngữ lập trình cho phần mềm Các kết nghiên cứu cho số mơ hình biểu diễn tri thức, để giải toán tự động cho lời giải tương tự người, tiêu biểu : SVTH : Nguyễn Huệ Minh Chương 1: Tổng quan - Mơ hình tri thức đối tượng tính tốn COKB (Computational Object Knowledge Base) [1] ứng dụng để hỗ trợ giải toán tự động cho miền tri thức điện chiều, hình học tốn khác - Mơ hình mở rộng mơ hình COKB ECOKB [9] ứng dụng để hỗ trợ giải toán tự động cho miền tri thức hình học phẳng Trên mơ hình tri thức trên, số thuật giải xây dựng để cài đặt thủ tục giải toán dựa kiến thức sở tri thức Các mơ hình biểu diễn tri thức sử dụng để giải nhiều vấn đề nêu phần Tuy nhiên điểm cần lưu ý mơ hình COKB ECOKB thiết kế dựa mơ hình mạng tính tốn (gọi tắt MTT) mạng suy diễn tính tốn [1] Mơ hình mạng tính tốn gồm thành phần : (M,F) với tập M tập biến số thực, F tập quan hệ tính tốn MTT giải vấn đề thường gặp sau: thực tính tốn hay suy diễn yếu tố cần thiết từ số yếu tố biết Trong [7] đề xuất mô hình mạng suy diễn tính tốn mở rộng (viết tắt EMSD)với thành phần (M,R) mở rộng phạm vi giải vấn đề để giải toán yêu cầu tính tốn biến hàm tốn điện xoay chiều, dao động học, chuyển động học … Tuy mơ hình [7] giải tốn u cầu tính tốn biến hàm tồn nhiều vấn đề: Các quan hệ tính tốn chuyển thành dạng luật dẫn để biểu diễn Dẫn đến công thức phải cài đặt thành nhiều quan hệ tính tốn Điều gây khó khăn cho việc thêm tri thức, đồng thời làm tính tự nhiên cơng thức Vì dụ: Trong kiến thức điện xoay chiều, mối quan hệ tần số tần số góc biểu diễn công thức : ω = 2**f Theo mơ hình EMSD, biểu diễn thành luật suy diễn rvv1: f ω; SVTH : Nguyễn Huệ Minh Chương 1: Tổng quan rvv2: ω f; Tương ứng với quan hệ tính tốn sau: f1: ω = 2**f ; f2: f = ω/2* ; Hoặc công thức định luật Ohm cho đoạn mạch RLC : I = U/Z Ta phải biểu diễn thành luật suy diễn rvv1: U, Z I; rvv2: I, Z U; rvv3: U, I Z; Tương ứng với quan hệ tính tốn fvv1: I = U/Z //định luật Ohm fvv2: U = I*Z fvv3: Z = U/I Mỗi bước giải áp dụng luật suy diễn hay cơng thức khơng thể giải toán mà phải áp dụng kết hợp phương trình để tạo thành hệ phương trình Trong thực tế có nhiều tốn yêu cầu phải kết hợp nhiều phương trình bước giải Không thể biểu diễn hàm số tổng qt tốn học Mơ hình mạng tính toán mở rộng [5] biểu diễn biến thời gian t cho tất quan hệ tính tốn Ví dụ: Cho hàm số mơ hình chưa thể biểu diễn Với mục đich nâng cao khả biểu diễn tri thức ứng dụng MTT khắc phục vấn đề EMSD, tác giả đề xuất mơ hình mạng tính tốn mở rộng (gọi tắt ECN) gồm thành phần: (M,F,CF) Với M tập biến thực biến hàm, F tập quan hệ tính tốn trị quan hệ tính tốn hàm CF tập lớp hàm số tương ứng với SVTH : Nguyễn Huệ Minh Chương 1: Tổng quan tập quan hệ tính tốn hàm Mơ hình ECN nói phát triển tự nhiên hợp lý với ý nghĩa ứng dụng thiết thực nghiên cứu kỹ thuật phương pháp biểu diễn tri thức Dựa theo mơ hình ECN mơ hình COKB, ECOKB phát triển thành mơ hình giải nhiều toán thực tế toán điện xoay chiều, dao động học, chuyển động học… 1.3 Mục tiêu nghiên cứu Như nói phần trên, tốn u cầu phải tính tốn yếu tố có giá trị hàm phổ biến Vì luận văn cố gắng phát triển mơ hình mạng tính tốn [1] thành mơ hình mạng tính tốn mở rộng ECN mà thành phần giá trị thực giá trị hàm Do đó, thuật giải để tìm lời giải mạng tính tốn mở rộng phức tạp Vì lý này, mục tiêu luận văn là: Nghiên cứu mơ hình biểu diễn tri thức cho việc thiết kế sở tri thức cho hệ hỗ trợ giải toán tự động dựa tri thức phát triển mô hình mạng tính tốn [1] thành mơ hình mạng tính tốn mở rộng với thành phần hay biến mang giá trị thực hàm Đồng thời khắc phục nhược điểm mơ hình EMSD [7] để đưa mơ hình thuật giải có đặc điểm sau: Các quan hệ tính tốn để dạng cơng thức thay chuyển thành dạng luật dẫn để biểu diễn Giữ tính tự nhiên tri thức người, giúp chuyên gia dễ dàng thêm tri thức Mỗi bước giải áp dụng nhiều cơng thức phương trình có giải tốn mà phải áp dụng kết hợp phương trình để tạo thành hệ phương trình Biểu diễn tường minh hàm số với thành phần biến đa dạng công thức Cài đặt áp dụng mơ hình mạng tính tốn mở rộng với miền tri thức điện xoay chiều chương trình phổ thơng SVTH : Nguyễn Huệ Minh Phụ lục A: Kiến thức điện xoay chiều Cường độ hiệu dụng dòng điện xoay chiều cường độ dòng điện khơng đổi, cho hai dòng điện qua điện trở R khoảng thời gian đủ dài nhiệt lượng tỏa + Cường độ hiệu dụng điện áp hiệu dụng: I = I0 U ; U= 2 + Ampe kế vơn kế đo cường độ dòng điện điện áp xoay chiều dựa vào tác dụng nhiệt dòng điện nên gọi ampe kế nhiệt vôn kế nhiệt, số chúng cường độ hiệu dụng điện áp hiệu dụng dòng điện xoay chiều + Khi tính tốn, đo lường, mạch điện xoay chiều, chủ yếu sử dụng giá trị hiệu dụng * Các loại đoạn mạch xoay chiều + Mạch điện có điện trở R u R pha với i, u i : I U U I R R Lưu ý: Điện trở R cho dòng điện khơng đổi qua có I U R + Mạch điện có cuộn cảm L: u L nhanh pha i , u i : I U U I ZL ZL với ZL = L ( ) cảm kháng Lưu ý: Cuộn cảm L cho dòng điện khơng đổi qua hồn tồn (khơng cản trở) + Mạch điện có tụ điện C: uC chậm pha i với ZC U U , u i : I I 2 ZC ZC ( ) dung kháng C Lưu ý: Tụ điện C khơng cho dòng điện khơng đổi qua (cản trở hoàn toàn) SVTH : Nguyễn Huệ Minh 78 Phụ lục A: Kiến thức điện xoay chiều Chú ý: Với mạch chứa L, chứa C, chứa LC không tiêu thụ công suất ( P ) u i I 0cos t u U0cos( t+ ) Neá u u U0cos t i I 0cos( t- ) Nế Vớ i u i u i i u + Mạch điện RLC mắc nối tiếp Tổng trở mạch Z R2 (ZL ZC )2 ( ) R • Với : R : điện trở C L • ZL = L ( ) : Cảm kháng ZC ( ) : Dung kháng C Độ lệch pha dòng điện hiệu điện : tan Z L ZC ; R sin Z L ZC ; Z cos R với Z 2 + Khi ZL > ZC hay > u nhanh pha i LC + Khi ZL < ZC hay < u chậm pha i LC + Khi ZL = ZC hay = u pha với i LC Z ZC Độ lệch pha u i xác định theo biểu thức: tan = L = R Cường độ hiệu dụng xác định theo định luật Ôm: I = L C R U Z * Công suất dòng điện xoay chiều + Cơng suất dòng điện xoay chiều: P = UIcos = I2R SVTH : Nguyễn Huệ Minh 79 Phụ lục A: Kiến thức điện xoay chiều + Hệ số công suất: cos = R Z Các dạng toán Dạng : Viết biểu thức u i Bƣớc : Xác định đại lượng : cảm kháng , dung kháng , tổng trở mạch ZL = L ( ) ZC ( ) C Z R2 (ZL ZC )2 ( ) Bƣớc : Sử dụng định luật Ôm biểu thức hiệu dụng để xác định I0 U0 Ehd I0 E0 U hd (V ); U0 ; Z I U0 I hd (V ); I0 ( A) U Z Bƣớc : Xác định độ lệch pha u i tan Z L ZC ; R sin Z L ZC ; Z cos R Z với 2 Biểu thức liên hệ : φ=φu - φi (rad) Dạng 2: Xác định giá trị phần tử R, L, C Xác định đại lƣợng : cảm kháng , dung kháng , tổng trở mạch ZL = L ( ) Z R2 (ZL ZC )2 ZC ( ) C ( ) Sử dụng định luật Ôm biểu thức hiệu dụng để xác định I0 U0 Ehd E0 (V ); SVTH : Nguyễn Huệ Minh U hd U0 (V ); I hd I0 ( A) 80 Phụ lục A: Kiến thức điện xoay chiều I0 U0 ; Z I U Z Cơng thức P dòng điện xoay chiều (cosφ: hệ số cơng suất) (chỉ có R tiêu thụ điện năng) Hệ số công suất Nhiệt lƣợng tỏa mạch (trên R) SVTH : Nguyễn Huệ Minh 81 Phụ lục B: Ngôn ngữ F# PHỤ LỤC B NGƠN NGỮ F# Giới thiệu ngơn ngữ F# Lập trình hàm (Functional Programming - FP) hướng tiếp cận tốt để giải nhiều toán gai góc, nhiên “hàm” lại khơng phù hợp để lập trình với mục đích thơng dụng Do đó, ngơn ngữ FP chấp nhận đặc tính lai tạp từ lập trình khai báo (imperative) hướng đối tượng (Object Oriented - OO), để vừa giữ tư tưởng FP truyền thống, lại vừa tích hợp tính cần thiết để viết chương trình dễ dàng F# ngôn ngữ phát triển theo đường [17] Một vài ngơn ngữ lập trình hàm phổ biến OCaml, Haskell, LISP Scheme sử dụng runtime riêng nó, dẫn đến thiếu tương thích đưa vào hệ thống lớn F# ngôn ngữ sử dụng NET runtime, kết hợp nhuần nhuyễn ba hình mẫu lập trình Với F#, bạn chọn lựa hình mẫu tốt để giải vấn đề theo cách hiệu Bạn dùng FP bạn người tuân theo chủ nghĩa túy Tuy nhiên bạn dễ dàng kết hợp phong cách “hàm”, “khai bào” OO chương trình để khai thác mạnh hình mẫu Giống nhiều ngơn ngữ lập trình hàm khác, F# ngơn ngữ “strongly-typed” Điểm đặc biệt tự động định kiểu theo suy luận, nên lập trình viên khơng cần bỏ thời gian khai báo kiểu liệu (ngoại trừ trường hợp có nhập nhằng) Hơn nữa, F# tích hợp mật thiết với NET Framework Base Class Library (BCL) Việc sử dụng BCL F# đơi đơn giản C# hay VB.NET F# xây dựng dựa mơ hình Ocaml (một ngơn ngữ thành cơng việc kết hợp OO FP), hiệu chỉnh mở rộng để khớp với NET Nó liên kết chặt chẽ với NET cho phép bạn làm tất NET F# biên dịch tất cài đặt theo đặc tả Common Language Infrastructure (CLI), file thực thi SVTH : Nguyễn Huệ Minh 82 Phụ lục B: Ngôn ngữ F# tạo chạy tất môi trường có CLI Điều có nghĩa F# khơng bị giới hạn Windows, mà chạy Linux, Apple Mac OS X OpenBSD Bộ biên dịch F# phân phối mặc định Visual Studio 2010, cung cấp miễn phí dạng plugin Visual Studio 2008 Nó hỗ trợ IntelliSense, tự động hoàn chỉnh kiểm tra lỗi cú pháp, đưa tooltip kiểu ngầm định cho biểu thức Đây tính hữu ích giúp bạn sớm quen cách lập trình với F# F# lần cài đặt tiến sĩ Don Syme làm việc Microsoft Research (MSR) Cambridge Hiện tại, tiếp quản Microsoft, tiếp tục phát triển nhóm chuyên gia Cambridge Redmond Mặc dù có nhiều ngơn ngữ FP khác chạy NET, F# xem thống chất lượng cài đặt mối quan hệ mật thiết nó, NET Visual Studio Có thể nói rằng, tại, khơng có ngơn ngữ NET dễ sử dụng linh hoạt F# Cú pháp F# ngôn ngữ suy diễn kiểu liệu an toàn kiểu liệu, hỗ trợ nhiều hình mẫu lập trình khác như: mệnh lệnh, hàm, hướng đối tượng Nó thiết kế ngơn ngữ lập trình hàm chủ đạo cho NET framework, ảnh hưởng ngôn ngữ OCaml F# cho phép tuỳ chọn cú pháp lightweight(đối lập với cú pháp verbose) thị #light thị biên dịch cho phép sử dụng cú pháp đơn giản thụt dòng (giống cách làm Python) Ở chế độ mặc định, tuỳ chọn tắt để tương thích với ngơn ngữ dòng OCaml SVTH : Nguyễn Huệ Minh 83 Phụ lục B: Ngôn ngữ F# Những điểm tuyệt vời F# nói hết khn khổ báo cáo Sau em xem lướt qua tính F# Chúng ta xem chi tiết [8], [9] [10] Kiểu liệu Cũng ngôn ngữ NET, F# hỗ trợ kiểu liệu unit, int, float, char, string, bool … khả định nghĩa kiểu liệu F# hỗ trợ thêm kiểu số học: bigint, bignum bigint kiểu số nguyên lớn bất kỳ, bignum kiểu số lớn Ngoài ra, F# cung cấp thêm kiểu liệu kết hợp tuple, record union Điều làm cho F# trở nên linh động ngôn ngữ NET khác Chúng hữu ích cho việc lập trình tính tốn Các kiểu liệu khác Sử dụng tuple phương pháp nhanh chóng thuận tiện cho việc đưa giá trị nhóm Các giá trị phân chia dấu “,” giá trị khơng thiết có kiểu liệu giống Trong ví dụ bên định nghĩa tuple với thành phần FirstName, LastName, Age Ví dụ: let FirstName,LastName, Age = "Minh", "Nguyen Hue", 15 Chúng ta truy xuất thành phần hay nhóm thành phần tuple Ví dụ: Muốn biết giá trị LastName ta dùng LastName;; Muốn biết giá trị FirstName Age FirstName, Age;; SVTH : Nguyễn Huệ Minh 84 Phụ lục B: Ngơn ngữ F# Chúng ta định nghĩa tên cho tuple điều giúp ta ràng buộc kiểu liệu tuple Ngồi sử dụng tuple để trả giá trị hàm, điều tránh việc dùng tham chiếu làm tính chất khơng có hiệu ứng phụ lập trình hàm Ví dụ: type Fullname = string * string let fullNameToSting (x: Fullname) = let first, second = x in first + " " + second Kiểu record kiểu liệu có tên, nhóm liệu gọi field có kiểu khơng thiết giống Kiểu record tương tự kiểu tuple bắt buộc phải gán tên cho record trường record phải định tên khai báo kiểu Ví dụ: type Organization = { boss: string; lackeys: string list } let rainbow = { boss = "Jeffrey"; lackeys = ["Zippy"; "George"; "Bungle"] } Trong ví dụ rainbow tự động hiểu kiểu Organization Để truy xuất trường record Ta dùng: . Ví dụ: rainbow.boss Kiểu union gọi sum types discriminated unions phương pháp mang liệu lại với chúng có ý nghĩa cấu trúc khác Để định nghĩa kiểu union, định nghĩa kiểu record, ta dùng từ khóa type theo sau tên kiểu dấu Sau định nghĩa contructor Với SVTH : Nguyễn Huệ Minh 85 Phụ lục B: Ngôn ngữ F# contructor định nghĩa bao gồm tên contructor, từ khóa of, kiểu liệu Tóm lại, ta định nghĩa union qua cấu trúc sau: type = | of | of | of Ví dụ: type Volume = | Liter of float | UsPint of float | ImperialPint of float let vol1 = Liter 2.5 let vol2 = UsPint 2.5 let vol3 = ImperialPint 2.5 Unit of measure kiểu thú vị F# Chúng giúp ta tính tốn giá trị với kiểu đơn vị đo lường khác Để định nghĩa kiểu “A” cho cường độ dòng điện, ta định nghĩa sau []type A Mặc định Unit of measure làm việc với kiểu dấu chấm động Ví dụ để viết I=2 A ta viết sau let I = 2.0 Chúng ta thực phép tính tốn đơn vị let I1 = 2.0 let I2 = 5.5 let I = I1 + I2 SVTH : Nguyễn Huệ Minh 86 Phụ lục B: Ngơn ngữ F# Như nói phần giới thiệu, F# hỗ trợ tốt cho việc lập trình hướng đối tượng Chi tiết phần ta xem [8], [9] [10] Hàm Trong F#, Hàm xác định việc dùng từ khóa fun Các đối số cách với khoảng trắng phân tách với thân hàm dùng kí tự -> Ví dụ sau cho ta thấy hàm nhận đối số trả kết phép cộng số này: fun x y -> x + y Để đặt tên cho hàm cho hàm ta dùng cách sau let add = fun x y -> x + y let add x y = x + y Khi khai báo trên, mặc định F# biết add tên hàm, x y đối số hàm add Tốn tử Như ngơn ngữ khác , F# cung cấp cho ta toán tử định nghĩa sẵn cung cấp phương pháp định nghĩa tốn tử F# có loại toán tử khác nhau: - Toán tử prefix : toán tử mà toán hạng phải đứng sau tốn tử - Tốn tử infix: tốn tử đứng toán tử thứ thứ hai Khơng giống hàm, tốn tử khơng có giá trị, khơng thể truyền giá trị tham số Tuy nhiên, ta thêm cặp dấu ngoặc đơn bao quanh tốn tử xem hàm Khi sử dụng chúng trường hợp sau: - Xem toán tử hàm tham số đứng sau toán tử: SVTH : Nguyễn Huệ Minh 87 Phụ lục B: Ngôn ngữ F# let result = (+) 1 - Chúng ta dùng để định nghĩa hàm khác Vì dụ tốn tử “+” dùng để định nghĩa hàm add sau: let add = (+) F# cung cấp cho việc định nghĩa toán tử Các ký hiệu sau dùng cho việc định nghĩa tốn tử: !$%&*+-./?@^|~ Ví dụ: Ta định nghĩa toán tử +* let ( +* ) a b = (a + b) * a * b Thì +* = F# cung cấp tốn tử hữu ích cho lập trình tốn tử : |>, >>, … Lệnh điều khiển Cũng tương tự ngôn ngữ C, C++, C#, F# cung cấp lệnh điều khiển với cấu trúc sau: if … then … else … So khớp mẫu (Pattern Matching) Phép so khớp mẫu nhìn lệnh switch C# Tuy nhiên chúng hỗ trợ nhiều tính thế, ta nhìn thấy qua ví dụ tính số fibonaci Trong C#: static in Fib(int n) { switch (n) { case 0: return 0; case 1: return 1; SVTH : Nguyễn Huệ Minh 88 Phụ lục B: Ngôn ngữ F# default: return Fib(n-1)+Fib(n-2); } } Tuy nhiên, F# ta xử lý trường hợp n < let rec Fib(n) = function | n when n failwith "Gia tri phai khong am!" | | as n -> n da thuc hien binding | n -> Fib(n-1)+ Fib(n-2) Để định nghĩa hàm sau { //O day ta ta định nghĩa F# sau let f x= match x with | x when x x+1 | -> | _ -> x*x Kí hiệu “_” hiểu tất trường hợp lại ngồi trường hợp Các cấu trúc liệu Array (mảng) List (danh sách) Set (tập hợp) Hash Table (bảng băm) Map Sequence (chuỗi) F# cung cấp nhiều cấu trúc liệu cho việc lập trình tính tốn ví dụ List, Array, Set, Hash Table… Ngồi cung cấp việc khởi tạo giá trị List, Array Set đơn giản thuận tiện thông qua biểu thức “mơ tả tính chất” Ví dụ: SVTH : Nguyễn Huệ Minh 89 Phụ lục B: Ngôn ngữ F# Danh sách A số chia hết cho khoảng từ -> 100 let A = [for i in 100 if i%3=0 then yield i] Ngồi có cách thuận tiện sau let A =[3 100] Trong số bước tăng 10 Meta Language Việc cung cấp khả tạo nên Bộ phân tích (Parser) làm tăng thêm điểm cộng so với ngơn ngữ lập trình tính tốn khác Điều giúp ta linh động việc định nghĩa ngôn ngữ quy ước cho mơ hình tri thức Chúng ta xem chi tiết phần [9] [10] 11 F# tƣơng thích tốt NET Vì xây dựng NET việc chuyển thành phần từ C# sang F# hay F# sang VB điều đơn giản F# tương thích tốt với công nghệ NET khác WPF, ASP.NET MVC, LinQ, ADO.NET… Giúp phát triển phần mềm nhanh với tính linh động cao SVTH : Nguyễn Huệ Minh 90 TÀI LIỆU THAM KHẢO [1] TS Đỗ Văn Nhơn Xây dựng hệ tính tốn thơng minh Luận án tiến sĩ - Đại Học Khoa Học Tự Nhiên TP.HCM, 2001 [2] GS.TSKH.Hoàng Kiếm & TS.Đỗ Văn Nhơn Mở rộng phát triển mơ hình tri thức đối tượng tính tốn Kỷ yếu Hội thảo Quốc Gia Một số vấn đề chọn lọc CNTT, NXB Khoa học kỹ thuật, 2005 [3] GS.TSKH.Hoàng Kiếm & TS.Đỗ Văn Nhơn, Mạng tính tốn ứng dụng Tạp chí Tin học điều khiển học, T.13, S.3, tr 10-20, 1997 [4] Nhon Van Do Computational Networks for Knowledge Representation 2009 [5] Hồng Kiếm, Đỗ Văn Nhơn, Đỗ Phúc Giáo trình Các hệ sở tri thức NXB Đại học Quốc gia TPHCM, 2006 [6] TS Đỗ Văn Nhơn Kiến trúc hệ giải tập cho người học kỹ thuật thiết kế Tạp chí Khoa học giáo dục kỹ thuật Đại học Sư phạm Kỹ thuật Tp.Hồ Chí Minh, Số (4) phần 34, 2007 [7] Phạm Hữu Tâm Xây dựng mơ hình biểu diễn tri thức thiết kế hệ hỗ trợ giải toán điện xoay chiều chương trình THPT Luận văn thạc sĩ - Đại học Công Nghệ Thông Tin, 2009 [8] Đỗ Nhàn Một mơ hình Ontology Ứng dụng Luận văn thạc sĩ – Đại học Khoa học Tự nhiên TPHCM, 2005 [9] Đinh Xuân Thọ Nghiên cứu phát triển mô hình tri thức dạng hàm Luận văn cao học, 2007 [10] Hồ Nhật Tiến Nghiên cứu mơ hình biểu diễn tri thức ứng dụng giải toán điện chiều Luận văn cao học, 2008 SVTH : Nguyễn Huệ Minh 91 [11] Do Van Nhon A Program for studying and Solving problems in Plane Geometry Proceedings of International Conference on Artificial Intelligence 2000, Las Vegas, USA [12] Do Van Nhon A system that supports studying knowledge and solving of analytic geometry problems 16 th World Computer Congress 2000, Proceedings of Conference on Education Uses of Information and Communication Technologies, Beijjing, China [13] M.B.Monagan, K.O.Geddes, K.M.Heal, G.Labahn, S.M.Vorkoetter, J.McCarron, P.DeMarco Maple 12 Advanced Programming Guide, Waterloo Maple Inc, 2008 [14] Nhon Do Van, Extensive Computational Networks and Applying in an Educational software Wuhan, P R China, August 22-23, 2009 [15] Nhon Do Van, Tam Pham Huu, The Extensive C-Objects Network And Applying in an Educational Software Wuhan, P R China, August 22-23, 2009 [16] Jon Harrop, F# for scientists John Wiley & Sons, Inc., Hoboken, New Jersey, 2008 [17] Robert Pickering, Beginning F# Apress, 2009 [18] Don Syme, Adam Granicz and Antonio Cisternino Expert F# 2.0 Apress, 2010 [19] Vũ Quang, Lương Dun Bình, Tơ Giang, Ngơ Quốc Qnh, Nguyễn Thượng Chung, Trần Chí Minh Vật lý 12 NXB Giáo Dục, 2008 [20] Vũ Quang, Lương Dun Bình, Tơ Giang, Ngô Quốc Quýnh Bài tập Vật lý 12 NXB Giáo Dục, 2008 SVTH : Nguyễn Huệ Minh 92 ... cứu mơ hình biểu diễn tri thức cho việc thiết kế sở tri thức cho hệ hỗ trợ giải toán tự động dựa tri thức phát tri n mơ hình mạng tính tốn [1] thành mơ hình mạng tính tốn mở rộng với thành phần. .. 2: Mạng tính tốn mở rộng thành phần tri thức chứa giá trị hàm Trong [7] đề mơ hình giải vấn đề này, xem tiếp phần sau 2.3 Mơ hình mạng suy diễn tính tốn mở rộng (EMSD): Mơ hình mạng suy diễn tính. .. mơ hình mạng tính tốn mở rộng (ECN) với vấn đề liên quan 2.1 Khái niệm hàm Mô hình mạng tính tốn mở rộng đề xuất luận văn có liên quan đến tri thức hàm đề cập đến khái niệm hàm Khái niệm hàm