1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO ĐỒ ÁN MÔN HỌC NHẬP MÔN TRÍ TUỆ NHÂN TẠO

12 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Xây Dựng Và Tối Ưu Hóa Hệ Thống Tìm Đường Trên Bản Đồ: Ứng Dụng Cho Hàng Bài
Tác giả Phạm Nhật Nam, Nguyễn Hữu Lộc, Bùi Toàn Thắng, Trần An Khánh, Nguyễn Cao Kỳ
Người hướng dẫn PGS. TS. Trần Đình Khang
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Nhập môn trí tuệ nhân tạo
Thể loại báo cáo đồ án
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 12
Dung lượng 6,68 MB

Nội dung

Yêu cầu bài toán  Xây dựng hệ thống tìm đường trên bản đồ cho nhóm hàng bài với khả năng chọn điểm xuất phát và điểm đến từ người dùng..  Các yêu cầu chính bao gồm khả năng sử dụng thu

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÁO CÁO ĐỒ ÁN MÔN HỌC NHẬP MÔN TRÍ TUỆ NHÂN TẠO

Đề tài:

Lớp : 144916

Học phần : Nhập môn Trí tuệ nhân tạo

Mã học phần : IT3160

Giảng viên hướng dẫn : PGS TS Trần Đình Khang

Danh sách thành viên nhóm:

1 Phạm Nhật Nam 20210620 Trưởng nhóm

2 Nguyễn Hữu Lộc 20210536

3 Bùi Toàn Thắng 20210782

4 Trần An Khánh 20210479

Trang 2

MỤC LỤC

1 Phân tích bài toán: tìm đường đi ngắn nhất trên bản đồ 5

2 Thuật toán tìm đường 5

3 Đường đi và truy vết 5

4 Hiển thị trên giao diện đồ họa 5

5 Giao diện người dùng 5

CHƯƠNG 3 CÔNG NGHỆ SỬ DỤNG VÀ BỘ DỮ LIỆU 6

2 Nhận xét, đánh giá 8

Trang 3

LỜI NÓI ĐẦU

Trang 4

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI Xây dựng và Tối ưu Hóa Hệ Thống Tìm Đường Trên Bản Đồ:

Ứng Dụng Cho Hàng Bài

1 Lý do chọn đề tài

 Tìm đường đi trên bản đồ đóng một vai trò quan trọng trong nhiều lĩnh vực, bao gồm giao thông, quản lý đối tượng di động, và robot tự động di chuyển

 Đề tài hứa hẹn mang lại giá trị thực tế bằng cách tối ưu hóa chi phí và thời gian di chuyển, có ứng dụng rộng rãi và tích cực đối với nhóm hàng bài

2 Yêu cầu bài toán

 Xây dựng hệ thống tìm đường trên bản đồ cho nhóm hàng bài với khả năng chọn điểm xuất phát và điểm đến từ người dùng

 Các yêu cầu chính bao gồm khả năng sử dụng thuật toán tìm đường như DFS, BFS, Dijkstra, và A* để đảm bảo đường đi ngắn nhất

 Giao diện người dùng thân thiện, cho phép người dùng dễ dàng tương tác

và chọn điểm trên bản đồ

3 Ý tưởng thực hiện

 Thu thập dữ liệu bản đồ và xây dựng biểu đồ đồ thị để mô phỏng mối quan hệ giữa các điểm trên bản đồ

 Sử dụng thuật toán DFS và BFS để tìm kiếm đường đi cơ bản

 Áp dụng thuật toán Dijkstra để tối ưu hóa theo chi phí và thuật toán A* để tối ưu hóa cả chi phí và thời gian di chuyển

 Phát triển giao diện người dùng đẹp, thân thiện và dễ sử dụng, cho phép người dùng chọn điểm xuất phát và điểm đến, sau đó hiển thị đường đi ngắn nhất trên bản đồ

 Tối ưu hóa và kiểm thử hệ thống để đảm bảo độ chính xác và hiệu suất cao

 Triển khai tính năng bảo trì và cập nhật để đáp ứng nhu cầu thay đổi và cải thiện hệ thống theo thời gian

4

Trang 5

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

1 Phân tích bài toán: Tìm đường đi ngắn nhất trên bản đồ

a) Môi trường:

 Bản đồ với các điểm quan trọng như giao lộ, ngã tư, địa danh

 Dữ liệu về các con đường và khoảng cách giữa các điểm trên bản đồ

1 Performance Measure (Đo lường hiệu suất):

i Mục tiêu chính: Tìm đường đi ngắn nhất giữa hai điểm trên bản đồ

ii Đánh giá: Chi phí và thời gian di chuyển thấp, đường đi phải

là đường ngắn nhất

2 Environment (Môi trường):

i Bản đồ:

ii Được tạo ra với các điểm quan trọng như giao lộ, ngã tư, và địa danh

iii Chứa dữ liệu về các con đường và khoảng cách giữa các điểm

3 Actuators (Bộ truyền động):

i Hệ thống thuật toán tìm đường:

ii Thực hiện các thuật toán như Dijkstra, A* để tìm đường đi iii Tương tác với dữ liệu bản đồ và trả về đường đi tối ưu

4 Sensors (Cảm biến):

i Dữ liệu bản đồ:

ii Thu thập thông tin về các điểm quan trọng và con đường iii Điểm xuất phát và điểm đến:

iv Nhận dạng và xác nhận điểm xuất phát và điểm đến từ người dùng

b) Tác tử:

 Người dùng: Có khả năng chọn điểm xuất phát và điểm đến trên bản đồ

 Hệ thống: Xử lý yêu cầu của người dùng, triển khai các thuật toán tìm đường

Trang 6

2 Thuật toán tìm đường:

a) DFS (Depth-First Search):

 Duyệt sâu vào đồ thị để tìm đường đi

 Sử dụng cho môi trường có nhiều lựa chọn nhánh

b) BFS (Breadth-First Search):

 Duyệt rộng trên đồ thị để tìm đường đi

 Sử dụng cho môi trường có cấu trúc rõ ràng và các lựa chọn có thể cân nhắc

c) Dijkstra:

 Tìm đường đi ngắn nhất giữa các đỉnh trên đồ thị

 Phù hợp cho môi trường với trọng số cạnh dương

d) A (A-star):*

 Kết hợp giữa Dijkstra và heuristic để tối ưu hóa chi phí và thời gian

 Sử dụng trong môi trường yêu cầu tối ưu hóa đồng thời về chi phí

và thời gian

e) Iterative Deepening Search (IDS):

 IDS là sự kết hợp của DFS và BFS

 Thực hiện DFS với giới hạn độ sâu tăng dần cho đến khi đạt được đích

 Đảm bảo tìm kiếm có độ phức tạp thấp như BFS nhưng không đòi hỏi bộ nhớ lớn

f) Uniform Cost Search (UCS):

 UCS tập trung vào việc tìm đường đi có chi phí tổng thấp nhất

 Sử dụng hàng đợi ưu tiên để giữ các đỉnh theo thứ tự tăng dần của chi phí

 Hiệu quả khi chi phí trên các cạnh là biến đổi và không đồng đều

g) Greedy Best-First Search (GBFS):

 GBFS chọn đường đi dựa trên một hàm heuristics

 Hàm heuristics ước lượng khoảng cách tới đích từ mỗi đỉnh

 Tập trung vào việc chọn đường dẫn trông có vẻ gần nhất đến đích

3 Đường Đi và Truy Vết:

Trang 7

 Lưu trữ thông tin về đường đi, có thể là danh sách các điểm hoặc đỉnh trên đồ thị

 Thuật toán sẽ xác định đường đi ngắn nhất giữa điểm xuất phát và điểm đến

4 Hiển Thị Trên Giao Diện Đồ Họa:

 Sử dụng thư viện Vite và React hiển thị bản đồ và môi trường

 Hiển thị đường đi trên bản đồ để người dùng có cái nhìn tổng quan

5 Giao Diện Người Dùng:

 Giao diện đơn giản, dễ sử dụng cho việc chọn điểm xuất phát và điểm đến

 Hiển thị kết quả đường đi ngắn nhất

 Cung cấp tùy chọn thêm như điều chỉnh thuật toán, thay đổi kiểu hiển thị

Trang 8

CHƯƠNG 3 CÔNG NGHỆ SỬ DỤNG VÀ BỘ DỮ LIỆU

1 Công nghệ sử dụng

a) FastAPI:

1 FastAPI được sử dụng để xây dựng API nhanh chóng và hiệu quả

2 Cung cấp cơ chế tạo các endpoint RESTful và hỗ trợ kiểu dữ liệu dưới dạng Pydantic models

b) React + Vite:

1 Xây dựng giao diện người dung

2 Gọi API để lấy về dữ liệu đường đi được trả về từ backend cho thuật toán tương ứng

c) json:

1 Lý do sử dụng: Thư viện json được sử dụng để làm việc với dữ liệu JSON, đọc và ghi các tệp JSON

d) math:

1 Lý do sử dụng: Thư viện math cung cấp các hàm toán học cơ bản Trong đoạn mã của bạn, có thể được sử dụng để tính toán khoảng cách giữa các tọa độ

e) osmnx:

1 Lý do sử dụng: Thư viện osmnx được sử dụng để tải dữ liệu đồ thị đường phố từ OpenStreetMap và thực hiện các phân tích về đồ thị đường phố Tuy nhiên, trong đoạn mã của bạn, có vẻ không có sử dụng thực tế của thư viện này

f) heapq:

1 Lý do sử dụng: Thư viện heapq cung cấp các chức năng liên quan đến hàng đợi ưu tiên (priority queue), được sử dụng trong thuật toán A* và Dijkstra để tối ưu hóa việc chọn nút theo ưu tiên

g) deque:

1 Lý do sử dụng: Thư viện deque cung cấp cấu trúc dữ liệu hàng đợi hai đầu (double-ended queue), được sử dụng trong thuật toán BFS

2 Bộ dữ liệu

 Bộ dữ liệu của chương trình bao gồm các tệp JSON như sau:

 edges.json:

 Chứa thông tin về các cạnh trong đồ thị mạng, với các trường như u (đỉnh nguồn), v (đỉnh đích), oneway (hướng một chiều hay không),

và length (độ dài hoặc trọng số của cạnh)

 hangbai_edges.json:

 Có thể chứa thông tin về các cạnh liên quan đến một khu vực cụ thể mang tên "hangbai."

 hangbai_nodes.json:

Trang 9

 Chứa thông tin về các đỉnh trong khu vực hoặc tính năng

"hangbai."

 nodes.json:

 Là tệp dữ liệu chung về các đỉnh trong toàn bộ đồ thị mạng, bao gồm id, x (tọa độ x), và y (tọa độ y)

 simplified_edges.json:

 Có thể là phiên bản đơn giản hóa của thông tin cạnh trong đồ thị

 simplified_nodes.json:

 Có thể chứa thông tin tóm tắt về các đỉnh trong đồ thị

Trang 10

CHƯƠNG 4 KẾT QUẢ TỔNG QUAN

1 Sản phẩm demo

Dưới đây là hình ảnh demo ứng dụng với từng thuật toán:

- BFS

- DFS:

- Dijkstra:

Trang 11

2 Nhận xét, đánh giá:

Sau khi thử nghiệm với nhiều vị trí khác nhau, có thể kết luận rằng thuật toán BFS và Dijkstra cho kết quả đường đi tương tự nhau và tốt hơn đáng kể so với thuật toán DFS

3 Hướng phát triển:

Mở rộng phạm vi tìm kiếm đường đi

Thử nghiệm các thuật toán mới để gia tăng độ chính xác

Trang 12

-

TÀI LIỆU THAM KHẢO

1 https://fastapi.tiangolo.com/

2 https://reactnative.dev/

3 https://vitejs.dev/guide/

4 Bài giảng Nhập môn Trí Tuệ Nhân Tạo, IT3160, SOICT

Ngày đăng: 11/05/2024, 11:21

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

TÀI LIỆU LIÊN QUAN

w