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á[r]
(1)(2)CHƯƠNG : THUẬT TOÁN – THUẬT GIẢI
I KHÁI NIỆM THUẬT TOÁN – THUẬT GIẢI II THUẬT GIẢI HEURISTIC
III CÁC PHƯƠNG PHÁP TÌM KIẾM HEURISTIC III.1 Cấu trúc chung tốn tìm kiếm III.2 Tìm kiếm chiều sâu tìm kiếm chiều rộng III.3 Tìm kiếm leo đồi
III.4 Tìm kiếm ưu tiên tối ưu (best-first search) III.5 Thuật giải AT
III.6 Thuật giải AKT III.7 Thuật giải A*
III.8 Ví dụ minh họa hoạt động thuật giải A* III.9 Bàn luận A*
III.10 Ứng dụng A* để giải toán Ta-canh III.11 Các chiến lược tìm kiếm lai
I TỔNG QUAN THUẬT TỐN – THUẬT GIẢI
Trong q trình nghiên cứu giải vấn đề – toán, người ta đưa nhận xét sau:
Có nhiều tốn chưa tìm cách giải theo kiểu thuật toán khơng biết có tồn thuật tốn hay khơng
Có nhiều tốn có thuật tốn để giải khơng chấp nhận thời gian giải theo thuật tốn q lớn điều kiện cho thuật tốn khó đáp ứng
Có toán giải theo cách giải vi phạm thuật toán chấp nhận
(3)các giải thuật đệ quy ngẫu nhiên Tính thuật tốn khơng cịn bắt buộc số cách giải toán, cách giải gần Trong thực tiễn có nhiều trường hợp người ta chấp nhận cách giải thường cho kết tốt (nhưng lúc tốt) phức tạp hiệu Chẳng hạn giải tốn thuật tốn tối ưu địi hỏi máy tính thực hiên nhiều năm sẵn lịng chấp nhận giải pháp gần tối ưu mà cần máy tính chạy vài ngày vài
Các cách giải chấp nhận khơng hồn tồn đáp ứng đầy đủ tiêu chuẩn thuật toán thường gọi thuật giải Khái niệm mở rộng thuật toán mở cửa cho việc tìm kiếm phương pháp để giải toán đặt
Một thuật giải thường đề cập đến sử dụng khoa học trí tuệ nhân tạo cách giải theo kiểu Heuristic
II THUẬT GIẢI HEURISTIC
Thuật giải Heuristic mở rộng khái niệm thuật tốn Nó thể cách giải tốn với đặc tính sau:
Thường tìm lời giải tốt (nhưng khơng lời giải tốt nhất) Giải toán theo thuật giải Heuristic thường dễ dàng nhanh chóng đưa kết so với giải thuật tối ưu, chi phí thấp
Thuật giải Heuristic thường thể tự nhiên, gần gũi với cách suy nghĩ hành động người
Có nhiều phương pháp để xây dựng thuật giải Heuristic, người ta thường dựa vào số nguyên lý sau:
Nguyên lý vét cạn thông minh: Trong tốn tìm kiếm đó,
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 thực kiểu dị tìm đặc biệt dựa vào đặc thù tốn để nhanh chóng tìm mục tiêu
Nguyên lý tham lam (Greedy): Lấy tiêu chuẩn tối ưu (trên phạm vi tồn
cục) tốn để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục bước (hay giai đoạn) trình tìm kiếm lời giải
Nguyên lý thứ tự: Thực hành động dựa cấu trúc thứ tự hợp
lý không gian khảo sát nhằm nhanh chóng đạt lời giải tốt
Hàm Heuristic: Trong việc xây dựng thuật giải Heuristic, người ta
thường dùng hàm Heuristic Đó hàm đánh già thô, giá trị hàm phụ thuộc vào trạng thái toán bước giải Nhờ giá trị này, ta chọn cách hành động tương đối hợp lý bước thuật giải
(4)Bài tốn: Hãy tìm hành trình cho người giao hàng qua n điểm khác nhau, điểm qua lần trở điểm xuất phát cho tổng chiều dài đoạn đường cần ngắn Giả sử có đường nối trực tiếp từ hai điểm
Tất nhiên ta giải tốn cách liệt kê tất đường đi, tính chiều dài đường tìm đường có chiều dài ngắn Tuy nhiên, cách giải lại có độ phức tạp 0(n!) (một hành trình hốn vị n điểm, đó, tổng số hành trình số lượng hốn vị tập n phần tử n!) Do đó, số đại lý tăng số đường phải xét tăng lên nhanh
Một cách giải đơn giản nhiều thường cho kết tương đối tốt dùng thuật giải Heuristic ứng dụng nguyên lý Greedy Tư tưởng thuật giải sau:
Từ điểm khởi đầu, ta liệt kê tất quãng đường từ điểm xuất phát n đại lý chọn theo đường ngắn
Khi đến đại lý, chọn đến đại lý theo nguyên tắc Nghĩa liệt kê tất đường từ đại lý ta đứng đến đại lý chưa đến Chọn đường ngắn Lặp lại trình lúc khơng cịn đại lý để
(5)Hình : Giải tốn sử dụng ngun lý Greedy
Tất nhiên, thuật giải theo kiểu Heuristic đôi lúc lại đưa kết khơng tốt, chí tệ trường hợp hình sau
Bài toán phân việc – ứng dụng nguyên lý thứ tự
Một công ty nhận 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 P1, P2, … Pn Mọi chi tiết gia công bất
kỳ máy Một gia công chi tiết máy, cơng việ tiếp tục lúc hồn thành, bị cắt ngang Để gia công việc J1 máy
bất kỳ ta cần dùng thời gian tương ứng t1 Nhiệm vụ công ty phải làm
sao gia công xong toàn n chi tiết thời gian sớm
Chúng ta xét tốn trường hợp có máy P1, P2, P3 công việc với thời
gian t1=2, t2=5, t3=8, t4=1, t5=5, t6=1 ta có phương án phân cơng (L)
(6)Theo hình này, thời điểm t=0, ta tiến hành gia công chi tiết J2 máy P1, J5
P2 J1 P3 Tại thời điểm t=2, cơng việc J1 hồn thành, máy P3 ta gia
công tiếp chi tiết J4 Trong lúc đó, hai máy P1 P2 thực cơng việc đầu
tiên … Sơ đồ phân việc theo hình gọi lược đồ GANTT Theo lược đồ này, ta thấy thời gian để hồn thành tồn cơng việc 12 Nhận xét cách cảm tính ta thấy phương án (L) vừa thực phương án khơng tốt Các máy P1 P2 có q nhiều thời gian rãnh
Thuật tốn tìm phương án tối ưu L0 cho toán theo kiểu vét cạn có độ phức
tạp cỡ O(mn) (với m số máy n số công việc) Bây ta xét đến thuật giải Heuristic đơn giản (độ phức tạp O(n)) để giải toán
Sắp xếp công việc theo thứ tự giảm dần thời gian gia công Lần lượt xếp việc theo thứ tự vào máy cịn dư nhiều thời gian
Với tư tưởng vậy, ta có phương án L* sau:
Rõ ràng phương án L* vừa thực phương án tối ưu trường hợp thời gian hoàn thành 8, thời gian công việc J3 Ta hy vọng
(7)ta dễ dàng đưa trường hợp mà thuật giải Heuristic không đưa kết tối ưu
Nếu gọi T* thời gian để gia công xong n chi tiết máy thuật giải Heuristic đưa T0 thời gian tối ưu người ta chứng minh
, M số máy
Với kết này, ta xác lập sai số mà phải gánh chịu dùng Heuristic thay tìm lời giải tối ưu Chẳng hạn với số máy (M=2) ta có
, sai số cực đại mà trường hợp gánh chịu Theo công thức này, số máy lớn sai số lớn
Trong trường hợp M lớn tỷ số 1/M xem Như vậy, sai số tối đa mà ta phải chịu T* 4/3 T0, nghĩa sai số tối đa 33% Tuy nhiên, khó tìm
những trường hợp mà sai số giá trị cực đại, dù trường hợp xấu Thuật giải Heuristic trường hợp rõ ràng cho lời giải tương đối tốt
III CÁC PHƯƠNG PHÁP TÌM KIẾM HEURISTIC
Qua phần trước tìm hiểu tổng quan ý tưởng thuật giải Heuristic (nguyên lý Greedy thứ tự) Trong mục này, sâu vào tìm hiểu số kỹ thuật tìm kiếm Heuristic – lớp tốn quan trọng có nhiều ứng dụng thực tế
(8)Để tiện lợi cho việc trình bày, ta dành chút thời gian để làm rõ "đối tượng" quan tâm mục Một cách chung nhất, nhiều vấn đề-bài tốn phức tạp có dạng "tìm đường đồ thị" hay nói cách hình thức
"xuất phát từ đỉnh đồ thị, tìm đường hiệu đến đỉnh đó" Một phát biểu khác thường gặp dạng toán :
Cho trước hai trạng thái T0 TG xây dựng chuỗi trạng thái T0, T1, T2, , Tn-1, Tn = TG cho :
thỏa mãn điều kiện cho trước (thường nhỏ nhất) Trong đó, Ti thuộc tập hợp S (gọi không gian trạng thái – state space) bao gồm tất trạng thái có tốn cost(Ti-1, Ti) chi phí để biến đổi từ trạng thái Ti-1 sang trạng thái Ti Dĩ nhiên, từ trạng thái Ti ta có nhiều cách để
biến đổi sang trạng thái Ti+1 Khi nói đến biến đổi cụ thể từ Ti-1 sang Ti ta
dùng thuật ngữ hướng (với ngụ ý nói lựa chọn)
Hình : Mơ hình chung vấn đề-bài tốn phải giải phương pháp tìm
kiếm lời giải Khơng gian tìm kiếm tập hợp trạng thái - tập nút đồ thị Chi phí cần thiết để chuyển từ trạng thái T sang trạng thái Tkđược biểu diễn dạng số nằm cung nối hai nút tượng trưng cho hai trạng thái
Đa số tốn thuộc dạng mà mơ tả biểu diễn dạng đồ thị Trong đó, trạng thái đỉnh đồ thị Tập hợp S bao gồm tất trạng thái tập hợp bao gồm tất đỉnh đồ thị Việc biến đổi từ trạng thái Ti-1 sang trạng thái Ti việc từ đỉnh đại diện cho Ti-1 sang đỉnh
đại diện cho Titheo cung nối hai đỉnh
III.2 Tìm kiếm chiều sâu tìm kiếm chiều rộng
(9)người ta chẳng vận dụng hai kiểm tìm kiếm cách trực tiếp mà khơng phải sửa đổi
III.2.1 Tìm kiếm chiều sâu (Depth-First Search)
Trong tìm kiếm theo chiều sâu, trạng thái (đỉnh) hành, ta chọn trạng thái (trong tập trạng thái biến đổi thành từ trạng thái tại) làm trạng thái hành lúc trạng thái hành trạng thái đích Trong trường hợp trạng thái hành, ta biến đổi thành trạng thái ta quay lui (back-tracking) lại trạng thái trước trạng thái hành (trạng thái biến đổi thành trạng thái hành) để chọn đường khác Nếu trạng thái trước mà khơng thể biến đổi ta quay lui lại trạng thái trước Nếu quay lui đến trạng thái khởi đầu mà thất bại kết luận khơng có lời giải Hình ảnh sau minh họa hoạt động tìm kiếm theo chiều sâu
Hình : Hình ảnh tìm kiếm chiều sâu Nó lưu ý "mở rộng" trạng thái chọn
mà không "mở rộng" trạng thái khác (nút màu trắng hình vẽ)
III.2.2 Tìm kiếm chiều rộng (Breath-First Search)
(10)Hình : Hình ảnh tìm kiếm chiều rộng Tại bước, trạng thái mở rộng, khơng bỏ sót trạng thái
Chiều sâu Chiều rộng
Tính hiệu Hiệu lời giải nằm
sâu tìm kiếm có phương án chọn hướng xác Hiệu chiến lược phụ thuộc vào phương án chọn hướng Phương án hiệu hiệu chiến lược giảm Thuận lợi muốn tìm lời giải
Hiệu lời giải nằm gần gốc tìm kiếm Hiệu chiến lược phụ thuộc vào độ sâu lời giải Lời giải xa gốc hiệu chiến lược giảm Thuận lợi muốn tìm nhiều lời giải
Lượng nhớ sử dụng để lưu trữ trạng thái
Chỉ lưu lại trạng thái chưa xét đến
Phải lưu toàn trạng thái
Trường hợp xấu
Vét cạn toàn Vét cạn toàn
Trường hợp tốt Phương án chọn hướng
tuyệt đối xác Lời giải xác định cách trực tiếp
Vét cạn toàn
(11)hai chiến lược có tính chất "mù qng" chúng khơng ý đến thông tin (tri thức) trạng thái thời thơng tin đích cần đạt tới mối quan hệ chúng Các tri thức vơ quan trọng có ý nghĩa để thiết kế thuật giải hiệu mà ta sửa bàn đến
III.3 Tìm kiếm leo đồi III.3.1 Leo đồi đơn giản
Tìm kiếm leo đồi theo nghĩa, nói chung, thực chất trường hợp đặc biệt tìm kiếm theo chiều sâu khơng thể quay lui Trong tìm kiếm leo đồi, việc lựa chọn trạng thái định dựa hàm Heuristic
Hàm Heuristic ?
Thuật ngữ "hàm Heuristic" muốn nói lên điều gì? Chẳng có ghê gớm Bạn quen với rồi! Đó đơn giản ước lượng khả dẫn đến lời giải tính từ trạng thái (khoảng cách trạng thái trạng thái đích) Ta quy ước gọi hàm h suốt giáo trình Đơi lúc ta đề cập đến chi phí tối ưu thực từ trạng thái dẫn đến lời giải Thơng thường, giá trị khơng thể tính tốn (vì tính đồng nghĩa biết đường đến lời giải !) mà ta dùng sở để suy luận mặt lý thuyết mà ! Hàm h, ta quy ước rằng, trả kết số không âm Để bạn đọc thực nắm ý nghĩa hai hàm này, quan sát hình sau minh họa chi phí tối ưu thực chi phí ước lượng
Hình Chi phí ước lượng h’ = chi phí tối ưu thực h = 4+5 = (đi theo đường
1-3-7)
Bạn thành phố xa lạ mà khơng có đồ tay ta muốn vào khu trung tâm? Một cách suy nghĩ đơn giản, nhắm vào hướng tòa cao ốc khu trung tâm!
Tư tưởng
(12)2) Lặp lại đạt đến trạng thái kết thúc không tồn trạng thái hợp lệ (Tk) trạng thái hành :
a Đặt Tk trạng thái hợp lệ trạng thái hành Ti b Đánh giá trạng thái Tk :
b.1 Nếu trạng thái kết thúc trả trị
b.2 Nếu trạng thái kết thúc tốt trạng
thái hành cập nhật thành trạng thái hành
b.3 Nếu khơng tốt trạng thái hành tiếp tục
vòng lặp
Mã giả
Ti:= T0; Stop :=FALSE;
WHILE Stop=FALSE DO BEGIN
IF Ti TG THENBEGIN
<tìm kết >; Stop:=TRUE;
END;
ELSE BEGIN
Better:=FALSE;
WHILE (Better=FALSE) AND (STOP=FALSE) DO BEGIN
IF <không tồn trạng thái hợp lệ Ti>
THEN BEGIN
<khơng tìm kết >; Stop:=TRUE; END; ELSE BEGIN
Tk := <một trạng thái hợp lệ Ti>;
IF <h(Tk) tốt h(Ti)> THEN BEGIN
(13)END; END;
END; {WHILE} END; {ELSE}
END;{WHILE}
Mệnh đề "h’(Tk) tốt h’(Ti)" nghĩa gì? Đây khái niệm chung chung Khi cài đặt thuật giải, ta phải cung cấp định nghĩa tường minh tốt Trong số trường hợp, tốt nhỏ : h’(Tk) < h’(Ti); số trường hợp khác tốt lớn h’(Tk) > h’(Ti) Chẳng hạn, tốn tìm đường ngắn hai điểm Nếu dùng hàm h’ hàm cho khoảng cách theo đường chim bay vị trí (trạng thái tại) đích đến (trạng thái đích) tốt nghĩa nhỏ
Vấn đề cần làm rõ <một trạng thái hợp lệ Ti>? Một trạng thái hợp lệ trạng thái chưa xét đến Giả sử h trạng thái Ti có giá trị h(Ti) = 1.23 từ Ti ta biến đổi sang trạng thái Tk1, Tk2, Tk3 với giá trị hàm h tương ứng h(Tk1) = 1.67,
h(Tk2) = 2.52, h’(Tk3) = 1.04 Đầu tiên, Tk gán Tk1, h’(Tk) =
h’(Tk1) > h’(Ti) nên Tk không chọn Kế tiếp Tk gán Tk2
khơng chọn Cuối Tk3 chọn Nhưng giả sử h’(Tk3) = 1.3 Tk3
cũng không chọn mệnh đề <không thể sinh trạng thái Ti> có giá trị TRUE Giải thích hiển nhiên có lẽ cần thiết để tránh nhầm lẫn cho bạn đọc
Để thấy rõ hoạt động thuật giải leo đồi Ta xét toán minh họa sau Cho khối lập phương giống A, B, C, D Trong mặt (M1), (M2), (M3), (M4), (M5), (M6) tơ màu (1), (2), (3), (4), (5), (6) Ban đầu khối lập phương xếp vào hàng Mỗi bước, ta xoay khối lập phương quanh trục (X,Y,Z) 900 theo chiều (nghĩa ngược
(14)Hình : Bài toán khối lập phương
Để giải vấn đề, trước hết ta cần định nghĩa hàm G dùng để đánh giá tình trạng cụ thể có phải lời giải hay khơng? Bạn đọc dễ dàng đưa cài đặt hàm G sau :
IF (Gtrái + Gphải + Gtrên + Gdưới + Gtrước + Gsau) = 16 THEN
G:=TRUE
ELSE
G:=FALSE;
Trong đó, Gphảilà số lượng mặt có màu mặt bên phải hàng Tương tự cho Gtrái, Gtrên, Ggiữa, Gtrước, Gsau Tuy nhiên, khối lập phương A,B,C,D hoàn toàn tương tự nên tương quan mặt khối giống Do đó, có mặt khơng đối hàng đồng màu mặt lại hàng đồng màu Từ ta cần hàm G định nghĩa sau đủ :
IF Gphải + Gdưới = THEN G:=TRUE
ELSE
G:=FALSE;
Hàm h (ước lượng khả dẫn đến lời giải trạng thái) định nghĩa sau :
h = Gtrái+ Gphải+ Gtrên+ Gdưới
Bài toán đủ đơn giản để thuật giải leo đồi hoạt động tốt Tuy nhiên, lúc ta may mắn thế!
Đến đây, nảy sinh ý tưởng Nếu chọn trạng thái tốt
làm trạng thái khơng chọn trạng thái tốt ? Như vậy, có lẽ ta nhanh chóng dẫn đến lời giải hơn! Ta bàn luận vấn đề: "liệu cải tiến có thực giúp dẫn đến lời giải nhanh hay không?" sau trình bày xong thuật giải leo đồi dốc đứng
III.3.2 Leo đồi dốc đứng
(15)Tư tưởng
1) Nếu trạng thái bắt đầu trạng thái đích báo tìm lời giải Ngược lại, đặt trạng thái hành (Ti) trạng thái khởi đầu (T0)
2) Lặp lại đạt đến trạng thái kết thúc (Ti) không tồn trạng thái (Tk) tốt trạng thái (Ti)
a) Đặt S tập tất trạng thái có Tivà tốt
Ti
b) Xác định Tkmax trạng thái tốt tập S Đặt Ti = Tkmax
Mã giả
Ti:= T0;
Stop :=FALSE;
WHILE Stop=FALSE DO BEGIN
IF Ti TG THEN BEGIN <tìm kết >; STOP :=TRUE;
END; ELSE BEGIN
Best:=h’(Ti);
Tmax := Ti;
WHILE <tồn trạng thái hợp lệ Ti> DOBEGIN
Tk := <một trạng thái hợp lệ Ti>;
IF <h’(Tk) tốt Best> THEN BEGIN
Best :=h’(Tk);
Tmax := Tk;
(16)END;
IF (Best>Ti) THEN
Ti:= Tmax;
ELSE BEGIN
<khơng tìm kết >; STOP:=TRUE;
END; END; {ELSE IF} END;{WHILE STOP} III.3.3 Đánh giá
So với leo đồi đơn giản, leo đồi dốc đứng có ưu điểm ln ln chọn hướng có triển vọng để Liệu điều có đảm bảo leo đồi dốc đứng tốt leo đồi đơn giản không? Câu trả lời không Leo đồi dốc đứng tốt leo đồi đơn giản số trường hợp mà Để chọn hướng tốt nhất, leo đồi dốc đứng phải duyệt qua tất hướng có trạng thái hành Trong đó, leo đồi đơn giản chọn theo trạng thái tốt (so với trạng thái hành) mà tìm Do đó, thời gian cần thiết để leo đồi dốc đứng chọn hướng lớn so với leo đồi đơn giản Tuy vậy, lúc chọn hướng tốt nên leo đồi dốc đứng thường tìm đến lời giải sau số bước so với leo đồi đơn giản Nói cách ngắn gọn, leo đồi dốc đứng tốn nhiều thời gian cho bước lại bước hơn; cịn leo đồi đơn giản tốn thời gian cho bước lại phải nhiều bước Đây yếu tố hai thuật giải nên ta phải cân nhắc kỹ lưỡng lựa chọn thuật giải
Cả hai phương pháp leo núi đơn giản leo núi dốc đứng có khả thất bại việc tìm lời giải tốn lời giải thực hữu Cả hai giải thuật kết thúc đạt trạng thái mà không cịn trạng thái tốt phát sinh trạng thái trạng thái đích Điều xảy chương trình đạt đến điểm cực đại địa phương, đoạn đơn điệu ngang
Điểm cực đại địa phương (a local maximum) : trạng thái tốt tất lân cận khơng tốt số trạng thái khác xa Nghĩa điểm cực đại địa phương, trạng thái lân cận trạng thái xấu trạng thái Tuy có dáng vẻ lời giải cực đại địa phương lời giải thực Trong trường hợp này, chúng gọi đồi thấp
(17)Hình : Các tình khó khăn cho tìm kiếm leo đèo
Để đối phó với các điểm này, người ta đưa số giải pháp Ta tìm hiểu số giải pháp Những giải này, không thực giải trọn vẹn vấn đề mà phương án cứu nguy tạm thời mà
Phương án kết hợp leo đồi quay lui Ta quay lui lại trạng thái trước thử theo hướng khác Thao tác hợp lý trạng thái trước có hướng tốt mà ta bỏ qua trước Đây cách hay để đối phó với điểm cực đại địa phương Tuy nhiên, đặc điểm leo đồi "bước sau cao bước trước" nên phương án thất bại ta xuất phát từ điểm cao xuất phát từ đỉnh đồi mà để đến lời giải cần phải qua "thung lũng" thật sâu hình sau
Hình : Một trường hợp thất bại leo đèo kết hợp quay lui
(18)nữa, số bước nhảy nhảy theo hướng vấn đề phụ thuộc nhiều vào đặc điểm không gian tìm kiếm tốn
Hình Một trường hợp khó khăn cho phương án "nhảy vọt"
Leo núi phương pháp cục định làm dựa vào đánh giá trạng thái trạng thái có (tốt trạng thái tại, trạng thái tốt tốt trạng thái tại) thay phải xem xét cách toàn diện tất trạng thái qua Thuận lợi leo núi gặp bùng nổ tổ hợp so với phương pháp tồn cục Nhưng giống phương pháp cục khác chỗ khơng chắn tìm lời giải trường hợp xấu
Một lần nữa, ta khẳng định lại vai trò định hàm Heuristic trình tìm kiếm lời giải Với thuật giải (như leo đồi chẳng hạn), ta có hàm Heuristic tốt kết tìm thấy nhanh Ta xét tốn khối trình bày hình sau Ta có hai thao tác biến đổi là:
+ Lấy khối đỉnh cột đặt lên chỗ trống tạo thành cột Lưu ý tạo tối đa cột
(19)Hình : Trạng thái khởi đầu trạng thái kết thúc Giả sử ban đầu ta dùng hàm Heuristic đơn giản sau :
H1 : Cộng điểm cho khối vị trí so với trạng thái đích Trừ điểm cho khối đặt vị trí sai so với trạng thái đích
Dùng hàm này, trạng thái kết thúc có giá trị khối đặt vị trí Trạng thái khởi đầu có giá trị (vì có điểm cộng cho khối C, D, E, F, G, H điểm trừ cho khối A B) Chỉ có di chuyển từ trạng thái khởi đầu, dịch chuyển khối A xuống tạo thành cột (T1)
Điều sinh trạng thái với số điểm (vì vị trí khối A sinh điểm cộng điểm trừ) Thủ tục leo núi chấp nhận dịch chuyển Từ trạng thái T1, có ba di chuyển thực dẫn đến ba trạng thái Ta, Tb, Tc
được minh họa hình Những trạng thái có số điểm : h’(Ta)= 4; h’(Tb) = h’(Tc) =
(20)Hình Các trạng thái đạt từ T1
Thủ tục leo núi tạm dừng tất trạng thái có số điểm thấp trạng thái hành Quá trình tìm kiếm dừng lại trạng thái cực đại địa phương mà cực đại toàn cục
Chúng ta đổ lỗi cho giải thuật leo đồi thất bại khơng đủ tầm nhìn tổng quát để tìm lời giải Nhưng đổ lỗi cho hàm
Heuristic cố gắng sửa đổi Giả sử ta thay hàm ban đầu hàm Heuristic sau :
H2 : Đối với khối phụ trợ (khối phụ trợ khối nằm bên khối tại), cộng điểm, ngược lại trừ điểm
Dùng hàm này, trạng thái kết thúc có số điểm 28 B nằm vị trí khơng có khối phụ trợ nào, C vị trí điểm cộng với điểm khối phụ trợ B nằm vị trí nên C điểm, D điểm, Trạng thái khởi đầu có số điểm – 28 Việc di chuyển A xuống tạo thành cột làm sinh trạng thái với số điểm h’(T1) = –21 A khơng cịn khối sai phía Ba trạng thái
phát sinh có điểm số : h’(Ta)=–28; h’(Tb)=–16 h’(Tc) = – 15 Lúc thủ tục leo núi dốc đứng chọn di chuyến đến trạng thái Tc, có khối Qua hàm H2 ta rút nguyên tắc : tốt
nghĩa có nhiều ưu điểm mà cịn phải khuyết điểm Hơn nữa, khuyết điểm khơng có nghĩa sai biệt vị trí mà cịn khác biệt tương quan vị trí Rõ ràng đứng mặt kết quả, thủ tục leo đồi hàm H1 bị thất bại (do biết đánh giá ưu điểm) hàm H2
lại hoạt động cách hoàn hảo (do biết đánh giá ưu điểm khuyết điểm) Đáng tiếc, lúc thiết kế hàm Heuristic hồn hảo Vì việc đánh giá ưu điểm khó, việc đánh giá khuyết điểm khó tinh tế Chẳng hạn, xét lại vấn đề muốn vào khu trung tâm thành phố xa lạ Để hàm Heuristic hiệu quả, ta cần phải đưa thông tin đường chiều ngõ cụt, mà trường hợp thành phố hồn tồn xa lạ ta khó khơng thể biết thông tin
Đến đây, hiểu rõ chất hai thuật giải tiếp cận theo chiến lược tìm kiếm chiều sâu Hiệu hai thuật giải leo đồi đơn giản leo đồi dốc đứng phụ thuộc vào :
+ Chất lượng hàm Heuristic + Đặc điểm không gian trạng thái + Trạng thái khởi đầu