Nếu như trước đây, các tình nguyện viên sẽ phải tìm trên bản đồ, xem xét cách đi nào tối ưu nhất để chỉ dẫn cho các thí sinh, thì nay với hệ chuyên gia “Tiếp sức mùa thi” sẽ giúp cho các
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN CÔNG NGHỆ TRI THỨC
Đề tài:
XÂY DỰNG HỆ CHUYÊN GIA
“TIẾP SỨC MÙA THI”
Giảng viên hướng dẫn : PGS.TS Phan Huy Khánh Nhóm học viên : Bạch Ngọc Dương
Nguyễn Hữu Thị Mỹ Linh Hoàng Anh Sơn
Trang 2MỤC LỤC
TỔNG QUAN ĐỀ TÀI 3
I Đặt vấn đề 3
II Đối tượng của đề tài 3
III Mục đích 3
IV Mục tiêu 3
VI Kết quả dự kiến 4
CƠ SỞ LÝ THUYẾT 5
I Hệ chuyên gia 5
I.1 Khái niệm 5
I.2 Hoạt động của một hệ chuyên gia 5
I.3 Kiến trúc của hệ chuyên gia 6
I.4 Biểu diễn tri thức trong hệ chuyên gia 7
II Ngôn ngữ lập trình Prolog 7
II.1 Một số khái niệm 7
II.2 Các tính chất của Prolog 7
II.3 Sự kiện và luật 8
II.3.1 Sự kiện 8
II.3.2 Luật 8
PHÁT BIỂU VÀ BIỂU DIỄN BÀI TOÁN 9
I Chọn bài toán 9
I.1 Khảo sát thực tế 9
I.2 Nội dung thực hiện được trong hệ chuyên gia “Tiếp sức mùa thi” 9
II Các bước phát triển hệ chuyên gia 9
II.1 Phát biểu bài toán 9
II.2 Đặc tả bài toán 10
II.2.1 Xác định các biến và hằng 10
II.2.2 Xây dựng vị từ 11
II.2.3 Xây dựng logic mệnh đề và logic vị từ 12
KẾT QUẢ THỰC HIỆN 13
I Đặt câu hỏi cho bài toán 13
Trường hợp 1 13
Trường hợp 2 14
Trường hợp 3 14
Trường hợp 4 15
DANH MỤC HÌNH Hình 1: Hoạt động của hệ chuyên gia 6
Hình 2: Quan hệ giữa lĩnh vực vấn đề và lĩnh vực tri thức 6
Hình 3: Những thành phần cơ bản của một hệ chuyên gia 7
Hình 4: Quan hệ giữa máy suy diễn và cơ sở tri thức 8
Hình 5: Giao diện chính chương trình 14
Hình 6: Minh họa trường hợp 1 14
Hình 7:Minh họa trường hợp 2 15
Hình 8: minh họa trường hợp 3 16
Trang 3Xây dựng hệ chuyên gia “Tiếp sức mùa thi”
Hình 9: minh họa trường hợp 4 16
Trang 4PHẦN I
TỔNG QUAN ĐỀ TÀI
I Đặt vấn đề
Trong bối cảnh các thi sinh từ các nơi tập trung về Thành Phố Đà Nẵng để dự thi đại học đặc biệt là cuối tháng năm và đầu tháng sáu hàng năm Phần lớn các thí sinh từ các nơi khác đến không thông thuộc được đường đi ở Thành phố, dẫn đến khó khăn trong việc tìm đường đến được địa điểm thi mong muốn
Chương trình tiếp sức mùa thi được Đoàn thanh niên Đại học Đà Nẵng đề xuất nhằm giúp các thí sinh ở địa phương và thành phố khác có thể đi đến các địa điểm thi được chính xác và tối ưu
Nếu như trước đây, các tình nguyện viên sẽ phải tìm trên bản đồ, xem xét cách đi nào tối ưu nhất để chỉ dẫn cho các thí sinh, thì nay với hệ chuyên gia “Tiếp sức mùa thi” sẽ giúp cho các tình nguyện viên công việc này, hệ chuyên gia này sẽ giúp cho các thí sinh đến địa điểm đích một cách chính xác và với quãng đường đi ngắn nhất, và với thời gian xử lý ngắn hơn nhiều so với việc tìm kiếm thủ công trên bản đồ
Xuất phát từ yêu cầu thực tế trên chúng tôi quyết định chọn đề tài :“Xây dựng hệ chuyên
gia tiếp sức mùa thi”
II Đối tượng của đề tài
Hệ chuyên gia “Tiếp sức mùa thi” sẽ làm các công việc là tìm đường đi tồn tại giữa điểm xuất phát và điểm đích, sau đó sẽ đưa ra con đường ngắn nhất từ địa điểm đến và địa điểm đích
Các tình nguyện viên là các chuyên gia trước kia
Người sử dụng là các thí sinh dự thi
III Mục đích
Tìm hiểu quy trình thực tế “chương trình Tiếp Sức Mùa Thi” của Đại học Đà Nẵng Từ đó phân tích, áp dụng Công nghệ thông tin để thiết kế, xây dựng một hệ chuyên gia nhằm mục đích
hỗ trợ cho các tình nguyện viên thuận tiện trong việc hướng dẫn các thí sinh đến các địa điểm thi một cách nhanh chóng, với độ chính xác cao, tiết kiệm thời gian và nhân lực
IV Mục tiêu
Thu thập dữ liệu chương trình Tiếp Sức Mùa Thi của Đại học Đà Nẵng
Thu thập thông tin về các tuyến đường trong thành phố Đà Nẵng
Xây dựng tập các sự kiện, cơ sở luật dựa trên các thông tin và dữ liệu thu thập được
Xây dựng cơ sở dữ liệu tri thức cho hệ chuyên gia dựa trên các luật và sự kiện
Trang 5Xây dựng hệ chuyên gia “Tiếp sức mùa thi”
Cài đặt các luật và sự kiện xây dựng được bằng ngôn ngữ Prolog
VI Kết quả dự kiến
Cho phép thí sinh nhập tên địa điểm xuất phát
Cho phép thí sinh nhập đường xuất phát
Cho phép thí sinh nhập tên địa điểm dự thi (tên trường)
Cho phép thí sinh nhập địa chỉ của địa điểm dự thi
Hệ chuyên gia đưa ra các lộ trình và hướng dẫn chi tiết cách đi
Bố cục trình bày:
Phần I: Tổng quan
Phần II: Cơ sở lý thuyết
Phần III: Phát biểu và đặc tả bài toán
Phần IV: Xây dựng cơ sở dữ liệu tri thức và kết quả thực hiện
Trang 6PHẦN II
CƠ SỞ LÝ THUYẾT
I Hệ chuyên gia
I.1 Khái niệm
Hệ chuyên gia là một chương trình máy tính thông minh giải quyết các bài toán khó “tầm
cỡ chuyên gia” thuộc lĩnh vực hẹp nào đó
I.2 Hoạt động của một hệ chuyên gia
Một hệ chuyên gia bao gồm ba thành phần chính là cơ sở tri thức (knowledge base), máy suy diễn hay mô tơ suy diễn (inference engine), và hệ thống giao tiếp với người sử dụng (user interface) Cơ sở tri thức chứa các tri thức để từ đó, máy suy diễn tạo ra câu trả lời cho người sử dụng thông qua hệ thống giao tiếp
Người sử dụng cung cấp sự kiện (fact) là những gì đã biết, đã có thật hay những thông tin
có ích cho hệ chuyên gia, và nhận được những câu trả lời là những lời khuyên hay những gợi ý đúng đắn (expertise)
Hoạt động của hệ chuyên gia dựa trên tri thức được minh họa như sau:
Hình 1: Hoạt động của hệ chuyên gia Mỗi hệ chuyên gia chỉ đặc trưng cho một lĩnh vực vấn đề (problem domain) nào đó, như y học, tài chính, khoa học hay công nghệ ,… mà không phải cho bất cứ một lĩnh vực vấn đề nào Tri thức chuyên gia để giải quyết một vấn đề đặc trưng được gọi là lĩnh vực tri thức
Người sử dụng (User)
Hệ thống giao tiếp (User Interface)
Cơ sở tri thức (Knowledge Base)
Máy suy diễn (Interface Engine)
Lĩnh vực vấn đề (Problem Domain) Lĩnh vực tri thức (Knowledge Domain)
Trang 7Xây dựng hệ chuyên gia “Tiếp sức mùa thi”
Hình 2: Quan hệ giữa lĩnh vực vấn đề và lĩnh vực tri thức
I.3 Kiến trúc của hệ chuyên gia
Những thành phần cơ bản của một hệ chuyên gia:
Hình 3: Những thành phần cơ bản của một 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 (Inference Egine) Công cụ (chương trình, hay bộ xử lý) tạo ra sự suy lụân bằng cách sẽ 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 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ậh
Khả năng giải thích (explaination 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 (explaination facility) Cho phép người sử dụng bổ sung các tri thức vào hệ thống một cách tự động thay vì tiếp nhận tri thức vào hệ thống một cách tự động thay vì tiếp nhận tri thức vào hệ thống 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
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ở trí thức
Máy suy diễn Lịch công việc
thu nhận tri thức
Giao diện người sử dụng
Trang 8Xây dựng hệ chuyên gia “Tiếp sức mùa thi”
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 knowledge)
Các tri thức phán đoán mô tả các tình huống đã được thiết lập hoặc sẽ được thiết lập Các tri thức thực hành thể hiện những hậu quả rút ra hay những thao tác cần phải hoàn thiện khi một tình huống đã được thiết lập hoặc sẽ được thiết lập trong lĩnh vực đang xét Các tri thức thực hành thường được thể hiện bởi các biểu thức để dễ hiểu và dễ triển khai thao tác đối với người sử dụng
Hình 4: Quan hệ giữa máy suy diễn và cơ sở tri thức
Từ vệc phân biệt hai loại tri thức, người ta nói máy suy diễn là công cụ triển khai các cơ chế (hay kỹ thuật) tổng quát để tổ hợp các tri thức phán đoán và các tri thức thực hành Hình trên đây mô tả quan hệ hữu cơ giữa máy suy diễn và cơ sở tri thức
I.4 Biểu diễn tri thức trong hệ chuyên gia
Có rất nhiều phương pháp biểu diễn tri thức trong máy
Dùng luật sản xuất, hệ chuyên gia dựa trên các luật
Mạng ngữ nghĩa
Ngôn ngữ nhân tạo
Bộ OAV(Object Attributes Values)
Khung (Frame)
II Ngôn ngữ lập trình Prolog
II.1 Một số khái niệm
Prolog là một ngôn ngữ lập trình kí hiệu (Symbolic Programming Language) tương tự các ngôn ngữ lập trình hàm (Functional) hay phi số (non-nummerical) Prolog rất thích hợp để giải quyết các bài toàn liên quan đến các đối tượng (Object) và mối quan hệ (Relation) giữa chúng Chương trình Prolog = các đối tượng dữ liệu và quan hệ giữa các đối tượng dữ liệu
Hạng (Term) được xem là đối tượng dữ liệu
Hạng và quan hệ giữa các hạng tạo thành mệnh đề
Hạng gồm: Hạng sơ cấp, hạng phức hợp
II.2 Các tính chất của Prolog
Ngôn ngữ thông dịch
8
Máy suy diễn
Cơ sở tri thức Tri thức phán đoán Tri thức thực hành
Trang 9Xây dựng hệ chuyên gia “Tiếp sức mùa thi”
Ngôn ngữ biên dịch
Không có phép gán
Hợp nhất
Không có biến toàn cục
Không có vòng lặp
Đệ quy
Không có cấu trúc điều kiện
Quay lui
Nghĩa khai báo
Nghĩa thủ tục
II.3 Sự kiện và luật
Chương trình Prolog và tập hợp các sự kiện (event) và luật (rule) xử lí và mô tả quan hệ giữa các đối tượng
II.3.1 Sự kiện
Một sự kiện là một khẳng định một thực thể có một hoặc một vài tính chất
Quy ước:
P(A1, ,An)
P: là tên của tính chất
A1, ,An là các đối:
Nguyên tử (Atom)
Số (number)
Biến (variable)
Cấu trúc phức hợp (cây, danh sách, chuỗi )
II.3.2 Luật
Gồm 2 phần:
Phần bên trái chỉ kết luận, được gọi là đầu (head) của luật
Phần bên phải chỉ điều kiện, được gọi là thân của luật Nếu có nhiều điều kiện thì chúng cách nhau bởi dấu phẩy
Trang 10PHẦN III
PHÁT BIỂU VÀ BIỂU DIỄN BÀI TOÁN
I Chọn bài toán
I.1 Khảo sát thực tế
Chương trình “Tiếp sức mùa thi” sẽ yêu cầu các tình nguyện viên làm các công việc như sau:
Giúp các thí sinh ở các nơi khác đến được địa điểm thi bằng cách hướng dẫn đường đi từ trạm “Tiếp sức mùa thi” đó đến địa điểm thi của thí sinh
Nếu các thí sinh hỏi về các lĩnh vực khác về các thông tin về trường, về đường đi thì các tình nguyện viên tùy theo sự hiểu biết của mình mà cung cấp thông tin cho các thí sinh
Ngoài ra, nếu các thí sinh có nhu cầu tìm chỗ ở, các tình nguyện viên sẽ xem xét trong danh sách các hộ dân cho các thí sinh ở trọ để đưa ra được chỗ trọ cho các thí sinh vừa gần chỗ thi và chi phí trọ tùy theo khả năng tài chính của thí sinh đó
I.2 Nội dung thực hiện được trong hệ chuyên gia “Tiếp sức mùa thi”
Hệ chuyên gia “Tiếp sức mùa thi” chỉ giải quyết công việc chỉ dẫn đường cho các thí sinh
đến các địa điểm mà thí sinh muốn đến Thí sinh có thể hỏi cách đi từ trạm “Tiếp sức mùa thi” đến địa điểm thi của thí sinh, hoặc thí sinh sẽ hỏi cách đi từ trạm “Tiếp sức mùa thi” đến đường
mà thí sinh muốn đến, hoặc cách đi từ một đường bất kỳ đến một đường khác mà thí sinh thắc mắc, hoặc cách đi từ một đường bất kỳ (có thể là nơi ở trọ của thí sinh) đển địa điểm thi của thí sinh
II Các bước phát triển hệ chuyên gia
II.1 Phát biểu bài toán
Một thí sinh đến địa điểm tư vấn yêu cầu chỉ đường đi đến địa điểm thi là trường Phan Châu Trinh hoặc một trường nào đó (Nguyễn Thị Hồng Gấm, Cao Đẳng Công Nghệ, )
Trường Phan Châu Trinh có địa chỉ là số 10 đường Lê Lợi
Trường Hoa Lư có địa chỉ là số 10 đường Phan Thanh
Trường Đại học Bách Khoa có địa chỉ là số 54 Nguyễn Lương Bằng
Trường Cao Đẳng Công Nghệ có địa chỉ là số 48 Cao Thắng
Trường Nguyễn Thị Hồng Gấm có địa chỉ là số 100 Trần Cao Vân
Trường Trưng Vương có địa chỉ là số 80 Yên Bái
Thí sinh xuất phát từ địa điểm ban đầu để tới đích
Địa điểm xuất phát có thể là Bến Xe có địa chỉ là 124 Điện Biên Phủ
Địa điểm xuất phát có thể là Ga Đà Nẵng có địa chỉ 215 Hải Phòng
Trang 11Xây dựng hệ chuyên gia “Tiếp sức mùa thi”
Thí sinh muốn đến địa điểm thi có thể qua đường đi trực tiếp hoặc qua đường trung gian
Tồn tại đường đi trực tiếp từ Điện Biên Phủ đến Lý Thái Tổ
Tồn tại đường đi trực tiếp từ Điện Biên Phủ đến Hà Huy Tập
Tồn tại đường đi trực tiếp từ Hà Huy Tập đến Trần Cao Vân
Tồn tại đường đi trực tiếp từ Lý Thái Tổ đến Hùng Vương
Tồn tại đường đi trực tiếp từ Hùng Vương đến Yên Bái
Nếu có đường đi trực tiếp giữa hai đường xuất phát và đường đích thì tồn tại đường đi từ đường xuất phát đến đường đích
Nếu không tồn tại đường đi trực tiếp từ đường xuất phát đến đường đích và phải qua một đường đi trung gian thì tồn tại đường đi từ đường xuất phát đến đường đích
Kết quả đường đi là phải đi từ đường xuất phát đến đường đích
Nếu tồn tại đường đi từ đường xuất phát đến đường đích và đường đích chứa địa điểm thi thì xây dựng được lộ trình (dãy đường đi) đi từ đường xuất phát đến địa điểm thi
Nếu tồn tại đường đi từ đường xuất phát tới đường đích và đường đích phải chứa địa điểm
có địa chỉ A thì xây dựng được lộ trình đi từ đường xuất phát đến địa điểm có địa chỉ A
Nếu tồn tại đường đi từ địa điểm A đến địa điểm B và đường xuất phát phải chứa địa điểm A, đường đích phải chứa địa điểm B thì xây dựng được lộ trình đi từ địa điểm A tới địa điểm B
Nếu tồn tại đường đi từ địa điểm A tới địa điểm có địa chỉ B và đường xuất phát phải chứa địa điểm A, đường đích phải chứa địa điểm có địa chỉ B thì xây dựng được lộ trình
đi từ địa điểm A tới địa điểm có địa chỉ B
II.2 Đặc tả bài toán
II.2.1 Xác định các biến và hằng
Các hằng trong bài toán thể hiện các đối tượng là tên đường, tên trường, số địa chỉ của địa điểm thi
Hằng thể hiện tên trường
1 daihocbachkhoa Trường Đại Học Bách Khoa
2 nguyenthihonggam Trường Nguyễn Thị Hồng Gấm
4 caodangcongnghe Trường Cao Đẳng Công Nghệ
Trang 12Xây dựng hệ chuyên gia “Tiếp sức mùa thi”
Hằng thể hiện tên đường
2 nguyenluongbang Đường Nguyễn Lương Bằng
Hằng thể hiện địa chỉ của các trường là các số tương ứng địa chỉ của các trường
100 (trường Nguyễn Thị Hồng Gấm nằm tại số 100 Điện Biên Phủ)
50 (trường Hoa Lư nằm tại số 50 Trần Cao Vân)
54 (trường Đại học Bách Khoa nằm tại số 54 Nguyễn Lương Bằng)
48 (trường Cao đẳng Công Nghệ nằm tại số 48 Cao Thắng)
10 (trường Phan Châu Trinh nằm tại số 10 Lê Lợi)
80 (trường Trưng Vương nằm tại số 80 Yên Bái)
20 (trường Kim Đồng nằm tại số 20 Trần Bình Trọng)
II.2.2 Xây dựng vị từ
2 DUONGDITRUCTIEP(X,Y) Tồn tại đường đitrực tiếp từ đường X đến
đường Y
4 LOTRINH_DUONG_DIADIEM(X,Y,P,N) Lộ trình từ đường xuất phát X với dãy các
đường P và tổng đường N phải đi để đến địa điểm đích Y
5 LOTRINH_DUONG_DIACHI(X,[S,D],P,N) Lộ trình từ đường xuất phát X với dãy các
đường P và tổng đường N phải đi để đến địa chỉ đích tại số nhà S đường D chứa địa điểm thi
6 LOTRINH_DIADIEM_DIADIEM(X,Y,P,N) Lộ trình từ địa điểm xuất phát X với dãy các
đường P và tổng đường N phải đi để đến địa điểm đích Y
7 LOTRINH_DIADIEM_DIACHI(X,[S,D],P,N) Lộ trình từ địa điểm xuất phát X với dãy
12
Trang 13Xây dựng hệ chuyên gia “Tiếp sức mùa thi”
các đường P và tổng đường N phải đi để đến địa chỉ đích tại số nhà S đường D chứa địa điểm thi
II.2.3 Xây dựng logic mệnh đề và logic vị từ
1) Nếu có đường đi trực tiếp giữa hai đường xuất phát và đường đích thì tồn tại đường đi từ đường xuất phát đến đường đích
( X) ( Y) DUONGDITRUCTIEP(X,Y) DUONGDI(X,Y)
2) Nếu không tồn tại đường đi trực tiếp từ đường xuất phát đến đường đích và phải qua một đường đi trung gian thì tồn tại đường đi từ đường xuất phát đến đường đích
( X) ( Y) ( Z)
DUONGDITRUCTIEP(X,Z) ^ DUONGDITRUCTIEP(Z,Y) DUONGDI(X,Y)
3) Nếu tồn tại đường đi từ đường xuất phát đến đường đích và đường đích chứa địa điểm thi Y thì xây dựng được lộ trình (dãy đường đi) đi từ đường xuất phát đến địa điểm thi
(Y ) ( X) ( Z) ( T)
DUONGDI(X,Z) ^ DIADIEM(Y,T,Z) LOTRINH_DUONG_DIADIEM(X,Y,P,N)
4) Nếu tồn tại đường đi từ địa điểm X đến địa điểm Y và đường xuất phát phải chứa địa điểm X, đường đích phải chứa địa điểm Y thì xây dựng được lộ trình đi từ địa điểm X tới địa điểm Y (X ) (Y ) ( T) ( Z) ( T) ( K)
DIADIEM(X,T,Z) ^ DIADIEM(Y,H,K) ^ DUONGDI(Z,H)
LOTRINH_DIADIEM_DIADIEM(X,Y,P,N) 5) Nếu tồn tại đường đi từ địa điểm X đến địa chỉ tại số nhà Z đường Y và đường xuất phát phải chứa địa điểm X, địa chỉ đích thì xây dựng được lộ trình đi từ địa điểm X tới địa chỉ Y
(X ) (Y ) ( S) ( Z) ( T) ( K)
DUONGDI(X,Y) ^ DIADIEM(X,T,K) ^ DIADIEM(_,Z,Y)
LOTRINH_DIADIEM_DIACHI(K,[Z|Y],P,N) 6) Nếu tồn tại đường đi từ đường xuất phát X đến địa chỉ tại số nhà Z đường Y địa chỉ đích thì xây dựng được lộ trình đi từ đường xuất phát X tới địa chỉ tại số nhà Z đường Y
(X ) (Y ) ( T) ( Z) ( T) ( S)
DUONGDI(X,Y) ^ DIADIEM(_,Z,Y) LOTRINH_DUONG_DIACHI(X,[Z,Y],P,N)