Bài tập giải thuật a trí tuệ nhân tạo
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: 3 HÀ NI 04- MC LC I- BÀI TOÁN GHÉP TRANH Game ghép tranh(N-Puzzle) là m&t trò chơi khá hay và trí tu , nó ưc bit n vi nhiu phiên bn và tên g+i khác nhau như: 8-puzzle, 15-puzzle, Gem puzzle, Boss puzzle. Bài toán N-puzzle là vn c, in cho mô hình thut toán liên quan n trí tu nhân to. Bài toán t ra là phi tìm ư$ng i t- trng thái hi n ti ti trng thái ích. Và cho ti nay v chưa có thut toán t i ưu gii bài toán này. Ph"n mm N-Puzzle là m&t chương trình xây d ng trò chơi và gii quyt bài toán này. Ph"n mm ưc vit trên nn Java, s dng giao di n % h+a mô ph)ng trò chơi và thut toán A* tìm ư$ng i. Ngư$i dùng có th s dng chu&t/bàn phím chơi vi các kích thưc khác nhau và vi hình nh khác nhau hoc có th s dng chc n ng tìm l$i gii nh$ thut toán A*. Yêu c"u xây d ng bng ô vuông n hàng, n c&t. Bng g%m 1 ô tr ng và n 2 - 1 ô cha các s trong phm vi [1, n 2 - 1]. Xut phát t- m&t cách xp bt kì, di chuyn ô tr ng lên trên, xu ng dưi, sang phi, sang trái ưa các ô v trng thái ích. S dng chu&t hay phím chc n ng di chuyn ô tr ng. Chương trình có chc n ng t &ng chơi / bt kì trng thái nào ó. M 0 i trng thái c!a bng s là m&t hoán v 1 c!a n 2 ph"n t. 2 ây ta có th m/ r&ng b(ng vi c thêm hình nh vào game hoc g 3 n s vào hình nh gi ý cho ngư$i chơi. 2 trng thái ban "u, các ô ưc s 3 p xp ng nhiên, và nhi m v c!a ngư$i chơi là tìm ưc cách ưa chúng v trng thái ích(ô "u tr ng, các ô khác theo th t t ng d"n t- trái qua phi, t- trên xu ng dưi). ơn gin trong cách tip cn bài toán, ta gi 1nh ch 4 các ô tr ng di chuyn trong bng là di chuyn n các v 1 trí khác nhau. Như vy ti m&t trng thái bt kì có t i a 4 cách di chuyn n trng thái khác(trái, phi, lên, xu ng). 1.1: Trng thái b 3 t "u và ích Bưc di chuyn c!a ô tr ng: 1.1: Bưc di chuyn c!a ô tr ng II- THUT TOÁN A* 1- Gii thiu thut toán Thut toán A* ưc mô t l"n "u tiên n m 1986 b/i Peter Hart, Nils Nilson và Bertram Raphael. Trong báo cáo c!a h+, thut toán ưc g+i là thut 2- Mô t thut toán Gi s n là m&t trng thái t ti(có ư$ng i t- trng thái ban "u n 0 ti n). Ta xác 1nh hàm ánh giá: f(n) = g(n) + h(n)
Trong ó h*(n) là chi phí tht(th c t) i t- nút n n ích. 3- Cài t thut toán OPEN(FRINGE): tp cha các trng thái ã ưc sinh ra nhưng chưa ưc xét n. OPEN là m&t hàng i ưu tiên mà trong ó ph"n t có & ưu tiên cao nht là ph"n t t t nht. CLOSE: tp cha các trng thái ã ưc xét n. Chúng ta c"n lưu tr* nh*ng trng thái này trong b& nh phòng trư$ng hp khi có m&t trng thái mi ưc to ra li trùng vi m&t trng thái mà ta ã xét n trưc ó. Khi xét n m&t trng thái ni trong OPEN bên cnh vi c lưu tr* 3 giá tr 1 cơ bn g, h, f ph 9 n ánh & t t c!a trng thái ó, A* còn lưu tr* thêm hai thông s sau:
Thut toán A*: function Astar(n 0 , ngoal)
Trong bài toán này ta có th ci tin b(ng vi c b) tp CLOSE. Ta thy trong bưc 2.b / trên sau khi tìm ra các trng thái con c!a trng thái ni. Khi ó ni có t i a 4 trng thái con, nhưng trong các trng thái con c!a ni có 1 trng thái trùng vi trng thái cha c!a ni. Vì vy ta có th loi b) trng thái này tránh vi c xét lp. Khi loi b) trng thái này s& 039; không t%n ti m&t trng thái con nào trùng vi m&t trng thái trong tp CLOSE n*a. Vi c loi b) này s&039; tránh ưc vi c kim tra / bưc 2.b.3 gây t n rt nhiu th$i gian.Ngoài ra, trong game này còn cài t thêm thut toán A* sâu d"n(IDA*) là m&t bin th c!a thut toán tìm kim A*. IDA* giúp loi b) hn ch b& nh c!a A* mà ko hy sinh gii pháp t i ưu. M 0 i l"n lp c!a thut toán là quá trình tìm kim theo chiu sâu, f(n) = g(n) + h(n), to nút mi. Khi m&t nút ưc to ra có chi phí vưt quá m&t ngư:ng cutoff thì nút ó s& 039; b 1 c 3 t gim, quá trình tìm kim backtracks trưc khi tip tc. Các ngư:ng chi phí ưc kh/i to ưc lưng heuristic c!a trng thái ban "u, và trong m 0 i l"n lp k tip làm t ng t,ng chi phí c!a các nút có chi phí thp ã ưc c 3 t t 4 a trưc ó. Thut toán chm dt khi trng thái ích có t,ng chi phí không vưt quá ngư:ng hi n ti.Minh ha A* 1.1: Minh h+a A* h 1 = 1+0+2+1+1+0+1+1 = 7 3.1 heuristic2 = t,ng khong cách d 1 ch chuyn (;,<,=,>) ng 3 n nht d 1 ch chuyn các ô sai v v 1 trí úng c!a nó c&ng thêm ch 4 s pht cp ô hàng xóm vi nhau ang n(m ngưc v 1 trí c!a nhau. 1.1: ích 1.1: Minh ha h 2 = d + a Trong ó a là ch s pht cp ô hàng xóm ang nm ngc v trí. Cp (2,1) mu n v úng v 1 trí c"n d 1 ch chuyn ít nht 4 bưc(không ý ti các ô khác), 2 bưc ã ưc tính trong ?d nên a = 2. Vì vy trong 1.1 có 2 cp hàng xóm n(m ngưc v 1 trí nên / ây a = 2+2 = 4. 3.1 heuristic 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1.1: ích 1.1: Minh ha Xét 1 ô n(m sai v 1 trí: d = |rows – row| 2 + |cols – col| 2 t d 3 = ?d 2 16 7 53 8 41 23 4 56 7 82 6 3 74 5 10 1112 9 14 18 13 15h 3 = d 3 – [0*d 3 ] + a 3.1 heuristic Xét 1 ô sai n(m sai v 1 trí: d = |rows – row| 2 + |cols – col| 2 t d 4 = ?d h 4 = d 4 + a 3 Ví d so sánh 3 hàm heuristic Xét trng thái hình trên
8 7 16 43 2 52- So sánh Vi trng thái b 3 t "u là trng thái / hình trên: Thut toán A* + heuristic 1: S bưc th c hi n: 37 S nút ã xét: 36819 T,ng s nút trên cây: 73742 Th$i gian gii quyt: 38598ms |