XÂY DỰNG CHƯƠNG TRÌNH MINH họa THUẬT TOÁN QUINLAN

21 2.4K 23
XÂY DỰNG CHƯƠNG TRÌNH MINH họa THUẬT TOÁN QUINLAN

Đ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

BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM BÙI CÔNG THÌN BÁO CÁO THỰC TẬP TỐT NGHIỆP XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA THUẬT TOÁN QUINLAN HẢI PHÒNG – 2016 BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM BÙI CÔNG THÌN BÁO CÁO THỰC TẬP TỐT NGHIỆP XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA THUẬT TOÁN QUINLAN NGÀNH: CÔNG NGHỆ THÔNG TIN; MÃ SỐ: 114 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: ThS Nguyễn Hạnh Phúc HẢI PHÒNG – 2016 MỤC LỤC CHƯƠNG TỔNG QUAN .4 CHƯƠNG THUẬT TOÁN QUINLAN CHƯƠNG TỔNG QUAN VỀ CHƯƠNG TRÌNH MINH HỌA 11 KẾT LUẬN VÀ KIẾN NGHỊ 20 TÀI LIỆU THAM KHẢO .21 CHƯƠNG TỔNG QUAN 1.1 Khái niệm Hệ sở tri thức - Hệ Cơ sở tri thức (Hệ CSTT) chương trình máy tính thiết kế để mô hình hóa khả giải vấn đề chuyên gia - Hệ CSTT hệ thống dựa tri thức, cho phép mô hình hóa tri thức chuyên gia, dùng tri thức để giải vấn đề phức tạp thuộc lĩnh vực - Hai yếu tố quan trọng Hệ CSTT là: Tri thức chuyên gia lập luận, tương ứng với hệ thống có khối Cơ sở tri thức động suy diễn - Hệ chuyên gia loại CSTT thiết kế cho lĩnh vực ứng dụng cụ thể Hệ chuyên gia chương trình máy tính thông minh sử dụng tri thức thủ tục suy luận để giải toán tương đối khó khăn đòi hỏi chuyên gia giải - Hệ chuyên gia làm việc chuyên gia thực thụ cung cấp ý kiến dựa kinh nghiệm chuyên gia đưa vào hệ chuyên gia - Cơ sở tri thức: Chứa tri thức chuyên sâu lĩnh vực chuyên gia Cơ sở tri thức bao gồm: Các kiện, luật, khái niệm quan hệ - Động suy diễn: Bộ xử lý tri thức theo mô hình hóa theo cách lập luận chuyên gia Động hoạt động thông tin vấn đề xét, so sánh với tri thức lưu Cơ sở tri thức rút kết luận - Kỹ sư tri thức: Người thiết kế, xây dựng thử nghiệm Hệ chuyên gia 1.2 Cấu trúc Hệ chuyên gia Máy suy diễn Cơ sở tri thức Các luật Bộ nhớ làm việc Lịch công việc Khả thu nhận tri thức Khả giải thích Giao diện người sử dụng Hình 1.1 Cấu trúc Hệ chuyên gia  Cơ sở tri thức (knowledge base): Gồm phần tử (hay đơn vị) tri thức, thông thường gọi luật (rule), tổ chức sở liệu  Máy suy diễn (interface engine): Công cụ (chương trình hay xử lý) tạo suy luận cách định xem luật làm thỏa mãn kiện, đối tượng; chọn ưu tiên luật thỏa mãn, thực luật có tính ưu tiên cao  Lịch công việc (agenda): Danh sách luật ưu tiên máy suy diễn tạo thỏa mãn kiện, đối tượng có mặt nhớ làm việc  Bộ nhớ làm việc (working memory): Cơ sở liệu toàn cục chứa kiện phục vụ cho luật  Khả giải thích (explanation facility): Giải nghĩa cách lập luận hệ thống cho người sử dụng  Khả thu nhận tri thức: Cho phép người sử dụng bổ sung tri thức vào hệ thống tự động thay tiếp nhận tri thức cách mã hóa tri thức cách tường minh Khả thu nhận tri thức yếu tố nhiều hệ chuyên gia  Giao diện người sử dụng (user interface): Là nơi người sử dụng hệ chuyên gia trao đổi với • Cơ sở tri thức gọi nhớ sản xuất (production memory) hệ chuyên gia Trong sở tri thức, người ta thường phân biệt hai loại tri thức tri thức phán đoán (assertion knowledge) tri thức thực hành (operating knowledge) - Tri thức phán đoán mô tả tình thiết lập thiết lập - Tri thức thực hành thể hậu rút hay thao tác cần phải hoàn thiện tình thiết lập thiết lập lĩnh vực xét Các tri thức thực hành thường thể biểu thức dễ hiểu dễ triển khai thao tác người sử dụng Tri thức phán đoán Máy suy diễn Tri thức thực hành Cơ sở tri thức Hình 1.2 Quan hệ máy suy diễn sở tri thức CHƯƠNG THUẬT TOÁN QUINLAN 2.1 Thuật toán Quinlan Quinlan định thuộc tính phân hoạch cách xây dựng vector đặc trưng cho giá trị thuộc tính dẫn xuất thuộc tính mục tiêu Với thuộc tính dẫn xuất A sử dụng để phân hoạch, tính: V(Aj) = (T(j, r1), T(j, r2), …, T(j, rn)) T (j, ri) = (tổng số phần tử phân hoạch có giá trị thuộc tính dẫn xuất A j có giá trị thuộc tính mục tiêu r i) / (tổng số phần tử phân hoạch có giá trị thuộc tính dẫn xuất A j) Trong r1, r2,…, rn giá trị thuộc tính mục tiêu  Nếu thuộc tính A nhận giá trị khác có vector đặc trưng Một vector V(Aj) gọi vector đơn vị có thành phần có giá trị thành phần khác có giá trị Thuộc tính chọn để phân hoạch thuộc tính có nhiều vector đơn vị Lưu ý: Nếu có nhiều thuộc tính có số vector đơn vị ta chọn thuộc tính có số phân hoạch để làm thuộc tính phân hoạch 2.2 Ví dụ thuật toán Quinlan Đề bài: Sử dụng thuật toán Quinlan để rút quy luật cho người có đặc điểm có khả đỗ đại học không theo sở liệu bảng sau: Giải: Đặt: A thuộc tính “Bố mẹ đỗ đại học” B thuộc tính “Điều kiện kinh tế” C thuộc tính “Học lực” D thuộc tính “Có học thêm” E thuộc tính “Kết quả” - Xét theo thuộc tính A (Bố mẹ đỗ đại học), thuộc tính có giá trị “Có” “Không” VA(Có) = (T(Có,Đỗ) ; T(Có,Không Đỗ)) = ( 4/6 ; 2/6 ) = (2;1) VA(Không) = (T(Không,Đỗ) ; T(Không,Không Đỗ)) = ( 0/2 ; 2/2 ) = (0;1) - Xét thuộc tính B (Điều kiện kinh tế), thuộc tính có giá trị “Thấp”, “Trung Bình” “Cao” VB(Thấp) = (T(Thấp,Đỗ) ; T(Thấp,Không Đỗ)) = ( 1/4 ; 3/4 ) = (1;3) VB(Trung Bình) = (T(Trung Bình,Đỗ) ; T(Trung Bình,Không Đỗ)) = ( 3/3 ; 0/3 ) = (1;0) VB(Cao) = (T(Cao,Đỗ) ; T(Cao,Không Đỗ)) = ( 0/1 ; 1/1 ) = (0;1) - Xét thuộc tính C (Học lực), thuộc tính có giá trị “Trung Bình”, “Khá” “Giỏi” VC(Trung Bình) = (T(Trung Bình,Đỗ) ; T(Trung Bình,Không Đỗ)) = ( 0/3 ; 3/3 ) = (0;1) VC(Khá) = (T(Khá,Đỗ) ; T(Khá,Không Đỗ)) = ( 2/3 ; 1/3) = (2;1) VC(Giỏi) = (T(Giỏi,Đỗ) ; T(Giỏi,Không Đỗ)) = ( 2/2 ; 0/2 ) = (1;0) - Xét thuộc tính D (Có học thêm) có giá trị “Có” “Không” VD(Có) = (T(Có,Đỗ) ; T(Có,Không Đỗ)) = ( 3/5 ; 2/5 ) = (3;2) VD(Không) = (T(Không,Đỗ) ; T(Không,Không Đỗ)) = ( 1/3 ; 2/3 ) = (1;2) Có thuộc tính B C có véc tơ thuộc tính, chọn thuộc tính C để phân rã tiếp có bảng liệu theo thuộc tính Học lực với giá trị “Khá” sau: Thứ tự Tên Bố người mẹ đỗ đại Mậu Kỷ Canh Điều kiện kinh tế Có học Kết thêm học Có Trung Có Đỗ Không Có bình Thấp Trung Không Có Không Đỗ bình - Xét theo thuộc tính A (Bố mẹ đỗ đại học), thuộc tính có giá trị “Có” “Không” VA(Có) = (T(Có,Đỗ) ; T(Có,Không Đỗ)) = ( 2/2 ; 0/2 ) = (1;0) VA(Không) = (T(Không,Đỗ) ; T(Không,Không Đỗ)) = ( 0/1 ; 1/1 ) = (0;1) - Xét thuộc tính B (Điều kiện kinh tế), thuộc tính có giá trị “Thấp” “Trung Bình” VB(Thấp) = (T(Thấp,Đỗ) ; T(Thấp,Không Đỗ)) = ( 0/1 ; 1/1 ) = (0;1) VB(Trung Bình) = (T(Trung Bình,Đỗ) ; T(Trung Bình,Không Đỗ)) = ( 2/2 ; 0/2 ) = (1;0) - Xét thuộc tính D (Có học thêm) có giá trị “Có” “Không” VD(Có) = (T(Có,Đỗ) ; T(Có,Không Đỗ)) = ( 2/2 ; 0/2 ) =(1;0) VD(Không) = (T(Không,Đỗ) ; T(Không,Không Đỗ)) = ( 0/1 ; 1/1 ) = (0;1) Cả thuộc tính có véc tơ đơn vị, chọn thuộc tính A (Bố mẹ đỗ đại học) làm thuộc tính phân rã  Kết luận: - Nếu học lực trung bình trượt - Nếu học lực giỏi đỗ - Nếu học lực mà có bố mẹ đỗ đại học đỗ - Nếu học lực mà bố mẹ không đỗ đại học trượt 10 CHƯƠNG TỔNG QUAN VỀ CHƯƠNG TRÌNH MINH HỌA 3.1 Tổng quan chương trình  Chương trình minh họa xây dựng cài đặt ngôn ngữ C++  Giới thiệu ngôn ngữ C++ C++ ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng giống với ngôn ngữ Assembler hầu hết ngôn ngữ bậc cao Hơn thế, C++ đánh "có khả di động", cho thấy khác quan trọng với ngôn ngữ bậc thấp Assembler, việc mã C++ dịch thi hành hầu hết máy tính, hẳn ngôn ngữ Assembler chạy số máy tính đặc biệt Vì lý C++ xem ngôn ngữ bậc trung C++ tạo với mục tiêu làm cho thuận tiện để viết chương trình lớn với số lỗi mẫu hình lập trình thủ tục mà lại không đặt gánh nặng lên vai người viết trình dịch C++, người bề bộn với đặc tả phức tạp ngôn ngữ Cuối C++ có thêm chức sau: - Một ngôn ngữ cốt lõi đơn giản, với chức quan trọng chẳng hạn hàm hay việc xử lý tập tin cung cấp thư viện thủ tục - Tập trung mẫu hình lập trình thủ tục, với phương tiện lập trình theo kiểu cấu trúc - Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép toán ý nghĩa thực dụng 11 - Dùng ngôn ngữ tiền xử lý, tức câu lệnh tiền xử lý C++, cho nhiệm vụ định nghĩa macro hàm chứa nhiều tập tin mã nguồn (bằng cách dùng câu lệnh tiền xử lý dạng #include chẳng hạn) - Mức thấp ngôn ngữ cho phép dùng tới nhớ máy tính qua việc sử dụng kiểu liệu point - Số lượng từ khóa nhỏ gọn - Các tham số đưa vào hàm giá trị, không địa - Hàm trỏ cho phép hình thành tảng ban đầu cho tính đóng tính đa hình - Hỗ trợ ghi hay kiểu liệu kết hợp người dùng từ khóa định nghĩa struct cho phép liệu liên hệ tập hợp lại điều chỉnh toàn 3.2 Code chương trình minh họa #include #include #include #include #include #include using namespace std; bool docFile(string tbl[][20],int &hang,int &cot) { ifstream MaTran("dulieu.txt"); if(! MaTran.is_open()) { couthang; hang++; MaTran>>cot; 12 cot+=2; cout[...]... diện chương trình 17 Hình 3.1 Thông tin file “dulieu.txt” Hình 3.2 Đọc dữ liệu từ file “dulieu.txt” vào chương trình minh họa Hình 3.3 Quá trình xử lý của chương trình minh họa 18 Hình 3.4 Kết quả của chương trình minh họa 19 KẾT LUẬN VÀ KIẾN NGHỊ 1 Kết luận Qua đề tài Xây dựng chương trình minh họa thuật toán Quinlan , em đã hiểu hơn về học phần CÁC HỆ CƠ SỞ TRI THỨC nói chung và thuật toán Quinlan. ..CHƯƠNG 3 TỔNG QUAN VỀ CHƯƠNG TRÌNH MINH HỌA 3.1 Tổng quan về chương trình  Chương trình minh họa được xây dựng và cài đặt bằng ngôn ngữ C++  Giới thiệu về ngôn ngữ C++ C++ là một ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng và nó giống với ngôn ngữ Assembler hơn hầu hết các ngôn... Hỗ trợ các bản ghi hay các kiểu dữ liệu kết hợp do người dùng từ khóa định nghĩa struct cho phép các dữ liệu liên hệ nhau có thể được tập hợp lại và được điều chỉnh như là toàn bộ 3.2 Code của chương trình minh họa #include #include #include #include #include #include using namespace std; bool docFile(string tbl[][20],int &hang,int &cot) { ifstream... số máy tính đặc biệt Vì lý do này C++ được xem là ngôn ngữ bậc trung C++ đã được tạo ra với một mục tiêu là làm cho nó thuận tiện để viết các chương trình lớn với số lỗi ít hơn trong mẫu hình lập trình thủ tục mà lại không đặt gánh nặng lên vai người viết ra trình dịch C++, là những người bề bộn với các đặc tả phức tạp của ngôn ngữ Cuối cùng C++ có thêm những chức năng sau: - Một ngôn ngữ cốt lõi đơn... năng quan trọng chẳng hạn như là những hàm hay việc xử lý tập tin sẽ được cung cấp bởi các bộ thư viện các thủ tục - Tập trung trên mẫu hình lập trình thủ tục, với các phương tiện lập trình theo kiểu cấu trúc - Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép toán không có ý nghĩa thực dụng 11 - Dùng ngôn ngữ tiền xử lý, tức là các câu lệnh tiền xử lý C++, cho các nhiệm vụ như là định nghĩa các macro ... học trượt 10 CHƯƠNG TỔNG QUAN VỀ CHƯƠNG TRÌNH MINH HỌA 3.1 Tổng quan chương trình  Chương trình minh họa xây dựng cài đặt ngôn ngữ C++  Giới thiệu ngôn ngữ C++ C++ ngôn ngữ lập trình tương đối... chương trình minh họa 19 KẾT LUẬN VÀ KIẾN NGHỊ Kết luận Qua đề tài Xây dựng chương trình minh họa thuật toán Quinlan , em hiểu học phần CÁC HỆ CƠ SỞ TRI THỨC nói chung thuật toán Quinlan nói... diện chương trình 17 Hình 3.1 Thông tin file “dulieu.txt” Hình 3.2 Đọc liệu từ file “dulieu.txt” vào chương trình minh họa Hình 3.3 Quá trình xử lý chương trình minh họa 18 Hình 3.4 Kết chương trình

Ngày đăng: 24/04/2016, 17:10

Từ khóa liên quan

Mục lục

  • 1.1 Khái niệm về Hệ cơ sở tri thức

  • 1.2 Cấu trúc của Hệ chuyên gia

  • 2.1 Thuật toán Quinlan

  • 2.2 Ví dụ về thuật toán Quinlan

  • 3.1 Tổng quan về chương trình

  • 3.2 Code của chương trình minh họa

  • 3.3 Một số hình ảnh về giao diện chương trình

  • 1. Kết luận

  • 2. Kiến nghị

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

Tài liệu liên quan