1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

21 2,4K 24

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 1 MB

Nội dung

TỔNG QUAN1.1 Khái niệm về Hệ cơ sở tri thức - Hệ Cơ sở tri thức Hệ CSTT là chương trình máy tính được thiết kế để môhình hóa khả năng giải quyết vấn đề của chuyên gia.. - Hai yếu tố quan

Trang 1

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

Trang 2

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

Trang 3

HẢI PHÒNG – 2016

MỤC LỤC

CHƯƠNG 1 TỔNG QUAN 4

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

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

CHƯƠNG 2 THUẬT TOÁN QUINLAN 7

2.1 Thuật toán Quinlan 7

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

CHƯƠNG 3 TỔNG QUAN VỀ CHƯƠNG TRÌNH MINH HỌA 11

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

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

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

KẾT LUẬN VÀ KIẾN NGHỊ 20

1 Kết luận 20

2 Kiến nghị 20

TÀI LIỆU THAM KHẢO 21

Trang 4

CHƯƠNG 1 TỔNG QUAN

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

- Hệ Cơ sở tri thức (Hệ CSTT) là chương trình máy tính được thiết kế để môhình hóa khả năng giải quyết vấn đề của chuyên gia

- Hệ CSTT là hệ thống dựa trên tri thức, cho phép mô hình hóa các tri thứccủa chuyên gia, dùng tri thức này để giải quyết vấn đề phức tạp thuộc cùng lĩnhvực

- Hai yếu tố quan trọng trong Hệ CSTT là: Tri thức chuyên gia và lập luận,tương ứng với hệ thống có 2 khối chính là Cơ sở tri thức và động cơ suy diễn

- Hệ chuyên gia là một loại CSTT được thiết kế cho một lĩnh vực ứng dụng

cụ thể Hệ chuyên gia là một chương trình máy tính thông minh sử dụng tri thức

và các thủ tục suy luận để giải những bài toán tương đối khó khăn đòi hỏi nhữngchuyên gia mới giải được

- Hệ chuyên gia làm việc như một chuyên gia thực thụ và cung cấp các ý kiếndựa trên kinh nghiệm của chuyên gia đã được đưa vào hệ chuyên gia

- Cơ sở tri thức: Chứa các tri thức chuyên sâu về lĩnh vực nào đó như mộtchuyên gia Cơ sở tri thức bao gồm: Các sự kiện, các luật, các khái niệm và cácquan hệ

- Động cơ suy diễn: Bộ xử lý tri thức theo mô hình hóa theo cách lập luậncủa chuyên gia Động cơ hoạt động trên thông tin về vấn đề đang xét, so sánhvới tri thức lưu trong Cơ sở tri thức rồi rút ra kết luận

- Kỹ sư tri thức: Người thiết kế, xây dựng và thử nghiệm Hệ chuyên gia

Trang 5

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

Hình 1.1 Cấu trúc của Hệ chuyên gia

Cơ sở tri thức (knowledge base): Gồm các phần tử (hay đơn vị) tri thức, thông thường được gọi là luật (rule), được tổ chức như một cơ sở dữ liệu

Máy suy diễn (interface engine): Công cụ (chương trình hay bộ xử lý) tạo ra sự suy luận bằng cách quyết định xem những luật nào sẽ làm thỏa mãn các sự kiện, các đối tượng; chọn ưu tiên các luật thỏa mãn, thực hiện các luật có tính

ưu tiên cao nhất

Lịch công việc (agenda): Danh sách các luật ưu tiên do máy suy diễn tạo ra thỏa mãn các sự kiện, các đối tượng có mặt trong bộ nhớ làm việc

Bộ nhớ làm việc (working memory): Cơ sở dữ liệu toàn cục chứa các sự kiện phục vụ cho các luật

Khả năng giải thích (explanation facility): Giải nghĩa cách lập luận của hệ thống cho người sử dụng

Khả năng thu nhận tri thức: Cho phép người sử dụng bổ sung các tri thức vào hệthống một các tự động thay vì tiếp nhận tri thức bằng cách mã hóa tri thức một cách tường minh Khả năng thu nhận tri thức là yếu tố mặc nhiên của nhiều hệ chuyên gia

Cơ sở tri thức

Các luật việcBộ nhớ làm

Khả năng giảithích

Khả năng thunhận tri thức

Giao diện người

sử dụngMáy suy diễnLịch công việc

Trang 6

Giao diện người sử dụng (user interface): Là nơi người sử dụng và hệ chuyên gia trao đổi với nhau.

 Cơ sở tri thức còn được gọi là bộ nhớ sản xuất (production memory) trong hệ chuyên gia Trong một cơ sở tri thức, người ta thường phân biệt hai loại tri thức

là tri thức phán đoán (assertion knowledge) và tri thức thực hành (operating

Hình 1.2 Quan hệ giữa máy suy diễn và cơ sở tri thức

Máy suy diễn

Cơ sở tri thứcTri thức phán đoán

Tri thức thực hành

Trang 7

CHƯƠNG 2 THUẬT TOÁN QUINLAN

2.1 Thuật toán Quinlan

Quinlan quyết định thuộc tính phân hoạch bằng cách xây dựng các vectorđặc trưng cho mỗi giá trị của từng thuộc tính dẫn xuất và thuộc tính mục tiêu.Với mỗi thuộc tính dẫn xuất A còn có thể 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ử trong phân hoạch có giá trị thuộc tính dẫn xuất A

là j và có giá trị thuộc tính mục tiêu là ri) / (tổng số phần tử trong phân hoạch cógiá trị thuộc tính dẫn xuất A là j)

Trong đó r1, r2,…, rn là các giá trị của thuộc tính mục tiêu

 Nếu một thuộc tính A có thể nhận một trong 5 giá trị khác nhau thì nó sẽ

Trang 8

Đề bài: Sử dụng thuật toán Quinlan để rút ra quy luật cho những người cóđặc điểm nào có khả đỗ đại học hoặc không theo cơ sở dữ liệu ở bảng sau:

Giải:

Đặt:

A là thuộc tính “Bố hoặc mẹ đỗ đại học”

B là thuộc tính “Điều kiện kinh tế”

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 này có 3 giá trị “Thấp”,

“Trung Bình” và “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)

Trang 9

- Xét thuộc tính C (Học lực), thuộc tính này có 3 giá trị “Trung Bình”, “Khá”

và “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ó 2 giá trị là “Có” và “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ó 2 thuộc tính B và C đều có 3 véc tơ thuộc tính, chọn thuộc tính C để phân

rã tiếp thì sẽ có bảng dữ liệu theo thuộc tính Học lực với giá trị là “Khá” nhưsau:

Thứ tự Tên

người

Bố hoặc

mẹ đỗ đạihọc

Điềukiện kinh tế

Có họcthêm

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 này có 2 giá trị “Thấp” và

“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ó 2 giá trị là “Có” và “Không”

Trang 10

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ả 3 thuộc tính trên đều có 2 véc tơ đơn vị, chọn thuộc tính A (Bố hoặc 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 thì trượt

- Nếu học lực giỏi thì đỗ

- Nếu học lực khá mà có bố hoặc mẹ đỗ đại học thì đỗ

- Nếu học lực khá mà bố và mẹ không đỗ đại học thì trượt

Trang 11

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 ngữ bậc cao Hơn thế, C++ đôi khi được đánh giá như là "có khả năng di động", cho thấy sự khác nhau quan trọng giữa nó với ngôn ngữ bậc thấp như là

Assembler, đó là việc mã C++ có thể được dịch và thi hành trong hầu hết cácmáy tính, hơn hẳn các ngôn ngữ hiện tại trong khi đó thì Assembler chỉ có thể chạy trong một 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 giản, với các chức 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ácthủ 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

Trang 12

- 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 và 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 của ngôn ngữ cho phép dùng tới bộ nhớ máy tính qua việc sử dụngkiểu dữ liệu point

- Số lượng từ khóa rất nhỏ gọn

- Các tham số được đưa vào các hàm bằng giá trị, không bằng địa chỉ

- Hàm các con trỏ cho phép hình thành một nền tảng ban đầu cho tính

đóng và tính đa hình

- 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

Trang 13

cout<<"Ta co bang du lieu :\n\n";

for(int i = 0; i < hang; i++)

void getCol(string cot[20],string thuocTinh[20],string tbl[20][20],int

&soThuoctinh,int somau,int vitri)

Trang 14

int tinhVecto(string tbl[20][20],int somau,int vitri,int socot,string luat[20],int

&soluat,string biLoai[20],int &sttBiloai)

Trang 18

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

Trang 19

Hình 3.4 Kết quả của chương trình minh họa

Trang 20

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ểuhơn về học phần CÁC HỆ CƠ SỞ TRI THỨC nói chung và thuật toán Quinlannói riêng Em xin chân thành cảm ơn thầy Nguyễn Hạnh Phúc đã giúp đỡ emhoàn thành đề tài này!

Trang 21

TÀI LIỆU THAM KHẢO

1 Hoàng Kiếm, Các hệ cơ sở tri thức, Nhà xuất bản ĐHQG TPHCM, 2002

2 Ngô Trung Việt, Trí tuệ nhân tạo, Nhà xuất bản Giáo dục, 1995

3 Nguyễn Thanh Thủy, Trí tuệ nhân tạo, Nhà xuất bản Giáo dục, 1997

4 Đặng Hoàng Anh, Trí tuệ nhân tạo và hệ chuyên gia, Nhà xuất bản Hàng hải,

2015

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w