Lập trình Symbolic cho trí tuệ nhân tạo

13 1.3K 5
Lập trình Symbolic cho trí tuệ nhân tạo

Đ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

MỤC LỤC PHẦN 1. GIỚI THIỆU TỔNG QUAN ĐỀ TÀI I. VẤN ĐỀ QUAN TÂM Trí tuệ nhân tạo hay trí thông minh nhân tạo (tiếng Anh: artificial intelligence hay machine intelligence, thường được viết tắt là AI) là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào. Thuật ngữ này thường dùng để nói đến các máy tính có mục đích không nhất định và ngành khoa học nghiên cứu về các lý thuyết và ứng dụng của trí tuệ nhân tạo. Ứng dụng tin học vào sản xuất và đời sống con người đã đưa vấn đề trí tuệ nhân tạo trong ngành tin học lên một vị trí đặc biệt của những sự nghiên cứu. Nhiều ý tưởng, thuật toán, thuật giải, phần mềm ra đời phục vụ cho trí tuệ nhân tạo. Ở đồ án này, em xin trình bày những vấn đề lập trình liên quan đến phần mềm Maple. Maple là một gói phần mềm toán học phát triển lần đầu tiên vào năm 1980 bởi nhóm Tính toán Hình thức tại Đại học Waterloo ở Waterloo, Ontario, Canada. Maple cũng có một ngôn ngữ lập trình cấp cao đầy đủ, cũng có giao diện cho những ngôn ngữ khác (C, Fortran, Java, MatLab, và Visual Basic). Phần lớn chức năng toán học của Maple được viết bằng ngôn ngữ Maple, và được thông dịch bởi nhân Maple. Nhân Maple được viết bằng C. Ngôn ngữ có hình thức lập trình hàm, nhưng cũng có hỗ trợ đầy đủ cho lập trình truyền thống, theo kiểu mệnh lệnh. Tên "Maple" không phải là tên viết tắt hoặc từ cấu tạo bằng chữ đầu, mà chỉ đơn giản là để chỉ hình tượng Lá phong (tiếng Anh: maple) trên Quốc kỳ Canada. II. PHẠM VI VÀ ĐỐI TƯỢNG NGHIÊN CỨU Trong giới hạn của đồ án, với kiến thức của em, xin trình bày một số cài đặt giải một số bài toán mẫu về hình học giải tích, đại số, cài đặt thêm một số thủ tục liên quan đến các bài toán hệ Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành luật dẫn, bài toán giải tam giác. Tất cả những vấn đề được nêu để chứng minh Maple là công cụ lập trình symbolic khá tốt. III. MỤC TIÊU - Phát biểu được các bài toán. - Phân tích bài toán: tìm ý tưởng giải, tìm thuật toán để giải bài toán, cấu trúc dữ liệu để biểu diễn input, output. - Cài đặt thuật toán để giải bài toán bằng Maple. Trình bày đầy đủ các bước giải các bài toán: - Một số bài toán mẫu trong hình giải tích trong không gian: Viết phương trình mặt cầu ngoại tiếp tứ diện, viết phương trình đoạn vuông gốc chung của hai đường thẳng chéo nhau trong không gian. - Một số bài toán mẫu trong đại số: giải và biện luận phương trình bậc nhất, bậc 2, hệ phương trình. - Một số bài toán liên quan đến trí tuệ nhân tạo: Suy diễn trong hệ luật dẫn, giải các bài toán tam giác. IV. TÀI LIỆU THAM KHẢO [1].Đỗ Văn Nhơn. Các bài giảng về Maple, lập trình Symbolic.Đại học Công nghệ Thông tin. [2].Đỗ Văn Nhơn. Model for Knowledge Bases of Computational Objects. Department of Computer Science, University of Information Technology, Ho Chi Minh City, Vietnam. Trang 2 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành PHẦN 2. NỘI DUNG ĐỀ TÀI I. Viết phương trình mặt cầu ngoại tiếp tứ diện 1. Cấu trúc dữ liệu: Tọa độ các đỉnh là các danh sách Phương trình mặt cầu được định nghĩa là hàm số Cài đặt câu lệnh bằng Maple: Trang 3 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành 2. Kết quả: - Viết phương trình đoạn vuông gốc chung của hai đường thẳng chéo nhau trong không gian. Kết quả thu được như file source đính kèm. II. Giải và biện luận phương trình bậc nhất. Phương trình bậc nhất một ẩn có dạng: f(x)=ax+b=0 - N ếu a ≠ 0 : phươ ng t r ì nh có nghiệm duy nhất x= - - Nếu a = 0: + Nếu b ≠ 0: phương trình vô nghiệm + Nếu b = 0: phương trình có vô số nghiệm đúng với mọi x Trang 4 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành Bài toán giải và biện luận phương trình bậc hai một ẩn: Phương trình bậc nhất một ẩn có dạng: f(x)= ax 2 + bx + c = 0 * Trường hợp 1: Với a=0, ta có phương trình bx + c = 0 , đây là phương trình bậc nhất một ẩn có hệ số cụ thể nên có thể kết luận được nghiệm của phương trình. * Trường hợp 2: Với a<>0, ta tính delta + Nếu 0 : phương trình vô nghiệm. + N ế u 0 : ph ươ ng t r ì nh c ó ngh iệm k é p x = - + N ế u > 0 : ph ươ ng t r ì nh c ó 2 ngh iệm Cài đặt chương trình: Trang 5 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành Trang 6 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành III. Giải và biện luận phương trình bậc hai: IV. Giải bài toán suy luận trên hệ luật dẫn: 1.Định nghĩa luật dẫn: luật dẫn là những mệnh đề có dạng: LHS → RHS Trong đó: LHS: xác định các điều kiện hoặc hoàn cảnh phải được thỏa mãn cho luật được áp dụng, ta còn gọi là vế trái, tiền đề hay giả thiết RHS: là những tác động phải xảy ra khi luật được áp dụng, ta còn gọi là vế phải hay kết luận. Mỗi vế của luật có thể là dạng kết hợp có dạng A1, A2, , An → B1, B2, , Bm hay IF A1, A2, , An THEN B1, B2, , Bm. Trang 7 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành 2.Định nghĩa hệ luật dẫn: Một bộ chương trình máy tính xử lí các thông tin của vấn đề đang nằm trong bộ nhớ tạm thời thông qua một cơ sở tri thức chứa các luật dẫn và bộ phận suy diễn để suy ra các thông tin mới. Hệ luật dẫn gồm 3 bộ phận cơ bản là: • Cơ sở tri thức: là tập hợp các luật dẫn. • Bộ nhớ tạm thời: là các sự kiện khởi đầu của vấn đề, các sự kiện suy được trong quá trình suy diễn. • Động cơ suy diễn: mô hình hóa lập luận của con người bằng cách kết hợp các sự kiện của vấn đề với các luật trong cơ sở tri thức để suy diễn ra thông tin mới. Như vậy, ta thấy các luật sinh được xem là các luật dẫn trong cơ sở tri thức, quá trình suy diễn dừng khi các luật đã được đưa vào xử lí hết hoặc khi tìm thấy sự kiện mục tiêu. 3.Bài toán suy diễn: giả sử có tập giả thiết được cho trước H ⊆ F, ta muốn suy ra tập mục tiêu G. Tìm dãy các luật để từ H ta suy ra được G. Cấu trúc dữ liệu cho bài toán suy diễn: Cấu trúc gồm 2 tập hợp: - Tập sự kiện F: kiểu tập hợp, mỗi phần tử là một mệnh đề. - Tập luật dẫn R: kiểu tập hợp, mỗi phần tử là một luật có dạng: If <giả thiết> then <kết luận>, trong đó giả thiết, kết luận là các tập con của F. Thuật giải: Input: o Tập các sự kiện. Ký hiệu: F o Tập các sự kiện cho trước. Ký hiệu: H o Tập các luật. Ký hiệu: R Output: o Tập sự kiện muc tiêu. Ký hiệu G Trang 8 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành Các biến toàn cục: Solution: danh sách luật áp dụng Facts_known: tập sự kiện đã biết Thuật giải: Bước 1: Khởi tạo: Solution:=[]; // danh sách luật ban đầu là rỗng Facts_known:=H; // tập sự kiện đã biết là tập H đã cho trước Bước 2: while (chưa đạt được mục tiêu G) do 2.1: Tìm r∈R có thể áp dụng trên Facts_known; 2.2: If tìm không được r then dừng và kết luận “không tìm được lời giải”; 2.3: Thêm r vào Solution; //thêm luật tìm được vào Solution Thêm phần kết luận của r vào Facts_known; //bổ sung tập sự kiện đã biết vào Facts_known sau khi áp dụng luật r; end do; Bước 3: xuất Solution; // xuất danh sách luật đã được áp dụng để suy diễn Cài đặt và chạy thử: Trang 9 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành V. Giải bài toán tam giác: 1.Mô tả bài toán: Giả sử ta có một tam giác như sau: Với: - A,B,C: là các đỉnh của như các góc của tam giác - a,b,c: là các cạnh tương ứng với các góc (a là ký hiệu cho cạnh BC, b là ký hiệu cho cạnh AC và c là ký hiệu cho cạnh AB) - m a ,m b ,m c: là các đường trung tuyến từ các đỉnh A,B,C - p: chu vi của tam giác - S: diện tích của tam giác Bài toán: giả sử ta biết được giá trị của một số thành phần trong tam giác (như trên). Ta cần tính giá trị của một thành phần khác. Ký hiệu bài toán: H  G Với H là phần giả thuyết còn G là phần kết luận của bài toán. Ví dụ bài toán được ký hiệu: H = {a=5,b=10,C=90}, G={S} Thì ta hiểu là: cho trước giá trị của cạnh a, cạnh b và góc C. Hãy tính diện tích của tam giác. 2.Phân tích bài toán: Với bài toán được mô tả như trên, ta sẽ sử dụng Maple để giải quyết. Tuy nhiên, có một số quy ước cần được tuân thủ: Trang 10 [...]... dụng dựa trên tập giá trị đã có hay không) Khởi tạo solutionFound := true (cờ để xác nhận có tìm thấy lời giải hay không) Khởi tạo SolutionValue := [] (danh sách các đẳng thức đã tính được nhờ các công thức trong Solution – dùng cho việc rút gọn lời giải và khác với varsFoundSet, SolutionValue coi trọng thứ tự ) Trang 11 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành Bước 2: - While KL not... Trước khi chạy chương trình để kiểm tra, ta cần đảm bảo rằng tất cả các hàm và biến phải được load (bằng cách vào hàm hoặc biến nhấn ENTER để Maple server tự động load các hàm và biến đó Trang 12 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành Bài toán 1: Cho biết các giá trị như sau: Ta thấy, điều đầu tiên giải thuật đã khẳng định là có đáp án 5.Đánh giá chương trình: Do hạn chế về thời.. .Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành  H là tập giả thuyết của bài toán, mỗi phần tử trong tập hợp là một cấu trúc gồm: = Ví dụ: H := {a=5,b=10}  G là tập kết luận của bài toán... o Tập Fomular cho trước Ký hiệu: KL  Output: o Khẳng định có thể tìm được đáp án không o Nếu có, thì đáp án là gì và áp dụng công thức nào (thứ tự) để có đáp án  Thuật giải: Bước 1: - Khởi tạo Solution := [] (đây là danh sách các công thức được áp dụng để giải) Khởi tạo varsFoundSet := GT (đây là tập hợp các đẳng thức với vế trái là một biến và - vế phải là giá trị đã tìm được) Khởi tạo formulaFound... chương trình có một số lỗi/hạn chế nhất định Dưới đây là danh sách các hạn chế: - Chưa xây dựng được giao diện chương trình Công thức về tam giác chưa đủ Cần bổ sung thêm các công thức khác Số lượng thành phần trong tam giác còn thiếu Ví dụ như đường cao, bán kính đường - tròn nội tiếp… Chưa áp dụng thuật giải Heuristic vào chương trình, chỉ tìm công thức theo dạng vòng lặp Tuy nhiên, chương trình cũng . đặt chương trình: Trang 5 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành Trang 6 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành III. Giải và biện luận phương trình bậc. = 0: phương trình có vô số nghiệm đúng với mọi x Trang 4 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành Bài toán giải và biện luận phương trình bậc hai một ẩn: Phương trình bậc nhất. danh sách Phương trình mặt cầu được định nghĩa là hàm số Cài đặt câu lệnh bằng Maple: Trang 3 Lập trình Symbolic cho trí tuệ nhân tạo TH: Nguyễn Hữu Thành 2. Kết quả: - Viết phương trình đoạn vuông

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

Từ khóa liên quan

Mục lục

  • PHẦN 1. GIỚI THIỆU TỔNG QUAN ĐỀ TÀI

    • I. VẤN ĐỀ QUAN TÂM

    • II. PHẠM VI VÀ ĐỐI TƯỢNG NGHIÊN CỨU

    • III. MỤC TIÊU

    • IV. TÀI LIỆU THAM KHẢO

    • PHẦN 2. NỘI DUNG ĐỀ TÀI

      • I. Viết phương trình mặt cầu ngoại tiếp tứ diện

        • 1. Cấu trúc dữ liệu:

        • 2. Kết quả:

        • II. Giải và biện luận phương trình bậc nhất.

        • III. Giải và biện luận phương trình bậc hai:

        • IV. Giải bài toán suy luận trên hệ luật dẫn:

          • 1.Định nghĩa luật dẫn:

          • 2.Định nghĩa hệ luật dẫn:

          • 3.Bài toán suy diễn:

          • Cấu trúc dữ liệu cho bài toán suy diễn:

          • Thuật giải:

          • Thuật giải:

          • Cài đặt và chạy thử:

          • V. Giải bài toán tam giác:

            • 1.Mô tả bài toán:

            • 2.Phân tích bài toán:

            • 3.Thuật giải:

            • 4.Chạy thử và kiểm lỗi:

            • 5.Đánh giá chương trình:

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

Tài liệu liên quan