Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
643 KB
Nội dung
Tìm kiếm heuristic Đặt vấn đề Các kỹ thuật tìm kiếm mù rất kém hiệu quả và trong nhiều trường hợp không thể áp dụng được. Vì vậy, trong bài viết này chúng ta sẽ nghiên cứu các phương pháp tìm kiếm kinh nghiệm (tìm kiếm heuristic), đó là phương pháp sử dụng hàm đánh giá để hướng dẫn sự tìm kiếm. 1. Tổng quan về Heuristic 1.1. Heuristic là gì? George Polya định nghĩa heuristic là “sự nghiên cứu về các phương pháp và các qui tắc trong việc khám phá và phát minh” (Polya 1945). Nghĩa này có thể xuất phát từ gốc Hy Lạp của động từ eurisco nghĩa là “tôi phát hiện”. Trong tìm kiếm không gian trạng thái, heuristic là các luật dùng để chọn những nhánh nào có nhiều khả năng nhất dẫn đến một giải pháp chấp nhận được. - Heuristic chỉ là một phỏng đoán chứa các thông tin về bước tiếp theo sẽ được chọn dùng trong việc giải quyết một vấn đề. - Heuristic là những tri thức được rút ra từ những kinh nghiệm, “trực giác” của con người - Heuristic có thể là những tri thức đúng hoặc sai Vì các heuristic sử dụng những thông tin hạn chế nên chúng ít khi có khả năng đoán trước chính xác cách hành xử của không gian trạng thái ở những giai đoạn xa hơn 1.2. Heuristic dùng để làm gì? Các chương trình giải quyết những vấn đề trí tuệ nhân tạo sử dụng heuristic cơ bản theo hai dạng: 1. Vấn đề có thể không có giải pháp chính xác vì những điều không rõ ràng trong diễn đạt vấn đề hoặc trong các dữ liệu có sẵn. 2. Vấn đề có thể có giải pháp chính xác, nhưng chi phí tính toán để tìm ra nó không cho phép. 1.3. Ưu điểm của thuật giải Heuristic Thuật giải Heuristic thể hiện cách giải bài toán với các đặc tính sau: - Thường tìm được lời giải tốt ( nhưng không chắc là lời giải tốt nhất) - Giải bài toán theo thuật giải Heuristic thường dễ dàng và nhanh chóng đưa ra kết quả hơn so với giải thuật tối ưu, vì vậy chi phí thấp hơn. - Thuật giải Heuristic thường thể hiện khá tự nhiên, gần gũi với cách suy nghĩ và hành động con người Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 1 Tìm kiếm heuristic 1.4. Phương pháp xây dựng thuật giải Heuristic Thuật giải heuristic gồm hai phần: Hàm đánh giá heuristic và thuật toán để sử dụng nó trong tìm kiếm không gian trạng thái. Có nhiều các để xây dựng một thuật giải Heuristic, trong đó người ta thường dựa và một số nguyên lý cơ bản như sau: - Nguyên lý vét cạn thông minh: Trong một bài toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm cách giới hạn lại không gian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm ra mục tiêu - Nguyên lý tham lam (greedy): lấy tiêu chuẩn tối ưu ( trên phạm vi toàn cục) của bài toán để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục bộ của từng bước ( hay từng giai đoạn) trong quá trình tìm kiếm lời giải - Nguyên lý thứ tự: thực hiện hành động dựa trên một cấu trúc thứ tự hợp lý của không gian khảo sát nhằm nhanh chóng đạt được một lời giải tốt 1.5. Tìm kiếm kinh nghiệm (Heuristic Search) Các kỹ thuật tìm kiếm sử dụng hàm đánh giá để hướng dẫn sự tìm kiếm được gọi chung là các kỹ thuật tìm kiếm kinh nghiệm (heuristic search). Các giai đoạn cơ bản để giải quyết vấn đề bằng tìm kiếm kinh nghiệm như sau: 1. Tìm biểu diễn thích hợp mô tả các trạng thái và các toán tử của vấn đề 2. Xây dựng hàm đánh giá 3. Thiết kế chiến lược chọn trạng thái để phát triển ở mỗi bước 1.6. Ví dụ 1.6.1. Trò chơi Tic-tac-toe Xét trò chơi Tic-tac-toe, mỗi nước đi trong chín nước đầu tiên đều có tám khả năng đặt quân cờ kế tiếp và đến lượt mình mỗi nước đi này lại có bảy khả năng đặt quân cờ cho nước đi tiếp tục Một phân tích đơn giản cho biết số lượng các trạng thái cần được xem xét cho quá trình này là 9 x 8 x 7 x x 1 = 9!. Áp dụng một nhận xét trực quan nhỏ dựa theo tính chất đối xứng của cấu hình bàn cờ : thực tế chỉ có ba nước đi cho quân cờ đầu tiên: ô cạnh, ô góc hoặc ô giữa • Giảm số lượng đường đi có thể xảy ra trong không gian đó xuống đến tổng số 12 x 7! . Nó đã nhỏ hơn không gian ban đầu nhưng vẫn phát triển theo hàm giai thừa. Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 2 Tìm kiếm heuristic Hình 1 – Không gian trạng thái bài toán Tic-tac-toe thu giảm bởi tính đối xứng Tuy nhiên, một heuristic đơn giản có thể loại bỏ việc tìm kiếm hầu như toàn bộ: heuristic “nước đi chắc thắng nhất”, nghĩa là chọn vị trí đặt quân cờ mà có nhiều đường chắc thắng nhất giao nhau. Trong trường hợp các trạng thái đều có số lượng bằng nhau, chọn trạng thái đầu tiên. Hình 2 - Heuristic “nước đi chắc thắng nhất” Sau nước đi đầu tiên, đối thủ có thể chọn một trong hai nước đi tương đương nhau. Dù chọn nước đi nào, heuristic đó cũng được áp dụng cho các bước tiếp theo. Khi quá trình tìm kiếm tiếp tục, từng bước đi sẽ đánh giá các con của một nút duy nhất mà không yêu cầu tìm kiếm hết không gian. Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 3 Tìm kiếm heuristic Hình 3 – Không gian trạng thái đã được thu giảm bởi heuristic 1.6.2. Bài toán hành trình ngắn nhất – ứng dụng nguyên lý Greedy Bài toán: Hãy tìm một hành trình cho một người giao hàng đi qua n điểm khác nhau, mỗi điểm đi qua một lần và trở về điểm xuất phát sao cho tổng chiều dài đoạn đường cần đi là ngắn nhất. Giả sử rằng có con đường nối trực tiếp từ giữa hai điểm bất kỳ. Tư tưởng của thuật giải như sau: Từ điểm khởi đầu, ta liệt kê tất cả quãng đường từ điểm xuất phát cho đến n đại lý rồi chọn đi theo con đường ngắn nhất. Khi đã đi đến một đại lý, chọn đi đến đại lý kế tiếp cũng theo nguyên tắc trên. Nghĩa là liệt kê tất cả con đường từ đại lý ta đang đứng đến những đại lý chưa đi đến. Chọn con đường ngắn nhất. Lặp lại quá trình này cho đến lúc không còn đại lý nào để đi. Theo nguyên lý Greedy, ta lấy tiêu chuẩn hành trình ngắn nhất của bài toán làm tiêu chuẩn cho chọn lựa cục bộ. Ta hy vọng rằng, khi đi trên n đoạn đường ngắn nhất thì cuối cùng ta sẽ có một hành trình ngắn nhất. Điều này không phải lúc nào cũng đúng. Với điều kiện trong hình tiếp theo thì thuật giải cho chúng ta Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 4 Tìm kiếm heuristic một hành trình có chiều dài là 14 trong khi hành trình tối ưu là 13. Kết quả của thuật giải Heuristic trong trường hợp này chỉ lệch 1 đơn vị so với kết quả tối ưu. Trong khi đó, độ phức tạp của thuật giải Heuristic này chỉ là 0(n 2 ). Hình 4 - Giải bài toán sử dụng nguyên lý Greedy Tất nhiên, thuật giải theo kiểu Heuristic đôi lúc lại đưa ra kết quả không tốt, thậm chí rất tệ như trường hợp ở hình sau. Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 5 Tìm kiếm heuristic 1.6.3. Bài toán phân việc – ứng dụng của nguyên lý thứ tự Bài toán: Một công ty nhận được hợp đồng gia công m chi tiết máy J 1 , J 2 , … Jm. Công ty có n máy gia công lần lượt là P 1 , P 2 , … Pn. Mọi chi tiết đều có thể được gia công trên bất kỳ máy nào. Một khi đã gia công một chi tiết trên một máy, công việ sẽ tiếp tục cho đến lúc hoàn thành, không thể bị cắt ngang. Để gia công một việc J 1 trên một máy bất kỳ ta cần dùng một thời gian tương ứng là t 1 . Nhiệm vụ của công ty là phải làm sao gia công xong toàn bộ n chi tiết trong thời gian sớm nhất. Chúng ta xét bài toán trong trường hợp có 3 máy P 1 , P 2 , P 3 và 6 công việc với thời gian là t 1 =2, t 2 =5, t 3 =8, t 4 =1, t 5 =5, t 6 =1. ta có một phương án phân công (L) như hình sau: Thuật giải Heuristic rất đơn giản (độ phức tạp O(n)) : Sắp xếp các công việc theo thứ tự giảm dần về thời gian gia công. Lần lượt sắp xếp các việc theo thứ tự đó vào máy còn dư nhiều thời gian nhất. Với tư tưởng như vậy, ta sẽ có một phương án L* như sau: Rõ ràng phương án L* vừa thực hiện cũng chính là phương án tối ưu của trường hợp này vì thời gian hoàn thành là 8, đúng bằng thời gian của công việc J 3 . Ta hy vọng rằng một giải Heuristic đơn giản như vậy sẽ là một thuật giải tối ưu. Nhưng Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 6 Tìm kiếm heuristic tiếc thay, ta dễ dàng đưa ra được một trường hợp mà thuật giải Heuristic không đưa ra được kết quả tối ưu. 2. Các kỹ thuật tìm kiếm Heuristic 2.1. Hàm đánh giá 2.1.1. Định nghĩa hàm đánh giá - Với mỗi trạng thái u chúng ta sẽ xác định một giá trị h(u), số này đánh giá “sự gần đích “ của trạng thái u. Hàm h(u) được gọi là hàm đánh giá. 2.1.2. Ý nghĩa của hàm đánh giá trong tìm kiếm kinh nghiệm - Trong tìm kiếm kinh nghiệm, hàm đánh giá đóng vai trò cực kì quan trọng. Chúng ta có thể xây dựng được hàm đánh giá cho ta sự đánh giá đúng các trạng thái thì sự tìm kiếm mới hiệu quả. Nếu hàm đánh giá không chính xác, nó có thể dẫn ta đi chệch hướng, do đó việc tìm kiếm sẽ kém hiệu quả. 2.1.3. Ví dụ về hàm đánh giá Ví dụ bài toán 8 số Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 7 Tìm kiếm heuristic Chúng ta có thể đưa ra hai cách xây dựng hàm đánh giá: - Hàm h 1 : Với mỗi trạng thái u thì h 1 (u) là số quân ở trạng thái đầu không nằm đúng vị trí so với trạng thái đích. Các quân không nằm đúng so với vị trí của trạng thái đích là: 3, 8, 6, 1. Do đó ta có h 1 (u) = 4. - Hàm h 2 : h 2 (u) là tổng khoảng cách giữa vị trí các quân trong trạng thái u và vị trí của nó trong trạng thái đích. Ở đây khoảng cách là số ít nhất các dịch chuyển theo hàng hoặc theo cột để đưa một quân tới vị trí của nó trong trạng thái đích. Trong bài toán 8 ô ở trên thì: Quân 3 cần ít nhất 2 dịch chuyển Quân 8 cần ít nhất 3 dịch chuyển Quân 6 cần ít nhất 1 dịch chuyển Quân 1 cần ít nhất 3 dịch chuyển Do đó ta có: h 2 (u) = 2 + 3 + 1 + 3 = 9 2.2. Tìm kiếm Beam (Beam Search) 2.2.1. Ý tưởng thuật toán Đầu tiên chọn trạng thái ban đầu, sau đó phát triển k đỉnh tốt nhất (k được xác định bởi hàm đánh giá) ở một mức rồi phát triển k đỉnh tốt nhất ở mức tiếp theo. Như vậy tìm kiếm bean cũng giống như tìm kiếm theo bề rộng tuy nhiên trong tìm kiếm bean, ở bất kì mức nào cũng chỉ có k đỉnh được phát triển còn trong tìm kiếm theo bề rộng thì ở mức d sẽ có b d đỉnh cần phát triển (b lá số nhánh). Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 8 Tìm kiếm heuristic 2.2.2. Ví dụ về tìm kiếm bean Trong đó: A là trạng thái ban đầu B là trạng thái kết thúc. Giá trị của hàm đánh giá là các số ghi ở bên cạnh mỗi đỉnh. - Chọn k = 2 - Từ trạng thái ban đầu A chọn 2 đỉnh (D, E) có chi phí nhỏ nhất kề với A để phát triển tiếp - Tiếp tục ở mức tiếp theo ta chọn được 2 đỉnh (I, G) có chi phí nhỏ nhất để phát triển tiếp. Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 9 Tìm kiếm heuristic - Đỉnh được chọn để phát triển ở mức tiếp theo là trạng thái kết thúc (B) nên việc tìm kiếm dừng lại. Ta so sánh tổng chi phí và tìm ra được đường đi ngắn nhất từ trạng thái đầu đến trạng thái kết thúc. Ở đây : A -> D -> I -> B có tổng chi phí là 14. : A -> E -> G ->B có tổng chi phí là 12. Vậy đường đi ngắn nhất từ A tới B là: A -> E -> G ->B. 2.3. Tìm kiếm leo đồi (Hill climbing Search) 2.3.1. Leo đồi đơn giản 2.3.1.1. Tư tưởng 1) Nếu trạng thái bắt đầu cũng là trạng thái đích thì thoát và báo là đã tìm được lời giải. Ngược lại, đặt trạng thái hiện hành (Ti) là trạng thái khởi đầu (T 0 ) 2) Lặp lại cho đến khi đạt đến trạng thái kết thúc hoặc cho đến khi không tồn tại một trạng thái tiếp theo hợp lệ (Tk) của trạng thái hiện hành : a. Đặt Tk là một trạng thái tiếp theo hợp lệ của trạng thái hiện hành Ti . b. Đánh giá trạng thái Tk mới : b.1. Nếu là trạng thái kết thúc thì trả về trị này và thoát. b.2. Nếu không phải là trạng thái kết thúc nhưng tốt hơn trạng thái hiện hành thì cập nhật nó thành trạng thái hiện hành. b.3. Nếu nó không tốt hơn trạng thái hiện hành thì tiếp tục vòng lặp. 2.3.1.2. Mã giả Ti := T 0 ; Stop :=FALSE; WHILE Stop=FALSE DO BEGIN Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52Page 10 [...]... 14 Tìm kiếm heuristic + Chất lượng của hàm Heuristic + Đặc điểm của không gian trạng thái + Trạng thái khởi đầu Sau đây, chúng ta sẽ tìm hiểu một tiếp cận theo mới, kết hợp được sức mạnh của cả tìm kiếm chiều sâu và tìm kiếm chiều rộng Một thuật giải rất linh động và có thể nói là một thuật giải kinh điển của Heuristic 2.4 Tìm kiếm tốt nhất (Best First Search) 2.4.1 Tư tưởng Tại mỗi bước của tìm kiếm. .. hoặc mọi nước đi có thể có trên bàn cờ vua, tìm kiếm heuristic thường là câu trả lời thực tế duy nhất Gần đây việc tìm kiếm trong các hệ chuyên gia cũng xác nhận mức độ quan trọng của các heuristic như là một phần không thể thiếu trong quá trình giải quyết vấn đề Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52 Page 19 Tìm kiếm heuristic Tài liệu tham khảo 1 Trí tuệ nhân tạo, Võ... Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52 Page 18 Tìm kiếm heuristic Kết luận Các heuristic và việc thiết kế thuật toán để thực hiện tìm kiếm heuristic từ lâu đã là sự quan tâm chủ yếu của các công trình nghiên cứu trí tuệ nhân tạo Chơi game và chứng minh định lý là hai ứng dụng lâu đời nhất, cả hai đều cần đến các heuristic để thu giảm bớt không gian giải pháp có thể Không thể nào... h’ đều không âm và càng nhỏ nghĩa là càng tốt Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52 Page 17 Tìm kiếm heuristic 2.5 Thuật giải AT Thuật giải AT là một phương pháp tìm kiếm theo kiểu BFS với độ tốt của nút là giá trị hàm g – tổng chiều dài con đường đã đi từ trạng thái bắt đầu đến trạng thái hiện tại Thuật giải AT 1 Đặt OPEN chứa trạng thái khởi đầu 2 Cho đến khi tìm. .. thái mà hàm định giá là phẳng tuyệt đối Phép tìm kiếm sẽ thực hiện một bước đi ngẫu nhiên Các đỉnh chóp: một đỉnh chóp có thể có các bên sườn võng và dốc, vì vậy phép tìm kiếm đi đến đỉnh của chóp một cách dễ dàng, nhưng đỉnh có thể dốc rất ít về phía một đỉnh khác Trừ phi ở đó có các toán tử mà di chuyển trực tiếp dọc theo đỉnh của hình chóp, phép tìm kiếm có thể dao động từ bên này qua bên kia,... Nụ - THC52 Page 11 Tìm kiếm heuristic WHILE Stop=FALSE DO BEGIN IF Ti TG THEN BEGIN ; STOP :=TRUE; END; ELSE BEGIN Best:=h’(Ti); Tmax := Ti; WHILE DO BEGIN Tk := ; IF THEN BEGIN Best :=h’(Tk); Tmax := Tk; END; END; IF (Best>Ti) THEN Ti := Tmax; ELSE BEGIN ;... Cho đến khi tìm được trạng thái đích hoặc không còn nút nào trong OPEN, thực hiện : 2.a Chọn trạng thái tốt nhất (Tmax) trong OPEN (và xóa Tmax khỏi OPEN) 2.b Nếu Tmax là trạng thái kết thúc thì thoát 2.c Ngược lại, tạo ra các trạng thái kế tiếp Tk có thể có từ trạng thái Tmax Đối với mỗi trạng thái kế tiếp Tk thực hiện : Tính f(Tk); Thêm Tk vào OPEN 2.4.4 So sánh với tìm kiếm leo đồi Tìm kiếm này rất... Đối với mỗi trạng thái kế tiếp Tk thực hiện : Tính f(Tk); Thêm Tk vào OPEN 2.4.4 So sánh với tìm kiếm leo đồi Tìm kiếm này rất giống với tìm kiếm leo đồi dốc đứng, với 2 ngoại lệ Nguyễn Thị Diệp – Phạm Thị Định – Nguyễn Thị Gấm – Nguyễn Thị Nụ - THC52 Page 16 Tìm kiếm heuristic • Trong leo núi, một trạng thái được chọn và tất cả các trạng thái khác bị loại bỏ, không bao giờ chúng được xem xét lại Cách.. .Tìm kiếm heuristic IF Ti ≡ TG THEN BEGIN ; Stop:=TRUE; END; ELSE BEGIN Better:=FALSE; WHILE (Better=FALSE) AND (STOP=FALSE) DO BEGIN IF THEN BEGIN ; Stop:=TRUE; END; ELSE BEGIN Tk := ;... dao động từ bên này qua bên kia, khiến cho sự tiến chuyển rất ít Cả hai phương pháp leo núi đơn giản và leo núi dốc đứng đều có khả năng thất bại trong việc tìm lời giải của bài toán mặc dù lời giải đó thực sự hiện hữu • Vai trò quyết định của hàm Heuristic trong quá trình tìm kiếm lời giải Xét bài toán về các khối được trình bày ở hình sau Ta có hai thao tác biến đổi là: + Lấy một khối ở đỉnh một . thuật tìm kiếm sử dụng hàm đánh giá để hướng dẫn sự tìm kiếm được gọi chung là các kỹ thuật tìm kiếm kinh nghiệm (heuristic search). Các giai đoạn cơ bản để giải quyết vấn đề bằng tìm kiếm kinh. toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm cách giới hạn lại không gian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm. pháp tìm kiếm kinh nghiệm (tìm kiếm heuristic) , đó là phương pháp sử dụng hàm đánh giá để hướng dẫn sự tìm kiếm. 1. Tổng quan về Heuristic 1.1. Heuristic là gì? George Polya định nghĩa heuristic