1. Trang chủ
  2. » Luận Văn - Báo Cáo

thuật toán A ứng dụng trong bài toán ghép tranh- bài tập lớn môn trí tuệ nhân tạo

23 20 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 23
Dung lượng 589,47 KB

Nội dung

TR NG I H C BÁCH KHOA HÀ N I VI N CÔNG NGH THÔNG TIN VÀ TRUY N THÔNG - BÀI T P L N NH P MƠN TRÍ TU NHÂN T O tài: THU T TOÁN A* NG D NG TRONG BÀI TOÁN GHÉP TRANH Sinh viên th c hi n : Lê ình C ng (Các thành viên khác) : …………………… Mã s sinh viên : 20080370 Nhóm: HÀ N I 04-2013 M CL C L i nói u I- BÀI TOÁN GHÉP TRANH II- THU T TOÁN A* 1- Gi i thi u thu t toán 2- Mơ t thu t tốn 3- Cài III- CÀI t thu t toán T BÀI TOÁN Tr ng thái xu t phát Cài Hàm c lư ng heuristic 12 t A* 3.1 Các hàm c lư ng heuristic 12 3.2 Ví d so sánh hàm heuristic 14 III- K T QU 15 1- Giao di n 15 2- So sánh 16 3- Nh n xét 21 IV- K T LU N 22 Tài li u tham kh o 23 PHI U GIAO NHI M V BÀI T P L N Error! Bookmark not defined L i nói u ây tài li u dùng bi u di n b n thi t k gi i quy t tốn “Trị chơi ghép tranh” s d ng thu t tốn A* tơi thi t k l p trình Tài li u giúp ta có nhìn tồn v n v ch c n ng c!a ph"n m m c#ng ng gi i quy t tốn Do th$i gian có h n nên % án d ng thu t toán A* khơng th t i ưu c tồn b& khơng gian tr ng thái tốn Tuy nhiên, nhóm s' nghiên c u hoàn thi n th$i gian s m nh t Nhóm th c hi n tài nh(m m c ích xây d ng m&t h th ng gi i quy t m&t toán th c t d a chi n lư c tìm ki m heuristic xây d ng m&t trò chơi ng d ng gi i trí Trong q trình th c hi n tài khơng tránh kh)i nh*ng sai sót, nhóm tơi mong s' nh n c s góp ý ánh giá c!a th"y Xin chân thành c m n ! I- BÀI TOÁN GHÉP TRANH Game ghép tranh(N-Puzzle) m&t trị chơi hay trí tu , c bi t n v i nhi u phiên b n tên g+i khác như: 8-puzzle, 15-puzzle, Gem c, i n cho mơ hình thu t toán puzzle, Boss puzzle Bài toán N-puzzle v n liên quan n trí tu nhân t o Bài tốn t ph i tìm ư$ng i t- tr ng thái gi i hi n t i t i tr ng thái ích Và cho t i v.n chưa có thu t tốn t i ưu tốn Ph"n m m N-Puzzle m&t chương trình xây d ng trò chơi gi i quy t toán Ph"n m m c vi t n n Java, s d ng giao di n % h+a mơ ph)ng trị chơi thu t tốn A* tìm ư$ng i Ngư$i dùng có th s d ng chu&t/bàn phím chơi v i kích thư c khác v i hình nh khác ho c có th s d ng ch c n ng tìm l$i gi i nh$ thu t tốn A* u c"u xây d ng b ng ô vuông n hàng, n c&t B ng g%m ô tr ng n2-1 ô ch a s ph m vi [1, n2-1] Xu t phát t- m&t cách x p b t kì, di ưa v tr ng chuy n ô tr ng lên trên, xu ng dư i, sang ph i, sang trái thái ích S d ng chu&t hay phím ch c n ng di chuy n tr ng Chương trình có ch c n ng t &ng chơi / b t kì tr ng thái ó M0i tr ng thái c!a b ng s m&t hoán v1 c!a n2 ph"n t ây ta có th m/ r&ng b(ng vi c thêm hình nh g i ý cho ngư$i chơi tr ng thái ban vào game ho c g3n s vào hình nh "u, c s3p x p ng.u nhiên, nhi m v c!a ngư$i chơi tìm c cách ưa chúng v tr ng thái ích(ơ "u tr ng, khác theo th t t ng d"n ttrái qua ph i, t- xu ng dư i) ơn gi n cách ti p c n toán, ta gi 1nh ch4 ô tr ng di chuy n b ng di chuy n n v1 trí khác Như v y t i m&t tr ng thái b t kì có t i a cách di chuy n n tr ng thái khác(trái, ph i, lên, xu ng) 1.1.1: Tr ng thái b3t "u ích Bư c di chuy n c!a ô tr ng: 1.1.2: Bư c di chuy n c!a ô tr ng II- THU T TOÁN A* 1- Gi i thi u thu t tốn Thu t tốn A* c mơ t l"n "u tiên n m 1986 b/i Peter Hart, Nils Nilson Bertram Raphael Trong báo cáo c!a h+, thu t toán c g+i thu t toán A, s d ng thu t toán v i m&t hàm ánh giá heuristic thích h p s' thu c ho t &ng t i ưu, ó mà có tên A* Trong khoa h+c máy tính, A* m&t thu t tốn tìm ki m % th1 Thu t tốn tìm m&t ư$ng i 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 i u ki n ích) Thu t tốn s d ng m&t ánh giá heuristic x p lo i t-ng nút theo c lư ng v n ư$ng t t nh t i qua nút ó Thu t toán t nút theo th t c!a ánh giá heuristic Do ó, thu t tốn A* m&t ví d c!a tìm ki m theo l a ch+n t t nh t(best-first search) gi i A* Xét tốn tìm ư$ng – tốn mà A* thư$ng c dùng xây d ng t ng d"n t t c n ư$ng t- i m xu t phát cho t i tìm th y m&t ư$ng i ch m t i ích Tuy nhiên, c#ng t t c thu t tốn tìm ki m có thơng tin ch4 xây d ng n ư$ng có v5 d"n v ích bi t nh*ng n ư$ng có kh n ng s' d.n t i ích, A* s d ng m&t hàm ánh giá heuristic v kho ng cách t- i m b t k6 cho t i ích Trong trư$ng h p tìm ư$ng i, ánh giá có th kho ng cách ư$ng chim bay m&t ánh giá x y x4 thư$ng dùng cho kho ng cách c!a ư$ng giao thông i m khác bi t c!a A* i v i tìm ki m theo l a ch+n t t nh t cịn tính n kho ng cách ã i qua i u ó làm cho A* "y ! t i ưu, ngh7a A* s' ln tìm th y ư$ng i ng3n nh t n u t%n t i m&t ư$ng i th A* không m b o s' ch y nhanh thu t tốn tìm ki m ơn gi n Trong m&t môi trư$ng d ng mê cung, cách nh t n ích có th trư c h t ph i i v phía xa ích cu i m i quay tr/ l i Trong trư$ng h p ó, vi c th nút theo th t “g"n ích c th trư c” có th gây t n th$i gian 2- Mơ t thu t tốn Gi s n m&t tr ng thái t t i(có ư$ng i t- tr ng thái ban "u n0 t i n) Ta xác 1nh hàm ánh giá: f(n) = g(n) + h(n) • g(n) chi phí t- nút g c n0 t i 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 ích n M&t c lư ng heuristic h(n) c xem ch p nh n c n u v i m+i nút n: h(n) h*(n) Trong ó h*(n) chi phí th t(th c t ) 3- Cài i t- nút n n ích t thu t toán OPEN(FRINGE): t p ch a tr ng thái ã c sinh chưa c xét n OPEN m&t hàng i ưu tiên mà ó ph"n t có & ưu tiên cao nh t ph"n t t t nh t CLOSE: t p ch a tr ng thái ã c xét n Chúng ta c"n lưu tr* nh*ng tr ng thái b& nh phòng trư$ng h p có m&t tr ng thái m i c t o l i trùng v i m&t tr ng thái mà ta ã xét n trư c ó Khi xét n m&t tr ng thái ni OPEN bên c nh vi c lưu tr* giá tr1 b n g, h, f ph9n ánh & t t c!a tr ng thái ó, A* cịn lưu tr* thêm hai thơng s sau: • Tr ng thái cha c!a tr ng thái ni (ký hi u Cha(ni)): cho bi t tr ng thái d.n n tr ng thái ni • Danh sách tr ng thái ti p theo c!a ni: danh sách lưu tr* tr ng thái k ti p nk c!a ni cho chi phí n nk thơng qua ni t- tr ng thái ban "u th p nh t Th c ch t danh sách có th c tính t- thu&c tính Cha c!a tr ng thái ã c lưu tr* Tuy nhiên vi c tính tốn có th m t nhi u th$i gian(khi t p OPEN,CLOSE c m/ r&ng) nên ngư$i ta thư$ng lưu tr* m&t danh sách riêng Thu t toán A*: function Astar(n0, ngoal) t OPEN ch4 ch n0 r0ng L p l i bư c sau cho t g(n0) = h(n0) = f(n0) = t CLOSE t p n g p i u ki n d-ng 2.a N u OPEN r0ng: toán vơ nghi m, 2.b Ngư c l i, ch+n ni OPEN cho f(ni) cho f(ni)min 2.b.1 L y ni kh)i OPEN ưa ni vào CLOSE 2.b.2 N u ni ích ngoal thơng báo l$i gi i ni 2.b.3 N u ni khơng ph i ích T o danh sách t t c tr ng thái k ti p c!a ni G+i m&t tr ng thái nk V i m0i nk, làm bư c sau: 2.b.3.1 Tính g(nk) = g(ni) + cost(ni, nk); h(nk); f(nk) = g(nk) + h(nk) 2.b.3.2 t Cha(nk) = ni 2.b.3.3 N u nk chưa xu t hi n OPEN CLOSE thêm nk vào OPEN III- CÀI T BÀI TOÁN Tr ng thái xu t phát R t d th y m0i tr ng thái c!a b ng s m&t hoán v1 c!a n2 ph"n t ( v i n kích thư c c nh), v y không gian tr ng thái c!a n2!, 8-puzzle 9! = 362880(n = 3) 15-puzzle 16! = 20922789888000(n = 4),… Khi m t ng lên ơn v1 khơng gian tr ng thái s' t ng lên r t nhanh, i u n cho vi c gi i quy t v i phiên b n n > c áp d ng t o m&t tr ng thái ban "u c!a trò chơi ta dùng m ng chi u sinh ng.u nhiên m&t m ng tr ng thái hoán v1 c!a n2 ph"n t o n (0; n2-1) V i vi c sinh ng.u nhiên s' t o nh*ng tr ng thái không h p l (tr ng thái khơng d.n t i tr ng thái ích c!a tốn), ta c"n ph i ki m tra xem tr ng thái có d.n t i ích c hay không trư c kh/i t o giao di n Ngồi ta có th tr&n ng.u nhiên tr ng thái ích n m&t tr ng thái b t kì 11 10 12 14 13 15 1.1.3: Tr ng thái b3t "u 15-puzzle 8-puzzle Cài t A* Vi c cài ã nêu: t thu t toán A* tốn N-Puzzle c#ng gi ng ph"n • FRINGE t p ch a tr ng thái ã c sinh chưa c xét n • M t p tr ng thái ti p theo c!a tr ng thái ni • KQ t p tr ng thái k t qu , lưu tr ng thái t- tr ng thái hi n t i t i ích "u vào: tr ng thái hi n t i, tr ng thái ích "u ra: t p tr ng thái t- tr ng thái hi n t i t i tr ng thái ích i u ki n d-ng thu t tốn: tìm th y k t qu ho c gi i h n th$i gian ho c ngư$i dùng cho phép d-ng Trong tốn ta có th c i ti n b(ng vi c b) t p CLOSE Ta th y bư c 2.b.3 / sau tìm tr ng thái c!a tr ng thái ni Khi ó ni có t i a tr ng thái con, tr ng thái c!a ni có tr ng thái trùng v i tr ng thái cha c!a ni Vì v y ta có th lo i b) tr ng thái tránh vi c xét l p Khi lo i b) tr ng thái s' không t%n t i m&t tr ng thái trùng v i m&t tr ng thái t p CLOSE n*a Vi c lo i b) s' tránh c vi c ki m tra / bư c 2.b.3.3 gây t n r t nhi u th$i gian Ngồi ra, game cịn cài t thêm thu t toán A* sâu d"n(IDA*) m&t bi n th c!a thu t tốn tìm ki m A* IDA* giúp lo i b) h n ch b& nh c!a A* mà ko hy sinh gi i pháp t i ưu M0i l"n l p c!a thu t tốn q trình tìm ki m theo chi u sâu, f(n) = g(n) + h(n), t o nút m i Khi m&t nút c t o có chi phí vư t q m&t ngư:ng cutoff nút ó s' b1 c3t gi m, trình tìm ki m backtracks trư c ti p t c Các ngư:ng chi phí c kh/i t o c lư ng heuristic c!a tr ng thái ban "u, m0i l"n l p k ti p làm t ng t,ng chi phí c!a nút có chi phí th p ã c c3t t4a trư c ó Thu t toán ch m d t tr ng thái ích có t,ng chi phí khơng vư t q ngư:ng hi n t i 10 Minh h a A* 1.1.4: Minh h+a A* 11 Hàm cl 3.1 Các hàm ng heuristic cl ng heuristic 3.1.1 heuristic1 = t,ng kho ng cách d1ch chuy n (;,) ng3n nh t d1ch chuy n sai v v1 trí úng c!a nó(kho ng cách Manhattan) 1.1.5: Minh h a Gi s : + row , col t+a &(dòng c&t) c!a / v1 trí úng + rows, cols t+a &(dịng c&t) c!a / v1 trí sai + xd = |cols – col | + yd = |rows – row | d = xd + yd kho ng cách ng3n nh t di chuy n v úng v1 trí h1 = d Trong b ng s 3x3 trên, di chuy n ô s v v1 trí úng c"n l"n, di chuy n s v v1 trí úng c"n l"n(qua ô khác) thu c k t qu ta làm phép tính ơn gi n: l y t,ng kho ng cách c!a dòng c&t gi*a hai v1 trí(v1 trí hi n t i v1 trí úng) - L y t+a & c!a s / v1 trí hi n t i ta có: rows = 1, cols = - L y t+a & s / v1 trí úng : row = 1/3 = 0; cols = 1%3 = - V y kho ng cách ng3n nh t di chuy n s v v1 trí úng: d1 = |rows – row | + |cols – col | = |1 – 0| + |0 – 1| = Tương t , tính t t c kho ng cách d c!a sai cịn l i ta c 12 h1 = 1+0+2+1+1+0+1+1 = 3.1.2 heuristic2 = t,ng kho ng cách d1ch chuy n (;,) ng3n nh t d1ch chuy n sai v v1 trí úng c!a c&ng thêm ch4 s ph t c p hàng xóm v i ang n(m ngư c v1 trí c!a 1.1.6a: ích 1.1.6b: Minh h a h2 = d + a Trong ó a ch s ph t c p hàng xóm ang n m ng c v trí C p (2,1) mu n v úng v1 trí c"n d1ch chuy n nh t bư c(không ý t i ô khác), bư c ã c tính ?d nên a = Vì v y 1.1.6b có c p hàng xóm n(m ngư c v1 trí nên / ây a = 2+2 = 3.1.3 heuristic3 7 10 11 10 11 12 14 12 13 14 15 13 1.1.7a: ích 15 1.1.7b: Minh h a Xét n(m sai v1 trí: d = |rows – row |2 + |cols – col |2 t d3 = ?d 13 h3 = d3 – [0.15*d3] + a 3.1.4 heuristic4 Xét ô sai n(m sai v1 trí: d = |rows – row |2 + |cols – col |2 t d4 = ?d h4 = d4 + a 3.2 Ví d so sánh hàm heuristic Xét tr ng thái hình + heuristic1 = + + + + + + + = 14 + heuristic2 = heuristic1 + = 16 (a = 2) + d34 = + + + + + + + = 22 + heuristic3 = d34 – [0.15*d34] + = 21 + heuristic4 = d34 + = 24 14 III- K T QU 1- Giao di n Các l a ch+n Khung so sánh k t qu Khung hình 15 2- So sánh V i tr ng thái b3t "u tr ng thái / hình trên: Thu t tốn A* + heuristic 1: S bư c th c hi n: 37 S nút ã xét: 36819 T,ng s nút cây: 73742 Th$i gian gi i quy t: 38598ms 16 + heuristic2 S bư c th c hi n: 37 S nút ã xét: 25950 T,ng s nút cây: 52228 Th$i gian gi i quy t: 19370ms 17 + heuristic3: S bư c th c hi n: 37 S nút ã xét: 400 T,ng s nút cây: 809 Th$i gian gi i quy t: 17ms 18 + heuristic4 S bư c th c hi n: 41 S nút ã xét: 475 T,ng s nút cây: 939 Th$i gian gi i quy t: 20ms 19 Thu t toán IDA* + heuristic1 S bư c th c hi n: 37 S nút ã xét: 77849 T,ng s nút cây: 156896 Th$i gian gi i quy t: 9760ms + heuristic2 S bư c th c hi n: 37 S nút ã xét: 48304 T,ng s nút cây: 97311 Th$i gian gi i quy t: 4081ms + heuristic3 S bư c th c hi n: 37 S nút ã xét: 404 T,ng s nút cây: 811 Th$i gian gi i quy t: 4ms + heuristic4 S bư c th c hi n: 43 S nút ã xét: 4834 T,ng s nút cây: 9622 Th$i gian gi i quy t: 41ms 20 3- Nh n xét - Ta th y heuristic2 = heuristic1 + a, nên h1(n) h2(n) h*(n) Hàm h2(n) giúp s nút t th$i gian t nhanh h1(n) Vì v y h2(n) hi u qu h1(n) Hai hàm heuristic1 heuristic2 t) hi u qu kích thư c tr ng thái c!a toán t ng lên, d.n n m t nhi u th$i gian t n b& nh Nguyên nhân c lư ng chi phí heuristic1 heuristic2 nh) so v i chi phí th c t h*(n) - Hàm heuristic3 m&t c lư ng chi phí t i ưu, không gian tr ng thái th$i t gi m i k so v i hai hàm c lư ng Nguyên nhân hàm c lư ng chi phí heuristic3 @ h*(n) (g"n v i chi phí th c t ) - Hàm heuristic4 c#ng hi u qu v m t b& nh th$i gian t, heuristic4 khơng ưa ư$ng i t i ưu heuristic4 c lư ng chi phí l n chi phí thưc t Có th nói, hàm c lư ng heuristic3 làm hàm hi u qu nh t - Tính t i ưu c!a thu t toán A* ph thu&c nhi u vào hàm c lư ng h(n) ch4 phù h p v i không gian tr ng thái nh) N u không gian tr ng thái h*u h n có gi i pháp tránh vi c xét l p l i tr ng thái gi i thu t A* hồn ch4nh(tìm c l$i gi i)- ko m b o tính t i ưu N u khơng có gi i pháp tránh vi c xét l p A* khơng hồn ch4nh(khơng m b o tìm c l$i gi i) N u khơng gian tr ng thái vơ h n gi i thu t A* khơng hồn ch4nh(khơng m b o tìm c l$i gi i) - IDA* hi u qu A* v m t b& nh th$i gian Nói chung IDA* nhanh A*, IDA* c#ng khơng m b o tính t i ưu - Trong tốn ta có th cân nh3c gi*a vi c tìm ư$ng i t i ưu s' m t nhi u th$i gian v i vi c tìm ư$ng i không t i ưu v i th$i gian nhanh - Hàm heuristic3 hi u qu không m/ r&ng c v i m+i không gian tr ng thái A* xét nút ph i tính tốn heuristic gây t n nhi u th$i gian Nhóm ang nghiên c u phương pháp tính trư c hàm heuristic th$i gian có h n nên chưa th hồn thành c 21 IV- K T LU N Thông qua vi c tìm hi u nghiên c u tài giúp chúng tơi có nhìn tồn di n vi c ng d ng trí tu nhân t o vào gi i quy t v n th c t ây tốn c, i n trí tu nhân t o cho thu t tốn mơ hình hóa liên quan n tìm ki m có tri th c b, sung tài ã c nhi u ngư$i nghiên c u gi i quy t, cho n v.n chưa có cách gi i quy t t i ưu cho t t c không gian tr ng thái trị chơi kích thư c t ng không gian tr ng thái s' t ng lên r t nhanh Hy v+ng nh*ng nghiên c u ánh giá c!a chúng tơi s' góp ph"n b, sung thêm m&t hư ng gi i quy t cho toán Do th$i gian có h n nên tài khơng tránh kh)i nh*ng sai sót, mong th"y góp ý, ánh giá giúp chúng tơi hồn thi n tài 22 Tài li u tham kh o - B& thư vi n chu9n c!a Sun MicroSystem http://www.oracle.com/us/technologies/java/index.html - Bài gi ng Nh p môn trí tu nhân t o – Nguy n Nh t Quang - http://en.wikipedia.org/wiki/A*_search_algorithm - http://en.wikipedia.org/wiki/Fifteen_puzzle - http://yinyangit.wordpress.com/2010/12/16/algorithm-phan-tich-vagi%E1%BA%A3i-bai-toan-n-puzzle/ Hà N i, ngày 15 tháng 04 n m 2013 Tác gi BTL Lê ình C ng 23 ... v1 trí sai + xd = |cols – col | + yd = |rows – row | d = xd + yd kho ng cách ng3n nh t di chuy n v úng v1 trí h1 = d Trong b ng s 3x3 trên, di chuy n ô s v v1 trí úng c"n l"n, di chuy n s v v1... trí: d = |rows – row |2 + |cols – col |2 t d3 = ?d 13 h3 = d3 – [0.15 *d3 ] + a 3.1.4 heuristic4 Xét ô sai n(m sai v1 trí: d = |rows – row |2 + |cols – col |2 t d4 = ?d h4 = d4 + a 3.2 Ví d so... ng thái d. n n tr ng thái ni • Danh sách tr ng thái ti p theo c!a ni: danh sách lưu tr* tr ng thái k ti p nk c!a ni cho chi phí n nk thơng qua ni t- tr ng thái ban "u th p nh t Th c ch t danh sách

Ngày đăng: 05/08/2022, 16:08

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w