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

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

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

TỪ KHÓA LIÊN QUAN

Mục lục

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

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

    Cài Đặt Hàm Đánh Giá (Evaluation Function)

    Ví dụ: thuật toán A*

    Nhận xét về thuật toán A*

    Thuật toán tìm kiếm nhánh-cận

    Ví dụ: thuật toán nhánh-cận

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

    Tìm đối tượng tốt nhất Tìm kiếm leo đồi

    Thuật toán di truyền

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

TÀI LIỆU LIÊN QUAN

w