Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
1,92 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG ----------------- BÀI THU HOẠCH MÔN HỌC BIỂUDIỄNTRITHỨCVÀỨNGDỤNG ĐỀ TÀI CÁCPHƯƠNGPHÁPBIỂUDIỄNTRITHỨCVÀỨNGDỤNGVÀOTRÒCHƠICỜCARO GVHD: PGS.TS. Đỗ Văn Nhơn Học viên thực hiện: Huy ̀ nh Thi ̣ My ̃ Hô ̀ ng Mã số học viên: CH1101086 TP.HCM, năm 2012 MỤC LỤC Trang MỞ ĐẦU 1 Chương 1: TỔNG QUAN VỀ BIỂUDIỄNTRITHỨCVÀ GIẢI TOÁN DỰA TRÊN TRITHỨC .2 1.1. Khái niệm trithức .2 1.2. Khám niệm về biểudiễntrithức 2 1.3. Các dạng trithức .3 Chương 2: CẤU TRÚC CỦA HỆ GIẢI TOÁN DỰA TRÊN TRITHỨC 4 2.1. Cấu trúc hệ thống 4 2.2. Vấn đề biểudiễntrithức .5 Chương 3: PHƯƠNGPHÁPBIỂUDIỄNTRITHỨC .6 3.1. Cácphươngphápbiểudiễntrithức 6 3.2. Suy diễn tự động .7 Chương 4: TỔNG QUAN VỀ CÁC CHIẾN LƯỢC HEURISTIC .9 4.1. Khái niệm Heuristic .9 4.2. Các chiến lược tìm kiếm Heuristic (tìm kiếm có đối thủ) .10 4.3. Hàm đánh giá vàcácphươngpháp đánh giá kinh nghiệm trong các chiến lược tìm kiếm Heuristic 19 Chương 5: TÌM HIỂU VỀ TRÒCHƠICỜCAROVÀỨNGDỤNGCÁC CHIẾN LƯỢC HEURISTIC VÀOTRÒCHƠICỜCARO .21 5.1. Giới thiệu về tròchơicờcaro 21 5.2. Các kinh nghiệm trong tròchơicờcaro 22 5.3. Ứngdụngcác chiến lược tìm kiếm Heuristic cho tròchơicờcaro .23 Chương 6: Ý TƯỞNG VÀ CHƯƠNG TRÌNH TRÒCHƠICỜCARO .26 6.1. Ý tưởng cho chương trình tròchơicờcaro .26 6.2. Giới thiệu về chương trình tròchơicờcaro 31 TÀI LIỆU THAM KHẢO 34 1 MỞ ĐẦU Trong khoa học trí tuệ nhân tạo, mô hình phươngphápbiểudiễntrithức là một bước ngoặc quan trọng trong việc thiết kế các hệ cơ sở trithứcvàcác hệ chuyên gia. Ngày nay, có nhiều phươngphápbiểudiễntrithức đã được đề xuất vàứng dụng. Trithức là một hệ chuyên gia được biểudiễn theo nhiều phươngpháp khác nhau. Tùy theo hệ chuyên gia người ta sử dụng một hoặc đồng thời cả nhiều phương pháp. Mục tiêu chính biểudiễntrithức trong máy tính là phục vụ cho việc thu nhận trithứcvào máy tính, truy xuất trithứcvàthực hiện các phép suy luận dựa trên những trithức đã lưu trữ. Tuy có nhiều phươngphápbiểudiễntrithức tùy theo từng trường hợp, ta nên chọn phươngpháp nào cho phù hợp. Biểudiễntrithức được ứngdụng nhiều trong các bài toán thực tế, nó có đến hàng trăm giải thuật. Trong bài tiểu luận này em xin trình bày sơ lược về cácphươngphápbiểudiễntrithứcvàứngdụng nó để giải quyết bài toán chơicờ caro. Qua đây, em xin gửi lời cảm ơn sâu să ́ c đến PGS.TS. Đỗ Văn Nhơn, người đã tận tâm truyền đạt những kiến thức nền tảng cơ bản cho chúng em về môn học “Biểu diễntrithứcvàứng dụng”. Bên cạnh đó cũng không thể không nhắc đến công lao trợ giúp không mệt mỏi của các chuyên gia cố vấn qua mạng thuộc Trung tâm phát triển CNTT – ĐH Quốc gia TP.HCM và toàn thể các bạn bè học viên cùng lớp. 2 Chương 1 TỔNG QUAN VỀ BIỂUDIỄNTRITHỨCVÀ GIẢI TOÁN DỰA TRÊN TRITHỨC 1.1. Khái niệm trithứcTrithức không có định nghĩa chính xác bởi trithức là một khái niệm trừu tượng. Tuy nhiên vì phải tập hợp và xử lý được “tri thức” bằng máy tính nên ta cố gắng đưa ra định nghĩa về trithức càng hình thức càng tốt. - Khái niệm: Trithức là sự hiểu biết về một lĩnh vực của vấn đề. - Lĩnh vực: Miền chủ đề được chú trọng. - Tri thức: Thường bao gồm các khái niệm, các loại sự kiện, các luật. Ví dụ: + Kiến thức về y học và khả năng chuẩn đoán bệnh là tri thức. + Biết một tam giác cócác yếu tố nào cùng với các công thức liên quan giữa các yếu tố là tri thức. + Biết các dạng cấu trúc dữ liệu thường dùng trong lập trình cùng với các thuật toán xử lý cơ bản trên các cấu trúc là tri thức. 1.2. Khám niệm về biểudiễntrithứcBiểudiễntrithức (Knowledge Representation) là sự diễn đạt và thể hiện của trithức dưới những dạng thích hợp để có thể tổ chức một hệ cơ sở trithức của hệ thống. Trong tin học biểudiểntrithức là một phươngpháp mã hóa trithức sao cho máy tính có thể xử lí được chúng. Cũng như dữ liệu có nhiều cách khác nhau để biểudiễntrithức trong máy tính. Tuy nhiên ta phải chọn một phươngpháp nào phù hợp để đưa lên máy tính. Các công cụ cho việc biểudiễntrithức đơn giản như: + Các cấu trúc dữ liệu cơ bản: Dãy danh sách, tập hợp, mẫu… + Các cấu trúc dữ liệu trừu tượng: ngăn xếp, hàng đợi. + Các mô hình toán học: đồ thị, cây… + Các mô hình đối tượng. + Các ngôn ngữ đặc tả tri thức. Ví dụ: Kiến thức về một hình chữ nhật cần thiết cho việc giải bài toán có thể được biểudiễn gồm: 3 + Một tập hợp các biến thực, mỗi biến đại diện cho một yếu tố của hình chữ nhật như chiều dài, chiều rộng. + Một tập hợp các công thức liên quan đến tính toán trên các yếu tố của hình chữ nhật. 1.3. Các dạng trithức - Trithức mô tả: Các khái niệm, các đối tượng cơ bản. - Trithức cấu trúc: Các khái niện cấu trúc, các quan hệ, các đối tương phức hợp,… - Trithức thủ tục: Các luật dẫn, các thủ tục xử lý, các chiến lược,… - Trithức meta: trithức về các dạng trithức khác và cách sử dụng chúng. 4 Chương 2 CẤU TRÚC CỦA HỆ GIẢI TOÁN DỰA TRÊN TRITHỨC 2.1. Cấu trúc hệ thống Cấu trúc của hệ giải toán thông minh Các thành phần chính của hệ thống trong việc giải toán tổng quát trong một miền tri thức: - Bộ suy diễntrithức (Knowledge Base): Đây là trái tim của hệ thống, trong đó chứa các kiến thức cần thiết trong việc giải các bài toán. - Bộ suy diễn hay mô tả suy diễn: Bộ suy diễn áp dụng kiến thức được lưu trữ trong cơ sở trithức để giải quyết hay tìm lời giải cho bài toán đặt ra. Sự tách biệt của bộ suy diễnvà một cơ sở trithức là sự tách biệt quan trọng: Sự tách biệt: tính độc lập tương đối giữa cáccơ sở trithứcvà bộ suy diễn. Cần có sự tách biệt này vì: a. Việc biểudiễntrithức được thực hiện một cách tự nhiên hơn, gần gũi hơn với quan niệm của con người. b. Các nhà thiết kế sẽ tập trung vào việc nắm bắt và tổ chức cơ sở trithức hơn là phải đi vào những chi tiết cài đặt trên máy tính. c. Giúp tăng cường tính mô-đun hóa của phần cơ sở tri thức, bộ suy diễnvà bộ phận cập nhật, hiệu chỉnh kiến thức. Sự bổ sung hay loại bỏ một phần kiến thức sẽ không gây ra các hiệu ứng lề các thành phần cho hệ thống. d. Cho phép cùng một chiến lược điều khiển và giao tiếp có thể được sử dụng cho nhiều hệ thống khác nhau. 5 e. Sự tách biệt của kiến thức giải bài toán và bộ suy diễn còn giúp ta có thể thử nghiệm nhiều chiến lượt điều khiển khác nhau trên cùng một cơ sở tri thức. 2.2. Vấn đề biểudiễntrithứcBiểudiễntrithức đóng vai trò quan trọng trong thiết kế và xây dựng một hệ giải toán thông minh vàcác hệ chuyên gia. Phươngphápbiểudiễntrithức thích hợp sẽ tạo nên một hệ thống có trái tim khỏe mạnh. Xây dựngvà phát triển cácphươngphápbiểudiễntrithứcvà một hướng nghiên cứu quan trọng trong các nhà nghiên cứu Trí tuệ nhân tạo. Suy diễn tự động để giải quyết các bài toán dựa trên trithức cũng là một vấn đề rất quan trọng. Cácphươngpháp suy diễn tự động nhằm vận dụng kiến thức đã biết trong quá trình lập luận giải quyết vấn đề, trong đó quan trọng nhất là các chiến lược điều khiển giúp phát sinh các sự kiện mới từ các sự kiện đã có. Xây dựngvà phát triển cácphươngphápbiểudiễntrithức là một hướng nghiên cứu quan trọng cho các nhà nghiên cứu về Trí tuệ nhân tạo. 6 Chương 3 PHƯƠNGPHÁPBIỂUDIỄNTRITHỨC 3.1. Cácphươngphápbiểudiễntrithức 3.1.1. Biểudiễn dựa trên logic hình thức Sử dụngcácbiểuthức logic hình thức trong 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ả một ngôn ngữ lập trình hỗ trợ cho phươngpháp này. Đó là ngôn ngữ lập trình PROLOG. Trong ngôn ngữ PROLOG chỉ cần khai báo sự kiện vàcác luật. Hệ thống sẽ thực hiện giải quyết vấn đề được yêu cầu dựa trên trithức được khai báo. 3.1.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 dẫn trong đó <giả thiết> và <kết luận> là các tậ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. 3.1.3. Mạng ngữ nghĩa Mạng ngữ nghĩa (semantic network) có dạng đồ 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 trithứ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. Nhận xét: Mô hình khá trừu tượng và khái quát, trong áp dụng phải phát triển các mô hình trithức cụ thể hơn. 3.1.4. Các khung Các khung (frame) thể hiện các khái niệm dưới dạng các cấu trúc mẫu tin cá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) 7 - Các thuộc tính - Giá trị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. 3.2. Suy diễn tự động 3.2.1. Khái niệm suy diễn tự động Suy diễn nhằm vận dụng kiến thức đã biết trong quá trình lập luận giải quyết vấ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ó. Suy diễn tự động: 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ễncơ bản: - Suy diễn tiến. - Suy diễn lùi. 3.2.2. Hợp giải trong trithức dạng logic Phương pháp: Thực hiện quá trình phát sinh sự kiện mới bằng cách sử dụngcác luật suy diễncơ bản trên cácbiểuthức logic như: Modus Ponens, Modus Tollens, tam đoạn luận. Trong logic vị từ: Quá trình hợp giải có thể được cài đặt dựa trên kỹ thuật hợp nhất, PROLOG là một ngôn ngữ lập trình được thiết kế với chức năng suy diễn theo phươngpháp này. Hợp giải trong trithức dạng logic: - Phương pháp: Thực hiện quá trình phát sinh sự kiện mới bằng cách sử dụngcác luật suy diễncơ bản trên cácbiểuthức logic như: Modus Ponens, Modus Tollens, tam đoạn luận. - Trong logic vị từ: Quá trình hợp giải có thể được cài đặt dựa trên kỹ thuật hợp nhất (unification) và quay lui (backtracking). - PROLOG là một ngôn ngữ lập trình được thiết kế với chức năng suy diễn theo phươngpháp này. 3.2.3. Suy diễn tiến Phương pháp: Suy dẫ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 nhờ dùngcác luật mà phần giả thiết khớp với sự