Các chiến lược tìm kiếm tối ưu

15 408 0
Các chiến lược tìm kiếm tối ưu

Đ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

Các chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưuCác chiến lược tìm kiếm tối ưu

Chương III Các chiến lược tìm kiếm tối ưu - Vấn đề tìm kiếm tối ưu, cách tổng quát, phát biểu sau Mỗi đối tượng x không gian tìm kiếm gắn với số đo giá trị đối tượng f(x), mục tiêu ta tìm đối tượng có giá trị f(x) lớn (hoặc nhỏ nhất) không gian tìm kiếm Hàm f(x) gọi hàm mục tiêu Trong chương nghiên cứu thuật toán tìm kiếm sau: • Các kỹ thuật tìm đường ngắn không gian trạng thái: Thuật toán A*, thuật toán nhánh_và_cận • Các kỹ thuật tìm kiếm đối tượng tốt nhất: Tìm kiếm leo đồi, tìm kiếm gradient, tìm kiếm mô luyện kim • Tìm kiếm bắt chước tiến hóa: thuật toán di truyền 3.1 Tìm đường ngắn Trong chương trước nghiên cứu vấn đề tìm kiếm đường từ trạng thái ban đầu tới trạng thái kết thúc không gian trạng thái Trong mục này, ta giả sử rằng, giá phải trả để đưa trạng thái a tới trạng thái b (bởi toán tử đó) số k(a,b) ≥ 0, ta gọi số độ dài cung (a,b) giá trị cung (a,b) đồ thị không gian trạng thái Độ dài cung xác định tùy thuộc vào vấn đề Chẳng hạn, toán tìm đường đồ giao thông, giá cung (a,b) độ dài đường nối thành phố a với thành phố b Độ dài đường đí xác định tổng độ dài cung đường Vấn đề mục này, tìm đường ngắn từ trạng thái ban đầu tới trạng thái đích Không gian tìm kiếm bao gồm tất đường từ trạng thái ban đầu tới trạng thái kết thúc, hàm mục tiêu xác định độ dài đường Chúng ta giải vấn đề đặt cách tìm tất đường có từ trạng thái ban đầu tới trạng thái đích (chẳng hạn, sử sụng ký thuật tìm kiếm mù), sau so sánh độ dài chúng, ta tìm đường ngắn Thủ tục tìm kiếm thường gọi thủ tục bảo tàng Anh Quốc (British Museum Procedure) Trong thực tế, kỹ thuật Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang áp dụng được, tìm kiếm thường lớn, việc tìm tất đường có đòi hỏi nhiều thời gian Do có cách tăng hiệu tìm kiếm sử dụng hàm đánh giá đề hướng dẫn sử tìm kiếm Các phương pháp tìm kiếm đường ngắn mà trình bày phương pháp tìm kiếm heuristic Giả sử u trạng thái đạt tới (có dường từ trạng thái ban đầu u tới u) Ta xác định hai hàm đánh giá sau: • g(u) đánh giá độ dài đường ngắn từ u tới u (Đường từ u0 tới trạng thái u trạng thái đích gọi đường phần, để phân biệt với đường đầy đủ, đường từ u0 tới trạng thái đích) • h(u) đánh giá độ dài đường ngắn từ u tới trạng thái đích Hàm h(u) gọi chấp nhận (hoặc đánh giá thấp) với trạng thái u, h(u) ≤ độ dài đường ngắn thực tế từ u tới trạng thái đích Chẳng hạn toán tìm đường ngắn đồ giao thông, ta xác định h(u) độ dài đường chim bay từ u tới đích Ta sử dụng kỹ thuật tìm kiếm leo đồi với hàm đánh giá h(u) Tất nhiên phương pháp cho phép ta tìm đường tương đối tốt, chưa đường tối ưu Ta sử dụng kỹ thuật tìm kiếm tốt với hàm đánh giá g(u) Phương pháp tìm đường ngắn nhất, nhiên hiệu Để tăng hiệu tìm kiếm, ta sử dụng hàm đánh giá : f(u) = g(u) + h(u) Tức là, f(u) đánh giá độ dài đường ngắn qua u từ trạng thái ban đầu tới trạng thái kết thúc Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang 3.1.1 Thuật toán A* Thuật toán A* thuật toán sử dụng kỹ thuật tìm kiếm tốt với hàm đánh giá f(u) Để thấy thuật toán A* làm việc nào, ta xét đồ thị không gian trạng thái hình 3.1 Trong đó, trạng thái ban đầu trạng thái A, trạng thái đích B, số ghi cạnh cung độ dài đường đi, số cạnh đỉnh giá trị hàm h.Đầu tiên, phát triển đỉnh A sinh đỉnh C, D, E F Tính giá trị hàm f đỉnh ta có: g(C) = 9, f(C) = + 15 = 24, g(D) = 7, f(D) = + = 13, g(E) = 13, f(E) = 13 + = 21, g(F) = 20, f(F) = 20 +7 = 27 Như đỉnh tốt D (vì f(D) = 13 nhỏ nhất) Phát triển D, ta nhận đỉnh H E Ta đánh giá H E (mới): g(H) = g(D) + Độ dài cung (D, H) = + = 15, f(H) = 15 + 10 = 25 Đường tới E qua D có độ dài: g(E) = g(D) + Độ dài cung (D, E) = + = 11 Vậy đỉnh E có đánh giá f(E) = g(E) + h(E) = 11 + = 19 Trong số đỉnh cho phát triển, đỉnh E với đánh giá f(E) = 19 đỉnh tốt Phát triển đỉnh này, ta nhận đỉnh K I Chúng ta tiếp tục trình đỉnh chọn để phát triển đỉnh kết thúc B, độ dài đường ngắn tới B g(B) = 19 Quá trình tìm kiếm mô tả tìm kiếm hình 3.2, số cạnh đỉnh giá trị hàm đánh giá f(u) procedure A*; begin Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang Khởi tạo danh sách L chứa trạng thái ban đầu; loop 2.1 if L rỗng then {thông báo thất bại; stop}; 2.2 Loại trạng thái u đầu danh sách L; 2.3 if u trạng thái đích then {thông báo thành công; stop} 2.4 for trạng thái v kề u {g(v) ← g(u) + k(u,v); f(v) ← g(v) + h(v); Đặt v vào danh sách L;} 2.5 Sắp xếp L theo thứ tự tăng dần hàm f cho trạng thái có giá trị hàm f nhỏ đầu danh sách; end; Chúng ta đưa số nhận xét thuật toán A* • Người ta chứng minh rằng, hàm đánh giá h(u) đánh giá thấp (trường hợp đặc biệt, h(u) = với trạng thái u) thuật toán A* thuật toán tối ưu, tức nghiệm mà tìm nghiệm tối ưu Ngoài ra, độ dài cung không nhỏ số dương δ thuật toán A* thuật toán đầy đủ theo nghĩa rằng, dừng tìm nghiệm Chúng ta chứng minh tính tối ưu thuật toán A* Giả sử thuật toán dừng lại đỉnh kết thúc G với độ dài đường từ trạng thái ban đầu u0 tới G g(G) Vì G đỉnh kết thúc, ta có h(G) = f(G) = g(G) + h(G) = g(G) Giả sử nghiệm tối ưu đường từ u tới đỉnh Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang kết thúc G1 với độ dài l Giả sử đường “thoát ra” khỏi tìm kiếm đỉnh n (Xem hình 3.3) Có thể xẩy hai khả năng: n trùng với G không Nếu n G1 G chọn để phát triển trước G1, nên f(G) ≤ f(G1), g(G) ≤ g(G1) = l Nếu n ≠ G1 h(u) hàm đánh giá thấp, nên f(n) = g(n) + h(n) ≤ l Mặt khác, G chọn để phát triển trước n, nên f(G) ≤ f(n), đó, g(G) ≤ l Như vậy, ta chứng minh độ dài đường mà thuật toán tìm g(G) không dài độ dài l đường tối ưu Vậy độ dài đường tối ưu • Trong trường hợp hàm đánh giá h(u) = với u, thuật toán A* thuật toán tìm kiếm tốt với hàm đánh giá g(u) mà ta nói đến • Thuật toán A* chứng tỏ thuật toán hiệu số thuật toán đầy đủ tối ưu cho vấn đề tìm kiếm đường ngắn 3.1.2 Thuật toán tìm kiếm nhánh-và-cận Thuật toán nhánh_và_cận thuật toán sử dụng tìm kiếm leo đồi với hàm đánh giá f(u) Trong thuật toán này, bước phát triển trạng thái u, ta chọn trạng thái tốt v (f(v) nhỏ nhất) số trạng thái kề u đề phát triển bước sau Đi xuống gặp trạng thái v đích, gặp trạng thái v đỉnh kề, gặp trạng thái v mà f(v) lớn độ dài đường tối ưu tạm thời, tức đường đầy đủ ngắn số đường đầy đủ mà ta tìm Trong trường hợp này, ta không phát triển đỉnh v nữa, hay nói cách khác, ta cất nhánh xuất phát từ v, quay lên cha v đề tiếp tục xuống trạng thái tốt trạng thái lại chưa phát triển Ví dụ: Chúng ta lại xét không gian trạng thái hình 3.1 Phát triển đỉnh A, ta nhận đỉnh C, D, E F, f(C) = 24, f(D) = 13, f(E) = 21, f(F) = 27 Trong số D tốt nhất, phát triển D, sinh đỉnh H E, f(H) = 25, f(E) = 19 Đi xuống phát triển E, sinh đỉnh K I, f(K) = 17, f(I) = 18 Đi xuống phát triển K sinh đỉnh B với f(B) = g(B) = 21 Đi xuống B, B đỉnh đích, ta tìm đường tối ưu tạm thời với độ dài 21 Từ B quay lên K, từ K quay lên cha E Từ E xuống J, f(J) = 18 nhỏ độ dài đường tạm thời (là 21) Phát triển I sinh K B, f(K) = 25, f(B) = g(B) = 19 Đi xuống đỉnh B, đỉnh B đích ta tìm đường đầy đủ với độ dài 19 nhỏ độ dài đường tối ưu tạm thời cũ (21) Vậy độ dài đường tối ưu tạm thời 19 Bây từ B ta lại quay lên đỉnh lại chưa Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang phát triển Song đỉnh có giá trị hàm đánh giá lớn 19, đỉnh phát triển Như vậy, ta tìm đường tối ưu với độ dài 19 Cây tìm kiếm biểu diễn hình 3.4 Thuật toán nhánh_và_cận biểu diễn thủ tục Branch_and_Bound Trong thủ tục này, biến cost dùng để lưu độ dài đường ngắn Giá trị ban đầu cost số đủ lớn, độ dài đường đầy đủ mà ta biết procedure Branch_and_Bound; begin Khởi tạo danh sách L chứa trạng thái ban đầu; Gán giá trị ban đầu cho cost; loop 2.1 if L rỗng then stop; 2.2 Loại trạng thái u đầu danh sách L; 2.3 if u trạng thái kết thúc then if g(u) ≤ y then {y ← g(y); Quay lại 2.1}; 2.4 if f(u) > y then Quay lại 2.1; 2.5 for trạng thái v kề u {g(v) ← g(u) + k(u,v); f(v) ← g(v) + h(v); Đặt v vào danh sách L1}; 2.6 Sắp xếp L1 theo thứ tự tăng hàm f; 2.7 Chuyển L1 vào đầu danh sách L cho trạng thái đầu L1 trở thành đầu L; Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang end; Người ta chứng minh rằng, thuật toán nhánh_và_cận thuật toán đầy đủ tối ưu hàm đánh giá h(u) đánh giá thấp có độ dài cung không nhỏ số dương δ 3.2 Tìm đối tượng tốt Trong mục xét vấn đề tìm kiếm sau Trên không gian tìm kiếm U xác định hàm giá (hàm mục tiêu) cost, ứng với đối tượng x ∈ U với giá trị số cost(x), số gọi giá trị x Chúng ta cần tìm đối tượng mà hàm giá trị lớn nhất, ta gọi đối tượng đối tượng tốt Giả sử không gian tìm kiếm có cấu trúc cho phép ta xác định khái niệm lân cận đối tượng Chẳng hạn, U không gian trạng thái lân cận trạng thái u gồm tất trạng thái v kề u; U không gian vectơ thực n-chiều lân cận vectơ x = (x1, x2, xn) gồm tất vectơ gần x theo khoảng cách Ơcơlit thông thường Trong mục này, ta xét kỹ thuật tìm kiếm leo đồi để tìm đối tượng tốt Sau ta xét kỹ thuật tìm kiếm gradient (gradient search) Đó kỹ thuật leo đồi áp dụng cho không gian tìm kiếm không gian vectơ thực n-chiều hàm giá là hàm khả vi liên tục Cuối ta nghiên cứu kỹ thuật tìm kiếm mô luyện kim( simulated annealing) 3.2.1 Tìm kiếm leo đồi Kỹ thuật tìm kiếm leo đồi để tìm kiếm đối tượng tốt hoàn toàn giống kỹ thuật tìm kiếm leo đồi để tìm trạng thái kết thúc xét mục 2.3 Chỉ khác thuật toán leo đồi mục 2.3, từ trạng thái ta "leo lên" trạng thái kề tốt (được xác định hàm giá), tiếp tục đạt tới trạng thái đích; chưa đạt tới trạng thái đích mà không leo lên nữa, ta tiếp tục "tụt xuống" trạng thái trước nó, lại leo lên trạng thái tốt lại Còn đây, từ đỉnh u ta leo lên đỉnh tốt v (được xác định hàm giá cost) lân cận u đỉnh "cao hơn" đỉnh u, tức cost(v) > cost(u) Quá trình tìm kiếm dừng lại ta không leo lên đỉnh cao Trong thủ tục leo đồi đây, biến u lưu đỉnh thời, biến v lưu đỉnh tốt (cost(v) nhỏ nhất) đỉnh lân cận u Khi thuật toán dừng, biến u lưu đối tượng tìm procedure Hill_Climbing; begin Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang u ← đối tượng ban đầu đó; if cost(v) > cost(u) then u ← v else stop; end; Tối ưu địa phương tối ưu toàn cục Rõ ràng là, thuật toán leo đồi dừng lại đối tương u*, giá cost(u*) lớn giá tất đối tượng nằm lân cận tất đối tượng đường từ đối tượng ban đầu tới trạng thái u* Do nghiệm u* mà thuật toán leo đồi tìm tối ưu địa phương Cần nhấn mạnh đảm bảo nghiệm tối ưu toàn cục theo nghĩa cost(u*) lớn toàn không gian tìm kiếm Để nhận nghiệm tốt thuật toán leo đồi, ta áp dụng lặp lại nhiều lần thủ tục leo đồi xuất phát từ dãy đối tượng ban đầu chọn ngẫu nhiên lưu lại nghiệm tốt qua lần lặp Nếu số lần lặp đủ lớn ta tìm nghiệm tối ưu Kết thuật toán leo đồi phụ thuộc nhiều vào hình dáng “mặt cong” hàm giá Nếu mặt cong có số cực đại địa phương, kỹ thuật leo đồi tìm nhanh cực đại toàn cục Song có vấn đề mà mặt cong hàm giá tựa lông nhím vậy, sử dụng kỹ thuật leo đồi đòi hỏi nhiều thời gian 3.2.2 Tìm kiếm gradient Tìm kiếm gradient kỹ thuật tìm kiếm leo đồi để tìm giá trị lớn (hoặc nhỏ nhất) hàm khả vi liên tục f(x) không gian vectơ thực n-chiều Như ta biết, lân cận đủ nhỏ điểm x = (x 1, ,xn), hàm f tăng nhanh theo hướng vectơ gradient: ∂f   ∂f ∂f ∇f =  , , ,  ∂xn   ∂x1 ∂x Do tư tưởng tìm kiếm gradient từ điểm ta tới điểm lân cận theo hướng vectơ gradient procedure Gradient_Search; begin x ← điểm xuất phát đó; repeat x ← x + α∇f(x); until |∇f| < ε; end; Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang Trong thủ tục trên, α số dương nhỏ xác định tỉ lệ bước, ε số dương nhỏ xác định tiêu chuẩn dừng Bằng cách lấy bước đủ nhỏ theo hướng vectơ gradient tìm điểm cực đại địa phương, điểm mà ∇f = 0, tìm điểm gần vói cực đại địa phương 3.2.3 Tìm kiếm mô luyện kim: Như nhấn mạnh trên, tìm kiếm leo đồi không đảm bảo cho ta tìm nghiệm tối ưu toàn cục Để cho nghiệm tìm gần với tối ưu toàn cục, ta áp dụng kỹ thuật leo đồi lặp xuất phát từ điểm lựa chọn ngẫu nhiên Bây thay cho việc luôn “leo lên đồi” xuất phát từ điểm khác nhau, ta thực số bước “tụt xuống” nhằm thoát khỏi điểm cực đại địa phương Đó tư tưởng kỹ thuật tìm kiếm mô luyện kim Trong tìm kiếm leo đồi, trạng thái u ta luôn tới trạng thái tốt lân cận Còn bây giờ, tìm kiếm mô luyện kim, ta chọn ngẫu nhiên trạng thái v lân cận u Nếu trạng thái v chọn tốt u (cost(v) > cost(u)) ta tới v, không ta tới v với xác suất Xác suất giảm theo hàm mũ “độ xấu” trạng thái v Xác suất phụ thuộc vào tham số nhiệt độ T Nhiệt độ T cao bước tới trạng thái xấu có khả thực Trong trình tìm kiếm, tham số nhiệt độ T giảm dần tới không Khi T gần không, thuật toán hoạt động gần giống leo đồi, không thực bước tụt xuống Cụ thể ta xác định xác suất tới trạng thái xấu v từ u e∆/T, ∆ = cost(v) - cost(u) Sau thủ tục mô luyện kim procedure Simulated_Anneaning; begin t ← 0; u ← trạng thái ban đầu đó; T ← nhiệt độ ban đầu; repeat v ← trạng thái chọn nhẫu nhiên lân cận u; if cost(v) > cost(u) then u ← v else u ← v với xác suất e∆/T; T ← g(T, t); Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang t ← t + 1; until T đủ nhỏ end; Trong thủ tục trên, hàm g(T, t) thỏa mãn điều kiện g(T, t) < T với t, xác định tốc độ giảm nhiệt độ T Người ta chứng minh rằng, nhiêt độ T giảm đủ chậm, thuật toán tìm nghiệm tối ưu toàn cục Thuật toán mô luyện kim áp dụng thành công cho toán tối ưu cỡ lớn 3.3 Tìm kiếm mô tiến hóa Thuật toán di truyền Thuật toán di truyền (TTDT) thuật toán bắt chước chọn lọc tự nhiên di truyền Trong tự nhiên, cá thể khỏe, có khả thích nghi tốt với môi trường tái sinh nhân hệ sau Mỗi cá thể có cấu trúc gien đặc trưng cho phẩm chất cá thể Trong trình sinh sản, cá thể thừa hưởng phẩm chất cha mẹ, cấu trúc gien mang phần cấu trúc gien cha mẹ Ngoài ra, trình tiến hóa, xảy tượng đột biến, cấu trúc gien cá thể chứa gien mà cha mẹ Trong TTDT, cá thể mã hóa cấu trúc liệu mô tả cấu trúc gien cá thể đó, ta gọi nhiễm sắc thể (chroniosome) Mỗi nhiễm sắc thể tạo thành từ đơn vị gọi gien Chẳng hạn, TTDT cổ điển, nhiễm sắc thể chuỗi nhị phân, tức cá thể biểu diễn chuỗi nhị phân TTDT làm việc quần thể gồm nhiều cá thể Một quần thể ứng với giai đoạn phát triển gọi hệ Từ hệ ban đầu tạo ra, TTDT bắt chước chọn lọc tự nhiên di truyền để biến đổi hệ TTDT sử dụng toán tử sau để biến đổi hệ • Toán tử tái sinh (reproduction) (còn gọi toán tử chọn lọc (selection)) Các cá thể tốt chọn lọc để đưa vào hệ sau Sự lựa chọn thực dựa vào độ thích nghi với môi trường cá thể Ta gọi hàm ứng cá thể với độ thích nghi hàm thích nghi (fitness function) • Toán tử lai ghép (crossover) Hai cá thể cha mẹ trao đổi gien để tạo hai cá thể • Toán tử đột biến (mutation) Một cá thể thay đổi số gien để tạo thành cá thể Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang 10 Tất toán tử thực mang tính ngẫu nhiên Cấu trúc TTDT sau: procedure Genetic_Algorithm; begin t ← 0; Khởi tạo hệ ban đầu P(t); Đánh giá P(t) (theo hàm thích nghi); repeat t ← t + 1; Sinh hệ P(t) từ P(t-1) • Chọn lọc • Lai ghép • Đột biến; Đánh giá P(t); until điều kiện kết thúc thỏa mãn; end; Trong thủ tục trên, điều kiện kết thúc vòng lặp số hệ đủ lớn đó, độ thích nghi cá thể tốt hệ khác không đáng kể Khi thuật toán dừng, cá thể tốt hệ cuối chọn làm nghiệm cần tìm Bây ta xét chi tiết toán tử chọn lọc toán tử di truyền (lai ghép, đột biến) TTDT cổ điển Chọn lọc: Việc chọn lọc cá thể từ quần thể dựa độ thích nghi cá thể Các cá thể có độ thích nghi cao có nhiều khả chọn Cần nhấn mạnh rằng, hàm thích nghi cần hàm thực dương, không tuyến tính, không liên tục, không khả vi Quá trình chọn lọc thực theo kỹ thuật quay bánh xe Giả sử hệ thời P(t) gồm có n cá thể {x1, ,xn} Số n gọi cỡ quần thể Với cá thể xi, ta tính độ thích nghi f(x i) Tính tổng độ thích nghi tất cá thể quần thể: n F = ∑ f(xi) i =1 Mỗi lần chọn lọc, ta thực hai bước sau: • Sinh số thực ngẫu nhiên q khoảng (0, F); Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang 11 • xk cá thể chọn, k số nhỏ cho k ∑ f ( xi) ≥ i =1 Việc chọn lọc theo hai bước minh họa sau: Ta có bánh xe chia thành n phần, phần ứng với độ thích nghi cá thể (hình 3.5) Một mũi tên vào bánh xe Quay bánh xe, bánh xe dừng, mũi tên vào phần nào, cá thể ứng với phần chọn Rõ ràng với cách chọn này, cá thể có độ thích nghi cao có khả chọn Các cá thể có độ thích nghi cao có hay nhiều sao, cá thể có độ thích nghi thấp mặt hệ sau (nó bị chết đi) Lai ghép: Trên cá thể chọn lọc, ta tíến hành toán tử lai ghép Đầu tiên ta cần đưa xác suất lai ghép p c xác suất cho ta hy vọng có pc.n cá thể lai ghép (n cỡ quần thể) Với cá thể ta thực hai bước sau: • Sinh số thực ngẫu nhiên r đoạn [0, 1]; • Nếu r < pc cá thể chọn để lai ghép Từ cá thể chọn để lai ghép, người ta cặp đôi chúng cách ngẫu nhiên Trong trường hợp nhiễm sắc thể chuỗi nhị phân có độ dài cố định m, ta thực lai ghép sau: Với cặp, sinh số nguyên ngẫu nhiên p đoạn [0, m -1], p vị trí điểm ghép Cặp gồm hai nhiễm sắc thể a = (a1 , , ap , ap+1 , , am) a = (b1 , , bp , bp+1 , , bm) thay hai là: a' = (a1 , , ap , bp+1 , , bm) b' = (b1 , , bp , ap+1 , , am) Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang 12 Đột biến: Ta thực toán tử đột biến cá thể có sau trình lai ghép Đột biến thay đổi trạng thái số gien nhiễm sắc thể Mỗi gien chịu đột biến với xác suất p m Xác suất đột biến pm ta xác định xác suất thấp Sau toán tử đột biến nhiễm sắc thể chuỗi nhị phân Với vị trí i nhiễm sắc thể: a = (a1 , , , , am) Ta sinh số thực nghiệm ngẫu nhiên p i [0,1] Qua đột biến a biến thành a’ sau: a' = (a'1 , , a'i , , a'm) Trong : a'i = pi ≥ pm - pi < pm Sau trình chọn lọc, lai ghép, đột biến, hệ sinh Công việc lại thuật toán di truyền lặp lại bước Ví dụ: Xét toán tìm max hàm f(x) = x với x số nguyên đoạn [0,31] Để sử dụng TTDT, ta mã hoá số nguyên x đoạn [0,31] số nhị phân độ dài 5, chẳng hạn, chuỗi 11000 mã số nguyên 24 Hàm thích nghi xác định hàm f(x) = x Quần thể ban đầu gồm cá thể (cỡ quần thể n = 4) Thực trình chọn lọc, ta nhận kết bảng sau Trong bảng này, ta thấy cá thể có độ thích nghi cao (576) nên chọn lần, cá thể có độ thích nghi thấp (64) không chọn lần Mỗi cá thể chọn lần Bảng kết chọn lọc Số liệu cá thể Quần thể ban đầu x 01101 11000 01000 10011 13 24 19 Độ thích nghi Số lần f(x) = x chọn Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng 169 576 64 361 Ch¬ng - Trang 13 Thực qúa trình lai ghép với xác suất lai ghép p c = 1, cá thể sau chọn lọc lai ghép Kết lai ghép cho bảng sau Trong bảng này, chuỗi thứ lai ghép với chuỗi thứ hai với điểm ghép 4, hai chuỗi lại lai ghép với với điểm ghép Bảng kết lai ghép Quần thể sau chọn lọc Điểm ghép Quần thể sau lai ghép x Độ thích nghi f(x) = x2 0110|1 01100 144 1100|0 11001 625 11|000 11011 729 10|011 10000 256 Để thực trình đột biến, ta chọn xác suất đột biến p m= 0,001, tức ta hy vọng có 5.4.0,001 = 0,02 bit đột biến Thực tế bit đột biến Như hệ quần thể sau lai ghép Trong hệ ban đầu, độ thích nghi cao 576, độ thích nghi trung bình 292 Trong hệ sau, độ thích nghi cao 729, trung bình 438 Chỉ qua hệ, cá thể “tốt lên” nhiều Thuật toán di truyền khác với thuật toán tối ưu khác điểm sau: • TTDT sử dụng hàm thích để hướng dẫn tìm kiếm, hàm thích nghi cần hàm thực dương Ngoài ra, không đòi hỏi không gian tìm kiếm phải có cấu trúc • TTDT làm việc nhiễm sắc thể mã cá thể cần tìm • TTDT tìm kiếm từ quần thể gồm nhiều cá thể • Các toán tử TTDT mang tính ngẫu nhiên Để giải vấn đề TTDT, cần thực bước sau đây: • Trước hết ta cần mã hóa đối tượng cần tìm cấu trúc liệu Chẳng hạn, TTDT cổ điển, ví dụ trên, ta sử dụng mã nhị phân Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang 14 • Thiết kế hàm thích nghi Trong toán tối ưu, hàm thích nghi xác định dựa vào hàm mục tiêu • Trên sở cấu trúc nhiễm sắc thể, thiết kế toán tử di truyền (lai ghép, đột biến) cho phù hợp với vấn đề cần giải • Xác định cỡ quần thể khởi tạo quần thể ban đầu • Xác định xác suất lai ghép pc xác suất đột biến Xác suất đột biến cần xác suất thấp Người ta (Goldberg, 1989) khuyên nên chọn xác suất lai ghép 0,6 xác suất đột biến 0,03 Tuy nhiên cần qua thử nghiệm để tìm xác suất thích hợp cho vấn đề cần giải Nói chung thuật ngữ TTDT để TTDT cổ điển, mà cấu trúc nhiễm sắc thể chuỗi nhị phân với toán tử di truyền mô tả Song nhiều vấn đề thực tế, thuận tiện hơn, ta biểu diễn nhiễm sắc thể cấu trúc khác, chẳng hạn vectơ thực, mảng hai chiều, cây, Tương ứng với cấu trúc nhiễm sắc thể, có nhiều cách xác định toán tử di truyền Quá trình sinh hệ P(t) từ hệ cũ P(t - 1) có nhiều cách chọn lựa Người ta gọi chung thuật toán thuật toán tiến hóa (evolutionary algorithms) chương trình tiến hóa (evolution program) Thuật toán tiến hóa áp dụng vấn đề tối ưu học máy Để hiểu biết sâu sắc thuật toán tiến hoá, bạn đọc tìm đọc [ ], [ ] [ ] [ ] [ ] xem sách hay viết TTDT [ ] cho ta nhìn tổng quát phát triển gần TTDT Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng - Trang 15 [...]... hệ, các cá thể đã “tốt lên” rất nhiều Thuật toán di truyền khác với các thuật toán tối ưu khác ở các điểm sau: • TTDT chỉ sử dụng hàm thích để hướng dẫn sự tìm kiếm, hàm thích nghi chỉ cần là hàm thực dương Ngoài ra, nó không đòi hỏi không gian tìm kiếm phải có cấu trúc nào cả • TTDT làm việc trên các nhiễm sắc thể là mã của các cá thể cần tìm • TTDT tìm kiếm từ một quần thể gồm nhiều cá thể • Các. .. hiện các bước sau đây: • Trước hết ta cần mã hóa các đối tượng cần tìm bởi một cấu trúc dữ liệu nào đó Chẳng hạn, trong các TTDT cổ điển, như trong ví dụ trên, ta sử dụng mã nhị phân Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh Têng Ch¬ng 3 - Trang 14 • Thiết kế hàm thích nghi Trong các bài toán tối ưu, hàm thích nghi được xác định dựa vào hàm mục tiêu • Trên cơ sở cấu trúc của nhiễm sắc thể, thiết kế các. .. thích nghi của các cá thể tốt nhất trong các thế hệ kế tiếp nhau khác nhau không đáng kể Khi thuật toán dừng, cá thể tốt nhất trong thế hệ cuối cùng được chọn làm nghiệm cần tìm Bây giờ ta sẽ xét chi tiết hơn toán tử chọn lọc và các toán tử di truyền (lai ghép, đột biến) trong các TTDT cổ điển 1 Chọn lọc: Việc chọn lọc các cá thể từ một quần thể dựa trên độ thích nghi của mỗi cá thể Các cá thể có độ... từ thế hệ cũ P(t - 1) cũng có nhiều cách chọn lựa Người ta gọi chung các thuật toán này là thuật toán tiến hóa (evolutionary algorithms) hoặc chương trình tiến hóa (evolution program) Thuật toán tiến hóa đã được áp dụng trong các vấn đề tối ưu và học máy Để hiểu biết sâu sắc hơn về thuật toán tiến hoá, bạn đọc có thể tìm đọc [ ], [ ] và [ ] [ ] và [ ] được xem là các sách hay nhất viết về TTDT [ ]... TTDT là để chỉ TTDT cổ điển, khi mà cấu trúc của các nhiễm sắc thể là các chuỗi nhị phân với các toán tử di truyền đã được mô tả ở trên Song trong nhiều vấn đề thực tế, thuận tiện hơn, ta có thể biểu diễn nhiễm sắc thể bởi các cấu trúc khác, chẳng hạn vectơ thực, mảng hai chiều, cây, Tương ứng với cấu trúc của nhiễm sắc thể, có thể có nhiều cách xác định các toán tử di truyền Quá trình sinh ra thế hệ... tên chỉ vào bánh xe Quay bánh xe, khi bánh xe dừng, mũi tên chỉ vào phần nào, cá thể ứng với phần đó được chọn Rõ ràng là với cách chọn này, các cá thể có thể có độ thích nghi càng cao càng có khả năng được chọn Các cá thể có độ thích nghi cao có thể có một hay nhiều bản sao, các cá thể có độ thích nghi thấp có thể không có mặt ở thế hệ sau (nó bị chết đi) 2 Lai ghép: Trên cá thể được chọn lọc, ta tíến... Với mỗi cá thể ta thực hiện hai bước sau: • Sinh ra số thực ngẫu nhiên r trong đoạn [0, 1]; • Nếu r < pc thì cá thể đó được chọn để lai ghép Từ các cá thể được chọn để lai ghép, người ta cặp đôi chúng một cách ngẫu nhiên Trong trường hợp các nhiễm sắc thể là các chuỗi nhị phân có độ dài cố định m, ta có thể thực hiện lai ghép như sau: Với mỗi cặp, sinh ra một số nguyên ngẫu nhiên p trên đoạn [0, m -1],... truyền (lai ghép, đột biến) cho phù hợp với các vấn đề cần giải quyết • Xác định cỡ của quần thể và khởi tạo quần thể ban đầu • Xác định xác suất lai ghép pc và xác suất đột biến Xác suất đột biến cần là xác suất thấp Người ta (Goldberg, 1989) khuyên rằng nên chọn xác suất lai ghép là 0,6 và xác suất đột biến là 0,03 Tuy nhiên cần qua thử nghiệm để tìm ra các xác suất thích hợp cho vấn đề cần giải quyết... đó : a'i = ai nếu pi ≥ pm 1 - ai nếu pi < pm Sau quá trình chọn lọc, lai ghép, đột biến, một thế hệ mới được sinh ra Công việc còn lại của thuật toán di truyền bây giờ chỉ là lặp lại các bước trên Ví dụ: Xét bài toán tìm max của hàm f(x) = x 2 với x là số nguyên trên đoạn [0,31] Để sử dụng TTDT, ta mã hoá mỗi số nguyên x trong đoạn [0,31] bởi một số nhị phân độ dài 5, chẳng hạn, chuỗi 11000 là mã của... thực hiện theo kỹ thuật quay bánh xe Giả sử thế hệ hiện thời P(t) gồm có n cá thể {x1, ,xn} Số n được gọi là cỡ của quần thể Với mỗi cá thể xi, ta tính độ thích nghi của nó f(x i) Tính tổng các độ thích nghi của tất cả các cá thể trong quần thể: n F = ∑ f(xi) i =1 Mỗi lần chọn lọc, ta thực hiện hai bước sau: • Sinh ra một số thực ngẫu nhiên q trong khoảng (0, F); Gi¸o tr×nh TrÝ TuÖ Nh©n T¹o - §inh M¹nh ... áp dụng được, tìm kiếm thường lớn, việc tìm tất đường có đòi hỏi nhiều thời gian Do có cách tăng hiệu tìm kiếm sử dụng hàm đánh giá đề hướng dẫn sử tìm kiếm Các phương pháp tìm kiếm đường ngắn... thuật toán tối ưu, tức nghiệm mà tìm nghiệm tối ưu Ngoài ra, độ dài cung không nhỏ số dương δ thuật toán A* thuật toán đầy đủ theo nghĩa rằng, dừng tìm nghiệm Chúng ta chứng minh tính tối ưu thuật... thuật toán hiệu số thuật toán đầy đủ tối ưu cho vấn đề tìm kiếm đường ngắn 3.1.2 Thuật toán tìm kiếm nhánh-và-cận Thuật toán nhánh_và_cận thuật toán sử dụng tìm kiếm leo đồi với hàm đánh giá f(u)

Ngày đăng: 08/12/2016, 15:35

Từ khóa liên quan

Mục lục

  • 3.1 Tìm đường đi ngắn nhất.

    • 3.1.1 Thuật toán A*

    • 3.1.2 Thuật toán tìm kiếm nhánh-và-cận.

    • 3.2 Tìm đối tượng tốt nhất

      • 3.2.1 Tìm kiếm leo đồi

      • 3.2.2 Tìm kiếm gradient

      • 3.2.3 Tìm kiếm mô phỏng luyện kim:

      • 3.3 Tìm kiếm mô phỏng sự tiến hóa. Thuật toán di truyền

Tài liệu cùng người dùng

Tài liệu liên quan