1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm kiếm tối ưu – Tìm kiếm có đối thủ

30 728 0

Đ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 30
Dung lượng 320,5 KB

Nội dung

Lec Tìm kiếm tối ưu – Tìm kiếm có đối thủ Lec p.1 Nội Dung  Các kỹ thuật tìm đường ngắn – Thuật toán A* – Thuật toán nhánh-cận  Các kỹ thuật tìm kiếm đối tượng tố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 hoá: thuật toán di truyền Lec p.2 Tìm đường ngắn Trạng thái u gọi trạng thái đạt tới có đường từ trạng thái ban đầu u0 tới u  Hàm đánh giá: – Độ dài đường ngắn từ u0 tới u: g(u) • Nếu u trạng thái đích đường từ u0 tới u gọi đường phần • Nếu u trạng thái đích đường từ u0 tới u gọi đường đầy đủ – Độ dài đường ngắn từ u tới trạng thái đích: h(u) hàm đánh giá: f(u) = g(u) + h(u) Lec p.3 Cài Đặt Hàm Đánh Giá (Evaluation Function) Xét trò chơi 8-puzzle Cho trạng thái n giá trị f(n): f(n) = g(n) + h(n) g(n) = khoảng cách thực từ n đến trạng thái bắt đầu h(n) = hàm heuristic đánh giá khoảng cách từ trạng thái n đến start mục tiêu g(n) = 5 goal h(n): số lượng vị trí sai g(n) = f(n) = 7 8 Lec p.4 Thuật toán A* Tìm kiếm tốt + hàm đánh giá f(u) Procedure A*; Begin Khởi tạo danh sách L chứa trạng thái đầ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 kết thúc 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; End;  Lec p.5 Ví dụ: thuật toán A* 15 C 14 A 20 13 F 6D 10H E 12 G I K B Đồ thị không gian trạng thái với hàm đánh giá A 14 F 24 C 21 E 13 D 25H 27 E 19 17 K I 18 21 B K 25 B Cây tìm kiếm theo thuật toán A* Lec p.6 Nhận xét thuật toán A*  Nếu h(u) đánh giá thấp (đặc biệt h(u)=0 với trạng thái u), A* thuật toán tối ưu, tức nghiệm tìm tối ưu  Nếu độ dài cung không nhỏ số dương δ A* thuật toán đầy đủ, tức dừng tìm nghiệm Lec p.7 Thuật toán tìm kiếm nhánh-cận Tìm kiếm leo đồi + hàm đánh giá f(u) Procedure Branch-and-Bound; Begin Khởi tạo danh sách L chứa trạng thái đầu; Gán giá trị ban đầu cho cost; 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 kết thúc then if g(u)cost 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 dần hàm f; 2.7 Chuyển danh sách L1vào đầu danh sách L cho L1 đầu danh sách L; End;  Lec p.8 Ví dụ: thuật toán nhánh-cận 15 C 14 A 20 13 A 14 F 6D H E 12 G 10 I K B Đồ thị không gian trạng thái với hàm đánh giá 17 K 21 B F 21 E 13 D E 19 27 24 C 25H I 18 B K 25 Cây tìm kiếm nhánh-cận Lec p.9 Nhận xét  Thuật toán nhánh-cận thuật toán đầy đủ tối ưu h(u) hàm đánh giá thấp độ dài cung không nhỏ số dương δ Lec p.10 Tìm kiếm có đối thủ  Bài toán tìm kiếm có đối thủ (chơi cờ) biểu diễn không gian trạng thái: – Trạng thái ban đầu: xếp quân cờ hai bên lúc bắt đầu chơi – Các toán tử: nước hợp lệ – Các trạng thái kết thúc: tình mà chơi dừng – Hàm kết cuộc: ứng trạng thái kết thúc với giá trị Lec p.16 Tìm kiếm có đối thủ Cây trò chơi – Gốc ứng với trạng thái đầu – Đỉnh ứng với trạng thái mà Trắng (Đen) đưa nước gọi đỉnh Trắng (Đen) – Các đỉnh đỉnh Trắng (Đen) biểu diễn trạng thái u tất đỉnh biểu diễn trạng thái v, v nhận từ u Trắng (Đen) thực nước hợp lệ – Lá ứng với trạng thái kết thúc Lec p.17 Tìm kiếm có đối thủ Ví dụ: Cây trò chơi Đen Trắng Trò chơi Dodgem Đen Cây trò chơi Dodgem với Đen trước Lec p.18 Heuristic trò chơi có đối thủ Chiến lược min-max – Hai đấu thủ trò chơi gọi MIN MAX – Mỗi nút có giá trị: • MAX thắng, • MIN thắng – Minimax truyền giá trị lên cao dần đồ thị, qua nút cha mẹ theo luật sau: • Nếu trạng thái cha mẹ MAX, gán cho giá trị lớn có trạng thái • Nếu trạng thái cha mẹ MIN, gán cho giá trị nhỏ có trạng thái Lec p.19 Minimax với độ sâu lớp cố định  Minimax KGTT giả định  Các nút gán giá trị heuristic  Còn giá trị nút giá trị nhận dựa giải thuật Minimax Lec p.20 Giải thuật minimax Function MaxVal(u); begin if u đỉnh kết thúc then MinVal(u) ← f(u) else MinVal(u) ← min{MaxVal(v) | v đỉnh u} end; Function MinVal(u); begin if u đỉnh kết thúc then MaxVal(u) ← f(u) else MaxVal(u) ← max{MinVal(v) | v đỉnh u} end; Procedure Minimax(u, v); begin val ←-∝; for w đỉnh u if val(u)

Ngày đăng: 22/12/2016, 12:50

TỪ KHÓA LIÊN QUAN

w