1. Trang chủ
  2. » Khoa Học Tự Nhiên

Tài liệu Điều khiển và cài đặt tìm kiếm trong không gian trạng thái docx

17 424 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm kiếm đệ quy
Tác giả Vừ Huỳnh Trõm, Trần Ngõn Bỡnh
Chuyên ngành Trí Tuệ Nhân Tạo
Thể loại Giáo trình
Định dạng
Số trang 17
Dung lượng 612,38 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

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

Trang 2

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

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;

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

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);

Trả lời (thất bại);

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

Trang 3

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à:

Trang 4

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 …):

for mỗi thành phần pi do begin

pattern_search(p i );

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…):

repeat cho mỗi pi

pattern_search(p i );

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;

Trang 5

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:

Trang 6

Tập luật sinh (production rules)

Bộ nhớ làm việc (Working memory ) ĐỐI SÁNH

Tập luật tranh chấp (Conflict Set)

GIẢI QUYẾT TRANH CHẤP

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

Chu trình nhận dạng – hành động

Thay đổi

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

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

tranh chấp

Luật 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

Trang 7

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

bắt đầu:

Trạng thái kết thúc:

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

Tập luật sinh:

Ô 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

Trang 8

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

Bước

Bộ nhớ làm việc

Ô hiện thời Ô đi đến

Tập luật tranh chấp

Dừng

Luật kích hoạt

Các bước đi hợp lệ của

quân mã

9

8

7

6

5

4

3

2

1

Đánh số các ô trong

Di chuyển đến ô 2 Quân mã ở ô 9

15

Di chuyển đến ô 1 Quân mã ở ô 8

14

Di chuyển đến ô 9 Quân mã ở ô 4

7

Di chuyển đến ô 3 Quân mã ở ô 4

8

Di chuyển đến ô 1 Quân mã ở ô 6

9

Di chuyển đến ô 7 Quân mã ở ô 6

10

Di chuyển đến ô 2 Quân mã ở ô 7

11

Di chuyển đến ô 6 Quân mã ở ô 7

12

Di chuyển đến ô 3 Quân mã ở ô 8

13

Di chuyển đến ô 9 Quân mã ở ô 2

3

Di chuyển đến ô 6 Quân mã ở ô 1

2

Di chuyển đến ô 8 Quân mã ở ô 1

1

Di chuyển đến ô 7 Quân mã ở ô 2

4

Di chu

ỘNG

yển đến ô 8 Quân mã ở ô 3

6

Di chu Quân mã ở ô 3

Trang 9

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

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

tranh chấp

Luật 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

Trang 10

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

Không gian suy diễn

Hướng suy diễn

Dừng

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

Ngày đăng: 20/12/2013, 23:15

HÌNH ẢNH LIÊN QUAN

Hình 5.1 – Cấu trúc hệ sinh - Tài liệu Điều khiển và cài đặt tìm kiếm trong không gian trạng thái docx
Hình 5.1 – Cấu trúc hệ sinh (Trang 6)
Hình 5.2 – Các bước thực hiện của một hệ sinh đơn giản - Tài liệu Điều khiển và cài đặt tìm kiếm trong không gian trạng thái docx
Hình 5.2 – Các bước thực hiện của một hệ sinh đơn giản (Trang 6)
Hình 5.5 – Tìm kiếm hướng dữ liệu trong một hệ sinh - Tài liệu Điều khiển và cài đặt tìm kiếm trong không gian trạng thái docx
Hình 5.5 – Tìm kiếm hướng dữ liệu trong một hệ sinh (Trang 9)
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 đề - Tài liệu Điều khiển và cài đặt tìm kiếm trong không gian trạng thái docx
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 đề (Trang 10)
Hình sau trình bày một sơ đồ về kiểu thiết kế bảng đen: - Tài liệu Điều khiển và cài đặt tìm kiếm trong không gian trạng thái docx
Hình sau trình bày một sơ đồ về kiểu thiết kế bảng đen: (Trang 13)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w