Bạn đã từng nhìn vào một bản đồ và tự hỏi: “Từ nhà mình đến văn phòng có bao nhiêu đường đi khác nhau?” Hay khi chơi game, nhân vật di chuyển thế nào để tránh chướng ngại vật nhanh nhất? Tất cả đều xuất phát từ một bài toán toán học kinh điển: bài toán tìm đường đi từ A đến B.
Bài toán này xuất hiện rất phổ biến trong sách giáo khoa, tài liệu Studocu và các kỳ thi toán SASMO, IMC, KANGAROO… Phiên bản đơn giản nhất là trên lưới ô vuông: chỉ được đi lên trên hoặc sang phải, không được quay đầu. Dù nghe đơn giản, nó lại là nền tảng cho hàng loạt công nghệ hiện đại mà chúng ta dùng hàng ngày.
Bài toán cổ điển: Có bao nhiêu cách đi từ A đến Z?
Hãy tưởng tượng một lưới ô vuông với các điểm được đánh dấu: A (điểm xuất phát) → Z (điểm đích). Chỉ được di chuyển theo hai hướng: sang phải hoặc lên trên dọc theo đường thẳng.
Cách giải tổng quát rất thông minh: ta đếm số đường đi đến từng điểm kế tiếp, ký hiệu là P(X) (số cách đến điểm X).
Dưới đây là quy trình tính từng bước (đúng như ví dụ phổ biến trong tài liệu Studocu):
- Bước 1: Từ A chỉ có 1 cách đến B và 1 cách đến E → P(B) = 1, P(E) = 1
- Bước 2: Đến K có thể từ B hoặc E → P(K) = 1 + 1 = 2
- Bước 3: Đến F chỉ từ E → P(F) = 1
- Bước 4: Đến G từ F hoặc K → P(G) = 1 + 2 = 3
- Bước 5: Đến C chỉ từ B → P(C) = 1
- Bước 6: Đến L từ K hoặc C → P(L) = 2 + 1 = 3
- Bước 7: Đến H từ G hoặc L → P(H) = 3 + 3 = 6
- Bước 8: Đến D chỉ từ C → P(D) = 1
- Bước 9: Đến M từ L hoặc D → P(M) = 3 + 1 = 4
- Bước 10: Đến Z từ H hoặc M → P(Z) = 6 + 4 = 10
Kết luận: Có đúng 10 cách đi từ A đến Z!
Phương pháp này chính là quy hoạch động (dynamic programming). Mỗi điểm chỉ phụ thuộc vào 2 điểm trước nó. Nếu lưới lớn hơn, ta có thể dùng công thức tổ hợp: số đường đi = C(n + m, n) (trong lưới n×m).
Tại sao bài toán này lại quan trọng?
Vì nó không chỉ là “toán học vui” mà là nền tảng cho rất nhiều vấn đề thực tế. Khi thêm trọng số (khoảng cách, thời gian, chi phí) và chướng ngại vật, bài toán trở thành tìm đường đi ngắn nhất – lĩnh vực cốt lõi của khoa học máy tính.
Những ứng dụng thiết thực trong đời sống hiện đại
- Hệ thống định vị & GPS (Google Maps, Apple Maps, Waze) Mỗi lần bạn mở bản đồ tìm đường từ quận 1 TP.HCM đến sân bay Tân Sơn Nhất, ứng dụng đang chạy thuật toán Dijkstra hoặc A* (biến thể nâng cao của bài toán đường đi). Chúng tính hàng triệu đường đi, so sánh thời gian thực tế, tắc đường, phí cầu đường để đưa ra lộ trình tốt nhất chỉ trong vài giây.
- Logistics & Giao hàng (GHTK, Grab, Shopee Express, Amazon) Xe tải, drone giao hàng hay xe máy của shipper đều cần lộ trình tối ưu. Bài toán giúp tính đường đi ngắn nhất qua hàng chục điểm giao (A → B → C → …), tiết kiệm xăng dầu và thời gian. Amazon từng tiết kiệm hàng triệu đô la mỗi năm chỉ nhờ tối ưu lộ trình kho hàng.
- Mạng máy tính & Internet Khi bạn xem YouTube hay gọi video Zoom, dữ liệu của bạn di chuyển qua hàng nghìn router. Các giao thức OSPF, BGP sử dụng chính thuật toán đường đi ngắn nhất để tránh nghẽn mạng, đảm bảo gói tin đến nơi nhanh nhất.
- Trò chơi điện tử & AI game Trong Liên Minh Huyền Thoại, PUBG, Genshin Impact… nhân vật NPC (quái vật, lính) di chuyển thông minh nhờ thuật toán A*. Nếu không có bài toán đường đi, game sẽ chỉ có chuyển động ngu ngốc và nhàm chán.
- Robot & Xe tự lái Robot hút bụi Roomba, robot kho hàng Amazon, hay xe Tesla tự lái đều dùng A* để tìm đường tránh vật cản động. Tại các nhà máy hiện đại ở Việt Nam, robot vận chuyển linh kiện cũng áp dụng chính công nghệ này.
- Quy hoạch đô thị & Giao thông công cộng Khi thiết kế metro số 1 TP.HCM hay tuyến xe buýt nhanh BRT, kỹ sư dùng bài toán đường đi để tính số điểm dừng tối ưu, thời gian di chuyển ngắn nhất, giảm kẹt xe. Đây là lý do Hà Nội và TP.HCM đang thay đổi diện mạo giao thông từng ngày.
- Các lĩnh vực khác
- Xe cứu thương tìm đường nhanh nhất đến hiện trường tai nạn.
- Mạng điện lực: truyền tải điện từ nhà máy đến thành phố với tổn thất ít nhất.
- Sinh học: mô hình đường đi của protein trong tế bào.
- Mạng xã hội: tính “độ xa” giữa hai người trên Facebook (six degrees of separation).
Bài toán đơn giản nhưng sức mạnh khổng lồ
Chỉ với cách đếm “P(X) = P(trước) + P(trước)” như ví dụ 10 đường đi từ A đến Z, chúng ta đã xây dựng nên cả một ngành khoa học máy tính. Ngày nay, các thuật toán này chạy trên siêu máy tính, xử lý hàng tỷ điểm dữ liệu mỗi giây.
Xem thêm: Hành Trình Toán Học Kỳ Diệu: Mê cung logic Thử thách Toán Kangaroo: “Ếch Nhảy Trên Lá Sen” Học toán bằng cách “trực quan – hành động” Học Toán Bằng Cách Đếm Tiến – Đếm Lùi Hoàn thành dãy số (Number Patterns)

