chuong+1 2-3-4

100
1 TRÍ TUỆ NHÂN TẠO Trần Thị Hương Khoa Kỹ Thuật – Công Nghệ Trường Đại Học Hà Tĩnh Email: [email protected]

Upload: co-tu-ky

Post on 22-May-2015

2.458 views

Category:

Documents


8 download

DESCRIPTION

tri tue nhan tao

TRANSCRIPT

Page 1: Chuong+1 2-3-4

1

TRÍ TUỆ NHÂN TẠO

Trần Thị Hương

Khoa Kỹ Thuật – Công Nghệ

Trường Đại Học Hà Tĩnh

Email: [email protected]

Page 2: Chuong+1 2-3-4

2

NỘI DUNG

TỔNG QUAN VỀ KHOA HỌC TTNT CÁC PHƯƠNG PHÁP BIỂU DIỄN VÀ GIẢI

QUYẾT VẤN ĐỀ

Page 3: Chuong+1 2-3-4

3

TÀI LIỆU THAM KHẢO

1. Trí tuệ nhân tạo – Các phương pháp Giải quyết vấn đề và kỹ thuật xử lý tri thức (1999)Nguyễn Thanh Thuỷ

2. Trí tuệ nhân tạo – Đinh Mạnh Tường

Page 4: Chuong+1 2-3-4

4

KHỐI LƯỢNG & CẤU TRÚC HỌC PHẦN

Số đơn vị học trình: 3 Lý thuyết: 30 tiết Thực hành, bài tập: 15tiết

Page 5: Chuong+1 2-3-4

5

CHƯƠNG 1: TỔNG QUAN VỀ KHOA HỌC TTNT

Page 6: Chuong+1 2-3-4

6

Trí Tuệ Nhân Tạo là gì? Là một nhánh của khoa học máy tính liên quan

đến sự tự động hóa hành vi thông minh.Trí tuệ là gì?

Các câu hỏi chưa có câu trả lời: Liệu trí tuệ có phải là một khả năng duy nhất hay chỉ

là một tên gọi cho một tập hợp các hành vi phân biệt và độc lập nhau?

Thế nào là khả năng sáng tạo? Thế nào là trực giác? Điều gì diễn ra trong quá trình học?

Page 7: Chuong+1 2-3-4

7

Trí Tuệ Nhân Tạo là gì? Intelligence? Trí năng, trí tuệ, trí thông minh Thế nào là Artificial intelligence? Chúng ta sẽ

phân tích 4 loại quan niệm về intelligence sau:

Page 8: Chuong+1 2-3-4

8

Trí Tuệ Nhân Tạo là gì?“Nỗ lực tạo ra các máy tính biết tư duy … máy tính có ý thức (The exciting new effort to make computers thinks … machine with minds, in the full and literal sense)” (Haugeland 1985)“Nghệ thuật sáng tạo ra các máy thực hiện các chức năng đòi hỏi sự thông minh như khi thực hiện bởi con người (The art of creating machines that perform functions that require intelligence when performed by people)” (Kurzweil, 1990)

“Việc nghiên cứu các năng lực trí tuệ sử dụng các mô hình tính toán (The study of mental faculties through the use of computational models)” (Charniak et al. 1985)

“Nghiên cứu tìm cách giải thích và mô phỏng các hành vi thông minh bằng các quá trình tính toán (A field of study that seeks to explain and emulate intelligent behavior in terms of computational processes)” (Schalkol, 1990)

Page 9: Chuong+1 2-3-4

9

Trí tuệ nhân tạo: Hệ thống tư duy như con người

“Nỗ lực tạo ra các máy tính biết tư duy … máy tính có ý thức (The exciting new effort to make computers thinks … machine with minds, in the full and literal sense)” (Haugeland 1985)

Hệ thống tư duy như con người(Systems that think like humans)

Con người tư duy như thế nào? Chưa có câu trả lời chính xác trong rất nhiều tình huống.

Ví dụ: Newell&Simson (1961) phát triển GPS (General Problem Solving) bắt chước cách giải quyết các bài toán trong toán học của con người.

Page 10: Chuong+1 2-3-4

Trí tuệ nhân tạo: hệ thống ứng xử như con người

“Nghệ thuật sáng tạo ra các máy thực hiện các chức năng đòi hỏi sự thông minh như khi thực hiện bởi con người (The art of creating machines that perform functions that require intelligence when performed by people)” (Kurzweil, 1990)

Hệ thống ứng xử (hành động) như con người (Hệ thống mà hành vi, ứng xử của nó như con người)

Systems that act like humans

Turing (1950) đề xuất bộ test (Turing test): hội thoại giữa hệ thống và người phỏng vấn. Nếu người phỏng vấn không biết được hệ thống là người hay là máy thì hệ thống đó được cho là thông minh.

- Con người lúc nào cũng ứng xử “đúng”?- Hành vi như thế nào được coi là giống con người?

Page 11: Chuong+1 2-3-4

Trí tuệ nhân tạo: hệ thống tư duy hợp lý

“Việc nghiên cứu các năng lực trí tuệ sử dụng các mô hình tính toán (The study of mental faculties through the use of computational models)” (Charniak et al. 1985)

Hệ thống tư duy hợp lý

System that think rationallyAristotle hình thức hóa “tư duy đúng” (Luật của tư duy đúng). Hệ tam đoạn luận là khuôn mẫu để thu được kết luận đúng khi cho giả thiết đúng. VD: Socrat là người; tất cả mọi người đều chết; do đó Socrat phải chết.

1. Không biểu diễn được tri thức không chắc chắn

2. Nhiều bài toán không dễ giải quyết do thiếu tài nguyên (không gian nhớ và thời gian)

3. Nhiều hành động coi là thông minh nhưng ko liên quan đến tư duy (chẳng hạn: co tay lại khi chạm vật nóng)

Page 12: Chuong+1 2-3-4

Trí tuệ nhân tạo: hệ thống ứng xử hợp lý

CS 460, Lecture 1

“Nghiên cứu tìm cách giải thích và mô phỏng các hành vi thông minh bằng các quá trình tính toán (A field of study that seeks to explain and emulate intelligent behavior in terms of computational processes)” (Schalkol, 1990)

Hệ thống ứng xử hợp lý (Hệ thống mà hành động/ứng xử hợp lý)

Systems that act rationally

Ưu điểm:-Tổng quát hơn-Tính hợp lý có thể dễ dàng được định nghĩa (rationality is well defined)

Page 13: Chuong+1 2-3-4

Artificial Intelligence: Hành động hợp lý Intelligence? Trí năng, trí tuệ, trí thông minh Môn học này, chúng ta thống nhất quan niệm trí thông

minh là hành động hợp lý, hành động tốt nhất hoặc hợp lý nhất mà cho kết quả tối ưu của một hàm nào đó.

Quan niệm như trên phù hợp với: khi nói đến tính thông minh, chúng ta thường gắn với một hành động, hành vi, ứng xử nào đó. Vi vậy Intelligence có thể coi đồng nghĩa với rational action, hay intelligent/rational agent

Page 14: Chuong+1 2-3-4

Turing Test

Ưu điểm của Turing Test Khái niệm khách quan về trí tuệ Tránh đi những thảo luận về quá trình bên trong và

ý thức Loại trừ định kiến thiên vị của người thẩm vấn

Interrogator

Page 15: Chuong+1 2-3-4

Các ý kiến phản đối Turing Test

Thiên vị các nhiệm vụ giải quyết vấn đề bằng ký hiệu

Trói buộc sự thông minh máy tính theo kiểu con người, trong khi con người có: Bộ nhớ giới hạn Có khuynh hướng nhầm lẫn

Tuy nhiên, trắc nghiệm Turing đã cung cấp một cơ sở cho nhiều sơ đồ đánh giá dùng thực sự cho các chương trình TTNT hiện đại.

Page 16: Chuong+1 2-3-4

Các Ứng Dụng của TTNT

1. Trò chơi và các bài toán đố

2. Suy luận và chứng minh định lý tự động

3. Các hệ chuyên gia (các hệ tri thức)

4. Xử lý ngôn ngữ tự nhiên

5. Lập kế hoạch và người máy

6. Máy học

7. Mạng Neuron và giải thuật di truyền

8. …

Page 17: Chuong+1 2-3-4

Trí Tuệ Nhân Tạo - Đặc Điểm Sử dụng máy tính vào suy luận trên các ký hiệu, nhận

dạng qua mẫu, học, và các suy luận khác… Tập trung vào các vấn đề “khó” không thích hợp với các

lời giải mang tính thuật toán. Quan tâm đến các kỹ thuật giải quyết vấn đề sử dụng các

thông tin không chính xác, không đầy đủ, mơ hồ… Cho lời giải ‘đủ tốt’ chứ không phải là lời giải chính xác

hay tối ưu. Sử dụng heuristics – “bí quyết” Sử dụng tri thức chuyên môn …

Page 18: Chuong+1 2-3-4

Những vấn đề chưa được giải quyết Chương trình chưa tự sinh ra được heuristic Chưa có khả năng xử lý song song của con người Chưa có khả năng diễn giải một vấn đề theo

nhiều phương pháp khác nhau như con người. Chưa có khả năng xử lý thông tin trong môi

trường liên tục như con người. Chưa có khả năng học như con người. Chưa có khả năng tự thích nghi với môi trường.

Page 19: Chuong+1 2-3-4

19

Các phương pháp và kỹ thuật

Các phương pháp biểu diễn tri thức và kỹ thuật xử lý tri thức

Các phương pháp giải quyết vấn đề Các phương pháp Heuristic Các phương pháp học Các ngôn ngữ TTNT

Page 20: Chuong+1 2-3-4

20

Các phương pháp và kỹ thuật

Các phương pháp biểu diễn tri thức và kỹ thuật xử lý tri thức

Các phương pháp giải quyết vấn đề Các phương pháp Heuristic Các phương pháp học Các ngôn ngữ TTNT

Page 21: Chuong+1 2-3-4

21

CÁC TIỀN ĐỀ CƠ BẢN CỦA TTNTTTNT kế thừa nhiều ý tưởng, quan điểm và các kỹ thuật từ các ngành khoa học khácTTNT kế thừa nhiều ý tưởng, quan điểm và các kỹ thuật từ các ngành khoa học khác

TTNTTTNT

Tâm lý học

Ngôn ngữ học

Khoa học máy tính

Triết học

Toán học

Các lý thuyết của lập luận và học

Các lý thuyết xác suất logic, tạo quyết định và tính toán

Làm cho TTNT trở thành hiện thực

Nghiên cứu ý nghĩa và cấu trúc của ngôn ngữ

Nghiên cứu tâm trí con người

Page 22: Chuong+1 2-3-4

22

LỊCH SỬ PHÁT TRIỂN CỦA KHOA HỌC TTNT

Page 23: Chuong+1 2-3-4

23

CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

Page 24: Chuong+1 2-3-4

24

CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

Page 25: Chuong+1 2-3-4

25

CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

Page 26: Chuong+1 2-3-4

26

SONY AIBO

CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

Page 27: Chuong+1 2-3-4

27

Đi bộ

Quay

Lên xuống cầu thang

Honda Humanoid Robot& Asimo

CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

Page 28: Chuong+1 2-3-4

28

CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

Page 29: Chuong+1 2-3-4

29

CÁC THÀNH TỰU CỦA KHOA HỌC TTNT

Page 30: Chuong+1 2-3-4

30

CÁC XU HƯỚNG MỚI TRONG TTNT

Page 31: Chuong+1 2-3-4

31

CÁC XU HƯỚNG MỚI TRONG TTNT

Page 32: Chuong+1 2-3-4

32

CÁC XU HƯỚNG MỚI TRONG TTNT

Page 33: Chuong+1 2-3-4

33

CÁC XU HƯỚNG MỚI TRONG TTNT

Page 34: Chuong+1 2-3-4

34

CÁC XU HƯỚNG MỚI TRONG TTNT

Page 35: Chuong+1 2-3-4

35

CÁC XU HƯỚNG MỚI TRONG TTNT

Page 36: Chuong+1 2-3-4

36

CÁC XU HƯỚNG MỚI TRONG TTNT

Page 37: Chuong+1 2-3-4

Chương 2. CÁC CHIẾN LƯỢC TÌM

KIẾM MÙ

Page 38: Chuong+1 2-3-4

I. Biểu diễn vấn đề trong KG trạng thái.

Vấn đề là gì? Một bài toán nào đó cần giải quyết, chẳng hạn

như một trò chơi, c.minh một định lý,… Một lớp rộng các bài toán có thể giải quyết

bằng cách biểu diễn bởi các trạng thái và các tóan tử (phép biến đổi trạng thái).

Page 39: Chuong+1 2-3-4

Ví dụ (trò chơi 8 số)

Page 40: Chuong+1 2-3-4

Các thành phần của KGTT

Sự sắp xếp các số tại mỗi thời điểm là một TT.

Hình bên trái là trạng thái ban đầu. Hình bên phải là trạng thái kết thúc hay trạng

thái đích (goal). Trạng thái đích của một bài toán có thể nhiều

hơn một.

Page 41: Chuong+1 2-3-4

Toán tử là một phép biển đổi hợp lệ chuyển từ trạng thái này sang trạng thái khác.

Bằng các tóan tử, từ trạng thái ban đầu, tiếp tục phát triển, cuối cùng thu được một không gian trạng thái (KGTT).

Page 42: Chuong+1 2-3-4

Định nghĩa

KGTT là một bộ bốn (X, u0, F, G), trong đó:X là tập các trạng thái

u0 là trạng thái bắt đầu

F là tập các toán tử, gồm các phép biến đổi.

G là tập trạng thái đích.

Page 43: Chuong+1 2-3-4

Biểu diễn KGTT

Không gian trạng thái có thể biểu diễn bằng đồ thị có hướng: mỗi đỉnh là một trạng thái, mỗi cung là một toán tử.

Nghiệm của bài toán nếu như ta tìm được đường đi từ trạng thái bắt đầu đến một trong các trạng thái đích.

Page 44: Chuong+1 2-3-4

Biểu diễn bằng cây

Trong đồ thị của KGTT có thể xuất hiện chu trình gây khó khăn cho việc tìm kiếm, hạn chế các toán tử trong F có thể đưa đồ thị trở thành cây, một cấu trúc dễ tìm kiếm hơn.

VD. KGTT của trò chơi caro là cây.

Page 45: Chuong+1 2-3-4

Chiến lược tìm kiếm?

Khi tìm kiếm lời giải, từ một trạng thái nào đó chưa phải là trạng thái đích, ta dựa theo toán tử sinh ra tập các trạng thái mới: mở rộng.

Để được lời giải, ta phải liên tục chọn trạng thái mới, mở rộng, kiểm tra cho đến khi tìm được trạng thái đích hoặc không mở rộng được KGTT.

Tập các trạng thái được mở rộng sẽ có nhiều phần tử, việc chọn trạng thái nào để tiếp tục mở rộng được gọi là chiến lược tìm kiếm.

Page 46: Chuong+1 2-3-4

Đánh giá một chiến lược?

+ Tính đầy đủ: chiến lược phải đảm bảo tìm được lời giải nếu có.

+ Độ phức tạp thời gian: mất thời gian bao lâu để tìm được lời giải.

+ Độ phức tạp không gian: tốn bao nhiêu đơn vị bộ nhớ để tìm được lời giải.

+ Tính tối ưu: tốt hơn so với một số chiến lược khác hay không.

Page 47: Chuong+1 2-3-4

Thông tin mỗi nút?

+ Nội dung trạng thái mà nút hiện hành đang biểu diễn.

+ Nút cha đã sinh ra nó.+ Toán tử đã được sử dụng để sinh ra nút hiện

hành.+ Độ sâu của nút.+ Giá trị đường đi từ nút gốc đến nút hiện hành.

Page 48: Chuong+1 2-3-4

Tìm kiếm mù?

Trạng thái được chọn để phát triển chỉ đơn thuần dựa theo cấu trúc của KGTT mà không có thông tin hướng dẫn nào khác.

Nói chung tìm kiếm mù sẽ không hiệu quả. Đây là cơ sở để chúng ta cải tiến và thu được

những chiến lược hiệu quả hơn.

Page 49: Chuong+1 2-3-4

1. Tìm kiếm theo chiều rộng (BFS)

Trạng thái được ưu tiên phát triển là trạng thái được sinh ra trước.

Dùng danh sách open chứa các trạng thái sinh ra đang chờ phát triển

Danh sách closed chứa các trạng thái đã được khảo sát.

Page 50: Chuong+1 2-3-4

Ví dụ

Page 51: Chuong+1 2-3-4

Thuật toán BFSprocedure bfs;begin

open:=[start]; closed:=[];while open<>[] do

beginloại tt ngoài cùng bên trái của open, gọi nó là uif (u là một đích) then thông báo kết quả, thoátelse begin

Đưa u vào closedPhát sinh các con v của uLoại các con đã có trong open+closedĐưa các con còn lại vào bên phải open (1)end

endThông báo thất bại

End

Page 52: Chuong+1 2-3-4

1. Open = [A]; closed = []2. Open = [B,C,D];

closed = [A]2. Open = [C,D,E,F];

closed = [B,A]3. Open = [D,E,F,G,H];

closed = [C,B,A]4. Open = [E,F,G,H,I,J];

closed = [D,C,B,A]5. Open = [F,G,H,I,J,K,L];

closed = [E,D,C,B,A]6. Open = [G,H,I,J,K,L,M]; (vì L

đã có trong open);closed = [F,E,D,C,B,A]…

Page 53: Chuong+1 2-3-4

Nhận xét

Các trạng thái con phát sinh nhờ các toán tử hợp lệ. Danh sách open bổ sung phần tử bên phải, lấy phần

tử bên trái. Thuật tóan khảo sát tất cả các nút ở độ sâu d sau đó

mới đến mức d+1 nên chắc chắn tìm được nghiệm. Nếu vô nghiệm và KGTT hữu hạn thì thuật toán sẽ

dừng và thông báo vô nghiệm.

Page 54: Chuong+1 2-3-4

Đánh giá

Giả sử mỗi trạng thái trung bình sinh ra b trạng thái con (kề), b - gọi là nhân tố nhánh.

Giả sử đường đi nghiệm có độ dài d. Tình trạng xấu nhất phải khảo sát là ?

Độ phức tạp thời gian là O(b^d), độ phức tạp không gian cũng là O(b^d).

Page 55: Chuong+1 2-3-4

55

Page 56: Chuong+1 2-3-4

2. Tìm kiếm theo chiều sâu (DFS)

Mở rộng nút có độ sâu hơn trước các nút khác đang chờ xử lý.

Khi nào không mở rộng được nữa thì mới quay lại nút ở độ sâu thấp hơn.

Do đó, các nút mới được sinh ra chờ xử lý phải được bỏ bên trái của hàng đợi open (tại câu lệnh 1).

56

Page 57: Chuong+1 2-3-4

Thuật toán DFSprocedure bfs;begin

open:=[start]; closed:=[];while open<>[] do

beginloại tt u ngoài cùng bên trái của openif (u là một đích) then thông báo kết quả, thoátelse begin

Đưa u vào closedPhát sinh các con v của uLoại các con đã có trong open+closedĐưa các con còn lại vào bên trái open (1)end

endThông báo thất bại

End

57

Page 58: Chuong+1 2-3-4

Tìm kiếm Sâu

1. Open = [A]; closed = []2. Open = [B,C,D]; closed = [A]3. Open = [E,F,C,D];closed = [B,A]4. Open = [K,L,F,C,D];

closed = [E,B,A]5. Open = [S,L,F,C,D];

closed = [K,E,B,A]6. Open = [L,F,C,D];

closed = [S,K,E,B,A]7. Open = [T,F,C,D];

closed = [L,S,K,E,B,A]8. Open = [F,C,D]; closed =

[T,L,S,K,E,B,A]9. …

58

Page 59: Chuong+1 2-3-4

Nhận xét

Khảo sát nút ở độ sâu d thì DFS lưu trữ b*d nút, khi đó BFS phải lưu trữ b^d nút.

Ở độ sâu d=12, DFS chỉ sử dụng 12KB trong khi BFS dùng đến 111TB.

Độ phức tạp thời gian của DFS vẫn là O(b^d) vì trong trường hợp xấu nhất các nút được khảo sát vẫn như BFS.

Cơ hội để tìm thấy đích nhanh hơn nếu nó nằm ở phần KGTT bên trái.

59

Page 60: Chuong+1 2-3-4

Hạn chế

Bỏ qua cơ hội tìm thấy ngay trạng thái đích khi trạng thái này nằm gần gốc.

Nếu KGTT vô hạn có thể không tìm được trạng thái đích.

Nghiệm nói chung không phải là đường đi ngắn nhất.

DFS là chiến lược không đầy đủ, không tối ưu. Không nên sử dụng khi KGTT có độ sâu lớn hoặc vô hạn.

60

Page 61: Chuong+1 2-3-4

Tìm kiếm sâu bằng cách đào sâu nhiều lần

Độ sâu giới hạn (depth bound): giải thuật TK sâu sẽ quay lui khi trạng thái đang xét đạt đến độ sâu giới hạn đã định.

TK Sâu bằng cách đào sâu nhiều lần: TK sâu với độ sâu giới hạn là 1, nếu thất bại, nó sẽ lặp lại GT TK sâu với độ sâu là 2,… GT tiếp tục cho đến khi tìm được mục tiêu, mỗi lần lặp lại tăng độ sâu lên 1.

GT này có độ phức tạp về thời gian cùng bậc với TK Rộng và TK Sâu.

61

Page 62: Chuong+1 2-3-4

Thuật toán

procedure DFS(d);begin

open:=[start]; closed:=[]; depth(start):=0;while open<>[] do

beginloại u ngoài cùng bên trái openif (u là một đích) then thbáo kết quả, thoátelse

62

Page 63: Chuong+1 2-3-4

beginĐưa u vào closedIf depth(u)<d then begin

Phát sinh các con v của u

Loại các con vừa phát sinh đã có trong open+ closedGán độ sâu cho các v bằng depth(u)+1

Đưa các con v còn lại vào bên trái openEnd;

End;End; {while}Thông báo thất bạiEnd.

63

Page 64: Chuong+1 2-3-4

Tìm kiếm sâu dần l =0

64

Page 65: Chuong+1 2-3-4

Tìm kiếm sâu dần l =1

65

Page 66: Chuong+1 2-3-4

Tìm kiếm sâu dần l =2

66

Page 67: Chuong+1 2-3-4

Tìm kiếm sâu dần l =3

67

Page 68: Chuong+1 2-3-4

Tìm kiếm sâu dần Số lượng nodes được sinh trong giới hạn độ sâu d với độ

phân nhánh b: NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd

Số lượng nodes được sinh trong tìm kiếm sâu dần với độ sâu d độ phân nhánh b:

NIDS = (d+1)b0 + d b1 + (d-1)b2 + … + 3bd-2 +2bd-1 + 1bd

Ví dụ b = 10, d = 5,. NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111. NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456.

Tỷ lệ (123,456 - 111,111)/111,111 = 11%

68

Page 69: Chuong+1 2-3-4

69

Qui bài toán về các bài toán con và các chiến lược tìm kiếm trên đồ thị Và/Hoặc

Qui bài toán về các bài toán con Thể hiện dưới dạng đồ thị VÀ/HOẶC Các phương pháp tìm kiếm trong đồ thị

VÀ/HOẶC

Page 70: Chuong+1 2-3-4

Qui bài toán về các bài toán con

Ý tưởng cơ bản là xuất phát từ bài toán đặt ra, tách bài toán này thành các bài toán con cho đến khi bài toán ban đầu trở thành các bài toán sơ cấp.

Bài toán sơ cấp được hiểu là bài toán mà lời giải của chúng có thể nhận được ngay.VD: Với bài toán n2 – 1 số, bài toán sơ cấp chính là bài toán chuyển ô trống 1 lần để nhận được trạng đích.

70

Page 71: Chuong+1 2-3-4

Thể hiện dưới dạng đồ thị VÀ/HOẶC

Đồ thị (định hướng) VÀ/HOẶC là cặp G = (N,A), sao cho n N, tất cả các đỉnh m B(n) cùng thuộc vào một trong hai kiểu: đỉnh VÀ, đỉnh HOẶC. Khi các đỉnh con m của n là đỉnh VÀ thì cung (n,m) (m B(n)) được nối bởi ngoặc lớn.

VD:

71

Page 72: Chuong+1 2-3-4

72

Quy bµi to n vÒ c c bµi to n con § å thÞ vµ/hoÆc

Bµi to n

To n tö quy bµi to n vÒ bµi to n con

Bµi to n ban ®Çu

C¸c bµi to n s¬ cÊp

C¸c bµi to n con phô thuéc

C¸c bµi to n con ®éc lËp

Gi¶i bµi to n ban ®Çu.

§ Ønh

Cung

§ Ønh ®Çu (®Ønh gèc)

§ Ønh cuèi, ®Ønh kÕt thóc

§ Ønh vµ

§ Ønh hoÆc

T×m ®å thÞ con lêi gi¶i.

Thể hiện dưới dạng đồ thị VÀ/HOẶC

Page 73: Chuong+1 2-3-4

Đỉnh giải được: Các đỉnh kết thúc (cuối) là đỉnh giải được. Nếu đỉnh n có các đỉnh con là đỉnh VÀ thì nó là đỉnh giải được khi và

chỉ khi tất cả các đỉnh con của nó giải được. Nếu đỉnh n có các đỉnh con là đỉnh HOẶC thì nó là đỉnh giải được khi

và chỉ khi tồn tại 1 đỉnh con của nó giải được. Đỉnh không giải được:

Nếu đỉnh n không là đỉnh kết thúc và không có các đỉnh con thì nó là đỉnh không giải được.

Nếu đỉnh n không là đỉnh kết thúc và có các đỉnh con là đỉnh VÀ thì nó là đỉnh không giải được khi và chỉ khi tồn tại một đỉnh con không giải được.

Nếu đỉnh n không là đỉnh kết thúc mà có các đỉnh con là đỉnh HOẶC thì nó là đỉnh không giải được khi và chỉ khi tất cả các đỉnh con là không giải được

Thể hiện dưới dạng đồ thị VÀ/HOẶC

73

Page 74: Chuong+1 2-3-4

74

Đồ thị lời giải: Là đồ thị con của đồ thị VÀ/HOẶC chỉ chứa các đỉnh giải được và đỉnh đầu.

Nhận xét: Nếu trên đồ thị VÀ/HOẶC không có đỉnh VÀ

nào thì đồ thị VÀ/HOẶC trở thành đồ thị thông thường và khi đó đồ thị con lời giải sẽ suy biến thành đường đi từ đỉnh đầu tới một đỉnh kết thúc nào đó.

Thể hiện dưới dạng đồ thị VÀ/HOẶC

Page 75: Chuong+1 2-3-4

75

Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC

Page 76: Chuong+1 2-3-4

76

Thủ tục gđ(nN)

{ if nhan(n)= “kxđ” then

if kt(n) then nhan(n)="gđ"

else if n MO ĐONG then nhan(n)=”kxđ”

else if kieu(n) then

{bien=True;

While B(n) and bien do

{m get(B(n));

gđ(m);

bien=(nhan(m)=”gđ”)}

if bien then nhan(n)=”gđ” else nhan(n)=”kxđ”}

else {bien=false;

repeat {m get(B(n));

gđ(m);

bien=(nhan(m)=”gđ”)}

until bien or B(n)=if bien then nhan(n)=”gđ” else nhan(n)=”kxđ”}}

Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC

Page 77: Chuong+1 2-3-4

Nguyễn Ngọc Hiếu - Các Bài giảng Trí tuệ Nhân tạo 77

Thủ tục tìm kiếm theo chiều rộng TKRM Thủ tục tìm kiếm theo chiều sâu TKSM

Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC

Page 78: Chuong+1 2-3-4

78

Vào: Cây VÀ/HOẶC G=(N, A) với đỉnh đầu n0, tập đỉnh kết thúc T={ti} NRa: Thông báo “không thành công” nếu n0 kgđ, “thành công” nếu n0 gđ và đưa ra cây lời giải.Phương pháp: /* sử dụng hai danh sách FIFO: MO, ĐONG */

{MO ={n0}; While MO do

{n get(MO); /*Lấy đỉnh n đầu danh sách MO*/ ĐONG{n} ĐONG; bool = false; if B(n) and bool = false then

{MO MO B(n); /* đưa B(n) vào cuối danh sách MO */ For each m B(n) do

{if kt(m) then {nhan=”gđ”; bool=true}} if bool then

{gđ(n0);

if nhan(n0)=”gđ” then exit(“thành công”)else loại khỏi MO các đỉnh có tổ tiên là đỉnh giải được}}

else {nhan(n)=”kgđ”; kgđ(n0);

if nhan(n0) = “kgđ” then exit (“không thành công”) else loại khỏi MO các đỉnh có tổ tiên là đỉnh không giải được;}}}

Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC: Thủ tục TKRM

Page 79: Chuong+1 2-3-4

79

VD:Áp dụng thuật toán TKRM đối với cây sauTập T = {t1,t2,t3,t4}

Thứ tự duyệt:abcdefgijkCây lời giải:các cung tô đậm

Nhận xét: Nếu cây lời giải tồn tại thì thủ tục TKRM sẽ dừng và cho kết quả là cây lời giải có độ cao nhỏ nhất

Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC Thủ tục TKRM

a

b c

d e fg

i j k

At1 t2

B C t3

t4

D E

F

Page 80: Chuong+1 2-3-4

80

Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC Thủ tục TKSM

Vào: Cây VÀ/HOẶC G=(N, A) với đỉnh đầu n0, tập đỉnh kết thúc T={ti} N. Giới hạn sâu D.

Ra: Thông báo “không thành công” nếu n0 kgđ, “thành công” nếu n0 gđ và đưa ra cây lời giải.Phương pháp: /* sử dụng hai danh sách FIFO: DONG, LIFO: MO */

{MO ={n0}; While MO do

{n get(MO); /*Lấy đỉnh n đầu danh sách MO*/ ĐONG{n} ĐONG; bool = false; if d(n)<= D and B(n) and bool = false then

{MO MO B(n); /* đưa B(n) vào đầu danh sách MO */ For each m B(n) do

{if kt(m) then {nhan=”gđ”; bool=true}} if bool then

{gđ(n0);

if nhan(n0)=”gđ” then exit(“thành công”)else loại khỏi MO các đỉnh có tổ tiên là đỉnh giải được}}

else {nhan(n)=”kgđ”; kgđ(n0);

if nhan(n0) = “kgđ” then exit (“không thành công”) else loại khỏi MO các đỉnh có tổ tiên là đỉnh không giải được;}}}

Page 81: Chuong+1 2-3-4

81

VD: Áp dụng thuật toán TKSM đối với cây sau

Tập T = {t1,t2,t3,t4} a

b c

d e

f g

Bt1 t2

t3

t4

A

C E

D

Thứ tự duyệt:

abdAfceg

Cây lời giải:

các cung tô đậm

Nếu một đỉnh kết thúc nào đó có độ sâu vượt quá giới hạn độ sâu D thì nó sẽ bị bỏ qua trong quá trình tìm kiếm. Do vậy, trên thực tế có thể tồn tại cây lời giải, song thuật toán lại thông báo không thành công. Để khắc phục tình trạng này, người ta có thể cải biên thủ tục tìm kiếm theo chiều sâu thành thủ tục tìm kiếm sâu dần, trong đó các nút được duyệt từng mức một.

Các phương pháp tìm kiếm trong đồ thị VÀ/HOẶC Thủ tục TKSM

Page 82: Chuong+1 2-3-4

Chương 3. CÁC CHIẾN LƯỢC TÌM

KINH NGHIỆM

82

Page 83: Chuong+1 2-3-4

Nguyên nhân

Các chiến lược tìm kiếm mù kém hiệu quả và không thể áp dụng được trong nhiều trường hợp.

Sử dụng thông tin của trạng thái kết hợp với nhận xét dựa theo kinh nghiệm để cải tiến là quan điểm chung của các chiến lược tìm kiếm kinh nghiệm.

83

Page 84: Chuong+1 2-3-4

1. Hàm đánh giá

84

Page 85: Chuong+1 2-3-4

Khái niệm về hàm đánh giá

Hàm đánh giá là một hàm ước lượng khả năng về đích của mỗi trạng thái.

Chỉ là ước lượng vì nói chung chúng ta không thể tính toán chính xác khả năng này, nếu tính được nghĩa là đã tìm được lời giải!

Tuy nhiên, nhờ kinh nghiệm trong nhiều bài toán cụ thể, có thể ước lượng được g.trị này.

85

Page 86: Chuong+1 2-3-4

Ví dụ

Nếu đếm các số sai vị trí của một trạng thái so với trạng thái đích thì B là 3 và C là 1.

Như vậy, số này càng nhỏ thì trạng thái đó càng có khả năng về đích

Có thể dùng số này làm giá trị cho hàm đánh giá.

86

Page 87: Chuong+1 2-3-4

Hình thức hóa

Trong đó X là KGTTcủa bài toán. Dễ thấy, nếu u là trạng thái đích thì h(u)=0. Mỗi

u ta có một giá trị ước lượng là h(u) h(B)=3; h(C)=1 Hàm đánh giá còn được gọi là hàm heuristic. Giá

trị hàm càng nhỏ thì khả năng về đích của trạng thái càng lớn.

87

Page 88: Chuong+1 2-3-4

Tính h(D), h(E)

88

Page 89: Chuong+1 2-3-4

Nhiều cách XD hàm h

h(D)=h(E)=2 Về mặt đường đi qua các ô ngang dọc để di chuyển

về đúng vị trí thì (D) phải di chuyển đọan đường xa hơn (E) nên có thể là (D) không tốt bằng (E).

Theo nhận xét này, ta có thể xây dựng hàm h bằng tổng khoảng cách phải di chuyển của các ô sai vị trí.

Ví dụ: h1(D)=3+3 = 6, h1(E)=2+2=4 Một ví dụ khác là lấy độ dài đường chim bay !

89

Page 90: Chuong+1 2-3-4

Các bước xây dựng chiến lược tìm kiếm

+ Biểu diễn bài toán bằng một KGTT thích hợp

+ Xây dựng hàm đánh giá

+ Thiết kế chiến lược chọn trạng thái

90

Page 91: Chuong+1 2-3-4

II. Các chiến lược tìm kiếm kinh nghiệm.

91

Page 92: Chuong+1 2-3-4

a) Tìm kiếm leo đồi – Hill Climbing Search (Pearl, 1984)

Chọn một trạng thái tốt hơn trạng thái đang khảo sát để phát triển. Nếu không có thuật tóan phải dừng.

Nếu chỉ chọn một trạng thái tốt hơn: leo đồi đơn giản, trạng thái tốt nhất: leo đồi dốc đứng.

Sử dụng hàm h để biết trạng thái nào tốt hơn. Khác với tìm kiếm sâu, leo đồi không lưu tất cả các

con mà chỉ lưu đúng một t.thái được chọn nếu có.

92

Page 93: Chuong+1 2-3-4

Thuật toán HCSprocedure hcs(start);begin

open:=[start]; closed:=[];while open<>[] do

beginloại tt ngoài cùng bên trái của open, gọi nó là uif (u là một đích) then thông báo kết quả, thoátelse begin Đưa u vào closed Phát sinh các con v của u Loại các con đã có trong open+closed Sap xep danh sach cac dinh con cua u theo thu tu tang dan, goi la

L1. Day L1 vao ben trai danh sach open. end

endThông báo thất bại

End

93

Page 94: Chuong+1 2-3-4

94

B1: open =[A], close=[]B2: close=[A], open=[C]B3: close=[A,C], open=[G];B4: Thông báo thành công

Page 95: Chuong+1 2-3-4

Yêu cầu: áp dụng thuật toán leo đồi mô tả không gian trạng thái qua các bước. Vẽ đồ thị đường đi

Page 96: Chuong+1 2-3-4

Nhanh, có thể thất bại

Hiệu quả khi có một hàm đánh giá tốt. Bế tắc nếu Gặp điểm cực đại địa phương. Khu vực bình nguyên.

Giải pháp xáo trộn ngẫu nhiên. Không có giải pháp tổng quát. Cải tiến?

96

Page 97: Chuong+1 2-3-4

Tìm kiếm ưu tiên tốt nhất – Best First Search (Best-FS)

Chọn trạng thái tốt nhất trong open để phát triển, kể cả trạng thái này không tốt bằng trạng thái đã sinh ra nó.

Lưu trữ tất cả các trạng thái anh em nên khi đi vào ngõ cụt, chiến lược này có thể lui ra được mà không bị bế tắc.

Best-FS kết hợp tìm kiếm sâu và rộng. Best-FS “cẩn thận” hơn ghi nhớ lại các một số trạng

thái không tốt hơn trước đó để còn có thể quay lại.

97

Page 98: Chuong+1 2-3-4

Ví dụ

98

Page 99: Chuong+1 2-3-4

99

Page 100: Chuong+1 2-3-4

Thuật toán Best_FSprocedure Best_FS;begin

open:={u0}; closed:={ };while open<>{ } do

beginloại trạng thái ngoài cùng bên trái của open, gọi nó là uif (u là một đích) then thông báo thắng lợi, thoátelse begin

Đưa u vào closedPhát sinh các con v của uLoại các con v đã có mặt trong open + closed

Đưa các con còn lại vào openSắp xếp open sao cho phần tử tốt nhất nằm bên tráiend

endThông báo thất bại

end

100