Từ khi thiết bị tính toán đầu tiên (máy tính Von Neuman) ra đời, đến những thiết bị tính toán nhẹ, khả chuyển như laptop, tablet, thiết bị mobile, chúng ngày càng thâm nhập vào cuộc sống, và là một phần không thể thiếu của mỗi con người.Với sự tiến bộ của các công nghệ phát triển trí tuệ nhân tạo, những thiết bị tính toán tưởng chừng như vô giác, và chỉ làm theo những gì được lập trình sẵn, đã có những tri thức và sự suy luận dựa trên tri thức như con người. Chúng xuất hiện ngày càng nhiều trong hầu hết các lĩnh vực của đời sống, từ quân đội đến y tế, quản lý, giáo dục.
Trang 1ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
- -Đề tài: Hệ truy vấn sửa chữa xe máy
Giáo viên hướng dẫn : Ts.Phạm Lê Thị Anh Thư Sinh viên thực hiện : Đặng Vũ Hải Long - 10520386
Bùi Hoàng Khánh Duy – 10520379
Lê Phúc – 10520385 Cái Huy Quốc Thắng – 10520381
……
TP.HỒ CHÍ MINH 12/2013
BÁO CÁO ĐỒ ÁN Biểu Diễn Tri Thức
Và Suy Luận
Trang 2LỜI CẢM ƠN
Chúng em xin được chân thành cảm ơn cô Phạm Lê Thị Anh Thư, người trực tiếp giảng dạy và hướng dẫn chúng em thực hiện đồ án này Trong bài báo cáo này còn có phần thiếu sót, mong cô sẽ đưa ra những nhận xét để bài báo cáo được hoàn thiện hơn
Xin chân thành cảm ơn tất cả tác giả của những cuốn sách, các tài liệu mà
chúng em đã sử dụng trong quá trình tìm hiểu vấn đề Những kiến thức các tác giả
trình bày trong các tác phẩm đó đã giúp chúng em rất nhiều để hoàn thành báo cáo
này
Trang 3MỤC LỤC
Trang 4MỞ ĐẦU
Từ khi thiết bị tính toán đầu tiên (máy tính Von Neuman) ra đời, đến những thiết bị tính toán nhẹ, khả chuyển như laptop, tablet, thiết bị mobile, chúng ngày càng thâm nhập vào cuộc sống, và là một phần không thể thiếu của mỗi con người
Với sự tiến bộ của các công nghệ phát triển trí tuệ nhân tạo, những thiết bị tính toán tưởng chừng như vô giác, và chỉ làm theo những gì được lập trình sẵn, đã có những tri thức và sự suy luận dựa trên tri thức như con người Chúng xuất hiện ngày càng nhiều trong hầu hết các lĩnh vực của đời sống, từ quân đội đến y tế, quản lý, giáo dục
Cuộc sống ngày càng hiện đại, con người càng bận rộn trong công việc và nhu cầu di chuyển từ nơi này sang nơi khác ngày càng tăng cao Hiện nay phương tiện di chuyển phổ biến nhất ở Việt Nam là xe máy, các vấn đề đặt ra là: làm sao để hiểu rõ
về chiếc xe, khi xe gặp trục trặc thì làm sao để tìm được biện pháp khắc phục? Các vấn đề đó có thể được giải quyết bằng một hệ thống dựa trên tri thức con người, cung cấp cho người dùng thông tin, cũng như gợi ý ra những quyết định xác đáng để phục
vụ cho nhu cầu của mình Hệ thống trợ giúp quyết định này sẽ được trình bày trong tài liệu
Trang 5CHƯƠNG 1: THÔNG TIN NHÓM – ĐỀ TÀI
1.1 THÔNG TIN NHÓM
5
1.2 ĐỀ TÀI
Xây dựng Hệ truy vấn sự cố xe máy
Trang 6CHƯƠNG 2: CÁC KIẾN THỨC CƠ SỞ
2.1 TỔNG QUAN VỀ HỆ TRUY VẤN
Hệ truy vấn là một phần mềm tương tác với người dùng thông qua các câu hỏi Người dùng nhập vào câu hỏi, hệ thống phân tích câu hỏi đó rồi dựa vào đó để tìm kiếm và lọc câu trả lời từ cơ sở dữ liệu có sẵn
2.2 BIỂU DIỄN TRI THỨC
Biểu diễn tri thức là phương pháp mã hoá tri thức, nhằm thành lập cơ sở tri thức cho các hệ thống dựa trên tri thức Tri thức có thể được biểu diễn bởi nhiều cách khác nhau Thông thường hay sử dụng những cách sau đây:
• Biểu diễn tri thức bởi các luật sản suất
• Biểu diễn tri thức nhờ mệnh đề logic
• Biểu diễn tri thức nhờ mạng ngữ nghĩa
• Biểu diễn tri thức nhờ ngôn ngữ nhân tạo
Ngoài ra người ta còn sử dụng cách biểu diễn tri thức nhờ các sự kiện không chắc chắn, nhờ bộ ba: đối tượng, thuộc tính và giá trị, v.v Tùy theo từng hệ chuyên gia người ta có thể sử dụng một cách hoặc đồng thời nhiều cách
Biểu diễn tri thức bởi các luật sản xuất
Hiện nay hầu hết các hệ chuyên gia đều là các hệ thống dựa trên luật, bởi lý do như sau:
• Bản chất đơn thể: Có thể đóng gói và mở rộng hệ chuyên gia một cách dễ dang
• Khả năng diễn giải dễ dàng: dễ dàng dùng luật để diễn giải vấn đề nhờ các tiền
đề hoặc đặc tả chính xác các yếu tố vận dụng luật, từ đó rút ra được kết quả
• Tương tự quá trình nhận thức của con người
Các luật sản suất thường được viết dưới dạng IF THEN Có hai dạng:
IF <điều kiện> THEN <hành động>
Hoặc
Trang 7IF <điều kiện> THEN <kết luận > DO <hành động>
Tùy theo hệ chuyên gia cụ thể mà mỗi luật có thể được đặt tên Chẳng hạn mỗi luật có dạng Rule: tên Sau phần tên là phần IF của luật
Phần giữa IF và THEN là phần trái luật, có nội dung được gọi theo nhiều tên khác nhau như tiền đề, điều kiện, mẫu so khớp
Phần sau THEN là kết luận hay hậu quả Một số hệ chuyên gia có thêm phần hành động được gọi là phần phải luật
2.3 KỸ THUẬT SUY LUẬN
Có nhiều phương pháp tổng quát để suy luận trong các chiến lược giải quyết vấn đề của hệ chuyên gia Những phương pháp hay gặp là suy diễn tiến (foward chaining), suy diễn lùi (backward chaining) và phối hợp hai phương pháp này (mixed chaining) Những phương pháp khác là phân tích phương tiện (means-end analysis), rút gọn vấn đề (problem reduction), quay lui (backtracking), kiểm tra lập kế hoạch (plan-generate-test), lập kế hoạch phân cấp (hierachical planning) Dưới đây là nền tảng của công nghệ hệ chuyên gia hiện đại (foundation of modern relebased expert system)
Phương Pháp Suy Diễn Tiến
Suy diễn tiến ( forward charning) là lập luận từ các sự kiện, sự việc để rút ra các kết luận Ví dụ: Nếu thấy trời mưa trước khi ra khỏi nhà (sự kiện) thì phải lấy áo mưa (kết luận) Trong phương pháp này, người sử dụng cung cấp các sự kiện cho hệ chuyên gia để hệ thống (máy suy diễn) tìm cách rút ra các kết luận có thể Kết luận được xem
là những thuộc tính có thể được gán giá trị Trong số những kết luận này, có thể có những kết luận làm người sử dụng quan tâm, một số khác không nói lên điều gì, một
số khác có thể vắng mặt
Các sự kiện thường có dạng: Atthibute = value
Lần lượt các sự kiện trong cơ sở tri thức được chọn và hệ thống xem xét tất cả các luật mà các sự kiện này xuất hiện như là tiền đề Theo nguyên tắc lập luận trên, hệ thống sẽ lấy ra những luật thoã mãn Sau khi gán giá trị cho các thuộc tính thuộc kết luận tương ứng, người ta nói rằng các sự kiện đã được thoã mãn Các thuộc tính được gán giá trị sẽ là một phần của kết quả chuyên gia Sau khi mọi sự kiện đã được xem xét, kết quả được xuất ra cho người sử dụng
Trang 8Phương pháp suy diễn lùi tiến hành các lập luận theo chiều ngược lại (đối với phương pháp suy diễn tiến) Từ một giả thuyết (như là một kết luận), hệ thống đưa ra một tình huống trả lời gồm các sự kiện là cơ sở của giả thuyết đã cho này
Ví dụ nếu ai đó vào nhà mà cầm áo mưa và áo quần bị ướt thì giả thuyết này là trời mưa Để củng cố giả thuyết này, ta sẽ hỏi người đó xem có phải trời mưa không? Nếu người đó trả lời có thì giả thuyết trời mưa đúng và trở thành một sự kiện Nghĩa là trời mưa nên phải cầm áo mưa và áo quần bị ướt
Suy diễn lùi là cho phép nhận được giá trị của một thuộc tính Đó là câu trả lời cho câu hỏi “giá trịcủa thuộc tính A là bao nhiêu ?” với A là một đích (goal)
Để xác định giá trịcủa A, cần có các nguồn thông tin Những nguồn này có thể
là những câu hỏi hoặc có thể là những luật Căn cứ vào các câu hỏi, hệ thống nhận được một cách trực tiếp từ người sử dụng những giá trịcủa thuộc tính liên quan Căn
cứ vào các luật, hệ thống suy diễn có thể tìm ra giá trị sẽ là kết luận của một trong số các kết luận có thể của thuộc tính liên quan, v.v
Ý tưởng của thuật toán suy diễn lùi như sau Với mỗi thuộc tính đã cho, người
ta định nghĩa nguồn của nó:
• Nếu thuộc tính xuất hiện như là tiền đềcủa một luật (phần đầu của luật), thì nguồn sẽ thu gọn thành một câu hỏi
• Nếu thuộc tính xuất hiện như là hậu quả của một luật (phần cuối của luật), thì nguồn sẽ là các luật mà trong đó, thuộc tính là kết luận
• Nếu thuộc tính là trung gian, xuất hiện đồng thời như là tiền đề và như là kết luận, khi đó nguồn có thể là các luật, hoặc có thể là các câu hỏi mà chưa được nêu ra
Nếu mỗi lần với câu hỏi đã cho, người sử dụng trả lời hợp lệ, giá trị trả lời này
sẽ được gán cho thuộc tính và xem như thành công Nếu nguồn là các luật, hệ thống sẽ lấy lần lượt các luật mà thuộc tính đích xuất hiện như kết luận, để có thể tìm giá trị các thuộc tính thuộc tiền đề Nếu các luật thoã mãn, thuộc tính kết luận sẽ được ghi nhận
2.4 THUẬT TOÁN SO KHỚP CHUỖI
Trang 9Thuật toán so khớp chuỗi Knuth–Morris–Pratt (hay thuật toán KMP) tìm kiếm
sự xuất hiện của một "từ" W trong một "xâu văn bản"S bằng cách tiếp tục quá trình tìm kiếm khi không phù hợp, chính từ cho ta đầy đủ thông tin để xác định vị trí bắt đầu của kí tự so sánh tiếp theo, do đó bỏ qua quá trình kiểm tra lại các kí tự đã so sánh trước đó
Ví dụ cho thuật toán tìm kiếm
Để minh họa chi tiết thuật toán, chúng ta sẽ tìm hiểu từng quá trình thực hiện của thuật toán Ở mỗi thời điểm, thuật toán luôn được xác định bằng hai biến kiểu nguyên, m và i, được định nghĩa lần lượt là vị trí tương ứng trên S bắt đầu cho một phép so sánh với W, vàchỉ số trên W xác định kí tự đang được so sánh Khi bắt đầu, thuật toán được xác định như sau:
m: 0
S: ABC ABCDAB ABCDABCDABDE
W: ABCDABD
i: 0
Chúng ta tiến hành so sánh các kí tự của W tương ứng với các kí tự của S, di chuyển lần lượt sang các chữ cái tiếp theo nếu chúng giống nhau S[0] và W[0] đều là ‘A’ Ta tăng i :
m: 0
S: ABC ABCDAB ABCDABCDABDE
W: ABCDABD
i: _1
S[1] và W[1] đều là ‘B’ Ta tiếp tục tăng i :
m: 0
S: ABC ABCDAB ABCDABCDABDE
W: ABCDABD
i: 2
S[2] và W[2] đều là ‘C’ Ta tăng i lên 3 :
m: 0
S: ABC ABCDAB ABCDABCDABDE
W: ABCDABD
i: _3
Nhưng, trong bước thứ tư, ta thấy S[3] là một khoảng trống trong khi W[3] = 'D', không phù hợp Thay vì tiếp tục so sánh lại ở vị trí S[1], ta nhận thấy rằng không có kí
tự 'A' xuất hiện trong khoảng từ vị trí 0 đến vị trí 3 trên xâu S ngoài trừ vị trí 0; do đó, nhờ vào quá trình so sánh các kí tự trước đó, chúng ta thấy rằng không có khả năng
Trang 104 và i = 0.
m: 4
S: ABC ABCDAB ABCDABCDABDE
W: ABCDABD
i: 0
Tiếp tục quá trình so sánh như trên, ta xác định được xâu chung "ABCDAB", với W[6] (S[10]), ta lại thấy không phù hợp Nhưng từ kết quả của quá trình so sánh trước, ta đã duyệt qua "AB", có khả năng sẽ là khởi đầu cho một đoạn xâu khớp, vì vậy ta bắt đầu so sanh từ vị trí này Như chúng ta đã thấy các kí tự này đã trùng khớp với hau kí tự trong phép so khớp trước, chúng ta không cần kiểm tra lại chúng một lần nữa; ta bắt đầu với m = 8, i = 2 và tiếp tục quá trình so khớp
m: 8
S: ABC ABCDAB ABCDABCDABDE
W: ABCDABD
i: 2
Quá trình so khớp ngay lập tức thất bại, nhưng trong W không xuất hiện kí tự ‘ ‘,vì vậy, ta tăng m lên 11, và gán i = 0
m: _11
S: ABC ABCDAB ABCDABCDABDE
W: ABCDABD
i: 0
Một lần nữa, hai xâu trùng khớp đoạn kí tự "ABCDAB" nhưng ở kí tự tiếp theo, 'C', không trùng với 'D' trong W Giống như trước, ta gán m = 15, và gán i = 2, và tiếp tục
so sánh
m: _15
S: ABC ABCDAB ABCDABCDABDE
W: ABCDABD
i: 2
Lần này, chúng ta đã tìm được khớp tương ứng với vị trí bắt đầu là S[15]
Trang 11CHƯƠNG 3: HỆ TRUY VẤN SỬA CHỮA XE MÁY
3.1 THIẾT KẾ CƠ SỞ TRI THỨC
a) Mô hình tri thức
Đối với hệ chẩn đoán sửa chữa xe máy, cơ sở tri thức bao gồm:
• DEFINE: khái niệm
Khái niệm về các thành phần của xe máy
• RULES: luật
Luật ghi nhận các tình huống sửa chữa xe máy; có nguyên nhân (IF), có kết
quả (THEN) rõ ràng
• FACTS: sự kiện
Sự kiện, những biểu hiện mà người dùng nhận thấy được đối với xe máy của mình (vế IF của RULES)
CONCLUSION: kết quả
Kết quả của những tình huống sửa chữa xe máy đã ghi nhận (vế THEN của
RULES)
b) Lưu trữ tri thức
Tri thức được lưu trữ dưới dạng text, cụ thể:
• DEFINE có cú pháp như sau:
d<id>-Tên định nghĩa:Nội dung định nghĩa
Ví dụ:
d1-Bugi: Là thiết bị cung cấp tia lửa điện để đốt cháy hòa khí nhiên liệu ,không khí Những dấu hiệu như màu sắc, độ mòn của nó có thể cho biết về tình trạng động cơ d2-Đề: Có ý nghĩa hết sức quan trọng, đảm nhiệm chức năng khởi động và nâng cao tính tiện nghi của xe
• FACTS có cú pháp như sau:
[~]f<id>: Mô tả sự kiện
Ví dụ:
f1: Lên đèn,đèn sáng,sáng mạnh,có đèn,đèn bình thường
~f1: Đèn không sáng,đèn sáng yếu,điện yếu,đèn không lên,đèn tối
• CONCLUSION có cú pháp như sau:
c<id>: Mô tả kết quả, giải pháp
Ví dụ:
Trang 12c7:Thay phanh mới, thay dầu phanh.
• RULES có cú pháp như sau:
r<id>:FACT1&FACT2&…FACTN > CONCLUSION1
Ví dụ:
r1:f1&~f2>c1
r2:~f2&f3>c20
r3:~f2&f4>c8
Phân bổ tri thức vào các tập tin tương ứng:
- Define.txt
- Facts.txt
- Conclusion.txt
- Rules.txt
Cách thức xử lí tri thức trong chương trình Đối với:
• DEFINE, dữ liệu từ file Define.txt, mỗi dòng có dạng:
d<id>-Tên định nghĩa:Nội dung định nghĩa
được đưa vào lớp DEFINE:
class DEFINE
{
String name; // d<id>
String nameObject; // tên khái niệm
String content; // nội dung khái niệm
}
• FACTS, dữ liệu từ file Facts.txt, mỗi dòng có dạng:
[~]f<id>:Mô tả sự kiện
Được đưa vào lớp NODE:
class NODE
{
string name; // tên riêng phân biệt
string[] content; // lưu các biểu hiện, thực trạng của xe máy int value; // cờ cho biết sự kiện này hàm ý phủ định (-1) hay khẳng định (0)
}
• CONCLUSION, dữ liệu từ file Conclusion.txt, mỗi dòng có dạng:
c<id>:Mô tả kết quả
Trang 13cũng được đưa vào lớp NODE như trên.
• RULES, dữ liệu từ file Rules.txt, mỗi dòng có dạng:
r<id>:FACT1&FACT2&…FACTN > CONCLUSION1
được đưa vào lớp RULE:
class RULE
{
string name; // tên riêng luật r<id>
string suppose; // giả thiết
string conclusion; //kết luận
}
c) gdsf
3.2 THIẾT KẾ BỘ SUY DIỄN
Long
Trang 14CHƯƠNG 4: CÀI ĐẶT ỨNG DỤNG
Trên cơ sở phân tích và thiết kế đã đề xuất, chúng tôi xây dựng thử nghiệm một hệ
thống tư vấn chọn món ăn đơn giản
4.1 MỤC TIÊU ỨNG DỤNG
Mục tiêu của ứng dụng là hỗ trợ người dùng tra cứu các khái niệm về các bộ phận xe máy và đưa ra cách khắc phục các hỏng hóc trong quá trình vận hành xe
4.2 YÊU CẦU VÀ CHỨC NĂNG ỨNG DỤNG
Ứng dụng có những chức năng sau:
- Tra cứu thông tin về các bộ phận, chức năng của xe máy
- Tra cứu nguyên nhân và cách khắc phục các sự cố về xe máy
4.3 KIẾN TRÚC HỆ THỐNG
Kiến trúc hệ thống bao gồm:
- Cơ sở tri thức: là những tri thức về món ăn và người dùng
- Bộ suy diễn: dựa vào những sự kiện do người dùng cung cấp và các luật
trong cơ sở tri thức để đưa ra gợi ý về món ăn thích hợp
- Bộ câu hỏi: Tập hợp những câu hỏi cho người dùng trả lời về các yêu cầu
chọn món ăn của mình
- User interfer: giao tiếp giữa hệ thống và người dùng
4.4 NỀN TẢNG CÔNG NGHỆ
Hệ thống được xây dựng trên nền tảng công nghệ NET của Microshoft, sử
dụng ngôn nghữ lập trình C# và hệ quản trị cơ sở dữ liệu Access Ứng dụng tương thích với các PC chạy hệ điều hành Windows 7 trở lên
4.5 THỬ NGHIỆM – HƯỚNG DẪN SỬ DỤNG
Trang 15Giao diện chương trình
Hướng dẫn sử dụng
- Nhập câu hỏi vào ô textbox, nhấn nút “Truy vấn”
- Các khái niêm, định nghĩa có liên quan sẽ hiện ra trong khung bên trái,
khung bên phải thì chứa các chuẩn đoán và cách khắc phục sự cố của xe
Trang 16CHƯƠNG 5: KẾT LUẬN
5.1 KẾT QUẢ ĐẠT ĐƯỢC
So với mục tiêu ban đầu đề ra, nhóm nghiên cứu đề tài đã thực hiện hoàn chỉnh nội dung nghiên cứu Đồ án đã xây dựng được một giải pháp tư vấn sửa chữa xe máy đơn giản chạy trên máy tính
5.2 HẠN CHẾ CỦA ĐỀ TÀI
Vì đề tài chỉ mang tính chất demo những kiến thức học được và do hạn chế về khả năng cộng thời gian thực hiện không nhiều nên ứng dụng còn một số hạn chế như sau:
- Số lượng khái niệm còn ít, chưa đáp ứng được hết nhu cầu người dùng
- Chưa thể đưa ra giải pháp khắc phục cho một số sự cố đăc biệt của xe
- Cú pháp câu truy vấn chưa thật sự gần với ngôn ngữ tự nhiên
5.3 PHƯƠNG HƯỚNG PHÁT TRIỂN
Vì những hạn chế trên nên ứng dụng chỉ mang tính demo Để có thể đem ra ứng dụng rộng rãi trong thực tế nhóm cần đầu tư nhiều thời gian và công sức hơn Cần
có thêm nhiều tri thức của các kỹ sư cơ khí cũng như thợ sửa xe giàu kinh nghiệm
để có thể đánh giá đúng sự cố của xe và đưa ra giải pháp thích hợp nhất Ngoài ra nhóm sẽ nâng cấp ứng dụng để có thể tư vấn cho người dùng cách sử dụng và bảo quản xe sao cho hiệu quả nhất
Dù chưa đạt được 100% mục tiêu đặt ra ban đầu, nhưng nhóm cũng đã xây dựng hoàn chỉnh một hệ chuyên gia với cấu trúc cơ bản nhất Ứng dụng đã đáp ứng
được một phần nào nhu cầu tự sửa chữa xe máy của người dùng Vì đây là ứng
dụng có tính thực tế cao nên nhóm sẽ cố gắng hơn để nâng cấp, hoàn thiện nhằm mang lại một ứng dụng hữu ích cho mọi người