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,57 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 NH P MƠN TRÍ TU NHÂN T O (H c li u tham kh 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 Mã s sinh viên Giáo viên : Lê ình C ng : 20080370 : Ph m V n H i 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 toá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 toá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 tố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 tố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 tố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 toán A* Yê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 ó M/i tr ng thái c a b ng s m%t hoán v0 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 g2n s vào hình nh !u, c s2p 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 t, trái qua ph i, t, xu ng dư i) ơn gi n cách ti p c n toán, ta gi 0nh ch3 ô tr ng di chuy n b ng di chuy n n v0 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 b2t !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 toán Thu t toá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 $ th0 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 toá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 tố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 ch3 xây d ng n ư#ng có v4 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 k5 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 x3 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, ngh6a A* s& ln tìm th y ư#ng i ng2n 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 0nh 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á tr0 b n g, h, f ph8n á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 ch3 ch n0 r/ng 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 r/ng: tố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 m/i 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 m/i tr ng thái c a b ng s m%t hoán v0 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 v0 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 v0 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 b2t !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 Ngoài ra, game cịn cài t thêm thu t tố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 M/i l!n l p c a thu t toán 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ư9ng cutoff nút ó s& b0 c2t gi m, trình tìm ki m backtracks trư c ti p t c Các ngư9ng chi phí c kh.i t o c lư ng heuristic c a tr ng thái ban !u, m/i 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 c2t t3a 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ư9ng 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 d0ch chuy n (:,;,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 b2t !u tr ng thái hình trên: Thu t toá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) ch3 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 ch3nh(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 ch3nh(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 ch3nh(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 nh2c 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 chu8n 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 ... 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... thu t tốn A* Yê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... puzzle, Boss puzzle Bài tố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 toán Ph!n m m N-Puzzle