You are on page 1of 17

Chương 5: Điều khiển và cài đặt tìm kiếm trong không gian trạng thái

Chương V

ĐIỀU KHIỂN VÀ CÀI ĐẶT TÌM KIẾM


TRONG KHÔNG GIAN TRẠNG THÁI
Nội dung chính: Trong chương này, các kỹ thuật sâu hơn cho việc cài đặt các thuật toán
tìm kiếm sẽ được trình bày một cách chi tiết. Trước hết là tìm kiếm đệ quy (recursive search)
– một phương pháp thực hiện tìm kiếm sâu kèm theo lần ngược với cách thức tự nhiên và
ngắn gọn. Tìm kiếm đệ quy được tăng cường nhờ sử dụng sự hợp nhất (unification) để tìm
kiếm các không gian trạng thái do các biểu thức của phép tính vị từ sinh ra. Sự kết hợp này
cho ta thuật toán tìm kiếm hướng mẫu (pattern – directed search). Phần tiếp theo trong nội
dung chương V giới thiệu mô hình hệ sinh (production system) – một cấu trúc tổng quát để
giải các bài toán hướng mẫu, nó được sử dụng khá nhiều không những để mô hình hóa việc
giải quyết các vấn đề của con người, mà còn để xây dựng các hệ chuyên gia và những ứng
dụng Trí tuệ nhân tạo khác. Cuối cùng, một cách giải bài toán trí tuệ nhân tạo khác cũng
được đề cập đến – kiến trúc bảng đen (blackboard architecture).

Mục tiêu cần đạt : Sau chương này, sinh viên có thể :

¾ Vận dụng thuật toán tìm kiếm đệ quy kết hợp lần ngược trên không gian trạng thái.
¾ Hiểu thuật toán hướng mẫu khi thực hiện việc tìm kiếm trong không gian trạng thái.
¾ Vận dụng hệ sinh cho một bài toán.
¾ Hiểu các ưu điểm của hệ sinh
¾ Hiểu các ứng dụng kiến trúc bảng đen trong GQVĐ.

Kiến thức tiên quyết : Lý thuyết đồ thị, Các thuật toán tìm kiếm trên đồ thị, Lý thuyết trò
chơi, …

Tài liệu tham khảo :

[1] George F. Luger, William A. Stubblefield – Albuquerque – Artificial Intelligence


– Wesley Publishing Company, Inc – 1997 (Chapter 4)
[2] Bùi Xuân Toại – Trương Gia Việt (Biên dịch) – Trí tuệ nhân tạo – Các cấu trúc
và chiến lược giải quyết vấn đề - NXB Thống kê, 2000 (Phần II)
[3] Recursion: http://cs-people.bu.edu/dbuzan/cs112/lab5/lab5.html
[4] Blackboard Architecture: http://www.nb.net/~javadoug/bb.htm

Võ Huỳnh Trâm – Trần Ngân Bình 79


Giáo Trình Trí Tuệ Nhân Tạo

I TÌM KIẾM DỰA TRÊN CƠ SỞ ĐỆ QUI

I.1 Tìm kiếm đệ quy

Một chuyển đổi trực tiếp của thuật toán tìm kiếm sâu thành dạng đệ quy sẽ minh họa cho sự
tương đương của đệ quy và lặp lại đơn giản. Thuật toán này sử dụng các biến toàn cục closed
và open để duy trì danh sách các trạng thái:

Function Depthsearch; % open và closed toàn cục


Begin
If open rỗng then trả lời (thất bại);
Trạng thái hiện hành := phần tử đầu tiên của open;
If trạng thái hiện hành là trạng thái đích
then trả lời (thành công)
Else
begin
Open := open - phần tử đầu tiên của open;
Closed := closed + trạng thái hiện hành;
For mỗi trạng thái con của trạng thái hiện hành do
If chưa có trong closed hay open % xây dựng ngăn xếp
then bổ sung con đó vào đầu danh sách open
end;
Tìm kiếm sâu; % đệ quy
End;
Tìm kiếm sâu như vừa được trình bày sẽ không sử dụng hết sức mạnh của phép đệ quy. Nó
vẫn còn khả năng đơn giản hóa thủ tục bằng cách sử dụng chính phép đệ quy (thay gì một
danh sách open) để sắp xếp các trạng thái trong không gian trạng thái. Trong phiên bản này
của thuật toán, một danh sách closed toàn cục sẽ được dùng để phát hiện các trạng thái lặp
lại, còn danh sách open thì tiềm ẩn trong các mẩu tin hoạt động của môi trường đệ quy.
Function Depthsearch (trạng thái hiện hành); % closed toàn cục
Begin
If trạng thái hiện hành là trạng thái đích then
trả lời (thành công);
For mỗi trạng thái hiện hành có con chưa được kiểm tra do
begin
Con := con chưa được kiểm tra kế tiếp;
If con không phải là thành viên của closed
then if depthsearch (con) = thành công
then trả lời (thành công);
end;
Trả lời (thất bại);
End; % tìm kiếm đã đến cùng

Thay vì phát sinh tất cả các con của một trạng thái và đưa chúng vào danh sách open, thuật
toán này phát sinh mỗi lần một con và tìm kiếm theo phép đệ quy các nút cháu của từng con
đó trước khi phát sinh các anh em của nó. Thuật toán này sẽ gán một thứ tự cho các bước

80 Võ Huỳnh Trâm – Trần Ngân Bình


Chương 5: Điều khiển và cài đặt tìm kiếm trong không gian trạng thái

phát sinh trạng thái. Trong tìm kiếm theo đệ quy đối với một trạng thái con, nếu có một con
nào đó của trạng thái này là đích, thuật toán đệ quy sẽ trả lời thành công và bỏ qua tất cả các
trạng thái anh em. Ngược lại, các trạng thái anh em kế tiếp được phát sinh. Cứ như vậy thuật
toán sẽ tìm kiếm toàn bộ đồ thị lần lượt theo từng độ sâu một.

Thuật toán đệ quy cho phép bỏ qua danh sách open trong suốt quá trình thực hiện. Cơ chế
mà một ngôn ngữ lập trình sử dụng để cài đặt đệ quy là dùng mẩu tin hoạt động (activation
record) cho từng lần gọi đệ quy. Quá trình lần ngược sẽ tác động khi tất cả các con cháu của
một trạng thái không phải là đích, làm cho bước đệ quy đó thất bại. Việc thực hiện đệ quy
cho phép lập trình viên thu hẹp tầm nhìn của họ vào một trạng thái duy nhất cùng với các
con của nó thay vì phải duy trì một danh sách open gồm nhiều trạng thái.

Tìm kiếm trong không gian trạng thái là một quá trình đệ quy. Để tìm đường đi từ trạng thái
hiện hành đến đích, bạn chuyển đến một trạng thái con và thực hiện phép đệ quy. Nếu trạng
thái con đó không dẫn đến đích, bạn thử lần lượt các trạng thái anh em của nó. Phép đệ quy
sẽ chia một bài toán lớn và khó (tìm kiếm khắp không gian) thành các bài toán nhỏ và đơn
giản hơn (phát sinh các con của một trạng thái) và áp dụng chiến lược đệ quy cho từng bài
toán nhỏ đó. Quá trình cứ tiếp tục như vậy cho đến khi phát hiện được đích hoặc hết không
gian.

I.2 Tìm kiếm hướng mẫu (Pattern – directed search)

Trong phần này chúng ta sẽ áp dụng tìm kiếm đệ quy vào không gian các suy diễn logic, kết
quả sẽ là một thủ tục tìm kiếm tổng quát dùng cho phép tính vị từ.

Giả sử cần phải viết một thuật toán để xác định xem một biểu thức phép tính vị từ cho trước
có phải là kết quả logic của môt tập các khẳng định nào đó hay không. Thuật toán này phải
tìm một trình tự suy diễn tạo nên biểu thức đích. Thuật toán sẽ đề nghị một tìm kiếm hướng
mục tiêu với câu hỏi ban đầu tạo nên đích và các modus ponens xác định các chuyển tiếp
giữa các trạng thái. Cho trước một đích, thuật toán sẽ dùng phương pháp đồng nhất để chọn
các phép kéo theo có kết luận phù hợp với đích đó. Sau khi đồng nhất đích với kết luận của
phép kéo theo và đã áp dụng các thay thế vừa suy ra được, tiền đề của phép kéo theo sẽ trở
thành một đích mới gọi là đích phụ (subgoal). Sau đó thuật toán sẽ thực hiện đệ quy đối với
đích phụ này. Nếu đích phụ phù hợp với một sự kiện trong cơ sở tri thức, cuộc tìm kiếm kết
thúc. Chuỗi suy diễn dẫn từ đích ban đầu đến các sự kiện cho trước sẽ chứng minh đích xuất
phát là đúng.

Phiên bản hoàn chỉnh của thuật toán tìm kiếm hướng mẫu có thể trả lời một tập các đồng
nhất thỏa mãn từng đích phụ là:

Võ Huỳnh Trâm – Trần Ngân Bình 81


Giáo Trình Trí Tuệ Nhân Tạo

Function pattern_search(current_goal);
Begin
If current_goal ∈ closed then return fail
else Thêm current_goal vào closed;
while còn dữ kiện hoặc luật đồng nhất do
begin case
current_goal đồng nhất với dữ kiện:
return tập phép thế;
current goal là ¬p:
pattern_search(p);
if pattern_search thất bại then return {}
else return fail
current_goal đồng nhất với kết luận của luật (q → p):
begin
áp dụng phép thế đồng nhất mục tiêu vào tiền đề (q);
pattern_search (q);
if pattern_search thành công
then return hợp của tập phép thế của p và q;
else return fail;
end;
current_goal có dạng (p1∧ p2 …):
begin
for mỗi thành phần pi do
begin
pattern_search(pi);
if pattern_search thất bại then return fail;
else áp dụng các phép thế vào các pi còn lại;
end;
if pattern_search thành công cho tất cả các pi
then return hợp của các tập phép thế;
else return fail;
end;
current_goal có dạng (p1∨ p2…):
begin
repeat cho mỗi pi
pattern_search(pi);
until không còn thành phần pi nào hoặc thành công;
if pattern_search thành công then return {phép thế};
else return fail;
end;
return fail;
End;

82 Võ Huỳnh Trâm – Trần Ngân Bình


Chương 5: Điều khiển và cài đặt tìm kiếm trong không gian trạng thái

II HỆ THỐNG LUẬT SINH (HỆ SINH –


PRODUCTION SYSTEM)

II.1 Định nghĩa hệ sinh

Hệ sinh là một mô hình tính toán quan trọng trong trí tuệ nhân tạo về cả hai mặt: thực hiện
các thuật toán tìm kiếm và mô hình hóa việc giải các bài toán của con người.

Một hệ sinh được định nghĩa bởi:

1. Tập luật sinh (Production rules): Mỗi luật sinh có dạng condition → action (điều
kiện → hành động). Phần điều kiện của luật là một mẫu cho biết khi nào thì có thể áp
dụng luật. Phần hành động quy định các bước giải toán tương ứng điều kiện.

2. Bộ nhớ làm việc (Working memory): Chứa một mô tả về trạng thái hiện thời của
bài toán trong quá trình suy luận. Mô tả này là một mẫu sẽ được đối sánh với phần
điều kiện của một luật sinh để chọn ra bước giải thích hợp. Khi phần điều kiện của
luật phù hợp với nội dung trong bộ nhớ làm việc, hành động phát sinh từ điều kiện đó
sẽ được thực hiện làm thay đổi nội dung bộ nhớ làm việc.

3. Chu trình nhận dạng - hành động (Recognize – act cycle) : Là cấu trúc điều khiển
của hệ sinh.

Cấu trúc điều khiển của một hệ sinh khá đơn giản: Bộ nhớ làm việc được khởi đầu với mô tả
của bài toán. Trạng thái hiện hành của việc giải bài toán được duy trì dưới dạng một tập các
mẫu trong bộ nhớ làm việc. Các mẫu này được đối sánh với phần điều kiện của các luật sinh,
các luật có điều kiện phù hợp với mẫu trong bộ nhớ làm việc được gọi là tập luật tranh chấp
(conflict set). Sau đó một trong các luật sinh này sẽ được chọn và được kích hoạt. Để kích
hoạt một luật, phần hành động của nó được thục hiện và làm thay đổi nội dung bộ nhớ làm
việc. Chu trình điều khiển sẽ lặp lại với nội dung đã được thay đổi trong bộ nhớ làm việc.
Quá trình này kết thúc khi nội dung của bộ nhớ làm việc không còn phù hợp với điều kiện
của luật nào nữa.

Một quá trình giải quyết tranh chấp (conflict resolution) sẽ chọn một luật từ tập luật tranh
chấp để kích hoạt. Chiến lược giải quyết tranh chấp có thể rất đơn giản như chọn luật đầu
tiên có điều kiện phù hợp hoặc có thể dựa vào các heuristic chọn luật phức tạp. Đây là một
khâu quan trọng để các hệ sinh có thể đưa khả năng điều khiển heuristic vào một thuật toán
tìm kiếm.

Một sơ đồ của hệ sinh được mô tả như hình sau:

Võ Huỳnh Trâm – Trần Ngân Bình 83


Giáo Trình Trí Tuệ Nhân Tạo

Tập luật sinh Bộ nhớ làm việc


(production rules) (Working memory )

ĐỐI SÁNH
Chu
trình Tập luật tranh chấp
nhận (Conflict Set) Thay đổi
dạng –
hành GIẢI QUYẾT
động TRANH CHẤP

THỰC THI
luật kích họat
(rule fired)

Hình 5.1 – Cấu trúc hệ sinh

Thí dụ 5.1: Một chương trình hệ sinh đơn giản dùng để sắp xếp một dãy các chữ cái a,b,c
theo thứ tự từ điển. Trong ví dụ này, một luật sinh sẽ được áp dụng nếu điều kiện của nó phù
hợp với một phần của dãy chữ cái trong bộ nhớ làm việc. Khi một luật được kích hoạt, phần
dãy phù hợp với điều kiện luật này được thay thế bởi dãy ở phần hành động của luật đó.

Tập luật sinh

Tập luật Luật


Bước Bộ nhớ làm việc
tranh chấp kích hoạt

Dừng

Hình 5.2 – Các bước thực hiện của một hệ sinh đơn giản

84 Võ Huỳnh Trâm – Trần Ngân Bình


Chương 5: Điều khiển và cài đặt tìm kiếm trong không gian trạng thái

II.2 Một số ví dụ về hệ sinh

Thí dụ 5.2: Bài toán trò đố 8 ô

Không gian tìm kiếm do trò đố 8 ô sinh ra vừa đủ phức tạp để khảo sát và cũng vừa đủ nhỏ
để có thể theo dõi, cho nên ta thường hay sử dụng nó để minh họa cho các chiến lược tìm
kiếm khác nhau như tìm kiếm sâu, tìm kiếm rộng, cũng như các chiến lược tìm kiếm
heuristic. Nó cũng thích hợp với việc giải bằng hệ sinh. Các nước đi hợp lệ được trình bày
như các luật trong hình. Trong trường hợp trạng thái bắt đầu và trạng thái đích của trò chơi
được xác định, chúng ta có khả năng áp dụng một hệ sinh cho không gian tìm kiếm của bài
toán.

Trạng thái Trạng thái


bắt đầu: kết thúc:

Tập luật sinh:

Điều kiện Hành động


Trạng thái kết thúc trong bộ nhớ làm việc → Dừng
Ô trống không ở cạnh trái → Chuyển ô trống sang trái
Ô trống không ở cạnh đỉnh → Chuyển ô trống lên
Ô trống không ở cạnh phải → Chuyển ô trống sang phải
Ô trống không ở cạnh đái → Chuyển ô trống xuống

Bộ nhớ làm việc chứa trạnh thái bắt đầu và trạng thái kết thúc

Cơ chế kiểm soát

1. Thử mỗi luật sinh theo thứ tự


2. Không cho phép vòng lập
3. Dừng khi tìm thấy trạng thái kết thúc

Hình 5.3 – Trò đố 8 ô dưới dạng một hệ sinh

Thí dụ 5.3: Bài toán đường đi quân mã (Knight’s tour problem)

Bài toán đường đi quân mã trên bàn cờ vua cũng có thể được giải bằng cách sử dụng hệ sinh.
Mỗi nước đi sẽ được biểu diễn bằng một luật mà phần điều kiện của nó là vị trí của quân cờ
tại một ô và phần hành động của nó là vị trí hợp lệ sau khi di chuyển quân cờ. Mười sáu luật
sinh sẽ biểu diễn cho tất cả các nước đi hợp lệ của quân cờ. Khởi đầu, bộ nhớ làm việc chứa
trạng thái bàn cờ hiện tại và trạng thái đích. Vòng lặp điều khiển sẽ áp dụng các luật cho đến
khi trạng thái hiện tại giống trạng thái đích rồi dừng lại. Một chiến lược giải quyết tranh chấp
sẽ kích hoạt luật đầu tiên và không tạo vòng lặp. Vì quá trình tìm kiếm có thể dẫn đến những
kết thúc chết nên chu trình điều khiển cho phép lần ngược.

Võ Huỳnh Trâm – Trần Ngân Bình 85


Giáo Trình Trí Tuệ Nhân Tạo

LUẬT ĐIỀU KIỆN HÀNH ĐỘNG


1 Quân mã ở ô 1 Di chuyển đến ô 8
2 Quân mã ở ô 1 Di chuyển đến ô 6
3 Quân mã ở ô 2 Di chuyển đến ô 9
4 Quân mã ở ô 2 Di chuyển đến ô 7
5 Quân mã ở ô 3 Di chuyển đến ô 4
6 Quân mã ở ô 3 Di chuyển đến ô 8
Các bước đi hợp lệ của
quân mã 7 Quân mã ở ô 4 Di chuyển đến ô 9
8 Quân mã ở ô 4 Di chuyển đến ô 3
9 Quân mã ở ô 6 Di chuyển đến ô 1
1 2 3 10 Quân mã ở ô 6 Di chuyển đến ô 7
11 Quân mã ở ô 7 Di chuyển đến ô 2
4 5 6 12 Quân mã ở ô 7 Di chuyển đến ô 6
13 Quân mã ở ô 8 Di chuyển đến ô 3
7 8 9 14 Quân mã ở ô 8 Di chuyển đến ô 1
Đánh số các ô trong 15 Quân mã ở ô 9 Di chuyển đến ô 2
bàn cờ 3x3 16 Quân mã ở ô 9 Di chuyển đến ô 4

Bộ nhớ làm việc Luật


Tập luật kích hoạt
Bước tranh chấp
Ô hiện thời Ô đi đến

Dừng
Hình 5.4 – Giải pháp hệ sinh cho bài toán đường đi quân mã

86 Võ Huỳnh Trâm – Trần Ngân Bình


Chương 5: Điều khiển và cài đặt tìm kiếm trong không gian trạng thái

II.3 Điều khiển tìm kiếm trong các hệ sinh

Mô hình hệ sinh cho chúng ta có nhiều cơ hội để bổ sung điều khiển heuristic cho một thuật
toán tìm kiếm. Những cơ hội đó có thể áp dụng khi chọn chiến lược tìm kiếm hướng dữ liệu
hay tìm kiếm hướng mục tiêu, trong cấu trúc các luật hoặc khi chọn chiến lược giải quyết
tranh chấp.

II.3.1 Điều khiển chọn chiến lược tìm kiếm hướng dữ liệu (suy diễn tiến) hay
tìm kiếm hướng mục tiêu (suy diễn lùi)

Tìm kiếm hướng dữ liệu bắt đầu với một mô tả bài toán (như một tập các tiền đề logic, các
triệu chứng của người bệnh, hay một khối dữ liệu cần suy diễn ...) rồi suy ra các kiến thức
mới từ dữ liệu đó. Quá trình này được thực hiện bằng cách áp dụng các luật suy diễn, các
nước đi hợp lệ trong một trò chơi hoặc các thao tác sinh ra trạng thái khác vào mô tả hiện
hành của bài toán, đồng thời đưa thêm các kết quả vào mô tả bài toán. Quá trình này tiếp tục
cho đến khi tiếp cận một mục tiêu.

Tập luật sinh Quá trình thực hiện


Tập luật Luật
Bước Bộ nhớ làm việc
tranh chấp kích họat

Dừng

Không gian suy diễn

Hướng
suy diễn

Hình 5.5 – Tìm kiếm hướng dữ liệu trong một hệ sinh

Mô tả của quá trình suy luận hướng mục tiêu này nhấn mạnh sự gần giống của nó với mô
hình hệ sinh của việc tính toán. Trạng thái hiện tại của bài toán được đưa vào bộ nhớ làm
việc. Chu trình nhận dạng – hành động sẽ đối sánh trạng thái hiện tại với tập luật sinh (theo
thứ tự). Khi các dữ liệu này phù hợp với phần điều kiện của một trong các luật sinh đó, phần
hành động của luật sinh sẽ bổ sung thêm (bằng cách thay đổi bộ nhớ làm việc) một thông tin
mới vào trạng thái hiện tại của bài toán.

Võ Huỳnh Trâm – Trần Ngân Bình 87


Giáo Trình Trí Tuệ Nhân Tạo

Vì tất cả các luật sinh đều có dạng CODITION→ ACTION. Khi CONDITION phù hợp với
một số phần nào đó trong bộ nhớ làm việc, ACTION sẽ được thực hiện.

Hình trên trình bày quá trình tìm kiếm hướng dữ liệu đơn giản dựa vào một tập các luật sinh
được biểu diễn dưới dạng phép kéo theo của phép tính mệnh đề. Chiến lược giải quyết tranh
chấp đơn giản là chọn luật vừa mới được kích hoạt. Theo ràng buộc này, luật đầu tiên sẽ
được chọn. Quá trình thực hiện sẽ dừng lại khi tiếp cận một mục tiêu. Hình này cũng giới
thiệu trình tự các luật kích hoạt và trạng thái bộ nhớ làm việc trong quá trình thực hiện cùng
với đồ thị của không gian tìm kiếm.

Ta cũng có thể áp dụng tìm kiếm hướng mục tiêu trong các hệ sinh. Để thực hiện điều này,
mục tiêu được đưa vào bộ nhớ làm việc và được đối sánh với phần ACTION của các luật
sinh (bằng phép hợp nhất chẳng hạn) và phần CODITION cuả luật sẽ được bổ sung vào bộ
nhớ làm việc và trở thành các mục tiêu mới của quá trình tìm kiếm. Quá trình này cứ tiếp tục
cho đến khi một sự kiện được tìm thấy, thường là trong mô tả ban đầu của bài toán. Quá
trình tìm kiếm sẽ dừng lại khi các CODITION của tất cả các luật sinh được kích hoạt đều là
đúng. Hình sau là một ví dụ về suy luận hướng mục tiêu. Cần chú ý rằng ta sẽ dừng lại khi
các CODITION của tất cả các luật sinh được kích hoạt đều là đúng. Tìm kiếm hướng mục
tiêu sẽ kích hoạt loạt luật sinh khác và tiến hành quá trình tìm kiếm trên không gian khác so
với kiểu hướng dữ liệu.

Tập luật sinh Quá trình thực hiện


Tập luật Luật
Bước Bộ nhớ làm việc tranh chấp kích họat

Dừng

Không gian suy diễn

Hướng
suy diễn

Hình 5.6. – Tìm kiếm hướng mục tiêu trong một hệ sinh

88 Võ Huỳnh Trâm – Trần Ngân Bình


Chương 5: Điều khiển và cài đặt tìm kiếm trong không gian trạng thái

Câu hỏi :

Một hệ sinh sử dụng động cơ suy diễn là một chu trình nhận dạng hành động (đối
sánh → giải quyết tranh chấp → thi hành luật). Hãy cho biết điểm khác biệt cơ bản
tại bước đối sánh (match) khi hệ thống tiến hành suy diễn tiến và suy diễn lùi ?

II.3.2 Điều khiển tìm kiếm thông qua cấu trúc luật

Cấu trúc của các luật trong một hệ sinh bao gồm sự phân biệt giữa phần điều kiện
(CONDITION) với phần hành động (ACTION) và thứ tự mà các điều kiện được thử, sẽ
quyết định cách tìm kiếm trong không gian.

Trong biểu diễn của phép tính vị từ, các biểu thức chỉ định nghĩa các quan hệ thực trong một
lĩnh vực bài toán chứ không khẳng định về thứ tự diễn dịch các thành phần của chúng do đó
có thể có một vài cách biểu diễn khác nhau cho cùng một luật nhưng chúng vẫn tương đương
về mặt chân trị. Những cách viết này có thể không dẫn đến cùng một kết quả khi được diễn
dịch dưới dạng các luật sinh vì việc cài đặt của hệ sinh phải theo một thứ tự trong việc đối
sánh và kích hoạt các luật. Hệ sinh thử các luật theo một thứ tự xác định nên người lập trình
có thể điều khiển quá trình tìm kiếm thông qua cấu trúc và thứ tự của các luật trong tập luật
sinh. Mặc dù tương đương về mặt logic nhưng hai cách thực hiện không như nhau trong một
quá trình tìm kiếm.

Các chuyên gia mã hóa các heuristic quan trọng theo những quy luật chuyên môn của họ.
Thứ tự của các tiền đề sẽ mã hóa những thông tin quan trọng về trình tự để giải bài toán.
Chẳng hạn khi một kỹ sư cơ khí nói rằng “Nếu động cơ không khởi động được và đèn không
sáng thì kiểm tra acquy”, tức là anh ta đã đề nghị một trình tự đặc trưng cho các hành động.
Thông tin này sẽ không thể hiểu bởi phát biểu logic tương đương “Động cơ khởi động được
hoặc đèn sáng hoặc kiểm tra acquy”. Dạng này của các luật rất quan trong trong việc điều
khiển tìm kiếm, nó làm cho hệ thống thực hiện một cách logic, làm cho quá trình theo dõi
việc kích hoạt các luật dễ hiểu hơn, ...

II.3.3 Điều khiển chọn chiến lược giải quyết tranh chấp

Mặc dù các hệ sinh (giống như tất cả các cấu trúc dùng cho những hệ thống dựa vào kiến
thức) cho phép các heuristic được mã hóa vào trong nội dung kiến thức của bản thân các
luật, nhưng chúng cũng có nhiều cơ hội khác để điều khiển heuristic thông qua các giải pháp
giải quyết tranh chấp. Ví dụ các chiến lược giải quyết tranh chấp được hỗ trợ bởi OPS5
(Brownston và cộng sự -1985) gồm có:

1. Chiến lược khúc xạ (refraction): Chiến lược này quy định rằng khi một luật đã được
kích hoạt, nó không thể được kích hoạt lại trước khi các phần tử trong bộ nhớ làm
việc phù hợp với phần điều kiện của nó thay đổi. Chiến lược này giúp ngăn ngừa
vòng lặp.

2. Chiến lược vừa mới xảy ra (recency): Chiến lược này chọn những luật có phần điều
kiện phù hợp với các mẫu vừa mới được bổ sung vào bộ nhớ làm việc. Chiến lược
này giúp tập trung việc tìm kiếm vào một dòng suy luận duy nhất.

Võ Huỳnh Trâm – Trần Ngân Bình 89


Giáo Trình Trí Tuệ Nhân Tạo

3. Chiến lược tính chi tiết (specificity): Chiến lược này quy định rằng một luật giải toán
chi tiết hơn sẽ được ưa thích hơn luật tổng quát. Một luật có tính chi tiết hơn luật
khác nếu nó có nhiều điều kiện hơn. Điều này có nghĩa nó sẽ đối sánh với số mẫu ít
hơn trong bộ nhớ làm việc.

II.4 Những ưu điểm của hệ sinh dùng cho trí tuệ nhân tạo

Theo các minh họa trên, hệ sinh cho chúng ta một quy tắc chung để thực hiện tìm kiếm. Nhờ
tính đơn giản, khả năng cải biến và sự linh hoạt trong việc áp dụng các kiến thức giải toán,
hệ sinh đã tỏ ra là một công cụ quan trọng để xây dựng các hệ chuyên gia và các ứng dụng
trí tuệ nhân tạo khác. Những ưu điểm chính của các hệ sinh đối với trí tuệ nhân tạo là:

1. Tách riêng tri thức và điều khiển: Trong hệ sinh sự điều khiển được cho bởi chu trình
nhận dạng – hành động của vòng lặp hệ sinh, còn các kiến thức giải toán được mã
hóa vào trong các luật. Ưu điểm của sự tách biệt này là dễ thay đổi loại cơ sở tri thức
mà không thay đổi việc điều khiển chương trình và ngược lại.

2. Đưa một sắp xếp tự nhiên vào tìm kiếm trong không gian trạng thái: Các phần tử của
một hệ sinh sẽ được sắp xếp một cách tự nhiên vào cấu trúc tìm kiếm không gian
trạng thái. Các trạng thái kế tiếp của bộ nhớ làm việc sẽ tạo nên các nút của đồ thị.
Các luật sinh là các bước chuyển đổi có thể xảy ra giữa các trạng thái cùng với các
chiến lược giải quyết tranh chấp sẽ cài đặt việc chọn một nhánh trong không gian
trạng thái đó.

3. Tính module của luật sinh: Một yếu tố quan trọng của hệ sinh là không có bất kỳ sự
tương tác lẫn nhau nào về cú pháp giữa các luật sinh. Các luật chỉ có thể tác động đến
việc kích họat các luật khác bằng cách thay đổi mẫu trong bộ nhớ làm việc, chúng
không thể “gọi” trực tiếp các luật khác như là một thủ tục con (subroutine), cũng
không thể thiết lập giá trị của các biến cho các luật sinh khác. Tính độc lập về cú
pháp này đã hỗ trợ cho sự phát triển của các hệ chuyên gia bằng cách liên tục bổ
sung, loại bỏ hoặc thay đổi các tri thức (luật) của hệ thống.

4. Điều khiển theo mẫu: Các bài toán được chương trình trí tuệ nhân tạo nhằm vào đều
yêu cầu phải linh hoạt trong quá trình thực thi chương trình. Mục tiêu này được đáp
ứng bởi thực tế là các luật trong hệ sinh có thể kích hoạt theo mọi trình tự. Trong một
bài toán, các mô tả tạo nên trạng thái hiện hành sẽ xác định tập luật tranh chấp và do
đó cũng sẽ xác định con đường tìm kiếm và lời giải riêng.

5. Có cơ hội cho điều khiển heuristic của quá trình tìm kiếm.

6. Theo dõi và giải thích: Tính module của các luật và bản chất lặp lại trong quá trình
thực thi làm cho nó dễ dàng theo dõi hơn trong một hệ sinh. Ở mỗi giai đoạn của chu
trình nhận dạng – hành động, luật được chọn có thể được hiện ra. Vì mỗi luật ứng với
một đoạn của quá trình giải toán nên nội dung luật sẽ giải thích đầy đủ ý nghĩa về
trạng thái và hành động hiện hành của hệ thống đó.

7. Tính độc lập ngôn ngữ: Mô hình điều khiển hệ sinh không phụ thuộc vào cách thể
hiện đã được chọn cho các luật và cho bộ nhớ làm việc miễn là cách thể hiện đó hỗ
trợ cho việc đối sánh mẫu.

90 Võ Huỳnh Trâm – Trần Ngân Bình


Chương 5: Điều khiển và cài đặt tìm kiếm trong không gian trạng thái

8. Mô hình hóa việc giải các bài toán của con người: Đây là một trong những ứng dụng
đầu tiên của hệ sinh, chúng vẫn còn được dùng làm mô hình cho họat động của con
người trong nhiều nghiên cứu khoa học về nhận thức.

III KIẾN TRÚC BẢNG ĐEN (BLACKBOARD


ARCHITECTURE)

Kiến trúc bảng đen là cơ chế điều khiển cuối cùng được giới thiệu trong chương này. Kiến
trúc bảng đen mở rộng các hệ sinh bằng cách cho phép chúng ta sắp xếp bộ nhớ làm việc
thành các module riêng, mỗi module tương ứng với một luật sinh khác nhau. Kiến trúc này
cũng cho phép chúng ta tích hợp các tập luật sinh khác nhau vào một cấu trúc toàn cục duy
nhất.

Một kiến trúc bảng đen bao gồm:

1. Bảng đen (Blackboard): Là một số cơ sở dữ liệu toàn cục tập trung dùng để trao đổi
thông tin giữa các nguồn tri thức không đồng bộ độc lập, tập trung vào các mặt có
liên quan của một bài toán cụ thể.

2. Các nguồn tri thức (Knowledge source) KSi: Lấy dữ liệu của mình từ bảng đen, xử lý
các dữ liệu đó rồi trả kết quả về cho bảng đen để các nguồn tri thức khác sử dụng.
Mỗi KSi đều độc lập theo ý nghĩa là một quá trình riêng biệt, hoạt động theo các đặc
trưng riêng, và khi sử dụng một hệ thống đã xử lý hoặc có nhiều bộ xử lý, nó sẽ độc
lập với các quá trình xử lý khác của bài toán. Hệ thống không đồng bộ ở chỗ từng
KSi sẽ bắt đầu hoạt động của mình khi nào tìm thấy các dữ liệu đầu vào thích hợp
được công bố trên bảng đen. Khi kết thúc công việc xử lý của mình, nó sẽ gửi kết quả
đi và chờ dữ liệu đầu vào mới.

3. Bộ lập lịch trình (scheduler): Tổ chức việc cấp tài nguyên và truy cập bảng đen của
các nguồn tri thức.

Hình sau trình bày một sơ đồ về kiểu thiết kế bảng đen:

KS1 Bảng đen toàn


cục

KS2

KSi

KSn

Hình 5.7 – Kiến trúc bảng đen

Võ Huỳnh Trâm – Trần Ngân Bình 91


Giáo Trình Trí Tuệ Nhân Tạo

Kiến trúc bảng đen dùng trong việc tổ chức một chương trình lớn, lần đầu tiên được giới
thiệu trong công trình nghiên cứu HEARSAY-II (Erman và cộng sự, Reddy–1976).
HEARSAY–II là một chương trình hiểu lời nói, đầu tiên nó được thiết kế dưới dạng nền cho
một cơ sở dữ liệu thư viện về những bài báo khoa học. Những người sử dụng thư viện này
phải nói với máy tính những câu như: “Có bài báo nào của Feigenbaum và Feldman hay
không?” và máy tính sẽ trả lời câu hỏi đó bằng những thông tin lấy từ cơ sở dữ liệu của thư
viện. Quá trình hiểu tiếng nói đòi hỏi chúng ta phải tích hợp một số quá trình khác nhau, có
những yêu cầu về kiến thức và thuật toán rất khác nhau, và độ phức tạp có thể tăng theo hàm
mũ. Những quá trình xử lý tín hiệu, nhận biết âm vị, âm tiết, từ, phân tích cú pháp và phân
tích ngữ nghĩa sẽ chế ngự ràng buộc lẫn nhau khi diễn giải câu nói.

Kiến trúc bảng đen đã cho phép HEARSAY-II tọa độ hóa một số nguồn tri thức khác nhau
dùng trong công việc phức tạp này. Kiến trúc bảng đen thường được tổ chức theo hai chiều.
Với HEARSAY-II hai chiều đó là thời gian khi lời nói được tạo ra và mức độ phân tích lời
nói. Mỗi mức độ phân tích được xử lý bởi một lớp các nguồn tri thức:

KS1 - Dạng sóng của tín hiệu âm thanh

KS2 - Các âm vị hay các đoạn âm của tín hiệu âm thanh

KS3 - Các âm tiết mà các âm vị đó có thể tạo ra

KS4 - Các từ khi được phân tích bởi một KS

KS5 - Các từ khi được phân tích bởi một KS khác

KS6 - Loại KS dùng để phát ra các chuỗi từ

KS7 - Loại KS dùng để đặt các chuỗi từ vào trong câu

Trong việc xử lý lời nói, dạng sóng của tín hiệu âm thanh được đưa vào ở mức độ thấp nhất.
Các nguồn tri thức dùng cho việc xử lý ở mức này đều được hiệu lực hóa và gởi các kết quả
diễn dịch của chúng cho bảng đen, để sau đó sẽ được chọn lấy ra bởi một quá trình thích
hợp. Vì ngôn ngữ nói thường có nhiều chỗ tối nghĩa nên có thể có nhiều giả thiết tranh chấp
nhau ở từng mức trong kiến trúc. Các nguồn kiến thức ở mức cao hơn sẽ làm rõ nghĩa cho
các giả thiết tranh chấp này.

Sự phân tích của HEARSAY-II không thể xem đơn giản như một mức thấp tạo ra dữ liệu và
sau đó các mức cao hơn là phân tích. Quá trình phức tạp hơn nhiều. Nếu KS ở một mức
không thể xử lý dữ liệu được đưa đến, thì KS đó có thể yêu cầu KS đã gời dữ liệu cho nó
quay lại với cách xử lý khác hay tạo ra giả thiết khác về dữ liệu đó. Ngoài ra, nhiều KS khác
nhau có thể đồng thời hoạt động trên nhiều phần khác nhau của lời nói. Tất cả các quá trình
này đều đồng bộ và hướng dữ liệu, chúng hoạt động khi có dữ liệu vào, tiếp tục hoạt động
cho đến khi hoàn thành xong nhiệm vụ và sau đó gởi kết quả đi rồi chờ nhiệm vụ tiếp theo.

Bộ lập lịch trình là một trong các KS, sẽ quản lý việc truy cập giữa các KS nếu không có KS
nào hoạt động, bộ lập lịch trình sẽ quyết định nhiệm vụ đó kết thúc và đóng lại.

Khi chương trình HEARSAY-II có một cơ sở dữ liệu khoảng 1000 từ, nó làm việc hoàn toàn
tốt mặc dù hơi chậm. Khi cơ sở dữ liệu mở rộng hơn, dữ liệu dùng cho các nguồn tri thức
này sẽ trở nên rất phức tạp đến mức khó quản lý. HEARSAY-III (Balzer và cộng sự - 1980,

92 Võ Huỳnh Trâm – Trần Ngân Bình


Chương 5: Điều khiển và cài đặt tìm kiếm trong không gian trạng thái

Erman và cộng sự - 1981) là sự tổng quát hóa phương pháp mà HEARSAY-II đã dùng.
Chiều thời gian của HEARSAY-II không còn cần thiết nữa, nhưng nhiều KS ứng với các
mức phân tích thì vẫn giữ nguyên. Bảng đen dùng cho HEARSAY-III được hoạch định để
tương tác với một cơ sở dữ liệu quan hệ đa năng. Thực vậy, HEARSAY-III là một khung
chung dùng để thiết kế các hệ chuyên gia. Một thay đổi quan trọng trong HEARSAY-III là
chia bộ lập lịch trình thành một công cụ điều khiển riêng cho bảng đen.

TỔNG KẾT CHƯƠNG V: Chương V đã trình bày một số các thuật toán cũng như các mô
hình, kiến trúc phổ biến dùng điều khiển và cài đặt quá trình tìm kiếm trong không gian
trạng thái như: tìm kiếm đệ quy, mô hình hệ sinh, kiến trúc bảng đen, … cùng với các bài
toán minh họa cho từng giải thuật rất cụ thể. Trong chương VI tiếp theo, chúng ta sẽ thảo
luận việc giải quyết vấn đề tri thức chuyên sâu mà điển hình là thiết kế các hệ chuyên gia.

IV BÀI TẬP CHƯƠNG V

V.1. Trước tình hình dịch cúm gà gần đây, Bộ y tế có đưa ra một số hướng dẫn về thực
phẩm an toàn (safe) dưới dạng một tập hợp biểu thức vị từ như sau:
R1. vegetable(X) ∨ fruit(X) ⇒ safe(X)
R2. beef(X) ∨ porc(X) ∨ lamb(X) ⇒ meat(X)
R3. meat(X) ∧ low_fat(X) ⇒ low_risk(X)
R4. contains_fat(X,Y) ∧ (Y<20%) ⇒ low_fat(X)
R5. certified(X) ∨ low_risk(X) ⇒ safe(X)
a) Vẽ đồ thị AND/OR cho biết “thực phẩm an toàn”.

b) Nếu biết lượng chất béo có trong thịt bò (contains_fat) là nhỏ hơn 20%, biểu diễn các
bước suy diễn theo hệ sinh – tìm kiếm hướng dữ liệu để chứng tỏ “thịt bò là thực
phẩm an toàn”.

Võ Huỳnh Trâm – Trần Ngân Bình 93


Giáo Trình Trí Tuệ Nhân Tạo

V.2. Vẽ đồ thị AND/OR cho các quá trình suy diễn tiến và suy diễn lùi dùng trong hệ tư
vấn dưới đây: Hệ tư vấn cho việc chọn hình thức giải trí trong kỳ nghĩ của bạn. Các
đề nghị khác nhau mà hệ có thể cung cấp là: ngắm cảnh, trượt tuyết, tắm nắng, bơi
lội, lướt ván.

Tập luật suy diễn bao gồm:


R1. IF thích_nắng THEN nghỉ_vùng_biển
R2. IF không_thích_nắng AND chơi_thể thao THEN nghỉ_vùng_núi
R3. IF không_thích_nắng AND không_chơi_thể thao THEN ngắm_cảnh
R4. IF nghỉ_vùng_núi AND ngân_sách_nhỏ THEN ngắm_cảnh
R5. IF nghỉ_vùng_núi AND ngân_sách_không_nhỏ THEN trượt_tuyết
R6. IF nghỉ_vùng_biển AND không_chơi_thể thao THEN tắm_nắng
R7. IF nghỉ_vùng_biển AND chơi_thể thao AND ngân_sách nhỏ THEN bơi_lội
R8. IF nghỉ_vùng_biển AND chơi_thể thao AND ngân_sách_không_nhỏ THEN lướt_ván
1) Suy diễn tiến dùng dữ liệu: Nam, rất thích chơi thể thao, không thích ánh nắng và có
ngân sách không nhỏ.

2) Suy diễn lùi và trả lời các câu hỏi phát sinh từ hệ thống trên dữ liệu sau: Hoa, rất
thích chơi thể thao, thích ánh nắng mặt trời và chỉ có ngân sách nhỏ.

94 Võ Huỳnh Trâm – Trần Ngân Bình


Chương V................................................................................................................................79
ĐIỀU KHIỂN VÀ CÀI ĐẶT TÌM KIẾM TRONG KHÔNG GIAN TRẠNG THÁI.......79
I. TÌM KIẾM DỰA TRÊN CƠ SỞ ĐỆ QUI.................................................................80
I.1. Tìm kiếm đệ quy ...............................................................................................80
I.2. Tìm kiếm hướng mẫu (Pattern – directed search).............................................81
II. HỆ THỐNG LUẬT SINH (HỆ SINH – PRODUCTION SYSTEM) .......................83
II.1. Định nghĩa hệ sinh ............................................................................................83
II.2. Một số ví dụ về hệ sinh .....................................................................................85
II.3. Điều khiển tìm kiếm trong các hệ sinh..............................................................87
II.4. Những ưu điểm của hệ sinh dùng cho trí tuệ nhân tạo......................................90
III. KIẾN TRÚC BẢNG ĐEN (BLACKBOARD ARCHITECTURE) ......................91
BÀI TẬP CHƯƠNG V ............................................................................................93

Võ Huỳnh Trâm – Trần Ngân Bình 95

You might also like