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

slike thuyết trình báo cáo môn trí tuê nhân tạo thuật toán tìm kiếm a giải bài toán puzzle(xây dựng trò chơi ghép hình )

20 1,3K 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 20
Dung lượng 520,22 KB

Nội dung

Tìm hiểu giải thuật A* , ứng dụng giải bài toán 8-puzzle... Ở trạng thái bắt đầu, các ô được sắp đặt ngẫu nhiên, và nhiệm vụ của người giải là tìm cách di chuyển các ô sao cho các con số

Trang 1

Tìm hiểu giải thuật A* , ứng dụng

giải bài toán 8-puzzle

Trang 2

Nội dung

Giao diện

Sử dụng A* vào bài toán Giải thuật A*

Phân tích bài toán

Giới thiệu bài toán N-puzlle

Trang 3

Bài toán 8-puzzle

 Bài toán gồm một bảng 3×3 với các ô số được đánh từ 1->8 và một ô trống Ở trạng thái bắt đầu, các ô được sắp đặt ngẫu nhiên, và nhiệm vụ của người giải là tìm cách di chuyển các ô sao cho các con số về đúng thứ tự, bài toán đặt ra ở đây là tìm phương án tối ưu sao cho số lần di chuyển là ít nhất

Trạng thái đầu Trạng thái đích

Trang 4

Bài toán 8-puzzle

 Điều đầu tiên cần phải quan tâm để giải bài toán này là xác định trạng thái đích Trạng thái đích được xác định dựa trên trạng thái đầu Vậy trạng thái đích được xác định như thế nào

A

C

B

với trạng thái đầu như trên thì có thể có 3 trạng thái đích có thể xảy ra

Trang 5

Company Logo

Phân tích

 Cho trạng thái đầu tiên như hình dưới, duyệt qua từng ô theo thứ tự từ

trái qua và từ trên xuống, ở mỗi ô số duyệt đến, bạn hãy đếm xem có bao nhiêu ô số có giá trị bé hơn nó :

N= 0+ 3 +4+ 0 +0 +1 +0 +0 = 8

 Với số N này ta chỉ cần biết 1 thông tin là nó có chia hết cho 2 hay không (lẻ hay chẵn) Nếu N là số chẵn thì chúng ta chỉ có thể có đáp án là trạng thái đích là A hoặc B, ngược lại là trạng thái C

Trang 6

Tổng quan về A*

 Trong khoa học máy tính, A* (đọc là A sao) là một thuật toán tìm kiếm trong đồ thị

 Thuật toán này tìm một đường đi từ một nút khởi đầu tới một nút đích cho trước (hoặc tới một nút thỏa mãn một điều kiện đích

 Thuật toán này sử dụng một "đánh giá heuristic" để xếp loại từng nút theo ước lượng về tuyến đường tốt nhất đi qua nút

đó Thuật toán này duyệt các nút theo thứ tự của đánh giá

heuristic này Do đó, thuật toán A* là một ví dụ của tìm kiếm theo lựa chọn tốt nhất (best-first search)

Trang 7

Tổng quan về A*

 Sử dụng hàm đánh giá f(n) = g(n) + h(n) trong đó :

 g(n) = chi phí từ nút gốc cho đến nút hiện tại n

 h(n) = chi phí ước lượng từ nút hiện tại n tới đích

 f(n) = chi phí tổng thể ước lượng của đường đi qua nút hiện tại n đến đích

 Giải thuat A với hàm heuristic h(n) luôn luôn giá trị thực đi

Trang 8

Tổng quan về A*

Trang 15

 Tính hoàn chỉnh?

Có (trừ khi có rất nhiều các nút có chi phí f ≤ f(G) )

của độ dài đường đi của lời giải

 Tính tối ưu?

 Có

Trang 16

Sử dụng A* vào bài toán

Thuật toán A*:

 Gọi G(n) là số bước đã di chuyển ô trống

 H(n) là hàm heuristic, ước tính số hao tổn để tới trạng thái đích, tính bằng tổng các quãng đường của các ô ở vị trí sai

để về tới vị trí đúng

F(n)=G(n)+H(n)

? Tính H(n)

Trang 17

Sử dụng A* vào bài toán

Trong bảng số 3×3 trên, để di chuyển ô số 5 vào đúng vị trí ta cần di chuyển nó 1 lần, để di chuyển ô số 7 về đúng vị trí ta cần cần 4 lần (qua 4

ô khác)

| row1 - row2| + |column1 – column2|

Với :

RowIndex = Index / m

ColIndex = Index % m

Trang 18

Tổng quan về A*

 Ví dụ ô số 7 có thứ tự trong bảng là 6 (tính từ 0 với m là cạnh) ta có row = 6 / 3 = 2, col = 6 % 3 = 0

 h = 0+1+4+2+2+0+1+1+1 = 12

Trang 19

Không gian trạng thái*

Trang 20

Cảm ơn các bạn đã lắng nghe!

Ngày đăng: 23/10/2014, 23:50

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w