Trình trực quan hóa Tìm đường
Xem đồ thị được duyệt và đường đi ngắn nhất được tìm ra
Các thuật toán đồ thị và tìm đường trả lời hai câu hỏi: tôi có thể đến được nút này không? và tuyến đường rẻ nhất là gì? Những công cụ trực quan hóa này vẽ ra biên tìm kiếm khi nó mở rộng, giúp thấy rõ sự khác biệt giữa một tìm kiếm không có thông tin như BFS và một tìm kiếm dẫn dắt bởi heuristic như A*.
Chạy từng thuật toán trên lưới ô của riêng bạn, đặt tường và trọng số, tạo mê cung, rồi chạy từng bước để thấy chính xác ô nào được thăm và vì sao.
Duyệt Visualizers
Dijkstra's Algorithm Visualizer
Tham lam chọn nút gần nhất — đường đi ngắn nhất trên đồ thị có trọng số, O((V+E) log V).
A* Pathfinding Visualizer
Dijkstra cộng thêm một heuristic hướng đến đích — khám phá ít nút hơn nhiều cho tìm kiếm điểm-đến-điểm.
Breadth-First Search (BFS) Visualizer
Khám phá theo từng cấp bằng hàng đợi — đường đi ngắn nhất trên đồ thị không trọng số, O(V+E).
Depth-First Search (DFS) Visualizer
Lao sâu theo một nhánh bằng ngăn xếp — rất tốt cho phát hiện chu trình và đục mê cung.
Maze Generator
Tạo mê cung ngẫu nhiên để thử nghiệm các thuật toán tìm đường.
Vì sao nên trực quan hóa tìm đường?
Tìm đường là nền tảng của định vị GPS, AI trong game và thiết kế mạng. Việc thấy BFS lan tỏa đều trong khi A* lao thẳng đến đích giúp bạn hiểu heuristic theo cách mà mã giả không thể — lý tưởng cho sinh viên và ôn luyện phỏng vấn.
Câu hỏi thường gặp
Sự khác biệt giữa BFS, DFS, Dijkstra và A* là gì?
BFS khám phá theo từng cấp và tìm đường đi ngắn nhất trên đồ thị không trọng số; DFS lao sâu theo một nhánh; Dijkstra tìm đường đi ngắn nhất trên đồ thị có trọng số; A* tăng tốc Dijkstra bằng một heuristic hướng thẳng đến đích.
Khi nào nên dùng A* thay vì Dijkstra?
Dùng A* cho tìm đường điểm-đến-điểm khi bạn có thể ước lượng khoảng cách còn lại (ví dụ khoảng cách đường thẳng) — heuristic giúp nó khám phá ít ô hơn nhiều. Dùng Dijkstra khi bạn cần đường đi tới mọi nút hoặc không có heuristic tốt.