TÌM HIỂU LẬP TRÌNH SYBOLIC BỘ THƯ VIỆN SYMPY TRONG TÍNH TOÁN ĐẠI SỐ TRÊN MÁY TÍNH

20 1.1K 2
TÌM HIỂU LẬP TRÌNH SYBOLIC BỘ THƯ VIỆN SYMPY TRONG TÍNH TOÁN ĐẠI SỐ TRÊN MÁY TÍNH

Đ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

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên MSHV: CH1301102 TP HCM, Tháng 03 năm 2014 MÔN: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN TÌM HIỂU LẬP TRÌNH SYBOLIC BỘ THƯ VIỆN SYMPY TRONG TÍNH TOÁN ĐẠI SỐ TRÊN MÁY TÍNH MỤC LỤC 2 DANH MỤC HÌNH, BẢNG 3 GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên PHẦN 1: MỞ ĐẦU Ngày nay, với sự phổ biến của máy tính điện tử cùng với sự bùng nổ về thông tin và nhu cầu khai thác dữ liệu ngày càng cao trong nhiều lĩnh vực khác nhau như: kinh tế, xã hội, y tế, giáo dục, … Đồng thời, nhu cầu về các hệ thống có khả năng tổng hợp thông tin và vận dụng sự hiểu biết của con người đưa ra những chỉ định, khuyến cáo, … đã được đặt ra với sự ra đời của công nghệ tri thức. Từ đó, công nghệ tri thức được nghiên cứu nhằm đưa ra các mô hình tích lũy tri thức (mô hình biểu diễn tri thức) của chuyên gia trên máy tính dưới dạng tập luật, tạo ra các hệ thống có khả năng tư duy và suy nghĩ như con người, có khả năng suy luận đưa ra những khuyến cáo, giải pháp tối ưu cho người dùng, đồng thời giúp con người nâng cao bản thân. Việc lập luận trên dữ liệu và tri thức đã và đang mang lại cho con người những thành công ngày càng tăng trong việc xử lý dữ liệu. Hiện nay, các ngành công nghệ tri thức đang phát triển mạnh mẽ với nhiều hệ thống phục vụ trong nhiều cơ quan, xí nghiệp. Song song đó, các phương pháp suy diễn đã được nghiên cứu nhằm đảm bảo khả năng giải quyết vấn đề trên các mô hình biểu diễn tri thức. Cùng với sự phát triển của các mô hình biểu diễn tri thức, các phương pháp suy diễn hiện rất đa dạng và phong phú và hầu hết là ở dưới dạng mô hình hoặc giải thuật mô phỏng và được cụ thể hóa ứng với mỗi trường hợp ứng dụng thực tế. Hiện nay, nhu cầu xây dựng các hệ chuyên gia ngày càng cao, đặc biệt, trong lĩnh vực giáo dục các phương pháp suy diễn đòi hỏi khả năng tính toán trên các dạng hàm, đa thức, giải phương trình,… với các biến và tham số không cố định. Tuy nhiên, nếu sử dụng các ngôn ngữ lập trình thuần túy để giải quyết các bài toán trên là hết sức khó khăn. Từ những nhu cầu trên, các công cụ lập trình Symbolic đã ra đời và giải quyết khối lượng lớn các xử lý tính toán, nhất là tính toán symbolic như: Maple, Mathematica, … Tuy nhiên, các hệ thống này được thương mại với giá bản quyền đắt đỏ là cản trở lớn cho các nhà phát triển các ứng dụng mã nguồn mở, các ứng dụng với quy mô nhỏ,… Trang 4 GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên Trong chuyên đề này sẽ nghiên cứu lập trình Symbolic với bộ thư viện mã nguồn mở Sympy trên nên ngôn ngữ Python. Trang 5 GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên PHẦN 2: KHÁI QUÁT VỀ BIỂU DIỄN TRI THỨC 2.1. TRI THỨC Tri thức (Knowledge) là sự “hiểu biết” của người trong một phạm vi, lĩnh vực nào đó; được xem xét theo các mục tiêu hay các vấn đề nhất định[1]. Ví dụ: − Tri thức về bệnh lao và khả năng điều trị bệnh lao của bác sĩ chuyên khoa Lao Phổi. − Tri thức về toán học đại số ở bậc trung học phổ thông và khả năng giải bải tập của học sinh cấp III. Tri thức là một hệ thống phức tạp, đa dạng và trừu tượng bao gồm nhiều thành tố với những mối liên hệ tác động qua lại [1] như: khái niệm, quan hệ, luật, sự kiện, … 2.2. BIỂU DIỄN TRI THỨC Biểu diễn tri thức (Knowledge Representation) là xây dựng mô hình biểu diễn tri thức để đưa tri thức lên máy tổ chức lưu trữ và xử lý, đặc biệt là cho suy luận giải các vấn đề, các bài toán[1]. Tri thức trong thực tế rất đa dạng và phức tạp. Tùy những trường hợp cụ thể có thể sử dụng các cấu trúc dữ liệu cơ bản (dãy, danh sách, tập hợp, …), các cấu trúc trừu tượng (class) hoặc các ngôn ngữ đặc tả tri thức. 2.3. CÁC PHƯƠNG PHÁP BIỂU DIỄN TRI THỨC 2.3.1. Biểu diễn dựa trên logic hình thức Sử dụng các biểu thức logic hình thức trong một hệ thống logic để diễn đạt các sự kiện và các luật trong cơ sở tri thức. Phép tính logic vị từ cấp 1 được sử dụng phổ biến nhất và có cả một ngôn ngữ lập trình hỗ trợ cho phương pháp này. Đó là ngôn ngữ lập trình PROLOG. Trong ngôn ngữ PROLOG, chỉ cần khai báo các sự kiện và các luật.Hệ thống sẽ tiến hành giải quyết vấn đề được yêu cầu dựa trên tri thức được khai báo. Trang 6 GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên 2.3.2. Hệ luật dẫn Mỗi luật dẫn được phát biểu dưới dạng: if <giả thiết> then <kết luận> Mô hình: Một cách hình thức, hệ luật dẫn gồm: − Tập ký hiệu đại diện cho các sự kiện. − Tập luật dẫn trong đó <giả thiết> và <kết luận> là các tập hợp sự kiện Nhận xét: Mô hình hệ luật dẫn trên khó áp dụng trực tiếp vì quan niệm sự kiện khá đơn giản. 2.3.3. Mạng ngữ nghĩa Mạng ngữ nghĩa (semantic network) có dạng một đồ thị gồm các nút và các cung, trong đó − Các nút thể hiện các khái niệm, các đối tượng. − Các cung thể hiện các quan hệ giữa các đối tượng. Dựa trên mạng ngữ nghĩa ta nhận biết tri thức một cách trực quan giúp thiết kế các xử lý như: thêm/bớt các khái niệm hay các đối tượng, tìm kiếm thông tin. 2.3.4. Khung (frame) Các khung (frame) thể hiện các khái niệm dưới dạng cấu trúc mẫu tin và có hình thức như một bảng mẫu. Khung cơ bản gồm các thành phần cơ bản sau: − Tên đối tượng (loại khung). − Các thuộc tính. − Giá trị của các thuộc tính. Khung lớp: thể hiện các tính chất tổng quát của một lớp các đối tượng, với những quan hệ kế thừa và cấu trúc phân cấp. Trang 7 GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên 2.4. SUY DIỄN 2.3.1. Suy diễn tự động Suy diễn tự động là quá trình vận dụng kiến thức đã biết trong quá trình lập luận tìm lời giải cho bài toán. Trong đó quan trọng nhất là các chiến lược điều khiển giúp phát sinh những sự kiện mới từ các sự kiện đã có. Quá trình suy diễn được thuật giải hóa và có thể cài đặt thành chương trình máy tính. Các kỹ thuật suy diễn cơ bản: − Suy diễn tiến − Suy diễn lùi. − Suy diễn tiến kết hợp heurictics. 2.3.2. Lời giải bài toán Lời giải bài toán là tập luật áp dụng để được đạt từ trạng thái giả thiết đến kết luật. Trong đó, quá trình tìm lời giải bài toán là quá trình tìm luật áp dụng trên tập sự kiện hiện tại nhằm phát sinh thêm các sự kiện mới tốt hơn. 2.3.3. Suy diễn tiến Suy diễn tiến là phương pháp suy diễn từ giả thiết đi đến kết luận. Chiến lược này được bắt đầu bằng tập sự kiện đã biết, rút ra các sự kiện mới từ việc áp dụng luật thích hợp trên tập sự kiện hiện tại. Quá trình này được lặp cho đến khi đạt được trạng thái đích hoặc cho đến khi không tìm được luật áp dụng. Trong áp dụng cụ thể phương pháp thường sử dụng kết hợp với các qui tắc heuristic trong việc chọn luật. Trong thực tế, không gian tìm kiếm của tập luật và sự kiện rất lớn ảnh hưởng đến tốc độ thực thi của thuật toán. Do đó, chiến lược suy diễn tiến được tối ưu với hai phiên bản: suy diễn tiến kết hợp bài toán mẫu và suy diễn tiến kết hợp heurictics. 2.3.4. Suy diễn lùi Suy diễn lùi là phương pháp truy ngược từ kết luận trở về giả thiết. Phương pháp này được tiến hành bằng cách truy ngược từ mục tiêu cần đạt được trở về phần giả thiết Trang 8 GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên của bài toán bằng cách áp dụng các luật trong cơ sở tri thức. Quá trình suy diễn lùi này sẽ phát sinh một sơ đồ cây mục tiêu kèm theo một cơ chế quay lui và lời giải sẽ được tìm thấy khi tất cả các mục tiêu ở các nút lá của cây mục tiêu đều thuộc về những sự kiện đã biết. Trong áp dụng cụ thể phương pháp thường sử dụng kết hợp với các qui tắc heuristic trong việc chọn luật. Trang 9 GVHD: PGS. TS. Đỗ Văn Nhơn HVTH: Lê Thành Nguyên PHẦN 3: TỔNG QUAN VỀ LẬP TRÌNH SYMBOLIC Lập trình Symbolic là phương pháp tiếp cận mới nhằm triển khai các hệ thống đại số máy tính một cách nhanh chóng và tiện lợi nhất. 3.1. ĐẠI SỐ MÁY TÍNH Đại số máy tính là lĩnh vực nghiên cứu của khoa học máy tính và toán học với mục tiêu đưa các xử lý đại số lên máy tính thực hiện trên các các biểu tượng [2], phục vụ nghiên cứu và xây dựng các ứng dụng toán học trên máy tính: hệ thống giải bài tập toán cho học sinh các cấp, hệ thống trắc nghiệm trình độ toán cho học sinh,… Đại số máy tính là một phần nghiên cứu của khoa học máy tính, được nghiên cứu phương pháp thiết kế, phân tích và áp dụng các thuật toán đại số [2]. Với đại số máy tính, có thể suy ra những thay đổi trong các tham số ảnh hưởng đến kết quả của quá trình tính toán. Từ đó, có thể xây dựng các thuật toán máy tính. VD: thuật toán xác định sự tương đương của các biểu thức đại số, thuật toán giải phương trình vi phân, … Các giải pháp đại số luôn đòi hỏi sự chính xác. Tuy nhiên, giải pháp số thông thường sẽ được xấp xỉ, điều này có thể phát sinh vấn đề sai số gia tăng trong quá trình tính toán dẫn đến kết quả sai lệch ngoài mong muốn. 3.2. LẬP TRÌNH SYMBOLIC Lập trình Symbolic là lập trình máy tính trong đó ngôn ngữ lập trình được cung cấp khả năng “symbolic” thông qua thư viện hoặc một phần mềm khác. Nghĩa là, ngôn ngữ lập trình có khả năng xử lý trên biểu thức đại số, hàm, toán học, phương trình,… chứa biến và phụ thuộc vào các tham số ở dạng ký tự. Từ đó, có thể thực hiện các xử lý, tính toán trên các đối tượng toán học: hàm số, đa thức, phương trình, ma trận mà trong đó có thể biến hoặc không chứa biến một cách dễ dàng. Các thao tác có thể gặp như: khai triển đa thức, rút gọn đa thức, tìm nghiệm, giải phương trình,… Trang 10 [...]... các bài toán đại số: tính toán đại số với độ chính xác tùy ý trên tập số nguyên, số hữu tỉ, số thực và biểu thức đại số, giải phương trình, hệ phương trình tuyến tính và phi tuyến tính, thực hiện các phép tính trên dãy số, ma trận, … Các xử lý tính toán trên Sympy được chia thành từng module với từng nhóm chức năng tính toan trên từng nhóm đối tượng toán học: phương trình, hệ phương trình tuyến tính, ... miễn phí Ngoài ra, còn có các thư viện mã nguồn mở cho phép người xây dựng các ứng dụng xử lý trên toán học đại số Tính toán số học Tính toán symbolic Chỉ tính toán với số Tính toán trên từng thành phần đại số 2+3=5 x + 2x = 3x; Kết quả là số xấp xỉ Kết quả được biểu diễn chính xác Kết quả trả về chỉ ở dạng số Kết quả ở dạng symbolic Bảng 1: So sánh tính toán số học và tính toán symbolic Trang 11 GVHD:... HVTH: Lê Thành Nguyên PHẦN 4: BỘ THƯ VIỆN SYMPY 3.1 GIỚI THIỆU Sympy là bộ thư viện Python sử dụng trong toán học sybolic Sympy nhằm mục tiêu trở thành một hệ thống đại số máy tính mạnh mẽ đầy đủ chức năng Tuy nhiên, mã nguồn đơn giản dễ hiểu và dễ dàng phát triển, mở rộng Sympy được phát triển hoàn thiện bằng ngôn ngữ Python và không đòi hỏi thêm bất kỳ thư viện mở rộng nào Sympy cho phép người dùng phát... CÁC PHÉP TOÁN CƠ BẢN Để thực hiện các thao tác xử lý toán học từ Sympy, tại cửa sổ dòng lệnh đầu tiên ta thực hiện khởi động thực viện cần thao tác bằng lệnh import với cấu trúc: from sympy[ .module] import * | gói thư viện1 [, gói thư viện2 , …, gói thư viện n] Trong đó: − Module là tên module cần khởi động phục vụ tính toán − Gói thư viện i (i = 1…n) là tên gói thư viện cần khởi động nằm trong module... hợp sau này Trong đó, mỗi module hoạt động xem như độc lập, thực hiện các phép tính toán đại số trên các đối tượng khác nhau: hình học hai chiều, ma trận, dãy số, … 3.4.1 Sympy Core Đây là module chính của sympy chứa các thao tác cơ bản trên Sympy bao gồm tập ký tự toán học thư ng dùng đặt tên biến (x, y, …, λ, ρ, ω, δ, π, θ, α, β, …) được đóng trong gói sympy. abc, cũng như các khai báo biến sympy. var,... bao gồm tính diện tích, tìm điểm giao nhau giữa hai đường thẳng, … Trong đó, các thuộc tính trên từng đối tượng hình học có thể là giá trị số hoặc là tham số Hình 6: Thao tác xử lý hình học phẳng trong Sympy 3.4.3 Logic Module Đây là module cung cấp các chức năng xử lý tính toán trên đại số Bool bao gồm các phép tính trên hàm Bool: khai triển, rút gọn, tìm nghiệm, … Hình 7: Tìm giá trị biến cho hàm... biến trong Sympy Để tránh trường hợp này, trong quá trình xử lý nếu có một mệnh đề cần phải cập nhật theo giá trị mới của biến ta thay thế mệnh đề bằng một hàm xử lý Hàm xử lý này tuân thủ theo quy tắc định nghĩa hàm trong ngôn ngữ Python 3.4 SYMPY MODULE Sympy là một bộ thư viện hỗ trợ khả năng lập trình Symbolic nhằm mục tiêu xây dựng một hệ thống đại số máy tính và được module hóa nhằm mục tiêu đơn... phương trình tuyến tính, ma trận, dãy số, … 3.2 CÀI ĐẶT Đây là bộ thư viện trên nền tảng Python, do đó, trên máy tính sử dụng Sympy phải cài đặt Python (phiên bản từ 2.5 trở lên) trước khi cài đặt Sympy Download: − Python: https://www.python.org/download/ − Sympy: http:/ /sympy. org/en/download.html Sau khi download, nhấn đôi chuột vào file cài đặt (.exe) Python, và Sympy Sau khi cài đặt hoàn tất, khởi... các thao tác trên ma trận, gồm: − − − − Cộng, trừ hai ma trận Nhân hai ma trận Tìm ma trận nghịch đảo Tính định thức ma trận, … Hình 8: Khởi tạo ma trận trong Sympy Trang 17 GVHD: PGS TS Đỗ Văn Nhơn HVTH: Lê Thành Nguyên Hình 9: Cộng, nhân hai ma trận 3.4.5 Giải phương trình Đây là module cho phép người dùng giải phương trình đa thức, phương trình lượng giác, hệ phương trình − Giải phương trình y = f(x):... thực tế, các nhà khoa học máy tính và công nghệ phần mềm đã nghiên cứu và phát triển các ứng dụng hỗ trợ lập trình Symbolic: Reduce, Schoonscip, Macsyma, Derive, Mathematica, Maple Trong đó, hai hệ thống thư ng mại nổi tiếng là Maple và Mathematica được sử dụng rộng rãi; MuPAD là một hệ thống thư ng mại nhưng có phiên bản miễn phí cho mục đích phi lợi nhận và giáo dục Một số hệ thống khác tập trung . HCM, Tháng 03 năm 2014 MÔN: BIỂU DIỄN TRI THỨC VÀ SUY LUẬN TÌM HIỂU LẬP TRÌNH SYBOLIC BỘ THƯ VIỆN SYMPY TRONG TÍNH TOÁN ĐẠI SỐ TRÊN MÁY TÍNH MỤC LỤC 2 DANH MỤC HÌNH, BẢNG 3 GVHD: PGS. TS. Đỗ Văn. lý các bài toán đại số: tính toán đại số với độ chính xác tùy ý trên tập số nguyên, số hữu tỉ, số thực và biểu thức đại số, giải phương trình, hệ phương trình tuyến tính và phi tuyến tính, thực. ứng dụng xử lý trên toán học đại số. Tính toán số học Tính toán symbolic Chỉ tính toán với số 2 + 3 = 5 Tính toán trên từng thành phần đại số x + 2x = 3x; Kết quả là số xấp xỉ Kết quả được biểu

Ngày đăng: 19/05/2015, 02:05

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • DANH MỤC HÌNH, BẢNG

  • PHẦN 1: MỞ ĐẦU

  • PHẦN 2: KHÁI QUÁT VỀ BIỂU DIỄN TRI THỨC

    • 2.1. TRI THỨC

    • 2.2. BIỂU DIỄN TRI THỨC

    • 2.3. CÁC PHƯƠNG PHÁP BIỂU DIỄN TRI THỨC

      • 2.3.1. Biểu diễn dựa trên logic hình thức

      • 2.3.2. Hệ luật dẫn

      • 2.3.3. Mạng ngữ nghĩa

      • 2.3.4. Khung (frame)

      • 2.4. SUY DIỄN

        • 2.3.1. Suy diễn tự động

        • 2.3.2. Lời giải bài toán

        • 2.3.3. Suy diễn tiến

        • 2.3.4. Suy diễn lùi

        • PHẦN 3: TỔNG QUAN VỀ LẬP TRÌNH SYMBOLIC

          • 3.1. ĐẠI SỐ MÁY TÍNH

          • 3.2. LẬP TRÌNH SYMBOLIC

          • PHẦN 4: BỘ THƯ VIỆN SYMPY

            • 3.1. GIỚI THIỆU

            • 3.2. CÀI ĐẶT

            • 3.3. CÁC PHÉP TOÁN CƠ BẢN

              • 3.3.1. Phép gán

              • 3.3.2. Phép so sánh bằng

              • 3.3.3. Biến

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

Tài liệu liên quan