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

Học liệu tham khảo bài toán xếp ô chữ

23 6 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,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

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

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

TÀI LIỆU LIÊN QUAN

w