Mê cung là một mô hình bản đồ, bao gồm 2 hoặc nhiều thành phần cơ bản là: Đường đi vàtường.Trong đóđườngđilàvùng cóthể điđược,tườnglàvùng khôngthể điđược.. Thực chất là một bài toán cụ t
Trang 1TRƯỜNGĐẠIHỌC CẦNTHƠ KHOACÔNGNGHỆTHÔNGTIN&TRUYỀNTHÔNG
BÀIBÁOCÁO NHẬPMÔNTRÍ TUỆNHÂNTẠO-CT190
ĐỀTÀI:
BÀITOÁNTÌMĐƯỜNGĐITRONGMÊCUNG
Sinh viên thực hiện:PhanThanhHậu,B1909 913
Lê Trọng Hiếu, B1909914Nguyễn Võ Việt Nga, B1909953ĐỗThị BéTi,B1906408
CầnThơ, 07 tháng05 năm 2021
Trang 2MÔTẢĐỀTÀI 2
1.1 Giới thiệu đề tài 2
1.2 Phạmviđềtài 3
1.3 Nguyênnhân sinh ra đề tài 3
THUẬTTOÁN 3
2.1 Tìmđường ngẫu nhiên 4
2.2 Tìmkiếmsâu(rộng) 5
2.3 Giải thuật A* &hàm heuristic (focus) 5
HƯỚNGPHÁT TRIỂNVÀ ỨNG DỤNG 8
3.1 Mởrộng thànhmôhình bản đồthực tế 8
3.2 Ứngdụng trong cácthiết bịthông minh 8
KẾTQUẢ ĐẠTĐƯỢC 8
5.1 Kiếnthức 8
5.2 Kĩ năngmềm 8
TÀI LIỆUTHAMKHẢO 8
Trang 31.1 Giớithiệuđềtài
Mê
cung là gì?
Mê cung là một mô hình bản đồ, bao gồm 2 hoặc nhiều thành phần cơ bản là: Đường đi vàtường.Trong đóđườngđilàvùng cóthể điđược,tườnglàvùng khôngthể điđược
Các quiđịnhtrongmêcung cóthểtùy thuộcvàoluậtchơicủamỗingườitạoramêcungđónhưđườngđi: cóthể đi chéohaykhông, cóđượcđi qua ônày nhiềulầnhay không,…
Tìm đường đi trong mê cung?
Thực chất là một bài toán cụ thể hóa của mô hình bài toán tìm đường đi trong không
giantìm kiếm
Bài toán tìmđường đi:
Tìmđườngđitừđiểmnàyđến điểmkia,tìmđườngđiquatấtcả cácđiểmthỏađiềukiệnràngbuộc, tìm đườngđi ngắn nhất,…
1.2 Phạmviđề tài
Ápdụngtrênmôhìnhmêcung, từđó môhình hóathànhcácbảnđồ thựctế.
1.3 Nguyênnhân sinhrađềtài
Cầncácthuậttoánđể tìmđườngđitrêncácmôhình:mêcung,bản đồ,lược đồ,…Trongbài báo cáo này chủ yếu tập chung vào mô hình mê cung Từ đó mở rộng thành các mô hìnhkhác, cácthuậttoán caocấphơn đểphục vụ
nhucầuđờisốngcủaconngười
Trang 41
2
1
2
2.1
*Cácthuậttoán
Mô hình bài toán tìm đường đi có nhiều thuật toán khác nhau có thể giải quyết được: Tìmkiếmsâu (rộng)vàcácthuậttoánbiến thể củachúng,GiảithuậtA*,thuậttoándòtheotường,
…
Mỗi thuật toán có một số ưu và nhược điểm nhất định: Trong bài báo cáo này chúng ta
sẽđi tìm hiểu chủ yếu làgiải thuật A* và các hàm heuristicđể giải bài toán tìm đường đi trongmêcung,
cụthểlàtìmđườngđitừmộtđiểmnàyđếnđiểmkhác Tuynhiênchúngmìnhcũng sẽgiới thiệu khái quát qua các thuật
cơ bản trước khi được nâng cấp thành các thuật toán có hàmheuristic
Trang 52.1 Tìmđườngngẫunhiên
Thuật toán tìm đường ngẫu nhiên hiểu đơn giản là cứ đi theo đường thẳng khi tới vị trí cónhiều hơn hai hướng đi sẽ rẽ về bất kì và cứ lập lại như thế cho đến khi thõa điều kiện bài toán,cụthểởbài này làtìm đượcđến đích
Thuật toán này rất “ không thông minh”, vì nó rất là chậm, có khi nó chỉ quanh quẫn mộtđườngnàođó rấtlâumàkhông tìmthấy đíchvìcáchướngđi tấtcảđềulàchọnđại
Cầnđánhdấucác điểmđãđiquarồivàkhôngđilạinữa
2.2 Tìmkiếmsâu(rộng):
Tìm kiếm sâu ( rộng) dung các danh sách đặc biệt như Stack( Queue) để lưu các điểm đã điquarồitrongmê cungtránhviệc đilại.Từđórútngắn thờigian sovớitìmkiếmngẫunhiên
Tuy nhiên lộ trình tìm đường đi nó lại được qui định bởi danh sách mà bạn đang lưu các
đỉnhchứhoàntoànkhông cócáctư duy tính toán trongđó
Cả tìm kiếm ngẫu nhiên và tìm kiếm sâu rộng đều làtìm kiếm mù, chưa áp dụng các
tưduytrí tuệ tạo
Cầnthêmcác hàmtínhtoánđườngđiđểnhanhchóngtìmthấylờigiải
2.3 GiảithuậtA*&hàmheuristic(focus)
Giải thuật A*thực chất cũng giống như là BFS, cũng dùng danh sách để lưu trữ thứ
tựduyệt của các đỉnh, tuy nhiên danh sách ở đây làdanh sách có điều kiện, và được sắp xếp theocáchàm heuristic.
Mỗi trạngtháisẽlưu4yếutố:(g(n),h(n),f(n),cha(n)).Trongđó
g(n):khoảng cáchthựctừn đếntrạngtháibắtđầu
h(n):Hàm ướclượngheuristictạitrạngtháin
f(n):làphép đoheuristic
p(n): lưu trạng thái sinh ra trạng thái
nTacó: f(n) =g(n)+h(n)
Hàm đánh giá heuristicdùng để đánh giá cácđặc điểmcủa một trạng thái trong KGTT,nó
là các luật để chọn những nhánh nào có nhiều khả năng nhất dẫn đến một giải pháp chấpnhận được Cụ thể hơn trong bài toán tìm
đường đi trong mê cung này là tìm vị trícó nhiều khảnăngđi đếnđượcvị trí đíchnhấtđể đi
tronglầnđi tiếptheo.
Hàmheuristic phụthuộcvàotrìnhđộtưduytronglĩnhvựcgiảicác bàitoánmêcung.
Trang 6Euclide ( destination , source ){
return distance ( this , destination )
}
Angle_euclide( destination , source ){
var CS = distance ( this , source );
var CD = distance ( this , destination ); va
r SD = distance ( source , destination );
var c =- Math abs ((( CS ** 2 + SD ** 2 CD ** 2 ) /
( 2 CS * SD ))); returnMath floor ( distance ( this , destination ) ** 2 )+ c
}
Trong bài báo cáo này, chúng ta sẽ sử dụng hai hàm heuristic với hai cấp bậc tư duy khácnhau:(Phầncodeviết bằng Javacripts)
+Hàmthứnhất( Euclide):
+Hàmthứhai(Angle_euclide):
Kếtquả chohailầnchạyvớihaihàmheuristic:
+Với hàmEuclide:
Số ô trên đường đi:
59Tổng chi phí đường đi:
58Sốô phải xét:674
Trang 7+ Với heuristic
Angle_euclide:Số ô trên đường đi: 59Tổng chi phí đường đi: 58Sốô phải
xét:61
Trang 8 Kếtquả khácnhau,Angle_euclide nhanhhơnhẳneuclide
Trang 93
3.1 Mởrộngthành môhình bảnđồthực tế
Mở rộng thành các mô hình bản đồ, các ứng dụng trò chơi mê cung hoặc các dạng bản đồbiếnthể,…
VD:ỨngdụngbảnđồGoogleMap, cáctròchơigiảimêcungtrêncácnềntảngcôngnghệ,…
3.2 Ứngdụngtrongcácthiếtbịthôngminh
Áp dụng cho các ứng dụng thông minh để tìm và ghi nhớ đường đi: Máy dò tìm đường đi,máy quét nhà, lau nhà,… Sau đó nâng cấp them các chức năng tìm đường ngắn nhất, tìm lộtrình đi, …
KẾTQUẢĐẠTĐƯỢC
4
5
5.1 Kiếnthức
+Nắmđượcmộtsố thuậttoán tìmđườngđitrongmêcung.Đặc biệtlàgiảithuậtA* vàhàmheuristic +Hiểuhơnvềmêcungcũngnhư mộtsốtưduy toánhọcvềmêcung
5.2 Kĩnăngmềm
+Kĩnănglàm việc nhóm,traođỗiýkiến,…
+Kĩ năngtự học, tựnghiêncứu, …
+Kĩ năngđọccácbàibáo khoa học
Trang 10[1] (PDF) Acomparative study of A-
star
algorithms for search and rescue in perfectmaze ( researchgate.net )
[2] Path Planning with Modified a Star Algorithm fora MobileRobot –ScienceDirect
[3] An EfficientHardware Architecture of the A-star Algorithmforthe Shortest Path Search Engine | IEEE Conference Publication | IEEE Xplore