ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO HỆ HỔ TRỢ QUYẾT
ĐỊNH
TÌM HIỂU HỆ CHUYÊN GIA VÀ CÁC
PHƯƠNG PHÁP SUY DIỄN
GVHD: HVTH:
Thầy PGS-TS.Đỗ Phúc Nguyễn Văn Trường CH1301036
Tháng 06 Năm 2014
MỤC LỤC
DANH MỤC HÌNH ẢNH
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
CHƯƠNG 1: HỆ CHUYÊN GIA
1.1 Giới thiệu hệ chuyên gia
Trong lĩnh vực trí thông minh nhân tao, một hệ chuyên gia là một hệ thống máy tính có
khả năng mô phỏng hay hành động giống như một chuyên gia thật sự, liên quan đến các
vấn đề như dự đoán, đưa ra lời khuyên, hổ trợ quyết định…
Sự tương đương của hệ chuyên gia và chuyên gia được thể hiện qua:
• Khả năng suy luận dựa trên không gian kiến thức của con người
• Giải quyết các vấn đề phức tạp bằng heuristic hay các kỹ thuật gần đúng
• Giải thích và điều chỉnh các giải pháp dựa trên các sự kiện
Các hệ chuyên gia được thiết kế để có thể giải quyết các vấn đề phức tạp bằng cách
suy luận trên cơ sở tri thức, và được biểu diển chủ yếu theo dạng:
IF…THEN…ELSE
Hơn là các thủ tục code thường dùng. Dưới đây là một vài điểm nội bật của hệ
chuyên gia khi so sánh với các chuyên gia khi được phát triển và ứng dụng trong các lĩnh
vực
• Chi phí thấp
• Bộ so khớp mẫu (Pattern matcher): sử dụng các thuật toán để tạo ra danh sách
các luật, dựa vào các sự kiện đã tìm được trong bộ không gia làm việc, ví dụ như
thuật toán Rete.
• Bộ ghi nhật ký(Agenda): xác định thứ tự mà các luật phát sinh từ danh sách
• Bộ giải quyết mâu thuẫn(conflict resolver): chọn các luật có độ ưu tiên các nhất
từ bộ ghi nhật ký.
• Bộ thực thi hành động: thực thi các kết quả suy luận vế phài (Right hand side) của
các luật được chọn và xóa các luật này từ bộ ghi nhật ký.
• Bộ so khớp mẫu (Pattern matcher): được kích hoạt trở lại, thực hiện cập nhật bộ
ghi nhật ký với các luật thỏa mãn vế trái và xóa các luật không thỏa.
HVTH: Nguyễn Văn Trường Trang 6
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
Quy trình này tiếp tục cho đến khi không còn luật nào tồn tại trong bộ ghi nhật ký.
Một luật được kích hoạt khi và chỉ khi vế trái của nó thỏa mãn. Tính năng quan trong
này trong hệ chuyên gia được gọi là sự khúc xạ (Refraction). Nó đảm bảo rằng một hệ
chuyên gia sẽ không bị lặp vòng vô tận
1.2.1 Quá trình thu thập tri thức (Knowledge Engineering):
Thu thập tri thức là một quá trình trích rút dữ liệu của một lĩnh vực cụ thể, thông qua các
chuyên gia, sau đó cấu trúc, định dạng và tích hợp vào trong cơ sở tri thức của hệ chuyên
gia.
Các dữ liệu rút trích được có thể bao gồm nhiều luật logic hay các kiến thức heuristic
được sử dụng bởi các chuyên gia trong một số trường hợp cụ thể nào đó. Không giống
như một thuật toán đảm bảo sẽ tìm ra được lời giải chính xác hoàn toàn trong một khoảng
thời gian nhất định. Hệ chuyên gia chỉ đảm bảo sẽ tìm ra được lời giải hợp lý nhất.
Dựa vào trình độ, mức độ kiến thức của chuyên gia trong quá trình hiểu biết sự kết
nồi giữa các kiến thức hay các suy luận, hệ quả; một kỹ sư lập trình kiến thức có thể xây
dựng nên một hệ chuyên gia sử dụng các quy tắc heuristic. Các kiến thức này thường
được biểu diễn dưới dạng các luật được gọi là cơ sở tri thức.
1.2.2 Biểu diễn tri thức
Một chương trình máy tính gồm cấu trúc dữ liệu và các thuật toán. Trong khi đó hệ
luật trong quá trình suy luận
• Viêc thêm các luật, các tri thức mới có thể sẽ xung đột với những luật hiện tại và
có thể giảm độ tin cậy của hệ thống
HVTH: Nguyễn Văn Trường Trang 9
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
CHƯƠNG 2: CÁC PHƯƠNG PHÁP SUY LUẬN
2.1 Suy diễn lùi
Suy diễn lùi là một phương pháp suy luận, được diễn tả là một quá trình kết xuất ngược
từ tập đích (goals). Suy diễn lùi thường được ứng dụng trong hệ chứng minh bài toán tự
động, các bộ suy diễn, hệ hổ trợ tìm chứng cứ và trong nhiều ứng dụng trong các hệ
thống AI.
Suy diễn lùi được hiện thực trong hệ thống lập trình logic bởi SLD resolution. Các
luật suy diễn là dựa trên module ponens. Đầy là một trong hai phương pháp được sử dụng
trong các hệ thống suy diễn và phép logic kéo theo. Suy diễn lùi thường sữ dụng chiến
lược tìm kiếm theo chiều sau – DFS. Ví dụ như trong ứng dụng prolog.
Quá trình hoạt động:
Suy diễn lùi bắt đầu với một danh sách các dữ liệu đích và thực hiện suy luận ngược
từ kết quả cho đến các tiên đề suy ra nó. Trong một bô suy diễn sử dụng suy diễn ngược,
sẽ tìm kiếm các luật suy diễn cho đến khi tìm được một mệnh đề THEN… mà thỏa nãn
với tập đích.Nếu như mà tập RHS của luật là chưa xác định thì nó sẽ them luật này vào
tập đích và tiếp tục quá trình suy diễn
Một ví dụ của suy diển lùi:
Tập các sự kiện :
• Ổ cứng là "hỏng" hay "hoạt động bình thường"
• Hỏng màn hình.
• Lỏng cáp màn hình.
• Tình trạng đèn ổ cứng là "tắt" hoặc "sáng"
HVTH: Nguyễn Văn Trường Trang 10
Ổ cứng
“hỏng”
• Điện vào máy tính "có" hay "khơng"
Tập các luật :
R1. Nếu ( (ổ cứng "hỏng") hoặc (cáp màn hình "lỏng")) thì khơng sử dụng được máy
tính.
R2. Nếu (điện vào máy là "có") và ( (âm thanh đọc ổ cứng là "khơng") hoặc tình trạng
đèn ổ cứng là "tắt")) thì (ổ cứng "hỏng").
R3. Nếu (điện vào máy là "có") và (tình trạng đèn màn hình là "chớp đỏ") thì (cáp màn
hình "lỏng").
Để xác định được các ngun nhân gây ra sự kiện "khơng sử dụng được máy tính", ta
phải xây dựng một cấu trúc đồ thị gọi là đồ thị AND/OR như sau :
HVTH: Nguyễn Văn Trường Trang 11
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
Để xác định được nguyên nhân gây ra hỏng hóc là do ổ cứng hỏng hay cáp màn hình
lỏng, hệ thống phải lần lượt đi vào các nhánh để kiểm tra các điều kiện như điện vào máy
"có", âm thanh ổ cứng "không"…Tại một bước, nếu giá trị cần xác định không thể được
suy ra từ bất kỳ một luật nào, hệ thống sẽ yêu cầu người dùng trực tiếp nhập vào. Chẳng
hạn như để biết máy tính có điện không, hệ thống sẽ hiện ra màn hình câu hỏi "Bạn kiểm
tra xem có điện vào máy tính không (kiểm tra đèn nguồn)? (C/K)". Để thực hiện được cơ
chế suy luận lùi, người ta thường sử dụng ngăn xếp (để ghi nhận lại những nhánh chưa
kiểm tra).
Phương pháp suy diễn lùi thường được dùng trong các hệ chuyên gia, các ngôn ngữ
lập trình như Prolog, Knowledge Machine và ECLiPSe hổ trợ suy diễn lùi qua bộ suy
diễn của chúng
2.2 Suy diễn tiến
Đây cũng là một phương pháp dùng trong bộ suy diễn của hệ chuyên gia và đối lặp với
với phương pháp suy diễn lùi. Nó cũng dựa trên modus ponens
Suy diễn tiến bắt đầu với tập sự kiện và sử dụng các luật suy diễn để suy ra nhiều dữ
kiện khác cho đến khi.tập đích được tìm thấy. một bộ suy diễn sử dụng suy diễn tiến khi
sử dụng kỹ thuật này sẽ tìm kiếm trên tập luật đến khi kết quả (IF mệnh đề) là đúng, và
thêm tập dữ kiện của mệnh đề THEN, đề tiếp tục quá trình suy ra tập đích cần tìm.
Suy diễn heutistic là phương pháp suy diễn dựa vào kinh nghiệm, như là một phương
pháp tạm thời nhưng hợp lý nhấm tìm ra giải pháp cho vần đề hiện tại.
Suy diễn heuristic có thể giúp khám phá ra giải pháp nhanh chóng cho các vấn đề suy
luận phức tạp, đặc biệt là yêu cầu về mặt thời gian tìm kiếm và không gian dữ liệu tính
toán lớn.
HVTH: Nguyễn Văn Trường Trang 13
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
Các qui tắc heuristic thường liên quan đến quá trình sử dụng luật và xác định các
quan hệ các thuộc tính mục tiêu
Một luật sẽ có một độ ưu tiên nhất định, nếu như nhiều luật cùng thỏa mãn điều kiện
đầu vào thì ưu tiên chọn luật có độ ưu tiên cao.
Mỗi luật sẽ có những thuộc tính đính kèm, để giúp quá trình chọn luật hiệu quả hơn
nhằm sinh ra những quan hệ, những sự kiện mà hướng đến mục tiêu.
Suy diễn heuristic thường được kết hợp với suy diễn tiến trong các bộ máy suy diễn
để tăng tính hiệu quả của chương trình.
2.4 Phương pháp loại bỏ luật thừa và luật mâu thuẫn
Các luật trong Bộ suy diễn có thể có khả năng thừa, trùng lắp hoặc mâu thuẫn. Do quá
trình xây dựng tập luật và cập nhật trong quá trình hoạt động, dẫn tới kết quả không chính
xác.
Tuy quá trình xem xét và thao tác tối ưu hóa các luật là một thao tác khó, vì giữa các
luật thường tồn tại các quan hệ không tường minh. Dưới đây là một số phương pháp tối
ưu hóa tập luật:
2.4.1 Loại bỏ luật thừa
• Rút gọn vế phải
Quy tắc: thực hiện loại bỏ những sự kiện bên vế phải nếu sự kiện đã xuất hiện ở vế trái.
Nếu sau khi rút gọn mà vế phải rỗng thì loại bỏ luật khỏi cơ sở luật
Ví dụ: A ∧ B → A ∧ C là hoàn toàn tương đương với A ∧ B → C
Thuật toán loại bỏ thừa vế phải:
for each rule r trong R do
HVTH: Nguyễn Văn Trường Trang 14
1
}
If bao đóng (X\{A
i
}, S) ≡ bao đóng (X, R) then
X := X \ {A
i
}
End if
End do
HVTH: Nguyễn Văn Trường Trang 15
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
End do
• Luật thừa: luật dẫn A → B được gọi là thừa nếu luật này có thể suy luận từ nhưng luật
còn lại trong tập luật
Ví dụ: tập 3 luật {A → B, B → C, A → C} thì luất thứ 3 là luật có thể suy luận từ hai
luật còn lại, do đó đây là luật thừa
Thuật giải:
For each luật r thuộc R do
If RHS (r) ∈ Bao đóng (LHS (r), R\{r}) then
R := R\{r}
end if
End do
2.4.2 Luật mâu thuẫn
Gọi R: tập luật của cơ sở tri thức
r ∈R: X → Y
(X)
R – {r}
: tập các mệnh đề suy được từ mệnh đề X bằng các luật thuộc R – {r}
Y: phủ định của Y
B1: Xét luật r trong R của CSTT
Kiểm tra r có mâu thuẫn với tập R – {r} không?
B2: Nếu mâu thuẫn thì R = R – {r}
B3: Quay lai B1 với luật khác
Vòng lặp suy diễn
HVTH: Nguyễn Văn Trường Trang 17
Giả thiết
R
1
R
2
R
3
…
R
n
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
Hình 2.1: Vòng lặp suy diền
Thuật toán:
Gọi R: tập luật sẵn có của cơ sở tri thức
r: X → Y là luật mới cần thêm vào
B1. Xác định (Y)
R
= {A
j
/ A
j
các mệnh đề có thể suy diễn từ Y dựa trên tập luật R} (bao
đóng của Y trên R)
B2. Nếu X ∈ (Y)
CLIPS dùng một trình quản lý các sự kiện phát sinh hiện tại của hệ thống, đề xác
định luật nào được thỏa đề thực thi và tạo thêm các sự kiện thông qua cơ chế suy diễn
tiến của nó.
Bên cạnh đó trong CLIPs, cho phép định nghĩa các function để xử lý các kết quả
nhận được qua tương tác với người dùng. Các function có thể là một câu hỏi với nhiều
kết quả tùy chọn, hoặc là câu hỏi yes/no
Một dạng hàm trong CLIPs:
(deffunction yes-or-no-p (?question)
(bind ?response (ask-question ?question yes no y n))
(if (or (eq ?response yes) (eq ?response y))
then TRUE
HVTH: Nguyễn Văn Trường Trang 19
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
else FALSE))
2.5.2 Các chức năng chính
Hình 2.2: Hộp thoại hiện thị các sự kiện
Hình 2.3: Tiến trình các luật kích hoạt trong CLIPs
HVTH: Nguyễn Văn Trường Trang 20
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
Hình 2.4: Một trường hợp chẩn đoán của chương trình
HVTH: Nguyễn Văn Trường Trang 21
Báo cáo môn Hệ hổ trợ quyết định Hướng dẫn PGS.TS. Đổ Phúc
CHƯƠNG 3: KẾT LUẬN
Trong các hệ thống thông minh hiện nay, hệ chuyên gia ngày càng đóng một vai trò quan
trọng để hổ trợ con người đưa ra những dự đoán, chẩn đoán, lời khuyên…trong nhiều
lĩnh vực. Hệ thống chuyên gia được phát triển là dựa vào những qui tắc, những kiến thức
của chuyên gia nên nó có thể phần nào thay thế được chuyên gia để đưa ra một số quyết
định.
Quá quá trình tìm hiểu và nghiên cưu, Báo cáo đã trình bày chi tiết các bộ phận cấu
thành nên hệ chuyên gia, mà trong đó hai thành phần quan trọng nhất là cơ sở tri thức và