Trình trực quan hóa thuật toán tìm đường A*
Tìm đường A* tương tác trên lưới ô vuông với heuristic Manhattan — vẽ tường chắn, di chuyển điểm bắt đầu/đích, tạo mê cung, chạy từng bước quá trình tìm kiếm. Chạy hoàn toàn trên trình duyệt.
Click & drag on the grid to draw walls · drag the green and red squares to move start / goal · then press Play. Want a challenge? Hit Tự chơi thử and solve the maze by hand.
Move the indigo token with ↑ ↓ ← → / WASD (or tap an adjacent cell) from the green start to the red goal. Walls block you.
Mã giả
Time · Space
Cách dùng
- 1 Vẽ tường chắn bằng cách nhấn và kéo chuột; kéo điểm bắt đầu màu xanh lá hoặc điểm đích màu đỏ để đổi vị trí.
- 2 Nhấn Play để xem A* tiến về phía đích bằng cách sử dụng heuristic khoảng cách.
- 3 Dùng Maze để tạo chướng ngại vật tức thì, hoặc dùng Step để chạy qua từng nút một.
- 4 Chú ý xem A* duyệt qua ít ô như thế nào so với Dijkstra hoặc BFS.
Vì sao dùng công cụ này
- Xem cách heuristic Manhattan kéo quá trình tìm kiếm đi thẳng về phía đích.
- A* tìm ra đường đi ngắn nhất trong khi chỉ duyệt qua ít nút hơn nhiều so với tìm kiếm không có thông tin.
- Chuyển đổi qua lại giữa công cụ này và các trình trực quan hóa Dijkstra / BFS để so sánh cách duyệt.
- Chạy hoàn toàn trên trình duyệt của bạn. Không cần đăng ký, không cần tải lên.
Câu hỏi thường gặp
Thuật toán A* là gì?
A* (đọc là A-star) là một thuật toán tìm đường theo kiểu best-first, sắp xếp các nút biên (frontier) theo f = g + h, trong đó g là chi phí tính từ điểm bắt đầu và h là ước lượng heuristic của chi phí đến đích.
Công cụ này sử dụng heuristic nào?
Khoảng cách Manhattan (|Δrow| + |Δcol|), một heuristic chấp nhận được (admissible) trên lưới 4 hướng — nó không bao giờ ước lượng quá cao, nên A* luôn đảm bảo tìm ra đường đi ngắn nhất.
Độ phức tạp thời gian của A* là gì?
Trong trường hợp xấu nhất là O(E log V) giống Dijkstra, nhưng với một heuristic tốt, trên thực tế nó duyệt qua ít nút hơn rất nhiều.
Khi nào A* tốt hơn Dijkstra?
Bất cứ khi nào bạn có một đích duy nhất và một heuristic hữu ích. A* tập trung tìm kiếm về phía đích; còn Dijkstra thì duyệt đều theo mọi hướng.
Trình trực quan hóa thuật toán tìm đường A* là gì?
Trình trực quan hóa thuật toán tìm đường A* mô phỏng động thuật toán tìm kiếm A* trên một lưới ô vuông. A* sắp xếp thứ tự các nút biên (frontier) theo f = g + h (chi phí đã đi cộng với heuristic khoảng cách Manhattan), nhờ đó nó tìm kiếm theo hướng đến đích và tìm ra đường đi ngắn nhất trong khi chỉ cần duyệt qua ít ô hơn nhiều so với các thuật toán tìm kiếm không có thông tin (uninformed search).
Tính năng
Hoạt ảnh từng bước
Xem tập mở (open set) mở rộng dần về phía đích, được dẫn dắt bởi f = g + h.
Độ phức tạp
Phụ thuộc vào heuristic (trường hợp xấu nhất là theo cấp số mũ); heuristic khả chấp → đường đi tối ưu. Không gian bộ nhớ: O(V).
Riêng tư 100%
Chạy hoàn toàn trong trình duyệt của bạn — không có gì được tải lên.
Ví dụ
Input
grid with start, goal, obstacles
Output
expand lowest f = g + h toward goal → optimal path (with an admissible heuristic)
Trường hợp sử dụng
-
1
Tìm đường trên lưới
Tìm tuyến đường ngắn nhất vòng qua chướng ngại vật trong game và bản đồ.
-
2
Heuristic so với Dijkstra
Xem cách một heuristic tốt giúp A* khám phá ít nút hơn so với Dijkstra.
-
3
Tính khả chấp & tính tối ưu
Tìm hiểu lý do một heuristic khả chấp đảm bảo đường đi tối ưu.
Công cụ trực quan hóa thuật toán tìm đường A* của Zerethon mô phỏng từng bước tìm kiếm A* trên lưới ngay trong trình duyệt của bạn, mở rộng các nút theo thứ tự f = g + h (chi phí đã đi cộng với ước lượng heuristic đến đích). Với một heuristic khả chấp (admissible), A* tìm ra đường đi tối ưu trong khi thường khám phá ít nút hơn nhiều so với Dijkstra. Thời gian chạy phụ thuộc vào heuristic (trường hợp xấu nhất là theo cấp số mũ); không gian bộ nhớ là O(V) cho tập mở (open set) và tập đóng (closed set).
- Danh mục
- Thuật toán
- Giá
- Miễn phí
- Quyền riêng tư
- Chạy trên trình duyệt
- Đăng ký
- Không cần
Tài liệu tham khảo
- Thuật toán tìm kiếm A* — Wikipedia
- Heuristic khả chấp — Wikipedia
Quyền riêng tư
Dữ liệu của bạn không bao giờ rời khỏi trình duyệt trừ khi được nêu rõ. Trình trực quan hóa thuật toán tìm đường A* chạy hoàn toàn phía client — không tải lên máy chủ, không ghi log, không theo dõi dữ liệu bạn nhập.
Mới làm quen? Đọc giải thích từng bước kèm phân tích Big-O: Tìm hiểu Graph Algorithms →
Xây dựng, chia sẻ và phát triển trên Zerethon Social
Đăng ký miễn phí. Kiếm điểm, sưu tầm thành tựu và kết nối với nhà sáng tạo khắp thế giới.