1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài TÌM KIẾM HEURISTIC

20 658 2

Đ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

Định dạng
Số trang 20
Dung lượng 643 KB

Nội dung

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.. Ưu điểm của thuật giải Heuristic Th

Trang 1

Đặ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

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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(n2)

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

Trang 6

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 J1, J2, … Jm Công ty có n máy gia công lần lượt là P1, P2, … 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 J1 trên một máy bất kỳ ta cần dùng một thời gian tương ứng là t1 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 P1, P2, P3 và 6 công việc với thời gian là t1=2, t2=5, t3=8, t4=1, t5=5, t6=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 J3 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

Trang 7

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ố

Trang 8

Chúng ta có thể đưa ra hai cách xây dựng hàm đánh giá:

- Hàm h1: Với mỗi trạng thái u thì h1(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ó h1(u) = 4

- Hàm h2: h2(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ó: h2(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ó bd đỉnh cần phát triển (b lá số nhánh)

Trang 9

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

Trang 10

- Đỉ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 (T0)

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 := T0; Stop :=FALSE;

WHILE Stop=FALSE DO BEGIN

Trang 11

IF Ti ≡ TG THEN BEGIN

<tìm được kết quả >; Stop:=TRUE;

END;

ELSE BEGIN

Better:=FALSE;

WHILE (Better=FALSE) AND (STOP=FALSE) DO BEGIN

IF <không tồn tại trạng thái kế tiếp hợp lệ của Ti> THEN

BEGIN

<không tìm được kết quả >; Stop:=TRUE; END;

ELSE BEGIN

Tk := <một trạng thái kế tiếp hợp lệ của Ti>;

IF <h(Tk) tốt hơn h(Ti)> THEN BEGIN

Ti :=Tk; Better:=TRUE;

END;

END;

END; {WHILE}

END; {ELSE}

END;{WHILE}

2.3.2 Leo đồi dốc đứng

Về cơ bản, leo đồi dốc đứng cũng giống như leo đồi, chỉ khác ở điểm là leo

đồi dốc đứng sẽ duyệt tất cả các hướng đi có thể và chọn đi theo trạng thái tốt nhất

trong số các trạng thái kế tiếp có thể có (trong khi đó leo đồi chỉ chọn đi theo trạng

thái kế tiếp đầu tiên tốt hơn trạng thái hiện hành mà nó tìm thấy)

2.3.2.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 (T0)

2) Lặp lại cho đến khi đạt đến trạng thái kết thúc hoặc cho đến khi (Ti) không tồn

tại một trạng thái kế tiếp (Tk) nào tốt hơn trạng thái hiện tại (Ti)

a) Đặt S bằng tập tất cả trạng thái kế tiếp có thể có của Ti và tốt hơn Ti

b) Xác định Tkmax là trạng thái tốt nhất trong tập S

Đặt Ti = Tkmax

2.3.2.2 Mã giả

Ti := T0;

Trang 12

WHILE Stop=FALSE DO BEGIN

IF Ti TG THEN BEGIN

<tìm được kết quả >;

STOP :=TRUE;

END;

ELSE BEGIN

Best:=h’(Ti);

Tmax := Ti;

WHILE <tồn tại trạng thái kế tiếp hợp lệ của Ti> DO BEGIN

Tk := <một trạng thái kế tiếp hợp lệ của Ti>;

IF <h’(Tk) tốt hơn Best> THEN BEGIN Best :=h’(Tk);

Tmax := Tk;

END;

END;

IF (Best>Ti) THEN

Ti := Tmax;

ELSE BEGIN

<không tìm được kết quả >;

STOP:=TRUE;

END;

END; {ELSE IF}

END;{WHILE STOP}

2.3.3 Đánh giá

• So sánh leo đồi dốc đứng và leo đồi đơn giản

 Để chọn ra được hướng đi tốt nhất, leo đồi dốc đứng phải duyệt qua tất

cả các hướng đi có thể có tại trạng thái hiện hành Trong khi đó, leo đồi

đơn giản chỉ chọn đi theo trạng thái đầu tiên tốt hơn (so với trạng thái

hiện hành) mà nó tìm ra được

 Thời gian cần thiết để leo đồi dốc đứng chọn được một hướng đi sẽ lớn hơn so với leo đồi đơn giản

 Tuy vậy, do lúc nào cũng chọn hướng đi tốt nhất nên leo đồi dốc đứng thường sẽ tìm đến lời giải sau một số bước ít hơn so với leo đồi đơn giản

• Qui tắc đơn giản này có ba nhược điểm nổi tiếng như sau:

Trang 13

 Các giá trị cực đại địa phương: một giá trị cực đại địa phương, trái

ngược với một giá trị cực đại toàn cục, là một đỉnh mà thấp hơn đỉnh cao nhất trong không gian trạng thái Khi ở trên một đại lượng cực đại địa phương , giảithuật sẽ dừng lại thậm chí mặc dù giải pháp vẫn còn lâu mới tối ưu

 Các cao nguyên: một cao nguyên là một khu vực của không gian trạng

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, 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 cột bất kỳ và đặt nó lên một chỗ trống tạo thành một cột mới Lưu ý là chỉ có thể tạo ra tối đa 2 cột mới

+ Lấy một khối ở đỉnh một cột và đặt nó lên đỉnh một cột khác

Hãy xác định số thao tác ít nhất để biến đổi cột đã cho thành cột kết quả

Hình 5 - Trạng thái khởi đầu và trạng thái kết thúc

Giả sử ban đầu ta dùng một hàm Heuristic đơn giản như sau :

H 1 : Cộng 1 điểm cho mỗi khối ở vị trí đúng so với trạng thái đích Trừ 1

điểm cho mỗi khối đặt ở vị trí sai so với trạng thái đích

Trang 14

- Trạng thái kết thúc sẽ có giá trị là 8 vì cả 8 khối đều được đặt ở vị trí đúng

- Trạng thái khởi đầu có giá trị là 4 (vì nó có 1 điểm cộng cho các khối C, D,

E, F, G, H và 1 điểm trừ cho các khối A và B)

 Chỉ có thể có một di chuyển từ trạng thái khởi đầu, đó là dịch chuyển khối A xuống tạo thành một cột mới (T1)

- Từ trạng thái mới T1, có ba di chuyển có thể thực hiện dẫn đến ba trạng thái

Ta, Tb, Tc được minh họa trong hình dưới Những trạng thái này có số điểm

là : h’(Ta)= 4; h’(Tb) = 4 và h’(Tc) = 4

T1 TA TB TC Hình 6 - Các trạng thái có thể đạt được từ T1

 Thủ tục leo núi sẽ tạm dừng bởi vì tất cả các trạng thái này có số điểm thấp hơn trạng thái hiện hành Quá trình tìm kiếm chỉ dừng lại ở một trạng thái cực đại địa phương mà không phải là cực đại toàn cục

H 2 : Đối với mỗi khối phụ trợ đúng (khối phụ trợ là khối nằm bên dưới khối

hiện tại), cộng 1 điểm, ngược lại trừ 1 điểm

- Trạng thái kết thúc có số điểm là 28

- Trạng thái khởi đầu có số điểm là –28

- Việc di chuyển A xuống tạo thành một cột mới làm sinh ra một trạng thái với số điểm là h’(T1) = –21 vì A không còn 7 khối sai phía dưới nó nữa Ba trạng thái có thể phát sinh tiếp theo bây giờ có các điểm số là : h’(Ta)=–28; h’(Tb)=–16 và h’(Tc) = –15

 Lúc này thủ tục leo núi dốc đứng sẽ chọn di chuyến đến trạng thái Tc, ở đó

có một khối đúng

• Hiệu quả của cả hai thuật giải leo đồi đơn giản và leo đồi dốc đứng phụ thuộc vào :

Ngày đăng: 14/04/2015, 09:01

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Trí tuệ nhân tạo, Võ Huỳnh Trâm- Trần Ngân Bình 2. Bài giảng trí tuệ nhân tạo, 2007, TS Nguyễn Đình Thuận 3. Trí tuệ nhân tạo, Đinh Mạnh Tường Khác
4. Bài giảng trí tuệ nhân tạo, Lê Thành Sách, Đại học Bách khoa TP Hồ Chí Minh Khác
5. Bài giảng trí tuệ nhân tạo, 2006, Đặng Xuân Hà Khác
6. Nhập môn trí tuệ nhân tạo, 2007, PGS-TS Nguyễn Quang Hoan, Học viện Bưu chính viễn thông Khác
7. Thuật toán và giải thuật, www.ebook.edu.vn Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w