Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
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