Các qui định trong mê cung có thể tùy thuộc vào luật chơi của mỗi người tạo ra mê cung đó như đường đi: có thể đi chéo hay không, có được đi qua ô này nhiều lần hay không,.... Thực chất
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BÀI BÁO CÁO NHẬP MÔN TRÍ TUỆ NHÂN TẠO -CT190
ĐỀ TÀI:
BÀI TOÁN TÌM ĐƯỜNG ĐI TRONG MÊ CUNG
Sinh viên thực hiện: Phan Thanh Hậu, B1909913
Lê Trọng Hiếu, B1909914 Nguyễn Võ Việt Nga, B1909953
Đỗ Thị Bé Ti, B1906408
Cần Thơ, 07 tháng 05 năm 2021
Trang 2MỤC LỤC
MÔ TẢ ĐỀ TÀI 2
1.1 Giới thiệu đề tài 2
1.2 Phạm vi đề tài 3
1.3 Nguyên nhân sinh ra đề tài 3
THUẬT TOÁN 3
2.1 Tìm đường ngẫu nhiên 4
2.2 Tìm kiếm sâu( rộng): 5
2.3 Giải thuật A* & hàm heuristic (focus) 5
HƯỚNG PHÁT TRIỂN VÀ ỨNG DỤNG 8
3.1 Mở rộng thành mô hình bản đồ thực tế 8
3.2 Ứng dụng trong các thiết bị thông minh 8
KẾT QUẢ ĐẠT ĐƯỢC 8
5.1 Kiến thức 8
5.2 Kĩ năng mềm 8
TÀI LIỆU THAM KHẢO 8
Trang 3MÔ TẢ ĐỀ TÀI 1.1 Giới thiệ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 đi là vùng có thể đi được, tường là vùng không thể đi được
Các qui định trong mê cung có thể tùy thuộc vào luật chơi của mỗi người tạo ra mê cung đó như đường đi: có thể đi chéo hay không, có được đi qua ô này nhiều lần hay 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 gian tìm kiếm
Bài toán tìm đường đi:
Tìm đường đi từ điểm này đến điểm kia, tìm đường đi qua tất cả các điểm thỏa điều kiện ràng buộc, tìm đường đi ngắn nhất,
1.2 Phạm vi đề tài
Áp dụng trên mô hình mê cung, từ đó mô hình hóa thành các bản đồ thực tế.
1.3 Nguyên nhân sinh ra đề tài
Cần các thuật toán để tìm đường đi trên các mô hình: mê cung, bản đồ, lược đồ, Trong bà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ình khác, các thuật toán cao cấp hơn để phục vụ nhu cầu đời sống của con người
Trang 4THUẬT TOÁN
1
2
1
2
2.1
*Các thuật toá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ìm kiếm sâu (rộng) và các thuật toán biến thể của chúng, Giải thuật A*, thuật toán dò theo tườ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 trong
mê cung, cụ thể là tìm đường đi từ một điểm này đến điểm khác Tuy nhiên chúng mình cũ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àm heuristic
Trang 52.1 Tìm đường ngẫu nhiê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
đường nào đó rất lâu mà không tìm thấy đích vì các hướng đi tất cả đều là chọn đại
■=> Cần đánh dấu các điểm đã đi qua rồi và không đi lại nữa
2.2 Tìm kiếm sâ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 đã đi qua rồi trong mê cung tránh việc đi lại Từ đó rút ngắn thời gian so với tìm kiếm ngẫu nhiê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 đỉnh chứ hoàn toàn không có các tư 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ư
duy trí tuệ tạo
■=> Cần thêm các hàm tính toán đường đi để nhanh chóng tìm thấy lời giải
2.3 Giải thuật A* & hàm heuristic (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 theo các hàm heuristic.
Mỗi trạng thái sẽ lưu 4 yếu tố: (g(n), h(n), f(n), cha(n)) Trong đó
• g(n): khoảng cách thực từ n đến trạng thái bắt đầu
• h(n): Hàm ước lượng heuristic tại trạng thái n
• f(n): là phép đo heuristic
• p(n): lưu trạng thái sinh ra trạng thái n
Ta có: f(n) =g(n) + h(n)
Hàm đánh giá heuristic dùng để đánh giá các đặc điểm củ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ấp
nhậ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 được vị trí đích nhất để đi trong lần đi tiếp theo.
Hàm heuristic phụ thuộc vào trình độ tư duy trong lĩnh vực giải các bài toán mê cung.
Trang 6Trong 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ác nhau: (Phần code viết bằng Javacripts)
+ Hàm thứ nhất( Euclide):
Euclide (destination, source){
return distance (this, destination)
}
+ Hàm thứ hai( Angle_euclide):
Angle_euclide( destination, source){
var CS = distance (this, source);
var CD = distance (this, destination);
var SD = distance (source, destination);
var c = -Math abs (((CS** 2 + SD** 2 - CD** 2 ) / ( 2 * CS * SD)));
return Math floor ( distance (this, destination) ** 2 ) + c
}
+ Với hàm Euclide:
Số ô trên đường đi: 59 Tổng chi phí đường đi: 58
Số ô phải xét: 674
Kết quả cho hai lần chạy với hai hàm heuristic:
Trang 7+ Với heuristic Angle_euclide:
Số ô trên đường đi: 59 Tổng chi phí đường đi: 58
Số ô phải xét: 61
Trang 8■=> Kết quả khác nhau, Angle_euclide nhanh hơn hẳn euclide
Trang 9HƯỚNG PHÁT TRIỂN VÀ ỨNG DỤNG
3
3.1 Mở rộng thà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ến thể,
VD: Ứng dụng bản đồ Google Map, các trò chơi giải mê cung trên các nền tảng công nghệ,
3.2 Ứng dụng trong các thiết bị thông minh
Á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ẾT QUẢ ĐẠT ĐƯỢC
4
5
5.1 Kiến thức
+ Nắm được một số thuật toán tìm đường đi trong mê cung Đặc biệt là giải thuật A* và hàm heuristic
+ Hiểu hơn về mê cung cũng như một số tư duy toán học về mê cung
5.2 Kĩ năng mềm
+ Kĩ năng làm việc nhóm, trao đỗi ý kiến,
+ Kĩ năng tự học, tự nghiên cứu,
+ Kĩ năng đọc các bài báo khoa học
Trang 10TÀI LIỆU THAM KHẢO
[1] (PDF) A comparative study of A-star algorithms for search and rescue in perfect maze
(researchgate.net)
[2] Path Planning with Modihed a Star Algorithm for a Mobile Robot - ScienceDirect
[3] An Effìcient Hardware Architecture of the A-star Algorithm for the Shortest Path Search Engine | IEEE Conference Publication | IEEE Xplore